Лекции

участников Тремудрого Турнира 2012


 

 ЛЕКЦИЯ ПО МАГИЧЕСКОМУ АНАЛИЗУ

 

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


     В этом кабинете мы с вами будем изучать магический анализ. Анализ чего, наверно спросите вы. Да чего угодно. Вот, к примеру, кто-нибудь из вас переходил дорогу по светофору? Вы ведь решали там, по сути, задачу «Когда горит зелёный, можно идти, а когда красный, то нельзя». Или выбирали за обедом, какое мороженное взять на десерт, шоколадное или клубничное, или и вовсе ограничиться пудингом.  Читаете текст, например. А как же этот текст в вашей голове преобразуется в слова и смысл? Это всё в голове происходит само собой, но в глубине каждого из этих процессов и не только перечисленных, но и многих других лежат различные алгоритмы. Эти алгоритмы и являются предметом магического анализа. Если понять, как эти алгоритмы работают, то можно создать искусственный интеллект, который тоже сможет выполнять такие задачи и можно будет использовать это устройство в самых разных областях.
     У двери моего кабинета, к примеру, вы сегодня столкнулись с системой распознавания лиц и отпечатков пальцев. Именно о системе распознавания лиц мы поговорим на этом занятии. 
     Начали разрабатывать такие системы лет 40 назад и даже кое-чего добились. Сколько групп волшебников взялось за решение этой задачи, столько алгоритмов распознавания и получилось.  Однако лидером в этой области, бесспорно, считается мозг человека, что и не удивительно, он то уже несколько миллионов лет разрабатывался на тот момент.
     Но чтобы лицо проанализировать и распознать, его для начала надо найти на фотографии, видео или другом изображении. Для человека это сделать легко – как-то само получается. Но как это сделать искусственному интеллекту – тот еще вопрос. На данный момент для этого широко используется метод Виолы-Джонса. Для ответа на вопрос лицо/не лицо в нём используются такие вот прямоугольнички, которые называются функциями Хаара.

 


Рис. 1. Функции Хаара

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

 


Рис. 2. Применение функций Хаара

     Отдельно на чёрной и белой области складываются числа, кодирующие цвета на изображении в цветовой модели RGB. В цветовой модели RGB черный цвет будет кодироваться числами 0,0,0, а белый 255,255,255, где первое число это красный, второе зелёный, а третье голубой – Red, Green, Blue, откуда и название RGB, а все эти числа – интенсивность цветов, где 0 полное отсутствие цвета. Между чёрным и белым все остальные цвета кодируются промежуточными значениями интенсивности. Но, так или иначе, если сложить 3 числовых значения RGB, и сравнить с другим таким значением, то более яркие (светлые) области всегда будут кодированы большим числом, чем более тёмные. Отдельные цвета тоже можно суммировать, что и происходит для каждого пикселя отдельно для чёрной и белой областей функции Хаара. Таким образом, функция Хаара проверяет, является ли более темной область изображения, попавшая на чёрную область квадрата, чем та, что попала на более светлую. Для нашего изображения это означает, что область глаз должна быть темнее, чем область скул, а область переносицы должна быть светлее области глаз. Эти две функции приведены для примера, на самом деле подобных проверок проводится более тысячи на разных областях изображения и под разными углами. Если большинство результатов функций Хаара оказались истинными (темная область темнее светлой), то, скорее всего, это лицо.
     Но всё  не так просто…. В примере функция накладывалась на фотографию, где и так уже выбрано лицо, но как же его выбрать среди какой-нибудь картины с пейзажем, где помимо искомого лица еще куча объектов, а само лицо окажется где-нибудь в верхнем правом углу фотографии.
     Для этого изображение разбивается на пиксельную сетку. То есть на сетку, где каждая отдельная ячейка это минимально возможный графический объект - пиксель (или, грубо говоря, точка на экране). Это называется интеграцией изображения.
     Проводится обход всех возможных прямоугольников на изображении и на каждом из возможных прямоугольников проверяются функции Хаара. На каком из прямоугольников больше функций Хаара дало положительный результат, на том прямоугольнике и изображено лицо.

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

     А теперь запишите домашнее задание:
1) Для каких изображений метод Виолы-Джонса может не сработать? Что является препятствиями в распознавании и обнаружении лиц на изображениях?
2) Можно ли находить и распознавать лица на мультипликационных изображениях?
3) Попробуйте проанализировать работу вашего мозга в области поиска и анализа лиц. Что помогает или мешает в процессе распознавания лиц человеком?

     Ответы на домашнее задание присылайте с моей совой: redhear@bk.ru