Функционирует при финансовой поддержке Федерального агентства по печати и массовым коммуникациям (Роспечать)

Нейросеть научили видеть зеркала в кадре

Xin Yang et al. / ICCV 2019

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

Зеркала представляют собой достаточно большую проблему для алгоритмов компьютерного зрения. Например, при использовании алгоритмов определения глубины на снимке зеркало вероятнее всего внесет искажения в данные и заставит алгоритм «видеть» отраженные объекты на большем расстоянии, чем расположено само зеркало. В качестве решения этой проблемы разработчики предлагают использовать алгоритмы распознавания зеркал, благодаря которым основной алгоритм мог бы игнорировать эту область на снимке. Такие алгоритмы уже существуют, однако пока они имеют низкую точность работы.

Разработчики из Городского университета Гонконга научили алгоритм распознавать зеркала на снимках и качественно выделять их, чтобы затем использовать на таких обработанных изображениях алгоритмы компьютерного зрения. Алгоритм состоит из двух основных частей. Изначально изображение подается на сверточную нейросеть для выделения признаков — операции, при которой алгоритм отсекает лишние данные из изображения и оставляет на нем ключевые данные, например, линии. Благодаря этому изображение уменьшается в размере и становится более простым для анализа, но информация об объектах на нем не теряется.

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

Обе эти стадии работают по несколько раз, причем данные с каждого этапа выделения признаков отдаются как на следующий этап этой операции, так и сразу на нейросеть для анализа контраста:

Для обучения нейросети разработчики вручную собрали датасет, состоящий из 4018 пар снимков помещений с зеркалами: исходный снимок и снимок с выделенным зеркалом. 3063 пар изображений были отобраны для обучения, а оставшиеся 955 использовались для проверки обученного алгоритма. Сравнение с другими алгоритмами на этом датасете показало, что новый алгоритм работает гораздо стабильнее, выделяя зеркала практически так же, как они располагались в реальности:

В области алгоритмов для определения глубины есть и другие проблемы помимо зеркал. Например, нейросетям достаточно трудно определять глубину на снимке, если и камера и объекты в кадре одновременно двигаются. Разработчики из Google недавно решили эту задачу, причем примечательно, что помогли им в этом ролики, снятые в 2016 году в рамках флешмоба Mannequin Challenge.

Григорий Копиев

Нашли опечатку? Выделите фрагмент и нажмите Ctrl+Enter.