实验三 基于Open CV的人脸检测
实验目的
了解人脸检测和人脸识别的原理
学习Python编程语言
学会使用网络摄像头
实验介绍
OpenCV是用于机器视觉的最流行的函数库,拥有C++, C, Python 和 Java 接口,支持Windows、Linux、Mac OS、iOS 和 Android。
人脸检测是自动人脸识别系统中的一个关键环节。随着电子商务等应用的发展,人脸识别成为最有潜力的生物身份验证手段,这种应用背景要求自动人脸识别系统能够对一般图象具有一定的识别能力,由此所面临的一系列问题使得人脸检测开始作为一个独立的课题受到研究者的重视。今天,人脸检测的应用背景已经远远超出了人脸识别系统的范畴,在基于内容的检索、数字视频处理、视频检测等方面有着重要的应用价值。
本次实验分为两部分,第一部分为对已有图像,检测图像中人脸个数。第二部分为通过USB摄像头,识别出usb摄像头拍摄画面中人脸的位置。
硬件清单
pcDuino3B
USB摄像头
软件清单
Ubuntu 14.04
OpenCV
Python
实验步骤
一. 硬件连接
将摄像头插入USB Host,并启动pcDuino3B
图2.3.1 硬件连接图
注意:连接网线后如果出现无法上网情况,请先添加网关。
在电脑上输入 ipconfig(windows系统下命令行窗口) 命令查询网线网关(黄色部分):
将网线插入板子中,在终端输入:
sudo route add default gw 10.103.75.129(此处替换自己网关)
登陆校园网账号
二. 对已有的图像进行人脸检测
1.下载人脸识别源码
git clone https://github.com/shantnu/FaceDetect
cd FaceDetect
python face_detect.py abba.png haarcascade_frontalface_default.xml
在我们提供的pcduino8_uno_lib-master压缩包中包含了源码,可以将压缩包添加至自己的用户下并进行解压缩。
打开pcduino8-uno-guide
打开demo
打开2.FaceDetection
执行代码
python face_detect.py abba.png haarcascade_frontalface_default.xml
实验结果如下图,可以看到程序找到了人脸的位置并得到了图像中人脸的数量。
图2.3.2 人脸识别结果1
2.请同学自己找一张包含人脸的图片添加进去并进行人脸检测
三. 通过摄像头进行人脸检测
下载源码
mkvirtualenv --system-site-packages env
git clone https://github.com/shantnu/Webcam-Face-Detect
cd Webcam-Face-Detect
python webcam.py haarcascade_frontalface_default.xml
人脸识别源码运行成功后,自动打开摄像头,并且可以识别中摄像头拍摄画面中人脸的位置。若运行失败,按照下列步骤修改摄像头设备序号。
未插入摄像头前,在终端输入
ls /dev
插入后,再次输入
ls /dev
可以看到,当前摄像头设备序号为1
修改webcam.py文件中
video_capture = cv2.VideoCapture(0)
括号中的设备序列号,保存后再次启动即可。