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

    package com.hanqi.test; import java.util.Date; import java.util.List; import org.hibernate.Session; ...

  2. Facade(外观)模式

    1. 概述 外观模式,我们通过外观的包装,使应用程序只能看到外观对象,而不会看到具体的细节对象,这样无疑会降低应用程序的复杂度,并且提高了程序的可维护性.例子1:一个电源总开关可以控制四盏灯.一个风扇 ...

  3. SpringMVC找不到对应的页面

    确认springmvc配置文件视图解析器配置正确. <!-- 视图解析器 --> <bean class="org.springframework.web.servlet. ...

  4. C语言入门编程思维引导

    编程思维引导: C语言中 include<stdio.h>  称之为导包,导入写好的函数库,多个则依次写 #define N 3  意思是将N这个字母定义为数字3 当使用的时候就直接用 i ...

  5. 下载RPM常用网址

    网址一:http://www.rpm-find.net/linux/rpm2html/search.php   网址二:http://rpmfind.net/linux/rpm2html/search ...

  6. iOS之限制TextField的输入长度

    网上有很多限制textField输入长度方法,但是我觉得都不是很完美,准确来说可以说是不符合实际开发的要求,因此在这里整理一下textField限制输入长度的方法.我所采用的并不是监听方法而是最不同的 ...

  7. C# 反射 Reflection Assembly

    本章节带来的是反射,反射反射程序员的快乐. 一.什么叫反射 反射:是.net Framework提供给的一个方面metadata的帮助类,可以获取信息并且使用 反射的有点:动态 反射的缺点:1:稍微麻 ...

  8. git 设置只输入一次用户名和密码

    https方式每次都要输入密码,非常不爽 按照如下设置可只输入一次 记住密码(默认15分钟): git config --global credential.helper cache 自己定义时间(一 ...

  9. Python 基础 Dict 和 Set 类型

    python 什么是dict 例如: d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 } 我们把名称称为key,对应的成绩称为value,dic就是通过key 来查找 ...

  10. js节点操作实例

    写了一个简单的小例子来引用js实例 1. 初步节点操作: 2.兼容性节点操作: 3.节点的类型,名字: 4.使用setAttribute设置属性 5.节点复制操作: 6.删除和替换节点 如有错误,还望 ...