影像辨识作为近年最热门的专业技术之一,广泛用于智慧监视器、车电监控、智慧工厂、生物医疗电子等等;其中,人脸辨识是一个很重要的部分,网络上已经有相当多的资源可供下载使用;于是我们使用舵机云台作为镜头旋转的硬件,搭配镜头模块,并结合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

人脸辨识,用树莓派Raspberry Pi实现舵机云台追踪脸孔的更多相关文章

  1. 树莓派(Raspberry Pi)搭建简单的lamp服务

    树莓派(Raspberry Pi)搭建简单的lamp服务: 1. LAMP 的安装 sudo apt-get install apache2 mysql-server mysql-client php ...

  2. 树莓派(raspberry pi)学习4: 更改键盘布局(转)

    树莓派(raspberry pi)用了几次后,发现键盘老是按错,一些字符打不出来或打错 这个问题,折腾我半天.还是把心得分享一下吧 上网查,发现是键盘布局不对,树莓派(raspberry pi)是英国 ...

  3. 外网登录访问树莓派 Raspberry Pi

    外网登录访问树莓派 Raspberry Pi 本地的树莓派 Raspberry Pi,只能在局域网内访问,怎样从公网也能登录访问树莓派 Raspberry Pi? 本文将介绍具体的实现步骤. 1. 准 ...

  4. 树莓派(Raspberry Pi)使用Shell编写的极简Service

    树莓派(Raspberry Pi)运行的系统是基于Debian的,不仅可以运行Shell,还支持systemd和docker,可以编写一个简单的服务,让其在启动时运行,执行一些自动化的操作.这里在Ra ...

  5. 树莓派raspberry pi配置

    (1)国际化语言 树莓派初装系统之后,首次启动会出现“raspi-config”工具,如下图:(若不是初次启动,在命令模式下,请输入 sudo raspi-config 命令,即可调出此界面.若在图形 ...

  6. 树莓派(raspberry pi)学习11: 将树莓派变成一个Web服务器(转)

    将树莓派变成一个Web服务器,通过访问网页,就可以控制树莓派,比如:查看摄像头\开灯等等. 一想到Linux Web服务器,我们首先想到的是,Apache + MySql + Php. 树莓派可以安装 ...

  7. 做一个树莓派Raspberry Pi拍立得

    用树莓派Raspberry Pi打造一台拍立得,作法如下: 材料:树莓派+数字相机模块+热敏打印机 因为打印机所需电流较高,所以电源供应器的规格需要5V 3A以上. 再找一个稳定的电源以及够大的外壳装 ...

  8. VLOG丨树莓派Raspberry Pi 3安装PLEX并挂载USB硬盘打造最牛的微型家庭影音服务器2018

    视频介绍 树莓派3安装目前最流行的PLEX服务器,实现既能最大限度降低功耗,也能随时随地观看分享影片. 一.在树莓派下安装PLEX媒体服务器 1.在终端,将你的树莓派更新至最新 sudo apt up ...

  9. 树莓派(raspberry pi)系统开发

    [树莓派(raspberry pi)] 01.在linux环境下给树莓派安装系统及入门各种资料 [树莓派(raspberry pi)] 02.PI3安装openCV开发环境做图像识别(详细版) 出处: ...

随机推荐

  1. Loadrunner之HTTP接口测试

    Loadrunner之HTTP接口测试 接口测试的原理是通过测试程序模拟客户端向服务器发送请求报文,服务器接收请求报文后对相应的报文做出处理然后再把应答报文发送给客户端,客户端接收应答报文这一个过程. ...

  2. Android攻城狮学习笔记—入门篇一

    第一章 搭建Android开发环境 1.1 环境组成 JDK(Java Development Kit) Eclipse Android SDK(Software Development Kit) A ...

  3. HDU 1599 find the mincost route(floyd求最小环 无向图)

    传送门: http://acm.hdu.edu.cn/showproblem.php?pid=1599 find the mincost route Time Limit: 1000/2000 MS ...

  4. SpringMVC中controller的几种返回值

    String :跳转到对应的返回值中. return “/index”: ModelAndView: 控制页面跳转方式: 1. ModelAndView modelAndView = new Mode ...

  5. 【星云测试】开发者测试(3)-采用精准测试工具对springcloud微服务应用进行穿透测试

    1.微服务简介 微服务英文名称Microservice,Microservice架构模式就是将整个Web应用组织为一系列小的Web服务.这些小的Web服务可以独立地编译及部署,并通过各自暴露的API接 ...

  6. Oracle特有函数 case when decode exists 分页rownum

    select * from EMP eselect * from dept dselect * from salgrade s--Oracle特有函数 case whenselect case 2 w ...

  7. paxos协议(1)-朴素paxos

    前言 学习paxos协议,最困惑我的两点是: 1. 朴素paxos是怎么样的?这部分主要是原理: 2. paxos协议是怎么运用到分布式系统解决问题的.因为很多博客的开篇说paxos协议可以运用在很多 ...

  8. es6 入坑笔记(四)---异步处理

    promise 用于js的异步处理 形式: 1.申明一个promise的对象 let p = new Promise(function(成功时的参数,失败时的参数){ if(....){ 成功时的参数 ...

  9. Spring 约束文件配置

    1.引入jar包 2.新建applicationContext.xml配置文件 位置随意,建议放在src目录下 新建的空xml文件,写入一对beans标签 3.打开Windows-->Prefe ...

  10. pycharm使用杂记

    R语言解释器在/opt/local/Library/Frameworks/R.framework/Versions/3.5/Resources/bin/R