Система розпізнавання та стеження за обличчями
В цьому проекті я об'єднав детектор визначення облич (face detection) і слідкуючу (tracking system) систему.
Коротко суть проекту: вебкамера, встановлена на поворотному механізмі, підключена до комп'ютера під управлінням операційної системи Windows і з встановленим програмним забезпеченням OpenCV. Якщо програма виявляє в полі зору вебкамери обличчя, то обчислюється центр обличчя. Координати X і Y передаються в контролер Arduino, який підключений до комп'ютера через USB. У свою чергу, контролер Arduino за прийнятими командами керує двома сервомоторами: по координаті X і по координаті Y, таким чином забезпечується слідкуюча система.
Бібліотеку OpenCV (Open Source Computer Vision Library) можна завантажити тут. Бібліотека мультиплатформна, наразі існує під наступні ОС: Windows, Linux, Android, Mac OS і навіть iOS. Бібліотека забезпечує обробку зображень в режимі реального часу. Написана на C/C++.
Таким чином, цей проект являє собою суміш софтверних і хардварних рішень. Обробка зображення ведеться на комп'ютері, а управління сервомоторами здійснюється за допомогою контролера.
Отже, що я використав для проекту:
Програмне забезпечення:
Arduino IDE 1.0 for Windows
OpenCV 2.3.1 SuperPack для Windows
Microsoft Visual C++ 2010 Express SP1
Serial C++ Library for Win32 (від Thierry Schneider)
Апаратура:
комп'ютер з ОС Windows 7 SP1
Arduino Uno або сумісний + БП
2 сервопривода
USB вебкамера
Отже, поїхали.
Крок 1. Встановлення програмного забезпечення
1) Якщо у вас ОС Windows, то скачайте файл OpenCV-2.3.1-win-superpack.exe (або більш пізню версію) і встановіть бібліотеку.
2) Скачайте і встановіть Microsoft Visual C++ 2010 Express. Якщо у вас 64-бітна версія Windows, то також необхідно буде завантажити Windows SDK (але для 64 версії можуть бути проблеми, я так і не зміг змусити працювати OpenCV під Windows 7 x64).
Процес налаштування OpenCV для Visual C++ читайте на офіційному сайті.
Крок 2. Кріплення камери і сервомоторів
Я не став робити конструкцію "довговічною", тому що після досягнення кінцевої мети я все розбираю для наступного проекту.
Вебкамеру я прикріпив до сервомотора осі X, а його, в свою чергу, закріпив на сервомоторі осі Y. І всю цю конструкцію закріпив у струбцині від "трьох рук".
Крок 3. Підключення
Підключення сервомоторів:
Жовтий вихід від серво осі X підключається до виходу 9 контролера Arduino
Жовтий вихід від серво осі Y підключається до виходу 10 контролера Arduino
Червоний вихід Vcc від серво підключається до виходу 5V
Чорний вихід GND від серво підключається до виходу GND контролера Arduino
Підключення вебкамери:
Вебкамера підключається до комп'ютера через USB інтерфейс. Програма C++ ідентифікує вебкамеру за номером USB-порту. Можливо, знадобиться вказати порт у програмі.
Підключення контролера Arduino UNO:
Контролер також підключається до комп'ютера через USB-інтерфейс. У системі з'являється віртуальний COM-порт, який необхідно внести в код програми на C++.
- FaceDetection.rar (3 Кб)