Обнимая искусственное

Какое из этих двух изображений выглядит лучше всего? Что лучше всего обучит нейронную сеть отделению людей от фона?

Можно было бы подумать, что Стиль A будет лучше. Он больше похож на естественное изображение и поэтому должен быть лучшим выбором.

И все еще…

На самом деле это стиль B, который лучше всего подходит для обучения сети сегментации. Метод, известный как рандомизация домена, показывает, что создание изображений, которые кажутся человеку сюрреалистичными, оказывается лучше для обучения сети. Общая идея состоит в том, чтобы рандомизировать вещи, которые принципиально не изменяют изображение, чтобы сеть могла лучше изучить наиболее важные функции для данной задачи.

Фон

Моему работодателю требовалось решение нашей проблемы с наборами данных. Набор данных, который нам нужен для сегментации, не существовал, и было непомерно дорого, чтобы люди вручную аннотировали необходимый нам объем данных. Я предложил создать синтетический набор данных. Имея опыт работы в компьютерной анимации и опыт работы с компьютерным зрением и машинным обучением, это казалось естественным.

Несколько месяцев спустя я создал целую систему для создания набора данных синтетических человеческих изображений (я называю их симуляторами). В результате множества исследований и экспериментов я обнаружил, какая комбинация функций лучше всего подходит для нашего решения. Чтобы добраться туда, нужно было начинать с самого начала проблемы.

Глаз смотрящего

Что мы видим, когда видим? Человеческий глаз передает сигналы в мозг на основе света, взаимодействующего с клетками сетчатки. Но восприятие происходит в мозгу, в нейронной сети человека. Лучшие инструменты, которые у нас есть для визуализации мозговой активности, не дают нам много информации о том, что на самом деле там происходит.

К счастью, есть больше инструментов для визуализации того, что происходит в нейронной сети. В приведенном выше примере обратите внимание на группировку активации мордочки собаки рядом с тем местом, где морда собаки находится на фактическом изображении. К сожалению, эти инструменты не так хорошо подходят для задач сегментации. Так как же нам выяснить, какие функции сети сегментации действительно необходимо изучить?

Рассуждение

Здесь в игру вступают некоторые проверки гипотез и рандомизация доменов. Если цель состоит в том, чтобы отделить человека от фона, то ключевыми областями являются контур и поверхность человека. С помощью синтетических данных можно создать симуляторы человека с самыми разными контурами; практически любая форма и размер человека могут быть воспроизведены. Так что действительно интересные вещи должны быть на поверхности.

Что, если сделать шаг назад, имеет определенный смысл. Кожа (т. Е. Тон, насыщенность, чистота и т. Д.) И одежда (т. Е. Стили, формы, цвета, узоры и т. Д.) Гораздо более разнообразны, чем основная форма человека (всегда голова и туловище с уклон в сторону четырех конечностей).

Тестирование

Набор данных V1 Simulant был создан для сопоставления изображений с людьми в наборе данных COCO (примерно 20 000 изображений). Затем обученные сети оценивались по изображениям, содержащим людей, из набора данных DAVIS (которые были определены как одни из доступных примеров сегментации с самым высоким разрешением и наилучшим качеством). Первоначальные результаты оставляли желать лучшего.

Симуляторы V1 были созданы с широким спектром оттенков кожи и размеров, но без одежды и волос. Первоначальная гипотеза заключалась в том, что нереалистичные оттенки кожи помогут сети изучить одежду. После расследования выяснилось, что сеть на самом деле превратилась в довольно надежный детектор кожи (сегментирующий только открытые участки кожи людей).

Но это само по себе было интересным наблюдением. Как сеть обучила людей со случайными цветами кожи RGB научиться отличать кожу от одежды? Это возвращает нас к рандомизации домена. Оказывается, цвет кожи - не самая важная характеристика для сети сегментации. Должны быть другие свойства, определяющие скин. Однако обнаружение кожи работало, поэтому следующей целью было идентифицировать остальных людей.

Одежда Maketh the Man

Для симуляторов был смоделирован комплект одежды, крой, длина и цвет которой могли быть рандомизированы. Были сгенерированы симуляторы V2, и было проведено то же обучение, что и раньше, с той же оценкой для подмножества DAVIS.

Результаты были лучше. По крайней мере, дела идут в правильном направлении. Пришло время еще более рандомизации доменов.

Обратите внимание на узор

Вместо того, чтобы пытаться создать все возможные типы ткани и все возможные цветовые узоры, рандомизированные фрактальные узоры использовались в качестве замены для большей сложности. Были созданы симуляторы V3, обучена сеть и проведена оценка.

Внезапно все становится лучше. Для человека, смотрящего на изображения V3 Simulant, совершенно очевидно, что они не настоящие люди. Но сети просят не об этом. Цель сети - отделить людей от фона. И оказалось, что эти необычные симуляторы человека очень хорошо тренируют сеть для выполнения этой задачи.

Настройте обучение с помощью набора естественных изображений, и мы начнем превосходить сеть, обученную только на естественных изображениях. Точность заметно выше.

Взгляд в глаза

Люди и компьютеры видят вещи по-разному. Вывод не шокирующий, но заслуживающий повторения. Люди и компьютеры видят вещи по-разному. Так зачем настаивать на том, чтобы обучающие изображения были фотореалистичными? Когнитивный диссонанс тренировки нейронной сети с изображениями, которые кажутся вам глупыми, трудно преодолеть. Но важно иметь в виду, что настройка набора данных для данной обучающей задачи, скорее всего, приведет к изображениям, которые выглядят странно для человека-наблюдателя. Рандомизация доменов - мощный инструмент оптимизации синтетических данных.

Он также создает несколько интересных изображений. Чтобы увидеть более необычные синтетические изображения, загляните в OMG Simulants Tumblr.