【人脸识别系列】从知名DeepFace人脸识别库入手详解人脸识别---第三部分DeepFace库使用介绍之人脸检测模型介绍

【人脸识别系列】从知名DeepFace人脸识别库入手详解人脸识别---第三部分DeepFace库使用介绍之人脸检测器介绍

  • 前言
  • DeepFace库人脸检测器
    • OpenCV人脸检测器
    • RetinaFace人脸检测器
    • mtcnn人脸检测器
    • sdd人脸检测器
    • dlib人脸检测器
    • mediapipe人脸检测器
    • yolov8人脸检测器

人脸识别系列其他文章

【人脸识别系列】从知名DeepFace人脸识别库入手详解人脸识别—第一部分人脸识别任务介绍
【人脸识别系列】从知名DeepFace人脸识别库入手详解人脸识别—第二部分DeepFace库使用介绍之数据集介绍

前言

人脸检测是面部识别应用中非常重要的阶段。谷歌研究中显示,仅面部对齐就可以将面部识别准确率提高0.76%。本文的检测即指在图片中找到人脸的位置。

人脸检测模型是DeepFace中最为重要的一类模型,截至2024年1月26日在DeepFace中,包含了OpenCV, RetinaFace, mtcnn, ssd,dlib, mediapipe,yolov8等人脸检测器。本文将对DeepFace中使用的人脸检测器进行讲解,以帮助大家更加深入的理解该库。

DeepFace库人脸检测器

OpenCV人脸检测器

OpenCV是世界上最流行的图像处理库之一,他提供的图像处理算法大多都是设计精巧的传统算法,而非大型的深度学习算法,所以OpenCV库的处理速度一般很快,但是相对深度学习构建的各类图像模型,其准确性等可能会相对偏低。

OpenCV提供的人脸检测器也是最轻量级的人脸检测器之一,采用的是haar-cascade算法。

haar-cascade是一种可以检测图像中的对象的算法,这个算法并不复杂,可以实时运行。我们可以训练 haar-cascade 检测器来检测各种物体,如汽车、自行车、建筑物、水果等。

在OpenCV中利用haar-cascade算法,可以进行如下检测:

  • 人脸检测
  • 眼睛检测
  • 鼻子/嘴巴检测
  • 车辆检测

haar-cascade算法的优缺点如下:
- 优点
1. 速度很快,可以实时预测
2. 模型简洁,所需算力少
- 缺点
1. 不如现代目标检测技术那么准确。
2. 预测存在较多误报

注意: DeepFace中得默认人脸检测器就是OpenCV中的人脸检测器,在实际使用过程中,如果发现人脸检测效果不佳,可以更换为其他人脸检测器试试。并且,如果要使用OpenCV作为人脸检测器,需要单独安装OpenCV库。

如果希望对本文提到各种人脸检测器或者模型有更深入的了解,请关注我以后的文章。

RetinaFace人脸检测器

RetinaFace论文发表于2019年5月,论文名称是 《RetinaFace: Single-stage Dense Face Localisation in the Wild》,论文地址如下:

论文地址

RetinaFace 是最先进的基于深度学习的人脸检测模型之一。是一种基于卷积神经网络的人脸检测算法,具有高精度的特点,但是,它需要很高的计算能力,实时性叫差。

RetinaFace在 WIDER FACE 和 COCO 数据集上的表现比 MTCNN 更好,尤其是对于小尺寸人脸的检测效果更佳。

mtcnn人脸检测器

MTCNN论文发表于2016年,论文名称是 《Joint Face Detection and Alignment using Multi-task Cascaded Convolutional Networks》,论文地址如下:

论文地址

MTCNN 这是一个基于深度学习的人脸检测器,它带有面部特征点。这就是为什么 MTCNN 的检测和对齐得分都很高的原因。但是,它比OpenCV,SSD 和 Dlib 慢。MTCNN 是一种多任务级联卷积神经网络的人脸检测算法,能够同时实现人脸检测、关键点定位和人脸对齐等功能。其对于大尺寸人脸的检测效果较好,并且相对于 RetinaFace 的模型规模较小。

sdd人脸检测器

SDD论文发表于2016年,论文名称是 《SSD: Single Shot MultiBox Detector》,论文地址如下:

论文地址

SSD是一类目标检测算法,他的速度比Faster R-CNN快,主要是因为和yolo一样,把检测分为Single shot,同时加入了特征金字塔和其他优化,使得mPA又比yolo更快。

SSD 不支持面部特征点,并且依赖于 OpenCV 的眼睛检测模块来对齐。尽管其检测性能很高,但对准分数仅为平均水平。

dlib人脸检测器

Dlib是一个机器学习的开源库,包含了机器学习的很多算法,使用起来很方便,直接包含头文件即可,并且不依赖于其他库(自带图像编解码库源码)。

Dlib可以帮助您创建很多复杂的机器学习方面的软件来帮助解决实际问题。目前Dlib已经被广泛的用在行业和学术领域,包括机器人,嵌入式设备,移动电话和大型高性能计算环境。

DeepFace如果要似乎用Dlib库作为人脸检测器,需要单独安装Dlib库。

注意:Dlib目前支持Mac和Linux系统,对windows不支持,如果希望在windows系统下安装并使用Dlib库可以参考我另一篇文章:

【环境搭建小知识】以在windows10+python下极简安装face_recognition,并进行人脸检测简单案例

mediapipe人脸检测器

mediapipe论文发表于2020年,论文名称是 《MediaPipe Hands: On-device Real-time Hand Tracking》,论文地址如下:

论文地址

MeDiaPipe最初是用于实时手部检测,其最为显著的优点就是实时性,可以实现每秒200-300帧的实时人脸检测,在对实时要求高的场景十分实用。

yolov8人脸检测器

yolo是一系列的目标检测模型,从v1到v8有多个版本,但是并不是都是由同一个团队提出的,希望了解更多关于yolo系列模型内容,关注我未来的博文,将对这一系列模型进行详细介绍。

yolov8是由开发YOLOv5的公司Ultralytics于2023年1月发布,如果在使用DeepFace的过程中,希望使用yolov8作为人脸检测器,需要独立安装Ultralytics库。

你可能感兴趣的:(CV,人脸识别,目标检测,计算机视觉,视觉检测,图像处理,YOLO,opencv)