46
Други роботи / Хексапод Тори
« -: Август 22, 2010, 01:43:50 pm »
Здравей hunter, за разпознаването на лицето използва Emgu CV - това са .net библиотеки, които обвиват unmanaged C++ библиотеките на OpenCV - всеизвестната библиотека за image processing и computer vision. Защо ползвам Emgu CV - тъй като не гоня някаква неверятна производителност и ме мързи да пиша много код. С Emgu разпознаването на лицето става буквално на 5-6 реда(ако искаш код - самата библиотека идва с примери и един от тях е за разпознаване на лице . Аз използвам готова функция на библиотеките имплементираща Haar Cascade алгоритъма за намиране на лице(може да се настрои да търси очи, устни, горна част на тялото, долна част на тялото, цялото тяло(има готови xml file-ove в една от директориите на библиотеката)). Относно следенето на лицето: имам usb камера - тя е свързана чрез usb кабел към лаптопа, на моето приложение пускам нишка, която взима текущото изображение от камерата, обработва го като намира най-голямото лице, обграждам лицето в правоъгълник и търся неговият център и спрямо разположението на центъра на правогълника(респективно лицето) изпращам по bluetooth-a на къде да се премести главата и тялото на робота като се опитвам да "наместя" видяното лице в близост до центъра на изображението, след което се взима следващият кадър и отново се обработва и тн. Пфф дано съм успял да обясна. Щеше да стане по- добре с безжична камера, но не ми се дават пари за такава. Ако искаш мога да покажа и код и да го обясня, но той не е по различен от примера даден в самата библиотека- само добавям сметките и изпращането на данни към хексапода по bluetooth-a.
Ако имаш още въпроси, ще се радвам да отговоря, пък и не знам дали успях на този да отговоря както трябва.
Ако имаш още въпроси, ще се радвам да отговоря, пък и не знам дали успях на този да отговоря както трябва.