深度图像计算三维点云
在PCL的库函数中是有关于深度图到点云数据之间的转化的函数,所以这里首先说清楚深度图像与点云之间的关系,
1.深度图像(depth image)也叫距离影像(range image),是指将从图像采集器到场景中各点的距离(深度)值作为像素值的图像。获取方法有:激光雷达深度成像法、计算机立体视觉成像、坐标测量机法、莫尔条纹法、结构光法。它直接反映了景物可见表面的几何形状。
2.点云:当一束激光照射到物体表面时,所反射的激光会携带方位、距离等信息。若将激光束按照某种轨迹进行扫描,便会边扫描边记录到反射的激光点信息,由于扫描极为精细,则能够得到大量的激光点,因而就可形成激光点云。点云格式有*.ply ;*.pcd; *.txt等。点云的处理我们经常使用的开源库PCL,当然这里可以延伸一下,三维的CAD 文件数据也是可以填充点云形成不同角度的点云数据,这种CAD文件到点云之间的转化,经常用在binpicking,用于机械臂的抓取时,对模型点云生成各个角度的点云,以适应对不同场景中,种种姿态的匹配,
两者之间的关系:
深度图像经过坐标转换可以计算为点云数据,有规则及必要信息的点云数据也可以反算为深度图像数据。深度数据流所提供的图像帧中,每一个像素点代表的是在深度感应器的视野中,该特定的(x, y)坐标处物体到离摄像头平面最近的物体到该平面的距离。
对于深度图像主要集中在:深度图像的分割技术、深度图像的边缘检测技术、基于不同视点的多幅深度图像的配准技术、基于深度数据的三维重建技术、基于深度图像的三维目标识别技术、深度数据的多分辨率建模和几何压缩技术等等。在PCL中深度图像与点云最主要的区别在于,其近邻的检索方式不同,并且可以相互转换。
深度图像是物体的三维表示形式,一般通过立体照相机或者TOF照相机获取。如果具备照相机的内标定参数,可将深度图像转换为点云,所以以上的研究点也是点云的主要研究点
深度图转点云的计算过程主要是多视图几何的知识,其原理是根据内外参矩阵变换公式得到:
以上这个图是非常经典的针孔模型结构示意图,在相机标定这一章节都需要了解这个模型,具体的推导,可以百度相机标定的基本推导,我之前也写过,但是编辑的不太好看,,,
其中u,v为图像坐标系下的任意坐标点。u0,v0分别为图像的中心坐标。xw,yw,zw表示世界坐标系下的三维坐标点。zc表示相机坐标的z轴值,即目标到相机的距离。R,T分别为
外参矩阵的3x3旋转矩阵和3x1平移矩阵。
对外参矩阵的设置:由于世界坐标原点和相机原点是重合的,即没有旋转和平移,所以
因为相机坐标系和世界坐标系的坐标原点重合,因此相机坐标和世界坐标下的同一个物体具有相同的深度,即zc=zw.于是公式可进一步简化为
从以上的变换矩阵公式,可以计算得到图像点[u,v]T 到世界坐标点[xw,yw,zw]T的变换公式:
https://github.com/ros-perception/depthimage_to_laserscan
具体需要做实验说明
关注微信公众号,加入群聊
- 深度学习文章4:计算图像数据集的均值
- 三维数组 计算深度平均值
- 图像深度,计算图像所占内存大小
- 【深度学习】【caffe实用工具2】笔记24 Windows下【Caffe实用工具】之【计算图像均值】compute_image_mean的用法
- 深度 | AI芯片之智能边缘计算的崛起——实时语言翻译、图像识别、AI视频监控、无人车这些都需要终端具有较强的计算能力,从而AI芯片发展起来是必然,同时5G网络也是必然
- 随时更新———个人喜欢的关于模式识别、机器学习、推荐系统、图像特征、深度学习、数值计算、目标跟踪等方面个人主页及博客
- 深度学习与媒体计算① —— 图像分类 (CS231n)
- 个人喜欢的关于模式识别、机器学习、推荐系统、图像特征、深度学习、数值计算、目标跟踪等方面个人主页及博客
- 【视觉-三维视觉技术-术语篇】三深度图像,点云数据
- 深度学习文章4:计算图像数据集的均值
- 通过Kinect的深度图像数据计算三维点云
- 百度研发深度学习新算法 图像计算速度提至12倍
- 基于Kinect-OpenNI-OpenCV-OpenGL的环境三维重构 windows vs2008 深度彩色图像
- 通过Kinect的深度图像数据计算三维点云
- 深度学习文章3:将自己的图像数据转换成caffe需要的db(leveldb/lmdb)文件
- 图像相似度计算
- 图像处理之高斯一阶及二阶导数计算
- 深度图像特征在推荐和广告中的应用(二)
- .net中GPU并行计算版函数图像生成器
- 浅谈二维和三维图像数据