位置: 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算法预测股价模型)

  • 成都青羊区代理记账收费标准是多少_会计群(成都青羊区代理记账公司)

    成都青羊区代理记账收费标准是多少_会计群(成都青羊区代理记账公司)

  • 小米手机操作模式在哪里设置(小米手机操作模式更改)

    小米手机操作模式在哪里设置(小米手机操作模式更改)

  • 红米手表2支持nfc吗(红米手表2支持微信运动吗)

    红米手表2支持nfc吗(红米手表2支持微信运动吗)

  • 抖音每天点赞有限制吗(抖音点赞总数量每天都在减少)

    抖音每天点赞有限制吗(抖音点赞总数量每天都在减少)

  • 抖音能同时登录两个账号吗

    抖音能同时登录两个账号吗

  • 荣耀30pro和mate30对比(荣耀30pro和mate30pro哪个值得买)

    荣耀30pro和mate30对比(荣耀30pro和mate30pro哪个值得买)

  • iphonex音响左边不响(iphone左音响没反应)

    iphonex音响左边不响(iphone左音响没反应)

  • 支付宝乘车码怎么换支付方式(支付宝乘车码怎么改扣款方式)

    支付宝乘车码怎么换支付方式(支付宝乘车码怎么改扣款方式)

  • 咸鱼举报卖家几个人才能成功(闲鱼上举报卖家多久出结果)

    咸鱼举报卖家几个人才能成功(闲鱼上举报卖家多久出结果)

  • 华为手电筒删除了怎么恢复(华为手电筒删除键在哪)

    华为手电筒删除了怎么恢复(华为手电筒删除键在哪)

  • 820相当于骁龙多少(820骁龙的手机)

    820相当于骁龙多少(820骁龙的手机)

  • 对方手机可能不在身边(对方手机可能不在身边什么意思)

    对方手机可能不在身边(对方手机可能不在身边什么意思)

  • 三星s10+用车充充不进去电怎么回事(三星s10+充满要多久)

    三星s10+用车充充不进去电怎么回事(三星s10+充满要多久)

  • opporeno十倍变焦多少w快充(opporeno十倍变焦版手机)

    opporeno十倍变焦多少w快充(opporeno十倍变焦版手机)

  • 抖音小店注销后还能开吗(抖音小店注销后抖音号解绑吗)

    抖音小店注销后还能开吗(抖音小店注销后抖音号解绑吗)

  • 50px等于多少cm(55px是多少厘米)

    50px等于多少cm(55px是多少厘米)

  • 苹果nfc感应区坏了(iphone nfc感应区)

    苹果nfc感应区坏了(iphone nfc感应区)

  • 京东的pid是什么(京东pid是啥)

    京东的pid是什么(京东pid是啥)

  • 手机怎么复制文件(手机怎么复制文件到另一个文件夹)

    手机怎么复制文件(手机怎么复制文件到另一个文件夹)

  • 递减是升序还是降序(递减是升序还是升序)

    递减是升序还是降序(递减是升序还是升序)

  • 华为nova5pro都有什么功能(华为nova5pro都有什么配置)

    华为nova5pro都有什么功能(华为nova5pro都有什么配置)

  • huaweiMate 20的最大运行内存(华为mate 20手机怎么样?有哪些功能)

    huaweiMate 20的最大运行内存(华为mate 20手机怎么样?有哪些功能)

  • 怎么制作宣传视频(怎么做一个简单的宣传视频)

    怎么制作宣传视频(怎么做一个简单的宣传视频)

  • 怎样看是不是京东自营(怎么看是不是京籍)

    怎样看是不是京东自营(怎么看是不是京籍)

  • 快手怎么领猫粮(快手领猫粮怎么把验证取消)

    快手怎么领猫粮(快手领猫粮怎么把验证取消)

  • chatgpt 无法登录报错Access denied、OpenAl‘s services are not available in yourcountry. (error=unsupported )(无法登陆p.to)

    chatgpt 无法登录报错Access denied、OpenAl‘s services are not available in yourcountry. (error=unsupported )(无法登陆p.to)

  • 结转和结转到的区别
  • 固定资产盘盈影响所有者权益吗
  • 发票的红冲和作废有何区别
  • 购买债券的利息会计分录
  • 投资收益分红需要交企业所得税吗
  • 电子税务局怎么注册
  • 残保金计算包括五险一金吗
  • 增值税季报是填3个月的收入吗
  • 一般企业和小企业会计准则的区别
  • 小企业准则固定资产折旧每月折旧多折了
  • 累计所得税前净现金流量计算公式为
  • 应交税金及附加包括哪些
  • 小规模纳税人月收入超过10万,要交多少税
  • 短期投资所得收入需要交税吗?
  • 对外投资亏损可以记股权投资减少吗
  • 事业单位转账支票管理
  • 基本户没开 可以销户吗
  • 季度不超过30万免税分录
  • 境内所得和境外所得
  • 免租期间房产税计税依据
  • 国际货运运费的计算基础
  • 会计帐务处理程序
  • 鼠标反应迟钝是什么原因
  • 工会经费是否可以给非会员使用
  • 异常发票怎么处理
  • 第三方检测公司有前途吗
  • macOS Big Sur 11.2 开发者预览版 Beta如何更新?
  • 公司出租房屋租赁发票税率
  • 商贸企业小规模税率是多少
  • 夸克到底有什么用
  • 一般纳税人简易计税会计分录
  • php中exec
  • 竣工结算审计费用在线计算器
  • 免征增值税会计科目
  • vue项目启动过程
  • html扫码功能
  • php读取文件内容的方法和函数
  • 增资会计
  • 增值税发票抵扣联和发票联
  • html获取php数据
  • 小规模纳税人什么意思
  • ps魔棒工具选择图像时在容差数值较大的是
  • 分页 php
  • 企业所得税的成本怎么填?
  • mysql存储引擎有哪些区别
  • 收益性支出包括哪些内容
  • 印花税的征收方式有哪些
  • 个税手续费返还比例
  • 支付给个人的佣金如何代扣个税
  • 企业如何进行利润分配的会计处理
  • 物业公司收取电费服务费
  • 资本公积的核算维度是什么
  • 经费开支要求
  • 企业购买国债逆回购怎么操作
  • 坏账准备具有哪些特征
  • 电子发票是否使用
  • 机票的电子发票可以报销吗
  • 企业构建固定资产无形资产和其他长期资产支付
  • 所得税费用如何计提
  • sql server如何
  • 你所不知道的童话动画版免费观看
  • win7旗舰版关闭强制签名
  • 安装win7系统后无法引导启动
  • windows xp.exe
  • windows7如何开启游戏模式
  • linux wc-w
  • win10如何打开ie8
  • virtualbox怎么打开虚拟机
  • unity unity3d
  • css各种滤镜的应用是什么
  • CCProgressTimer 进度条动画在cocos2dx+lua中的使用
  • 了不起的女孩
  • android开发最全教程
  • eclipse开发安卓app实例
  • 怎样使用jquery
  • android百分比布局
  • jquery设置禁用
  • bootstrap需要学多久
  • 已经交完费还可以用医保卡报销吗
  • 税务总局在贯彻落实意见任务分工中
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设