1.一种机器人单目半稠密地图三维重建方法,其特征在于,包括:S1、以机器人搭载单目相机采集的图像作为关键帧,计算关键帧深度,形成半稠密深度图;关键帧与半稠密深度图相结合得到半稠密点云数据;
S2、提取关键帧边缘线段,每个边缘线段为多个像素构成的像素序列;
S3、将关键帧中的每个边缘线段拟合为第一3D线段,构成第一3D线段集合LD;
S4、对同一关键帧中的第一3D线段集合进行聚类,聚类后每个3D线段簇再次拟合为第二3D线段,用关键帧中的第二3D线段表示图像细节,简化ORB‑SLAM得到的半稠密点云数据,实现半稠密地图三维重建。
2.根据权利要求1所述的机器人单目半稠密地图三维重建方法,其特征在于,所述步骤S2采用边缘绘制算法提取关键帧边缘线段。
3.根据权利要求1所述的机器人单目半稠密地图三维重建方法,其特征在于,所述步骤S3对关键帧中的边缘线段拟合为第一3D线段,包括如下步骤:S31、设关键帧中的第m个边缘线段lsm由n个像素点组成,对应的像素序列为lsm={p1,p2,...,pn},每个像素点的坐标为(xp,yp,Zp),其中(xp,yp)为像素点在图像坐标系中的坐标,Zp为所述像素点在半稠密深度图中的深度;
初始化两个空像素集合pixels和outliers,pixels用于存放待拟合像素点,outliers用于存放当前离群的像素点;
S32、根据lsm中的前B个像素拟合直线:首先取lsm前B个像素,基于坐标(xp,yp)在图像坐标系OXY内拟合一条直线lim;对lsm建立局部坐标系p1xz,所述局部坐标系的原点为lsm中第一个像素点p1,x轴正向为第一个像素点p1指向最后一个像素点pn的射线 z轴正向为p1处的深度方向;基于坐标(Dp,Zp)在局部坐标系p1xz内拟合一条直线lde作为初始线段,其中Dp为像素点在局部坐标系x轴的值;
S33、计算lsm其余像素到两条直线lim和lde的距离:分别计算像素序列lsm中的第B+k个像素点到lim和lde的距离dim和dde;如果dim
S34、判断是否出现B个连续的像素是离群值,若出现连续B个连续的像素是离群值,将pixels集合中的像素分别在图像坐标系OXY和局部坐标系p1xz中拟合新的初始直线lim′和lde′,再以lim′和lde′确定的平面上以像素深度值Zp和像素到x轴的距离Dp再次进行拟合,得到边缘线段lsm的第一3D线段ldm,将ldm加入LD集合,并清空outliers和pixels,跳转至步骤S31进行下一个边缘线段lsm+1的拟合。
4.根据权利要求3所述的机器人单目半稠密地图三维重建方法,其特征在于,采用总体最小二乘法进行直线拟合。
5.根据权利要求1所述的机器人单目半稠密地图三维重建方法,其特征在于,所述步骤S4具体包括:
S41、将LD中第一个3D线段ld1作为初始线段簇C1,令当前线段簇总数H=1;从LD中第w个
3D线段ldw开始,按如下步骤S42‑S44进行聚类;w=2,3,…,W,W为当前关键帧中第一3D线段的总数;
S42、令h=1;
S43、计算ldw与线段簇Ch中第一个3D线段之间的角度测度α和距离测度d:d=min(d1,d2)
其中pi、qi分别为ldw的两个端点;pi+1、qi+1分别为线段簇Ch中第一个3D线段的两个端点;
S44、如果α<λα且d<λd,则将ldw加入线段簇Ch中,令w加一,跳转至步骤S42进行下一个线段的聚类;否则,如果h
S45、滤除线段数小于3的线段簇;
S46、对于剩余的每个线段簇,将其中的3D线段拟合为一个新的3D线段作为表示该簇的第二3D线段。
6.根据权利要求1所述的机器人单目半稠密地图三维重建方法,其特征在于,所述步骤S46具体包括:
对于线段簇Ch,以Pe表示包含该簇中3D线段所有端点的集合,对Pe中所有点组成的矩阵进行SVD分解得到向量 获取平行 并通过Pe的质心的3D直线l3D;将Pe中所有的点投影到l3D上,以相距最远的两个投影点为端点确定一条3D线段Seg3D,Seg3D即为表示线段簇Ch的第二3D线段。
7.一种机器人单目半稠密地图三维重建系统,其特征在于,包括:半稠密点云数据获取模块,用于以机器人搭载单目相机采集的图像作为关键帧,计算关键帧深度,形成半稠密深度图;关键帧与半稠密深度图相结合得到半稠密点云数据;
关键帧边缘线段提取模块,用于提取关键帧边缘线段,每个边缘线段为多个像素构成的像素序列;
第一3D线段集合构建模块,用于将关键帧中的每个边缘线段拟合为第一3D线段,构成第一3D线段集合LD;
第二3D线段获取模块,用于对同一关键帧中的第一3D线段集合进行聚类,聚类后每个
3D线段簇再次拟合为第二3D线段,用关键帧中的第二3D线段表示图像细节,简化ORB‑SLAM得到的半稠密点云数据,实现半稠密地图三维重建。