脚本宝典收集整理的这篇文章主要介绍了Mask The Face,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
0 具体做法
code: MaskTheFace
- 通过人脸关键点检测模型,可以得到特定点的像素坐标({vec{x_1}, vec{x_2}, .., vec{x_n}})
- 找到口罩戴在脸上,特定点在口罩图像上的像素坐标({vec{y_1}, vec{y_2}, ..., vec{y_n}})
- 通过homography变换,将口罩“贴”在人脸图像上
1 透视投影: PErspective PRojection
介绍针孔相机模型前,我们需要对以下4个坐标系有所区分:
- 世界坐标系
- 相机坐标系
- 图像坐标系(and 归一化图像坐标系)
- 像素坐标系
世界坐标系—> 相机坐标系的转换,涉及到相机外参(R)和(T)
相机坐标系—> 图像坐标系的转换,涉及到相机内参(f)
图像坐标系—> 像素坐标系的转换,设计到相机内参(s_x、s_y、s_theta、o_x、o_y)
1.1 针孔相机模型
假设相机坐标系下点P的坐标是([X, Y, Z]),对应像平面上的点是(p = [x, y]),焦距为f,根据相似三角形可以得到从相机坐标系到图像坐标系的变换。(还没到像素坐标系)
[ be
gin{aligned}
left{begin{array}{l}
frac{f}{Z} =frac{x}{X} \
frac{f}{Z}=frac{y}{Y} \
end{array}right.
Rightarrow
left{begin{array}{l}
x=f cdot frac{x}{Z} \
y=f cdot frac{Y}{Z}
end{array}right.\
end{aligned}
]
[begin{aligned}
Zleft[begin{array}{l}
x \
y \
1
end{array}right] &
amp;=left[begin{array}{lll}
f & 0 & 0 \
0 & f & 0 \
0 & 0 & 1
end{array}right]left[begin{array}{l}
X \
Y \
Z
end{array}right]
end{aligned}
]
用齐次坐标系表示,可以写成下面的形式:
1.2 各坐标系的变换——相机内参和外参
相机外参是相机的刚体运动,体现在世界坐标系到相机坐标系的坐标变换。相机内参体现在相机坐标系到图像坐标系到像素坐标系的变换。这部分内容也可参考TUM的PPT。
参考资料:
《Multiview Geometry Chapter 3——Perspective Projection》(TUM)
2 对极几何
根据两组2D点估计相机运动,可以使用对极几何求解
根据两组3D点估计相机运动,可以使用迭代最近点ICP求解
下面这张PPT需要注意两点:
- (x_1)和(x_2)是归一化像平面上的坐标。
- 对于向量(u in R^{3}), 它的反称矩阵左乘一个向量,相当于它叉乘该向量。(右手法则)
[wide
hat{u}=left(begin{array}{ccc}
0 & -u_{3} & u_{2} \
u_{3} & 0 & -u_{1} \
-u_{2} & u_{1} & 0
end{array}right) in mathbb{R}^{3 times 3}]
[widehat{u} v=u times v
]
参考资料:
《Multiview Geometry Chapter 5——Reconstruction From Two Views: Linear AlgorIThms》(TUM)
3 单应性变换
上面第一张PPT的第一个公式可以用下面这幅图来解释。
参考资料:
《Multiview Geometry Chapter 5——Reconstruction from Two Views: Linear Algorithms》(TUM)
脚本宝典总结
以上是脚本宝典为你收集整理的Mask The Face全部内容,希望文章能够帮你解决Mask The Face所遇到的问题。
如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。