人脸辨识,用树莓派Raspberry Pi实现舵机云台追踪脸孔

影像辨识作为近年最热门的专业技术之一,广泛用于智慧监视器、车电监控、智慧工厂、生物医疗电子等等;其中,人脸辨识是一个很重要的部分,网络上已经有相当多的资源可供下载使用;于是我们使用舵机云台作为镜头旋转的硬件,搭配镜头模块,并结合RaspberryPi 作为微控制器,完成一台自制的人脸辨识追踪系统,来看看如何操作吧!

背景技术

Haar cascades

这是「Haar Feature-based Cascade Classifier」的简写,「Haar-likefeature」为一种判断某特定物体的矩阵,将待测图片经由该矩阵运算后,产生该图片的特征值矩阵。

「Cascade Classifier」是级联分类器,将数个分类器Classifier依某种关系排列,如果该图片的特征值矩阵通过阶层式分类器的检验,即可判断该待测图片为某特定物体。总而言之,将照片经由Haar转换后的特征矩阵,如果通过辨识度由低到高排列的级联分类器的筛选,即可认定为人像。

硬件组装

舵机云台由两个伺服马达及一个组合式云台构成,能够同时进行左右及前后运动,使用材料如下:

1.组合式舵云机台

2.SG90伺服马达x2

舵机云台组合完成的样子:

接将相机镜头模块固定在舵机云台的卡榫处,硬件就组装完成了。

连接Raspberry Pi

舵机云台的上下转动马达(Pan)与左右转动马达(Tilt),需要使用Raspberry Pi的PWM脚位(pin7、11),但RaspberryPi的5V脚位最多只能接16mA,因此需要另外使用RaspberryPi的USB Port,并联提供电流,才能推动伺服马达。

除此之外,需要在RaspberryPi上安装PIR与LED模块,PIR用于侦测外界的动静,当有人时才开启舵机云台进行搜寻;LED则作为指示器,当舵机云台发现脸孔并锁定时,发出亮光作为提示;并在相机扁平电缆插入Raspberry Pi的相机连结埠(CSI)。

CSI位于HDMI与Audio之间

软件安装

于Raspberry Pi安装OpenCV

安装步骤可参考以下链接,

http://yehnan.blogspot.com/2015/12/raspberry-piraspbianopencv.html

OpenCV里面的/haarcascades目录,已包括数个已经训练好的Haarcascades分类器,包括正面人脸、眼睛、载着眼镜、嘴巴、鼻子、微笑、上半身、全身、由上往下的身体、甚至于还有猫脸……等xml文件名,不须另外下载或自己训练,可直接使用。

操作流程

1. 当PIR(红外线感应模块)侦测到有物体时会启动舵机,由上往下递增30度,左右180度来回的转动,侦测是否有脸孔出现;若有则持续追踪脸孔,无则持续搜寻。

2. 若一轮搜寻结束后,PIR感测不到物体时,则停止舵机的运作,并等待有下一个物体被PIR侦测到时,再次启动。

程序代码

原始程序代码可以从Github下载,

https://github.com/ch-tseng/PanTilt

您只将舵机云台的两个servo分别接到pin 7与pin 11,PIR接到pin 36,LED接到pin 32,执行储存在RaspberryPi的main.py即可运作。当然您也可以使用其它脚位,只要记得修改程序中相对应的参数值即可。

原文参考

https://mp.weixin.qq.com/s?__biz=MzU0MTg0ODIzNA==&mid=2247484114&idx=1&sn=d86878c72fa78008e60d3719d2cd3e93&chksm=fb22e517cc556c01f46253d1e21dfbbdfd0470317d64ef99043b7c806fea40a54730000839c1#rd

posted @ 2018-10-07 23:42  易心Astar  阅读(4899)  评论(0编辑  收藏  举报