AI挑战营(进阶) 二:InsightFace项目讲解
[复制链接]
InsightFace是一个开源的2D和3D深度人脸分析工具箱,它提供了学术领域多种SOTA算法实现,包括人脸检测、人脸识别和人脸对齐,这些算法在学术研究和工业应用中都有广泛的应用。InsightFace主要技术流程如下:
一、Face Detection(人脸检测)。这一流程主要是找到图像中的人脸,为后面的识别提供更加准确的人脸信息。
- RetinaFace:InsightFace支持RetinaFace算法,这是由InsightFace团队提出的一种实时的单级面部检测器。
- SCRFD:SCRFD是一种高效的高精度人脸检测方法,在Arxiv中进行了初步描述。InsightFace同样提供易于使用的管道来训练支持NAS的高效人脸检测器。
-MCNN (Multi-task Cascaded Convolutional Networks):MCNN是一种级联卷积神经网络,用于人脸检测。它通过级联多个子网络来逐步精细化人脸的检测过程。
二、Face Alignment(人脸对齐)。这一流程可以增强人脸信息的鲁棒性,优化人脸识别效果
- SDUNets:SDUNets是一种基于热图的方法,被BMVC接受。这种方法通过找到人脸的若干个关键点(基准点,如眼角,鼻尖,嘴角等),然后利用这些对应的关键点通过相似变换(旋转、缩放和平移)将人脸尽可能变换到标准人脸。
- SimpleRegression:SimpleRegression提供非常轻量级的面部特征点模型,具有快速坐标回归功能。这些模型的输入是松散裁剪的人脸图像,而输出是各关键点的坐标。
三、Face Recognition(人脸识别)。这一过程会将人脸图片进行特征提取并交由模型推理得到一组向量用于相似度计算。
- ArcFace:InsightFace主要使用一种加性角裕量损失(ArcFace)的模型来获得人脸识别的判别特征。这种模型通过在特征向量和分类边界之间引入角度间隔,增强了模型的判别能力,从而提高了人脸识别的准确性。
由于人脸对齐需要额外的计算资源且对一般场景下的人脸识别准确率提升有限,所以在接下来的工作中我们只完成人脸检测和人脸识别两个模型也就是retinaface和arcface的部署和转换工作。
|