Распознавание изображений. Алгоритм Eigenface. Китайская система распознавания лиц посчитала изображение человека на автобусе нарушителем ПДД. Основы теории анализа и распознавания изображений

Faq 12.05.2019
Faq

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

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

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

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

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

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

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

4. Понимание и оценка. Процессом понимания изображения

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

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

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

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

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

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

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

  • Tutorial

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

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

Эта статья задумана для того, чтобы человек, который никогда не занимался методами распознавания изображений, смог в течении 10-15 минут создать у себя в голове некую базовую картину мира, соответствующую тематике, и понять в какую сторону ему копать. Многие методы, которые тут описаны, применимы к радиолокации и аудио-обработке.
Начну с пары принципов, которые мы всегда начинаем рассказывать потенциальному заказчику, или человеку, который хочет начать заниматься Optical Recognition:

  • При решении задачи всегда идти от простейшего. Гораздо проще повесить на персону метку оранжевого цвета, чем следить за человеком, выделяя его каскадами. Гораздо проще взять камеру с большим разрешением, чем разрабатывать сверхразрешающий алгоритм.
  • Строгая постановка задачи в методах оптического распознавания на порядки важнее, чем в задачах системного программирования: одно лишнее слово в ТЗ может добавить 50% работы.
  • В задачах распознавания нет универсальных решений. Нельзя сделать алгоритм, который будет просто «распознавать любую надпись». Табличка на улице и лист текста - это принципиально разные объекты. Наверное, можно сделать общий алгоритм(вот хороший пример от гугла), но это будет требовать огромного труда большой команды и состоять из десятков различных подпрограмм.
  • OpenCV - это библия, в которой есть множество методов, и с помощью которой можно решить 50% от объёма почти любой задачи, но OpenCV - это лишь малая часть того, что в реальности можно сделать. В одном исследовании в выводах было написано: «Задача не решается методами OpenCV, следовательно, она неразрешима». Старайтесь избегать такого, не лениться и трезво оценивать текущую задачу каждый раз с нуля, не используя OpenCV-шаблоны.
Очень сложно давать какой-то универсальный совет, или рассказать как создать какую-то структуру, вокруг которой можно строить решение произвольных задач компьютерного зрения. Цель этой статьи в структуризации того, что можно использовать. Я попробую разбить существующие методы на три группы. Первая группа это предварительная фильтрация и подготовка изображения. Вторая группа это логическая обработка результатов фильтрации. Третья группа это алгоритмы принятия решений на основе логической обработки. Границы между группами очень условные. Для решения задачи далеко не всегда нужно применять методы из всех групп, бывает достаточно двух, а иногда даже одного.

Список приведённых тут методов не полон. Предлагаю в комментариях добавлять критические методы, которые я не написал и приписывать каждому по 2-3 сопроводительных слова.

Часть 1. Фильтрация

В эту группу я поместил методы, которые позволяют выделить на изображениях интересующие области, без их анализа. Большая часть этих методов применяет какое-то единое преобразование ко всем точкам изображения. На уровне фильтрации анализ изображения не производится, но точки, которые проходят фильтрацию, можно рассматривать как области с особыми характеристиками.
Бинаризация по порогу, выбор области гистограммы
Самое просто преобразование - это бинаризация изображения по порогу. Для RGB изображения и изображения в градациях серого порогом является значение цвета. Встречаются идеальные задачи, в которых такого преобразования достаточно. Предположим, нужно автоматически выделить предметы на белом листе бумаги:




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

Бинаризация может дать очень интересные результаты при работе с гистограммами, в том числе в ситуации, если мы рассматриваем изображение не в RGB, а в HSV . Например, сегментировать интересующие цвета. На этом принципе можно построить как детектор метки так и детектор кожи человека.
Классическая фильтрация: Фурье, ФНЧ, ФВЧ
Классические методы фильтрации из радиолокации и обработки сигналов можно с успехом применять во множестве задач Pattern Recognition. Традиционным методом в радиолокации, который почти не используется в изображениях в чистом виде, является преобразование Фурье (конкретнее - БПФ). Одно из немногих исключение, при которых используется одномерное преобразование Фурье, - компрессия изображений . Для анализа изображений одномерного преобразования обычно не хватает, нужно использовать куда более ресурсоёмкое двумерное преобразование .

Мало кто его в действительности рассчитывает, обычно, куда быстрее и проще использовать свёртку интересующей области с уже готовым фильтром, заточенным на высокие (ФВЧ) или низкие(ФНЧ) частоты. Такой метод, конечно, не позволяет сделать анализ спектра, но в конкретной задаче видеообработки обычно нужен не анализ, а результат.


Самые простые примеры фильтров, реализующих подчёркивание низких частот (фильтр Гаусса) и высоких частот (Фильтр Габора).
Для каждой точки изображения выбирается окно и перемножается с фильтром того же размера. Результатом такой свёртки является новое значение точки. При реализации ФНЧ и ФВЧ получаются изображения такого типа:



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


Выше приведено 4 примера классических вейвлетов. 3х-мерный вейвлет Хаара, 2х-мерные вейвлет Мейера, вейвлет Мексиканская Шляпа, вейвлет Добеши. Хорошим примером использования расширеной трактовки вейвлетов является задачка поиска блика в глазу, для которой вейвлетом является сам блик:

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

Фильтрации функций
Интересным классом фильтров является фильтрация функций. Это чисто математические фильтры, которые позволяют обнаружить простую математическую функцию на изображении (прямую, параболу, круг). Строится аккумулирующее изображение, в котором для каждой точки исходного изображения отрисовывается множество функций, её порождающих. Наиболее классическим преобразованием является преобразование Хафа для прямых. В этом преобразовании для каждой точки (x;y) отрисовывается множество точек (a;b) прямой y=ax+b, для которых верно равенство. Получаются красивые картинки:


(первый плюсег тому, кто первый найдёт подвох в картинке и таком определении и объяснит его, второй плюсег тому, кто первый скажет что тут изображено)
Преобразование Хафа позволяет находить любые параметризуемые функции. Например окружности . Есть модифицированное преобразование, которое позволяет искать любые фигуры . Это преобразование ужасно любят математики. Но вот при обработке изображений, оно, к сожалению, работает далеко не всегда. Очень медленная скорость работы, очень высокая чувствительность к качеству бинаризации. Даже в идеальных ситуациях я предпочитал обходиться другими методами.
Аналогом преобразования Хафа для прямых является преобразование Радона . Оно вычисляется через БПФ, что даёт выигрыш производительности в ситуации, когда точек очень много. К тому же его возможно применять к не бинаризованному изображению.
Фильтрации контуров
Отдельный класс фильтров - фильтрация границ и контуров . Контуры очень полезны, когда мы хотим перейти от работы с изображением к работе с объектами на этом изображении. Когда объект достаточно сложный, но хорошо выделяемый, то зачастую единственным способом работы с ним является выделение его контуров. Существует целый ряд алгоритмов, решающих задачу фильтрации контуров:

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



Прочие фильтры
Сверху приведены фильтры, модификации которых помогают решить 80-90% задач. Но кроме них есть более редкие фильтры, используемые в локальных задачах. Таких фильтров десятки, я не буду приводить их все. Интересными являются итерационные фильтры (например активная модель внешнего вида), а так же риджлет и курвлет преобразования, являющиеся сплавом классической вейвлет фильтрации и анализом в поле радон-преобразования. Бимлет-преобразование красиво работает на границе вейвлет преобразования и логического анализа, позволяя выделить контуры:

Но эти преобразования весьма специфичны и заточены под редкие задачи.

Часть 2. Логическая обработка результатов фильтрации

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

Если честно, то у меня ни разу ни получилось применить контурный анализ в реальных задачах. Уж слишком идеальные условия требуются. То граница не найдётся, то шумов слишком много. Но, если нужно что-то распознавать в идеальных условиях - то контурный анализ замечательный вариант. Очень быстро работает, красивая математика и понятная логика.
Особые точки
Особые точки это уникальные характеристики объекта, которые позволяют сопоставлять объект сам с собой или с похожими классами объектов. Существует несколько десятков способов позволяющих выделить такие точки. Некоторые способы выделяют особые точки в соседних кадрах, некоторые через большой промежуток времени и при смене освещения, некоторые позволяют найти особые точки, которые остаются таковыми даже при поворотах объекта. Начнём с методов, позволяющих найти особые точки, которые не такие стабильные, зато быстро рассчитываются, а потом пойдём по возрастанию сложности:
Первый класс. Особые точки, являющиеся стабильными на протяжении секунд. Такие точки служат для того, чтобы вести объект между соседними кадрами видео, или для сведения изображения с соседних камер. К таким точкам можно отнести локальные максимумы изображения, углы на изображении (лучший из детекторов, пожалуй, детектор Хариса), точки в которых достигается максимумы дисперсии, определённые градиенты и.т.д.
Второй класс. Особые точки, являющиеся стабильными при смене освещения и небольших движениях объекта. Такие точки служат в первую очередь для обучения и последующей классификации типов объектов. Например, классификатор пешехода или классификатор лица - это продукт системы, построенной именно на таких точках. Некоторые из ранее упомянутых вейвлетов могут являются базой для таких точек. Например, примитивы Хаара, поиск бликов, поиск прочих специфических функций. К таким точкам относятся точки, найденные методом гистограмм направленных градиентов (HOG).
Третий класс. Стабильные точки. Мне известно лишь про два метода, которые дают полную стабильность и про их модификации. Это SURF и SIFT . Они позволяют находить особые точки даже при повороте изображения. Расчёт таких точек осуществляется дольше по сравнению с остальными методами, но достаточно ограниченное время. К сожалению эти методы запатентованы. Хотя, в России патентовать алгоритмы низя, так что для внутреннего рынка пользуйтесь.

Часть 3. Обучение

ретья часть рассказа будет посвящена методам, которые не работают непосредственно с изображением, но которые позволяют принимать решения. В основном это различные методы машинного обучения и принятия решений. Недавно Яндыкс выложил на Хабр курс по этой тематике, там очень хорошая подборка. Вот оно есть в текстовой версии. Для серьёзного занятия тематикой настоятельно рекомендую посмотреть именно их. Тут я попробую обозначить несколько основных методов используемых именно в распознавании образов.
В 80% ситуаций суть обучения в задаче распознавания в следующем:
Имеется тестовая выборка, на которой есть несколько классов объектов. Пусть это будет наличие/отсутствие человека на фотографии. Для каждого изображения есть набор признаков, которые были выделены каким-нибудь признаком, будь то Хаар, HOG, SURF или какой-нибудь вейвлет. Алгоритм обучения должен построить такую модель, по которой он сумеет проанализировать новое изображение и принять решение, какой из объектов имеется на изображении.
Как это делается? Каждое из тестовых изображений - это точка в пространстве признаков. Её координаты это вес каждого из признаков на изображении. Пусть нашими признаками будут: «Наличие глаз», «Наличие носа», «Наличие двух рук», «Наличие ушей», и.т.д… Все эти признаки мы выделим существующими у нас детекторами, которые обучены на части тела, похожие на людские. Для человека в таком пространстве будет корректной точка . Для обезьяны точка для лошади . Классификатор обучается по выборке примеров. Но не на всех фотографиях выделились руки, на других нет глаз, а на третьей у обезьяны из-за ошибки классификатора появился человеческий нос. Обучаемый классификатор человека автоматически разбивает пространство признаков таким образом, чтобы сказать: если первый признак лежит в диапазоне 0.5 По существу цель классификатора - отрисовать в пространстве признаков области, характеристические для объектов классификации. Вот так будет выглядеть последовательное приближение к ответу для одного из классификаторов (AdaBoost) в двумерном пространстве:


Существует очень много классификаторов. Каждый из них лучше работает в какой-то своей задачке. Задача подбора классификатора к конкретной задаче это во многом искусство. Вот немножко красивых картинок на тему.
Простой случай, одномерное разделение
Разберём на примере самый простой случай классификации, когда пространство признака одномерное, а нам нужно разделить 2 класса. Ситуация встречается чаще, чем может представиться: например, когда нужно отличить два сигнала, или сравнить паттерн с образцом. Пусть у нас есть обучающая выборка. При этом получается изображение, где по оси X будет мера похожести, а по оси Y -количество событий с такой мерой. Когда искомый объект похож на себя - получается левая гауссиана. Когда не похож - правая. Значение X=0.4 разделяет выборки так, что ошибочное решение минимизирует вероятность принятия любого неправильного решения. Именно поиском такого разделителя и является задача классификации.


Маленькая ремарка. Далеко не всегда оптимальным будет тот критерий, который минимизирует ошибку. Следующий график - это график реальной системы распознавания по радужной оболочке. Для такой системы критерий выбирается такой, чтобы минимизировать вероятность ложного пропуска постороннего человека на объект. Такая вероятность называется «ошибка первого рода», «вероятность ложной тревоги», «ложное срабатывание». В англоязычной литературе «False Access Rate ».
) АдаБуста - один из самых распространённых классификаторов. Например каскад Хаара построен именно на нём. Обычно используют когда нужна бинарная классификация, но ничего не мешает обучить на большее количество классов.
SVM ( , , , ) Один из самых мощных классификаторов, имеющий множество реализаций. В принципе, на задачах обучения, с которыми я сталкивался, он работал аналогично адабусте. Считается достаточно быстрым, но его обучение сложнее, чем у Адабусты и требуется выбор правильного ядра.

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

И напоследок

Что почитать?
1) Когда-то мне очень понравилась книга «Цифровая обработка изображений» Б. Яне, которая написана просто и понятно, но в то же время приведена почти вся математика. Хороша для того, чтобы ознакомиться с существующими методами.
2) Классикой жанра является Р Гонсалес, Р. Вудс " Цифровая обработка изображений ". Почему-то она мне далась сложнее, чем первая. Сильно меньше математики, зато больше методов и картинок.
3) «Обработка и анализ изображений в задачах машинного зрения» - написана на базе курса, читаемого на одной из кафедр ФизТеха. Очень много методов и их подробного описания. Но на мой взгляд в книге есть два больших минуса: книга сильно ориентирована на пакет софта, который к ней прилагается, в книге слишком часто описание простого метода превращается в математические дебри, из которых сложно вынести структурную схему метода. Зато авторы сделали удобный сайт, где представлено почти всё содержание - wiki.technicalvision.ru Добавить метки

Распознавание изображений является важным и интересным разделом компьютерной науки, имеющим самые различные применения в реальной жизни. Так, распознавание изображений может применяться для задачи распознавания автомобильных номеров, идентификации наличия пешеходов на дороге, поиска и распознавания лиц на фотографиях, системах для управления каким-либо устройством жестами, проведения автоматического контроля качества на производстве - и это только очень небольшое подмножество практических применений распознавания изображений. Поэтому неудивительно, что интерес исследователей в области computer science и искусственного интеллекта к распознаванию изображений появился еще в 60-х годах 20 века и эта область науки активно развивается до сих пор.

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

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

Таким образом, основные трудности при распознавании изображений вызывают:

  • · Вариативность предметов внутри класса
  • · Вариативность формы, размера, ориентации, положения на изображении
  • · Вариативность освещения

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

Первые исследования в области распознавания изображений были опубликованы в 1963 году Л.Робертсом в статье «Machine Perception Of Three-Dimensional Solids», где автор сделал попытку абстрагироваться от возможных изменений в форме предмета и сконцентрировался на распознавании изображений простых геометрических форм в условиях различного освещения и при наличии поворотов. Разработанная им компьютерная программа была способна идентифицировать на изображении геометрические объекты некоторых простых форм и формировать их трехмерную модель на компьютере.

В 1987 году Ш.Улманом и Д.Хуттенлохером была опубликована статья «Object Recongnition Using Alignment» где они также сделали попытку распознавания объектов относительно простых форм, при этом процесс распознавания был организован в два этапа: сначала поиск области на изображении, где находится целевой объект, и определение его возможных размеров и ориентации (“alignment”) с помощью небольшого набора характерных признаков, и затем попиксельное сравнение потенциального изображения объекта с ожидаемым.

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

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

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

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

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

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

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

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

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

Общая характеристика задач распознавания образов и их типы.

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


Рис. 4.1.

Суть задачи распознавания - установить, обладают ли изучаемые объекты фиксированным конечным набором признаков , позволяющим отнести их к определенному классу.

Задачи распознавания имеют следующие характерные черты .

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

Целесообразно выделить следующие типы задач распознавания .

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

Основы теории анализа и распознавания изображений.

Пусть дано множество M объектов ; на этом множестве существует разбиение на конечное число подмножеств (классов) i = {1,m} , Объекты задаются значениями некоторых признаков x j , j= {1,N}. Описание объекта называют стандартным, если принимает значение из множества допустимых значений.

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

где i= {1,m}, - неизвестно.

Таблица 4.1. Таблица обучения
Объект Признаки и их значения Класс
x 1 x j x n
...
r11
...
...

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

Пусть задан полный набор признаков x 1 , ..., x N . Выделим систему подмножеств множества признаков S 1 , ..., S k . Удалим произвольный набор признаков из строк , , ..., и обозначим полученные строки через , , ..., , .

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

Величины ... , входят в качестве параметров в модель класса алгоритмов на основе оценок.

Пусть - оценка объекта по классу .

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

Проиллюстрируем описанный алгоритм распознавания на примере. Задано 10 классов объектов (рис. 4.2а). Требуется определить признаки таблицы обучения , пороги и построить оценки близости для классов объектов, показанных на рис. 4.2б . Предлагаются следующие признаки таблицы обучения :

x 1 - количество вертикальных линий минимального размера;

РАСПОЗНАВАНИЕ НЕДЕФОРМИРУЕМЫХ ТРЕХМЕРНЫХ ОБЪЕКТОВ НА ИЗОБРАЖЕНИЯХ ПО КОНТУРАМ

Студент 545 гр. кафедры системного программирования СПбГУ, nikolai. *****@***com

Аннотация

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

Введение

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

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

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

Существующие решения

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

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

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

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

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

Предлагаемый подход

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

Выделение контуров

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

https://pandia.ru/text/78/196/images/image002_10.png" width="198" height="207 src=">

Выделение особых точек

Среди точек полученного градиента изображения оставляем только те, норма градиента в которых больше определенного порога, таким образом, получая точки контура. Для этих точек градиента оставим только угол между направлением градиента и осью Ох. Если угол α больше π, то запишем вместо него α - π, потому что градиент может быть направлен в противоположные стороны при различных фонах. Отказ от использования информации о норме градиента позволяет использовать точки контура, находящиеся в тени, тем же образом, каким точки контура в освещенной части объекта. Далее бинаризуем посчитанные углы в n бинов, то есть если угол α,: 0 < α < π / n, тогда он попадает в первый бин, а если α,: π / n < α < π * 2 / n, тогда во второй и так далее. Затем из точек удаляем те, для которых неверно, что направление в этой точке является самым частым направлением в некоторой небольшой окрестности точки. Это обеспечивает локальную сонаправленность точек контура и чистит контур от шума. Оставшиеся точки (направление и координаты) и будут использоваться для сравнения двух контуров

Создание базы по трехмерным моделям

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

Рис. 3 Пример трехмерной модели в ракурсе повернутом по оси Оу на 20 градусов и по оси Ох на 10 градусов от фронтального.

Функция схожести и ее подсчет

Назовем каждый контур из базы образцом модели в некотором ракурсе и масштабе. Сдвинем координаты точек в образцах так, чтобы абсцисса самой левой точки была нулем, а ордината самой верхней точки была тоже нулём. Тогда для входного изображения I в точке с и образца T можно ввести функцию схожести

где P – это множество точек образца, О – изображение, соответствующее образцу, ori(O, r) – бинаризованое направление градиента изображения О в точке r. Функция основана на работе Steger и подобная использовалась в работе Farhan . Проблема состоит в том, что такая функция совершенно не устойчива к изменениям, поэтому для каждой точки образца необходимо рассматривать некоторую окрестность R (например, квадрат 7х7 пикселей) вокруг прикладываемой точки:

DIV_ADBLOCK454">

0 " style="border-collapse:collapse;border:none">

Результат теста на размытие зависит от размера ядра размытия и его силы. Чем больше – тем ниже процент. При преграждении процент распознавания зависит от того какая часть объекта перекрыта (много ли на ней точек контура).

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

Литература

1. Belongie, S.; Malik, J.; Puzicha, J., "Shape matching and object recognition using shape contexts," Pattern Analysis and Machine Intelligence, IEEE Transactions on , vol.24, no.4, pp.509,522, Apr 2002

2. Sebastian, T. B.; Klein, P. N.; Kimia, B. B., "On aligning curves," Pattern Analysis and Machine Intelligence, IEEE Transactions on , vol.25, no.1, pp.116,125, Jan. 2003

3. Macrini, D.; Shokoufandeh, A.; Dickinson, S.; Siddiqi, K.; Zucker, S., "View-based 3-D object recognition using shock graphs," Pattern Recognition, 2002. Proceedings. 16th International Conference on , vol.3, no., pp.24,28 vol.3, 2002

4. Farhan U.; Shun"ichi K.; Satoru I., “Object Search Using Orientation Code Matching”, IAPR Workshop on Machine Vision Applications, Nov. 28-30, 2000

5. C. Steger, “Occlusion Clutter, and Illumination Invariant Object Recognition,” in International Archives of Photogrammetry and Remote Sensing, 2002.



Рекомендуем почитать

Наверх