Картинка — вероятностный язык


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

Исследователи из Массачусетского технологического института создали язык Picture, основанный на Джулии, который значительно упрощает написание программ, использующих вероятностные рассуждения для компьютерного зрения на основе 2D и даже 3D. Их работы будут представлены на конференции Computer Vision and Pattern Recognition в июне.
Идея команды также использует анализ путем синтеза, который является общим принципом, согласно которому один подход для анализа чего-либо — это найти механизм, который это воспроизводит. В случае зрения это фактически инверсная графика. Если вы возьмете 3D-модель и отрендерите ее, то каждый пиксель изображения будет иметь определенный цвет и яркость. Инверсная графика работает иначе и пытается найти 3D-модель, которая будет производить интенсивность пикселей в данном изображении. Найдя подходящую модель, вы сможете понять, на что смотрит система — скажем, на куб, наклоненный под углом 45 градусов.
В теории обратная графика звучит просто, но на практике существует множество трехмерных моделей, которые могли привести к расположению пикселей, поэтому вам необходимо использовать статистический подход, чтобы найти лучшую модель.
Изображение — это вероятностный язык, который позволяет применять стандартный шаблон к ряду задач обратной графики.

Язык сцены используется для описания искомого объекта как параметризованной 3D-модели. Например, лицо — это два глаза, расположенные симметрично относительно носа с параметрами, которые определяют размер и разделение глаз. Затем сцена визуализируется и сравнивается с наблюдаемым изображением. Чтобы сделать сравнение быстрее, слой представления используется для преобразования наблюдаемого и сгенерированного изображения в меньший набор функций. Эти функции могут быть даже основаны на выходе нейронной сети, примененной к обоим изображениям.
Механизм вывода — это то место, где происходит обучение. При этом используется какое-то настраиваемое представление распределения вероятностей — либо семплер Монте-Карло с цепью Маркова (MCMC), либо что-то более сложное, например, машина Гельмгольца.
Это очень общий подход, и язык позволяет объединять различные приложения всего в несколько строк кода. Конечно, за кулисами много кода выполняет большую работу.
Было решено три демонстрационных задания.
Первым было построение 3D-модели лица на основе только его 2D-изображения. Получив 3D-модель, вы можете создавать виды лица с разных позиций, ориентации и условий освещения.

Вторая задача заключалась в оценке позы человека в 3D. Учитывая набор фотографий, выясните, как тело расположено в 3D.
Третья задача заключалась в восстановлении трехмерной CAD-модели твердого тела из двухмерного изображения.
Во всех случаях система работает так же хорошо, как и лучшие альтернативные методы.
Что интересно в этом подходе, на самом деле не то, насколько он успешен. Дело в том, что у нас есть простой язык, который позволяет выражать сложный анализ с помощью моделей синтеза. Кроме того, анализ путем синтеза выводит нас далеко за рамки простых задач распознавания, с которыми, как было доказано, хорошо справляются нейронные сети.
Когда у вас есть модель, которая может воспроизводить 2D-изображение, вы понимаете сцену, которая намного превосходит простую классификацию на «собаку» или «кошку».
Нейронная сеть — это пример раннего подхода к ИИ, который изначально не работал из-за отсутствия мощных машин, как и анализ путем синтеза. Возможно, эти двое можно было бы заставить работать вместе. Это может быть даже подход, который устраняет чувствительность нейронных сетей к небольшим возмущениям на входе, что заставляет их классифицировать визуально идентичные изображения как разные вещи, как описано в книге «Недостаток, скрывающийся в каждой глубокой нейронной сети».


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