Система розпізнавання та стеження за особами на Arduino

У цьому проекті я поєднав детектор розпізнавання осіб (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. Бібліотека забезпечує обробку зображень у режимі реального часу. Написана С/С++.
Т.о. даний проект є сумішшю soft і hard рішень. Обробка зображення ведеться на комп'ютері, а керування сервом здійснюється за допомогою контролера.
Отже, що я використав для проекту:
Залізо: комп'ютер з ОС 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).
Крок 2. Кріплення камери тасервомоторів

Я не став робити конструкцію "довговічною", бо після досягнення кінцевої мети я все розумію для наступного проекту. Вебкамеру я прикріпив до сервомотора осі Х, а його, у свою чергу, закріпив на сервомоторі осі Y. І всю цю конструкцію закріпив у струбціні від "третіх рук".

Крок 3. Підключення
Підключення сервомоторів: Жовтий висновок від серво осі Х підключається до висновку 9 контролера Arduino Жовтий висновок від серво осі Y підключається до висновку 10 контролера Arduino Червоний висновок Vcc від серво підключається до висновку 5V Чорний висновок GND від серво підключається до висновку GND контролера Arduino
Підключення вебкамери: Вебкамера підключається до комп'ютера за допомогою USB-інтерфейсу. Програма C++ ідентифікує вебкамеру за номером USB-порту. Можливо, потрібно вказати порт у програмі.
Підключення контролера Arduino UNO: Контролер також підключається до комп'ютера через USB-інтерфейс. У системі з'являється віртуальний COM-порт, який необхідно внести код програми на C++.