人脸检测工具专栏——OpenCV

举报
HWCloudAI 发表于 2020/06/28 19:46:51 2020/06/28
【摘要】 人脸检测技术在我们生活中经常被用到,人脸面部识别、年龄以及表情的识别都是以人脸为基础。接下来我分享一下最近整理的开源人脸检测工具,由于篇幅较长,所以打算将此作为一个专栏,希望能给AI实战营的小伙伴们提供帮助!目前常用的人脸检测工具有:OpenCV Haar级联分类器、MTCNN方式、dlib方式...(后续会继续补充),首先介绍一下OpenCV.....什么是OpenCV?OpenCV(Op...

人脸检测技术在我们生活中经常被用到,人脸面部识别、年龄以及表情的识别都是以人脸为基础。接下来我分享一下最近整理的开源人脸检测工具,由于篇幅较长,所以打算将此作为一个专栏,希望能给AI实战营的小伙伴们提供帮助!

目前常用的人脸检测工具有:OpenCV Haar级联分类器、MTCNN方式、dlib方式...(后续会继续补充),首先介绍一下OpenCV.....

什么是OpenCV?

OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉库,它提供了很多函数,这些函数非常高效地实现了计算机视觉算法(最基本的滤波到高级的物体检测皆有涵盖)。

OpenCV 使用 C/C++ 开发,同时也提供了 Python、Java、MATLAB 等其他语言的接口。

OpenCV 是跨平台的,可以在  Windows、Linux、Mac OS、Android、iOS 等操作系统上运行。

OpenCV 的应用领域非常广泛,包括图像拼接、图像降噪、产品质检、人机交互、人脸识别、动作识别、动作跟踪、无人驾驶等。

(以上源于百度搜索)

什么是级联分类器?

大致知道OpenCV的作用后,来看下Haar特征+Adaboost级联分类器,Haar特征算子就是下图的所有黑色矩阵的像素值减去所有白色矩阵像素值的和。

Haar特征可以在检测窗口中由放大+平移产生一系列子特征。可以简单理解为算子在图片上横扫过去生成多个框检索是否有人脸的存在。

准备工作

打开ModelArts控制台选择notebook:

点击new,选择Tensorflow1.13.1框架。如图:

注:Modelarts中安装好了OpenCV供我们使用,无需再次安装。

将测试图片先上传到notebook中,如图,点击Upload上传自己的本地图片:


代码实战

将haarcascade_frontalface_alt.xml用path变量存储起来。接下来配置分类器,读取图片后进行灰度化处理,处理完将图片传入检测器中检测。

haarcascade_frontalface_alt.xml文件可以理解为模型,存储了6061个特征,38个阶段,算子的位置大小形状,直接使用即可。

下图给出detectMultiScale检测函数中的参数介绍:


第六行代码中detectMultiScale方法中和第一种方法中介绍的一样,gray就是image,1.3代表scaleFactor,5是minNeighbors。

最后输出图片结果:

解释下最后一句from PIL import Image,PIL:Python Imaging Library,已经是Python平台事实上的图像处理标准库。由于我们对图片进行灰度处理,需要从numpy数组格式转换回image格式,故使用Image.fromarray(img)。


文中所述的完整代码如下,欢迎大家参考学习!

path="/home/ma-user/anaconda3/envs/TensorFlow-1.13.1/lib/python3.6/site-packages/cv2/data/haarcascade_frontalface_alt.xml"
import cv2
face_cascade = cv2.CascadeClassifier(path)
#修改为自己的图片文件名
image_path = "./img_1.jpeg"
img = cv2.imread(image_path)
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
faces = face_cascade.detectMultiScale(gray,1.3,5)
for(x,y,w,h) in faces:
    cv2.rectangle(img,(x,y),(x+w,y+h),(0,255,0),2)
img = cv2.cvtColor(img,cv2.COLOR_BGR2RGB)
from PIL import Image
Image.fromarray(img)


上述便是本篇文章的全部内容,如有错误,希望各位小伙伴能热心指出,共同进步,在AI学习的旅程中,狩猎愉快!


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。