利用OpenCV进行人脸对齐

2019-11-11 13:33:41 浏览数 (1)

来源:OpenCV团队

人脸对齐,即根据图像中人脸的几何结构对图像进行仿射变换(旋转、缩放、平移等),将人脸变换到一个统一的状态。人脸对齐是人脸识别的一个重要步骤,可以提升人脸识别的精度。

根据人脸关键点进行对齐是人脸对齐的一种方法。下图显示了人脸检测和5点人脸关键点检测的结果。

图1

进行人脸对齐后:

图2

OpenCV中的一个函数estimateAffine2D()可以用来估计最优的仿射变换矩阵。

函数返回2x3仿射变换矩阵。以人脸对齐为例,输入参数from为图1中检测出的5个关键点的坐标,to为对齐的关键点位置坐标。对齐的关键点位置可以由训练数据计算得出。

OpenCV中的另一个函数warpAffine()对图像进行仿射变换。

以人脸对齐为例,src是输入图像(图1),dst是输出的对齐的人脸图像(图2b),M是2x3的仿射变换矩阵,dsize是要求的对齐人脸图像的大小。

图2可以用下面的函数来实现。

如果只需对齐眼睛,也可以通过OpenCV的函数getRotationMatrix2D()直接计算变换矩阵。

0 人点赞