ДонНТУ   Портал магистров

Реферат по теме выпускной работы

Содержание

Введение

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

1. Актуальность темы

В последнее время задача распознавания человеческих лиц становится все более актуальной. Распознавание лиц – практическое приложение теории распознавания образов, в задачу которого входит автоматическая локализация лица на фотографии и, в случае необходимости, идентификация персоны по лицу. Распознавание лиц применимо в следующих областях: охранные системы, криминалистика, компьютерная графика, взаимодействие человек-компьютер, виртуальная реальность, компьютерные игры, электронная коммерция, персонализация и защита данных и др. Таким образом имеет место актуальность данной задачи [2].

Магистерская работа посвящена актуальной научной задаче распознавания образов, где в качестве образов выступает изображение человеческого лица. Образ получаем из видеопотока. Фактически задача разбивается на две подзадачи: выделение лица из видеопотока и распознавание уже выделенного лица. В качестве инструментария испрользуется платформа Java SE, IDE Eclipse и несколько вспомогательных библиотек.

Большой вклад в развитие темы распознавания образов в ДонНТУ внес Федяев Олег Иванович и его магистранты – Куликов С.А., Дрига К.В., Махно Ю.С., Костецкая Г.Ю., Сова А.А. и другие.

В мире исследования данной тематики ведутся еще с 80-х годов. Ян ЛеКун – американский ученый французского происхождения внес большой вклад в развитие систем распознавания образов с применением нейроных сетей. Корпорация Intel написала собственную библиотеку компьютерного зрения с открытым исходным кодом – OpenCV [3], которая доступна каждому. 

2. Цель и задачи исследования, планируемые результаты

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

Основные задачи исследования:

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

Объект исследования: нейросетевая система распознавания лиц

Предмет исследования: Структура сверточной нейронной сети и алгоритмы ее обучения, алгоритмы выделения лиц из видеопотока

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

  1. Определение наиболее эффективной методики локализации человеческого лица.
  2. Создание программной модели сверточной нейронной сети и определение ее параметров.
  3. Анализ эффективности используемых алгоритмов.

3. Получение снимка лица из видеопотока

В настоящее время задача распознавания человеческих лиц становится всё более актуальной. Процессу непосредственного распознавания лиц предшествует важный этап автоматической локализации лица на снимке, методы реализации которого сейчас активно развиваются. Один из методов рассматривается в данном разделе – метод Виола-Джонса [4]. Несмотря на то, что данный метод был описан еще в 2001 году, он остается одним из самых эффективных алгоритмов выделения лица. Также этот алгоритм входит в топ-10 алгоритмов искусственного интеллекта [5] по версии 2007 года.

В его основе лежит алгоритм adaptive boosting’a (адаптивного усиления) или сокращённо AdaBoost[6]. Смысл алгоритма заключается в том, что есть набор эталонных объектов, т.е. есть изображение и класс, к которому оно принадлежит (например, -1 – нет лица на изображении, +1 – есть лицо). Кроме того, имеется множество простых классификаторов, из которых можно построить один более совершенный и мощный классификатор. При этом в многошаговом процессе составления и обучения финального классификатора акцент делается на эталоны, которые распознаются хуже. В этом и заключается адаптивность алгоритма, так как в процессе обучения он подстраивается под наиболее сложные объекты. Примеры его применения показали, что AdaBoost очень эффективный и быстрый алгоритм. Он хорошо себя зарекомендовал при решении таких задач, в которых выделяемые объекты (например, лица) сильно зашумлены. Рисунок 1 отображает идею локализации лица на изображении по данному алгоритму:

Идея алгоритма Виола-Джонса

Рисунок 1 – Идея алгоритма Виола-Джонса

 

В основе алгоритма лежат три ключевые концепции:

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

Интегральное изображение в точке (х,у)

    где ii(x,y) – значение интегрального изображения в точке (x,y).

Для вычисления интегрального изображения используются следующие рекуррентные формулы:

Для вычисления интегрального изображения используются рекуррентные формулы

    где s(x,y) – накапливаемая сумма строки, s(x,-1)=0, ii(-1, y)=0.

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

Алгоритм бустинга

Рисунок 2 – Алгоритм бустинга

 

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

в) Использование каскада Хаара [7], который выбирает небольшое число признаков и объединяет их в признаки более высокого уровня. В результате получаем каскад из 38 шагов на большом наборе данных, состоящем из 507 лиц с более чем 75 миллионами сканирующих окон. Лица распознаются со скоростью 10 вычислений признаков в секунду для каждого окна. Результирующий детектор скользит по изображению в разных масштабах, при этом   увеличивается не масштаб изображения, а масштаб самого окна. Таким образом приобретается инвариантность к отдалению лица от камеры.

4. Сверточная нейронная сеть

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

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

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

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

Решению этих проблем были посвящены работы американского учёного французского происхождения Яна Ле Куна, связанные с разработкой и исследованием свёрточных нейронных сетей. Идея свёрточных нейронных сетей заключается в чередовании свёрточных слоёв (C-layers), слоёв подвыборки (S-layers) и использовании на выходе полносвязного слоя нейронов, которые в целом образуют ансамбль специализированных нейросетей. В основе свёрточных сетей лежат три механизма, используемых для достижения инвариантности к переносу, масштабированию, незначительным искажениям:

  1. Локальное извлечение признаков. Каждый нейрон получает входной сигнал от локального рецептивного поля в предыдущем слое, извлекая, таким образом, его локальные признаки. Как только признак извлечён – его точное расположение уже не имеет значение, поскольку установлено его местонахождение относительно других признаков.
  2. Формирование слоёв в виде набора карт признаков. Каждый вычислительный слой состоит из множества карт-признаков – плоскостей, на которых все нейроны должны использовать одно и то же множество синаптических весов. Такая форма усложняет структуру сети, однако имеет два важных преимущества: инвариантность к смещению, которое достигается с помощью свёртки с ядром небольшого размера, и сокращение числа свободных параметров, которое достигается за счёт совместного использования синаптических весов нейронами одной и той же карты.
  3. Подвыборка. За каждым слоем свёртки следует вычислительный слой, осуществляющий локальное усреднение и подвыборку. За счёт этого достигается уменьшение разрешения для карт признаков. Такая операция приводит к понижению чувствительности выходного сигнала оператора отображения признаков к незначительному смещению и прочим видам деформации. В качестве такого оператора выступает одна из сигмоидальных функций, используемых при построении нейронных сетей (например, гиперболический тангенс)

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

Архитектура сверточной нейронной сети

Рисунок 3 – Архитектура сверточной нейронной сети

 

На теоретико-множественном уровне модель свёрточной нейронной сети CNN (Convolution Neural Network) представлена в виде кортежа 3:

На теоретико-множественном уровне модель свёрточной нейронной сети CNN

где M – число слоев в нейронной сети; η – номер слоя; 1≤η≤M; Nη – число карт признаков в η слое; C, S – весовые коэффициенты C и S слоев соответственно, fηη – функция активации нейрона η слоя, C и S слоев соответственно; N – число нейронов в последнем слое нейронной сети; w – матрица весовых коэффициентов в выходном слое; ψ – функция активации нейронов выходного слоя.

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

Построение логической модели начинается с определения сущностей (классов и объектов) системы. На рисунке 4 можно видеть реализацию системы в виде диаграммы классов. Исходя из топологии свёрточной нейронной сети, выделены следующие классы системы: Neuron – хранит в себе всю необходимую информацию для работы нейрона (входы, весовые коэффициенты, выходы); абстрактный класс BasePlane – описывает механизмы работы всех типов плоскостей (входная, C-плоскость, S-плоскость, выходные), объявляет методы, ответственные за режимы обучение и распознавания. Также в этом классе реализованы структуры связей между картами соседних слоев. Абстрактный класс SubPlane (расширение класса BasePlane) – реализует методы, специфические для свёрточной и подвыборочной плоскостей. Класс ImagePlane инкапсулирует в себе работу с изображением, т.е. переводит его в двумерный массив входных значений и хранит в себе изображение. Нейроны на данном этапе еще не требуются. Класс ConvolutionalPlane реализует функциональность C-слоя сети. Класс SubSamplingPlane – это реализация S-слоя сети. Класс OutputPlane – слой нейронов, который полностью связан с предыдущим слоем сети (S2), генерирует выходные значения сети. Класс NeuralNet представляет из себя черный ящик, т.е на входе требуется изображения, на выходе генерируется выходные сигналы. В общем случае, слои могут взаимодействовать между собой, на что указывает связь карт признаков [11].

Логическая модель сверточной нейронной сети в виде диаграммы UML

Рисунок 4 – Логическая модель сверточной нейронной сети в виде диаграммы UML

5. Программная модель

Планируется создание программной модели на языке Java. Общий вид программной модели показан на рисунке 5. Этапы работы программного продукта:

  1. Получение снимка с веб-камеры.
  2. Локализация лица на снимке.
  3. Извлечение изображения лица и отправка его на вход нейронной сети.
  4. Распознавание лица нейронной сетью.
  5. Вывод результата распознавания на экран.
Программная модель нейросетевой модели распознавания лиц

Рисунок 5 – Программная модель нейросетевой модели распознавания лиц
(анимация: 9 кадров, 5 циклов повторения, 196 килобайт)

Выводы

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

При написании данного реферата магистерская работа еще не завершена. Окончательное завершение: январь 2013 года. Полный текст работы и материалы по теме могут быть получены у автора или его руководителя после указанной даты.

Список источников

  1. Федяев О.И., Махно Ю.С. Система распознавания зашумлённых и искажённых графических образов на основе нейронной сети типа неокогнитрон // Одиннадцатая национальная конференция по искусственному интеллекту с международным участием КИИ-2008: Труды конференции. Т. 3. – М .: ЛЕНАНД, 2008. – 464 с.
  2. Компьютерное зрение [Электронный ресурс]. – Режим доступа: http://ru.wikipedia.org/wiki/Компьютерное_зрение
  3. OpenCV – библиотека компьютерного зрения с открытым исходным кодом [Электронный ресурс]. – Режим доступа: http://software.intel.com/en-us/articles/...
  4. Viola P, JonesM(2001) Rapid object detection using a boosted cascade of simple features. In: Proceedings of the IEEE computer society conference on computer vision and pattern recognition. pages 511–518, Kauai, HI
  5. Wu V., Kumar V., Ross Quinlan J. et al. Top 10 algorithms in data mining. – Knowledge and Information Systems, 2008, v. 14, i. 1, p. 1–37
  6. Саймон Хайкин.Нейронные сети: полный курс.: издательский дом «Вильямс», 2006. – 1104с.
  7. Rainer Lienhart, Alexander Kuranov, Vadim Pisarevsky. Empirical Analysis of Detection Cascades of Boosted Classifiers for Rapid Object Detection.: Intel
  8. Макаренко, А. А. Методика локализации изображения лица для систем видеоконтроля на основе нейронной сети / А. А. Макаренко, В. Т. Калайда // Известия Томского политехнического университета [Известия ТПУ] / Томский политехнический университет (ТПУ) . – 2006 . – Т. 309, № 8 . – [С. 113-118]
  9. Костецкая Г.Ю., Федяев О.И. Распознавание изображений человеческих лиц с помощью свёрточной нейронной сети // Сб. трудов Международной студенческой научно-технической конференции «Информационные управляющие системы и компьютерный мониторинг» – Донецк: ДонНТУ, 2010. – с. 216-218.
  10. Умяров Н.Х., Федяев О.И. Параметрическая модель свёрточной нейронной сети // VI международная научно-техническая конференция студентов, аспирантов и молодых научных работников «Информатика и компьютерные технологии»: Т. 2 – Донецк, ДонНТУ, 2010. – 292с.
  11. Умяров Н.Х., Федяев О.И. Логическое и физическое представление архитектуры свёрточной нейронной сети // Інформаційні управляючі системи та комп’ютерний моніторинг (ІУС КМ – 2011) : II Всеукраїнська науково-технічна конференція студентів, аспірантів та молодих вчених, 11-13 квітня 2011 р., м. Донецьк : зб. доп. у 3 т./ Донец. націонал. техн. ун-т; редкол.: Є.О. Башков (голова) та ін. – Донецьк: ДонНТУ, 2011. – Т.3, с. 81-85