Компьютерное зрение — реконструировать -> распознать


Идея анализа посредством синтеза существует давно, но только сейчас применяется к компьютерному зрению. Может ли это быть недостающим компонентом, который позволяет ИИ видеть так, как мы?

Когда вы смотрите на сцену, вы не воспринимаете плоские двухмерные формы, а вместо этого воспринимаете трехмерные формы, которые порождают эти двухмерные узоры света, темноты и цвета. Посмотрите, как странное пятно света меняется при вращении куба, и вы увидите не странное пятно, меняющееся непредсказуемым образом, а вращающийся куб.
Все эти наблюдения показывают, что зрительная система хорошо синтезирует причину световых полей, которые мы видим. Отсюда возникла идея анализа путем синтеза. Это говорит о том, что вы можете понять, на что смотрите, только имея модель, которая это генерирует.
Легко сказать, но трудно достичь.
Вы можете увидеть недавнее изобретение капсульных сетей Джеффри Хинтоном и др. как попытка заставить нейронные сети научиться выполнять эту работу. Однако может быть более прямой путь к решению. В течение некоторого времени было понятно, что ключом к общему компьютерному обучению является существование дифференцируемой модели. Если вы знаете, как изменение параметров модели меняет ее вывод, вы можете использовать это для обучения. Все, что вы делаете, — это показываете модели, что вы хотите, чтобы она изучила, и настраиваете свои параметры так, чтобы ее выходные данные двигались в правильном направлении, то есть в сторону желаемого результата. Вот что происходит при обратном распространении. Нейронная сеть является дифференцируемой, и это используется для корректировки ее весов, чтобы приблизить ее к желаемому результату — действие, которое повторяется снова и снова, пока модель не будет работать достаточно хорошо.
Мы знаем, как создавать модели трехмерного мира и как проецировать их в 2D. Это то, что происходит в каждом конвейере рендеринга графики. Вы начинаете с трехмерного описания мира, а пипллайн отображает его в двухмерном виде на экране, чтобы вы могли обработать его и предположительно восстановить трехмерное описание в своей голове.
Итак, идея состоит в том, чтобы использовать конвейер рендеринга, чтобы научиться выводить 3D-модели из 2D-сцен. Проблема в том, что конвейер рендеринга не обязательно дифференцируемый. Это проблема, над которой работают новые исследования команды, состоящей из людей из NVIDIA, Университета Торонто, Макгилла и Аалто:
Многие модели машинного обучения работают с изображениями, но игнорируют тот факт, что изображения представляют собой 2D-проекции, сформированные трехмерной геометрией, взаимодействующей со светом, в процессе, называемом рендерингом. Включение моделей машинного обучения для понимания формирования изображений может быть ключевым моментом для обобщения. Однако из-за важного этапа растеризации, включающего операции дискретного присваивания, конвейеры рендеринга недифференцируемы и, следовательно, в значительной степени недоступны для методов ML на основе градиента. В этой статье мы представляем DIB-R, дифференцируемую структуру рендеринга, которая позволяет аналитически вычислять градиенты для всех пикселей изображения.
Общий вид системы можно увидеть ниже:

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

Первый столбец — это визуализированное изображение, второй столбец — это прогнозируемая форма, третий столбец — это прогнозируемая текстура, четвертый столбец — это визуализированный автомобиль, а последний столбец — это прогнозируемый свет. Обратите внимание, что в модель встроены предположения о том, какой вид рендеринга выполняется.
Так что, похоже, это работает. Есть еще много всего, что нужно исследовать. Если у вас есть дифференцируемый рендерер, вы можете протестировать множество различных подходов. Кажется, что люди обладают способностью «понимать» любую трехмерную форму только из двухмерного изображения, но иногда они ошибаются. Кажется вероятным, что когда один и тот же метод применяется к сложным сценам с несколькими объектами, придется применить какую-то иерархию. То есть понимаете ли вы образ автомобиля как единую 3D-модель или разбиваете его на составляющие — колеса, ящики для кузова и другие детали и так далее. Это подход, который должна использовать капсульная сеть, и вполне вероятно, что этот подход также выиграет от этого.
Еще на заре компьютерного зрения были споры о том, что инженерный подход противопоставляется сквозному подходу нейронной сети. Как правило, могли бы вы вручную создать функции, которые были бы просты в вычислении, понятны и эффективны? Похоже, что ответ был отрицательным, поскольку нейронные сети являются более успешными для получения детекторов признаков, которые не особенно просты для понимания, но очень эффективны. Может ли быть, что расширение нейронной сети с помощью «инженерного» подхода дает лучшее решение.
Совершенно очевидно, что естественные нейронные сети не имеют конвейеров 3D-рендеринга, но добавление дифференцируемого модуля рендеринга к искусственной нейронной сети может обеспечить самый быстрый способ понять, что происходит.

Фиолетовый прямоугольник показывает входное изображение. Первый ряд показывает Основную Истину. Во второй строке показан прогноз с проигрышем в состязании. А третья строка показывает прогноз без состязательных потерь.


Добавить комментарий