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

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

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

Авторы: ,

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

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

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

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

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

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



В статье приводится описание библиотек 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/, свободный
Основные термины (генерируются автоматически): компьютерное зрение, библиотека, обработчик события, распознавание лиц, решение задач, обработка изображений, реальное время, машинное обучение, логистическая регрессия, искусственный интеллект.


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

Алгоритмы распознавания объектов | Статья в сборнике...

Ключевые слова: распознавание образов, обработка изображений, компьютерное зрение, машинное обучение.

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

Анализ методов обнаружения лиц на изображении

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

Онлайн платформы машинного обучения | Статья в журнале...

Машинное обучение (МО) — подобласть компьютерной науки, которая занимается такими задачами, как распознавание лиц, распознавание речи, обработка естественного языка, прогнозный анализ, глубокое обучение (глубокие нейронные сети) и многие другие.

Методы распознавания образов | Статья в журнале...

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

Обнаружение объектов на изображении с использованием...

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

Распознавание объектов на основе видеосигнала, полученного...

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

Развитие машинного обучения в фармакологии

Машинное обучение — один из разделов искусственного интеллекта

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

Логистическая регрессия.

Неконтролируемые методы машинного обучения при...

Ключевые слова: неконтролируемое машинное обучение, система обнаружения вторжений, обнаружение аномалий.

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

Разработка моделей процесса обнаружения объекта на...

‒ Низкие требования к качеству обработки изображений

Основные термины (генерируются автоматически): изображение, процесс обнаружения, машинное обучение, процесс, данные, методика обнаружения, компьютерное

Анализ методов обнаружения лиц на изображении.

Алгоритмы распознавания объектов | Статья в сборнике...

Ключевые слова: распознавание образов, обработка изображений, компьютерное зрение, машинное обучение.

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

Анализ методов обнаружения лиц на изображении

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

Онлайн платформы машинного обучения | Статья в журнале...

Машинное обучение (МО) — подобласть компьютерной науки, которая занимается такими задачами, как распознавание лиц, распознавание речи, обработка естественного языка, прогнозный анализ, глубокое обучение (глубокие нейронные сети) и многие другие.

Методы распознавания образов | Статья в журнале...

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

Обнаружение объектов на изображении с использованием...

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

Распознавание объектов на основе видеосигнала, полученного...

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

Развитие машинного обучения в фармакологии

Машинное обучение — один из разделов искусственного интеллекта

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

Логистическая регрессия.

Неконтролируемые методы машинного обучения при...

Ключевые слова: неконтролируемое машинное обучение, система обнаружения вторжений, обнаружение аномалий.

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

Разработка моделей процесса обнаружения объекта на...

‒ Низкие требования к качеству обработки изображений

Основные термины (генерируются автоматически): изображение, процесс обнаружения, машинное обучение, процесс, данные, методика обнаружения, компьютерное

Анализ методов обнаружения лиц на изображении.

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

Алгоритмы распознавания объектов | Статья в сборнике...

Ключевые слова: распознавание образов, обработка изображений, компьютерное зрение, машинное обучение.

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

Анализ методов обнаружения лиц на изображении

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

Онлайн платформы машинного обучения | Статья в журнале...

Машинное обучение (МО) — подобласть компьютерной науки, которая занимается такими задачами, как распознавание лиц, распознавание речи, обработка естественного языка, прогнозный анализ, глубокое обучение (глубокие нейронные сети) и многие другие.

Методы распознавания образов | Статья в журнале...

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

Обнаружение объектов на изображении с использованием...

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

Распознавание объектов на основе видеосигнала, полученного...

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

Развитие машинного обучения в фармакологии

Машинное обучение — один из разделов искусственного интеллекта

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

Логистическая регрессия.

Неконтролируемые методы машинного обучения при...

Ключевые слова: неконтролируемое машинное обучение, система обнаружения вторжений, обнаружение аномалий.

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

Разработка моделей процесса обнаружения объекта на...

‒ Низкие требования к качеству обработки изображений

Основные термины (генерируются автоматически): изображение, процесс обнаружения, машинное обучение, процесс, данные, методика обнаружения, компьютерное

Анализ методов обнаружения лиц на изображении.

Алгоритмы распознавания объектов | Статья в сборнике...

Ключевые слова: распознавание образов, обработка изображений, компьютерное зрение, машинное обучение.

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

Анализ методов обнаружения лиц на изображении

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

Онлайн платформы машинного обучения | Статья в журнале...

Машинное обучение (МО) — подобласть компьютерной науки, которая занимается такими задачами, как распознавание лиц, распознавание речи, обработка естественного языка, прогнозный анализ, глубокое обучение (глубокие нейронные сети) и многие другие.

Методы распознавания образов | Статья в журнале...

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

Обнаружение объектов на изображении с использованием...

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

Распознавание объектов на основе видеосигнала, полученного...

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

Развитие машинного обучения в фармакологии

Машинное обучение — один из разделов искусственного интеллекта

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

Логистическая регрессия.

Неконтролируемые методы машинного обучения при...

Ключевые слова: неконтролируемое машинное обучение, система обнаружения вторжений, обнаружение аномалий.

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

Разработка моделей процесса обнаружения объекта на...

‒ Низкие требования к качеству обработки изображений

Основные термины (генерируются автоматически): изображение, процесс обнаружения, машинное обучение, процесс, данные, методика обнаружения, компьютерное

Анализ методов обнаружения лиц на изображении.

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