三维点云语义地图 & TSDF

移动机器人三维语义地图构建技术研究——电子科大硕士论文 

语义信息提高机器人对周围环境的理解,能够识别环境中物体的类别、运动状态等,能使机器人完成更好的人机交互、导航定位功能。

目标检测模块提取语义信息。

语义SLAM:将深度学习(目标检测)融合进视觉slam的框架中,主要围绕SLAM,语义分割,语义建图三个方面进行研究。

视觉slam中,采用视觉里程计获得相机位姿,将获得的单帧点云坐标转换后即可获得在世界坐标系下的点云数据,保存这些点云数据就可得到点云地图。

点云语义地图是在点云地图的基础上增加了点云分割、语义提取和数据关联。

三维点云语义地图 & TSDF_第1张图片

 基于像素级别的语义分割缺少深度信息。

数据关联是指将分割出来的点云团和提取的语义信息(图像中物体的类别属性等)相匹配。

任意方向目标检测候选框:

三维点云语义地图 & TSDF_第2张图片

基于语义分割与点云融合的三维场景定位与重建——哈尔滨理工大学硕士论文

提取ORB特征,计算相机位姿,构建稀疏点云地图,再用TSDF模型建立三维点云地图。

TSDF:适合小场景的三维重建

(1)TSDF地图由一堆体素(LxWxH个小方块)构成,每个体素包含两个变量,tsdf值(用于重建表面,范围是(-1,1))和rgb信息(用于给重建表面贴上彩色纹理)。

(2)体素坐标系是整数,初始化一个TSDF地图,相当于初始化两个[0,L-1]x[0,W-1]x[0,H-1]的三维张量。

三维点云语义地图 & TSDF_第3张图片

 (3)在TSDF中随便选出一个体素x,需计算其tsdf值和rgb值。如图,白灰色的小方格表示TSDF地图中的各个体素。蓝色的三角形表示相机的视场范围。图中间有一条绿色的截线,表示一个物体的截面。深度相机的深度图可以显示物体截面的深度信息。我们要去计算体素x的sdf值和tsdf值,即sdf(x)和tsdf(x)。

三维点云语义地图 & TSDF_第4张图片

         首先,记体素x在TSDF地图上的坐标是(Vx,Vy,Vz),计算其在物理世界坐标系下的位置是P_{xwrd},然后计算体素x在相机坐标系下的位置P_{xcam}=RP_{xwrd}+T。根据相机成像模型,cam_{z}\left ( x \right )\cdot I_{x}=KP_{xcam}。K表示相机的内参数矩阵,I_{x}表示体素x投影在相机成像平面下的像素坐标,cam_{z}\left ( x \right )表示体素x相对于相机的深度。

         沿着相机的光心和体素x做一条直线(图中显示为深蓝色的粗线),这条线会与物体的截面有一个交点,这个交点记为P点,P点的深度记为d_{P}。记当前的深度图为D。在实际计算中d_{P}=D(I_{x}),那么体素x的sdf值就可以计算出来了:sdf(x)=d_{P}-d_{x}=D(I_{x})-cam_{z}(x).当sdf(x)>0表示体素x处于相机和物体表面之间,sdf(x)<0表示体素x位于物体表面之后,则体素x的tsdf值为tsdf(x)=max[-1,min(1,sdf(x)/t)]。t可以看做是阈值,当体素距离截面对应点P较近时,其tsdf值在[-1,1]之间,离截面非常近时,tsdf趋近于0,离截面非常远时,tsdf趋近于-1或1.

       初始化时设所有体素的tsdf值为1,相当于这个tsdf地图中没有任何表面。

(4)通过tsdf值找等值面,就是物体表面。

你可能感兴趣的:(深度学习,人工智能,神经网络)