pcDuino+OpenCV实现人脸追踪摄像头

本网站用的阿里云ECS,推荐大家用。自己搞个学习研究也不错
Pcduino是一款兼容Arduino接口的mini pc,A8架构1Ghz的CPU,计算能力不俗,用来跑OpenCV刚刚好。这里就用他们实现一个可以跟随人脸移动的摄像头。

硬件清单:
1、Pcduino一块
2、传感器扩展板一块
3、摄像头云台一个
4、摄像头一个

软件环境:
1、Pcduino板载Ubuntu
2、GCC 4.6
3、QT 4.8.5:http://qt-project.org/downloads
4、OpenCV 2.4.7:http://opencv.org/downloads.html
5、Arduino SDK(c_enviroment):https://github.com/pcduino/c_enviroment

在开始动手前,我们先来捋一下思路。
通过OpenCV可以方便的实现Face Detect,OpenCV的sample目录就有这个例子。流程大致是从摄像头得到逐帧的图像,通过事先训练好的特征检测出人脸的坐标(即图像的像素坐标),最后在该帧图像上圈出人脸的位置。
我们需要的就是这个人脸的坐标,先计算出人脸坐标x轴和y轴分别偏离画面中心点的距离(单位:像素),然后根据这个偏离值驱动摄像头的云台去修正摄像头的指向,使人脸坐标与画面中心点重合(即指向人脸)。
思路清晰了,我们现在开工:)
硬件部分
硬件部分安装比较简单,先在Pcduino上接驳传感器扩展板,再把云台两个舵机分别接在传感器扩展板PWM 5、6针脚上(PWM与GPIO共用5、6针脚,选用5、6是因为只有5、6是硬件PWM,不会使CPU占用率太高)。
这里需要注意的一点是,如果你选用的是大功率的云台和舵机,需要为舵机独立供电。
这是安装好的样子

pcDuino+OpenCV实现人脸追踪摄像头

软件部分
编译安装OpenCV:
1、先安装各种依赖库,根据你的环境不同,可能出现缺失,全都补上,以求OpenCV一次编译通过(因为编译过程耗时将近3小时。。。)
sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg62-dev libtiff4-dev cmake libswscale-dev libjasper-dev
2、下载解压OpenCV包,用cmake工具生成编译所需的信息,第四句说明编译成release版本,安装目录是/usr/local
cd ~/opencv                                                                                                                                                                                                                           
mkdir release
cd release
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..

推荐阅读

Ubuntu 12.04 安装 OpenCV2.4.2 http://www.linuxidc.com/Linux/2012-09/70158.htm

CentOS下OpenCV无法读取视频文件 http://www.linuxidc.com/Linux/2011-07/39295.htm

Ubuntu 12.04下安装OpenCV 2.4.5总结 http://www.linuxidc.com/Linux/2013-06/86704.htm

Ubuntu 10.04中安装OpenCv2.1九步曲 http://www.linuxidc.com/Linux/2

未经允许不得转载:演道网 » pcDuino+OpenCV实现人脸追踪摄像头

赞 (0)
分享到:更多 ()

评论 0

评论前必须登录!

登陆 注册