Opencv 人脸识别中的姿态校正

Opencv 人脸识别中的姿态校正,opencv,computer-vision,face-recognition,Opencv,Computer Vision,Face Recognition,我有一个人脸图像的数据集。对于数据集中的每一张脸,我都有一组66个2D点,这些点对应于我的脸标志(鼻子、眼睛、脸的形状、嘴巴) 所以基本上我有我的脸的形状,从我的图像的2D点 你知道我可以使用什么算法,可以旋转我的形状,使脸的形状是直的吗?假设平移角度为30度,我希望它旋转到30度,以便在平移角度上定位为0度。我已经说明了我想说的话 基本上,你可以考虑上面所示的图像轮廓,它们以2D表示。我想旋转第一个形状点,使它们看起来像第二个形状。形状由一组基本上是像素坐标的66个2D点组成。我所要做的就

我有一个人脸图像的数据集。对于数据集中的每一张脸,我都有一组66个2D点,这些点对应于我的脸标志(鼻子、眼睛、脸的形状、嘴巴)

所以基本上我有我的脸的形状,从我的图像的2D点

你知道我可以使用什么算法,可以旋转我的形状,使脸的形状是直的吗?假设平移角度为30度,我希望它旋转到30度,以便在平移角度上定位为0度。我已经说明了我想说的话


基本上,你可以考虑上面所示的图像轮廓,它们以2D表示。我想旋转第一个形状点,使它们看起来像第二个形状。形状由一组基本上是像素坐标的
66个2D点组成。我所要做的就是找到这些
66个点中每个点的对应关系,以便新形状在平移角度上以一定程度旋转。

根据您的问题,我可以假设您具有旋转参数(例如x,y中的度)或点对应关系(因为您有匹配点的数据库)。因此,您需要为图像对齐/配准应用或估计(并应用)二维相似性变换。另见对这一问题的答复:

从旋转角度到新的点位置:您可以定义二维旋转矩阵
R
,并使用它变换点坐标

从形状A和形状B之间的点对应到旋转:使用3个或更多匹配点估计2D相似性变换(图像对齐)

从旋转或点对应到扭曲图像:从相似性变换,使用整个图像网格的基础坐标变换映射图像值(考虑插值或非值)

(图片由丹尼斯·西马科夫提供)


其中大部分已经在OpenCV和MATLAB中实现。另请参见有关活动形状和形状的背景和相关方法(Tim Cootes页面包括二进制文件和背景材料)。

您知道每个2d点的深度吗?旋转看起来像这样的唯一原因是因为鼻子和嘴实际上在下颚线的前面。是否要旋转形状点坐标(即66个2D地标),以便获得正面形状(轮廓)或将图像(对应于这些2D点)扭曲为正面姿势?重新表述:是否要变换点坐标(“形状”)或扭曲图像强度值(“纹理”)。