《武汉工程大学学报》  2018年04期 446-450   出版日期:2018-08-23   ISSN:1674-2869   CN:42-1779/TQ
三维重建中线段匹配方法的研究



随着信息技术的迅猛发展,三维重建在许多领域有越来越多的应用,如文化遗产保护、文物研究、视频监控、动画电影制作、医学图像处理以及虚拟现实等[1-2]。在计算机视觉中[3-4],基于图像的三维重建技术是根据场景的两张或两张以上的二维图像,由计算机自动计算并匹配场景的二维几何信息和深度信息,最后建立三维模型的过程。传统三维重建是基于点的特征提取与匹配[5-8],三维点云模型在缺少纹理的地方重建精度较差,三维线段模型能提供更充分的结构信息,反映场景的几何拓扑关系[9]。要生成一个基于线段的三维重建模型需要建立来自不同图片的二维线段的对应关系,线段匹配[10-11]指在两组线段中建立对应关系的过程。早期Schimid等[12]提出一种在三视图间自动进行线匹配的方法,在已知相机姿态信息的情况下,建立基于强度的点向线段匹配的对应关系。2005年Bay等[13]提出借助宽基线图像进行线段匹配的方法,通过计算任意相邻线段上像素点的颜色直方图(Hue, Saturation, Value,HSV)来完成,后来一种基于块的线段描述方法[14]被提出,该方法能快速得到亚像素级别直线的位置,但未考虑尺度变化的自适应性,会造成某些块过短从而线段无法被提取的现象。2009年,梯度均值-标准差描述子(mean-standard line deviation, MSLD)算法[15]被提出,该方法建立在梯度直方图基础上,在视角存在缺陷和光照有变化的情况下实验结果良好,但缺少几何属性做约束条件,当存在尺度变换时线段匹配准确率较低。Kim等[16]提出一种利用共面二维线段相交透视不变性的线段匹配方法,在线段交点处通过归一化交叉相关系数进行匹配,但未与建筑外观相结合,在进行多视图三维重建时模型表面会出现空洞现象。针对上述问题,本文将外观和几何约束相结合,利用直线提取 (line segment detector, LSD)算法[17]检测直线段。首先寻找相邻图片,然后在相邻图片间进行二维线段匹配,最后进行三维模型重建。1 线段检测技术LSD算法是一种能在线性时间内得到亚像素级准确度的直线段分割检测算法,将梯度方向作为判定像素点之间图像关系依据进行线段检测。该算法可分为6个步骤:1)图像缩放;2)梯度计算;3)梯度排序;4)梯度阈值;5)区域增长;6)矩形估计。首先计算每个像素点附近的线场角度,生成一个线场区域即单位向量域,其中所有向量都与通过基准点的水平线相切。该区域被分割为连通的若干部分,它们在一定的容忍度内有相同的水平线角度,这些连通的部分被称为水平线支撑区域。每个水平线支撑区域都是一个直线分割的备选区域,同时需要一个矩形与它对应,水平线支撑区域的主轴表示矩形的主方向。矩形中线场区域角度与矩形主方向在一定容忍度下保持一致的像素点称为对准点。统计出矩形区域像素个数以及对准点个数,通过判定准则判断水平线支撑区域是否为直线段。算法示意图如图1所示。2 寻找相邻图片已知一组图片集[I={I1,....IN}],通过处理后获得相机姿态信息的三维点坐标集合为[X={X1,...XK}],定义[Li={li1,...,lim}]是每张图片中二维线段集合,每个二维线段[lim]由两个端点[pim]、[qim]构成,[pim,qim∈R2]。理论上二维线段匹配需要遍历所有图片中的所有线段,但只有少数线段之间会存在潜在对应关系。在进行图片集拍摄过程中,保证每两张相邻图片有重叠的部分,即相邻图片中存在有对应关系的线段。当任意两张图片[Ii]与[Ij]进行二维线段匹配,其中下标i、j表示在图片集[I]中的第i张和第j张,如果三维点P同时存在于图片[Ii]与[Ij]中,则两张图片的相机拥有共同的视野,即两张图片有重叠部分。根据戴斯相似性系数(Dice similarity coefficient, DSC)[18],定义图片[Ii]与图片[Ij]相似性评分为:[SI(i,j)=2·Xi?XjXi+Xj, i≠j-∞] (1)相似性评分越高表示两张图片重叠的部分越多,通过筛选相似性评分得到与图片[Ii]相邻的图片集合:[Vi={j1,j2,...|SI(i,j)>0?x