前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >投影矩阵介绍[通俗易懂]

投影矩阵介绍[通俗易懂]

作者头像
全栈程序员站长
发布2022-11-10 19:42:23
8890
发布2022-11-10 19:42:23
举报

大家好,又见面了,我是你们的朋友全栈君。

一般我们是将相机模型简化成针孔相机模型,

Image
Image

那么相平面与相机坐标系之间的关系为:

Image
Image

通常为了方便,会把相平面放在小孔与目标点之间。

Image
Image

下面就介绍下相平面投影的三种不同方法。

透视投影(perspective projection)

通过相似三角形(下图两个虚线三角形)

Image
Image

可以得到下列关系:

Image
Image

展开就是:

Image
Image

这里x_h等为齐次坐标系坐标,X等为相机坐标系点,x等则为相平面上的透视投影点, 可以看出,投影点的位置不仅仅是与X等有简单的缩放关系,还和Z成反比,Z越大投影点x等越小,这就解释了为什么相机拍摄的图片近大远小。

正交投影

Image
Image

正交投影可以理解是透视投影的一种极端情况,f趋近无穷大,f/Z趋近1,这时矩阵形式就写成:

Image
Image

展开为:

Image
Image

这里w为1. 可以看出,相平面上的点就是相机坐标系的点,简单粗暴,直接去掉了Z。这种投影方式没法反应近大远小的特点,所以就有了下面稍微复杂点的正交投影:缩放正交投影。

缩放正交投影(弱透视模型)

Image
Image

由于正交投影简化过猛,直接丢弃了Z,这里为了体现缩放又把Z加回来了,只不过这里的Z是个常值,比如一个三维的点云,可以将分母设为点云Z的均值,这样就实现了投影的缩放(依然保留了平行直线的关系)

Image
Image

另外值得一提的是,使用深度学习对3d 人脸进行预测时,通常使用的是弱透视模型,得到的head pose并不是相对拍摄的相机坐标系的,因为真实相机是透视投影模型,

Image
Image

上图左边a,b和c为人头相对相机坐标系的x轴做了平移,如果使用弱透视投影,投影的结果应该是右下角三张图,看起来人头都没旋转。。但是如果按照透视投影方法来投影,得到的就是右上三张图,如果要获取相对相机坐标系下人头的head pose,那么需要对yaw和pitch方向做下角度补偿。

参考链接:

https://www.cse.unr.edu/~bebis/CS791E/Notes/PerspectiveProjection.pdf

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022年9月28日 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 透视投影(perspective projection)
  • 正交投影
  • 缩放正交投影(弱透视模型)
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档