【使用树莓派进行简易人脸识别】

树莓派 徐 自远 1034℃

【使用树莓派进行简易人脸识别】

手里有个从云汉芯城购买的树莓派2,刚好使用它和OpenCV制作一个简易的人脸识别和追踪系统。当然用树莓派3也是没问题的。

1481522440-6608-1284000603cd8902a45d

树莓派3(行货正品,限时特价)

¥199.00云汉芯城购买

1481522440-6352-12d900051496e4cd2ee4

所需硬件:

树莓派2

Pi Camera

非必须(如果需要追踪人脸运动,需要一个有两个马达的小云台):

云台

安装OpenCV

1481522440-9254-12dc00040504e2ccdbce

安装PiCamera

由于我没有使用USB摄像头,而是用了特殊的Pi Camera,样子如下图, 所以需要安装PiCamera来控制摄像头。

1481522440-1148-12d600033c7651744c44

安装PiCamera:

1481522441-7260-12d800068eec27040ec7

至此人脸识别所需要的准备工作已经完成,可以使用下面的演示代码进行测试。

示例代码

Demo.1

第一个演示只使用单核,由于树莓派的性能有限,在只使用一个CPU核心的情况下视频的帧数非常之低,只有5帧左右,效果不太理想, 另外代码中通过Servo Blaster 控制云台的电机,来实现追踪人脸的功能,不过考虑到这个功能不是必须,所以不在此进行介绍。

1481522441-4626-128100040654978f832e

1481522441-8970-12d700038af6feb3ab34

另外请注意由于我使用HaarCascade来进行人脸检测, 需要使用到识别人脸的XML,这些人脸识别的XML文件是随着OpenCV一起安装的,不需要额外的安装, 不过当你在自己树莓派上运行时,请注意调整XML文件的路径, 就是调整这一行:

1481522441-7934-12d6000345ec2197cadb

Demo.2

通过同时使用不同的XML文件,可以实现同时识别不同物体的功能,比如下面这段代码可以同时识别人脸和黑色手机,识别手机所需要的XML文件是由Radamés Ajna和Thiago Hersan制作的, 来源在这里。 更进一步的,我们可以根据自己的需要训练自己的Cascade文件,Naotoshi Seo在此处 给出了详细的教程, 比较简易的还有Thorsten Ball的香蕉识别教程。

1481522442-3879-128100040f371d06faed

1481522442-3271-12d9000521603d0c9a5b

由于使用了更多的XML文件进行识别,帧数降低到了2~3帧。

Demo.3

为了解决帧数较低的问题,有一个比较简单的方法就是跳帧,可以不对每一帧图像都进行识别,而是隔几帧识别一次(因为最初因为懒不想将程序写成多线程,但是为了提高帧数,所以有了这个蛋疼的方法…)。

1481522442-7108-12d800069af2c5ef3427

1481522442-7090-12d600034945d3813250

这样子帧数会提高到10帧左右,已经不像原来那么卡顿,但是当你移动速度很快的时候,识别框会出现滞后。

Demo.4

毕竟跳帧只是权宜之计,这个版本使用了全部的CPU核心,帧数稳定在了15帧左右。

1481522442-3990-12dc000413fe15aef337

好了,今天就说到这,有任何问题,欢迎留言。

http://m.pstatp.com/group/6362805350458867969/?iid=6623051544&app=news_article&tt_from=android_share&utm_medium=toutiao_android&utm_campaign=client_share

 

转载请注明:徐自远的乱七八糟小站 » 【使用树莓派进行简易人脸识别】

喜欢 (0)

苏ICP备18041234号-1 bei_an 苏公网安备 32021402001397号