Применение библиотеки AForge.NET и ее расширения Accord.NET Framework при распознавании лиц в режиме реального времени | Статья в журнале «Молодой ученый»

Отправьте статью сегодня! Журнал выйдет 28 декабря, печатный экземпляр отправим 1 января.

Опубликовать статью в журнале

Авторы: ,

Рубрика: Технические науки

Опубликовано в Молодой учёный №20 (154) май 2017 г.

Дата публикации: 22.05.2017

Статья просмотрена: 9301 раз

Библиографическое описание:

Фрид, А. И. Применение библиотеки AForge.NET и ее расширения Accord.NET Framework при распознавании лиц в режиме реального времени / А. И. Фрид, С. Ф. Галеев. — Текст : непосредственный // Молодой ученый. — 2017. — № 20 (154). — С. 85-88. — URL: https://moluch.ru/archive/154/43602/ (дата обращения: 16.12.2024).



В статье приводится описание библиотек Accord.NET Framework, AForge.NET, а также показаны возможности их компонентов. Представлены способы использования данных компонент для решения задачи распознавания лиц в режиме реального времени.

Ключевые слова: распознавание лиц, Accord.NET Framework, AForge.NET

Введение

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

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

Существует много различных библиотек для программной реализации системы распознавания лиц, например, такие как OpenCV, Emgu CV, Accord.NET Framework, Matrox Imaging Library, Camellia Library, Open eVision, HALCON, VXL, libCVD, IVT, LTI, AForge.NET и некоторые другие. В данном случае рассмотрим библиотеки AForge.NET и Accord.NET более подробно.

Библиотека AForge.NET

AForge.NET — это библиотека с открытым исходным кодом, разработанная на языке C#, которая используется разработчиками и исследователями при решении задач, связанных с компьютерным зрением. А также в библиотеке AForge.NET есть возможности для решения задач в области искусственного интеллекта. Диапазон средств, применяемых библиотекой достаточно разнообразен: обработка изображений, нейронные сети, генетические алгоритмы, нечеткая логика, машинное обучение, робототехника и многое другое.

Основные компоненты библиотеки AForge.NET представлены ниже:

‒ AForge.Imaging — библиотека, предназначенная для работы с изображениями и фильтрами;

‒ AForge.Vision — библиотека, применяющая методы компьютерного зрения;

‒ AForge.Video — пакет библиотек для выполнения работ, связанных с видеоданными;

‒ AForge.Neuro — библиотека, в которой используются возможности нейронных сетей;

‒ AForge.Genetic — библиотека, предназначенная для решения разнообразных задач с применением генетических алгоритмов;

‒ AForge.Fuzzy — библиотека работает с нечеткой логикой;

‒ AForge.Robotics — библиотека поддерживает методы, используемые в области робототехники;

‒ AForge.MachineLearning — библиотека, в которой применяются элементы машинного обучения.

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

Accord.NET Framework

Accord.NET Framework — сравнительно новая программная платформа для AForge.NET, известного пакета библиотек в области компьютерного зрения и искусственного интеллекта, целиком созданная на языке С#. Библиотека Accord.NET использует средства и возможности, которых раньше не было в AForge.NET: применение векторных машин на уровне ядра; дискриминантный и проективный анализ; поддерживает скрытые марковские модели; применение новых методов обучения нейронных сетей; новые фильтры изображений, а также другие возможности.

Библиотека Accord.NET разработана на языке объектно-ориентированного программирования C#. Предназначена для создания программ, применяющих возможности компьютерного зрения, компьютерной обработки звука, обработки сигналов и различных статистических методов.

Accord.NET Framework может использоваться в приложениях семейства Microsoft Windows, Xamarin, Unity3D, Windows Store, Linux, а также в мобильных устройствах.

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

Проект Accord.NET Framework изначально создавался для расширения возможностей AForge.NET Framework, но с тех пор включил AForge.NET в себя. Новые версии объединили оба фреймворка под именем Accord.NET.

Accord.NET содержит набор библиотек, доступных в исходном коде, а также с помощью исполняемых инсталляторов и пакетов NuGet. Исходный код проекта доступен на условиях Gnu Lesser Public License, версия 2.1. в репозитории на GitHub.

Возможности Accord.NET Framework

Возможности библиотеки Accord.NET Framework можно разделить на несколько основных групп:

‒ классификация (а именно, метод опорных векторов, логистическая регрессия, нейронные сети);

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

‒ кластеризация (в частности, методом k-средних);

‒ распределения (более 40 видов);

‒ проверка гипотез;

‒ ядерные методы;

‒ обработка изображений;

‒ обработка звука и сигналов;

‒ алгоритмы компьютерного зрения.

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

Accord.Vision — обнаружение и отслеживание лица в режиме реального времени, а также общие методы для обнаружения, отслеживания и преобразования объектов в потоки изображений. Содержит определения каскада, трекеры Camshift и Dynamic Template Matching. Включает предварительно созданные классификаторы для человеческих лиц и некоторые черты лица, например, такие как носы.

Accord.Imaging — содержит детекторы точек интереса (например, Harris, SURF, FAST и FREAK), фильтры изображений, методы сопоставления изображений и стыковки изображений, а также экстракторы функций, такие как гистограммы ориентированных градиентов и описательные функции Haralick.

Accord.Controls.Vision — компоненты Windows Forms и элементы управления для отслеживания движений головы, лица и рук и других задач, связанных с компьютерным зрением.

Accord.Controls.Imaging — элементы управления Windows Forms для отображения и обработки изображений. Содержит удобный элемент управления ImageBox, который имитирует традиционный MessageBox для быстрого отображения или проверки изображений.

Accord.MachineLearning — применение метода опорных векторов, деревьев принятия решений, наивных байесовских моделей, моделей Gaussian Mixture и общих алгоритмов, таких как Ransac, перекрестная проверка и Grid-Search для приложений где используется машинное обучение.

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

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

Accord.Vision.Detection — содержит детекторы объектов, такие как метод Виолы-Джонса (метод Хаара). Каскады Хаара полностью совместимы с определениями, генерируемыми OpenCV, а сборка поставляется с прямой поддержкой связанных шаблонов лица и носа.

Accord.Vision.Detection.Cascades — встроенные каскады Хаара для использования с детектором объектов Хаара. Эти каскады можно вызывать непосредственно из кода без необходимости загрузки файлов XML.

Применение AForge.Net иAccord.NET Framework в задачах распознавания лиц

Захват изображения

Для захвата видео с устройства видео ввода используют класс AForge.Video.DirectShow.VideoCaptureDevice. Этому классу требуется указать маркер устройства с которого будет осуществляться захват. Так же нужно назначить обработчик события NewFrame. Это событие появляется в то время, когда с камеры отправлен новый кадр. Затем данный кадр отправляется в виде объекта Bitmap в обработчик события, где уже происходит его обработка [5]:

private void VideoSourceNewFrame(object sender, AForge.Video.NewFrameEventArgs eventArgs)

{ var img = (Image) eventArgs.Frame;

using (var ms=new MemoryStream())

{ img.Save(ms,ImageFormat.Jpeg);

//Картинку сохраняют в массив байт, для того чтобы потом сформировать mjpeg

_bufImage = ms.ToArray(); }}

Открытие видеоустройства

В данном случае применяются классы Accord.Video.IVideoSource и Accord.Controls.VideoSourcePlayer. Их используют для открытия видео источника и его запуска.

private void OpenVideoSource(IVideoSource source)

{ this.Cursor = Cursors.WaitCursor;

CloseVideoSource(); videoSourcePlayer.VideoSource = source;

videoSourcePlayer.Start(); statIndex = statReady = 0;

timer.Start(); videoSource = source; this.Cursor = Cursors.Default; }

Выборвидеоустройства

Для выбора камеры используется класс Accord.Video.DirectShow.VideoCaptureDeviceForm. Для этого нужно задать обработчик события btn_Con_Cam_Device. Это событие идет на обработку при нажатии на кнопку «Выбор камеры».

private void btn_Con_Cam_Device_Click(object sender, EventArgs e)

{ if (!DeviceStarStop)

{ VideoCaptureDeviceForm form = new VideoCaptureDeviceForm();

if (form.ShowDialog(this) == DialogResult.OK)

{ VideoCaptureDevice videoSource = form.VideoDevice;

OpenVideoSource(videoSource); }

btn_Con_Cam_Device.BackgroundImage = Properties.Resources.Video_Camera_record; DeviceStarStop = true;

} else { CloseVideoSource(); btn_Con_Cam_Device.BackgroundImage = Properties.Resources.Video_Camera; DeviceStarStop = false; } }

Настройка параметров видео устройства

Для настройки параметров видео устройства применяется класс

Accord.Video.DirectShow.VideoCaptureDevice. Необходимо прописать обработчик события btn_SettingsCamera. Это событие запускается всегда, когда с формы программного обеспечения нажимают на кнопку «Параметра камеры».

private void btn_SettingsCamera_Click(object sender, EventArgs e)

{ if ((videoSource != null) && (videoSource is VideoCaptureDevice))

{ try

{ ((VideoCaptureDevice)videoSource).DisplayPropertyPage(this.Handle); }

catch (NotSupportedException)

{ MessageBox.Show("Источник видео не поддерживает данные свойства конфигурации.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } } }

Выводы

  1. Описаны библиотеки AForge.NET и Accord.NET Framework, а также их компоненты, предназначенные для решения задач в области компьютерного зрения.
  2. Представлены возможности реализации библиотек для распознавания лиц в режиме реального времени на видеопоследовательностях на языке объектно-ориентированного программирования C#.

Литература:

  1. Accord.Net [Электронный ресурс]. Режим доступа: https://en.wikipedia.org/wiki/ Accord.NET, свободный
  2. Accord.Net Framework [Электронный ресурс]. Режим доступа: http://accord-framework.net/index.html, свободный
  3. AForge.NET motion detection [Электронный ресурс]. Режим доступа: https://social.msdn.microsoft.com/Forums/ru-RU/9c3414e1-e540–40aa-a8c1-e5eac25030a9/aforgenet-motion-detection?forum=fordesktopru, свободный
  4. Haar-feature Object Detection in C# [Электронный ресурс]. Режим доступа: https://www.codeproject.com/Articles/441226/Haar-feature-Object-Detection-in-Csharp, свободный
  5. Захват видео с камеры и передача его по сети [Электронный ресурс]. Режим доступа: https://habrahabr.ru/post/177793/, свободный
Основные термины (генерируются автоматически): компьютерное зрение, библиотека, обработчик события, распознавание лиц, логистическая регрессия, машинное обучение, обработка изображений, реальное время, решение задач, искусственный интеллект.


Ключевые слова

распознавание лиц, Accord.NET Framework, AForge.NET

Похожие статьи

Использование двухфакторной аутентификации в проекте ASP.NET Core

Данная статья рассматривает процесс настройки двухфакторной аутентификации в проектах ASP.NET Core.

Интересные возможности программы Excel

В данной работе рассмотрены базовые принципы работы с программой Microsoft Excel. Исследуется применение возможностей программы Microsoft Excel для создания электронных таблиц, диаграмм и программных макросов в практических задачах.

Возможности разработки электронного образовательного ресурса в Visual Basic 10.0 Express

В данной статье рассматриваются основные проблемы и этапы разработки электронных образовательных ресурсов, а также возможности создания ресурса в объектно-ориентированной среде программирования Visual Basic 10.0 Express.

Анализ технологий разработки веб-интерфейсов

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

Использование сервиса API SendGrid для реализации отправки Email-сообщений в проекте ASP.NET Core

В данной статье рассмотрено использование Email-рассылки при помощи API SendGrid в проекте ASP.NET Core.

Автоматизированное добавление печатных штампов при помощи Adobe Acrobat 6.0 благодаря использованию Visual Basic (VBA) и JavaScript

В статье рассматривается наиболее простой способ добавления печатных штампов в документ MS Word, а именно при помощи макроса, описанного на языке программирования Visual Basic for Application с использованием Adobe Acrobat 6.0 и элементов программиро...

Машинное обучение и язык программирования Python

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

Интеграция различных приложений с платформой 1С:Предприятие по протоколу OData

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

Обзор и применение библиотеки оптического распознавания символов Tesseract

В статье приводится обзор и пример использования библиотеки оптического распознавания символов Tesseract.

Автоматическая поддержка документации Asp.Net Core и Angular веб-приложений

В данной статье рассматривается автоматизация генерации и сопровождения документации Asp.Net Core и Angular приложения, с автоматической публикацией в GitLab.

Похожие статьи

Использование двухфакторной аутентификации в проекте ASP.NET Core

Данная статья рассматривает процесс настройки двухфакторной аутентификации в проектах ASP.NET Core.

Интересные возможности программы Excel

В данной работе рассмотрены базовые принципы работы с программой Microsoft Excel. Исследуется применение возможностей программы Microsoft Excel для создания электронных таблиц, диаграмм и программных макросов в практических задачах.

Возможности разработки электронного образовательного ресурса в Visual Basic 10.0 Express

В данной статье рассматриваются основные проблемы и этапы разработки электронных образовательных ресурсов, а также возможности создания ресурса в объектно-ориентированной среде программирования Visual Basic 10.0 Express.

Анализ технологий разработки веб-интерфейсов

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

Использование сервиса API SendGrid для реализации отправки Email-сообщений в проекте ASP.NET Core

В данной статье рассмотрено использование Email-рассылки при помощи API SendGrid в проекте ASP.NET Core.

Автоматизированное добавление печатных штампов при помощи Adobe Acrobat 6.0 благодаря использованию Visual Basic (VBA) и JavaScript

В статье рассматривается наиболее простой способ добавления печатных штампов в документ MS Word, а именно при помощи макроса, описанного на языке программирования Visual Basic for Application с использованием Adobe Acrobat 6.0 и элементов программиро...

Машинное обучение и язык программирования Python

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

Интеграция различных приложений с платформой 1С:Предприятие по протоколу OData

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

Обзор и применение библиотеки оптического распознавания символов Tesseract

В статье приводится обзор и пример использования библиотеки оптического распознавания символов Tesseract.

Автоматическая поддержка документации Asp.Net Core и Angular веб-приложений

В данной статье рассматривается автоматизация генерации и сопровождения документации Asp.Net Core и Angular приложения, с автоматической публикацией в GitLab.

Задать вопрос