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

12306网站建设超30亿个人网站做贷款广告

12306网站建设超30亿,个人网站做贷款广告,网站内容与栏目设计,企业小程序怎么注册目录 一.人脸识别 1.人脸识别原理 2. HARAL级联分类器代码实现 3.代码实现 ①读取图片 ②加载分类器 ③检测人脸 ④标注人脸及显示 二.微笑检测 1.微笑检测实现原理 2.代码实现 ①加载分类器 ②读取视频文件 ③循环读取每一帧,作人脸检测 ④循环提取每…

目录

一.人脸识别

1.人脸识别原理

2. HARAL级联分类器代码实现

3.代码实现

①读取图片

②加载分类器

③检测人脸

④标注人脸及显示

二.微笑检测

1.微笑检测实现原理

2.代码实现

①加载分类器

②读取视频文件

③循环读取每一帧,作人脸检测

④循环提取每一帧图片中所有人脸位置,并对每一个人脸做笑脸检测

⑤提取笑脸的位置,并在原图上用矩形框画出,并显示文字

⑥显示结果


一.人脸识别

1.人脸识别原理

  • 人脸识别需先进行人脸检测,定位人脸区域,再进行特征提取与比对以判断身份。
  • 本次讲解的核心是使用OPEN CV中的哈尔级联分类器进行人脸检测。
  • 分类器通过分析哈尔特征(如黑白区域对比值)和采用级联结构(分步判断,逐级淘汰)来高效检测人脸。

2. HARAL级联分类器代码实现

  • 加载已存在的哈尔分类器XML文件,其路径固定在OpenCV源文件cv2库下的的data目录下。
  • 利用detectMultiScale()方法进行检测,核心参数包括:
    • scaleFactor: 搜索窗口的缩放比例,用于扩大搜索范围以发现不同大小的人脸。
    • minNeighbors: 需要检测出的人脸特征阈值,是影响检测精确度的关键参数。
    • minSize/maxSize: 忽略过小或过大的人脸区域。
  • 检测函数返回值为包含所有检测到的人脸坐标(左上角X, Y及宽高)的对象数组。

3.代码实现

①读取图片

并获取灰度图

import cv2
image=cv2.imread('img1.png')
image=cv2.resize(image,(800,500))
grey=cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)

②加载分类器

需要提前将xml文件复制到当前目录下

#加载分类器
faceCascade=cv2.CascadeClassifier('haarcascade_frontalface_default.xml')

③检测人脸

detectMultiScale()方法会返回检测到的人脸的位置

faces=faceCascade.detectMultiScale(grey,scaleFactor=1.05,minNeighbors=10,minSize=(5,5))
print(f'发现{len(faces)}个人脸')
print(f'其位置分别是{faces}')

④标注人脸及显示

根据位置信息画出矩形框

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

二.微笑检测

1.微笑检测实现原理

  • “微笑检测”并非独立模型,而是基于“人脸识别”模型,再对检测到的人脸图片进行进一步分析。
  • 实现流程主要包括:1) 使用前置模型加载人脸和微笑检测两套模型;2) 从视频流中捕获图像,并先通过人脸模型定位面部区域;3) 将检测到的人脸区域进行图像抠图处理;4) 在抠图后的单独胡脸上,应用“微笑”模型进行特征分析;5) 最后将结果绘制到原视频画面上,如框选口部并标注“smile”字符。

2.代码实现

①加载分类器

加载用于人脸识别和笑脸检测的xml文件

import cv2
faceCasecade=cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
smile=cv2.CascadeClassifier('haarcascade_smile.xml')

②读取视频文件

cap=cv2.VideoCapture('test4.mp4')

③循环读取每一帧,作人脸检测

while True:ret,image=cap.read()image=cv2.flip(image,1)#图片翻转,水平翻转(镜像)if not ret:breakgray=cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)faces=faceCasecade.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('lian',roi_gray_face)#微笑检测,仅在人脸区域内检测smiles=smile.detectMultiScale(roi_gray_face,scaleFactor=1.5,minNeighbors=18,minSize=(50,50))

⑤提取笑脸的位置,并在原图上用矩形框画出,并显示文字

注意这里的坐标要加上之前的x,y

        for (sx,sy,sw,sh) in smiles:#绘制微笑区域a=x+sxb=y+sycv2.rectangle(image,(a,b),(a+sw,b+sh),(255,0,0),2)#显示文字cv2.putText(image,'smile',(x,y),cv2.FONT_HERSHEY_COMPLEX_SMALL,1,(0,255,0),2)

⑥显示结果

#显示结果cv2.imshow('dect',image)key=cv2.waitKey(25)if key==27:break

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

相关文章:

  • 《Streamlit 交互式 Web 应用开发》总结测试题
  • 大连 网站制作黑龙江做网站
  • ASP.NET Core 9 Web Api 启用 Swagger
  • Web APIs学习第三天:事件
  • UVa 1597 Searching the Web
  • 5分钟读懂MySQL+Redis双写一致性实现流程
  • 从零开始构建PDF文档生成器(二)- 添加页眉页脚
  • PostgreSQL 中 pg_stat_database 视图的 tup_returned 字段详解
  • 网络原理--HTTP
  • 网站开发宣传标语2017做网站还赚钱吗
  • 海南网站建设公司哪家好wordpress 有点慢
  • Flutter 存储管理:从基础到进阶的完整指南
  • 鸿蒙Flutter三方库适配指南:09.版本升级适配
  • AutoAnalyze智能数据分析助手开源项目
  • “监狱”风云:如何设计爬虫的自动降级与熔断机制?
  • 关于力扣3721. 最长平衡子数组 II线段树解法的反思
  • Visual Basic.NET 的特性
  • LabVIEW的Vision边缘工具(Edge Tool)功能
  • LabVIEW工业零件尺寸测量
  • 网站建设自建的优点百度指数在线查询前100
  • 【AI智能体】Docker 部署 Coze应用服务实战操作详解
  • QAxios研发笔记(二):在Qt环境下基于Promise风格简化Http的Post请求
  • 用 Flink CDC 将 MySQL 实时同步到 StarRocks
  • 基础开发工具---软件包装管理器及vim
  • 邮箱登陆嵌入网站义乌网站建设方案详细
  • 榨干 CPU 性能:通过绑核将 Redis 尾延迟减半!
  • 数据结构之栈和队列-队列
  • 十九、STM32的TIM(十)(编码器)
  • FSDP(Fully Sharded Data Parallel)全分片数据并行详解
  • Transformer 模型详解:从输入到输出的全流程剖析