| Распознавание образов |
|
|
1. Введение2. Распознавание с учетом яркости3. Распознавание с учетом характеристик4. Оценка позы5. Обзор OpenCV5.1 Особенности5.2 Архитектура1. ВведениеЗрение позволяет нам надежно распознавать людей, животных и неодушевленные объекты. В области искусственного интеллекта или машинного зрения для обозначения всех этих способностей принято использовать термин распознавание объектов. К этому относится определение класса конкретных объектов, представленных на изображении (например, лица), а также распознавание самих конкретных объектов (например, лица Билла Клинтона). Ниже перечислены прикладные области, которые стимулируют развитие этого научно-технического направления.
Зрение используется для распознавания не только объектов, но и видов деятельности. Люди способны узнавать знакомую походку (издалека замечая своего друга), выражение лица (улыбку, гримасу), жест (например, просьбу приблизиться), действие (прыжок, танец) и т.д. Исследования по распознаванию видов деятельности все еще находятся на этапе своего становления, поэтому в данном разделе мы сосредоточимся на теме распознавания объектов. Люди, как правило, легко решают задачу распознавания объектов, но практика показала, что эта задача является сложной для компьютеров. Дело в том, что система машинного зрения должна обладать способностью идентифицировать лицо человека, несмотря на изменения освещенности, позы по отношению к видеокамере и выражения лица. Любое из этих изменений вызывает появление широкого перечня различий в значениях яркости пикселов, поэтому метод, предусматривающий простое сравнение пикселов, вряд ли окажется применимым. Если же требуется обеспечить распознавание экземпляров определенной категории, такой как "автомобили", то приходится также учитывать различия внутри самой категории. Как оказалось, значительные трудности возникают даже при попытке решить весьма ограниченную проблему распознавания рукописных цифр в поле для почтового кода на конвертах. Наиболее подходящую инфраструктуру для изучения проблемы распознавания объектов предоставляют такие научные области, как контролируемое обучение или классификация образов. Системе предъявляют положительные примеры изображений (допустим, "лица" — face) и отрицательные примеры (допустим, "не лица" — non face) и ставят перед ней задачу определить с помощью обучения функцию, которая позволила бы отнести вновь полученные изображения к одной из двух категорий — face, non face. Для достижения этой цели cуществует множество методов; в частности, для решения проблем распознавания объектов были применены многослойные персептроны, деревья решений, классификаторы по ближайшим соседним элементам и ядерные машины. Но следует отметить, что задача приспособить эти методы для распознавания объектов — далеко не такая уж простая. Прежде всего необходимо преодолеть сложности, связанные с сегментацией изображения. Любое изображение, как правило, содержит множество объектов, поэтому необходимо вначале разбить его на подмножества пикселов, соответствующих отдельным объектам. А после разбиения изображения на участки можно ввести данные об этих участках или совокупностях участков в классификатор для определения меток объектов. К сожалению, процесс сегментации "снизу вверх" чреват ошибками, поэтому в качестве альтернативного подхода может быть предусмотрен поиск для определения групп объектов "сверху вниз". Это означает, что можно проводить поиск подмножества пикселов, которые можно классифицировать как лицо, и в случае успешного выполнения данного этапа результатом становится успешное обнаружение группы! Но подходы, основанные исключительно на поиске "сверху вниз" (или нисходящем поиске), имеют высокую вычислительную сложность, поскольку в них необходимо исследовать окна изображения различных размеров, находящиеся в разных местах, а также сравнивать их все с данными различных гипотез о наличии объектов. В настоящее время такая нисходящая стратегия используется в большинстве практически применяемых систем распознавания объектов, но подобная ситуация может измениться в результате усовершенствования методов поиска "снизу вверх" (восходящего поиска). Еще одной причиной затруднений является то, что процесс распознавания должен осуществляться надежно, невзирая на изменения освещенности и позы. Люди способны легко распознавать объекты, несмотря на то, что их внешний вид существенно изменяется, даже если судить по данным о значениях яркости пикселов на изображениях этих объектов. Например, мы всегда способны узнать лицо друга при разных условиях освещения или под разными углами зрения. В качестве еще более простого примера рассмотрим задачу распознавания рукописной цифры 6. Люди способны решить такую задачу независимо от изменения размеров и положения такого объекта на изображении, а также несмотря на небольшие изменения угла поворота3 надписи, изображающей эту цифру. На данном этапе необходимо сделать одно важное замечание — геометрические трансформации, такие как перенос, масштабирование и поворот, или трансформации яркости изображения, вызванные физическим перемещением источников света, имеют иной характер по сравнению с изменениями внутри категории, например, такими различиями, которыми характеризуются лица разных людей. Очевидно, что единственным способом получения информации о различных типах человеческих лиц или о разных способах написания цифры 4 является обучение. С другой стороны, влияния геометрических и физических трансформаций носят систематический характер, поэтому должна существовать возможность исключить их из рассмотрения на основе продуманного проектирования состава характеристик, используемых для представления обучающих экземпляров. Практика показала, что одним из весьма эффективных методов обеспечения инвариантности по отношению к геометрическим трансформациям является предварительная обработка рассматриваемого участка изображения и приведение его к стандартной позиции, масштабу и ориентации. Еще один вариант состоит в том, что можно просто игнорировать причинный характер геометрических и физических трансформаций, рассматривая их как дополнительные источники изменчивости изображений, поступающих в классификатор. В таком случае в обучающее множество необходимо включить экземпляры, соответствующие всем этим вариантам, в расчете на то, что классификатор выявит логическим путем данные о соответствующем множестве трансформаций входных данных, что позволит исключить из рассмотрения указанные причины изменения внешнего вида экземпляров. Теперь перейдем к описанию конкретных алгоритмов распознавания объектов. Для упрощения сосредоточимся на задаче, постановка которой определена в двухмерной системе координат, — и обучающие, и тестовые примеры заданы в форме двухмерных растровых изображений. Очевидно, что данный подход вполне применим в таких областях, как распознавание рукописного текста. Но даже в случае трехмерных объектов может оказаться эффективным подход, предусматривающий использование способа представления этих объектов с помощью многочисленных двухмерных изображений (рис. 1) и классификации новых объектов путем сравнения их с хранимыми изображениями (т.е. с некоторыми другими данными, представляющими те же объекты).
Как было описано в предыдущем разделе, для извлечения из изображения информации о трехмерных объектах в сцене могут использоваться многочисленные признаки. Кроме того, многочисленные признаки лежат в основе распознавания объектов, например, тигра можно узнать, заметив оранжевые и черные цвета на его шкуре, обнаружив на ней полосы или определив форму его тела. Цвет и текстуру можно представить с использованием гистограмм или эмпирических распределений частот. Получив в качестве образца изображение тигра, можно определить, каково процентное соотношение количества пикселов, относящихся к разным цветам. В дальнейшем, после получения экземпляра с неизвестной классификацией, можно провести сравнение гистограммы его цветов с данными о полученных ранее примерах изображений тигра. Для анализа текстуры рассматриваются гистограммы, полученные в результате свертки изображения с фильтрами, имеющими различные ориентации и масштабы, после чего отыскиваются совпадения. Как оказалось, задача использования формы для распознавания объектов является более сложной. Вообще говоря, существуют два основных подхода: распознавание с учетом яркости, в котором непосредственно используются значения яркости пикселов, и распознавание с учетом характеристик, в котором предусматривается применение данных о пространственном расположении извлеченных из изображения характеристик, таких как края или ключевые точки. После более подробного описания двух этих подходов мы рассмотрим также проблему оценки позы, т.е. проблему определения местонахождения и ориентации объектов в сцене. 2. Распознавание с учетом яркостиПри таком подходе за основу берется подмножество пикселов изображения, которое соответствует распознаваемому объекту, и определяются данные о характеристиках как данные о самих исходных значениях яркости пикселов. Еще один вариант этого метода состоит в том, что вначале может быть выполнена свертка изображения с различными линейными фильтрами, после чего значения пикселов в результирующих изображениях рассматриваются как характеристики. Такой подход оказался очень успешным при решении таких задач, как распознавание рукописных цифр. Для создания детекторов лиц, позволяющих распознавать лица с помощью баз данных с изображениями, использовался целый ряд статистических методов, включая методы на основе нейронных сетей с необработанными входными данными, представленными в виде характеристик пикселов; деревья решений с характеристиками, определяемыми с помощью различных фильтров полос и краев; а также наивные байесовские модели с характеристиками небольшого волнения (ряби). Некоторые результаты применения последнего метода показаны на рис. 2.
Одним из недостатков метода, в котором в качестве векторов характеристик используются необработанные данные о пикселах, является большая избыточность, свойственная этому способу представления. Предположим, что рассматриваются два пиксела, расположенные рядом на изображении щеки лица какого-то человека; между ними, скорее всего, будет весьма высокая корреляция, поскольку для них свойственны аналогичное геометрическое расположение, освещенность и т.д. Для сокращения количества размерностей вектора характеристик можно с успехом применять методы уменьшения объема данных, такие как анализ наиболее важных компонентов; использование таких методов обеспечивает распознавание объектов, подобных лицам, с большим быстродействием по сравнению с тем, которое может быть достигнуто с использованием пространства большей размерности. 3. Распознавание с учетом характеристикВместо применения в качестве характеристик необработанных данных о яркости пикселов можно использовать способы обнаружения и разметки пространственно локализованных характеристик, таких как участки и края. Применение краев является целесообразным по двум описанным ниже важным причинам. Одной из них является уменьшение объема данных, связанное с тем, что количество краев намного меньше по сравнению с количеством пикселов изображения. Вторая причина обусловлена возможностью добиться инвариантности освещенности, поскольку края (при наличии подходящего диапазона контрастов) обнаруживаются приблизительно в одних и тех же местах, независимо от точной конфигурации ос-вещенностей. Края представляют собой одномерные характеристики; были также предприняты попытки использовать двухмерные характеристики (участки) и нульмерные характеристики (точки). Обратите внимание на то, как отличаются трактовки пространственного расположения в подходах с учетом яркости и с учетом характеристик. В подходах с учетом яркости эти данные кодируются неявно, как индексы компонентов вектора характеристик, а в подходах с учетом характеристик характеристикой является само местонахождение (х, у). Неотъемлемым свойством любого объекта является инвариантное расположение краев; именно по этой причине люди могут легко интерпретировать контурные рисунки, даже несмотря на то, что подобные изображения не встречаются в природе! Простейший способ использования этих знаний основан на классификаторе по ближайшим соседним точкам. При этом предварительно вычисляются и сохраняются данные о конфигурациях краев, соответствующие представлениям всех известных объектов. А после получения конфигурации краев, соответствующей неизвестному объекту на изображении, являющимся предметом запроса, можно определить "расстояние" этого объекта от каждого элемента библиотеки хранимых представлений. После этого классификатор по ближайшим соседним точкам выбирает наиболее близкое соответствие. Для описания понятия расстояния между изображениями было предложено много разных определений. Один из наиболее интересных подходов основан на идее согласования с учетом деформации. В своей классической работе On Growth and Form [1506] Дарси Томпсон заметил, что близкие, но не идентичные формы часто можно деформировать в подобные друг другу формы с использованием простых координатных преобразований4. При таком подходе понятие подобия формы воплощается на практике в виде следующего трехэтапного процесса: во-первых, отыскивается решение задачи соответствия между двумя формами, во-вторых, данные о соответствии используются для определения преобразования, позволяющего сделать эти формы аналогичными, и, в-третьих, вычисляется расстояние между двумя формами как сумма ошибок согласования между соответствующими точками, наряду с термом, в котором измеряется величина выравнивающего преобразования. Форма представляется с помощью конечного множества точек, полученных в виде выборки, взятой на внутренних или внешних контурах формы. Эти данные могут быть получены как сведения о местонахождениях пикселов краев, обнаруженные детектором краев, и представлены в виде множества {p1, . . . pN}из N точек. Примеры множеств точек, соответствующих двум формам, приведены на рис. 3, а, б.
Используется 5 секторов для log г и 12 секторов для ? (в); примеры контекстов формы для опорных образцов, отмеченных точками со значками Теперь рассмотрим конкретную точку выборки pi, наряду с множеством всех векторов, исходящих из этой точки в направлении всех других точек выборки в форме. Эти векторы представляют конфигурацию всей формы относительно рассматриваемой опорной точки. Такое представление лежит в основе следующей идеи: с каждой точкой выборки можно связать дескриптор, или контекст формы, который приближенно представляет расположение остальной части формы по отношению к данной точке. Точнее, контекст формы точки pi представляет собой приближенную пространственную гистограмму hi относительных координат pk - pi остальных N-1 точек pk. Для определения сегментов используется логарифмическая—полярная система координат, обеспечивающая то, что дескриптор становится более чувствительным к различиям в ближайших друг к другу пикселах. Пример расположения сегментов показан на рис. 3, в. Обратите внимание на то, что неотъемлемым свойством этого определения контекста формы является его инвариантность к операции переноса, поскольку все изменения выполняются по отношению к точкам в объекте. Для достижения инвариантности к операции масштабирования все радиальные расстояния нормализуются путем деления на среднее расстояние между парами точек. Контексты формы позволяют решить задачу установления соответствия между двумя аналогичными, но не идентичными формами, наподобие тех, которые показаны на рис. 3, а, б. Контексты формы являются разными для различных точек на одной и той же форме S, тогда как соответствующие (гомологичные) точки на подобных формах S и S', как правило, имеют одинаковые контексты формы. Таким образом, задача поиска соответствующих друг другу точек двух форм преобразована в задачу поиска партнеров, имеющих взаимно подобные контексты формы. Точнее, рассмотрим точку pi на первой форме и точку qj на второй форме. Допустим, что Cij = C(pi, qj)обозначает стоимость согласования этих двух точек. Поскольку контексты формы представляют собой распределения, выраженные в виде гистограмм, вполне обоснован подход, предусматривающий использование расстояния X2 , следующим образом:
где hi(k), hj(k) обозначают k-й сектор нормализованных гистограмм в точках pi и qj. Если дано множество стоимостей Cijогласования между всеми парами точек i на первой форме и точек j на второй форме, то может быть принято решение минимизировать общую стоимость согласования с учетом ограничения, что это согласование должно выполняться на основе взаимно-однозначного соответствия. Это — пример задачи поиска паросочетаний взвешенного двухдольного графа, которая может быть решена за время O(N3) с использованием так называемого венгерского алгоритма (Hungarian algorithm). Если известны соответствия в точках выборки, то данные о соответствии можно распространить на всю форму, оценивая стоимость согласующего преобразования, которое позволяет отобразить одну форму на другой. Особенно эффективным является подход с использованием регуляризованного тонкостенного сплайна (regularized thin plate spline). После того как формы будут согласованы, задача вычисления оценок подобия становится относительно несложной. Расстояние между двумя формами может быть определено как взвешенная сумма расстояний контекстов форм между соответствующими точками и как энергия изгиба, связанная с тонкостенным сплайном. После получения такой меры расстояния для решения задачи распознавания можно использовать простой классификатор по ближайшим соседним точкам. 4. Оценка позыИнтерес представляет не только задача определения того, каковым является некоторый объект, но и задача определения его позы, т.е. его позиции и ориентации по отношению к наблюдателю. Например, при решении проблемы манипулирования объектами на производстве приходится учитывать, что захват робота не может взять объект до тех, пока не будет известна его поза. В случае твердотельных объектов, как трехмерных, так и двухмерных, эта проблема имеет простое и полностью определенное решение, основанное на методе выравнивания, который описан ниже. В этом методе объект представляется с помощью ? характеристик, или различимых точек m1, m1, . . . mN в трехмерном пространстве (в качестве таковых могут, допустим, рассматриваться вершины многогранного объекта). Координаты этих точек измеряются в некоторой системе координат, наиболее подходящей для данного объекта. После этого точки подвергаются операции трехмерного вращения R с неизвестными параметрами, за которой следует операция переноса на неизвестную величину t, а затем выполняется операция проекции, которая приводит к появлению точек характеристик изображения p1, p1, . . . pN на плоскости изображения. Вообще говоря, Задачу определения преобразования Q можно решить, получив значения трехмерных координат трех точек модели и их двухмерных проекций. В основе этого подхода лежит следующая интуитивная идея: могут быть легко составлены уравнения, связывающие координаты pi с координатами mi. В этих уравнениях неизвестные величины соответствуют матрице вращения R и вектору переноса t. Если количество уравнений достаточно велико, то возможность получения решения для Q становится неоспоримой. Мы не будем приводить здесь доказательство этой гипотезы, а просто сформулируем следующий результат. Если даны три точки m1, m2, m3, в модели, не лежащие на одной прямой, и их масштабированные ортогональные проекции, p1, p2, p3, на плоскости изображения, то существуют две и только две трансформации из системы координат трехмерной модели в систему координат двухмерного изображения. Эти трансформации связаны друг с другом, поскольку зеркально противоположны относительно плоскости изображения; они могут быть вычислены на основе простого решения в замкнутой форме. Если существует возможность идентифицировать характеристики модели, соответствующие трем характеристикам в изображении, то может быть вычислена Q— поза объекта. В предыдущем подразделе обсуждался метод определения соответствий с использованием согласования контекстов формы. Если же объект имеет четко определенные углы или другие заметные точки, то становится доступным еще более простой метод. Идея его состоит в том, что необходимо повторно формировать и проверять соответствия. Мы должны выдвинуть первоначальную гипотезу о соответствии тройки точек изображения тройке точек модели и использовать функцию Find-Transform для формирования гипотезы Q. Если принятое предположение о соответствии было правильным, то трансформация Q является правильной и после ее применения к оставшимся точкам модели приводит к получению предсказания координат точек изображения. Если принятое предположение было неправильным, то трансформация Q также является неправильной и после ее применения к оставшимся точкам модели не позволяет предсказывать координаты точек изображения. Описанный выше подход лежит в основе алгоритма Align, приведенного в листинге 1. Этот алгоритм находит позу для данной конкретной модели или возвращает индикатор неудачи. Временная сложность данного алгоритма в худшем случае пропорциональна количеству сочетаний троек точек модели и троек точек изображения, или
умноженному на стоимость проверки каждого сочетания. Стоимость проверки пропорциональна MlogN, поскольку необходимо предсказывать позицию изображения для каждой из ? точек модели и находить расстояние до ближайшей точки изображения, что требует выполнения logN операций, если точки изображения представлены с помощью некоторой подходящей структуры данных. Поэтому в наихудшем случае сложность алгоритма выравнивания определяется значением
5. Обзор OpenCVOpenCV – разработанная Intell на Си/Си++ библиотека с открытым исходным кодом, способная значительно упростить программирование компьютерного зрения. Она предоставляет много возможностей: детектирование, отслеживание и распознавание лиц, фильтрация Кальмана (http://www.basegroup.ru/library/cleaning/kalmanfilter/) и различные готовые к использованию методы искусственного интеллекта (ИИ) (http://rriai.org.ru/). Кроме того через низкоуровневый API предоставляется большое количество базовых алгоритмов компьютерного зрения. Понимание работы методов позволит получить хорошие результаты от использования OpenCV. Здесь будет описано, как, используя OpenCV, реализовать детектирование, отслеживание и распознавание лиц. Кроме этого будет показано, как работает каждый метод и представлено несколько трюков для достижения наилучших результатов. Это первая статья, знакомящая с OpenCV. Я расскажу вам, как получить библиотеку дам несколько указаний для установки на ваш компьютер. Вы узнаете, как, используя OpenCV, читать и записывать файлы изображений, захватывать видео, конвертировать цветовые форматы и получать доступ к пиксельным данным. Скачать OpenCV можно с сайта http://sourceforge.net/projects/opencvlibrary/ Первая версия OpenCV была выпущена Intell в 1999 г. Первоначально для её использования требовалась Image Processing Library. Но эта зависимоть была удалена и теперь OpenCV может использоваться независимо. OpenCV является мультиплатформенной библиотекой, она поддерживает Windows, Linux и MacOSX. С одним лишь исключеним (модуль CVCAM, который будет описан ниже), её интерфейсы платформенно-независимы. 5.1 ОсобенностиOpenCV имеет очень много возможностей и вначале может показаться сложной, но чтобы начать знакомство нужно совсем не много. Здесь краткое описание важнейших функциональных категорий в библиотеке OpenCV версии 1.0:
Рисунок 4 показывает несколько примеров возможностей OpenCV в действии: детектирование лица, контура и перепадов.
5.1 АрхитектураФункциональность OpenCV содержится в нескольких модулях. CXCORE содержит определение типов данных. Например структуры данных для изображения, точки и прямоугольника определены в cxtype.h. CXCORE так же содержит методы линейной алгебры и статистики, персистентные функции и обработчики ошибок. Как ни странно, здесь так же находится, кое-что из графических функций для рисования на изображениях. CV содержит функции для обработки изображений и калибровки камер. Здесь так же находятся функции вычислительной геометрии. CVAUX описан в документации OpenCV, как содержащий устаревший и экспериментальный код. Однако в этом модуле есть простейший алгоритмы для распознавания лица. Код этих функций специалзирован для распознавания лиц и они широко используются для этих целей. ML содержит функции машинного обучения. Остальная функциональность содержится в HighGUI и CVCAM. Оба модуля расположены в директории «otherlib». HighGUI содержит базовые функции ввода/вывода и мультиплатформенные функции для вывода окон. CVCAM содержит функции для доступа к видео с помощью DirectX на 32-х разрядных платформах Windows. HighGUI так же содержит видео функции.
|