文章插图
比如上图中 , 横的黑道将人脸中较暗的双眼提取了出来 , 而竖的白道将人脸中较亮的鼻梁提取了出来 。
由于事先不太可能知道要检测的目标的大小 , 这就要求我们的级联表中的分类器具有按比例增大(或者缩小)的能力 , 这样 , 当小的窗口移动完整个待检测图片没有发现目标时 , 我们可以调整分类器的大小 , 然后继续检测 , 直到检测到目标或者窗口与待检测图片的大小相当为止 。人脸检测流程图见图
文章插图
人脸检测具体实现
环境搭建
本项目采用Python作为编辑器 , pycharm作为解释器 。
OpenCV是一个可跨平台的计算机视觉和机器学习的软件库 , 实现了图像处理和计算机视觉方面的很多通用算法 。
安装OpenCV时 , 有以下几种方法 。
一 , 首先可以利用的是pycharm来进行引入
file -- settings --project interpreter-- +
文章插图
选择OpenCV--python ---install
文章插图
如果安装成功 , 随后你可以在project interpreter里来进行版本的查看 。
文章插图
二 , 利用常规命令
Win+r后输入cmd , 随后输入pip install OpenCV-python
如果显示install successfully , 则安装完成 。
如果报错 , read time error , 则可能是库在下载时有延迟的问题 , 需要在命令里加入一个代理 , 这里用到的是豆瓣的 , 在install 后面加入以下命令即可 。
- -index-url https://pypi.douban.com/simple opencv-python
文章插图
OpenCV可以说是人脸物体检测识别中比较常用的一个库 , 利用import cv2来进行调用 。
项目代码
对于识别本地图片中的人脸 , 我们需要进行以下几个步骤的操作:
1)把图像转换为灰度图 , 这样可以去除色彩对目标检测的影响 。同时可以降低图像的噪声 。
import cv2 #引入OpenCV模块
#规定图像的路径 。filepath = "./image1.png"
# ./为当前文件夹下的相对路径 , 我们需要将检测图片与程序文件放于同一文件夹下 。
img = cv2.imread(filepath)
#cv2.IMread就是利用OpenCV模块来读取此路径下的图片文件 imread=image-read
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
#img为原始彩色图片 , 这里我们用到了cv2模块的图像颜色转换功能 , 将转换后的图像命名为gray
cv2.imshow("Image", gray)
#显示灰色图像
2)在灰色图像上进行矩形框的绘制cv2.imshow("Image-gray", img)x = y = 100 # 任意规定一个坐标w =h= 135 # 矩形的宽、高color = (0,255,0) # 定义绘制颜色 , 遵循bgr模式cv2.rectangle(img, (x, y), (x + w, y + h),color , 3) #调用cv2里的rectangle来 绘制矩形 , rectangle(图像 , 左上角坐标 , 右下角坐标 , 颜色 , 线粗)cv2.imshow("Image-gray-square", img) # 显示灰色方框图像
3)使用分类器查找人脸
CascadeClassifier是Opencv中做人脸检测时候的一个级联分类器 。数据结构包括Data和FeatureEvaluator两个主要部分 。Data中存储的是从训练获得的xml文件中载入的分类器数据;而FeatureEvaluator中是关于特征的载入、存储和计算 。这里采用的训练文件是OpenCV中默认提供的haarcascade_frontalface_default.xml 。至于Haar , LBP的具体原理 , 可以参考opencv的相关文档 , 简单地 , 可以理解为人脸的特征数据 。
face_engine=cv2.CascadeClassifier(cv2.data.haarcascades+'haarcascade_frontalface_default.xml')
# 导入人脸级联分类器引擎 , '.xml'文件里包含已经训练出来的人脸特征
推荐阅读
- 负载均衡解析与Nginx实战
- Mac 上安装 pyenv 使用多版本python开发项目
- 大学军训内容及项目有哪些?
- 微服务架构开发实战:如何集成 Eureka Client?
- 如何建立一个完美的 Python 项目
- 开化龙顶的功效和作用,开化龙顶茶特色园项目被列入国家产业试点,开化龙顶茶
- 生成树实战演示,STP各端口的配置选举
- DHCP中继实战配置
- 开化龙顶名茶鉴赏,开化龙顶茶特色园项目被列入国家产业试点,开化龙顶茶
- 使用 K8s 进行作业调度实战分享