区块链技术博客
www.b2bchain.cn

Python人脸识别(1)——人脸检测(静态照片)

这篇文章主要介绍了Python人脸识别(1)——人脸检测(静态照片)的讲解,通过具体代码实例进行23663 讲解,并且分析了Python人脸识别(1)——人脸检测(静态照片)的详细步骤与相关技巧,需要的朋友可以参考下https://www.b2bchain.cn/?p=23663

本文实例讲述了2、树莓派设置连接WiFi,开启VNC等等的讲解。分享给大家供大家参考文章查询地址https://www.b2bchain.cn/7039.html。具体如下:

文章目录

  • 前言
  • 1 环境配置
  • 2 准备素材
  • 3 编写程序
  • 3 效果检测
  • 4 总结

前言

  接下来开始学习使用python+opencv进行人脸识别功能,但今天先不做人脸识别,先做人脸检测,要实现给你一张照片要准确的再照片上找到人脸,并将人脸框起来。

1 环境配置

  要使用opencv我们得先安装相关库。命令行输入“pip install opencv-python”回车执行进行安装

2 准备素材

  接下来准备几张需要检测人脸的照片,照片命名尽量言简意赅,方便调用。

例:我准备了三张照片,分别是大一,大二,大三的照片,本打算做人脸识别,判断这三张照片是不是同一人,但今天先拿来做人脸检测实验。
Python人脸识别(1)——人脸检测(静态照片)

3 编写程序

其实人脸检测程序只有一个,但要检测三张照片,后面的代码基本相同,所以就直接复制了。
首先导入三张照片,再用人脸级联分类器进行人脸检测,这里顺便加了一个人眼检测,不仅要检测到人脸还要检测到人眼。最后将人脸和人眼用不同颜色的线条框起来

import cv2  # 导入相关库 img1 = cv2.imread(r'C:UsersDELLDesktopface_testimage1.jpg',1)  # 导入照片 img2 = cv2.imread(r'C:UsersDELLDesktopface_testimage2.jpg',1)  # 导入照片 img3 = cv2.imread(r'C:UsersDELLDesktopface_testimage3.jpg',1)  # 导入照片 face_engine = cv2.CascadeClassifier(cv2.data.haarcascades+'haarcascade_frontalface_default.xml')  # 人脸检测 eye_engine = cv2.CascadeClassifier(cv2.data.haarcascades+'haarcascade_eye.xml')  # 人眼检测 # 照片1处理 face1 = face_engine.detectMultiScale(img1,scaleFactor=1.3,minNeighbors=5)  # 参数可调,有利于分辨 for (x1,y1,w1,h1)in face1:     img1 = cv2.rectangle(img1,(x1,y1),(x1+w1,y1+h1),(255,0,0),2)  # 脸部框图绘制     face_area1 = img1[y1:y1+h1,x1:x1+w1]  # 将眼部检测区域范围缩小,减少检测时间     eye1 = eye_engine.detectMultiScale(face_area1,1.3,10)     for (ex1,ey1,ew1,eh1) in eye1:         cv2.rectangle(face_area1,(ex1,ey1),(ex1+ew1,ey1+eh1),(0,255,0),1)  # 眼部框图绘制 # 照片2处理 face2 = face_engine.detectMultiScale(img2,scaleFactor=1.2,minNeighbors=2)  # 参数可调,有利于分辨 for (x2,y2,w2,h2)in face2:     img2 = cv2.rectangle(img2,(x2,y2),(x2+w2,y2+h2),(255,0,0),2)  # 脸部框图绘制     face_area2 = img2[y2:y2+h2,x2:x2+w2]  # 将眼部检测区域范围缩小,减少检测时间     eye2 = eye_engine.detectMultiScale(face_area2,1.3,10)     for (ex2,ey2,ew2,eh2) in eye2:         cv2.rectangle(face_area2,(ex2,ey2),(ex2+ew2,ey2+eh2),(0,255,0),1)  # 眼部框图绘制 # 照片3处理 face3 = face_engine.detectMultiScale(img3,scaleFactor=1.3,minNeighbors=5)  # 参数可调,有利于分辨 for (x3,y3,w3,h3)in face3:     img3 = cv2.rectangle(img3,(x3,y3),(x3+w3,y3+h3),(255,0,0),2)  # 脸部框图绘制     face_area3 = img3[y3:y3+h3,x3:x3+w3]  # 将眼部检测区域范围缩小,减少检测时间     eye3 = eye_engine.detectMultiScale(face_area3,1.3,10)     for (ex3,ey3,ew3,eh3) in eye3:         cv2.rectangle(face_area3,(ex3,ey3),(ex3+ew3,ey3+eh3),(0,255,0),1)  # 眼部框图绘制 cv2.imshow('1', img1)  # 大一照片人脸检测展示 cv2.imshow("2", img2)  # 大二照片人脸检测展示 cv2.imshow("3", img3)  # 大三照片人脸检测展示 cv2.waitKey(0)  # 循环 cv2.destroyAllWindows()

到这里代码就全部结束了,接下来看看展示效果。

3 效果检测

Python人脸识别(1)——人脸检测(静态照片)
这里特别注意,在检测第二张图片时,我将检测的精准度调小了,因为第二张是偏侧脸,精准度太高的话,会识别不到脸。

Python人脸识别(1)——人脸检测(静态照片)

4 总结

  今天先做静态照片的人脸检测,接下来做动态的人脸检测,之后再做静态和动态的人脸识别,一步一步来,这样更容易掌握人脸识别。

本文转自互联网,侵权联系删除Python人脸识别(1)——人脸检测(静态照片)

赞(0) 打赏
部分文章转自网络,侵权联系删除b2bchain区块链学习技术社区 » Python人脸识别(1)——人脸检测(静态照片)
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

b2b链

联系我们联系我们