Детекция лиц с Web-камеры
В этом туториале вы узнаете, как детектировать лица на видеопотоке с Web-камеры, используя объект Capturer из Face SDK API. Задетектированные лица выделяются зеленым ограничивающим прямоугольником.
Кроме Face SDK и Visual Studio 2019 вам потребуется камера, подключенная к Вашему ПК (например, вебкамера). Проект можно собрать и запустить на Windows.
Вы можете найти исходники проекта в Face SDK examples/tutorials/csharp/FirstApp
#
Подготовка проектаЗапустите Visual Studio и создайте новый проект New > Project > Windows Forms application (.NET FrameWork) > Next. После этого Вы можете указать имя и расположение Вашего проекта. Вы увидите Form Designer, в котором вы можете начать построение приложения Windows Forms.
Кликните на форме два раза левой кнопкой мыши. Это создаст новый метод
Form1_Load
вForm1.cs
. Это пригодится в дальнейшем.Откройте Build > Configuration Manager. В поле
Platform
, в выпадающем списке, выберите<New...>
, затем выберите платформуx64
.Нажмите
OK > Close
.Откройте Form Designer и добавьте компонент PictureBox на форму (находится в View > Toolbox > All Windows Forms). Для созданного
pictureBox1
выберите Size ModeZoom
и кликнитеDock in parent container
.
#
Получения кадров с вебкамерыДля работы с вебкамерой мы будем использовать библиотеки Emgu.CV, Emgu.CV.Bitmap, Emgu.CV.runtime.windows. Для установки пакетов используйте
NuGet Package Manager
Tools > NuGet Package Manager > Manage Nuget Packages for Solution. Выберите вкладкуBrowse
, найдите пакеты и установите их.Откройте в редакторе
Form1.cs
и добавьте импорты в начало кода:Добавьте метод
GetFrame
в класс, изменитеForm1_Load
. Также добавьте переменныеcamera
иcamera_id
с номером устройства.Теперь Вы можете собрать и запустить программу Build > Run Code Analysis on Solution. Убедитесь, что видео с камеры отображается.
#
Подключение FaceSDK к проектуОткройте View > Solution Explorer > References (правый клик мыши) > Add Reference -> Browse и добавьте
FacerecCSharpWrapper.dll
из папки<facesdk_root_dir>\bin
. НажимитеOK
.Для автоматического копирования библиотек в Ваш проект откройте Project > {PROJECT_NAME} Properties... > Build Events > Edit Pre-build... и добавьте строки:
Примечание: замените
<facesdk_root_dir>
на путь, где установлен FaceSDK.Нажмите
OK
.В
Form1.cs
добавьте импорты в начало кода:Добавьте приватные переменные в класс
Form1
:Примечание: замените
<facesdk_root_dir>
на путь, где установлен FaceSDK.Перед строкой
Application.Idle ...
добавьте создание сервиса FaceSDK и объекта capturer в методForm1_Load
:Последним шагом нужно добавить метод
drawDetections
, который будет детектировать лица на изображении и отрисовывать ограничивающие прямоугольники вокруг лица.Теперь Вы можете запустить приложение и посмотреть как это работает.