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

投影矩阵介绍[通俗易懂]一般我们是将相机模型简化成针孔相机模型,那么相平面与相机坐标系之间的关系为:通常为了方便,会把相平面放在小孔与目标点之间。下面就介绍下相平面投影的三种不同方法。透视投影(perspectiveprojection)通过相似三角形(下图两个虚线三角形)可以得到下列关系:展开就是:这里x_h等为齐次坐标系坐标,X等为相机坐标系点,x等则为相平面上的透视投影点,可以看出,投影点的位置不仅仅是与X等有简单的缩放关系,还和Z成反比,Z越大投影点x等越小,这就

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

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

Image

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

Image

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

Image

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

透视投影(perspective projection)

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

Image

可以得到下列关系:

Image

展开就是:

Image

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

正交投影

Image

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

Image

展开为:

Image

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

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

Image

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

Image

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

Image

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

参考链接:

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

欢迎关注公众号OpenCV图像处理, 里面会定期分享视觉相关知识…

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

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/188146.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 帝国时代之国家崛起_崛起于帝国时代

    帝国时代之国家崛起_崛起于帝国时代01关系数据库帝国现在是公元2009年,关系帝国已经统治了我们30多年,实在是太久了。1970年,科德提出关系模型,1974年张伯伦和博伊斯制造出了SQL,帝国迅速建立起了统治。从北美到…

  • 异常处理三原则_异常状态

    异常处理三原则_异常状态DRF框架的默认异常处理设置如下:默认使用模块下的函数进行异常处理自定义异常处理可以自定义异常处理函数,在DRF框架默认异常处理函数的基础上,添加一些其他的异常处理,比如数据库处理1)自定

  • 网站被ddos攻击怎么办_服务器遭受攻击

    网站被ddos攻击怎么办_服务器遭受攻击网站遭遇DOS攻击一、事件背景   长假对于IT人员来说是个短暂的休整时期,可IT系统却一时也不能停,越是节假日,越可能出大问题,下面要讲述的就是一起遭受DOS攻击的案例。   春节长假刚过完,小李公司的Web服务器就出了故障。下午1点,吃完饭回来,小李习惯性的检查了Web服务器。Web服务器的流量监控系统显示下行的红色曲线,与此同时收到了邮件报警,可以判断服务器出现了状况

  • Spring Batch 之 Hello World教程

    Spring Batch 之 Hello World教程SpringBatch之HelloWorld教程本文我们基于springboot和springbatch实现一个简单helloworld入门批处理程序。如果你刚刚接触springbatch,这篇教程会让你花最短时间理解springbatch框架。SpringBatch框架介绍开始代码之前,我们先了解框架中的核心组件,见下图:批处理过程有Job组成,job是封装整…

  • 微信小程序+PHP 实现授权登录

    微信小程序+PHP 实现授权登录1.写wxml页面<!–前台页面,通过判断决定展示登录还是信息–><viewwx:if="{{isHide}}"><viewwx:if=

  • Windows注入与拦截(1) — DLL注入的基本原理「建议收藏」

    Windows注入与拦截(1) — DLL注入的基本原理「建议收藏」一.DLL注入技术的用途从前面的《Windows内存体系》系列文章中我们可以知道,在Windows系统中,每个进程都有自己私有的地址空间。当我们用指针来引用内存的时候,指针的值表示的是进程自己的地址空间的一个虚拟的内存地址。进程不能通过指针来引用其他进程地址空间的内存。因此,如果一个进程有缺陷会导致其引用和覆盖随机地址处的内存,那么这个缺陷的影响就会不会扩散到其他的进程。独立的地址空间有…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号