Телефон: 8-800-350-22-65
WhatsApp: 8-800-350-22-65
Telegram: sibac
Прием заявок круглосуточно
График работы офиса: с 9.00 до 18.00 Нск (5.00 - 14.00 Мск)

Статья опубликована в рамках: XLVII Международной научно-практической конференции «Научное сообщество студентов XXI столетия. ТЕХНИЧЕСКИЕ НАУКИ» (Россия, г. Новосибирск, 28 ноября 2016 г.)

Наука: Информационные технологии

Скачать книгу(-и): Сборник статей конференции

Библиографическое описание:
Журавлев В.С., Зальцман Н.М., Слободецкий А.В. GFR КАК ОСНОВНАЯ ЧАСТЬ ПРОГРАММЫ ПО РАСПОЗНАВАНИЮ ПРЕДЗАДАННОГО ЛИЦА В LABVIEW // Научное сообщество студентов XXI столетия. ТЕХНИЧЕСКИЕ НАУКИ: сб. ст. по мат. XLVII междунар. студ. науч.-практ. конф. № 10(46). URL: https://sibac.info/archive/technic/10(46).pdf (дата обращения: 19.04.2024)
Проголосовать за статью
Конференция завершена
Эта статья набрала 0 голосов
Дипломы участников
У данной статьи нет
дипломов

GFR КАК ОСНОВНАЯ ЧАСТЬ ПРОГРАММЫ ПО РАСПОЗНАВАНИЮ ПРЕДЗАДАННОГО ЛИЦА В LABVIEW

Журавлев Валентин Сергеевич

студент, кафедра управления инновациями ТУСУР, Томск

Зальцман Никита Матвеевич

студент, кафедра управления инновациями ТУСУР, Томск

Слободецкий Андрей Владимирович

студент, кафедра управления инновациями ТУСУР, Томск

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

1 Структура проекта

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

Рисунок 1. Структура проекта.

 

Файл general_face_recognition.vi – это виртуальный прибор LabVIEW, фронтальная панель которого являет собой пользовательский интерфейс приложения по распознаванию лиц. Папка lineaments содержит файлы изображений черт распознаваемого лица: носа, губ и одного глаза; subunits – файлы виртуальных приборов нижнего уровня. Dependencies – автоматически создаваемая папка с библиотеками используемых в виртуальных приборах функций и с библиотеками динамической компоновки.

2 General_face_recognition.vi

В этом виртуальном приборе расположена основная программа, объединяющая все приборы нижнего уровня; его блок-диаграмма представлена на рисунке 2:

 

Рисунок 2. Блок-диаграмма general_face_recognition.

 

Вышеназванную диаграмму можно разбить на три составные части, которые представляют собой логически изолированные процессы, для удобства описания. Первая часть представлена рисунке 3, её задачей являются захват видео с веб-камеры, поиск совпадений зон обрабатываемого изображения с чертами лица (lineaments), ответ на вопрос: «есть ли лицо на изображении?», выделение лица белым квадратом [1, с. 135].

 

Рисунок 3. Первая часть диаграммы.

 

Слева от структуры цикла while расположены блоки старта видео-сессии, объявления изображения на показ с небольшим количеством настроек: порт камеры, имя изображения, его формат (выбран RGB (U32) для более точной работы последующих блоков обработки), установочный блок для внутрицикловых элементов поиска совпадений областей обрабатываемого изображения с шаблонами (установлены низкая чувствительность к цвету, поиск по цвету и форме, независимость от сдвига, т.е. в расчет идет даже часть шаблона и поворот не более 4 градусов, агрессивная стратегия поиска сравнений по всему спектру по сложным алгоритмам, пиксельная точность),  а также блок прибора нижнего уровня connect_lineaments, который подключает к проекту файлы изображений черт распознаваемого лица.

Внутри цикла расположены четко различимые три повторяющиеся группы элементов – это блоки поиска совпадений и приборы нижнего уровня framer.vi, задачей которых является обводка найденного совпадения в соответствующий цвет (рис. 4), используемая лишь во время отладки приложения. Каждый блок имеет свои константы: для блоков поиска совпадений это минимальное их количество, равное единице, и коэффициент равенства, равный 700 для губ, 650 для носа и 575 для глаза, способный принимать значения от 1 до 1000 и являющий собой меру совпадения по цвету и форме. Для блоков обрисовки внешней константой является цвет.

 

Рисунок 4. Разноцветная обводка черт лица

 

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

Подробнее обо всех элементах нижнего уровня будет сказано в следующих разделах отчёта.

После final_framer изображение попадает в индикатор вывода на экран.

Также в этой составной части блок-диаграммы general_face_recognition имеется элемент нижнего уровня face_verify, его главной задачей является выдача логического ответа на вопрос «найдено ли лицо?», который будет использован во второй составной части.

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

На рисунке 5 представлена вторая составная часть блок-диаграммы general_face_recognition:

 

Рисунок 5. Вторая часть диаграммы

 

Данная часть программы нацелена на выдачу координат для обрамления (белым квадратов в элементе final_framer первой части диаграммы) того участка изображения, где кадр назад было лицо, а сейчас ответ на вопрос «найдено ли лицо?» отрицателен, то есть здесь осуществляется слежка за той частью изображения, которая до этого была лицом. Это позволяет решить проблему с перебоями распознавания черт лица [2, с. 201].

Далее следует описание блоков и процессов второй части диаграммы.

Слева от цикла while расположены два блока объявления изображений для видео-сессии: первый – текущее изображение, второй – предыдущее. Изображение в памяти последнего обновляется после каждого прохода цикла посредством присваивания информации из обработанного текущего по «регистру сдвига». Также по собственному «регистру сдвига» обновляются координаты точки слежения, находящиеся в массиве и изначально неопределенные.

Внутри цикла после блока захвата изображения по видео-сессии находится блок, выделяющий из захваченного изображения лишь спектральный уровень красного цвета, который необходим «сердцу» данной части диаграммы – IMAQ Optical Flow (LKP) VI. Этот виртуальный прибор следит за изменением в расположении группы точек между двумя кадрами (которые были объявлены ранее), используя алгоритм Лукаса и Канаде; он помещен в структуру  Case и выполняется лишь при отрицательном логическом сигнале из элемента face_verify, т. е. тогда, когда лицо не найдено. Также слежка не имеет право начаться при запуске программы, когда еще неизвестно, что отслеживать, т.е. массив координат для отслеживания пуст, хотя лицо может быть и найдено (первая итерация цикла); для этого ограничения имеется логический блок по связке «ИЛИ» first call. Алгоритм Лукаса и Канаде требует константы настройки: число «уровней» исчисления равное 4, максимальное количество итераций алгоритма на каждом уровне – 20, окрестность пикселя из группы слежения – 20, минимальная окрестность сдвига, финальная для слежения – 1 (все эти константы были выставлены методом проб и ошибок, а также основываясь на логичности и компромиссе с быстродействием).

Если же лицо найдено, то алгоритм Лукаса и Канаде не применяется, и «вариант правды» в структуре case представляет собой лишь преобразование массивов (рис. 6).

 

Рисунок 6. True вариант структуры case

 

После case изображение копируется в повторную обработку и по регистру сдвига передается в канал «предыдущего» изображения, о чём было сказано ранее.

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

Третья составная часть блок-диаграммы general_face_recognition представлена на рисунке 7:

 

Рисунок 7. Третья часть диаграммы

 

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

 

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

1. Гридин В.Н., Титов В.С., Труфанов М.И. Адаптивные системы технического зрения: науч. отд. изд., – М: 2009 – 442 с.

2. Мошкин В. И., Петров А. А., Титов В. С., Якушенков Ю. Г. Техническое зрение роботов: учебник. отд. изд., стер. – М.: 1990 – 272 с.

Проголосовать за статью
Конференция завершена
Эта статья набрала 0 голосов
Дипломы участников
У данной статьи нет
дипломов

Оставить комментарий

Форма обратной связи о взаимодействии с сайтом
CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.