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

  • iphone13pro夜景模式怎么开(iphone13pro夜景模式30秒)

    iphone13pro夜景模式怎么开(iphone13pro夜景模式30秒)

  • 手机优酷如何下载视频(手机优酷如何下载视频到u盘)

    手机优酷如何下载视频(手机优酷如何下载视频到u盘)

  • 抖音被限流了多久恢复(抖音被限流了多长时间能放开)

    抖音被限流了多久恢复(抖音被限流了多长时间能放开)

  • 快手菜单在哪里(快手菜单在哪里找出来)

    快手菜单在哪里(快手菜单在哪里找出来)

  • 计算机与电子乐器之间通过什么进行数据交换(计算机电子乐谱)

    计算机与电子乐器之间通过什么进行数据交换(计算机电子乐谱)

  • wan口一直连接不上(wan口连接失败怎么回事)

    wan口一直连接不上(wan口连接失败怎么回事)

  • 怎样判断路由器是否坏了(怎样判断路由器是否正常)

    怎样判断路由器是否坏了(怎样判断路由器是否正常)

  • 淘宝店铺被释放是什么意思(淘宝店铺被释放后激活还是新店吗)

    淘宝店铺被释放是什么意思(淘宝店铺被释放后激活还是新店吗)

  • 有锁裸机什么意思(裸机美版有锁未激活什么意思)

    有锁裸机什么意思(裸机美版有锁未激活什么意思)

  • 美团上订民宿不能退吗(美团订民宿不让住了)

    美团上订民宿不能退吗(美团订民宿不让住了)

  • 蓝牙耳机微信讲话模糊(蓝牙耳机微信语音怎么用)

    蓝牙耳机微信讲话模糊(蓝牙耳机微信语音怎么用)

  • 睡觉手机关机有辐射吗(手机关机后睡觉对人有害吗)

    睡觉手机关机有辐射吗(手机关机后睡觉对人有害吗)

  • 1kb等于多少汉字(1kb等于多少个字符)

    1kb等于多少汉字(1kb等于多少个字符)

  • 手机转接头怎样用u盘(手机转接头怎样传照片到u盘)

    手机转接头怎样用u盘(手机转接头怎样传照片到u盘)

  • 快手特别关注有什么功能(快手特别关注有上限吗)

    快手特别关注有什么功能(快手特别关注有上限吗)

  • ps怎么建立选区(ps怎么建立选区快捷键)

    ps怎么建立选区(ps怎么建立选区快捷键)

  • 淘宝怎样帮主播助力(淘宝怎样帮主播带货赚钱)

    淘宝怎样帮主播助力(淘宝怎样帮主播带货赚钱)

  • 魅族16s怎么添加联系人(魅族16s怎么添加快手极速版桌面)

    魅族16s怎么添加联系人(魅族16s怎么添加快手极速版桌面)

  • iPhone11pro怎么清理内存(iphone11pro怎么清理内存)

    iPhone11pro怎么清理内存(iphone11pro怎么清理内存)

  • 小米8找不到开发者选项(小米8找不到开机选项)

    小米8找不到开发者选项(小米8找不到开机选项)

  • 苹果手机的就寝闹钟怎么删除(苹果手机的就寝模式在哪里)

    苹果手机的就寝闹钟怎么删除(苹果手机的就寝模式在哪里)

  • 华为应用管控怎么解除(华为应用管控怎么设置)

    华为应用管控怎么解除(华为应用管控怎么设置)

  • ipadproa1674是第几代(ipadproa1670是几代)

    ipadproa1674是第几代(ipadproa1670是几代)

  • 数字化的概念(景区数字化的概念)

    数字化的概念(景区数字化的概念)

  • vivo微信右上角有个锁(vivo微信右上角有个锁怎么去掉)

    vivo微信右上角有个锁(vivo微信右上角有个锁怎么去掉)

  • b站怎么加好友呢(b站怎么加好友 b站如何加好友)

    b站怎么加好友呢(b站怎么加好友 b站如何加好友)

  • 【WEB前端进阶之路】 HTML 全路线学习知识点梳理(中)(web 前端)

    【WEB前端进阶之路】 HTML 全路线学习知识点梳理(中)(web 前端)

  • 实收资本的期末余额在借方还是贷方
  • 补缴税款的会计怎么做账
  • 有主营业务收入就一定有销项税吗
  • 增值税何时需要交税
  • 招标代理服务费由谁支付
  • 市场运营部门工作职责
  • 短期借款属于经营性资产吗
  • 应付余额是负数怎么理解
  • 软件开发成本核算模板
  • 水资源税怎么入账
  • 土地使用权分割转让依据
  • 学生勤工俭学收入交个人所得税吗
  • 付款单是发票吗
  • 供暖税收分类编码是多少
  • 开错的发票正常入账吗
  • 个体户需不需要银行开户
  • 金税盘用户管理是灰色不能点击
  • 残疾人保障金怎么计提
  • 公积金提取条件
  • 信用担保对中小企业的作用
  • 开给销货方红字信息表如何做账?
  • 飞鱼星路由器信号有点差怎么办
  • 年初未分配利润是什么科目
  • 机票的保险费能开发票吗
  • 机票行程单可以报销用吗
  • 安装win11一直转圈要多久?
  • linux -e -f
  • php字符串定义的三种方式
  • 应付账款周转天数长对企业的影响
  • php 设计模式 鸟哥
  • php怎么执行sql语句
  • 违约金的增值税税率
  • 公司代扣税
  • 生活常识 小常识
  • 使用的英文
  • 营业外收支计算公式
  • element - - - - - 你不知道的loading使用方式
  • 账面价值大于计税基础为啥为递延所得税负债
  • 企业付检测费的会计科目
  • python opencv如何获取图片尺寸
  • 关于专利技术转让的说法
  • 网上怎么申请增驾摩托车
  • 公司负担个人所得税如何做账
  • 公司逾期交税,后期补上有何后果
  • 租房押金会计分录是什么
  • 有下列情形之一的,当事人可以解除
  • 工程施工企业转账手续费计入什么会计科目
  • 其他应收款科目代码
  • 成本核算方法是资源到作业,作业到产品吗?
  • 股息分红要交多少税
  • 长期股权投资会计实训心得
  • 如何暂估费用会计分录
  • 广告费和业务宣传费税前扣除基数
  • 股权转让的会计分录
  • 营业外收入明细账图片
  • mysql速成要多久
  • .exe是什么软件
  • ubuntu中no such file or directory
  • ubuntu做lvm
  • 内核版本能升级吗
  • windows注册表修改任务栏
  • win7系统玩游戏卡顿怎么办
  • win8怎么更改密码
  • 技术故事是什么意思
  • linux 日历
  • win8外接显示器没反应怎么办
  • 协同编程工具
  • python打开命令行
  • ip地址编址方法
  • vue怎么做兼容
  • 安卓实时屏幕
  • jquery提供了三种删除节点的方法,分别是什么
  • jquery可以实现哪些效果
  • jquery attr和prop
  • javascript面向对象编程指南 pdf
  • 汽车维修增值税专用发票
  • 国家税务总局云平台网址
  • 河南省税务局系统最新消息
  • 地税局网上报税
  • 税审工作流程
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设