深度相机生成点云数据的原理

深度相机生成点云数据的原理

2019年8月4日 16:26:40

原理

RGB-D 图像中的rgb图片提供了像素坐标系下的x,y坐标,而深度图直接提供了相机坐标系下的$Z$坐标,也就是相机与点的距离。

根据 RGB-D 图像的信息和相机的内参,可以计算出任何一个像素点在相机坐标系下的坐标。

根据 RGB-D 图像的信息和相机的内参与外参,可以计算出任何一个像素点在世界坐标系下的坐标。

相机视野范围内,相机坐标系下的障碍物点的坐标,就是点云传感器数据,也就是相机坐标系下的点云数据。点云传感器数据可以根据 RGB-D 图像提供的坐标与相机内参算出来。

所有世界坐标系下的障碍物点的坐标,就是点云地图数据,也就是世界坐标系下的点云数据。点云地图数据可以根据RGB-D 图像提供的坐标与相机内参和外参算出来。

点云传感器数据-相机坐标系下的点云数据

相机坐标系下的点云数据是根据rgb图像提供的像素坐标系下的x,y坐标(即公式中的u,v)和相机内参就能求出相机坐标系下的$X$,$Y$坐标值。同时深度图直接提供相机坐标系下的$Z$坐标值。进而得到相机坐标系下的坐标$P=\begin{bmatrix}
X\
Y\
Z
\end{bmatrix}$,相机坐标系下的障碍物点的坐标,就是点云传感器数据,也就是相机坐标系下的点云数据。

相机坐标系$P$与像素坐标系$P_{uv}$下的点的坐标的关系公式:
$$
ZP_{uv}=Z\begin{bmatrix}
u\
v\
1
\end{bmatrix}=\begin{bmatrix}
f_x&0&c_x\
0&f_y&c_y\
0&0&1
\end{bmatrix}\begin{bmatrix}
X\
Y\
Z
\end{bmatrix}=KP
$$
将上式整理后的具体求解公式如下:
$$
X=Z(u-c_x)/f_x\
Y= Z(v-c_y)/f_y\
Z=d
$$
一般来说,公式中点在相机坐标系下的$Z$值就是相机测出的深度值$d$,即就是真实点到相机平面的距离。如果不是可以加倍数补偿。

如果在对应点的位置再加入彩色信息就能够构成彩色点云。

点云地图数据-世界坐标系下的点云数据

根据世界坐标系到像素坐标系下点的坐转换公式:
$$
ZP_{uv}=Z\begin{bmatrix}
u\
v\
1
\end{bmatrix}=KP=K\begin{bmatrix}
X\
Y\
Z
\end{bmatrix}=K(R\begin{bmatrix}
X_w\
Y_w\
Z_w
\end{bmatrix}+t)\或者\ZP_{uv}=Z\begin{bmatrix}
u\
v\
1
\end{bmatrix}=KP=K\begin{bmatrix}
X\
Y\
Z
\end{bmatrix}=KT\begin{bmatrix}
X_w\
Y_w\
Z_w\
1
\end{bmatrix}(隐含齐次坐标转非齐次坐标)
$$

$$
K=\begin{bmatrix}
f_x&0&c_x\
0&f_y&c_y\
0&0&1
\end{bmatrix}
$$

上述描述了世界坐标系$P_w$到像素坐标系$P_{uv}$下的点的坐标关系。因此这里利用上式,输入像素坐标$[u,v]$和深度$Z$之后,就可以求得世界坐标系下点的坐标$p_w$,所有世界坐标系下的障碍物点的坐标,就是点云地图数据。

深度图能够直接提供相机坐标系下某个点的$Z$坐标值,作为式子中的$Z$值。rgb图提供了像素坐标系下点的坐标$P_{uv}=[u,v]$。

根据内参公式就可以计算出该点在相机坐标系下的三维坐标$P=[X,Y,Z]$。再根据有相机的齐次变换矩阵$T$或者旋转矩阵和平移向量$R,t$,就可以求出该点在世界坐标系下的三维坐标$P_w=[X_w,Y_w,Z_w]$。$P_w=[X_w,Y_w,Z_w]$就是在世界坐标系下标定的点云。也就是点云地图。

总结:根据RGBD图求解点云地图数据,就是将像素坐标系下点的坐标$P_{uv}=[u,v]$和相机坐标系下的点的$Z$坐标值代入公式求出在世界坐标系下的三维坐标$P_w=[X_w,Y_w,Z_w]$,$P_w$就是最终要求的世界坐标系的点云。根据上式一旦确定了相机内参矩阵K和外参旋转矩阵R和平移矩阵t,就可以根据RGBD图像完成世界坐标系下的点云生成。

如果设定世界坐标系和相机坐标系是重合的,即没有旋转和平移,这时实质就是以相机坐标系建立的点云。这时相机坐标系和世界坐标系的相对位姿的旋转矩阵R就为单位矩阵位移向量t就是零向量

说明:

这里提到了要根据相机的位姿将所有像素的坐标在相机坐标系下转换到世界坐标系下。这个过程只有在想要建立周围环境的点云地图时才是必不可少的,因为要先建立整个环境的点云就需要点云的坐标系是静止的。如果不使用相机位姿也可以建立以相机坐标系为参考的点云数据,但是此时的点云信息就只能显示相机所视范围内图片的点云数据,所有点都是相对于相机而言的,一旦变换相机位置,将重新建立相机所视范围内图片的点云数据,因为此时点云坐标系都变了,之前的点云数据不再有意义。如果要使用多张图片生成点云那么就要把像素转化到世界坐标系中。

参考资料

《机器人学、机器视觉与控制》

https://www.cnblogs.com/gaoxiang12/p/4652478.html

http://www.cnblogs.com/cv-pr/p/5719350.html

原文地址:https://www.cnblogs.com/sxy370921/p/11631576.html

时间: 2024-08-08 07:33:45

深度相机生成点云数据的原理的相关文章

深度相机的仿激光数据创建地图--24

原创博客:转载请表明出处:http://www.cnblogs.com/zxouxuewei/ 前提: 1.本教程确保你已经成功安装了kinect 或者xtion深度相机的驱动,能够正常使用.驱动安装可参考我的博客http://www.cnblogs.com/zxouxuewei/p/5271939.html 2.你已经具有一台能够手动或者自动移动的平台,将你的深度相机真确安装在移动平台上.(如下图片是我自己制作的移动平台,以后会对接口做详细的描述) 一.使用kinect深度相机将点云数据转换为

深度相机哪家强?

随着机器视觉.自动驾驶.机器人的火爆,采用深度相机采集环境的深度信息然后进行物体识别.环境建模等越来普遍:相对于传统2D相机,3D相机增加了一维的深息,因而,能够更好的对真实世界进行描述:在许多领域如安防.监控.机器视觉.机器人等,拓展了更多的可能:如自动驾驶中的物体识别和障碍物检测,工业中散乱码放物体的识别.分拣.拆垛.码垛,物流场景中物体的货架抓取等等. 深度相机,顾名思义,指的是可以测量物体到相机距离(深度)的相机,如微软的Kinect, Kinect 2, Intel 的 RealSen

SDN与NFV技术在云数据中心的规模应用探讨

Neo 2016-1-29 | 发表评论 编者按:以云数据中心为切入点,首先对SDN领域中的叠加网络.SDN控制器.VxLAN 3种重要技术特点进行了研究,接下来对NFV领域中的通用服务器性能.服务链两类关键问题展开具体分析.最后,阐述了前期开展的SDN/NFV技术试验工 作进展及相关结论,并对VDC应用产品进行了展望. 1 引言 伴随着云计算技术的兴起,数据趋于大集中,传统电信系统网络架构成为阻碍云数据中心发展的巨大桎梏.为满足数据中心在云计算环境下的虚拟网络资源调度和共享需求,未来的数据中心

(项目实战)大数据Kafka原理剖析及(实战)演练视频教程

38套大数据,云计算,架构,数据分析师,Hadoop,Spark,Storm,Kafka,人工智能,机器学习,深度学习,项目实战视频教程 视频课程包含: 38套大数据和人工智能精品高级课包含:大数据,云计算,架构,数据挖掘实战,实时推荐系统实战,电视收视率项目实战,实时流统计项目实战,离线电商分析项目实战,Spark大型项目实战用户分析,智能客户系统项目实战,Linux基础,Hadoop,Spark,Storm,Docker,Mapreduce,Kafka,Flume,OpenStack,Hiv

深度学习容器云获4000万融资,人工智能激活企业云市场

2017年3月,"人工智能"被首次写入<政府工作报告>.报告指出要加快培育壮大新兴产业,全面实施战略性新兴产业发展规划,加快新材料.人工智能.集成电路.生物制药.第五代移动通信等技术研发和转化,做大做强产业集群.随后,多家国内人工智能上市公司涨停. 自去年AlphaGo大战韩国世界级旗手李世石以来,全球就掀起了人工智能60年历史上又一波热潮.2016年,Facebook.Amazon.谷歌.IBM和微软结成史上最大人工智能联盟轰动业界,IBM发布了百年历史上第三个品牌愿景&

网站统计中的数据收集原理及实现

转载自:http://blog.sina.com.cn/s/blog_62b832910102w5mx.html Avinash Kaushik将点击流数据的获取方式分为4种:log files.web beacons.JavaScript tags和packet sniffers,其中包嗅探器(packet sniffers)比较不常见,最传统的获取方式是通过WEB日志文件(log files):而beacons和JavaScript是目前较为流行的方式,Google Analytics目前就

网站统计中的数据收集原理及实现(share)

转载自:http://blog.codinglabs.org/articles/how-web-analytics-data-collection-system-work.html 网站数据统计分析工具是网站站长和运营人员经常使用的一种工具,比较常用的有谷歌分析.百度统计和腾讯分析等等.所有这些统计分析工具的第一步都是网站访问数据的收集.目前主流的数据收集方式基本都是基于javascript的.本文将简要分析这种数据收集的原理,并一步一步实际搭建一个实际的数据收集系统. 数据收集原理分析 简单来

大数据行业人士必知10大数据思维原理

大数据思维原理是什么?简单概括为10项原理,当样本数量足够大时,你会发现其实每个人都是一模一样的. 一.数据核心原理 从"流程"核心转变为"数据"核心 大数据时代,计算模式也发生了转变,从"流程"核心转变为"数据"核心.Hadoop体系的分布式计算框架已经是"数据"为核心的范式.非结构化数据及分析需求,将改变IT系统的升级方式:从简单增量到架构变化.大数据下的新思维--计算模式的转变. 例如:IBM将使用以

006-网站统计中的数据收集原理及实现

网站数据统计分析工具是网站站长和运营人员经常使用的一种工具,比较常用的有谷歌分析.百度统计和腾讯分析等等.所有这些统计分析工具的第一步都是网站访问数据的收集.目前主流的数据收集方式基本都是基于javascript的.本文将简要分析这种数据收集的原理,并一步一步实际搭建一个实际的数据收集系统. 数据收集原理分析 简单来说,网站统计分析工具需要收集到用户浏览目标网站的行为(如打开某网页.点击某按钮.将商品加入购物车等)及行为附加数据(如某下单行为产生的订单金额等).早期的网站统计往往只收集一种用户行