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


Постановка задачи компьютерного зрения / Хабр

Последние лет восемь я активно занимаюсь задачами, связанными с распознаванием образов, компьютерным зрением, машинным обучением. Получилось накопить достаточно большой багаж опыта и проектов (что-то своё, что-то в ранге штатного программиста, что-то под заказ). К тому же, с тех пор, как я написал пару статей на Хабре, со мной часто связываются читатели, просят помочь с их задачей, посоветовать что-то. Так что достаточно часто натыкаюсь на совершенно непредсказуемые применения CV алгоритмов. Но, чёрт подери, в 90% случаев я вижу одну и ту же системную ошибку. Раз за разом. За последние лет 5 я её объяснял уже десяткам людей. Да что там, периодически и сам её совершаю…

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

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

Первые примеры
Плохие
Одна из самых частых идей, про которую меня спрашивают (даже предлагали взяться) — это распознавание этикеток в магазинах: "Добрый день! Я придумал классный стартап: человек приходит в магазин, снимает ценник, мы находим товар, цену и смотрим в каком магазине товар самый дешевый! Я всё уже сделал, но остался только модуль распознавания!". За последние два года с аналогичными предложениями мне писали раз пять… И действительно! В сознании человека, который редко сталкивается с задачами распознавания, есть чёткая картина: «Распознать строчку текста на этикетке — это расплюнуть!». Ведь есть ABBYY, которые распознают текст страницами, есть Smart Engines (1, 2), у которых и карточки с кучей цифр распознаются, и этикетки даже! Задача давно решена! Какая разница, Ikea или Ашан? Все этикетки похожи, единый модуль справится. Обычно после такого хочется сказать человеку: "Сходите в три разных сети, сделайте десять кадров и посмотрите на них". На что обычно можно получить ответ: "Что я там не видел! Вчера был в Перекрёстке и смотрел на них!". Посмотрим? Это не самые плохие примеры (фотографии кликабельны). На всех примерах тут человек может прочитать/додумать информацию. А машина? • Фотографии часто нерезкие, текст расплывается и сливается. Зачастую буквы написаны так близко друг к другу, что сегментация практически невозможна. • По краям ценников очень много артефактов, часто буквы обрезаны, или по ним идёт полоса. • Если съёмка со вспышкой — будут блики, часто полностью перекрывающие текст. • На одном ценнике часто 2-3 цены, написанные разными шрифтами (а часто ценники могут стоять в упор друг к другу). • Шрифт изменяется даже в пределах одной торговой сети. • Формат ценников изменяется даже в пределах одной торговой сети. Некоторые, особо упёртые продолжают настаивать: «Вы всё придумали! Вот есть пост у Smart Engines, где всё работает и ценники распознаются!» И действительно! Замечательный пример корректно поставленной задачи: ищется прямоугольник заданного размера, на красном фоне, шрифт один и тот же. Определив границы прямоугольника можно примерно уже сегментировать код. Эвристика есть, но минимальная: связать три блока на картинке, расположенных в известном порядке. Да: будут пересветы, будут блики, уголки могут быть загнуты, кто-то черканёт на ценнике свой автограф, а у кого-то камера всегда выдаёт нерезкие кадры. Но когда вы знаете положение каждой цифры, всё остальное уже не так важно. И в большинстве случаев всё будет работать замечательно.N.B. Я не говорю, что задача распознавания ценников не решаема в общем случае. Решаема. И сегодняшний прогресс делает это решение всё ближе и ближе. Google уже распознаёт номера домов. А ABBYY настраивается под любой заранее заданный формат текста. Но решение такой задачи находится на границе современных технологий, решение будет неидеально, или будет требовать огромного времени и средств на разработку. Конечно, можно сделать распознавание цены на ценниках (без текста) и такая система будет неплохо работать на некоторых ценниках. А иногда можно прочитать штрих-код (из приведённых ценников открытым форматом штрих-код написан на одном). Часто есть способы срезать углы и упростить постановку задачи.Отвлечёмся от этикеток Вы скажете что это примеры из воздуха и что так не бывает?.. Приведу пример который даже публиковался на Хабре: habrahabr.ru/post/265209. Прежде чем читать дальше, попробуйте понять, почему метод не будет работать. — Для тех кому лень читать. Автор предлагает ставить клеймо на дерево из трёх точек. И считает, что пересечения прямых между точками с годичными кольцами позволят однозначно маркировать и классифицировать бревно с камеры. Вот такую красивую картинку он приводит. Метод сразу ясен и понятен. Неправда ли? — Сам автор статьи обращался ко мне где-то за неделю до публикации с вопросом, будет ли это всё работать. Я сказал, что скорее всего не будет, привел несколько примеров, а так же сказал, как нужно модифицировать алгоритм, чтобы всё заработало. Но статью он написал в ключе, что это рабочий метод. И никто в десятке комментариев не возразил. Всего два дислайка… (Чорт, каюсь, один из них — я). Попробуем разобраться. Во-первых, как выглядит «годичное кольцо»? Попросим Яндекс выдать нам бревно: Идеальное. Красивые кольца! Прямо как на рисунке выше. Постойте… А что же это? Тоже кольца… А что если у нас фотоаппарат чуть-чуть промазал с резкостью? Блин. Половина колец пропало. А если у нас вечереет и поднялось ISO? Опять… Ну ладно, может не всё так плохо? Придумаем критерий, чтобы выбирать только достаточно большие годовые полосы, будем генерировать несколько вариантов для каждого дерева. Ок? Нет, ещё есть трещины, которые могут поменять геометрию и ситуации когда полос вообще почти нет. И это первые 20 идеальных картинок из выдачи Яндекса. Вывод напрашивается за пять минут. Но ведь есть же классная идея! Зачем смотреть картинки из поиска?..

Сама по себе задача, на мой взгляд, скорее решаема. Если брать отметки как опорные точки и сравнивать теми же методами, которыми сравнивают глаза. Но, опять же, пока не протестируешь базу хотя бы на пару сотен примеров — никогда не узнаешь, можно ли работу успешно выполнить. Но почему-то такое предложение не понравилось автору статьи… Жаль! Это два наиболее осмысленных и репрезентативных, на мой взгляд, примера. По ним можно понять, почему нужно абстрагироваться от идеи и смотреть реальные кадры. Ещё несколько примеров, с которыми я встречался, но уже в двух словах. Во всех этих примерах у людей не было ни единой фотографии на момент, когда они начали спрашивать о реализуемости задачи:1) Распознавание номеров у марафонцев на футболках по видеопотоку (картинка из Яндыкса)Хы. Пока готовил статью натолкнулся на это. Очень хороший пример, на котором видны все потенциальные проблемы. Это и разные шрифты, это и нестабильный фон с тенями, это нерезкость и замятые углы. И самое главное. Заказчик предлагает идеализированную базу. Снятую на хороший фотоаппарат солнечным днём. Попробуйте посмотреть номера спортсменов на майках поискав поиском яндыкса.Хы.Хы За пару часов до публикации автор заказа внезапно вышел на меня сам с предложением взяться за работу, от которого я отказался:) Всё же это карма, добавить это в статью.

2) Распознавание текста на фотографиях экранов телефонов3) И, мой любимый пример. Письмо на почту: " нужна программа в коммерческий сектор для распознания избражений. Алгоритм работы такой. оператор программы задает изображения предмета(-ов) в нескольких ракурсах и т.п. потом при появленини этого или максимально похожего изображения предмета, програма совершает требуемое/заданное действие. деталей естественно не могу пока рассказать." (орфография, пунктуация сохранены)

Хорошие
Но не всё так плохо! Ситуация, когда задача ставится идеально, встречается часто. Моя любимая: «Нужно ПО для автоматического подсчета лосей на фото. Пример фото с лосями высылаю.» Оба фото кликабельны. До сих пор жалею, что с этой задачей не срослось. Сначала кандидатскую защищал и был занят, а потом заказчик как-то энтузиазм потерял (или нашёл других исполнителей). В постановке нет ни малейшей трактовки решения. Только две вещи: «что нужно сделать», «входные данные». Много входных данных. Всё.
Мысль — вывод
Единственный способ поставить задачу — набрать базу и определить методологию работы по этой базе. Что вы хотите получить? Какие границы применимости алгоритма? Без этого вы не только не сможете подойти к задаче, вы не сможете её сдать. Без базы данных заказчик всегда сможет сказать «У вас не работает такой-то случай. Но это же критичная ситуация! Без него я не приму работу».
Как сформировать базу
Наверное, всё это был приквел к статье. Настоящая статья начинается тут. Идея того, что в любой задаче CV и ML нужна база для тестирования — очевидна. Но как набрать такую базу? На моей памяти три-четыре раза первая набранная база спускалась в унитаз. Иногда и вторая. Потому что была нерепрезентативна. В чём сложность? Нужно понимать, что «сбор базы» = «постановка задачи». Собранная база должна: 1. Отражать проблематику задачи; 2. Отражать условия, в которых будет решаться задача; 3. Формулировать задачу как таковую; 4. Приводить заказчика и исполнителя к консенсусу относительно того, что было сделано.
Время года
Пару лет назад мы с другом решили сделать систему, которая могла бы работать на мобильниках и распознавать автомобильные номера. Что-то даже получилось, и мы писали серию статей про это (http://habrahabr.ru/company/recognitor/ ). На тот момент мы были весьма умудрённые в CV системах. Знали, что нужно собирать такую базу, чтобы плохо было. Чтобы посмотрел на неё и сразу понял все проблемы. Мы собрали такую базу: Сделали алгоритм, и он даже неплохо работал. Давал 80-85% распознавания выделенных номеров. Ну да… Только летом, когда все номера стали чистые и хорошие точность системы просела процентов на 5…
Биометрия
Достаточно много в своей жизни мы работали с биометрией (1, 2, 3). И, кажется, наступили на все возможные грабли при сборе биометрических баз. • База должна быть собрана в разных помещениях. Когда аппарат для сбора базы стоит только у разработчиков — рано или поздно выяснится, что он завязан на соседнюю лампу. • В биометрических базах нужно иметь 5-10 снимков для каждого человека. И эти 5-10 снимков должны быть сделаны в разные дни, в разное время дня. Подходя к биометрическому сканеру несколько раз подряд, человек сканируется одним и тем же способом. Подходя в разные дни — по-разному. Некоторые биометрические характеристики могут немножко меняться в течении суток. • База, собранная из разработчиков нерепрезентативна. Они подсознательно считываются так, чтобы всё сработало… • У вас новая модель сканера? А вы уверены, что он работает со старой базой? Вот глаза собранные с разных сканеров. Разные поля работы, разные блики, разные тени, разные пространственные разрешения, и.т.д.
База для нейронных сетей и алгоритмов обучения
Если у вас в коде используется какой-то алгоритм обучения — пиши пропало. Вам нужно формировать базу для обучения с его учётом. Предположим, в вашей задаче распознавания имеется два сильно отличающихся шрифта. Первый встречается в 90% случаев, второй в 10%. Если вы нарежете эти два шрифта в данной пропорции и обучитесь по ним единым классификатором, то с высокой вероятностью буквы первого шрифта будут распознаваться, а буквы второго нет. Ибо нейронная сеть/SVM найдёт локальный минимум не там, где распознаётся 97% первого шрифта и 97% второго, а там где распознаётся 99% первого шрифта и 0% второго. В вашей базе должно быть достаточно примеров каждого шрифта, чтобы обучение не ушло в другой минимум.
Как сформировать базу при работе с реальным заказчиком
Одна из нетривиальных проблем при сборе базы — кто это должен делать. Заказчик или исполнитель. Сначала приведу несколько печальных примеров из жизни.
Я нанимаю вас, чтобы вы решили мне задачу!
Именно такую фразу я услышал однажды. И блин, не поспоришь. Но вот только базу нужно было бы собирать на заводе, куда бы нас никто не пустил. А уж тем более, не дал бы нам монтировать оборудование. Те данные, которые давал заказчик были бесполезны: объект размером в несколько пикселей, сильно зашумлённая камера с импульсными помехами, которая периодически дергается, от силы двадцать тестовых картинок. На предложения поставить более хорошую камеру, выбрать более хороший ракурс для съёмки, сделать базу хотя бы на пару сотен примеров, заказчик ответил фразой из заголовка.
У нас нет времени этим заниматься!
Однажды директор весьма крупной компании (человек 100 штата + офисы во многих странах мира) предложил пообщаться. В продукте, который выпускала эта компания часть функционала была реализована очень старыми и очень простыми алгоритмами. Директор рассказал нам, что давно грезит о модификации данного функционала в современные алгоритмы. Даже нанимал две разных команды разработчиков. Но не срослось. Одна команда по его словам слишком теоретизировала, а вторая никакой теории не знала и тривиальщину делала. Мы решили попробовать. На следующий день нам выдали доступ к огромному массиву сырой информации. Сильно больше, чем я бы сумел просмотреть за год. Потратив на анализ информации пару дней мы насторожились спросили: «А что собственно вам нужно от новых алгоритмов?». Нам назвали десятка два ситуаций, когда текущие алгоритмы не работают. Но за пару дней я видел лишь одну-две указных ситуации. Просмотрев ещё пачку данных смог найти ещё одну. На вопрос: «какие ситуации беспокоят ваших клиентов в первую очередь?», — ни директор ни его главные инженеры не смогли дать ответа. У них не было такой статистики. Мы исследовали вопрос и предложили алгоритм решения, который мог автоматически собрать все возможные ситуации. Но нам нужно было помочь с двумя вещами. Во-первых, развернуть обработку информации на серверах самой фирмы (у нас не было ни достаточной вычислительной мощности, ни достаточного канала к тому месту, где хранились сырые данные). На это бы ушла неделя работы администратора фирмы. А во-вторых, представитель фирмы должен был классифицировать собранную информацию по важности и по тому как её нужно обрабатывать (это ещё дня три). К этому моменту мы уже потратили две-три недели своего времени на анализ данных, изучение статей по тематике и написание программ для сбора информации (никакого договора подписано на этот момент не было, всё делали на добровольных началах). На что нам было заявлено: «Мы не можем отвлекать на эту задачу никого. Разбирайтесь сами». На чём мы откланялись и удалились.
Заказчик даёт базу
Был и другой случай. На этот раз заказчик поменьше. А система, которой занимается заказчик разбросана по всей территории страны. Зато заказчик понимает, что мы базу не соберём. И из всех сил старается собрать базу. Собирает. Очень большую и разнообразную. И даже уверяет, что база репрезентативна. Начинаем работать. Почти доделываем алгоритм. Перед сдачей выясняется, что на собранной базе-то алгоритм работает. И условиям договора мы удовлетворяем. Но вот база-то была нерепрезентативной. В ней нет 2/3 ситуаций. А те ситуации, что есть — представлены непропорционально. И на реальных данных система работает сильно хуже. Вот и получается. Мы старались. Всё что обещали — сделали, хотя задача оказалась сильно сложнее, чем планировали. Заказчик старался. Потратил много времени на сбор базы. Но итоговый результат — хреновый. Пришлось что-то придумывать на ходу, хоть как-то затыкать дырки…
Так кто должен сформировать базу?
Проблема в том, что очень часто задачи компьютерного зрения возникают в сложных системах. Системах, которые делались десятки лет многими людьми. И разобраться в такой системе часто сильно дольше, чем решить саму задачу. А заказчик хочет чтобы разработка началась уже завтра. И естественно, предложение заплатить за подготовку ТЗ и базы сумму в 2 раза больше стоимости задачи, увеличить сроки в 3 раза, дать допуск к своим системам и алгоритмам, выделить сотрудника, который всё покажет и расскажет, вызывает у него недоумение. На мой взгляд решение любой задачи компьютерного зрения требует постоянного диалога между заказчиком и исполнителем, а так же желания заказчика сформулировать задачу. Исполнитель не видит всех нюансов бизнеса заказчика, не знает систему изнутри. Я ни разу не видел чтобы подход: «вот вам деньги, завтра сделайте мне решение» сработал. Решение-то было. Но работало ли оно как нужно? Сам я как огня пытаюсь шарахаться от таких контрактов. Работаю ли я сам, или в какой-то фирме, которая взяла заказ на разработку. В целом ситуацию можно представить так: предположим, вы хотите устроить свою свадьбу. Вы можете: • Продумать и организовать всё самому от начала до конца. По сути данный вариант — «решать задачу самому». • Продумать всё от начала до конца. Написать все сценарии. И нанять исполнителей для каждой роли. Тамаду для того чтобы гости не скучали, ресторан, чтобы все приготовили и провели. Написать основную канву для тамады, меню для ресторана. Этот вариант — это диалог. Обеспечить данными исполнителя, расписать всё, что требуется. • Можно продумать большими блоками, не вникая в детали. Нанять тамаду, пусть делает, что делает. Не согласовывать меню ресторана. Заказать модельеру подбор платья, причёски, имиджа. Головной боли минимум, но когда начнутся конкурсы на раздевание, то можно понять что что-то было сделано не так. Далеко не факт, что сформулировав задачу в стиле «распознайте мне символ» исполнитель и заказчик поймут одно и то же. • А можно всё заказать свадебному агентству. Дорого, думать совсем не надо. Но вот, что получится — уже не знает никто. Вариант — «сделайте мне хорошо». Скорее всего, качество будет зависеть от стоимости. Но не обязательно
Есть ли задачи, где база не нужна
Есть. Во-первых, в задачах, где база — это слишком сложно. Например, разработка робота, который анализирует видео, и по нему принимает решения. Нужен какой-то тестовый стенд. Можно сделать базы на какие-то отдельные функции. Но сделать базу по полному циклу действий зачастую нельзя. Во-вторых, когда идёт исследовательская работа. Например, идёт разработка не только алгоритмов, но и устройства, которым будет набираться база. Каждый день новое устройство, новые параметры. Когда алгоритм меняется по три раза в день. В таких условиях база бесполезна. Можно создавать какие-то локальные базы, изменяющиеся каждый день. Но что-то глобальное неосмысленно. В-третьих, это задачи, где можно сделать модель. Моделирование это вообще очень большая и сложная тема. Если возможно сделать хорошую модель задёшево, то конечно нужно её делать. Хотите распознать текст, где есть только один шрифт — проще всего создать алгоритм моделирования ( пример такой задачи ).
Научный подход
А как же учёные? Неужели под каждую работу они собирают отдельную базу? Обычно нет. В интернете можно найти очень много открытых баз данных. Обычно универсальных, для каких-то классических примеров. Например есть несколько сайтов с базами для биометрии (самый известный). Есть сайты с базами для тестирования различных алгоритмов обучения (1 2 3). Проблема всех этих баз зачастую в том, что они малоприменимы и нерепрезентативны. Взять например легендарный MNIST — базу изображений цифр с ручным написанием: Все алгоритмы машинного распознавания тестируются на ней. Всё бы хорошо, но… Топовые алгоритмы давным давно имеют точности вида 99.5%, 99.6%, 99.6351%, и.т.д. Не распознаётся 30-40 картинок, которые всем хорошо известны. Половину из них даже человеку нереально распознать. Хитрыми настройками можно чуть-чуть поправить точность и сделать +0.1%. Но ведь понятно, что ни к реальным данным, а уж там более к качественной оценке алгоритма ничего этого отношения не имеет. Зачастую получается, что написанный по таким базам алгоритм будет работать только в тех условиях и при тех параметрах при которых собрана вся база.
Приводите свои примеры!
На хабре есть множество людей, которые занимаются обработкой изображений и наверняка имеют большой опыт в этом (статьи некоторых из них я читал ещё будучи студентом): SmartEngines sergeypid BelBES mephistopheies rocknrollnerd YUVladimir Nordavind BigObfuscator Vasyutka (Простите, если кого отметил не по делу, но большинство из отмеченных писали классные статьи по CV и ML). Наверняка у вас есть собственные мысли о том, как сделать постановку задачи идеальной и собрать классную базу. Поделитесь? А может закритикуете написанное, как ересь от начала до конца?:)

habr.com

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

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

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

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

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

NVIDIA и Audi планируют в 2020 году выпустить на трассу первую полностью автономную машину, которая будет использовать новый суперкомпьютер Xavier AI.

nvidia

Генеральный директор NVIDIA Джен-Сан Хуанг представляет ИИ Co Pilot. Фото: NVIDIA

NVIDIA также представила искусственный интеллект Co Pilot, который способен распознавать лица, движения губ, направление взгляда и язык — из-за чего водить автомобиль станет удобнее. Так, например, благодаря распознаванию движения губ компьютер будет лучше понимать произносимые слова, а способность улавливать направление взгляда (анализ глаз, лица и положения головы) поможет не только определить, не заснул ли водитель, но и спасет в трудных ситуациях, когда человек не замечает опасность — например, приближающегося сзади по центру дороги мотоциклиста. Что касается считывания движения губ, то сейчас сети, использующие глубинное обучение, способны распознавать речь с точностью до 95%, в то время как человек распознает ее с точностью в 3%. Сейчас эта невероятная способность используется для улучшения распознавания речи в автомобиле, а именно в шумных ситуациях.

2. Персонализация

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

chrysler

Фото: Chrysler

Так, в концепт-каре Chrysler Portal есть специальные камеры, расположенные за рулем. С помощью компьютерного зрения автомобиль может мгновенно определять личность водителя еще до того, как тот сядет в машину, и загружать его любимые музыкальные композиции, настроить кресло в нужное положение, отрегулировать температуру и так далее. Машина умеет распознавать не только водителя, но и пассажиров, и точно так же автоматически регулировать сиденья и температуру и даже раскрывать шумоподавляющие «коконы», в которых можно послушать любимую музыку. Такие способности не только понравятся владельцам автомобилей, но и смогут сильно повлиять на райдшеринговые сервисы вроде Uber и Lyft.

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

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

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

bmw

Фото: BMW

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

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

Hayo

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

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

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

smarter

Фото: Smarter

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

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

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

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

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

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

lenovo

Фото: CNET

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

Фото: Lenovo

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

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

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

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

Следите за Big Data Conference в Telegram и на Facebook.

7. Камеры

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

Компания FLiR Systems выпустила несколько камер с датчиками тепла. Устройства FLIR Duo и Duo R внешне напоминают GoPro или другую экшн-камеру. Их можно прикрепить к любому дрону и отслеживать тепло в различных деловых и бытовых ситуациях — например, можно обнаружить утечку в изоляции крыши или вести воздушную топографическую съемку полей и нефтяных месторождений. 

8. Роботы

Даже Alexa от Amazon, Google Home и прочие цифровые помощники и роботы, доступные на рынке, вроде LG Hub и Kuri от Mayfield Robotics, обладают базовыми навыками компьютерного зрения и могут определить, кто с ними разговаривает, или же выгнать собаку с дивана.

kuri

Фото: heykuri.com

А если серьезно, то компания ITRI разработала систему Intelligent Vision System, которая использует глубинное обучение и компьютерное зрение, чтобы роботы могли различать объекты разного размера (фигурки, чашки) и определять их положение. Распознав объект, робот сможет взять его и принести в нужное место. Такие навыки отлично бы пригодились для обслуживания столиков в ресторане или для игры в шахматы.

Источник.

Материалы по теме:

Что такое компьютерное зрение?

Стивен Хокинг: создание ИИ станет «либо лучшим, либо худшим» событием в истории человечества

Почему спустя 60 лет в искусственный интеллект снова поверили

Honda анонсировала электрокар с «эмоциональным» искусственным интеллектом

Нашли опечатку? Выделите текст и нажмите Ctrl + Enter

rb.ru

Компьютерное зрение. Лекция для Малого ШАДа Яндекса / Блог компании Яндекс / Хабр

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

habr.com

Компьютерное зрение | Info-Farm.RU

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

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

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

  1. системы управления процессами (промышленные роботы, автономные транспортные средства)
  2. системы видеонаблюдения
  3. системы организации информации (например, для индексации баз данных изображений)
  4. системы моделирования объектов или окружающей среды (анализ медицинских изображений, топографическое моделирование)
  5. системы взаимодействия (например, устройства ввода для систем человеко-машинного взаимодействия).

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

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

Современное состояние дел

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

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

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

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

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

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

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

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

Связанные области

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

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

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

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

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

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

Примеры применения компьютерного зрения

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

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

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

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

Другие области применения включают:

  • поддержку создания видеоэффектов для кино и телевидения;
  • наблюдения.

Типичные задачи компьютерного зрения

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

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

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

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

В литературе описано многообразие проблем распознавания:

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

Существует несколько специализированных задач, основанные на распознавании, например:

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

Движение

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

  • определения трехмерного движения камеры
  • слежения, то есть движением за перемещением объекта (например, машин или людей)

Восстановление сцены

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

Восстановление изображений

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

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

Системы компьютерного зрения

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

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

Спецификации OpenVX

Осенью 2014 группа Khronos, отвечающий за разработку стандартов семейства OpenGL и OpenCL, представила финальный вариант спецификации OpenVX 1.0, которая определяет прикладной программный интерфейс (API) для разработки переносных, высокопроизводительных и энергоэффективных приложений и библиотек для решения задач компьютерного зрения (выявление, слежения и классификация объектов на изображениях и видеоданных). спецификации OpenVX разработана.

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

info-farm.ru

Компьютерное зрение | Virtual Laboratory Wiki

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

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

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

  1. Системы управления процессами (промышленные роботы, автономные транспортные средства)
  2. Системы видеонаблюдения
  3. Системы организации информации (например, для индексации баз данных изображений)
  4. Системы моделирования объектов или окружающей среды (анализ медицинских изображений, топографическое моделирование)
  5. Системы взаимодействия (например, устройства ввода для системы человеко-машинного взаимодействия)

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

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

    Современное положениеПравить

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

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

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

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

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

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

    Связанные областиПравить

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

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

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

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

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

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

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

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

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

    Примеры применения компьютерного зренияПравить

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

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

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

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

    Другие области применения включают:

    • Поддержку создания видеоэффектов для кино и телевидения
    • Наблюдение

    Примеры применения библиотеки машинного зрения OpenCV (С++Builder6)

    Типичные задачи компьютерного зренияПравить

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

    РаспознаваниеПравить

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

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

    В литературе описано различное множество проблем распознавания:

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

    Существует несколько специализированных задач, основанных на распознавании текстов, например:

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

    ДвижениеПравить

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

    • Определение трехмерного движения камеры
    • Слежение, т.е. следование за перемещениями объекта (например, машин или людей)

    Восстановление сценыПравить

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

    Восстановление изображенийПравить

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

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

    Системы компьютерного зренияПравить

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

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

    Связанные статьиПравить

    de:Bildverstehen en:Computer vision es:Visión artificial fa:بینایی رایانه‌ای fr:Vision artificielle hr:Računalni vid it:Visione artificiale pt:Visão computacional ja:コンピュータビジョン sv:datorseende th:คอมพิวเตอร์วิทัศน์ zh:计算机视觉

    ru.vlab.wikia.com

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

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

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

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

    1. Системы управления процессами (промышленные роботы, автономные транспортные средства)
    2. Системы видеонаблюдения
    3. Системы организации информации (например, для индексации баз данных изображений)
    4. Системы моделирования объектов или окружающей среды (анализ медицинских изображений, топографическое моделирование)
    5. Системы взаимодействия (например, устройства ввода для системы человеко-машинного взаимодействия)

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

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

      Современное положениеПравить

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

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

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

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

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

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

      Связанные областиПравить

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

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

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

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

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

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

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

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

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

      Примеры применения компьютерного зренияПравить

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

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

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

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

      Другие области применения включают:

      • Поддержку создания видеоэффектов для кино и телевидения
      • Наблюдение

      Примеры применения библиотеки машинного зрения OpenCV (С++Builder6)

      Типичные задачи компьютерного зренияПравить

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

      РаспознаваниеПравить

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

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

      В литературе описано различное множество проблем распознавания:

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

      Существует несколько специализированных задач, основанных на распознавании текстов, например:

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

      ДвижениеПравить

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

      • Определение трехмерного движения камеры
      • Слежение, т.е. следование за перемещениями объекта (например, машин или людей)

      Восстановление сценыПравить

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

      Восстановление изображенийПравить

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

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

      Системы компьютерного зренияПравить

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

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

      Связанные статьиПравить

      ru.cybernetics.wikia.com

      Компьютерное зрение - это... Что такое Компьютерное зрение?

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

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

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

      1. Системы управления процессами (промышленные роботы, автономные транспортные средства)
      2. Системы видеонаблюдения
      3. Системы организации информации (например, для индексации баз данных изображений)
      4. Системы моделирования объектов или окружающей среды (анализ медицинских изображений, топографическое моделирование)
      5. Системы взаимодействия (например, устройства ввода для системы человеко-машинного взаимодействия)
      6. Системы дополненной реальности
      7. Вычислительная фотография, например для мобильных устройств с камерами

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

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

      Современное положение

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

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

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

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

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

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

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

      Связанные области

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

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

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

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

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

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

      Примеры применения компьютерного зрения

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

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

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

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

      Другие области применения включают:

      • Поддержку создания видеоэффектов для кино и телевидения
      • Наблюдение

      Типичные задачи компьютерного зрения

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

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

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

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

      В литературе описано различное множество проблем распознавания:

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

      Существует несколько специализированных задач, основанных на распознавании, например:

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

      Движение

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

      • Определение трехмерного движения камеры
      • Слежение, то есть следование за перемещениями объекта (например, машин или людей)

      Восстановление сцены

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

      Восстановление изображений

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

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

      Системы компьютерного зрения

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

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

      Программное обеспечение

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

      Литература

      • Л. Шапиро, Дж. Стокман Компьютерное зрение = Computer Vision. — М.: Бином. Лаборатория знаний, 2006. — С. 752. — ISBN 5-94774-384-1
      • Дэвид Форсайт, Жан Понс Компьютерное зрение. Современный подход = Computer Vision: A Modern Approach. — М.: «Вильямс», 2004. — С. 928. — ISBN 5-8459-0542-7
      • А.А. Лукьяница ,А.Г. Шишкин Цифровая обработка видеоизображений. — М.: «Ай-Эс-Эс Пресс», 2009. — С. 518. — ISBN 978-5-9901899-1-1
      • Желтов С.Ю. и др. Обработка и анализ изображений в задачах машинного зрения. — М.: Физматкнига, 2010. — С. 672. — ISBN 978-5-89155-201-2

      Связанные статьи

      dic.academic.ru


Читайте также
  • Гиперскоростная звезда – более 1.000.000 миль в час
    Гиперскоростная звезда – более 1.000.000 миль в час
  • Астрономы обнаружили самую большую спиральную галактику
    Астрономы обнаружили самую большую спиральную галактику
  • Млечный путь содержит десятки миллиардов планет, схожих с Землей
    Млечный путь содержит десятки миллиардов планет, схожих с Землей
  • Млечный путь разорвал своего спутника на четыре отдельных хвоста
    Млечный путь разорвал своего спутника на четыре отдельных хвоста
  • Найден источник водородных газов для нашей Галактики
    Найден источник водородных газов для нашей Галактики