Генетический алгоритм для генерации лиц

    Что будет, если генератор случайных фигур соединить с детектором лиц? Способен ли эволюционный алгоритм путём случайных мутаций сгенерировать человеческое лицо? Разработчик программы Pareidoloop отвечает на этот вопрос утвердительно (генератор протестирован только в Chrome 21).


    (с) spiritedflow




    Перед запуском генератора можно изменить три параметра: размер итогового изображения (output size), точность результата (target fitness, максимум 35), количество итераций до остановки генератора, если заданная точность не достигнута (max generations).

    Примечание: для наиболее реалистичного результата, то есть достижения target fitness = 35, может потребоваться несколько часов работы генератора, так что количество итераций есть смысл увеличить до предела. В браузере Chrome можно включить автоматическое сохранение промежуточных результатов на диск (в высоком разрешении).

    Код на github
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 57

      +15
      Насколько я понимаю принцип работы генетического алгоритма, ответ на вопрос «Способен ли эволюционный алгоритм путём случайных мутаций сгенерировать реалистичное человеческое лицо?» был известен еще до проведения эксперимента. Вопрос был лишь в корректности применяемой фитнес-функции.
        +5
        Обезьяны + печатные машинки + бесконечное количество времени = «Война и мир»?
          +6
          В вашем примере не предусмотрен алгоритм отбора.
            –5
            Много обезьянок + печатные машинки + револьвер с бесконечным барабаном + бесконечное количество времени = «Война и мир»?

            Так лучше!!?
              +11
              По какому алгоритму работает револьвер?

              В теории эволюции 2 основных механизма:
              1) случайные мутации
              2) естественный отбор (неудачные мутации умирают)

              В топике 2 механизма:
              1) генератор случайных фигур
              2) детектор лиц

              У комментатора только первый механизм, и нет механизма, который может сравнить 2 текста и вынести вердикт о превосходстве одного над другим.
              1) обезьяны с машинками
                0
                Почему же, алгоритм отбора есть, просто он очень груб: текст на выходе сравнивается с полным текстом «Война и Мир»
                По сути это не алгоритм мутаций — мы просто ждем бесконечное число времени идеальный результат при неограниченных ресурсах
                  +7
                  В том то и дело, что алгоритм в случае случайных мутаций сравнивает результаты мутаций между собой и выбирает лучший, по мнению алгоритма, а в случае обезьян сравнивается бесконечное количество вариантов с эталоном. Вдруг у одной обезьяны получится написать Евгения Онегина, а ваш алгоритм сравнения с Войной и Мир его забракует.
            +1
            С вероятностью 2^128 за 10^12 лет наберут.
              +9
              Ну нихрена себе вероятность
                +1
                краснею, зеленею, судорожно ищу кнопку Edit, не нахожу, бьюсь головой ап стену, иду на второй год переизучать теорвер.
              • UFO just landed and posted this here
              0
              Статья расплывчатая, что делалось не понятно. Ожидал увидеть много фигур из которых бы и получилось лицо в конце, на ролики бегает одна фигура и оставляет след. Ясно одно, что если долго гонять адаптирующийся алгоритм с «учителем» (термин из нейронных сетей, думаю и тут уместен) то результат будет рано или поздно.
                +1
                Не обязательно, кстати, в тех же нейросетях результата может и не быть.
                  0
                  Да, теория сходимости берет свое, но генетический алгоритм универсальная вещь, может это и хотел автор показать.
                    0
                    Для ген алгоритмов, насколько мне известно, сходимость не доказана.
                +26
                Ух-ты! генератор случайных и неповторимых аватарок :)
                  +1
                    +1
                    Так а где лицо-то?
                      +6
                      настройки по-умолчанию: fitness=27.5, max gens = 6000

                        +11
                        Можно на стену вешать :) Можно распечатать и попытаться толкнуть на аукционе (молоток? ebay?). А если поставить в углу автограф и задрать цену до тысяч $, то могут купиться и «ценители».
                          +4
                          Ever dream this man?)
                          0
                          На второй фотографии слева в первом ряду — бабушка?
                            0
                            Мне больше нравится драма и дух самурая у распадающегося лица в левом нижнем углу :)
                            0
                            настройки: 100 / 35 / много /

                            получилось это на 36к поколении:

                            image

                            леприкон.
                              0
                              я пробовал с fitness = 35 — много шума. По-умолчанию лучше :)
                                0
                                При должной фантазии тут что угодно можно увидеть, не только лица...:) генератор абстракционизма:)
                                0
                                Ещё сойдёт для какой-нибудь игры в качестве аватарок для расы пришельцев из другого измерения.
                                +3
                                Надо продать в голливуд, будут снимать ужастики :)
                                  +17
                                    +28
                                      +2
                                        0
                                        Надо же, на английский перевели.
                                          +6
                                          Думаю, что все было наоборот:)
                                            0
                                            Знаете, я думал, что у меня была в детстве книга, откуда взяты эти картинки, естественно, на русском языке. Но сейчас я как следует погуглил и нашёл, что у меня точно была польская книга «Учимся рисовать птиц». Этой, наверное, не было.
                                      +2
                                      «Я закрыл глаза.
                                      Длинным рядом потянулись предо мной человеческие лица. Веки опущены…
                                      неподвижные мертвые маски… мой собственный род, мои предки.
                                      Все одна и та же форма черепа, хотя тип заметно менялся. Предки
                                      вставали из могил с волосами, гладко причесанными, распущенными,
                                      подстриженными, в париках и в косичках. Века за веками, все ближе ко мне, их
                                      черты становились мне все более и более знакомыми, и, наконец, слились в
                                      одно лицо… в лицо Голема, которым и оборвалась цепь моих предков...» Майринк
                                        +3
                                        Хорошие лица для крипипаст.
                                          0
                                          использовать в качества капчи: «выберите картинку, где вы видете лицо»
                                            0
                                            Лол, обратная капча?
                                            В топике как раз упоминается детектор лиц.
                                              0
                                              Тем не менее разумная идея с капчей, детектор лиц часто ошибается на объектах, которые в анализе похожи на лица. Если поставить рядом колесо, лицо, и ткань с тенью, то машина может ошибиться и выбрать все три. Для человека же никакой проблемы.
                                            +5
                                            o_O
                                              +1
                                              • UFO just landed and posted this here
                                            • UFO just landed and posted this here
                                                +2
                                                Откопал на ютубе ролик на эту же тему, автор учит бегать, прыгать, держать равновесие существ из пружин с помощью генетических алгоритмов. Выглядит всё это весьма забавно. У автора вообще много интересных видео там.
                                                • UFO just landed and posted this here
                                                    0
                                                    Суть одна, просто в машинках предел обучения не столь явен (хотя он присутствует, ни одна машинка в пределах каких-либо размеров не въедет на отвесную стену достаточно большой высоты). В случае с машинками законы задаются симуляцией физических законов. В случае с лицами — симуляцией естественного процесса распознавания лиц. Просто у данного алгоритма распознавания есть предел в 35 пунктов, и ничего с этим не поделаешь.
                                                    • UFO just landed and posted this here
                                                        0
                                                        В данном случае, думаю, основная цель — не поиск самого лучшего результата, а поиск множества хороших результатов, разнообразие. С этой точки зрения нам, пользователям, задача может быть интересной. Конечно, если вы разработали этот алгоритм и точно знаете, как он работает, то это всё фигня.
                                                0
                                                Результат 60000 поколений:
                                                image

                                                В идеале хотелось бы видеть тот же алгоритм распознания, но изображение должно строиться не из хаотичного набора полигонов. Например, можно взять упрощённую 3D-модель головы и рендерить её с нескольких ракурсов одновременно, fit считать как сумму всех fit-ов ракурсов. Тогда результаты могли бы быть намного лучше.
                                                  +1
                                                  Мне почему-то в этом «результате 60000 поколений» явственно мерещится «ВИD».
                                                    0
                                                    Есть такое =) В любом случае, это немолодой полный человек с большой лысиной. :)
                                                  +2
                                                  Насколько мне известно, распознавалка лиц ориентируется по 4-5 контрастным пятнам на тех местах, где должны быть глаза, нос, рот. Поэтому ожидать чуда бессмысленно.
                                                    +1
                                                    Вот хорошая демонстрация генетических алгоритмов с машинками: megaswf.com/serve/102223/
                                                      +1
                                                      Вот правильная ссылка: www.boxcar2d.com/
                                                        0
                                                        это бесподобно, спасибо вам!
                                                          0
                                                          Вы не находили, как можно ускорить симуляцию? Хотелось бы пару сотен поколений за час пропустить, насколько проца хватит.

                                                      Only users with full accounts can post comments. Log in, please.