Применение когнитивных сервисов для распознавания лиц

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

Рубрика Программирование, компьютеры и кибернетика
Вид статья
Язык русский
Дата добавления 14.03.2019
Размер файла 1,4 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

ПРИМЕНЕНИЕ КОГНИТИВНЫХ СЕРВИСОВ ДЛЯ РАСПОЗНАВАНИЯ ЛИЦ

Генчель К.В.

Московский Технический Университет Связи и Информатики

Москва, Россия

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

Когнитивная система может быть определена как система, которая способна познавать свое окружение и адаптироваться к нему или изменять его за счет накопленных в процессе функционирования знаний и приобретенных навыков [1]. Когнитивные технологии “имитируют” мыслительную деятельность человека и, как правило, основаны на моделях с нечеткой логикой (fuzzy logic) и на нейронных сетях [2]. Они применяются в совершенно разных направлениях: при разработке систем управления роботами, универсальных аналитических систем, систем поддержки принятия решений и многих других.

Основная функциональность когнитивных систем и сервисов описана ниже.

Анализ языка. Многие системы включают в себя те или иные возможности в этой сфере [3,4]: понимание языка, лингвистический анализ, Alchemy Language, переводчик, текстовая аналитика, преобразование документов, классификатор естественного языка, персональное исследование, восстановление и ранжирование, анализатор тембра.

Работа с речью. Преобразованием речи в текст и обратно также занимаются многие компании-разработчики [3,4,5], и для этого существует большое количество различных приложений, которые могут работать, как отдельно на устройстве, так и в браузерах, например, speechpad [6], speechlogger [7] и многие другие.

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

Исследование данных, включает в себя интеллектуальный анализ данных.

Системы поиска. Данные системы занимаются поиском изображений, новостей, видео, веб-ресурсов и т.п.

Рассмотрим подробнее визуальное распознавание образов.

Распознавание образов

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

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

I. В зависимости от того, физически однородная или неоднородная информация используется для описания распознаваемых объектов: простые и сложные [9];

II. По свойствам управления систем в процессе распознавания: гибкие и жесткие системы распознавания образов реального времени [10]; III. В зависимости от распознаваемых объектов:

1. Системы машинного зрения. Предназначены для получения с камер изображения и составление его описания в символьном виде (какие объекты присутствуют, в каком взаимном отношении находятся).

2. Символьное распознавание (распознавание букв или цифр) - оптическое распознавание символов, ввод и хранение документов, обработка чеков в банках, обработка почты.

3. Диагностика в медицине - маммография, рентгенография, постановка диагноза по истории болезни, электрокардиограмма.

4. Распознавание речи.

5. Распознавание в дактилоскопии (отпечатки пальцев), распознавание лица, подписи, жестов.

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

Распознавание лиц

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

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

Face Detection (обнаружение лиц). Обнаружение одного или нескольких лиц в кадре и получение прямоугольной области, выделяющей место нахождения лица на изображении, также получение признаков лица, которые содержат предсказания черт лица на основе машинного обучения. Могут быть доступны следующие признаки лица: возраст, пол, поза, улыбка, и волосы на лице, а также 27-ориентиров для каждого лица на изображении.

Face Verification (верификация лиц). Проверка вероятности того, что два лица принадлежат одному и тому же человеку. API возвращает доверительную оценку того, какова вероятность вышесказанного.

Face Identification (идентификация лиц). Поиск и идентификация лиц. Тегирование (маркировка) людей и групп в соответствии с пользовательскими данными, а затем поиск ранее не попадавшихся лиц.

Similar Face Searching (поиск похожих лиц). Принимая во внимание совокупность имеющихся лиц и новое лицо в качестве запроса, система будет возвращать набор из похожих лиц.

Face Grouping (группировка лиц). Организация различных неопознанных лиц вместе в группы, на основе их визуального сходства.

Существуют множество подходов к процессу распознавания лиц.

Методы распознавания лиц

Выделим общую структуру процесса распознавания лиц (Рис. 1):

Рисунок 1. Процесс распознавания лица на изображении

Основное отличие друг от друга алгоритмов, представленных ниже - это вычисление признаков и сравнение их совокупностей между собой.

Перечислим некоторые методы распознавания лиц: Метод гибкого сравнения на графах, Нейронные сети, Скрытые Марковские модели (СММ, HMM), Метод главных компонент, Active Appearance/Shape Models.

Методы распознавания лиц можно разделить на два класса: распознавание лиц на основе определения локальных особенностей лица и целостное (holistic) распознавание лиц [11]. Основу обоих классов распознавания лиц составляет метод главных компонент [12]. Метод главных компонент (Principal Component Analysis, PCA) - один из наиболее распространенных методов для уменьшения размерности данных, потери наименьшего количества информации. В задаче распознавания лиц его применяют главным образом для представления изображения лица вектором малой размерности (главных компонент), который сравнивается затем с эталонными векторами, заложенными в базу данных. Метод заключается в линейном ортогональном преобразовании входного вектора P размерности N в выходной вектор Q размерности M, M<N. Главная идея МГК состоит в представлении изображений лиц людей в виде набора главных компонент изображений, называемых «собственные лица» (Eigenfaces) [13]. Собственные лица имеют полезное свойство, заключающееся в том, что изображение, соответствующее каждому такому вектору имеет лицеподобную форму (Рис. 2).

Рисунок 2. Пример изображений собственных векторов

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

Применение распознавания лиц

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

Но эти технологии нашли и более полезное применение в жизни. Так, например, компания Uber Technologies - известный в мире сервис такси - недавно (Октябрь 2016) анонсировал нововведения на базе технологий искусственного интеллекта, которые были внедрены в работу сервиса. В частности, они внедрили новую технологию Real-Time ID Check для повышения уровня безопасности водителей и пассажиров. В начале рабочего дня водитель должен пройти визуальную идентификацию, сделать фото самого себя, именно тут работает распознавание лиц на базе Microsoft Cognitive Services. Это позволяет буквально за миллисекунды идентифицировать водителя с вероятность почти 99%, на что у него есть две попытки, после двух неудач учетная запись блокируется, и служба безопасности Uber принимает соответствующие меры. [14]

Примеры работы программ для распознавания лиц

В настоящее время существует значительное количество разнообразных программ для распознавания лиц. В данной статье рассматриваются несколько из них: Giant Emoji [15], Cognitive-Face [16], FaceNet [17].

1. Giant Emoji - распознает само лицо, его выражение (эмоции) и моментально выдает анимационную картинку (смайлик), повторяющую это выражение. Приложение выполняет несколько алгоритмов для обнаружения ориентиров (координат различных точек) лица, и запускает анализ эмоций (Рис.1). OpenFrameworks передает эти точки и результаты анализа эмоций c помощью JavaScript в локальную WebView или через WebSockets к удаленному браузеру, подготовленному для HTML5 анимации. В локальной WebView или удаленном браузере Paper.js [18] приложение создает постоянные векторные объекты для анимации при инициализации. Облегченный анимационный цикл JavaScript анализирует входящие ориентиры лица в формате JSON и модель, соответствующую координатам X/Y, которые можно просмотреть в режиме отладки. Координаты и доверительные баллы затем переводятся в заданные модели Emoji (например, целующее лицо, широкая улыбка и т.д.), дополненные живыми выражениями лица типа формы рта или геометрии губ. Это приложение было разработано в двух частях: приложение для Android openFrameworks, которое обнаруживает лица (написано на C++), а также веб-приложение для визуализации смайлика Emoji (написанное в основном на JavaScript). Работа приложения показана на рисунках 3a и 3б.

(а) (б)

Рисунок 3. Изображение, поданное на вход программы (а); Emoji (смайлик) совпадающий с выражением лица, полученный на выходе программы, на удаленном сервере (б).

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

2. Cognitive-Face - когнитивный сервис распознавания лиц от Microsoft. На вход программа получает изображение, размер которого должен быть не менее 1KB, но и не более 4МB. Поддерживаются расширения JPEG, PNG, GIF (первый кадр), и BMP. Размер регистрируемого лица должен варьироваться в диапазоне от 36x36 до 4096x4096 пикселей. Максимальное количество регистрируемых на одном изображении лиц - 64 (лица ранжируются по размеру прямоугольной области лица в порядке убывания). После процесса обнаружения лиц на изображении программа возвращает его (или их) местоположение, идентификатор, ориентиры и атрибуты. Атрибутами являются: возраст, пол, положение головы (headPose), улыбка, волосяной покров лица (facialHair), и наличие очков.

В рассматриваемом примере программе на вход было подано изображение девушки (Рис.4а).

(а) (б)

Рисунок 4. Фотография автора статьи, поданная на вход программы (а); Фотография автора статьи, полученная на выходе программы (б).

В результате работы программы над входным изображением на нём отмечаются основные координаты главных точек лица (глаз, уголков рта, носа), а также прямоугольная область, обозначающая расположение лица (Рис. 4б).

Также, программа возвращает координаты местоположения некоторых важных точек и другие параметры (Рис.5).

Рисунок 5. Выходные данные программы распознавания

3. Google FaceNet - свободный и открытый ресурс распознавания лиц с использованием глубоких нейронных сетей. Он характеризуется исключительно высокими результатами распознавания - более 99%. Это объясняется, новаторским методом тренировки нейросети: для этого использовали триплеты фотографий, на которых были лица одного или разных людей, одинаково выравненные и в одинаковых условиях. Тренировочную базу также сгенерировали новым методом онлайн майнинга триплетов [17]. Языком программирования является Python. Рассмотрим один из доступных демо примеров - Real-Time Web Demo. Он запускается локально, включается вебкамера, и вводится имя нового человека, которого сеть должна запомнить (Рис. 6). Неизвестные лица сеть распределяет в категорию “Unknown”.

Рисунок 6. Ввод новых лиц в программу распознавания FaceNet

Далее происходит её обучение на некотором количестве примеров, полученных с камеры (Рис. 7). Видео разбивается на кадры в реальном времени и каждый кадр считается, как один обучающий пример. Обучение прерывается в любой момент.

Рисунок 7. Пример обучения системы FaceNet

Затем обученная система предсказывает, кто именно появляется перед камерой - лица из базы и тогда распознает их, либо неизвестные лица (Рис. 8).

Рисунок 8. Система FaceNet распознала известное ей лицо автора статьи

программный слух распознавание лицо

В настоящее время технологии распознавания лиц находятся на пике развития. На рынке существует огромное количество разнообразных программ как доступных и открытых, так и платных для коммерческого использования. В данной статье рассмотрены следующие программы с открытым исходным кодом: Giant Emoji, Cognitive-Face, FaceNet, имеющие как схожие, так и различные функциональные возможности. Подобные технологии уже нашли применение во многих областях, таких как криминалистика, антропология, обеспечение безопасности граждан и других.

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

1. Станкевич Л. А. Когнитивные Нейрологические системы управления // Проблемы нейрокибернетики. Материалы XII Международной конференции по нейрокибернетике (Ростов-на-Дону, октябрь 1999). Ростовна-Дону, 1999. С. 123-130

2. Корчагин В.А., Красовский В.Н. Применение когнитивных технологий в задачах управления сервисом транспортных средств. Материалы V Всероссийской научно-технической конференции с международным участием, изд. Тюменский индустриальный университет, 2012.

3. https://www.microsoft.com/cognitive-services - официальный сайт когнитивных сервисов компании Microsoft

4. https://www.ibm.com/watson/ - сайт когнитивных сервисов компании IBM

5. https://www.google.ru/intl/ru/about/company/ - официальный сайт компнии Google

6. https://speechpad.ru/ - блокнот для речевого ввода

7. https://speechlogger.appspot.com/ru/ - программа для распознавания речи и мгновенного голосового перевода

8. В. С. Симанков, Е. В. Луценко. Адаптивное управление сложными системами на основе теории распознавания образов: Монография (научное издание) /Техн. ун-т Кубан. гос. технол. ун-та. - Краснодар, 1999. -318 с.

9. Горелик A. Л. и Скрипкин В. А. Методы распознавания. Учебное пособие для вузов. М., «Высш. школа», 1977. - 222 с.

10. Кручинин А.Ю. Классификация систем распознавания образов реального времени. http://recog.ru/blog/theory/31.html. -- 2011.

11. Stan Z. Li, Anil K. Jain. Handbook of Face Recognition, Stan Z. Li, Anil K. Jain, Second Edition, Springer, 2011, 699 p.

12. Rabia Jafri, Hamid R. Arabnia, A Survey of Face Recognition Techniques. Journal of Information Processing Systems - JIPS, vol. 5, no. 2, pp. 41-68, 2009

13. Буй Т.Т.Ч., Фан Н.Х., Спицын В.Г. Распознавание лиц на основе применения метода Виолы-Джонса, Вейвлет-преобразования и метода главных компонент./ Известия Томского политехнического университета. Инжиниринг георесурсов. 2012. Т. 320. № 5. С. 54-59.

14. Виктория Кравченко Авторские колонки «Искусственный интеллект охраняет тебя. Почему вы всегда в безопасности, заказывая Uber».

15. https://www.androidexperiments.com/experiment/giant-emoji - официальное представление программы Giant Emoji на сайте разработчиков на платформе android

16. https://www.microsoft.com/cognitive-services/en-us/faceapi/documentation/face-api-how-to-topics - документация о программах распознавания лиц на официальном сайте Microsoft.

17. F. Schroff, D. Kalenichenko, J. Philbin. FaceNet. A Unified Embedding for Face Recognition and Clustering / Google Inc., 2015.

18. http://paperjs.org/ - фреймворк сценариев векторной графики с открытым исходным кодом, который работает поверх HTML5 Canvas.

Размещено на Allbest.ru

...

Подобные документы

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

    дипломная работа [1,8 M], добавлен 08.02.2017

  • Методы предобработки изображений текстовых символов. Статистические распределения точек. Интегральные преобразования и структурный анализ. Реализация алгоритма распознавания букв. Анализ алгоритмов оптического распознавания символов. Сравнение с эталоном.

    курсовая работа [2,1 M], добавлен 20.09.2014

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

    курсовая работа [3,0 M], добавлен 14.11.2013

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

    курсовая работа [4,8 M], добавлен 22.06.2011

  • Оптико-электронная система идентификации объектов подвижного состава железнодорожного транспорта. Автоматический комплекс распознавания автомобильных номеров. Принципы и этапы работы систем оптического распознавания. Особенности реализации алгоритмов.

    дипломная работа [887,3 K], добавлен 26.11.2013

  • Понятие системы распознавания образов. Классификация систем распознавания. Разработка системы распознавания формы микрообъектов. Алгоритм для создания системы распознавания микрообъектов на кристаллограмме, особенности его реализации в программной среде.

    курсовая работа [16,2 M], добавлен 21.06.2014

  • Описание структурной схемы искусственного нейрона. Характеристика искусственной нейронной сети как математической модели и устройств параллельных вычислений на основе микропроцессоров. Применение нейронной сети для распознавания образов и сжатия данных.

    презентация [387,5 K], добавлен 11.12.2015

  • Анализ существующих алгоритмов распознавания режимов работы газотурбинного двигателя. Метод группового учета аргументов, метод Байеса. Применение технологий системного моделирования на этапе проектирования интеллектуальной системы распознавания режимов.

    курсовая работа [1,4 M], добавлен 11.04.2012

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

    дипломная работа [554,8 K], добавлен 06.04.2014

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

    презентация [31,6 K], добавлен 06.01.2014

  • Обзор основных алгоритмов и методов распознавания лиц. Архитектура средств динамического отслеживания лиц в видеопоследовательности. Результаты тестирования на больших объемах видеоданных. Разработка алгоритмов и методов динамического отслеживания лиц.

    дипломная работа [5,9 M], добавлен 20.07.2014

  • Метод главных компонент. Процесс распознавания. Ковариационная матрица, диагональная матрица собственных чисел. Использовании метрики Махаланобиса и Гауссовского распределения для оценки близости изображений. Входные вектора. Библиотека OpenCV.

    статья [22,1 K], добавлен 29.09.2008

  • Необходимость в системах распознавания символов. Виды сканеров и их характеристики. Оптимальное разрешение при сканировании. Программы распознавания текста. Получение электронного документа. FineReader - система оптического распознавания текстов.

    презентация [469,2 K], добавлен 15.03.2015

  • Теоретические основы распознавания образов. Функциональная схема системы распознавания. Применение байесовских методов при решении задачи распознавания образов. Байесовская сегментация изображений. Модель TAN при решении задачи классификации образов.

    дипломная работа [1019,9 K], добавлен 13.10.2017

  • Обзор существующих алгоритмов для обнаружения лиц. Выравнивание лица с помощью разнообразных фильтров. Использование каскадного классификатора Хаара для поиска лиц на изображении. Распознавание лиц людей с использованием локальных бинарных шаблонов.

    дипломная работа [332,4 K], добавлен 30.09.2016

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

    дипломная работа [1,1 M], добавлен 16.09.2017

  • Методы распознавания образов (классификаторы): байесовский, линейный, метод потенциальных функций. Разработка программы распознавания человека по его фотографиям. Примеры работы классификаторов, экспериментальные результаты о точности работы методов.

    курсовая работа [2,7 M], добавлен 15.08.2011

  • Проектирование приложения на языке С# в среде Microsoft Visual Studio 2008: составление алгоритмов сегментации текста документа и распознавания слова "Указ" в нем, создание архитектуры и интерфейса программного обеспечения, описание разработанных классов.

    курсовая работа [2,4 M], добавлен 05.01.2011

  • Разработка программной базы для исследований в области распознавания речи и поиска ключевых слов в ней. Расчет mel-фильтров. Скрытые марковские модели. Применение в алгоритме сверточного декодирования Витерби. Методы визуализации и обработки аудиоданных.

    курсовая работа [1,1 M], добавлен 01.06.2015

  • Словесный, графический, табличный, программный способы представления алгоритма. Основные конструкции в любом алгоритмическом языке. Теория обнаружения, различения и оценивания сигналов. Радиолокационные системы обнаружения. Система распознавания образов.

    презентация [4,8 M], добавлен 09.06.2015

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.