компьютерное зрение. Разница между зрением человека и компьютера
Скачать 20.91 Kb.
|
Введение Компьютерное зрение это новая парадигма в искусственном интеллекте (в дальнейшем ИИ), где основываются не на символьной логике, а на технологиях вычислительного интеллекта. Область применения этой технологии достаточно широка: от считывателей криптокодов и распознавания лиц до дополненной реальности. Распознавать объекты и образы – процесс работы мозга человека, над которым он даже не задумывается. Но для компьютера это является сложностью из области работы «быстрого медленного» человеческого мозга. В то время как компьютер вычисляет гораздо быстрее человека, но человек обгоняет его в тривиальных задачах и задачах класса NP. Предпринятые сейчас попытки воссоздать хотя бы часть тех функций, которые присуще человеку изначально весьма тяжело реализуются. Пожалуй, самый, распространенный случай машинного зрения на кассе в супермаркете. Конечно, мы говорим о чтении штрих-кода, который разработан именно для этих целей, чтобы максимально упростить процесс чтения на компьютере. Но есть более сложная задача - прочитать движущийся текст (номера и т.д.), для анализа медицинских изображений, распознавание лиц и др. Также активно развивается применение компьютерного зрения для повышения реальности. Содержание Разница между зрением человека и компьютера Младенец учится распознавать образы постепенно. Он ассоциирует объект со своими первичными чувствами, при каких обстоятельствах он впервые его увидел и что он ему сделал хорошего или плохого (что также зависит от уже вложенных понятий в ребенка), начинает воспринимать объект с разных сторон, выделяет типичные характеристики для этого объекта и его поведение присваивает только этому образу благодаря чему в последствии и узнает его. В дальнейшем при распознавании объектов человек ориентируется на предыдущий опыт. За всю жизнь у человека накапливается огромное количество информации, процесс обучения нейронной сети не останавливается ни на секунду. Для нас не представляет особой сложности представить объект из одной реальности в другой благодаря накопленному опыту, мы ориентируемся на него придаем объекту тот тип поведения который знаем для него в другой реальности, например из двухмерной в трехмерную, и стараемся воспринять его проецируемые признаки. Для компьютера эти задачи гораздо сложнее. В основном из-за накопления опыта, есть конечно и другие системы, которые предлагаю универсальные алгоритмы, которые по идее должны срабатывать для любого опыта, вне зависимости от знаний клиента – так называемые экспертные системы. Но к сожалению в технологиях компьютерного зрения их сложно применить так как они представляют собой другую парадигму ИИ работающую в символьном направлении. Мальчик или девочка? Так при создании алгоритма (свойств, признаков и методов) для определенного образа или объекта мы также его можем применять и на других объектах. Например для того, чтобы распознать какого пола человек перед нами – в основном это задача полиморфизма кода в ООП, но тут стоит сложность с нечеткими алгоритмами и что самое интересное в человеческом мозгу нечеткость алгоритма часто и равна проценту неточностей при решении задач распознавания, а в компьютерном алгоритме часто может произойти что 50% нечеткости дают 95% правильных решений, в то время как в другом применении 5% неточности дают 80% неверных решений. Вопрос нечеткого полиморфизма кода также весьма остро стоит и сегодня, хотя уже были весьма оригинальные решения, но они были очень спецефичны и узконаправленны (представляли собой очень узкий частный случай). Машинное обучение В реальных задачах, которые ставятся перед системами компьютерного зрения, характеризующих свойств и методов объекта гораздо больше. Определять их вручную и просчитывать зависимости – непосильная для человека задача. Поэтому в таких случаях без машинного обучения не обойтись никак. Например, можно определить несколько десятков первоначальных факторов, а также задать положительные и отрицательные примеры. А уже зависимости между этими факторами подбираются автоматически, составляется формула, которая позволяет принимать решения. Достаточно часто и сами характеризующие свойства и методы объекта выделяются автоматически. Изображение в цифрах Самый распространённый формат для хранения цифровых изображений цветовое пространство RGB. В нем каждой из трех каналов присваивается свой цвет: красный, зеленый и синий. На каждый канал выделяется по 8 бит информации, соответственно, интенсивность цвета на каждой оси может принимать значения в диапазоне от 0 до 255. И в итоге все цвета получаются путем смешивания 256 оттенков одного из трех основных цветов с другими двумя оттеками. Но RGB не всегда идеально подходит для анализа информации. Опыты показывают, что геометрическая близость цветов достаточно далека до того, как человек воспринимает близость тех или иных оттенков друг к другу. Но существуют и другие цветовые пространства. Очень интересно в этом отношении пространство HSV(Hue, Saturation, Value). Его основные ценности, Value, т.е. количество цвета, по сути черно белая ось. Это отдельный канал, не как в RGB вычисляемый каждый раз. По сути, это черно-белый вариант изображения, которая уже работает. Hue представителем угол и отвечает за тон. От Saturation (расстояние от центра к краю)цвета зависит насыщенность. HSV намного ближе к естественному представлению цвета человеком. Если показать нам в темноте голубой и синий объект, мы не сможет различить цвета. В HSV в итоге получается тоже саоме. Чем ближе к началу по оси V мы продвигаемся, тем меньше становится разница между оттенками, снижаемый диапазоном значений насыщенности. На схеме это представлено конусом, вершиной которого будет предельно черная точка. Цвет и свет Почему так нужно иметь данные о глубине света в изображении? В большинстве случаев в компьютерном зрении цвет не имеет никакого значения, так как не несет никакой важной информации. Посмотрим на две картинки: цветную и черно-белую. Узнать все объекты на черно-белой версии не намного сложнее, чем на цветной. Дополнительной нагрузки для нас цвет в данном случае не несет никакой, а вычислительных проблем создает великое множество. Когда мы работаем с цветной версией изображения, объем данных, грубо говоря, возводится в степень куба. Цвет используется лишь в редких случаях, когда это наоборот позволяет упростить вычисления. Например, когда нужно детектировать лицо: проще сначала найти его возможное расположение на картинке, ориентируясь на диапазон телесных оттенков. Благодаря этому отпадает необходимость анализировать изображение целиком. Локальные и глобальные признаки Признаки, накопленные нашим опытом, и при помощи которых мы воспринимаем изображение, бывают локальными и глобальными. Смотря на эту картинку, большинство людей скажет, что на ней изображена машина: Это подразумевает, что выделен на изображении образ и описан локальный признак цвета. По большому счету в количественном подсчете по площади на картинке изображен дорога, лес и немного автомобиля. По площади лес занимает большую часть. Но мы понимаем, что красная машина на этой картинке – самый главный объект (хотя опять же это зависит от накопленного опыта, например какой ни будь ярый биолог, может сказать, что на этой картинке самый главный объект это лес). И если человеку предложить найти похожие картинки, он будет в первую очередь отбирать изображения, на которых присутствует красная машина. Ярким примером организации таких вычислений был робот, представленный на выставке в Ганновере целиком основанного на вычислительных технологиях интеллекта. С нейрочипами, нечеткими контроллерами, генетическими алгоритмами и средствами гибридизации. Здесь нечеткая система играет роль мозга, нейросеть играет роль глаз, а генетические алгоритмы как бы оптимизируют работу этих глаз, не позволяя им попадать в локальные экстремумы и помогая попадать в поисках глобального экстремума. Детектирование и сегментация Сегментация – это разделение изображения на части, связанные друг с другом семантически, либо визуально. А детектирование – это нахождение объектов или образов на изображении. Детектирование нужно четко отличать от распознавания. Допустим, на той же картинке с автомобилем нужно детектировать животное преграждающее путь, но распознать его невозможно, так как оно слишком далеко и не дает увидеть всех своих особенностей. Так же при нахождении лиц фотоаппаратом, он может определить расположение лица, а распознать уже не сможет. Дескрипторы и визуальные слова Также один из подходов к распознаванию такой: На изображения сначала выбиратся " интересные " точки или "интересных" места, отличных от фона яркие пятна, переходы и др. Существует несколько алгоритмов, чтобы сделать это. Наиболее интересный способ называется Difference of Gaussians (DoG). Где размывая картинку с разным радиусом и сравнивая получившиеся результаты, находятся наиболее контрастные фрагменты. Области этих фрагментов и являются наиболее «интересными». Кроме того, эти области, описаные в цифровой виде, разделяются на небольшие участки, чтобы определить, что в какую сторону получают векторы. На картинке ниже изображено, как это примерно выглядит. Полученные данные записываются в дескрипторы. Одинаковые дескрипторы независимо от поворота вектора в плоскости разворачиваются так, чтобы самые большие векторы были повернуты в одну сторону. Делается это далеко не всегда, только если нужно обнаружить два одинаковых объекта, расположенных в разных местах. Дескрипторы можно записывать в числовом виде. Дескриптор можно представить в виде точки в многомерном массиве. У нас на иллюстрации двумерный массив. В него попали наши дескрипторы. И мы можем их кластеризовать – разбить на группы. Дальше мы для каждого кластера описываем область в пространстве. Когда дескриптор попадает в эту область, для нас становится важным не то, каким он был, а то, в какую из областей он попал. И дальше мы можем сравнивать изображения, определяя, сколько дескрипторов одного изображения оказались в тех же кластерах, что и дескрипторы другого изображения. Такие кластеры можно называть визуальными словами. Чтобы находить не просто одинаковые картинки, а изображения похожих объектов, требуется взять множество изображений этого объекта и множество картинок, на которых его нет. Затем выделить из них дескрипторы и кластеризовать их. Далее нужно выяснить, в какие кластеры попали дескрипторы с изображений, на которых присутствовал нужный нам объект. Теперь мы знаем, что если дескрипторы с нового изображения попадают в те же кластеры, значит, на нем присутствует искомый объект. Совпадение дескрипторов – еще не гарантия идентичности содержащих их объектов. Один из способов дополнительной проверки – геометрическая валидация. В этом случае проводится сравнение расположения дескрипторов относительно друг друга. Распознавание и классификация Для простоты представим, что мы можем разбить все изображения на три класса: архитектура, природа и портрет. В свою очередь, природу мы можем разбить на растения животных и птиц. А уже поняв, что это птица, мы можем сказать, какая именно: сова, чайка или ворона. Разница между распознаванием и классификацией достаточно условна. Если мы нашли на картинке сову, то это скорее распознавание. Если просто птицу, то это некий промежуточный вариант. А если только природу – это определенно классификация. Т.е. разница между распознаванием и классификацией заключается в том, насколько глубоко мы прошли по дереву. И чем дальше будет продвигаться компьютерное зрение, тем ниже будет сползать граница между классификацией и распознаванием. Заключение Список использованных источников Обработка и анализ изображений в задачах машинного зрения. Желтов С.Ю. и др. , 2010 А.А. Лукьяница, А.Г. Шишкин - Цифровая обработка видеоизображений - 2009 Компьютерное зрение Шапиро Л., Стокман Дж. 2006 Компьютерное зрение. Современный подход Форсайт Д., Понс Ж. 2004 Лекциии по компьютерному зрению лаборатории компьютерной графики МГУ 2009 г. Лекциии по компьютерному зрению лаборатории компьютерной графики МГУ 2010 г. Лекциии по компьютерному зрению лаборатории компьютерной графики МГУ 2011 г. Лекциии по компьютерному зрению лаборатории компьютерной графики МГУ 2012 г. http://habrahabr.ru/company/yandex/blog/203136/ |