位置: IT常识 - 正文

人脸检测5种方法(人脸检测5种方式)

编辑:rootadmin
人脸检测5种方法

推荐整理分享人脸检测5种方法(人脸检测5种方式),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:人脸检测分别有哪些,人脸检测方法,人脸检测的五种方法,人脸检测的五种方法,人脸检测方法,人脸检测方法,人脸检测5种方式,人脸检测5种方法图片,内容如对您有帮助,希望把文章链接给更多的朋友!

众所周知,人脸识别是计算机视觉应用的一个重大领域,在学习人脸识别之前,我们先来简单学习下人脸检测的几种用法。

常见的人脸检测方法大致有5种,Haar、Hog、CNN、SSD、MTCNN:

人脸检测5种方法(人脸检测5种方式)

注:本文章图片来源于网络

相关构造检测器的文件:opencv/data at master · opencv/opencv · GitHub

基本步骤读入图片构造检测器获取检测结果解析检测结果一、Haar# 调整参数img = cv2.imread('./images/001.jpg')cv_show('img',img)# 构造harr检测器face_detector = cv2.CascadeClassifier('./weights/haarcascade_frontalface_default.xml')# 转为灰度图img_gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)plt.imshow(img_gray,'gray')# 检测结果 上图4个人脸所以4个方框坐标# image # scaleFactor控制人脸尺寸 默认1.1 detections = face_detector.detectMultiScale(img_gray,scaleFactor=1.3)# 解析for x,y,w,h in detections: cv2.rectangle(img,(x,y),(x+w,y+h),(0,255,0))plt.imshow(cv2.cvtColor(img,cv2.COLOR_BGR2RGB))

# 调整参数img = cv2.imread('./images/004.jpeg')cv_show('img',img)# 构造harr检测器face_detector = cv2.CascadeClassifier('./weights/haarcascade_frontalface_default.xml')# 转为灰度图img_gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)plt.imshow(img_gray,'gray')# 检测结果 上图4个人脸所以4个方框坐标# image # scaleFactor控制人脸尺寸 默认1.1 # minNeighbors 确定一个人脸框至少要有n个候选值 越高 质量越好# [, flags[, # minSize maxSize 人脸框的最大最小尺寸 如minSize=(40,40) detections = face_detector.detectMultiScale(img_gray,scaleFactor=1.2, minNeighbors=10)# 在质量和数量上平衡# 解析for x,y,w,h in detections: cv2.rectangle(img,(x,y),(x+w,y+h),(0,255,0))plt.imshow(cv2.cvtColor(img,cv2.COLOR_BGR2RGB))

上述过程中:

scaleFactor参数:用来控制人脸框的大小,可以用它来排除一些错误检测; minNeighbors参数:我们给人脸框起来的时候,一般一张脸会框许多的框,假如这张脸框得越多,说明质量越好,越是一张正确的“脸”。二、Hog

对于第一次使用这个功能的同学,要提前下载一下dlib。

import dlib# 构造HOG人脸检测器 不需要参数hog_face_detetor = dlib.get_frontal_face_detector()# 检测人脸获取数据# img # scale类似haar的scalFactordetections = hog_face_detetor(img,1)# 解析获取的数据for face in detections: # 左上角 x = face.left() y = face.top() # 右下角 r = face.right() b = face.bottom() cv2.rectangle(img,(x,y),(r,b),(0,255,0))plt.imshow(cv2.cvtColor(img,cv2.COLOR_BGR2RGB))

三、CNNimport dlib# 构造CNN人脸检测器cnn_face_detector = dlib.cnn_face_detection_model_v1("./weights/mmod_human_face_detector.dat")# 检测人脸 参数与上一种相似detections = cnn_face_detector(img,1)for face in detections: # 左上角 x = face.rect.left() y = face.rect.top() # 右下角 r = face.rect.right() b = face.rect.bottom() # 置信度 c = face.confidence print(c) cv2.rectangle(img,(x,y),(r,b),(0,255,0))plt.imshow(cv2.cvtColor(img,cv2.COLOR_BGR2RGB))

通过神经网络完成,这个过程中我们还可以查看每张脸检测时的置信度。

四、SSD# 加载模型face_detector = cv2.dnn.readNetFromCaffe('./weights/deploy.prototxt.txt','./weights/res10_300x300_ssd_iter_140000.caffemodel')# 原图尺寸img_height = img.shape[0]img_width = img.shape[1]# 放缩至输入尺寸img_resized = cv2.resize(img,(500,300)) # 转为2进制img_blob = cv2.dnn.blobFromImage(img_resized,1.0,(500,300),(104.0,177.0,123.0))# 输入face_detector.setInput(img_blob)# 推理detections = face_detector.forward()

此时

detections.shape # (1, 1, 200, 7)

说明有200个结果,后面的7则是我们做需要的一些数据,继续如下:

# 查看人脸数量num_of_detections = detections.shape[2]img_copy = img.copy()for index in range(num_of_detections): # 置信度 detections_confidence = detections[0,0,index,2] # 通过置信度筛选 if detections_confidence > 0.15: # 位置 乘以宽高恢复大小 locations = detections[0,0,index,3:7] * np.array([img_width,img_height,img_width,img_height]) # 打印 print(detections_confidence) lx,ly,rx,ry = locations.astype('int') # 绘制 cv2.rectangle(img_copy,(lx,ly),(rx,ry),(0,255,0),2)plt.imshow(cv2.cvtColor(img_copy,cv2.COLOR_BGR2RGB))

五、MTCNN# 导入MTCNNfrom mtcnn.mtcnn import MTCNN# 记载模型face_detetor = MTCNN()# 检测人脸detections = face_detetor.detect_faces(img_cvt)for face in detections: x,y,w,h = face['box'] cv2.rectangle(img_cvt,(x,y),(x+w,y+h),(0,255,0),2)plt.imshow(img_cvt)

对比优势劣势Haar速度最快、清凉、适合算力较小的设备准确度低、偶尔误报、无旋转不变性HOG+Dlib比Haar准确率高速度比Haar低,计算量大、无旋转不变性、Dlib兼容性问题SSD比Haar和hog准确率高、深度学习、大小一般低光照片准确率低,受肤色影响。CNN最准确、误报率低、轻量相对于其他方法慢、计算量大、Dlib兼容性问题
本文链接地址:https://www.jiuchutong.com/zhishi/298840.html 转载请保留说明!

上一篇:谷歌浏览器无法使用翻译功能的解决方案,谷歌浏览器无法翻译怎么办?谷歌浏览器右键翻译失效了?(谷歌浏览器无法安装)

下一篇:XGBOOST算法Python实现(保姆级)(XGboost算法预测股价模型)

  • 华为畅享7s手机sim卡怎么安装(华为畅享7s手机图片)

    华为畅享7s手机sim卡怎么安装(华为畅享7s手机图片)

  • 为什么开发票二维码扫不出来怎么办

    为什么开发票二维码扫不出来怎么办

  • 为什么qq字符突然不显示了(qq字符为什么会消失)

    为什么qq字符突然不显示了(qq字符为什么会消失)

  • iphone换手机微信聊天记录怎么转移(iPhone换手机微信朋友圈没了)

    iphone换手机微信聊天记录怎么转移(iPhone换手机微信朋友圈没了)

  • 小米长按翻译怎么设置(小米 长按翻译)

    小米长按翻译怎么设置(小米 长按翻译)

  • 十进制数56转换成二进制数是(十进制数56转换成十六进制数是)

    十进制数56转换成二进制数是(十进制数56转换成十六进制数是)

  • arth-al00是什么型号(型号art-al00m)

    arth-al00是什么型号(型号art-al00m)

  • 微信写字怎么设置(微信写字怎么设置下一行)

    微信写字怎么设置(微信写字怎么设置下一行)

  • 小米10拍文档模糊(小米10拍文档模式在哪)

    小米10拍文档模糊(小米10拍文档模式在哪)

  • 嘀嗒顺风车为什么没人接单(嘀嗒顺风车为什么看不到行车轨迹)

    嘀嗒顺风车为什么没人接单(嘀嗒顺风车为什么看不到行车轨迹)

  • 为什么ppt里面的声音放不出来(为什么ppt里面的动画用不了)

    为什么ppt里面的声音放不出来(为什么ppt里面的动画用不了)

  • 红米k20pro需不需要贴膜(红米k20pro算神机吗)

    红米k20pro需不需要贴膜(红米k20pro算神机吗)

  • 抖音橱窗类目可以更改吗(抖音橱窗商品分类有哪些)

    抖音橱窗类目可以更改吗(抖音橱窗商品分类有哪些)

  • 苹果11边框什么材质(苹果11边框什么形状)

    苹果11边框什么材质(苹果11边框什么形状)

  • 快手直播ktv在哪里打开(快手直播ktv怎么弄)

    快手直播ktv在哪里打开(快手直播ktv怎么弄)

  • 爱奇艺账号彻底注销(爱奇艺如何消除账号)

    爱奇艺账号彻底注销(爱奇艺如何消除账号)

  • window7截图工具在哪(win7截图快捷键)

    window7截图工具在哪(win7截图快捷键)

  • oppo15x搭载的是什么芯片(oppo手机15x支持5g网络吗?)

    oppo15x搭载的是什么芯片(oppo手机15x支持5g网络吗?)

  • 字体加粗怎么弄(ps中字体加粗怎么弄)

    字体加粗怎么弄(ps中字体加粗怎么弄)

  • 一加7pro用的什么系统(一加7pro是)

    一加7pro用的什么系统(一加7pro是)

  • 一闪怎么用(一闪app 教程)

    一闪怎么用(一闪app 教程)

  • 微信没绑卡收不了红包怎么办(微信没绑卡收不了零钱了咋办)

    微信没绑卡收不了红包怎么办(微信没绑卡收不了零钱了咋办)

  • 制表符怎么输入(word怎么添加制表符)

    制表符怎么输入(word怎么添加制表符)

  • 朋友圈怎么对单人开放(朋友圈怎么单条屏蔽别人)

    朋友圈怎么对单人开放(朋友圈怎么单条屏蔽别人)

  • 英雄联盟中该如何标记英雄和地图?(英雄联盟中该如何加好友)

    英雄联盟中该如何标记英雄和地图?(英雄联盟中该如何加好友)

  • 华为mate50pro真实图片(华为mate50 pro)

    华为mate50pro真实图片(华为mate50 pro)

  • 增值税发票认证在哪里
  • 公司食堂辅助账怎么记账
  • 非正常损失的货物,增值税做什么科目
  • 无形资产开发阶段
  • 发票税号不对还能报销吗
  • 企业所得税必须计提吗?什么时候计提?
  • 停车费可以抵扣个人所得税吗
  • 固定资产出售账户处理
  • 营改增的增值税
  • 商品房的销售方式有哪些
  • 当期应税销售收入是含税还是不含税
  • 国外劳务费用是怎样产生的
  • 企业所得税负数会计分录
  • 进项结构明细表怎么做
  • 金税盘管理费用怎么结转
  • 建筑劳务分包一般纳税人可以选择简易计税法吗?
  • 资产减值损失能否在所得税税前扣除
  • 消费税应纳税额计算方法是什么有何特点
  • 个人挂靠公司按揭购车账务怎么处理?
  • 工资达到起征点 报税时没有税款
  • mac怎么设置桌面组件
  • 动态壁纸怎么设置锁屏
  • 免征税费需要申报吗
  • php日历如何实现
  • 出口退税进项发票稽核
  • 购入增值税税控系统专用设备
  • 与取得收入无关的成语
  • 怎么解锁城堡上空
  • 土地差价款和土地出让金
  • 增值税需不需要计提
  • bert multihead
  • 水利建设基金的计税依据及税率
  • 电子发票有哪些种类
  • 在数组指定位置添加数据
  • yii2框架中文手册
  • 命令行修改mbr
  • java代理类是什么
  • php自动加载函数
  • 受托加工收到的材料怎么入账
  • 劳务派遣公司账务处理
  • 融资租赁的利息进项税可以抵扣吗
  • 对公户单笔转账有限额吗
  • 核定征收可以不用申报吗
  • 长期股权投资成本法会计处理
  • 研发费用的范围包括哪些
  • 利润与利润率之差公式
  • 会计销售返利处理流程
  • 去年暂估费用,今年收到发票怎么处理
  • 费用暂估是什么意思
  • 失控发票进项税额结转成本
  • 一次性加速折旧额怎么算
  • 教育局给幼儿园的补贴
  • 质量管理体系认证证书
  • 工程总包含设备工程吗
  • 原材料暂估差异调整
  • 资产负债表金额的来源一般是
  • 存货有哪几个科目
  • 车船税没发票只交可以吗
  • 会计凭证,报告怎么做
  • win7旗舰版系统还原无法启动
  • Win10预览版更新弹窗如何关闭
  • freebsd安装教程
  • win7系统的设置在哪里设置
  • xp系统内存不能为read的解决方法
  • win10麦克风无法说话
  • cocos2d-js教程
  • javascript函数的作用
  • bootstrap下拉框设置默认值
  • jquery validate demo 基础
  • prize draw是什么意思
  • js获取0-100随机数
  • jquery div innerhtml
  • label jsp
  • jQuery中ajax的load()与post()方法实例详解
  • pythonnumpy报错
  • 咸阳国税局长是哪里人
  • 成都水费查询系统
  • 国家税务局机打发票可以报销吗
  • 征管基础平台app
  • 新疆医保哪里查
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设