По пунктам:
- Что такое компьютерное зрение?
- Зачем нужно компьютерное зрение?
- Можно ли научить робота/ИИ «видеть»?
- Что изменилось с развитием нейросетей?
- Как это выглядит?
- Какие главные успехи уже есть?
- Как компьютерное зрение уже используется в различных сферах?
- Над чем ученые работают сейчас?
- Как технология может изменить нашу жизнь в будущем?
Что такое компьютерное зрение?
Это довольно широкая область знаний. Она изучает способы получения, обработки и анализа цифровых изображений или видеопотока. Если разделять этот термин на составляющие, то можно говорить об алгоритмах низкого уровня (к ним относится получение цифрового видеоизображения, его представление, фильтрация, устранение шумов), среднего уровня (распознавание образов, выделение структурных элементов) и алгоритмах высокого уровня (семантический анализ изображений, классификация выделенных структурных элементов, их понимание). Если мы рассматриваем область мехатроники, робототехники, цифровых систем управления, то более подходящим является термин «техническое зрение», который описывает системы «очувствления» роботов. Это совокупность технических устройств ― датчиков, сенсоров, преобразователей сигнала ― и алгоритмов обработки информации, которые позволяют роботу однозначно воспринимать и интерпретировать окружающую действительность. В качестве сенсоров в робототехнике используются не только обычные цифровые камеры, но и дальномеры, лидары, велосиметры, акселерометры, компасы и многие другие устройства.
Зачем нужно компьютерное зрение?
Для разных целей ― например, чтобы создавать системы безопасности и идентификации людей или объектов, системы контроля качества на производстве, создания беспилотных транспортных средств, повышения качества изображений, трехмерной реконструкции сцен и др. Если обобщать, то основной задачей компьютерного или технического зрения является помощь в автоматизации бытовых и производственных процессов, повышение их безопасности и надежности, исключение человеческого фактора.
Можно ли научить робота / ИИ «видеть»?
В каком-то смысле да, но это непросто. Задачи компьютерного зрения довольно сложные и трудноформализуемые. Человек решает задачи классификации объектов на уровне подсознания. Однако огромное разнообразие различных свойств объектов (например, яркость, их геометрия) и даже незначительная изменчивость изображений приводят к большим сложностям при разработке алгоритмов компьютерного зрения. Долгое время использовались алгоритмы, которые оперировали отдельными изображениями и анализировали каждое как отдельный элемент: выделяли границы, идентифицировали изображенный объект, определяли его характерные особенности. Сейчас этот подход называют «классическим». В 2013 году произошел настоящий бум развития нейронных сетей, которые сразу же стали применяться во всех задачах компьютерного зрения совместно с алгоритмами машинного обучения.
Что изменилось с развитием нейросетей?
Развитие нейросетевого подхода произвело настоящий прорыв. Нейронные сети позволили не совершенствовать аналитические алгоритмы, а формировать экспертные базы знаний, на основе которых обучаются соответствующие нейронные сети для решения конкретных задач. Но здесь кроется основная сложность: для обучения нужно подготовить не только базу «эталонных» объектов, чтобы алгоритм научился их опознавать, но также и примеры, на которых объект анализа не присутствует, и базу примеров, на которых объект сложно идентифицировать.
Как это выглядит?
Вот пример из сферы беспилотников: допустим, с помощью нейронных сетей удалось решить задачу определения пешеходов для хорошей погоды. А что делать, если пасмурно? А если дождь или снег? А если ночь, используется инфракрасная подсветка и все становится черно-белым? Приходится дообучать нейронную сеть ― и эта задача заставляет специалистов тратить огромное количество времени и ресурсов.
Какие главные успехи уже есть?
Огромным успехом в развитии компьютерного зрения можно назвать активное развитие беспилотных транспортных средств ― карьерных самосвалов, железнодорожных составов, легковых автомобилей, а также, например, систему социального рейтинга в Китае. В этой стране видеокамеры установлены везде, и соответствующие службы знают практически все о каждом человеке. В технологическом плане это невероятный прорыв, который описывался разве что в фантастических романах вроде «1984» Джорджа Оруэлла. На самом деле сейчас нет никаких проблем установить видеокамеры по всему городу, «склеить» изображение с них в единое видеопространство и отслеживать перемещения по всему городу конкретных людей или автомобилей в реальном времени. Это звучит как нечто фантастическое, хотя реализуется довольно просто.
Как еще компьютерное зрение используется в различных сферах?
Примеров множество: идентификация личности преступников в толпе; слежение за положением зрачков у водителя, чтобы контролировать его усталость; технологии дополненной реальности, когда программное обеспечение на основе компьютерного зрения достраивает какие-то объекты в пространстве; слежение за качеством продукции на конвейерных линиях; детектирование драк в вагонах метро, поездов, автобусов, детектирование распития алкоголя и прочего девиантного поведения (это реальные задачи, которые решаются, например РЖД).
Над чем ученые работают сейчас?
С одной стороны существует проблема современных нейросетевых подходов — она заключается в длительности подготовки датасетов (размеченных баз данных изображений) и сложности их проецирования на изменяющиеся условия. С другой ― есть аналитический подход, и с ним тоже все непросто. Основная проблема «классических» алгоритмов — в их узкой заточенности под конкретную задачу и сложность масштабирования, из-за которой рано или поздно приходится обращаться к машинному обучению и далее ― к нейронным сетям. Сейчас актуальной задачей является разработка алгоритмов, которые на основе правильно формализованных данных и сформированных аналитических описаний позволили бы эффективно решать классические и новые задачи компьютерного зрения без длительных циклов обучения. То есть нужен некий симбиоз обоих подходов, правильное комбинирование соответствующих методов.
Как технология может изменить нашу жизнь в будущем?
Благодаря компьютерному зрению мы будем и дальше видеть автоматизацию привычных нам дел. Вместо отслеживания человека службой безопасности по десяткам видеокамер достаточно будет «выбрать» его на входе и просмотреть весь его маршрут от начала до конца. В гибком цифровом производстве не нужна будет переналадка и перенастройка оборудования — все будет происходить автоматически. Беспилотные поезда, грузовики, такси — все это уже не является фантастикой. Массовое внедрение этих технологий — лишь вопрос времени. Число людей, работающих в «рутинных» профессиях однозначно пойдет на спад. Получается, что писатели-фантасты во многом оказались правы. Нравится нам это или нет, но прогресс не остановить.