Нейронные сети использовались в работе для определения пола и эмоционального состояния. В нейронной сети имелся набор выходов, отвечающих за эти характеристики, и нейронная сеть обучалась классифицировать изображения лиц по этим признакам. [1]
Emgu CV - кроссплатформенная «обёртка» для .NET библиотеки обработки изображений OpenCV (основной библиотеки), Emgu CV также называют библиотекой машинного зрения. Она используется для решения разнообразных задач связанных с 2D графикой, распознанием лиц и предметов на фото, распознание лиц и предметов на видео и др. Emgu CV может быть использован на нескольких различных языках, включая C #, VB.NET, C + + и IronPython.CV полностью написан на C #. Преимущество в том, что он может работать на любой платформе: Linux, Mac OS X, IOS и Android. Код является кросс-платформенным. [5]
AForge.NET является основой C # и предназначен для разработчиков и
исследователей в области компьютерного зрения и искусственного интеллекта -
обработка изображений, нейронные сети, машинное обучение, робототехника и
т.д..NET является основой для научных вычислений .NET. Структура основывается
на AForge.NET, предназначена для обработки изображений, используются новые
инструменты и библиотеки. Эти библиотеки охватывают широкий спектр научных
вычислительных приложений, таких как статистическая обработка данных, машинное
обучение, распознавание образов. Структура предлагает большое количество
вероятностных распределений, проверки гипотез и поддержку для большинства
популярных методов измерения производительности.[6]
Новое поколение компьютерного видеонаблюдения автоматически сканирует входящий видеопоток, обнаруживает несколько лиц и проверяет наличие возможных совпадений в «контрольном списке». Если соответствие найдено, операторы получают уведомления в реальном времени.
Особенности:
слежение в реальном времени на нескольких видеопотоках;
в режиме реального времени лицо сравнивается с эталонами «контрольного списка»;
регистрации при неподвижном изображении или при живом потоке видео в ручном и автоматическом режиме;
применение С++ API и Web Services API;
возможность масштабируемости в пределах «контрольного списка»: размер, количество видеопотоков и число видимых лиц на изображении.
Возможности программ Cognitec:
чрезвычайно высокая обработка сравнений по образцам (900 000 сравнений в базе за секунду на среднем по силе процессоре);
интеграция с веб-камерами, http - камерами, цифровыми фотоаппаратами, видеокамерами, а также поддержка изображений в распространенных форматах;
объемные базы данных, интеграция с Oracle, IBM DB2, MSSQL Server.
Недостатки:
свет играет большую роль - к примеру, изображение лица в тени компоненты не распознают.
Помимо Web-приложений, Cognitec предоставляет API для цифровых рекламных
щитов - билбордов (billboard) с целью показа рекламы для целевых аудиторий.участвует
и в машиностроении, системы данной компании применяются в автомобилях для
анализа лиц водителей и попутчиков, а также безопасности, например, путем
выявления позиции головы, обнаружения рассеяного взгляда, обнаружения закрытых
глаз. [7]
В зависимости от конфигурации, Visage Technologies Face Track может отслеживать контур рта, подбородка, контуры бровей, вращение и закрытие глаз. Полностью автоматический режим работы (ручная настройка доступна для повышения точности; результаты такой настройки могут быть сохранены и использованы повторно).
Распознает и отслеживает объекты, например, человека, даже когда он повернут спиной или боком. Автоматически повторно производит распознание, если новый человек появляется перед камерой. Поддерживает видео с веб-камеры или файлы AVI. Удобный интерфейс и отлаженная работа программы позволяет отслеживать изображения от любого источника видеосигнала.
Особенности:
минимальный размер изображения лица ок. 80 пикселей;
минимальное разрешение видео вход ок. 320 × 240. Более высокое разрешение (например, 640 × 480, 800 × 600) дает лучшие результаты;
отслеживает объект при вращении до 45 градусов;
обширный объем отслеживания и скорость (30 кадров в секунду в режиме реального времени);
Face Track возвращает полноценное изображение 3D объекта в данный момент
времени, координаты лица и другую информацию.[8]
Face Tracking полностью реализуется программно, на основании данных получаемых из видеопотока (color stream) и потока данных дальномера (depth stream). Поэтому от ресурсов клиентского компьютера будет зависеть то, как быстро будет работать трекинг.
Стоит отметить, что трекинг лица (face tracking) это не то же самое что распознавание лиц (face recognition). Трекинг лица - это слежение за лицом человека в кадре с построением 87-ми узловой схемы лица.
Есть возможность следить за несколькими лицами.
Рис. 1.7 87-ми узловая схема лица
Помимо этих 87 узлов, вы можете получить координаты еще для 13: центры
глаз, носа, уголки губ и границы головы. Face Tracking может построить 3D маску
лица, как показано на следующем рисунке:
Рис. 1.8 3D маска лица
В задачи комплекса входит инициализация обработчика (engine) трекинга и слежение за перемещениями человека в кадре. Перегруженный метод Track, позволяет осуществлять поиск человека по данным с видеокамеры и дальномера.
Качество нахождения лица в кадре зависит как от расстояния до головы, так и от её положения (наклонов). Приемлемыми наклонами головы для сенсора считаются вверх-вниз ±20°, влево-вправо ±45°, наклон на бок ±45°. Оптимальными будут ±10°, ±30° и ±45° для наклонов вверх-вниз, влево-вправо и набок соответственно.
Минимальные требования к аппаратному обеспечению:
компьютер с двухъядерным (2,66-ГГц или больше) процессором;
Windows 7 или Windows 8 - совместимая видеокарта, которая поддерживает Microsoft ® DirectX ® 9.0;
- 2 Гб оперативной памяти. [9]
Microsoft Research Face SDK включает новейшие технологий от исследовательских групп Microsoft. Microsoft Research Face SDK использует современные алгоритмы обработки изображений лица: распознавание, выравнивание, отслеживание и создание мультиплицированных образов.
Основными функциями являются: обнаружение, выравнивание, отслеживание. Учитывая особенности изображения, этот модуль отслеживания пытается найти все лица и возвращает список прямоугольников с указанием позиции (координат) лица. Алгоритм обнаружения автоматически обрабатывает изменения освещения, а также учитывает различные повороты объекта.
Модуль выравнивания пытается найти компоненты лица (глаза, брови, рот,
нос и т.д.) и возвращает очертания компонентов.
Рис. 1.9 Очертания компонентов лица
Модуль отслеживания находит положения лица в режиме реального времени.[10]
Компания Intel выпускает новый продукт Intel® Perceptual Computing SDK 2013 призванный помочь разработчикам приложений расширить возможности взаимодействия с конечным пользователем.
В первой версии продукта уже доступны простые интерфейсы для поддержки:
распознавание лиц;
распознавание жестов;
свободный трекинг пальцев и рук пользователя;
трекинг безмаркерных объектов;
распознования речи в режиме команд и надиктовывания коротких фраз.[11]
Комплект VeriLook Surveillance SDK адресован разработчикам биометрического программного обеспечения, реализующего распознавание пользователей по изображениям их лиц, используя видео потоки, полученные с цифровых видеокамер высокого разрешения в режиме реального времени. Этот комплект основан на VeriLook технологии распознавании пользователей по изображениям их лиц и используется для так называемой пассивной идентификации - то есть, когда проходящие люди не прилагают никаких усилий для их распознавания. К сферам использования данного продукта относятся: правоохранительные органы, охрана, контроль доступа, контроль посетителей, и др. С помощью этого комплекта обеспечивается быстрое создание прикладных биометрических решений на базе платформ Microsoft Windows и Linux.
Особенности:
регистрация (обнаружение) лиц в режиме реального времени, извлечение шаблона и сравнение его с базой данных;
одновременное отслеживание лиц нескольких человек при помощи видео в режиме реального времени;
автоматический режим работы позволяет регистрировать и создавать отчет о появлении, сравнении и исчезновение лица человека, а также вводить лицо нового пользователя в БД и добавлять его в список для наблюдения автоматически;
разработка приложений и систем идентификации по изображению лица возможна на базе различных платформ, поддерживаются несколько языков программирования;
поддержка нескольких камер.
Все характеристики даны для ПК с процессором IntelCore2 (4 ядра), 2,66
ГГц и одной камеры, подключенной к ПК.
Таблица 1.2 Технические характеристики алгоритма VeriLook
|
Технические характеристики алгоритма VeriLook Surveillance SDK, версия 1.1. |
|
|
Минимальный размер входящего изображения |
640 х 480 пикселей |
|
Минимальный размер лица для распознавания |
40 пикселей между глазами |
|
Кадров в секунду при кол-ве лиц = 3 |
не менее 10 |
|
Время для сравнения с шаблоном БД |
менее 1 сек.* |
|
Максимальный размер БД |
кол-во ограничено размером свободной оперативной памяти |
* до 50 000 записей в БД; при большем размере БД уменьшается
быстродействие.
Системные требования
процессор IntelCore2 и выше (4 ядра), 2,66 Ггц или аналогичный другого производителя;
минимум 1 Гб свободной оперативной памяти ;
цифровая камера: разрешение камеры может варьироваться в зависимости от приложения от 0.3 мегапикселя (640 х 480 пикселей) до 1 мегапикселя и более. Высокое разрешение камер требует больше свободной оперативной памяти и уменьшает кол-во кадров в секунду.[12]
Signal Processing Toolbox - это пакет расширения MATLAB, содержащий набор типовых функций для цифровой и аналоговой обработки сигналов. Пакет включает графический пользовательский интерфейс для интерактивной работы и огромное количество функций командной строки для разработки новых алгоритмов.
Большая часть всех алгоритмов и функций, включенных в состав пакета,
написана на языке MATLAB и открыта
для чтения и редактирования. Типовые функции пакета могут использоваться для
разработки различных алгоритмов анализа речи, обработки звука, проводных и
беспроводных систем связи, финансового анализа, рентгенографии и медицинского
приборостроения.
Рис. 1.10 Окно Signal Processing Toolbox
Ключевые возможности:
наборы моделей линейных систем и сигналов;
инструменты для разработки анализа и внедрения КИХ и БИХ фильтров;
проектирование аналоговых фильтров;
быстрое преобразование Фурье и дискретное косинусное преобразование;
спектральный анализ и статистическая обработка сигналов;
функции параметрического моделирования временных рядов;
генерация сигналов: чирп-импульс, Гауссовский импульс, последовательности импульсов заданной формы и длительности;
средства работы с оконными функциями;
графический пользовательский интерфейс для анализа и
визуализации сигналов и фильтров.[13]
Wavelet Toolbox - это
пакет расширения MATLAB для работы
с вейвлетами. Содержит функции вейвлет-преобразования, средства разработки
вейвлет-алгоритмов, функции анализа, синтеза, фильтрации, сжатия и обработки, а
также инструменты для кратномасштабного анализа одномерных и двухмерных данных.
Рис. 1.11 Окно Wavelet Toolbox
Wavelet Toolbox включает интерактивные графические средства для экспериментов с различными вейвлетами в задачах обработки и анализа данных. Пакет содержит функции разработки методов шифрования, сжатия и реконструкции, идентификации и анализа локальных и нестационарных процессов, а также обработки сигналов различной природы. Вейвлеты позволяют выявить те свойства, которые сложно обнаружить классическими частотными методами.
Ключевые возможности:
семейство классических вейвлетов: Добеши, комплексные вейвлеты Гаусса и Морлета, дискретный Мейера (фильтры Добеши, комплексные вейвлеты Гаусса и Морлета, биортогональные, дискретные вейвлеты Мейера);
- средства для обработки сигналов вейвлет-методами, преобразование частоты в масштаб и обратное (средства обработки сигналов и вейвлет-анализа, включая функции перевода сигнала из временной области в частотную);
методы построения семейства вейвлетов;
средства визуализации вейвлетов;
интерактивные средства для непрерывного и дискретного вейвлет анализа;
работа с вейвлет-пакетами как с MATLAB-объектами;
анализ по одной координате, сжатие и устранение шума сигнала;
анализ основных компонентов с использованием масштаба;
многопараметрическая фильтрация.[13]
OpenCV библиотека машинного зрения с открытым исходным кодом. Библиотека написана на C и C++ и работает под Linux, Windows и Mac OS X. OpenCV была разработана для эффективных вычислений и с упором на приложения реального времени. OpenCV написана на оптимизированном C и использует преимущества многоядерных процессоров.
Главной целью OpenCV является предоставление простой в использовании инфраструктуры компьютерного зрения, которая помогает быстро строить достаточно сложные приложения. OpenCV содержит более 500 функций, которые охватывают многие области, в том числе мониторинг конвейерной продукции, медицинская визуализация, безопасность, пользовательские интерфейсы, калибровка камер, стерео зрение и робототехника. Поскольку компьютерное зрение и машинное обучение, часто идут рука об руку, OpenCV также содержит комплексную библиотеку машинного обучения общего назначения Machine Learning Library (MLL). Эта подсистема ориентирована на статистическое распознавание образов и кластеризацию. Библиотека MLL весьма полезна для задач машинного зрения, но при этом носит достаточно общий характер и может использоваться для любых задач машинного обучения.
С момента своего альфа-релиза в январе 1999 года библиотека OpenCV использовалась во многих приложениях, продуктах и исследованиях. Такие приложения как "сшивка" изображений в спутниковых системах и веб-картах, выравнивание изображений, снижение шума в медицинских изображениях, анализ объектов, системы обнаружения вторжений, автоматический контроль, системы безопасности, производство систем контроля, калибровка камер, широкое военное применение, беспилотные летательные, наземные и подводные аппараты.