ТЕХНОЛОГИЯ «КОМПЬЮТЕРНОГО ЗРЕНИЯ» В ВОПРОСЕ ВИЗУАЛЬНОЙ ИДЕНТИФИКАЦИИ ЧЕЛОВЕКА

Р.А. Кузнецов, М.А. Ушакова, М.В. Мащенко, Е.А. Волкова

Нижнетагильский социально-педагогический институт (филиал) ФГАОУ ВО «Российский государственный профессионально - педагогический университет», Нижний Тагил, Россия

info@certifications.ru, ush_ma@mail.ru, maya_mach@rambler.ru, koksharova_elena@list.ru

 

Оглавление

1. Введение

2. Структура информационного пространства

3. Структура системы визуальной идентификации

4. Основные алгоритмы функционирования системы визуальной идентификации

5. Описание интерфейса работы программы

6. Заключение

Список литературы

 

Аннотация

Описаны результаты работ в области визуальной идентификации личности пользователя с помощью прикладной системы. Приведено подробное описание структуры системы, ее интерфейса и расписан алгоритм работы системы, осуществляющей визуальную идентификацию лица человека. В основе представленной системы заложен алгоритм идентификации LBPH, который на данный момент является передовым в области двумерной идентификации по изображению лица.

Представлена спроектированная диаграмма классов разрабатываемой системы. Описаны созданные алгоритмы работы системы в режиме сохранения объекта и в режиме идентификации. На основании разработанной иерархии классов и алгоритмов работы системы был написан программный код на языке программирования С++.

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

 

Ключевые слова: анализ данных, визуализация, прикладная программа, компьютерное зрение, идентификация

 

1. Введение

 

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

По мнению Дэвида Форсайт и Жан Понс [1], разработки в области компьютерного зрения являются одними из наиболее востребованных в сфере современных компьютерных технологий. Компьютерное зрение требуется на производстве, при управлении роботами, при автоматизации процессов, в медицинских и военных приложениях, при наблюдении со спутника и при работе с персональным компьютером, в частности, при поиске цифрового изображения, либо обнаружении объекта на снимке. В нашем исследовании мы рассматривали проблему идентификации личности по видео изображению в реальном масштабе времени.

Любые задачи, связанные с компьютерным зрением, в том числе и задача идентификации личности, требуют существенных технических ресурсов [2]. В силу этих обстоятельств алгоритмы, решающие данную задачу, должны отвечать следующим критериям: скорость идентификации, минимальный размер эталонной выборки, количество ложных срабатываний, поддержка всех наиболее популярных программно-аппаратных средств [3]. Под аппаратными средствами понимаются центральные процессоры различной архитектуры и поддерживаемым набором инструкций [4], под эталонной выборкой подразумевается коллекция фотоснимков идентифицируемого объекта [5]. Каждый фотоснимок должен быть уникален в рамках данной выборки, следовательно, создание коллекций одного объекта из относительно большого числа фотоснимков является трудозатратой процедурой [6].

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

Проведенная модификация алгоритма LBPH (зацикливание на поворот камеры и повтор съемки) позволила повысить качество идентификации человека в условиях смены освещенности помещения.

 

2. Структура информационного пространства

 

Систему идентификации можно разделить на подсистемы, что обеспечит преимущества с точки зрения ее разработки и эксплуатации, а также обеспечит упрощение:

·         процедуры разработки за счет специализации групп проектировщиков по подсистемам;

·         внедрения и поставки готовых подсистем, а также их дальнейшей модернизации без остановки системы;

·         эксплуатации системы идентификации.

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

Функциональные подсистемы – это модули, обеспечивающие работоспособность системы и ее функциональные возможности.

Обеспечивающие подсистемы – это модули технической поддержки системы. Данные модули, прежде всего, отвечают за работоспособность системы в целом и корректное выполнение функциональных возможностей системы [7].

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

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

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

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

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

 

3. Структура системы визуальной идентификации

 

Основная задача системы – это проведение процедуры идентификации человека по имеющейся информации. Информация, на основании которой происходит идентификация, собирается в процессе эксплуатации системы, которая состоит их двух частей: ядро и графический интерфейс.

Ядро – это основная часть системы, в задачи которого входит выполнение системно зависимых функций и независимость от структуры и реализации графического интерфейса.

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

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

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

Вторая часть системы – графический интерфейс. Эта часть системы изначально доступна пользователю в полном объеме. Никаких ограничений на реализацию функция графического интерфейса пользователь не имеет. Функции графического интерфейса – производить запуск ядра системы, выполнять добавление идентифицируемого объекта в систему, производить процедуру идентификации, осуществлять корректную остановку ядра системы при выходе из программы.

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

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

Внешний вид графического интерфейса является динамическим и изменяется в зависимости от запрашиваемых операций.

Разработка системы проводилась на языке программирования, С++ (стандарта языка 2003 года), так как данная платформа содержит необходимые библиотеку компьютерного зрения OpenCV версии 2.4. 

Для успешной разработки необходимо соблюдение следующих условий: использование реализации модернизированного алгоритма идентификации LBPH за счет дополнительного подключения алгоритма Виолы-Джонса; использование каскадов локализации лица на изображении из библиотеки OpenCV; использование библиотеки Qt версии 4.8.в качестве основного инструмента разработки графического интерфейса пользователя.

 Проектирование структуры классов было проведено в нотации UML (приложение Visual Paradigm) непосредственно в среде разработки системы –Microsoft Visual Studio 2010.

Среда выполнения системы идентификации – персональный компьютер под управлением операционной системы Microsoft Windows 7 Начальная, центральный процессор Intel c тактовой частотой не ниже 2500 МГц, объем оперативной памяти не менее 100 Мб, свободное пространство на жестком диске не менее 500 Мб.

Компиляция исходного кода производилась 32-разрядным компилятором Microsoft 2010 года, с сервис паком 1. Лицензия компилятора позволяет не открывать исходный код компилируемой программы. Среда разработки Visual Studio 2010 имеет в своем составе достаточный по функционалу для данного проекта профилировщик и отладчик исходного кода программы.

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

Требования по ГОСТ 34.603-92, на этапе автономных испытаний системы должны обеспечить:

1.      Полную проверку функций и процедур разработанной системы.

2.      Необходимую точность вычислений, реализованных в системе.

3.      Проверку основных временных характеристик функционирования программных средств.

4.      Проверку надежности функционирования программных средств.

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

 

4. Основные алгоритмы функционирования системы визуальной идентификации

 

Алгоритмы функционирования разрабатываемого программного обеспечения представим в виде блок схем, по ГОСТ 19.701-90. Данный ГОСТ распространяется на алгоритмы и программы систем программного обеспечения вычислительных машин, комплексов и систем, независимо от их назначения и области применения и устанавливает правила выполнения схем алгоритмов и программ, выполняемых автоматическим способом или от руки. Данный стандарт полностью соответствует МС ИСО 2636-73.

Алгоритм машинного обучения после детектирования глаз – основного элемента идентификации переходит к сохранению графического образа в контейнере на основе которого продолжается обучение системы (см. рис. 1).

 

Рис. 1. Алгоритм машинного обучения

 

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

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

Класс Detect_Object является суперклассом, то есть классом родителем для класса Preprocessing_img рис. 2.

 

Preprocessing_img

Рис. 2. Зависимость класса Preprocessing_img отDetect_Object

 

Из представленной схемы следует, что используется открытое наследование. Производным типом для класса Detect_Object, является тип Prepcocessing_img.

К основным операциям класса Detect_Object можно отнести следующие.

1.      Базовая обработка входного изображения, суть которой заключается в выравнивании освещения.

2.      Загрузка каскада классификаторов из файла для локализации лица и глаз на полученном изображении.

3.      Детектирование объектов, классификаторы которых были загружены.

Интерфейсы объекта Detect_Object:

·         получение кадра на обработку от интерфейсного класса программы;

·         передача части исходного кадра с объектом локализации на последующую обработку, а именно кадр поступает на вход объекта Preprocessing_img;

·         организация доступа к закрытым методам класса Detect_Object, основным из которых является передача ссылки на контейнер со снимком для проведения процедуры детектирования.

В объекте Detect_Object определены следующие ключевые поля: указатели на каскады классификаторов, которые были загружены в оперативную память конструктором класса Detect_Object, переменная типа Rect (тип данных из библиотеки OpenCV) с координатами искомого объекта, переменная minFeatureSize, имеющая тип данных Size (OpenCV) для уменьшения разрешения входного изображения с целью ускорения процесса детектирования.

Основные операции производного класса Preprocessing_img:

·         определение координат обнаруженных объектов на изображении;

·         выделение детектируемых объектов на изображении, с помощью прямоугольников и окружностей из библиотеки компьютерного зрения OpenCV;

·         выполнение обработки части изображения с обнаруженными объектами за счет фильтрации шумов и сглаживания изображения.

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

По завершению сделанного снимка метод класса drawing_eye_circle( ) отображает на выводимом изображении эффект вспышки в области лица.

Интерфейсы данного класса реализуют следующие свойства:

·         взятие лица на обработку из контейнера кадров, созданного классом потомком.

·         передача обработанного изображения интерфейсному классу ядра системы, речь о котором пойдет далее.

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

Данный объект включается в систему композицией (инкапсуляция), то есть другие классы системы содержат экземпляр данного класса в своих свойствах. Операции объекта Identification_Face:

·         инициализация алгоритма машинного обучения;

·         создание модели машинного обучения, исходя из установленного алгоритма;

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

·         формирование шаблоны лиц после проведения операции машинного обучения;

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

Интерфейсы данного объекта реализуют следующие функции.

1.      Загрузка и выгрузка файла с данными о модели.

2.      Принятие кадра с лицом и его индексирование на обработку.

3.      Получение кадра для сравнения с шаблоном лиц из загруженной модели машинного обучения.

4.      Вычисление и возврат значения различия переданного изображения и шаблонов лиц в модели машинного обучения.

Ниже представлен программный код данного метода; комментарии в коде объясняют производимые действия.

 

// Вычисляем погрешность двух сравниваемых величин.

double getSimilarity (const Mat A, const Mat B)

{ if (A.rows > 0 && A.rows == B.rows && A.cols > 0 && A.cols == B.cols)

   {

/* Расчет относительной погрешности L2 при сравнении двух изображений. Переменная errorL2 содержит сумму погрешностей в каждом пикселе изображения. */

    double errorL2 = norm(A, B, CV_L2);

// Находим значение погрешности в одном пикселе изображении

   Similarity = errorL2 / (double) (A.rows * A.cols);

// Возвращаем результат вычисления в точку вызова.

     return Similarity;

        } else

   {Similarity = 100000000.0;}

// Метод возвращает значение, которое интерпретируется как ошибка.

     return Similarity;

}

 

Ключевые методы последнего класса ядра системы – Sbor_trenirovka.

На диаграмме (рис. 3) реализована композиция класса Sbor_trenirovka c другими классами ядра системы.

 

Fase_Identification

Рис. 3. Часть диаграммы классов ядра системы идентификации

 

По определению методов класс Sbor_trenirovka является самым простым, потому как его основной задачей является информационный обмен между системными объектами, среди которых объекты Preprocessing_img и Identification_face и графический интерфейс пользователя.

Для объекта Sbor_trenirovka были обеспечены следующие операции:

1.      Доступ к устройству видеозахвата (камера).

2.      Получение кадров от камеры и передача их на обработку другим объектам программы.

3.      Запись обработанных кадров на жесткий диск.

4.      Создание и обновление журнала размещения снимков на жестком диске.

5.      Количественный подсчет сохраненных файлов на жестком диске.

6.      Запуск системы в одном из двух режимов работы: режиме идентификации или режиме добавления объекта идентификации.

7.      Обработка системных ошибок, как в момент запуска, так и в течение работы системы идентификации.

Интерфейсы объекта Sbor_trenirovka выполняют следующие функции.

1.      Запуск ядра системы.

2.      Возврат значения счетчика числа сохраненных кадров в графический интерфейс пользователя.

3.      Передачу прочитанных данных из журнала программы в графический интерфейс пользователя.

Ключевые поля объекта Sbor_trenirovka

Статическое поле целого типа int DESIRED_CAMERA_WIDTH, DISERED_CAMERA_HEIGHT – определяют разрешение камеры. Статическое поле вещественного типа (float) IDENTIFICATION_PERSON – определяет значение идентичности, при котором алгоритм делает вывод, что лицо, принятое на обработку в процессе идентификации, является известным.

Статическое поле c вещественным типом данных, (float)CHANGE_IN_IMAGE_FOR_COLLECTION – задает пороговое значение, различие принятого кадра от сохраненного в коллекции. Если после сравнение двух кадров, различие будет меньше значения CHANGE_IN_IMAGE_FOR_COLLECTION, обработанное лицо не будет сохранено в коллекции. Причиной избирательной выборки является тот факт, что алгоритм машинного обучения не работает на множестве идентичных данных.

Ключевые методы объектов графического интерфейса Fase_Identification_Qt и Sborka_dannxh (рис. 4)

 

Qt_Interface

Рис. 4. Диаграммы классов графического интерфейса системы

 

Из представленной диаграммы UML следует, что связь между классами образуется агрегацией. Основной класс графического интерфейса – Fase_Identification_Qt включает в себя один объект графического класса Sborka_dannxy, задача которого выводить окно добавления персоны на экран пользователя. С концептуальной точки зернения эти классы схожи по своим операциям, по этой причине используемым типом связи является агрегация.

Основной задачей графических классов является организация взаимодействия пользователя с ядром системы идентификации. Опишем более подробно методы графической части программы.

1.      Выполнение запуска основного цикла программы.

2.      Запуск ядра программы на основе создания в классе Fase_Identification_Qt поля с типом данных Sborka_trenirovka.

3.      Обеспечение вывод обработанных кадров с камеры в главном окне программы.

4.      Обеспечение возможности переключать режимы работы программы: детектирование, идентификация и добавление объектов для идентификации.

5.      Отображение счетчика сохраненных кадров при добавлении персоны, в графическом виде.

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

 

Расчет идентичности в процессе идентификации объекта

 

Спрашиваем модель, является ли представленное лицо известным:

 

model->predict(A, label_img, procent_unicalynosti);

 

Метод predict сравнивает матрицу А с набором данных в модели. Суть сравнения заключается в вычислении среднеквадратического отклонения каждого пикселя матрицы А с набором данных в модели. Результат вычисления сохраняется в переменной: procent_unicalynosti, в вещественном виде. Диапазон значений уникальности находится в интервале: от 0,0 до 1,0. Чем меньше значение, тем выше вероятность того что, искомый объект был определен верно. Переменная label_img по окончанию вычисления содержит изображение лица из модели, значение идентичности которого находится в диапазоне 0,0 до 1,0.

Значение среднеквадратического отклонения определяется по формуле:

                       (1)

Количество n определяется объемом обучающей выборки, чем выше этот объем, тем достовернее будет значение среднеквадратического отклонения. Увеличение n достигается за счет увеличения объема обучающей выборки. Для каждой персоны мы установили объем обучающей выборки в 200 снимков. Потому как при значении менее 200 минимальное значение среднеквадратического отклонения составляет 0,9, а процент уникальности 100 – 90 = 10 %, что не приемлемо, тогда как при значении 200 снимков для каждой персоны минимальное значение отклонения составляет 0,7, а процент идентичности:100 – 70 = 30 %.

Получив значение от модели, мы производим более детальный поиск лица в коллекции, используя в качестве исходной точки порядковый номер снимка из переменной label_img. Таким образом, значение идентичности нам удается повысить на 10 % и в итоге минимальное значение идентичности уже составляет 40 %.

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

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

Экспериментальное значение вероятности события определяем по формуле:

                           (2)

P(E) – вероятность ложной идентификации, сюда же отнесем невозможность произвести идентификацию –это события при котором программа не может идентифицировать объект;

m – количество ложных идентификаций;

n – количество попыток идентификации.

 

Таблица 1. Экспериментальное значение вероятности ложной идентификации

Количество объектов идентификации

Вероятность ложной идентификации в единицах

Постоянное освещение

Переменное освещение

10

0,05

0,2

 

Изменения освещенности до сих пор представляют собой серьезное препятствие в системах распознавания лиц [8]. Однако, проанализировав данные в таблице, можно сделать вывод, что алгоритм идентификации LBPH неустойчив к переменным условиям освещения, что еще раз доказывает теоретические данные относительно двумерной идентификации по лицу и требует небольшой модификации. При смене освещения возможно повторно добавлять фотоснимки лица объекта в коллекцию, пока не будет достигнута необходимая точность идентификации.

При увеличении количества снимков лица идентифицируемого объекта возрастает объем обучающей выборки (коллекция фотоснимков), следовательно, возрастает интеллект модели машинного обучения, а количество ложных срабатываний снижается [9].

 

5. Описание интерфейса работы программы

 

На рисунке 5 представлено главное окно системы идентификации. В окне располагается монитор вывода изображения с камеры и главное меню системы, элементы которого будут рассмотрены далее. Работа алгоритма локализации лица на изображении запускается совместно с запуском программы и не останавливается на протяжении всей ее работы. Это связано с тем, что выполнение алгоритма Виолы-Джонса не является сложной задачей для современных процессоров.

 

Рис. 5. Главное окно программы

 

Далее происходит процесс добавления объекта идентификации в систему. Форма ввода фамилии и имени объекта вызывается после нажатия на кнопку «Сохранить объект». Когда пользователь вводит всю необходимую информацию и нажимает на кнопку «Старт», система производит съемку лица объекта и сохраняет результат в базе данных системы. Программа производит 250 снимков лица каждого объекта, добавляемого в систему. Прогресс выполнения операции отображается в форме ввода посредствам графического элемента ProgressBar.

Процесс идентификации объекта по заранее собранным данным представлен на рисунке 6. Результат идентификации выводится в главном окне программы справа под панелью управления. Нужно заметить, что элементы данной области окна не видимы при запуске системы. Отрисовка элементов производится только после нажатия на кнопку «Идентификация», а их исчезновение при выборе любого другого пункта меню.

 

Рис. 6. Процесс идентификации объекта по заранее собранным данным

 

При нажатии на кнопку «Выход», система выгружает двоичную модель лиц из оперативной памяти в специализированный файл face_learning.xml, расположенный в главном каталоге программы, освобождает используемые ресурсы и завершает выполнение главного потока.

 

6. Заключение

 

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

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

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

 

Список литературы

 

1.      Яхно В.Г., Белюстин Н.С., Красильников И.Г., Кузнецов С.О. Исследовательская система принятия решений по фрагментам сложного изображения, использующая нейроподобные алгоритмы. М.: Радиофизика, 1994. 89 с.

2.      С. Хайкин. Нейронные сети. Полный курс. М.: Вильямс, 2006. 689 с.

3.      Бланшет. Ж, Саммерфильд. М, перевод с английского А.А. Богословского. Qt программирование GUI на С++. М.: Кудиц-Пресс, 2008. 670с.

4.      Прикладная информатика в экономике: Методические указания /сост. Кондратьева В, Калашникова. М.: ДВГТУ, 2009. 300 с.

5.      Болл Р.М., Коннел Дж.X., Панканти Ш. Перевод с английского Н.Е. Агаповой. Руководство по биометрии. М.: Техносфера, 2007. 370 с.

6.      Daniel Lelis Baggio. Mastering OpenCV with Practical Computer Vision Projects. – London: PACKT, 2011. 284 p.

7.      Прата С. Язык программирования С++. Лекции и упражнения. 6-е издание. Москва-Санкт-Петербург-Киев: Вильямс, 2012. 350 с.

8.      Singh K.R., Zaveri M., Raghuwanshi M.M. A robust illumination classifier using rough sets. International Conference on Computer Science and Automation Engineering, 2011.

9.      Everingham M., Zisserman А. Automated Person Identification in Video. International Conference on Image and Video Retrieval, pp. 289-298, 2004.




THE TECHNOLOGY OF «COMPUTER VISION» IN THE QUESTION OF VISUAL IDENTIFICATION OF A PERSON

R.A. Kuznetsov, M.A. Ushakov, M.V. Maschenko, E.A. Volkova

Nizhny Tagil socio-pedagogical Institute (branch) of Federal State Autonomous educational institution "Russian state vocational pedagogical University", Nizhny Tagil, Russia

info@certifications.ru, ush_ma@mail.ru, maya_mach@rambler.ru, koksharova_elena@list.ru

 

Abstract

Describes the results of work in the field of visual identification of the user using the application system. The detailed description of the structure of the system, its interface and painted the algorithm of the system, providing visual identification of the human face. In the basis of the presented algorithm in system identification LBPH, which is currently the most advanced in the field of two-dimensional identification of a facial image.

Presented designed the class diagram of the system developed. Described algorithms of the system operation in the storage mode of the object and in the identification mode. Based on the developed class hierarchy and algorithms of the system was written in code in the programming language C++.

As a result, presented an application that creates a collection of training samples from a set of visual images of the object being initialized, and also produces the training of the machine learning algorithm and performs the visual identification of a person based on the vector model obtained by machine learning.

 

Keywords: data analysis, visualization, application software, computer vision, identification

 

References

 

1.         Yakhno V. G., Blustin N. With., Krasilnikov I. G., Kuznetsov S. O. Issledovatel'skaja sistema prinjatija reshenij po fragmentam slozhnogo izobrazhenija, ispol'zujushhaja nejropodobnye algoritmy [the Research decision-making system for complex image fragments using neuron-like algorithms]. Radio Physics, 1994. 89 p. [In Russian]

2.         Haykin S. . Neural network. Full-time course. M.: Williams, 2006. 689 p. [In Russian]

3.         Blanchet W., Sammerfild M. (translated by A.A. Bogoslovskiy). Qt GUI programming in C++. M.: Kudits Press, 2008. 670 p.  [In Russian]

4.         Kondratyev V., Kalashnikov M. Prikladnaja informatika v jekonomike: Metodicheskie ukazanija [Applied Informatics in Economics: Method. instructions]. publishing house of fentu, 2009. 300 p. [In Russian]

5.         Ball R. M., Connell J. X., Pankanti Sh. (Translated from English by N. E. Agapova). Guide to biometrics. Moscow: Technosphere, 2007. 370 p.  [In Russian]

6.         Daniel Lelis Baggio. Mastering OpenCV with Practical Computer Vision Projects. London: PACKT, 2011. 284 p.

7.         Prata, S. C++ programming Language. The lectures and exercises. 6th edition. Moscow-St. Petersburg-Kiev: Williams, 2012. 350.

8.         Singh K.R., Zaveri M., Raghuwanshi M.M. A robust illumination classifier using rough sets. International Conference on Computer Science and Automation Engineering, 2011.

9.         Everingham M., Zisserman A. Automated Person Identification in Video. International Conference on Image and Video Retrieval, page 289-298, 2004.