Введение Задача распознавания образов относится к классу трудно формализованных задач и в настоящее время является особенно актуальной в связи с необходимостью автоматизации образных процессов коммуникации (визуальных, речевых) в интеллектуальных системах. Поэтому до сих пор продолжается поиск и реализация эффективных принципов передачи опознавательной функции человека компьютеризированным системам. Для решения задач этого класса очень перспективны искусственные нейронные сети. Они индуцированы биологией, так как состоят из элементов, функциональные возможности которых аналогичны большинству элементарных функций биологического нейрона. Несмотря на поверхностное сходство, искусственные нейронные сети демонстрируют свойства, присущие живому мозгу. В частности, они учатся на основе опыта, обобщают предыдущие прецеденты на новых примерах, извлекают существенные свойства из поступающей информации, содержащей лишние данные.
Цель исследования Целью данного исследования является анализ методов и инструментов обучения нейронной сети для камеры идентификации персонала.
Материал и методы исследования
Нейронные сети не программируются в привычном смысле этого слова, они обучаются. Возможность обучения - одно из главных преимуществ нейронных сетей перед традиционными алгоритмами. Развитие искусственных нейронных сетей вдохновлено биологией. Математическая модель, а также ее программное или аппаратное воплощение, построена по принципу организации и функционирования биологических нейронных сетей -сетей нервных клеток живого организма. Это понятие возникло при изучении процессов, протекающих в мозге, и при попытке смоделировать эти процессы[1].
То есть, рассматривая сетевые конфигурации и алгоритмы, исследователи применяют термины, заимствованные из принципов организации мозговой деятельности. Но на этом аналогия заканчивается. Наши знания о работе мозга настолько ограничены, что мало бы нашлось точно доказанных закономерностей для тех, кто пожелал бы руководствоваться ими. Поэтому разработчикам сетей приходится выходить за пределы современных биологических знаний в поисках структур, способных выполнять полезные функции. Во многих случаях это приводит к необходимости отказа от биологической правдоподобности, мозг становится просто метафорой[2].
Распознавание лиц людей по всему городу предоставляет уникальные возможности сотрудникам правоохранительных органов. Доступ к системе городского наблюдения получили около 16 тыс. сотрудников правоохранительных органов, государственных и муниципальных организаций. Система обладает разграничением уровня доступа для разных групп пользователей, что позволяет сохранить конфиденциальность действий жителей города.
Результаты исследования и их обсуждение
По сути, системы распознавания представляют собой компьютерные программы, которые анализируют изображения лиц людей с целью их идентификации. Программа берет изображение лица и измеряет такие его характеристики, как расстояние между глазами, длина носа, угол челюсти, на основе чего создается уникальный файл, который называется "шаблон". Используя шаблоны, программа сравнивает данное изображение с другими изображениями в базе, а затем оценивает, насколько изображения похожи друг на друга. Обычными источниками изображений для использования при идентификации по лицу являются сигналы от видеокамер или ранее полученные фотографии, наподобие тех, что хранятся в базе данных водительских удостоверений. Как правило система состоит из камеры видеонаблюдения и программного обеспечения которое выполняет анализ изображений. Программное обеспечение для распознавания лиц основано на обработке изображений и вычислениях сложных математических алгоритмов, которые требуют более мощный сервер, чем обычно требуется для систем видеонаблюдения. Нас в первую очередь интересует качественные показатели программного обеспечения. Во вторую, какие серверные мощности понадобятся для анализа изображения и обработки базы данных с изображениями, ну и в третью мы рассмотрим вопрос применения IP-камер для целей распознавания лиц.
В основе технологии 2D (двумерного) распознавания лиц, лежат плоские двухмерные изображения. Алгоритмы распознавания лиц используют антропометрические параметры лица, графы, модели лиц или эластичные 2D-модели лиц, а также изображения с лицами представлены некоторым набором физических или математических признаков.
Распознавание 2D изображений одна из самых востребованных технологий на данный момент. Так как основные базы данных идентифицированных лиц накоплены в мире - именно двумерные. И основное оборудование, уже установленное, по всему миру тоже 2D - по данным на 2016 год-350 миллионов камер видеонаблюдения. Собственно поэтому основной спрос приходится именно на 2D системы распознавания лиц.
Процессом распознавания лиц принято называть набор различных задач, служащих для идентификации человека по цифровому изображению или видеофрагменту. В общем виде этот процесс выглядит следующим образом: после того, как система получила изображение с камеры, с помощью алгоритмов определяются границы лица (этап обнаружения). Далее следует этап распознавания, на котором лицо трансформируется (изменяется его яркость, оно выравнивается, масштабируется, и т.п.) и приводится к некоторому заданному вниманию. После чего, происходит вычисление признаков и непосредственно сравнение их с заложенными в базу данных эталонами. Этот заключительный этап сравнения называется идентификация или верификация, в зависимости от системы.
Верификация: сравнение образцов по схеме «1:1». Для определения личности система сравнивает биометрический образец с одним биометрическим шаблоном, хранящимся в базе данных, и дает ответ на вопрос «Является ли этот человек тем, с кем шаблоном его сравнивали? ».
На рисунке 1 изображен общий алгоритм распознавания лиц почерков изображения.
Рис. 1. Общий алгоритм распознавания лиц
Для обеспечения выполнения всех этапов процесса верификации в составе программного модуля по распознаванию лиц с использованием нейронных сетей учтены функциональные составные элементы, взаимосвязь которых между собой показана на рисунке 2.
Рис. 2. Структурная схема программного модуля по распознаванию лиц с использованием нейронных сетей.
Модуль "Камера наблюдения" ведет постоянную запись и передает видеопоток к интерфейсу соединения с ПК.
Модуль "интерфейс соединения с ПК" передает кадры из видео потока к скрипту и предоставляет свои мощности для обработки изображений.
Модуль "Скрипт распознавания" выполняет обработку изображений и распознавание лиц, после чего передает их в журнал аутентификации и системы оповещения.
Модуль "журнал аутентификации"представляет собой базу данных распознанных лиц.
Модуль "модуль оповещения" используется для оповещения владельца камеры о лицах не прошедших аутентификацию.
Для разработки системы распознавания, был выбран метод обнаружения лиц Виолы-Джонса. Этот метод был разработан в 2001 году, но благодаря своей высокой скорости, а также крайне низкой вероятности ошибочного обнаружения лица до сих пор является одним из основных методов поиска объектов на изображении. Основные принципы, на которых основана работа данного метода:
- представление изображения в интегральном виде;
- поиск лиц с помощью признаков Хаара;
- каскадная классификация;
- обучение системы распознавания объектов на основе метода "AdaBoost".
Для повышения эффективности работы с данными, в методе Виолы-Джонса применяется метод интегрального представления, который позволяет быстро рассчитывать сумму яркости пикселей произвольного прямоугольника на заданном кадре. Такое представление изображения представляет собой матрицу одинаковую по размерам с исходным изображением, каждый элемент которой хранит в себе сумму интенсивностей всех пикселей, находящихся над ним и слева от него плюс его собственный вес.
В расширенном методе Виолы-Джонса, который используется в библиотеке компьютерного зрения OpenCV и применяется в разрабатываемой системе, используются дополнительные признаки Хаара. Каскады Хаара представляют собой прямоугольные области, которые состоят из нескольких соседних прямоугольных областей, отмеченных светлая или темная.
Поскольку для описания объекта с достаточной точностью необходимо большее число признаков Хаара, они не очень подходят для обучения или классификации. В связи с этим, для ускорения процесса обнаружения, в методе Виолы-Джонса используется каскадный классификатор, который позволяет ускорить обнаружение лиц, фокусируя работу на наиболее интересных областях изображения.
Таким образом при малых вычислительных затратах можно на ранних этапах распознавания отбросить изображения, с большой долей вероятности не содержащие искомый объект (в данном случае лицо). Каждый уровень каскада обучается с помощью алгоритма AdaBoost.
В качестве основного был выбран язык Python, так как имеет нужные качества для реализации, имеет встроенную поддержку обобщений, делегатов и событий, что облегчит реализацию. Python имеет статическую типизацию, поддерживает полиморфизм, перегрузку операторов (в том числе операторов явного и неявного приведения типа), делегаты, атрибуты, события, свойства, итераторы, анонимные функции с поддержкой замыканий, LINQ, исключения, комментарии в формате XML важным критерием в пользу выбора данного языка программирования был опыт разработки на нем, полученный за время обучения.
Для разработки системы, также было решено использовать в качестве одной из основных - библиотеку Face_recognition. Данная библиотека разработана на C ++. Face_recognition содержит алгоритмы для обработки, реконструкции и очистки изображений, распознания образов, захвата видео, слежения за объектами, калибровка камер и др. библиотека распространяется по лицензии BSD, а значит, может свободно использоваться в академических и коммерческих целях.
Выводы или заключение Разработанная система может использоваться при решениях различных задач видео аналитики, и, в первую очередь, имеет непосредственное применение в системах контроля доступа и идентификации личности.
Кроме этого, во время написания работы был проведен обзор современных систем распознавания, выявлены недостатки и трудности, влияющие на эффективность их работы, изученные методы обработки изображений и проведенный анализ современных алгоритмов распознавания.