当前位置: 首页 > news >正文

辽宁省城乡与住房建设厅网站最优惠的网站优化

辽宁省城乡与住房建设厅网站,最优惠的网站优化,软件开发工程师职责,wordpress 插件 设计文章目录 前言一、OpenCV如何实现人脸检测1、haar特征2、级联分类器3、级联分类器的使用 二、人脸检测、微笑检测 案例实现1、预处理2、加载分类器3、标注人脸4、运行结果:4、微笑检测 总结 前言 要实现人脸识别首先要判断当前图像中是否出现了人脸,这就…

文章目录

  • 前言
  • 一、OpenCV如何实现人脸检测
    • 1、haar特征
    • 2、级联分类器
    • 3、级联分类器的使用
  • 二、人脸检测、微笑检测 案例实现
    • 1、预处理
    • 2、加载分类器
    • 3、标注人脸
    • 4、运行结果:
    • 4、微笑检测
  • 总结


前言

要实现人脸识别首先要判断当前图像中是否出现了人脸,这就是人脸检测。只有检测到图像中出现了人脸,才能据此判断这个人到底是谁。


一、OpenCV如何实现人脸检测

调用 OpenCV 中训练好的分类器实现人脸检测。OpenCV 提供了训练好的haar级联分类器,OpenCV 还提供了使用 HOG 特征(主要用于行人检测)和 LBP 算法的级联分类器。

1、haar特征

什么是哈尔特征?
哈尔特征(Haar-like features)是一种基于图像亮度差异的特征描述符,通常用于描述图像的局部特征。这些特征通常是矩形区域的亮度差异,例如眼睛周围的黑色和白色区域。哈尔特征可以捕捉到目标的边缘、线条和纹理等信息,从而可以用来区分目标和背景。

特征值 = ∑特征区域中白色区域的像素值-黑色区域像素值
Haar特征反映的是图像的灰度变化
在这里插入图片描述
关于 Harr 特征中的矩形框,有如下 3 个变量:
• 矩形框位置: 矩形框要逐像素点地划过(遍历) 整个图像获取每个位置的特征值。
• 矩形框大小: 矩形的大小可以根据需要进行任意调整。
• 矩形框类型: 包含垂直、水平、对角等不同类型。
在这里插入图片描述

2、级联分类器

分类器需要对图像的多个特征进行识别。例如,在识别一个动物是狗(正类)还是其他动物(负类)时,直接根据多个条件进行判断,流程是非常烦琐的。如果先判断该动物有几条腿。有四条腿的动物被判断为可能为狗,并对此范围内的对象继续进行分析和判断。没有四条腿的动物直接被否决,即不可能是狗。只通过比较腿的数目就能排除样本集中大量的负类(如鸡、鸭、鹅等不是狗的动物的实例)。级联分类器就是基于这种思路将多个简单的分类器按照一定的顺序级联而成的。
在这里插入图片描述

3、级联分类器的使用

OpenCV 提供了opencv_createsamples.exe 和opencv_traincascade.exe 文件,这两个 exe 文件需要去手动下载来说使用,他们可以用来训练级联分类器,训练级联分类器很耗时,如果训练的数据量较大,可能需要几天才能完成。

OpenCV 提供了一些训练好的级联分类器供用户使用。这些分类器可以用来检测人脸、脸部特征(眼睛、鼻子)、人类和其他物体。这些级联分类器以XML 文件的形式存放在 OpenCV 源文件的 data 目录下,因为在我们pip安装时已经下载好了,加载不同级联分类器的 XML 文件就可以实现对不同对象的检测。
在这里插入图片描述

二、人脸检测、微笑检测 案例实现

1、预处理

import cv2
image = cv2.imread('OIP-C.jpg')gray = cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)

2、加载分类器

'''--------------------加载分类器---------------------'''
faceCascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
#分类器检测实现人脸识别
faces = faceCascade.detectMultiScale(gray,scaleFactor=1.05,minNeighbors=2,minSize=(8,8))
print('发现张{}人脸'.format(len(faces)))
print('位置',faces)

3、标注人脸

'''--------------------标注人脸及显示---------------------------'''
for (x,y,w,h) in faces:cv2.rectangle(image,(x,y),(x+w,y+h),(255,0,0),2)
cv2.imshow('result',image)
cv2.waitKey(0)
cv2.destroyAllWindows()

4、运行结果:

在这里插入图片描述
在这里插入图片描述

4、微笑检测

同样需要将OpenCV根目录下的一个用来进行微笑检测的xml文件级联分类器复制到代码文件同目录下,首先检测人脸,然后再判断是否是微笑的脸
完整代码:

import cv2
faceCascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
smile = cv2.CascadeClassifier('haarcascade_smile.xml')
cap = cv2.VideoCapture(0)
while True:ret,image = cap.read()image = cv2.flip(image,1)#镜像if ret is None:breakgray = cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)faces = faceCascade.detectMultiScale(gray,scaleFactor=1.1,minNeighbors=15,minSize=(5,5))#----------------------处理每个人脸--------------------------for (x,y,w,h) in faces:cv2.rectangle(image,(x,y),(x+w,y+h),(0,255,0),2)roi_gray_face = gray[y:y+h,x:x+w]cv2.imshow('face',roi_gray_face)smiles = smile.detectMultiScale(roi_gray_face,scaleFactor=1.5,minNeighbors=2,minSize=(50,50))for (sx,sy,sw,sh) in smiles:a = x + sxb = y + sycv2.rectangle(image,(a,b),(a+sw,b+sh),(0,0,255),2)cv2.putText(image,'^=^',(x,y),cv2.FONT_HERSHEY_COMPLEX_SMALL,1,(0,255,255),thickness=2)cv2.imshow('dect',image)if cv2.waitKey(10) == 27:break

运行结果自行检测。


总结

尽管传统Haar级联在复杂场景下存在局限,但其高效性仍使其成为许多实时系统的首选。对于更高精度的需求,可以结合深度学习模型(如MTCNN、RetinaFace)进一步提升效果。

http://www.dtcms.com/a/476048.html

相关文章:

  • wordpress qq主题下载失败模板做的网站不好优化
  • 建站服务论坛python3.5 做网站
  • 融合注意力机制的双分支 LSTM-Transformer 混合网络用于高精度飞机轨迹预测-中文核心-【完整代码数据可直接运行】
  • 网站如何吸引用户更改wordpress登陆界面
  • 网站备案管局电话沈阳男科医院哪家好一些
  • 菜鸟python在线编程衡阳网站优化方案
  • 制作微信网站模板免费下载河北建设工程信息网官网费用中项网
  • 万网 网站托管俄罗斯电商平台有哪些
  • 河南省网站建设意见asp图片网站源码
  • 新泰市住房和城乡建设局网站中文网站开发
  • 织梦后台做的网站怎么绑定域名中国新闻社是什么级别媒体
  • 禾天姿网站开发南阳 网站建设
  • 网站流量统计系统seo搜索引擎优化总结
  • 网站后台怎么做外部链接建设公司网站怎么弄
  • 网站做外链的技巧商丘百度推广电话
  • 站长工具网址查询汕头建设吧 百度贴吧
  • 西安公司建一个网站需要多少钱简约ppt免费模板
  • 如何免费建一个学校网站网络设计一般包括
  • 快速搭建网站视频教程江门小程序商城开发
  • 响应试网站和移动端开发公司和物业公司签协议
  • 山东青岛网站建设seo优化东莞网站建设优化东莞
  • 数据表和网站建设的关系企业微信管理
  • 静态单页网站wordpress广州越秀区天气预报15天查询
  • wordpress 导航图片尺寸window优化大师
  • 做界面的网站广州官方宣布
  • 适合程序员做项目笔记的网站百度做网站骗人到哪里去投诉
  • 武威市凉州区建设局网站网站gzip压缩
  • 什么网站可以做高仿化妆品企业网站案例大全
  • 苏州做儿童场馆门票包票的网站建站网址平台
  • 怎样利用云盘做电影网站做音乐网站首页要求