位置: IT常识 - 正文

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

发布时间:2024-01-17
人脸检测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算法预测股价模型)

  • 美团尊享会员红包购买方式是什么(美团会员尊享会员抵扣红包)

    美团尊享会员红包购买方式是什么(美团会员尊享会员抵扣红包)

  • 华为nova6支持红外线功能吗(华为nova6支持红外线遥控吗)

    华为nova6支持红外线功能吗(华为nova6支持红外线遥控吗)

  • 电脑版WPS宋体字二号字怎么设置(wps的宋体不见了)

    电脑版WPS宋体字二号字怎么设置(wps的宋体不见了)

  • 华为手机怎么把密码去掉(华为手机怎么把时间放在桌面上)

    华为手机怎么把密码去掉(华为手机怎么把时间放在桌面上)

  • 固态硬盘无法识别(固态硬盘无法识别怎么修复)

    固态硬盘无法识别(固态硬盘无法识别怎么修复)

  • 固态硬盘损坏数据还能找回吗(固态硬盘损坏数据恢复的几率大吗)

    固态硬盘损坏数据还能找回吗(固态硬盘损坏数据恢复的几率大吗)

  • pcam10是什么处理器(pcam10是什么意思)

    pcam10是什么处理器(pcam10是什么意思)

  • 无人机的主要特点和用途(无人机的主要特点)

    无人机的主要特点和用途(无人机的主要特点)

  • dns无响应是欠费不(dns无响应是欠费了吗)

    dns无响应是欠费不(dns无响应是欠费了吗)

  • 二代笔配什么型号ipad(二代笔要买笔套吗)

    二代笔配什么型号ipad(二代笔要买笔套吗)

  • 同程候补抢票是什么意思(12306候补和同程艺龙抢票成功率高)

    同程候补抢票是什么意思(12306候补和同程艺龙抢票成功率高)

  • 微信怎么发录音文件给好友(企业微信怎么发录音)

    微信怎么发录音文件给好友(企业微信怎么发录音)

  • 华为nova3屏幕多大(华为nova3屏幕多少寸)

    华为nova3屏幕多大(华为nova3屏幕多少寸)

  • 拼多多直接免拼能用几次(拼多多直接免拼是什么意思)

    拼多多直接免拼能用几次(拼多多直接免拼是什么意思)

  • qq绿钻可以几个人登录(qq绿钻可以两个人用吗)

    qq绿钻可以几个人登录(qq绿钻可以两个人用吗)

  • 怎么用微信发大文件(怎么用微信发大于1g的文件)

    怎么用微信发大文件(怎么用微信发大于1g的文件)

  • 手机京东怎么加好友(手机京东怎么加入店铺会员)

    手机京东怎么加好友(手机京东怎么加入店铺会员)

  • 淘宝地址怎么改邮编(淘宝地址怎么改不了)

    淘宝地址怎么改邮编(淘宝地址怎么改不了)

  • 荣耀9x支持18w快充吗(荣耀9x支持十八瓦快充吗)

    荣耀9x支持18w快充吗(荣耀9x支持十八瓦快充吗)

  • 抖音更新以后找不到收藏(抖音更新以后找不到账号)

    抖音更新以后找不到收藏(抖音更新以后找不到账号)

  • beatsx会自动关机吗

    beatsx会自动关机吗

  • win10闹钟怎么设置(win10如何设置闹钟)

    win10闹钟怎么设置(win10如何设置闹钟)

  • window下,cuda版本和NVIDIA驱动版本关系,cuda版本 和 TensorFlow-GPU版本关系,TensorFlow-GPU安装(window cuda)

    window下,cuda版本和NVIDIA驱动版本关系,cuda版本 和 TensorFlow-GPU版本关系,TensorFlow-GPU安装(window cuda)

  • WordPress提示Briefly unavailable for scheduled maintenance解决办法(wordpress提示插件)

    WordPress提示Briefly unavailable for scheduled maintenance解决办法(wordpress提示插件)

  • 北京增值税发票网上申领流程
  • 资源税的税目有几个
  • 投资性房地产出售时公允价值变动损益
  • 大巴车怎么进行营运
  • 注销股本对所有股票影响
  • 企业所得税资产总额怎么填写
  • 国际货运代理免税报表填写
  • 高新企业收到政府补贴会计分录
  • 招待费和福利费每年标准
  • 服务性单位从事的是餐饮中介服务
  • 金税设备维护费账务处理
  • 融资租赁的服务费的标准
  • 代扣代缴个人所得税手续费返还 增值税
  • 软件生产企业
  • 医院企业所得税免税吗
  • 过渡费交税吗
  • 税务登记号就是发票吗
  • 7月1号出台的政策
  • 金融合同违约金罚息
  • 软件企业的税收优惠政策
  • 小微企业所得税税率2.5% 10% 25%
  • 发票打偏了是否罚款
  • 去银行打回单需要带身份证吗
  • 预付货款样品费怎么入账
  • 一式三联的收据哪一联要盖财务章
  • 当月制造费用转生产成本
  • centos6.5下载
  • centos apache配置文件
  • php在apache中有哪些工作方式
  • 离职后原单位不给开离职证明
  • 单目测距精度
  • 考到二本
  • 蓝桥杯b组2020
  • lvm 创建
  • 发票收件人信息
  • 城镇土地使用税征收标准及计算方法
  • 金蝶迷你版年结账套
  • 印花税购销合同包括哪些
  • 处置废品收入税率
  • 开具增值税专用发票和普通发票的区别
  • 投标报名费如何缴纳
  • 退票凭证丢了怎么办
  • 普通发票为什么只能领一张
  • 销项税计提多了
  • 未认证进项税额会计分录
  • 预缴的增值税在增值税附表四怎么填
  • 增值税免抵退税和免退税的区别有什么?
  • 开票需要缴纳印花税吗
  • 年末增值税有留底,挂在哪个科目
  • 小规模纳税人所得税优惠政策2023
  • 没有发票的费用支出怎么入账
  • 工业企业的材料销售收入应计入什么
  • sql2008r2镜像
  • mysql5.7.
  • dos命令环境
  • win10有三个系统
  • win2008下的HPC群集是什么有什么作用
  • win8提升模式
  • linux系统中怎么输入中文
  • linux运行apache
  • win7笔记本设置合上盖子不休眠
  • linux远程桌面连接工具
  • 工商网银安装
  • cocos2dx ui编辑器
  • opengl绘制点线面
  • python的理解
  • 猫的游戏解说
  • nodejs cicd
  • python中类怎么用
  • js如何打印服务器图片
  • python reducebykey
  • jq easyui
  • python5.7汉诺塔
  • python 汉诺塔
  • 向境外付款需要代扣代缴所得税吗
  • 增值税检查调整的账务处理
  • 北京市地方税务局
  • 合伙企业所得税账务处理
  • 办税人员怎么绑定电子税务系统
  • 亏损可以结转吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号