Как камеры следят за нами на улицах российских городов. И как их обмануть

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

8 примеров использования компьютерного зрения

Вероника Елкина

1. Беспилотные автомобили

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

Продукты компании NVIDIA, которая уже сделала большие шаги в области глубинного обучения, используются во многих беспилотных автомобилях. Например, суперкомпьютер NVIDIA Drive PX 2 уже служит базовой платформой для беспилотников , Volvo, Audi, BMW и Mercedes-Benz.

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

3. Интерфейсы

Технологии отслеживания движения глаз с помощью компьютерного зрения используется не только в игровых ноутбуках, но и в обычных, и корпоративных компьютерах, для того чтобы ими могли управлять люди, которые не могут воспользоваться руками. Tobii Dynavox PCEye Mini представляет собой устройство размером с шариковую ручку, которое станет идеальным и незаметным аксессуаром для планшетов и ноутбуков. Также эта технология отслеживания движения глаз используется в новых игровых и обычных ноутбуках Asus и смартфонах Huawei.

Тем временем продолжает развиваться жестовое управление (технология компьютерного зрения, которое может распознавать особые движения руками). Теперь оно будет использоваться в будущих автомобилях BMW и Volkswagen.

Новый интерфейс HoloActive Touch позволяет пользователям управлять виртуальными 3D-экранами и нажимать кнопки в пространстве. Можно сказать, что он представляет собой простую версию самого настоящего голографического интерфейса Железного человека (он даже точно так же реагирует легкой вибрацией на нажатие элементов). Благодаря таким технологиям, как ManoMotion , можно будет легко добавить жестовое управление практически в любое устройство. Причем для получения контроля над виртуальным 3D-объектом с помощью жестов ManoMotion использует обычную 2D-камеру, так что вам не понадобится никакое дополнительное оборудование.

Устройство eyeSight’s Singlecue Gen 2 использует компьютерное зрение (распознавание жестов, анализ лица, определение действий) и позволяет управлять с помощью жестов телевизором, «умной» системой освещения и холодильниками.

Hayo

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

4. Бытовые приборы

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

Элегантное устройство FridgeCam от Smarter крепится к стенке холодильника и может определять, когда истекает срок годности, сообщать, что именно находится в холодильнике, и даже рекомендовать рецепты блюд из выбранных продуктов. Устройство продается по неожиданно доступной цене - всего за $100.

5. Цифровые вывески

Компьютерное зрение может изменить то, как выглядят баннеры и реклама в магазинах, музеях, стадионах и развлекательных парках.

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

6. Смартфоны и дополненная реальность

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

Однако в ноябре Lenovo выпустила Phab2 - первый смартфон с поддержкой технологии Google Tango . Эта технология представляет собой комбинацию датчиков и ПО с компьютерным зрением, которая может распознавать изображения, видео и окружающий мир в реальном времени с помощью линзы фотокамеры.

На выставке CES Asus впервые представила ZenPhone AR - смартфон с поддержкой Tango и Daydream VR от Google. Смартфон не только может отслеживать движения, анализировать окружение и точно определять положение, но и использует процессор Qualcomm Snapdragon 821, который позволяет распределять загрузку данных компьютерного зрения. Все это помогает применять настоящие технологии дополненной реальности, которые на самом деле анализируют обстановку через камеру смартфона.

Позже в этом году выйдет Changhong H2 - первый смартфон со встроенным молекулярным сканером. Он собирает свет, который отражается от объекта и разбивается на спектр, и затем анализирует его химический состав. Благодаря программному обеспечению, использующему компьютерное зрение, полученная информация может использоваться для разных целей - от выписки лекарств и подсчета калорий до определения состояния кожи и расчета уровня упитанности.

15 сентября в Москве состоится конференция по большим данным Big Data Conference . В программе - бизнес-кейсы, технические решения и научные достижения лучших специалистов в этой области. Приглашаем всех, кто заинтересован в работе с большими данными и хочет их применять в реальном бизнесе. Следите за Big Data Conference в

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

Лекция рассчитана на старшеклассников – студентов Малого ШАДа, но и взрослые смогут почерпнуть из нее много полезного.

Возможность видеть и распознавать объекты – естественная и привычная возможность для человека. Однако для компьютера пока что – это чрезвычайно сложная задача. Сейчас предпринимаются попытки научить компьютер хотя бы толике того, что человек использует каждый день, даже не замечая того.

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

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

Компьютеру все это дается гораздо сложнее. И в первую очередь из-за проблемы накопления опыта. Нужно собрать огромное количество примеров, что пока что не очень получается.

Кроме того, человек при распознавании объекта всегда учитывает окружение. Если выдернуть объект из привычного окружения, узнать его станет заметно труднее. Тут тоже играет роль накопленный за жизнь опыт, которого у компьютера нет.

Мальчик или девочка?
Представим, что нам нужно научиться с одного взгляда определять пол человека (одетого!) по фотографии. Для начала нужно определить факторы, которые могут указывать на принадлежность к тому или иному объекту. Кроме того, нужно собрать обучающее множество. Желательно, чтобы оно было репрезентативным. В нашем случае возьмем в качестве обучающей выборки всех присутствующих в аудитории. И попробуем на их основе найти отличительные факторы: например, длина волос, наличие бороды, макияжа и одежда (юбка или брюки). Зная, у какого процента представителей одного пола встречались те или иные факторы, мы сможем создать достаточно четкие правила: наличие тез или иных комбинаций факторов с некоей вероятностью позволит нам сказать, человек какого пола на фотографии.
Машинное обучение
Конечно, это очень простой и условный пример с небольшим количеством верхнеуровневых факторов. В реальных задачах, которые ставятся перед системами компьютерного зрения, факторов гораздо больше. Определять их вручную и просчитывать зависимости – непосильная для человека задача. Поэтому в таких случаях без машинного обучения не обойтись никак. Например, можно определить несколько десятков первоначальных факторов, а также задать положительные и отрицательные примеры. А уже зависимости между этими факторами подбираются автоматически, составляется формула, которая позволяет принимать решения. Достаточно часто и сами факторы выделяются автоматически.
Изображение в цифрах
Чаще всего для хранения цифровых изображений используется цветовое пространство RGB. В нем каждой из трех осей (каналов) присваивается свой цвет: красный, зеленый и синий. На каждый канал выделяется по 8 бит информации, соответственно, интенсивность цвета на каждой оси может принимать значения в диапазоне от 0 до 255. Все цвета в цифровом пространстве RGB получаются путем смешивания трех основных цветов.

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

Но существуют и другие цветовые пространства. Весьма интересно в нашем контексте пространство HSV (Hue, Saturation, Value). В нем присутствует ось Value, обозначающая количество света. На него выделен отдельный канал, в отличие от RGB, где это значение нужно вычислять каждый раз. Фактически, это черно-белая версия изображения, с которой уже можно работать. Hue представляется в виде угла и отвечает за основной тон. От значения Saturation (расстояние от центра к краю) зависит насыщенность цвета.

HSV гораздо ближе к тому, как мы представляем себе цвета. Если показать человеку в темноте красный и зеленый объект, он не сможет различить цвета. В HSV происходит то же самое. Чем ниже по оси V мы продвигаемся, тем меньше становится разница между оттенками, так как снижается диапазон значений насыщенности. На схеме это выглядит как конус, на вершине которого предельно черная точка.

Цвет и свет
Почему так важно иметь данные о количестве света? В большинстве случаев в компьютерном зрении цвет не имеет никакого значения, так как не несет никакой важной информации. Посмотрим на две картинки: цветную и черно-белую. Узнать все объекты на черно-белой версии не намного сложнее, чем на цветной. Дополнительной нагрузки для нас цвет в данном случае не несет никакой, а вычислительных проблем создает великое множество. Когда мы работаем с цветной версией изображения, объем данных, грубо говоря, возводится в степень куба.

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

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

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

Детектирование и сегментация
В компьютерном зрении этот процесс называется детектированием и сегментацией. Сегментация – это разделение изображения на множество частей, связанных друг с другом визуально, либо семантически. А детектирование – это обнаружение объектов на изображении. Детектирование нужно четко отличать от распознавания. Допустим, на той же картинке с автомобилем можно детектировать дорожный знак. Но распознать его невозможно, так как он повернут к нам обратной стороной. Так же при распознавании лиц детектор может определить расположение лица, а «распознаватель» уже скажет, чье это лицо.

Дескрипторы и визуальные слова
Существует много разных подходов к распознаванию.

Например, такой: на изображении сначала нужно выделить интересные точки или интересные места. Что-то отличное от фона: яркие пятна, переходы и т.д. Есть несколько алгоритмов, позволяющих это сделать.

Один из наиболее распространенных способов называется Difference of Gaussians (DoG). Размывая картинку с разным радиусом и сравнивая получившиеся результаты, можно находить наиболее контрастные фрагменты. Области вокруг этих фрагментов и являются наиболее интересными.

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

Чтобы одинаковые дескрипторы признавались таковыми независимо от поворотов в плоскости, они разворачиваются так, чтобы самые большие векторы были повернуты в одну сторону. Делается это далеко не всегда. Но если нужно обнаружить два одинаковых объекта, расположенных в разных плоскостях.

Дескрипторы можно записывать в числовом виде. Дескриптор можно представить в виде точки в многомерном массиве. У нас на иллюстрации двумерный массив. В него попали наши дескрипторы. И мы можем их кластеризовать – разбить на группы.

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

Чтобы находить не просто одинаковые картинки, а изображения похожих объектов, требуется взять множество изображений этого объекта и множество картинок, на которых его нет. Затем выделить из них дескрипторы и кластеризовать их. Далее нужно выяснить, в какие кластеры попали дескрипторы с изображений, на которых присутствовал нужный нам объект. Теперь мы знаем, что если дескрипторы с нового изображения попадают в те же кластеры, значит, на нем присутствует искомый объект.

Совпадение дескрипторов – еще не гарантия идентичности содержащих их объектов. Один из способов дополнительной проверки – геометрическая валидация. В этом случае проводится сравнение расположения дескрипторов относительно друг друга.

Распознавание и классификация
Для простоты представим, что мы можем разбить все изображения на три класса: архитектура, природа и портрет. В свою очередь, природу мы можем разбить на растения животных и птиц. А уже поняв, что это птица, мы можем сказать, какая именно: сова, чайка или ворона.

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

Интерес к компьютерному зрению возник одним из первых в области искусственного интеллекта наряду с такими задачами, как автоматическое доказательство теорем и интеллектуальные игры. Даже архитектура первой искусственной нейронной сети - перцептрона - была предложена Фрэнком Розенблаттом, исходя из аналогии с сетчаткой глаза, а ее исследование проводилось на примере задачи распознавания изображений символов.

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

Прогресс в области компьютерного зрения определяется двумя факторами: развитие теории, методов, и развитие аппаратного обеспечения. Долгое время теория и академические исследования опережали возможности практического использования систем компьютерного зрения. Условно можно выделить ряд этапов развития теории.

  • К 1970-м годам сформировался основной понятийный аппарат в области обработки изображений, являющийся основой для исследования проблем зрения. Также были выделены основные задачи, специфические для машинного зрения, связанные с оценкой физических параметров сцены (дальности, скоростей движения, отражательной способности поверхностей и т. д.) по изображениям, хотя ряд этих задач все еще рассматривался в весьма упрощенной постановке для «мира игрушечных кубиков».
  • К 80-м сформировалась теория уровней представления изображений в методах их анализа. Своего рода отметкой окончания этого этапа служит книга Дэвида Марра «Зрение. Информационный подход к изучению представления и обработки зрительных образов».
  • К 90-м оказывается сформированным систематическое представление о подходах к решению основных, уже ставших классическими, задач машинного зрения.
  • С середины 90-х происходит переход к созданию и исследованию крупномасштабных систем компьютерного зрения, предназначенных для работы в различных естественных условиях.
  • Текущий этап наиболее интересен развитием методов автоматического построения представлений изображений в системах распознавания изображений и компьютерного зрения на основе принципов машинного обучения.

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

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

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

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

В первую очередь, общеприменимые алгоритмы обработки изображений стали доступны для спецпроцессоров - цифровых сигнальных процессоров (ЦСП) и программируемых логических интегральных схем (ПЛИС), нередко совместно использовавшихся и находящих широкое применение до сих пор в бортовых и промышленных системах.

Однако действительно массовое применение методы компьютерного зрения получили лишь менее десяти лет назад, с достижением соответствующего уровня производительности процессоров у персональных и мобильных компьютеров. Таким образом, в плане практического применения системы компьютерного зрения прошли ряд этапов: этап индивидуального решения (как в части аппаратного обеспечения, так и алгоритмов) конкретных задач; этап применения в профессиональных областях (в особенности в промышленности и оборонной сфере) с использованием спецпроцессоров, специализированные системы формирования изображений и алгоритмы, предназначенные для работы в условиях низкой априорной не­определенности, однако эти решения допускали масштабирование; и этап массового применения.

Как видно, система машинного зрения включает следующие основные компоненты:

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

Применение в робототехнике

Робототехника является традиционной областью применения машинного зрения. Однако основная доля парка роботов долгое время приходилась на промышленность, где очувствление роботов не было лишним, но благодаря хорошо контролируемым условиям (низкой недетерминированности среды) возможными оказывались узкоспециализированные решения, в том числе и для задач машинного зрения. Кроме того, промышленные приложения допускали использование дорогостоящего оборудования, включающего оптические и вычислительные системы.

В этой связи показательно (хотя и не связано только с системами компьютерного зрения) то, что доля парка роботов, приходящаяся на промышленных роботов, стала менее 50% лишь в начале 2000-х годов . Стала развиваться робототехника, предназначенная для массового потребителя. Для бытовых роботов, в отличие от промышленных, критичной является стоимость, а также время автономной работы, что подразумевает использование мобильных и встраиваемых процессорных систем. При этом такие роботы должны функционировать в недетерминированных средах. К примеру, в промышленности долгое время (да и по сей день) использовались фотограмметрические метки, наклеиваемые на объекты наблюдения или калибровочные доски, - для решения задач определения внутренних параметров и внешней ориентации камер. Естественно, необходимость наклеивать пользователю такие метки на предметы интерьера существенно ухудшила бы потребительские качества бытовых роботов. Не удивительно, что рынок бытовых роботов ждал для начала своего бурного развития достижения определенного уровня технологий, что произошло в конце 90-х.

Точкой отсчета этого события может служить выпуск первой версии робота AIBO (Sony), который, несмотря на сравнительно высокую цену ($2500), пользовался большим спросом. Первая партия этих роботов в количестве 5000 экземпляров была раскуплена в Интернете за 20 мин., вторая партия (также в 1999 г.) - за 17 с, и далее темп продаж составлял порядка 20 000 экземпляров в год.

Также в конце 90-х появились в массовом производстве устройства, которые можно было бы назвать бытовыми роботами в полном смысле этого слова. Наиболее типичными автономными бытовыми роботами являются роботы-пылесосы. Первой моделью, выпущенной в 2002 г. фирмой iRobot, стала Roomba. Затем появились роботы-пылесосы, выпущенные фирмами LG Electronics, Samsung и др. К 2008 г. суммарные объемы продаж роботов-пылесосов в мире составили более полумиллиона экземпляров в год.

Показательно то, что первые роботы-пылесосы, оснащенные системами компьютерного зрения, появились лишь в 2006 г. К этому моменту использование мобильных процессоров типа семейства ARM с частотой 200 МГц позволяло добиться сопоставления изображений трехмерных сцен внутри помещений на основе инвариантных дескрипторов ключевых точек в целях сенсорной локализации робота с частотой порядка 5 кадров/с. Использование зрения для определения роботом своего местоположения стало экономически оправданным, хотя еще недавно для этих целей производители предпочитали использовать сонары.

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

Таким образом, современная робототехника требует решения широкого круга задач компьютерного зрения, включающего, в частности:

  • набор задач, связанных с ориентацией во внешнем пространстве (например, задачу одновременной локализации и картографирования - Simultaneous Localization and Mapping, SLAM), определением расстояний до объектов и т. д;
  • задачи по распознаванию различных объектов и интерпретации сцен в целом;
  • задачи по обнаружению людей, распознаванию их лиц и анализу эмоций.

Системы помощи водителю

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

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

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

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

Одним из существенных технических достижений стал беспилотный автомобиль Google, который, однако, использует богатый набор сенсоров помимо видеокамеры, а также не работает на незнакомых (заранее не отснятых) дорогах и при плохих погодных условиях.

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

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

Мобильные приложения

Еще более массовыми по сравнению с бытовой робототехникой и системами помощи водителю являются задачи компьютерного зрения для персональных мобильных устройств, таких как смартфоны, планшеты и т. д. В частности, число мобильных телефонов неуклонно растет и уже практически превысило по численности население Земли. При этом основная доля телефонов выпускается сейчас с камерами. В 2009 г. количество таких телефонов превысило миллиард, что создает колоссальный по размерам рынок для систем обработки изображений и компьютерного зрения, который далек от насыщения, несмотря на многочисленные R&D-проекты, проводящиеся как самими фирмами - изготовителями мобильных устройств, так и большим числом стартапов.

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

Больший интерес, однако, представляют новые приложения, которые ранее отсутствовали на рынке. Широкий класс таких приложений для персональных мобильных устройств связан с задачами дополненной реальности, которые могут быть весьма разнообразными. Сюда относятся игровые приложения (требующие согласованного отображения виртуальных объектов поверх изображения реальной сцены при перемещении камеры), а также различные развлекательные приложения в целом, туристические приложения (распознавание достопримечательностей с выводом информации о них), а также многие другие приложения, связанные с информационным поиском и распознаванием объектов: распознавание надписей на иностранных языках с отображением их перевода, распознавание визитных карточек с автоматическим занесением информации в телефонную книгу, а также распознавание лиц с извлечением информации из телефонной книги, распознавание постеров фильмов (с заменой изображения постера на трейлер фильма) и т. д.

Системы дополненной реальности могут создаваться в виде специализированных устройств типа Google Glass, что еще больше увеличивает инновационный потенциал методов компьютерного зрения.

Таким образом, класс задач компьютерного зрения, решения которых могут быть применены в мобильных приложениях, крайне широк. Большой набор приложений есть у методов сопоставления (отождествления сопряженных точек) изображений, в том числе с оценкой трехмерной структуры сцены и определением изменения ориентации камеры и методов распознавания объектов, а также анализа лиц людей. Однако может быть предложено неограниченно большое число мобильных приложений, для которых будет требоваться разработка специализированных методов компьютерного зрения. Приведем лишь два таких примера: запись на мобильный телефон с автоматической дешифрацией партии в некоторой настольной игре и реконструкция траектории движения клюшки для гольфа при нанесении удара.

Информационный поиск и обучение

Многие задачи дополненной реальности тесно связаны с информационным поиском (так что некоторые системы, такие как Google Goggles, сложно отнести к какой-то конкретной области), который представляет существенный самостоятельный интерес.

Задачи поиска изображений по содержанию также разнообразны. Они включают сопоставление изображений при поиске изображений уникальных объектов, например архитектурных сооружений, скульптур, картин и т. д., обнаружение и распознавание на изображениях объектов классов разной степени общности (автомобилей, животных, мебели, лиц людей и т. д., а также их подклассов), категоризация сцен (город, лес, горы, побережье и т. д.). Эти задачи могут встречаться в различных приложениях - для сортировки изображений в домашних цифровых фотоальбомах, для поиска товаров по их изображениям в интернет-магазинах, для извлечения изображений в геоинформационных системах, для систем биометрической идентификации, для специализированного поиска изображений в социальных сетях (например, поиска лиц людей, привлекательных для пользователя) и т. д., вплоть до поиска изображений в Интернете.

Как уже достигнутый прогресс, так и перспективы его продолжения видны на примере конкурса Large Scale Visual Recognition Challenge , в котором количество распознаваемых классов увеличилось с 20 в 2010 г. до 200 в 2013-м.

Распознавание объектов стольких классов сейчас немыслимо без привлечения методов машинного обучения в область компьютерного зрения. Одно из крайне популярных направлений здесь - сети глубокого обучения, предназначенные для автоматического построения многоуровневых систем признаков, по которым происходит дальнейшее распознавание. Востребованность этого направления видна по фактам приобретения различных стартапов такими корпорациями, как Google и Facebook. Так, корпорацией Google в 2013 г. была куплена фирма DNNresearch, а в начале 2014 г. - стартап DeepMind. Причем за покупку последнего стартапа конкурировал и Facebook (который до этого нанял такого специалиста, как Ян Ле Кун, для руководства лабораторией, ведущей разработки в области глубокого обучения), а стоимость покупки составила $400 млн. Стоит отметить, что и упоминавшийся метод , выигравший в конкурсе по распознаванию дорожных знаков, также основан на сетях глубокого обучения.

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

Заключение

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

Восстановление 3D-профиля листа металла, наблюдаемого с помощью микроскопа, методом «глубина из фокусировки»

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

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

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

Что такое компьютерное зрение? Это способность компьютера «видеть»

Зрение — это важный источник информации для человека, с помощью него мы получаем, по разным данным, от 70 до 90% всей информации. И, естественно, если мы хотим создать умную машину, нам необходимо реализовать те же навыки и в компьютере.

Задача компьютерного зрения может быть сформулирована достаточно нечетко. Что такое «видеть»? Это понимать, что где расположено, просто глядя. В этом и заключены различия компьютерного зрения и зрения человека. Зрение для нас - это о мире, а также источник метрической информации - то есть способность понимать расстояния и размеры.

Семантическое ядро изображения

Глядя на изображение, мы можем охарактеризовать его по ряду признаков, так сказать, извлечь семантическую информацию.

Например, глядя на эту фотографию, мы можем сказать, что это вне помещения. Что это город, уличное движение. Что здесь есть автомобили. По конфигурации здания и по иероглифам мы можем догадаться, что это Юго-Восточная Азия. По портрету Мао Цзэдуна понимаем, что это Пекин, а если кто видел видеотрансляции или сам там побывал, сможет догадаться, что это знаменитая площадь Тяньаньмэнь.

Что мы можем ещё сказать о картинке, рассматривая её? Можем выделить объекты на изображении, сказать, вот там люди, здесь ближе - ограда. Вот зонтики, вот здание, вот плакаты. Это примеры классов очень важных объектов, поиском которых занимаются на данный момент.

Ещё мы можем извлечь некоторые признаки или атрибуты объектов. Например, здесь мы можем определить, что это не портрет какого-то рядового китайца, а именно Мао Цзэдуна.

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

Значение расстояний и длин в компьютерном зрении

Очень важной является метрическая информация в науке про компьютерное зрение.Это всевозможные расстояния. Например, для марсохода это особенно важно, потому что команды с Земли идут порядка 20 минут и ответ столько же. Соответственно, связь туда-обратно - 40 минут. И если мы будем составлять план движения по командам Земли, то нужно это учитывать.

Удачно технологии компьютерного зрения интегрированы в видеоиграх. По видео можно построить трёхмерные модели объектов, людей, а по пользовательским фотографиям можно восстановить трёхмерные модели городов. А затем гулять по ним.

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

Анализ, распознавание образов - путь к созданию высшего разума

Разберем эти понятия отдельно.

Обработка изображений - это область алгоритмов, в которых на входе и на выходе - изображение, и мы уже с ним что-то делаем.

Анализ изображения - это область компьютерного зрения, которое фокусируется на работе с двухмерным изображением и делает из этого выводы.

Распознавание образов - это абстрактная математическая дисциплина, которая распознаёт данные в виде векторов. То есть на входе - вектор и нам что-то с ним нужно делать. Откуда этот вектор, нам не так уж принципиально знать.

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

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

Роботы могут «видеть»

И последнее - это машинное зрение. Под машинным зрением подразумевается зрение роботов. То есть решение некоторых производственных задач. Можно сказать, что компьютерное зрение - это одна большая наука. Она объединяет в себе некоторые другие науки частично. А когда компьютерное зрение получает какое-то конкретное приложение, то оно превращается в машинное зрение.

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

На пороге в мир искусственного интеллекта

Плюс области - это сложно! Существенная часть мозга отвечает за зрение и считается, что если научить компьютер «видеть», то есть в полной мере применить компьютерное зрение, то это одна из полных задач искусственного интеллекта. Если мы сможем решить проблему на уровне человека, скорее всего, одновременно мы решим задачу ИИ. Что очень хорошо! Или не очень хорошо, если смотреть «Терминатор 2».

Почему зрение — это сложно? Потому что изображение одних и тех же объектов может сильно разниться в зависимости от внешних факторов. В зависимости от точек наблюдения объекты выглядят по-разному.

К примеру, одна и та же фигура, снятая с разных ракурсов. И что самое интересное, у фигуры может быть один глаз, два глаза или полтора. А в зависимости от контекста (если это фото человека в футболке с нарисованными глазами), то глаз может быть и больше двух.

Компьютер ещё не понимает, но уже «видит»

Ещё один фактор, создающий сложности - это освещение. Одна и та же сцена с разным освещением будет выглядеть по-разному. Размер объектов может варьироваться. Причем объектов любых классов. Ну как можно сказать о человеке, что его рост 2 метра? Никак. Рост человека может составлять и 2.3 м, и 80 см. Как и объектов других типов, тем не менее это объекты одного и того же класса.

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

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

Ещё одна проблема - это движение. Объекты в движении претерпевают невообразимые деформации.

Многие объекты очень изменчивы. Вот, к примеру, на двух фото ниже объекты типа "кресло".

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

Интеграция компьютерного зрения в различные платформы

В массы компьютерное зрение начало проникать ещё в 2001 году, когда создали первые детекторы лиц. Сделали это два автора: Viola, Jones. Это был первый быстрый и достаточно надёжный алгоритм, который продемонстрировал мощь методов машинного обучения.

Сейчас у компьютерного зрения есть достаточно новое практическое применение - распознавание человека по лицу.

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

Требования к паспортным фотографиям во многом обусловлены особенностью алгоритмов распознавания по лицу.

К примеру, если у вас есть биометрический паспорт, то в некоторых современных аэропортах вы можете воспользоваться автоматической системой паспортного контроля.

компьютерного зрения - это способность распознавать произвольный текст

Возможно, кто-то пользовался системой распознавания текста. Одна из таких - это Fine Reader, очень популярная в Рунете система. Есть много форм, где нужно заполнять данные, они прекрасно сканируются, информация распознаётся системой очень хорошо. А вот с произвольным текстом на изображении дело обстоит гораздо хуже. Эта задача пока остаётся нерешенной.

Игры с участием компьютерного зрения, захват движения

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

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

Вот так миллион изображений и неделя счётного времени суперкомпьютера позволили создать алгоритм, который потребляет 12% мощности одного процессора и позволяет воспринимать позу человека в реальном времени. Это система Microsoft Kinect (2010 год).

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

Примеры компьютерного зрения: трёхмерные и двухмерные карты сейчас делаются с его помощью. Карты для навигаторов автомобилей регулярно обновляются по данным с видеорегистраторов.

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

Роботы повсюду

Робототехника в нынешнее время повсюду, без неё никак. Сейчас существуют автомобили, в которых есть специальные камеры, распознающие пешеходов и дорожные знаки, чтобы передавать команды водителю (такая в некотором смысле компьютерная программа для зрения, помогающая автолюбителю). И есть полностью автоматизированные роботы-автомобили, но они не могут полагаться только на систему видеокамер без использования большого количества дополнительной информации.

Современный фотоаппарат — это аналог камеры-обскура

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

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

Ниже вы видите первое цифровое изображение в мире.

Но что на этом изображении отсутствует? Цвет. А что такое цвет?

Психологическое восприятие цвета

Цвет - это то, что мы видим. Цвет объекта, одного и того же предмета для человека и кошки будет разным. Так как у нас (у людей) и у животных оптическая система - зрение, отличается. Поэтому цвет - это психологическое свойство нашего зрения, возникающее при наблюдении объектов и света. А не физическое свойство объекта и света. Цвет - это результат взаимодействия компонентов света, сцены и нашей зрительной системы.

Программирование компьютерного зрения на Python с помощью библиотек

Если вы решили всерьёз заняться изучением компьютерного зрения, стоит сразу приготовиться к ряду трудностей, наука эта не самая лёгкая и прячет в себе ряд подводных камней. Но "Программирование компьютерного зрения на Python" в авторстве Яна Эрика Солема - это книга, в которой все излагается максимально простым языком. Здесь вы познакомитесь с методами распознавания различных объектов в 3D, научитесь работать со стереоизображениями, виртуальной реальностью и многими другими приложениями компьютерного зрения. В книге достаточно примеров на языке Python. Но пояснения представлены, так сказать, обобщённо, дабы не перегрузить слишком научной и тяжелой информацией. Труд подойдёт студентам, просто любителям и энтузиастам. Скачать эту книгу и другие про компьютерное зрение (pdf-формата) можно в сети.

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

Компания "Майкрософт" предоставляет свои Api-сервисы, способные обучить нейросети для работы именно с изображениями лиц. Есть возможность применять также компьютерное зрение, Python использующее в качестве языка программирования.

Интерес к компьютерному зрению возник одним из первых в области искусственного интеллекта наряду с такими задачами, как автоматическое доказательство теорем и интеллектуальные игры. Даже архитектура первой искусственной нейронной сети - перцептрона - была предложена Фрэнком Розенблаттом, исходя из аналогии с сетчаткой глаза, а ее исследование проводилось на примере задачи распознавания изображений символов.

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

Прогресс в области компьютерного зрения определяется двумя факторами: развитие теории, методов, и развитие аппаратного обеспечения. Долгое время теория и академические исследования опережали возможности практического использования систем компьютерного зрения. Условно можно выделить ряд этапов развития теории.

  • К 1970-м годам сформировался основной понятийный аппарат в области обработки изображений, являющийся основой для исследования проблем зрения. Также были выделены основные задачи, специфические для машинного зрения, связанные с оценкой физических параметров сцены (дальности, скоростей движения, отражательной способности поверхностей и т. д.) по изображениям, хотя ряд этих задач все еще рассматривался в весьма упрощенной постановке для «мира игрушечных кубиков».
  • К 80-м сформировалась теория уровней представления изображений в методах их анализа. Своего рода отметкой окончания этого этапа служит книга Дэвида Марра «Зрение. Информационный подход к изучению представления и обработки зрительных образов».
  • К 90-м оказывается сформированным систематическое представление о подходах к решению основных, уже ставших классическими, задач машинного зрения.
  • С середины 90-х происходит переход к созданию и исследованию крупномасштабных систем компьютерного зрения, предназначенных для работы в различных естественных условиях.
  • Текущий этап наиболее интересен развитием методов автоматического построения представлений изображений в системах распознавания изображений и компьютерного зрения на основе принципов машинного обучения.

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

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

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

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

В первую очередь, общеприменимые алгоритмы обработки изображений стали доступны для спецпроцессоров - цифровых сигнальных процессоров (ЦСП) и программируемых логических интегральных схем (ПЛИС), нередко совместно использовавшихся и находящих широкое применение до сих пор в бортовых и промышленных системах.

Однако действительно массовое применение методы компьютерного зрения получили лишь менее десяти лет назад, с достижением соответствующего уровня производительности процессоров у персональных и мобильных компьютеров. Таким образом, в плане практического применения системы компьютерного зрения прошли ряд этапов: этап индивидуального решения (как в части аппаратного обеспечения, так и алгоритмов) конкретных задач; этап применения в профессиональных областях (в особенности в промышленности и оборонной сфере) с использованием спецпроцессоров, специализированные системы формирования изображений и алгоритмы, предназначенные для работы в условиях низкой априорной не­определенности, однако эти решения допускали масштабирование; и этап массового применения.

Как видно, система машинного зрения включает следующие основные компоненты:

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

Применение в робототехнике

Робототехника является традиционной областью применения машинного зрения. Однако основная доля парка роботов долгое время приходилась на промышленность, где очувствление роботов не было лишним, но благодаря хорошо контролируемым условиям (низкой недетерминированности среды) возможными оказывались узкоспециализированные решения, в том числе и для задач машинного зрения. Кроме того, промышленные приложения допускали использование дорогостоящего оборудования, включающего оптические и вычислительные системы.

В этой связи показательно (хотя и не связано только с системами компьютерного зрения) то, что доля парка роботов, приходящаяся на промышленных роботов, стала менее 50% лишь в начале 2000-х годов . Стала развиваться робототехника, предназначенная для массового потребителя. Для бытовых роботов, в отличие от промышленных, критичной является стоимость, а также время автономной работы, что подразумевает использование мобильных и встраиваемых процессорных систем. При этом такие роботы должны функционировать в недетерминированных средах. К примеру, в промышленности долгое время (да и по сей день) использовались фотограмметрические метки, наклеиваемые на объекты наблюдения или калибровочные доски, - для решения задач определения внутренних параметров и внешней ориентации камер. Естественно, необходимость наклеивать пользователю такие метки на предметы интерьера существенно ухудшила бы потребительские качества бытовых роботов. Не удивительно, что рынок бытовых роботов ждал для начала своего бурного развития достижения определенного уровня технологий, что произошло в конце 90-х.

Точкой отсчета этого события может служить выпуск первой версии робота AIBO (Sony), который, несмотря на сравнительно высокую цену ($2500), пользовался большим спросом. Первая партия этих роботов в количестве 5000 экземпляров была раскуплена в Интернете за 20 мин., вторая партия (также в 1999 г.) - за 17 с, и далее темп продаж составлял порядка 20 000 экземпляров в год.

Также в конце 90-х появились в массовом производстве устройства, которые можно было бы назвать бытовыми роботами в полном смысле этого слова. Наиболее типичными автономными бытовыми роботами являются роботы-пылесосы. Первой моделью, выпущенной в 2002 г. фирмой iRobot, стала Roomba. Затем появились роботы-пылесосы, выпущенные фирмами LG Electronics, Samsung и др. К 2008 г. суммарные объемы продаж роботов-пылесосов в мире составили более полумиллиона экземпляров в год.

Показательно то, что первые роботы-пылесосы, оснащенные системами компьютерного зрения, появились лишь в 2006 г. К этому моменту использование мобильных процессоров типа семейства ARM с частотой 200 МГц позволяло добиться сопоставления изображений трехмерных сцен внутри помещений на основе инвариантных дескрипторов ключевых точек в целях сенсорной локализации робота с частотой порядка 5 кадров/с. Использование зрения для определения роботом своего местоположения стало экономически оправданным, хотя еще недавно для этих целей производители предпочитали использовать сонары.

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

Таким образом, современная робототехника требует решения широкого круга задач компьютерного зрения, включающего, в частности:

  • набор задач, связанных с ориентацией во внешнем пространстве (например, задачу одновременной локализации и картографирования - Simultaneous Localization and Mapping, SLAM), определением расстояний до объектов и т. д;
  • задачи по распознаванию различных объектов и интерпретации сцен в целом;
  • задачи по обнаружению людей, распознаванию их лиц и анализу эмоций.

Системы помощи водителю

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

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

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

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

Одним из существенных технических достижений стал беспилотный автомобиль Google, который, однако, использует богатый набор сенсоров помимо видеокамеры, а также не работает на незнакомых (заранее не отснятых) дорогах и при плохих погодных условиях.

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

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

Мобильные приложения

Еще более массовыми по сравнению с бытовой робототехникой и системами помощи водителю являются задачи компьютерного зрения для персональных мобильных устройств, таких как смартфоны, планшеты и т. д. В частности, число мобильных телефонов неуклонно растет и уже практически превысило по численности население Земли. При этом основная доля телефонов выпускается сейчас с камерами. В 2009 г. количество таких телефонов превысило миллиард, что создает колоссальный по размерам рынок для систем обработки изображений и компьютерного зрения, который далек от насыщения, несмотря на многочисленные R&D-проекты, проводящиеся как самими фирмами - изготовителями мобильных устройств, так и большим числом стартапов.

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

Больший интерес, однако, представляют новые приложения, которые ранее отсутствовали на рынке. Широкий класс таких приложений для персональных мобильных устройств связан с задачами дополненной реальности, которые могут быть весьма разнообразными. Сюда относятся игровые приложения (требующие согласованного отображения виртуальных объектов поверх изображения реальной сцены при перемещении камеры), а также различные развлекательные приложения в целом, туристические приложения (распознавание достопримечательностей с выводом информации о них), а также многие другие приложения, связанные с информационным поиском и распознаванием объектов: распознавание надписей на иностранных языках с отображением их перевода, распознавание визитных карточек с автоматическим занесением информации в телефонную книгу, а также распознавание лиц с извлечением информации из телефонной книги, распознавание постеров фильмов (с заменой изображения постера на трейлер фильма) и т. д.

Системы дополненной реальности могут создаваться в виде специализированных устройств типа Google Glass, что еще больше увеличивает инновационный потенциал методов компьютерного зрения.

Таким образом, класс задач компьютерного зрения, решения которых могут быть применены в мобильных приложениях, крайне широк. Большой набор приложений есть у методов сопоставления (отождествления сопряженных точек) изображений, в том числе с оценкой трехмерной структуры сцены и определением изменения ориентации камеры и методов распознавания объектов, а также анализа лиц людей. Однако может быть предложено неограниченно большое число мобильных приложений, для которых будет требоваться разработка специализированных методов компьютерного зрения. Приведем лишь два таких примера: запись на мобильный телефон с автоматической дешифрацией партии в некоторой настольной игре и реконструкция траектории движения клюшки для гольфа при нанесении удара.

Информационный поиск и обучение

Многие задачи дополненной реальности тесно связаны с информационным поиском (так что некоторые системы, такие как Google Goggles, сложно отнести к какой-то конкретной области), который представляет существенный самостоятельный интерес.

Задачи поиска изображений по содержанию также разнообразны. Они включают сопоставление изображений при поиске изображений уникальных объектов, например архитектурных сооружений, скульптур, картин и т. д., обнаружение и распознавание на изображениях объектов классов разной степени общности (автомобилей, животных, мебели, лиц людей и т. д., а также их подклассов), категоризация сцен (город, лес, горы, побережье и т. д.). Эти задачи могут встречаться в различных приложениях - для сортировки изображений в домашних цифровых фотоальбомах, для поиска товаров по их изображениям в интернет-магазинах, для извлечения изображений в геоинформационных системах, для систем биометрической идентификации, для специализированного поиска изображений в социальных сетях (например, поиска лиц людей, привлекательных для пользователя) и т. д., вплоть до поиска изображений в Интернете.

Как уже достигнутый прогресс, так и перспективы его продолжения видны на примере конкурса Large Scale Visual Recognition Challenge , в котором количество распознаваемых классов увеличилось с 20 в 2010 г. до 200 в 2013-м.

Распознавание объектов стольких классов сейчас немыслимо без привлечения методов машинного обучения в область компьютерного зрения. Одно из крайне популярных направлений здесь - сети глубокого обучения, предназначенные для автоматического построения многоуровневых систем признаков, по которым происходит дальнейшее распознавание. Востребованность этого направления видна по фактам приобретения различных стартапов такими корпорациями, как Google и Facebook. Так, корпорацией Google в 2013 г. была куплена фирма DNNresearch, а в начале 2014 г. - стартап DeepMind. Причем за покупку последнего стартапа конкурировал и Facebook (который до этого нанял такого специалиста, как Ян Ле Кун, для руководства лабораторией, ведущей разработки в области глубокого обучения), а стоимость покупки составила $400 млн. Стоит отметить, что и упоминавшийся метод , выигравший в конкурсе по распознаванию дорожных знаков, также основан на сетях глубокого обучения.

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

Заключение

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

Восстановление 3D-профиля листа металла, наблюдаемого с помощью микроскопа, методом «глубина из фокусировки»

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

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