Компьютерное зрение

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

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

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

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

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

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

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

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

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

Связанные области 
Компьютерное зрение, Обработка изображений, и Машинное зрение — тесно связанные области. Но до сих пор точно не определено, являются ли они разделами одной, более широкой. При детальном анализе может показаться, что это лишь разные названия одной и той же области. Чтобы не возникало путаницы, принято различать их как направления, сфокусированные на определённом предмете изучения. Ниже представлено описание некоторых из них, наиболее важных:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Движение 
Несколько задач, связанных с оценкой движения, в которых последовательность изображений (видеоданные) обрабатываются для нахождения оценки скорости каждой точки изображения или 3D сцены. Примерами таких задач являются:
 Определение трехмерного движения камеры
 Слежение, то есть следование за перемещениями объекта (например, машин или людей)

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

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

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

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

 Получение изображений: цифровые изображения получаются от одного или нескольких датчиков изображения, которые помимо различных типов светочувствительных камер включают датчики расстояния, радары, ультразвуковые камеры и т. д. В зависимости от типа датчика, получающиеся данные могут быть обычным 2D изображением, 3D изображением или последовательностью изображений. Значения пикселей обычно соответствуют интенсивности света в одной или нескольких спектральных полосах (цветные или изображения в оттенках серого), но могут быть связаны с различными физическими измерениями, такими как глубина, поглощение или отражение звуковых или электромагнитных волн, или ядерным магнитным резонансом.
 Предварительная обработка: перед тем, как методы компьютерного зрения могут быть применены к видеоданным с тем, чтобы извлечь определённую долю информации, необходимо обработать видеоданные, с тем чтобы они удовлетворяли некоторым условиям, в зависимости от используемого метода. Примерами являются:
 Повторная выборка с тем, чтобы убедиться, что координатная система изображения верна
 Удаление шума с тем, чтобы удалить искажения, вносимые датчиком
 Улучшение контрастности, для того, чтобы нужная информация могла быть обнаружена
 Масштабирование для лучшего различения структур на изображении
 Выделение деталей: детали изображения различного уровня сложности выделяются из видеоданных. Типичными примерами таких деталей являются:
 Линии, границы и кромки
 Локализованные точки интереса, такие как углы, капли или точки: более сложные детали могут относиться к структуре, форме или движению.
 Детектирование/Сегментация: на определённом этапе обработки принимается решение о том, какие точки или участки изображения являются важными для дальнейшей обработки. Примерами являются:
 Выделение определённого набора интересующих точек
 Сегментация одного или нескольких участков изображения, которые содержат характерный объект
 Высокоуровневая обработка: на этом шаге входные данные обычно представляют небольшой набор данных, например набор точек или участок изображения, в котором предположительно находится определённый объект. Примерами являются:
 Проверка того, что данные удовлетворяют условиям, зависящим от метода и применения
 Оценка характерных параметров, таких как положение или размер объекта
 Классификация обнаруженного объекта по различным категориям

Программное обеспечение 
 OpenCV Библиотека алгоритмов компьютерного зрения с открытым исходным кодом.
 PCL Открытая библиотека для работы с трехмерными облаками точек.

См. также 
 Машинное зрение
 Машинное обучение
 Искусственный интеллект
 Процессор машинного зрения
 Обработка изображений
 Распознавание образов
 Рентгенография

Литература 
 
 
 
 
 

Распознавание образов

Видео