1.人脸检测:首先使用人脸检测算法来检测图像中的人脸位置。
2.人脸关键点检测:对于每张检测到的人脸,使用人脸关键点检测算法来检测人脸中的关键点,如眼睛、鼻子、嘴巴等。
(项目中可以使用yolopose检测的人脸区域关键点来替代上面2步)
3.计算旋转角度:根据检测到的关键点位置,计算人脸的旋转角度。常见的方法是通过计算眼睛关键点的斜率来确定人脸的倾斜角度。可以使用反正切函数来计算斜率。
4.旋转校正:根据计算得到的旋转角度,对图像进行旋转校正。可以使用OpenCV库中的旋转函数(warpAffine函数)来实现。
5.人脸裁剪:根据旋转校正后的图像,可以根据关键点位置或预定义的尺寸来裁剪出对齐后的人脸图像。
在对比旋转矫正和仿射变换矫正的效果后,发现这两种方法对于倾斜人脸的矫正效果尚可,但是对于侧脸的矫正效果不佳。针对侧脸的矫正方法,查询到的信息中以3D人脸矫正(人脸建模方法)较多。
CVPR2020 | 反传统的无监督人脸旋转方案:旋转-渲染
核心就是通过单张图像和3D人脸建模,渲染从任意角度旋转到当前角度的带遮挡伪影和瑕疵的人脸,从而和原图构建训练数据对。其构造过程用到了两次人脸纹理获取,三维空间旋转和渲染。
论文的亮点在于:
无监督(自监督)的人脸旋转框架,摆脱多视角数据。
大数据集MegaFace的人脸识别效果提升。
论文:https://arxiv.org/pdf/2003.08124.pdf