Устройство для распознавания и слежения за лицами на основе Arduino
Всем привет.
Суть проекта в общих чертах: веб-камера, которая установлена на поворотном механизме подсоединена к компу под управлением ОС Windows и с установленной программой OpenCV. Когда программа находит в поле зрения веб-камеры лицо, то она вычисляет центр лица. Координаты X и Y поступают в контроллер Arduino, который подсоединён к компу через USB. Контроллер Arduino по принятым командам управляет двумя сервомоторами: по координате X и по координате Y, тем самым обеспечивая следящую систему.Используется библиотека OpenCV (Open Source Computer Vision Library) можете. Библиотека мультиплатформенная, сейчас она имеется для этих операционных систем: Windows, Linux, Android, Mac OS и iOS. Библиотека позволяет обрабатывать изображения в режиме реального времени. Написана она на С/С++.
Этот проект является смесью между soft и hard решений. Обработка изображения выполняется на компе, а управление серво выполняется с помощью контроллера.
Список нужных устройств и программ
Программы:
- Arduino IDE 1.0 for Windows
- OpenCV 2.3.1 SuperPack For Windows
- Microsoft Visual C++ 2010 Express SP1
- Serial C++ Library for Win32 (от Thierry Schneider)
Устройства:
- Компьютер с операционной системой Windows 7 SP1
- Arduino Uno либо совместимый + блок питания
- Два сервопривода
- Веб-камера с USB
Начинаем изготовление
1. Устанавливаем программы
- Если установлена ОС Windows, то скачивайте файл OpenCV-2.3.1-win-superpack.exe (либо более новую версию) и устанавливайте библиотеку.
- Скачивайте и устанавливайте Microsoft Visual C++ 2010 Express. В случае если у вас стоит 64-битная версия Windows, то будет нужно вам скачать Windows SDK (но это не желательно, могут возникнуть проблемы).
О процессе настройки OpenCV для Visual C++ можно прочитать на официальном сайте.
2. Крепление камеры и серводвигателей
3. Подключаем
Подключаем сервомоторы:
- Жёлтый вывод от серво оси Х подключаем к выводу 9 контроллера Arduino.
- Жёлтый вывод от серво оси Y подключаем к выводу 10 контроллера Arduino.
- Красный вывод Vcc от серво подключается к выводу 5 V.
- Чёрный вывод GND от серво подключаем к выводу GND контроллера Arduino.
Подключаем веб-камеру:Веб-камеру подключаем к компу по интерфейсу USB. Программа C++ идентифицирует веб-камеру по номеру порта USB. Может быть, нужно будет указать порт в программе.
Подключаем контроллер Arduino UNO:Контроллер также подключайте к компу с помощью интерфейса USB. В системе появится виртуальный порт COM, его нужно будет внести в код программы на C++.
Вот и всё. Дополнительные файлы для этого проекта можете скачать ниже.
FaceDetection