Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

融合梯度信息和邻域点云分布的3D线特征提取与配准

2021, SCIENTIA SINICA Informationis

Extraction and registration of 3D lines by fusing gradient information and neighboring point cloud distribution 缪永伟, 戴颖婷, 王海鹏, 刘复昌 and 王金荣 Citation: 中国科学: 信息科学 51, 2069 (2021); doi: 10.1360/SSI-2021-0009 View online: https://engine.scichina.com/doi/10.1360/SSI-2021-0009 View Table of Contents: https://engine.scichina.com/publisher/scp/journal/SSI/51/12 Published by the 《中国科学》杂志社 Articles you may be interested in A robust 3D point cloud skeleton extraction method SCIENTIA SINICA Informationis 47, 832 (2017); Deep learning based point cloud registration: an overview Virtual Reality & Intelligent Hardware 2, 222 (2020); A 3D Tracking and Registration Method Based on Point Cloud and Visual Features for Augmented Reality Aided Assembly System Journal of Northwestern Polytechnical University 37, 143 (2019); Accelerating DNN-based 3D point cloud processing for mobile computing SCIENCE CHINA Information Sciences 62, 212102 (2019); 3D shape classification based on convolutional neural networks fusing multi-view information SCIENTIA SINICA Informationis 49, 436 (2019); 中国科学 : 信息科学 2021 年 第 51 卷 第 12 期: 2069–2088 SCIENTIA SINICA Informationis 论文 融合梯度信息和邻域点云分布的 3D 线特征提取 与配准 缪永伟1,2* , 戴颖婷1 , 王海鹏1 , 刘复昌2 , 王金荣2 1. 浙江理工大学信息学院, 杭州 310018 2. 杭州师范大学信息科学与技术学院, 杭州 311121 * 通信作者. E-mail: ywmiao@zstu.edu.cn 收稿日期: 2021–01–11; 修回日期: 2021–03–21; 接受日期: 2021–05–05; 网络出版日期: 2021–12–17 国家自然科学基金 (批准号: 61972458) 和浙江省自然科学基金 (批准号: LY20F020017) 资助项目 摘要 针对传统点云场景重建中由于场景区域缺乏纹理、场景物体遮挡等导致重建结果不准确的局 限性, 借助场景包含的几何特性和线结构信息, 有效利用 RGB-D 数据的梯度信息和邻域点云分布信 息, 本文提出了一种针对点云场景的 3D 线特征提取、匹配和配准方法. 首先, 通过场景 RGB 图的梯 度信息确定梯度方向相似的 3D 直线段支持域. 然后, 借助场景深度图呈现的邻域几何特性, 根据当前 点与其邻近点之间的分布关系判断点云中的直线型边界线点云和直线型折边线点云并拟合得到场景 3D 线特征. 其次, 以点云场景提取的 3D 线特征为轴线, 构造等厚度同轴圆柱区域作为 3D 线段支持 域, 并统计支持域中各层圆柱壁内点云梯度作为描述符实现 3D 线特征匹配. 最后, 利用基于线 – 线 的迭代最近线配准算法, 迭代计算得到帧间场景的旋转与平移, 从而实现帧间点云场景的高效配准. 实 验结果表明, 与已有的点云场景线特征提取及点特征配准方法比较, 本文直接基于线特征的方法配准 效率高、计算量小、配准精准, 方法具有较强的鲁棒性. 关键词 1 点云场景, 3D 线特征, 线特征提取, 线特征配准, 三维重建 引言 在 3D 计算机视觉和三维重建中, 离散点云数据由于其数据获取容易、能有效表示三维形状或复 杂场景、无需维护拓扑连接关系等优点得到广泛应用 [1] . 根据获得的场景点云数据 (包括 RGB-D 数 据), 结合 SLAM 重建框架 [2] , 能够重建出场景的 3D 数字化模型. 传统的点云场景重建主要基于点特征提取和配准实现, 如 Newcombe 等 [3] 提出了一种仅使用深 度图实现室内场景实时重建的方法 KinectFusion, 但是由于该方法使用固定体积的 TSDF (truncated 引用格式: 缪永伟, 戴颖婷, 王海鹏, 等. 融合梯度信息和邻域点云分布的 3D 线特征提取与配准. 中国科学: 信息科学, 2021, 51: 2069–2088, doi: 10.1360/SSI-2021-0009 Miao Y W, Dai Y T, Wang H P, et al. Extraction and registration of 3D lines by fusing gradient information and neighboring point cloud distribution (in Chinese). Sci Sin Inform, 2021, 51: 2069–2088, doi: 10.1360/SSI-2021-0009 c 2021 《中国科学》杂志社 ⃝ www.scichina.com https://engine.scichina.com/doi/10.1360/SSI-2021-0009 infocn.scichina.com 缪永伟等: 融合梯度信息和邻域点云分布的 3D 线特征提取与配准 signed distance fields) 模型表示场景, 其仅适合固定大小的室内小场景重建, 同时由于缺少回环检测和 全局优化, 容易导致误差累积而造成重建场景的漂移. Whelan 等 [4] 提出了一种适合于大中型场景三 维重建的方法 Kintinuous, 该方法在传统 KinectFusion 方法基础上进行扩展, 把固定体积的 TSDF 模 型随着相机运动进行移动, 从而能够实现大范围的室内场景重建. Whelan 等 [5] 进一步提出利用 Surfel 模型实时重建室内房间大小场景的方法 ElasticFusion, 该方法克服了 Kintinuous 中不支持来回扫描同 一片区域并进行数据融合的缺点. Nießner 等 [6] 提出了一种利用体素哈希技术节省显存空间的实时重 建方法 InfiniTAM. 利用 TSDF 模型表示, 该方法在重建场景时仅对场景表面划分网格进行表面数据 的实时更新, 而不是将整个空间都划分成网格, 从而提高了重建方法的效率. Dai 等 [7] 提出了一种能 够有效减少优化变量数目的实时重建方法 BundleFusion, 该方法在场景建图时将全部帧划分成等大小 的块, 先对块内进行局部位姿优化, 再对所有块进行全局位姿优化以加速优化过程. 上述方法通常需 要提取 2D 图像中的离散特征点, 并通过前后帧图像之间的特征点匹配建立帧间对应关系, 从而进行 特征跟踪或配准对齐. 然而, 由于 2D 图像提取的特征点数量通常规模较大, 其特征描述子计算和帧间 匹配比较耗时; 另一方面, 如果图像质量较低、场景受到遮挡或者区域纹理较少, 通常难以提取出足够 多的场景有效特征点, 从而导致帧间匹配失效、位姿估计错误, 使得场景重建不准确. 为了克服这些困难, 基于线特征的 SLAM 重建得到研究者的普遍关注, 如 Zhang 等 [8] 提出了一 种以直线为特征的视觉 SLAM 重建方法 Line-SLAM, 该方法使用 PnL (perspective-n-line) [9] 进行相 机位姿估计, 并将线特征重投影误差定义为 2D 线段两个端点到预测 3D 直线的距离, 再利用基于图 优化的 SLAM 框架构建三维线状环境地图. Zhou 等 [10] 提出的 Struct-Line-SLAM 则使用建筑结构线 作为定位和建图的特征. 与其他线特征不同, 建筑结构线编码全局方向信息, 其随着时间的推移限制 了相机的航向, 同时消除了累积的方向误差, 从而减少了位置漂移. Pumarola 等 [11] 提出了一种点线 结合的重建方法 PL-SLAM, 该方法在传统 SLAM 重建基础上加入了线特征提升其在弱纹理环境中的 运行性能, 并通过 2D 线段端点逼近预测的 3D 直线投影点以最小化直线的重投影误差来估计相机位 姿. Li 等 [12] 提出了一种基于结构线特征的方法 Struct-PL-SLAM, 该方法使用结构线编码全局定位信 息, 并利用有效的几何约束以消除建图时累积的方向误差, 从而有助于提高 SLAM 重建的精度. 然而, 由于传统基于线特征的 SLAM 方法仅适用于单目或双目图像数据而并不适用于 RGB-D 扫描数据, 同 时上述方法使用的线特征提取及匹配均是基于 2D 图像的线特征提取及匹配, 并利用 PnL 的各种变 形估计相机位姿得到 3D 线特征, 这些方法中并没有涉及到场景 3D 线特征的直接提取与匹配, 也未 考虑 3D 线特征的直接配准. 不同于激光点云的线特征提取 [13∼15] , 场景 RGB-D 扫描数据往往由于点 云精度低、法线杂乱无序、点云分布较稀疏等原因, 难以使用 RANSAC (random sample consensus) [16] 优化扫描点法线方向并拟合相同法线方向的离散点为直线, 从而导致传统适用于激光点云数据的特征 提取方法并不适用于场景 RGB-D 数据; 且传统 RGB-D 场景重建中通常采用线段端点、线段中点或 者两条匹配线段对应点作为输入并采用基于点的配准策略 [17, 18] , 因而亟待研究者提出针对点云场景 (或 RGB-D 数据) 的 3D 线特征描述及鲁棒提取, 同时需要相应考虑点云场景中 3D 线特征的直接匹 配和配准方法. 为了有效利用点云数据所包含的梯度信息和邻域点云分布信息, 本文提出了一种针对场景 RGBD 数据 (或者点云场景) 的 3D 线特征提取、匹配和配准方法. 其主要贡献如下: (1) 提出一种点云场景 中 3D 线特征的鲁棒提取方法, 该方法融合场景数据的 RGB 梯度信息和点云分布特性以有效提取场 景的 3D 线特征; (2) 提出一种结合 3D 线段几何属性和邻域点分布的圆柱型线段支持域构建方法, 并 基于 3D 线段支持域提出相应匹配算法以实现 3D 线特征的直接匹配; (3) 提出一种直接通过 3D 线特 征所在直线计算线特征间距离的基于线 – 线的迭代最近线 (line-to-line iterative closest line, line-to-line 2070 https://engine.scichina.com/doi/10.1360/SSI-2021-0009 中国科学 : 信息科学 第 51 卷 第 12 期 RGB image Preprocessing 3D line feature matching ED edge detection Cylindar supporting region descriptor Depth image 3D line feature extraction Extracting points of boundary lines Extracting points of folded edge lines Clustering/ fitting 3D line feature registration Line-to-line ICL 图 1 (网络版彩图) 本文方法流程 Figure 1 (Color online) Flow diagram of the proposed method ICL) 配准算法, 以实现点云场景线特征的高效配准. 其余章节安排如下: 第 2 节给出了本文方法的流程; 第 3 节阐述了点云场景 3D 线特征的鲁棒提 取; 第 4 节介绍了点云场景 3D 线特征的匹配与配准; 第 5 节进行了实验讨论与结果分析; 第 6 节对 论文进行了总结与展望. 2 本文方法流程 在传统基于点特征的场景重建中, 考虑到因场景区域缺乏纹理、场景内物体遮挡而导致重建结果 不准确的局限性, 借助点云场景包含的几何特性和线结构信息, 本文提出了一种针对点云场景的 3D 线特征提取方法, 并基于 3D 线特征的圆柱型支持域及特征描述符进行 3D 线特征的匹配, 最终利用 基于线 – 线的迭代最近线配准算法实现场景点云数据的高效配准. 本文方法流程如图 1 所示, 以下各 节将对方法的各主要环节进行详细介绍. 3 点云场景 3D 线特征提取 为了高效提取点云场景中含有的大量 3D 线特征, 避免传统的基于图像匹配方法出现的几何信息 缺失 [19, 20] 、基于 2D 与 3D 投影方法导致的投影误差较大 [21, 22] 以及基于点云方法中由于平面分割 导致线特征提取计算量过大 [14, 23] 等局限性, 本文考虑采用 2D 信息与 3D 信息相融合的策略提取点 云场景的 3D 线特征. 一般地说, 场景的二维 RGB 图像通常包含两类 2D 线特征 [24] : (1) 灰度边缘线, 是指图像中局部不连续的特征或者灰度值发生突变的位置, 即梯度最大的位置; (2) 纹理线, 是指含有 相同纹理的相邻区域在不同尺度下的粗糙度突变或相邻区域的方向纹理之间的方向性突变. 相比较而 2071 https://engine.scichina.com/doi/10.1360/SSI-2021-0009 缪永伟等: 融合梯度信息和邻域点云分布的 3D 线特征提取与配准 言, 三维点云场景中通常包含两类 3D 线特征 [13, 14] : (1) 边界线, 是指表面轮廓 (facade outlines)、遮挡 轮廓 (occluding contours)、跳高线 (height jump lines) 等各类平面或曲面的轮廓边缘; (2) 折边线, 是 指平面相交线 (plane intersection lines)、尖锐特征线 (sharp feature lines)、折线 (breaklines) 等不同平 面或曲面之间的相交线. 需要注意的是, 这里的特征线可以是直线也可以是曲线, 而本文的 3D 线特征 特指直线段. 针对输入的场景 RGB-D 数据 (或点云数据), 本文提出的 3D 线特征提取和检测方法包含两个步 骤, 即基于 2D 梯度信息的边缘检测预处理以及基于 3D 几何信息的边界线点云与折边线点云判断. 3.1 场景边缘检测预处理 在点云场景 3D 线特征提取中, 采样点的法向起到重要作用. 在法向计算中, 可以通过物体/场景 表面进行局部平面拟合, 并通过计算局部平面法线得到采样点法线 [25] . 由于考虑到同一 3D 直线点集 中所有采样点的法线方向应近似相同, 从而在 3D 线特征提取时需要找到方向接近且共线的点并拟合 以提取场景的 3D 线特征. 然而, 受限于获取的点云数据精度, 导致 3D 直线上的采样点法线方向缺少 一致性, 即相邻采样点其法向偏差较大, 难以在点云中直接判断为直线点集. 与无序、不规则分布的散 乱点云不同, RGB 图像像素点呈均匀规则分布, 其梯度信息计算通常较精确, 在线特征提取中能准确 地获取梯度方向相似的直线拟合区域 [26] , 因而本文采用二维 RGB 图像的梯度信息找到对应的直线拟 合区域并辅助 3D 线特征的提取. 由于场景 RGB 图像中的物体边缘通常是连续的, 受 EDLines 方法 [27] 的启发, 本文使用边缘检 测算法确定直线拟合区域. 该方法以 RGB 图像的梯度局部峰值点为锚点 (anchor points), 这些锚点将 对应于场景边缘可能会覆盖的点, 在场景边缘检测时通过从一个锚点开始加入相邻点并绘制其整条边 缘, 从而有效提取干净、连续的边缘像素链. 具体地说, 首先利用 Sobel 梯度算子计算出场景数据 RGB √ 2 2 图像的梯度信息: 水平梯度 Gx 和垂直梯度 Gy , 其每个像素点的梯度值为 G = Gx + Gy . 如果水平 梯度较大, 即 Gx > Gy , 则假定垂直边缘穿过该像素; 否则, 假定是水平边缘穿过该像素, 而对于水平 边缘穿过的像素点, 与其上下相邻点的梯度值进行比较; 对于垂直边缘穿过的像素点, 则与其左右相邻 点的梯度值进行比较. 比较时, 如果该像素点的梯度值大于其两相邻像素点的梯度值一定的阈值 (该 阈值控制两个锚点之间间隔的像素点数目, 实验中将阈值设为 0), 则该像素点被标记为一个锚点. 通 过改变阈值可以调整锚点的数量, 阈值越低, 锚点越密集; 阈值越高, 锚点越稀疏. 然后, 通过在锚点之 间绘制边来连接锚点生成完整的场景边缘像素链. 需要注意的是, 锚点只是边缘开始的位置, 并不意 味着每个锚点都包含在最终的边缘中, 因而需要根据穿过锚点的边缘方向检查 3 个近邻像素点, 并选 择梯度值最大的像素点作为下一个连接点. 一般来说, 如果一条水平边缘穿过锚点, 则将锚点向左或 者向右移动 (一般先左后右) 寻找下一个连接点, 此时只考虑当前点左侧或者右侧的 3 个最近邻点; 如 果一条垂直边缘穿过锚点, 则将锚点向上或者向下移动 (一般先上后下) 寻找下一个连接点, 此时只考 虑当前点上方或者下方的 3 个最近邻点, 然后选择梯度值最大的近邻点作为下一个连接点, 并继续该 移动过程直到当前像素点超出边缘区域 (即当前像素的梯度值为零), 或者遇到先前检测过的边缘点时 停止. 最后, 根据连续边缘点的梯度方向将场景边缘像素链分割成若干具有相似梯度方向且位置相邻 的像素点组成的连通区域, 各区域内边缘点梯度方向变化不超过阈值 τ = π/8 = 22.5◦ . 本文方法将各 连通域作为 2D 直线拟合区域, 以此找到对应的 3D 直线拟合区域并生成具有相同直线编号的场景子 点云, 后续将利用场景子点云的直线编号分别提取场景直线型边界线点云或场景直线型折边线点云. 2072 https://engine.scichina.com/doi/10.1360/SSI-2021-0009 中国科学 : 信息科学 第 51 卷 第 12 期 v N0 θi Ni u P S 图 2 (网络版彩图) 边界线点 Figure 2 3.2 (Color online) Sampling points of boundary lines 场景直线型边界线点云提取 作为点云场景边界线, 由于其一侧通常不包含点云数据点, 而另一侧则为点云数据点密集的三维 平面或曲面, 因而可以利用点云数据点及其 K- 邻域内的离散点分布均匀程度来判断是否为场景边界 点. 这里可以通过判断当前点与其邻域点连线向量之间的夹角直观地度量该均匀程度. 如果当前点与 其邻域点连线向量之间的最大夹角超过阈值, 当前点即为边界点, 反之则是内部点. 该阈值大小的设 置将决定场景边界线点云提取的效果, 阈值越大, 则获取的边界线形状愈尖锐, 所得到的采样点数目越 少; 反之则获取的边界线形状愈平缓, 所得到的采样点数目越多. 为了得到较完整的场景直线型边界 线点云, 经实验将阈值设为 45◦ 是合适的选择. 在提取场景边界线点云过程中, 本文利用最小二乘法 通过当前点 P 及其 K- 邻域点拟合出 P 点的局部切平面 S, 并将当前点 P 及其 K- 邻域点投影到切 平面上; 然后, 根据 P 点与其 K- 近邻点连线向量之间的最大夹角识别场景边界点, 即连线向量之间 的最大夹角大于阈值时, 本文认为当前点是边界点, 如图 2 所示. 3.3 场景直线型折边线点云提取 一般地说, 场景点云数据中仅包含平面点、弧面点、折边点 3 种类型的数据点 [13, 14] . 其中平面点 和弧面点用于上述的场景直线型边界线点云判断, 而折边点则是指两平面或曲面的交线上的点. 这 3 类采样点的点云法线分布通常呈现一定规律性, 我们可以利用当前点及其 K- 邻域内的离散点法向偏 差情况判断采样点的分类. 对于平面采样点, 其 K- 邻域内的邻域点法向基本相同, 即两两采样点的 法向偏差近似为零; 对于弧面点, 其 K- 邻域内的离散点法线方向偏差基本相同; 而对于折边点, 由于 其法线方向同时垂直于两相交平面或曲面, 当两相交面靠近折边线时其采样点法线方向通常会发生骤 变, 从而导致出现两个明显的法线方向偏差峰值. 因而, 在对当前点及其 K- 邻域内邻域点集合的两两 采样点法向偏差进行直方统计时, 平面点没有峰值, 弧面点有唯一的峰值, 而折边点则有两个峰值. 在场景直线型折边线点云提取中, 本文首先利用 PCA [28] 计算当前点 P 及其 K- 邻域点的法线 方向, 并从中找到与当前点法线 NP 夹角最大的邻近点法线 Nmax . 从而垂直平面法线方向可计算为 NV = NP × Nmax , 相应得到与局部平面、局部弧面或者折边线垂直且过当前点 P 的垂直平面 V . 然 后, 将当前点 P 及其 K- 邻域点的法线投影到垂直平面 V 上, 并根据这些法线投影的分布情况识别 场景点云的折边点. 如图 3 所示, 首先以当前点 P 为坐标原点, 其法线方向 NP 为 u 轴, 建立局部坐 标系 uw; 然后将其所有 K- 邻域点的法线均投影到局部坐标系 uw 所在的平面 V 上, 并把所有邻域 2073 https://engine.scichina.com/doi/10.1360/SSI-2021-0009 缪永伟等: 融合梯度信息和邻域点云分布的 3D 线特征提取与配准 NP NP NP P P P V V V w w w P P u u P u V V V w w w P P u P u u (a) (b) (c) 图 3 (网络版彩图) 折边线点. (a) 平面点, (b) 弧面点和 (c) 折边点 Figure 3 (Color online) Sampling points of folded edge lines. (a) A point on a plane; (b) a point on a curved surface; (c) a point on a folded edge 点法线投影均平移至局部坐标系原点 P, 再计算两两邻域采样点的法向偏差; 最后, 对所有邻域采样 点的法向偏差进行直方统计, 并根据直方图中的峰值数目判断当前点 P 的类型. 为了便于找到直方 图中的峰值, 这里采用拉伸直方图方法使得其峰值更为突出, 即对每个直方图元素 Hi 进行归一化, 并 计算直方均值 H̄ 和标准差 σ, 并判断 Hi′ = Hi − H̄ 与 σ 的大小, 若 Hi′ > σ 则认为 Hi 为一个峰值. 一般地说, 当前点 P 为折边点是指其邻域采样点的法向偏差直方图能找到两个峰值, 但由于受实际点 云获取精度的影响, 两张平面相交形成的可能并不是简单折边线, 而是具有一定宽度的微小折边弧面, 从而导致其邻域点的法向偏差直方图可能出现多个距离相近的峰值, 故对最终的点云类型判断结果造 成影响. 为了提高点云类型判断结果的准确性, 本文需要对当前采样点及其邻域点的法向偏差直方图 进行邻近峰值聚集后, 再判断其峰值数量. 在法向偏差直方图中, 首先沿横坐标方向找到之前判定的 第一个峰值元素 Hi 并设置容差 τ 以控制聚集的范围 (实验中 τ 设为 5). 然后, 从下标 i + τ 向下标 i 方向检查这个聚集中是否存在其他峰值元素, 如果存在则将该聚集中的所有峰值累加并作为新的峰 2074 https://engine.scichina.com/doi/10.1360/SSI-2021-0009 中国科学 : 信息科学 第 51 卷 第 12 期 值 Hi , 再继续沿着横坐标方向找到下一个峰值元素并检查聚集, 重复上述操作直到检查完直方图内所 有的聚集为止. 最后, 利用直方均值 H̄ 判断聚集后的峰值数量, 并判断当前点的归属. 此时 H̄ 表示聚 集后的新均值, 若 Hi > H̄ 或 α = Hi − H̄ < 0.2Hi , 则认为 Hi 为一个峰值. 如果直方图中找到两个峰 值, 则当前点 P 被确定为折边点. 3.4 场景 3D 线特征提取 场景 3D 线特征提取的目的是找到场景点云数据中的直线型边界线点云和直线型折边线点云, 并 将其分别拟合成直线段作为场景 3D 线特征. 经过前述步骤可以得到带有直线编号的场景边界线点云 和折边线点云. 然而, 由于光照投影、反射或折射等影响, 实际场景点云数据中往往混杂了距离实际场 景边界线或折边线较近的阴影线点云 [29] , 这些阴影线点云的存在将干扰后续的场景直线段拟合和 3D 线特征匹配, 因此这里需要通过对边界线点云或折边线点云进行聚类, 并根据类之间质心的欧氏距离 将场景边界线点云、折边线点云和场景阴影线点云分开. 由于场景的线段簇点云分布形状并不规则, 本文使用基于密度的 DBSCAN (density-based spatial clustering of application with noise) 聚类方法 [28] 实现线段簇点云聚类, 同时也可以滤除噪声点及离群点. 在场景 3D 线特征提取中, 本文首先利用 DBSCAN 聚类方法对具有同一直线编号的边界线点云 或折边线点云进行聚类; 通过比较同一直线编号中每一个子聚类质心和场景点云总质心 z 值的大小, 确定子聚类的深度远近. 如果子聚类质心在总质心前方, 则认为当前子聚类属于真实的场景边界线点 云或场景折边线点云; 如果子聚类质心在总质心后方, 则认为当前子聚类属于其他混入其中的场景阴 影线点云而被直接丢弃. 然后, 在剩余聚类中取采样点数最多的聚类并作为初始的线特征拟合点集, 计算该拟合点集的 PCA 主方向 [25] 和均值点, 从而得到一条过均值点的主方向直线; 同时计算其余聚 类中的各采样点与该主方向直线之间的垂直距离, 并剔除与该主方向直线距离过大的点, 再将剩余采 样点加入到线特征拟合点集中并更新该线特征拟合点集的 PCA 主方向和均值点以修正主方向直线; 最后将参与拟合主方向直线的点均投影到该直线上, 并找到线段的端点以便从直线中截取出线段作为 场景的 3D 线特征. 4 场景 3D 线特征的匹配及配准 受场景 2D 线描述符 LBD (line band descriptor) 表示 [30] 的启发, Burns 等 [26] 引入的线支持域 为 2D 图像空间中像素梯度方向相似的 2D 直线拟合区域, 而 2D 线描述符 LBD 则扩大了线支持域的 范围, 其通常选取线特征周围以 2D 线特征为水平中心线的矩形局部区域作为 2D 线段支持域, 并将 2D 线段支持域划分为一组等宽度的条带, 然后统计条带内水平和垂直正负 4 个方向的像素梯度形成 描述矩阵, 并通过 2D 线特征周围的梯度纹理变化描述 2D 线特征的相似性. 然而, 为了更好地描述场 景 3D 线特征周围的点云分布, 本文需要考虑场景的 3D 线段支持域及线特征描述符的构建. 4.1 3D 线段支持域及描述符的构建 在支持域构建中, 我们以 3D 线特征为轴线向外分层扩展, 其每层圆柱壁厚度相同的同轴圆柱区 域作为 3D 线段支持域. 如图 4 所示, 首先以提取得到的场景 3D 线特征 l 为轴线, 计算参与拟合当前 线特征的场景点云中的点到轴线的距离, 并取最大距离为单层圆柱壁半径 r, 然后向外逐层扩展一个 围绕 3D 线特征的等厚度同轴圆柱区域作为 3D 线段支持域, 支持域圆柱体半径为 n · r, 本文实验中 n 取为 5. 2075 https://engine.scichina.com/doi/10.1360/SSI-2021-0009 缪永伟等: 融合梯度信息和邻域点云分布的 3D 线特征提取与配准 l θ φ 图 4 (网络版彩图) 3D 线段支持域 Figure 4 (Color online) The supporting region of a 3D linear segment 在构建线特征描述符时, 以围绕 3D 线特征的等厚度圆柱壁内点云的 3D 梯度作为 3D 线段支持 域的点云纹理. 一般来说, 场景点云的 3D 梯度描述采样点 K- 邻域内点云的分布及其法线方向变化 (反映了采样点邻域点云分布最密集的方向), 因而本文通过统计圆柱壁内所有采样点在 6 个方向上的 3D 梯度投影描述当前圆柱壁内的点云纹理, 并由内向外拼接每层圆柱壁的 6 个统计值形成描述符矩 阵, 并用该描述符矩阵描述整个圆柱型 3D 线段支持域内的点云纹理. 具体地说, 为了构建 3D 线特征 描述符, 首先需要求出支持域各层圆柱壁内采样点的 3D 梯度信息. 基于场景点云的 3D SIFT 描述符 中 [31] , 对应 2D 像素梯度定义为像素点邻域灰度梯度直方图统计的峰值, 而 3D 点云梯度则定义为当 前点 K- 邻域点到邻域中心点分布的角度直方图峰值, 场景点云 P(x, y, z) 的 K- 邻域点到邻域中心点 分布的距离和相对角度可计算为  √  L2x + L2y + L2z , m(x, y, z) =     θ(x, y, z) = arctan(Ly /Lx ),   √ ) (    φ(x, y, z) = arctan Lz / L2 + L2 , y x 其中, 三维点云的尺度空间 L(x, y, z, σ) 定义为由一个尺度变化的高斯 (Gauss) 核函数 G(x, y, z, σ) 与 √ 输入点云 P(x, y, z) 卷积得到, 即 L(x, y, z, σ) = G(x, y, z, σ) ∗ P(x, y, z), 其中 σ = 3 2 是尺度空间因子, 2 2 2 2 1 高斯核函数 G(x, y, z, σ) = (√2πσ) e−(x +y +z )/2σ ; Lx , Ly , Lz 分别是在尺度空间下点 P(x, y, z) 与 3 邻域点的差分变量在 x, y, z 轴上的投影分量, θ 和 φ 分别为点 P(x, y, z) 与上述邻域点的方位角和俯 仰角. 进一步, 本文考虑到点云法线在点云特征刻画中的重要性, 在特征描述中结合点云法线分布将更 全面地表达场景点云的几何特征和邻域点云空间分布特性, 故在计算场景点云的 3D 梯度时本文利 用梯度方向和法线方向的角度偏差刻画当前点邻域内法线的变化. 设当前点 P(x, y, z) 的邻域点集为 {Pk (xk , yk , zk )}, 其中心点为 Pc (xc , yc , zc ), 则结合法向特征的场景邻域点云 Pk (xk , yk , zk ) 分布的距离 2076 https://engine.scichina.com/doi/10.1360/SSI-2021-0009 中国科学 : 信息科学 第 51 卷 第 12 期 和相对角度可计算为  √  m(xk , yk , zk ) = (xk − xc )2 + (yk − yc )2 + (zk − zc )2 ,    [ ]     θ(xk , yk , zk ) = arctan (yk − yc )/(zk − zc ) , √ ] [ φ(xk , yk , zk ) = arctan (zk − zc )/ (xk − xc )2 + (yk − yc )2 ,    ] [    PPk · N   δ(xk , yk , zk ) = arccos , ∥PPk ∥ · ∥N∥ 其中梯度大小 m(xk , yk , zk ) 为当前点邻域点集的中心点 Pc (xc , yc , zc ) 到邻域点 Pk (xk , yk , zk ) 之间的 欧氏距离, θ 和 φ 分别为中心点 Pc (xc , yc , zc ) 与邻域点 Pk (xk , yk , zk ) 的方位角和俯仰角, δ 为当前点 P(x, y, z) 的法线 N 和向量 PPk 的角度偏差. 为了使得点云 3D 梯度的方向沿着其 K- 邻域内邻域点 分布最密集且法向偏差最大的方向, 本文按照四元组 (m, θ, φ, δ) 统计当前点所有 K- 邻域点相对于邻 域中心点相对角度的直方图, 其直方图的峰值方向为当前点 P 的 3D 梯度方向, 其对应的幅值为当前 点 P 的 3D 梯度大小. 结合场景点云法向特征计算得到点云 3D 梯度后, 本文将局部坐标系旋转使其 x 轴指向 3D 线特 征方向, y 轴指向参与拟合 3D 线特征的点集拟合得到的切平面中与 x 轴垂直的方向, z 轴指向参与 拟合 3D 线特征的点集拟合得到的切平面法线方向. 在该局部坐标系下, 首先计算 3D 线段支持域内 场景点云 3D 梯度 g = (gx , gy , gz ); 然后在 3D 线段支持域内第 i 层圆柱壁中分别累计该层中 6 个方 向上的 3D 梯度幅值: ∑ ∑ ∑ ∑ ∑ ∑ Vi1 = λ gx , Vi2 = λ gx , Vi3 = λ gy , Vi4 = λ gy , Vi5 = λ gz , Vi6 = λ gz , gx >0 gx <0 gy >0 gy <0 gz >0 gz <0 −d2i /[2(n·r)2 ] 其中权值 λ = e , di 为第 i 层圆柱壁外侧到线特征中心轴线的距离, n · r 是圆柱型 3D 线段 支持域的半径, 权值 λ 的引进将逐渐降低线段支持域内远离 3D 线段的外层圆柱壁内点云梯度的重要 性. 最终, 3D 线段支持域内各圆柱壁的描述子计算为 CDi = (Vi1 , Vi2 , Vi3 , Vi4 , Vi5 , Vi6 ). 本文提出的 3D 线特征圆柱型描述符 LCD (line cylindrical descriptor) 定义为 LCD = (CD1 , CD2 , . . . , CDn ), 其计算如 算法 1 所示. 4.2 基于 3D 线特征描述的配准 根据对点云场景每帧数据分别提取得到的 3D 线特征, 我们可以计算其相应的线特征描述符, 进 一步可以确定两帧点云数据中线特征描述符距离最小的 3D 线特征匹配对, 并考虑两帧场景点云数据 之间的旋转和平移, 从而实现场景点云数据的配准. 具体地说, 对齐两帧点云数据 (源帧点集 P = {pi } 和目标帧点集 Q = {qi }) 时需要寻求刚体变换 (R, t), 使得其对点集 P 进行变换后能够与点集 Q 很好 地重合. 自 Besl 与 McKay [32] 提出点对点的迭代最近点 (iterative closest point, ICP) 算法以来, ICP 算法及其变种 [33, 34] 已成为广泛采用的三维点云配准方法. 在点对点的 ICP 配准中, 实现点云数据配 准时使用了点对点的距离误差度量, 并通过计算给定的对应匹配点对 (pi , qi ), 寻找能够使点对点的距 ∑ 离误差总和目标函数最小化的刚体变换, 即最小化 E = i ∥R · pi + t − qi ∥2 . 迭代最近线 ICL [17, 18] 具有与 ICP 相同的逻辑, 线耦合的条件是迭代对应线之间的距离. 但是现有的迭代最近线方法通常借 助于线段对应点, 将对应线之间的距离简化为对应点之间的距离来计算, 如果存在线段分段或遮挡则 可能找不到对应点, 导致计算出的线段之间的距离误差过大. 在场景线特征提取与描述的基础上, 本 文利用 3D 线特征所在的直线计算线段之间的距离, 提出了基于线 – 线的迭代最近线配准算法计算点 云场景 3D 线集之间的旋转和平移. 2077 https://engine.scichina.com/doi/10.1360/SSI-2021-0009 缪永伟等: 融合梯度信息和邻域点云分布的 3D 线特征提取与配准 Algorithm 1 Intrinsic descriptor calculation algorithm for 3D lines Input: 3D line l and its fitting point set S = {Pk }; 1: Taking the 3D line l as a central axis, calculate the distance from its fitting points {Pk } to the central axis, in which the maximum distance can be determined as the radius of single-layer cylindrical area, so that an n-layer coaxial cylinder support region with the iso-thick cylindrical area can be built (here n is taken as 5); 2: Taking the direction of input 3D line as x axis and the vertical direction on the fitting plane of point set S as y axis, we can find the corresponding approximate plane of the real point cloud surface which is contained in the cylinder area; 3: Calculate four corner vertices of the approximate plane through two endpoints of the input 3D line and the cylindrical radius, and then find the irregular quadrilateral 2D region which can be obtained by projecting the 3D cylinder support region in RGB channel; 4: Establish an index table of 2D points that correspond to 3D points and reverse 3D points in the cylinder area using 2D points, so that the adjacent sampling points can be divided into different layer cylindrical areas according to the distance with its 3D point to the central axis l; 5: Lookup the neighboring points of 3D points using the above index table and calculate 3D gradient for each 3D point; then rotate the local coordinate system according to the input 3D line and calculate its projection g = (gx , gy , gz ) of 3D gradient on the cylinder support region of the 3D line l; 6: The descriptor of single-layer cylindrical area can be computed as the accumulated gradient component values of each cylinder area in 6 directions gx > 0, gx < 0, gy > 0, gy < 0, gz > 0, gz < 0, and the intrinsic descriptor of 3D line l can be determined by combining these single-layer descriptors; Output: The intrinsic descriptor LCD = (CD1 , CD2 , . . . , CDn ) for the 3D line l. 在点云场景的配准中, 为了简单起见, 利用 3D 线特征上的任意一点 (实验中, 我们使用拟合线特 征点集的均值点) 和线特征的方向向量来表示线特征所在的直线. 给定点云场景两帧线集, 其中源帧 线集表示为 Lp = {Lpi |Lpi = (pi , vpi )}, pi (xpi , yip , zip ) 是线上一点, vpi = (lip , mpi , npi ) 为 3D 线特征的单位 方向向量; 目标帧线集表示为 Lq = {Lqj |Lqj = (qj , vqj )}, 其中 qj (xqj , yjq , zjq ) 是线上一点, vqj = (ljq , mqj , nqj ) 为 3D 线特征的单位方向向量. 该两帧线集中一组对应 3D 线之间的距离计算为 d(Lpi , Lqj ) = |pi qj ·si,j |, 其中 pi qj 为异面直线 Lpi 和 Lqj 分别任取一点的连线向量, si,j = vpi × vqj 为异面直线 Lpi 与 Lqj 公垂 线的单位方向向量, 向量 pi qj 在公垂线方向 si,j 上的投影即为异面直线 Lpi 与 Lqj 之间的距离. 现在用 T = (R, t) 表示线集 Lp 和 Lq 的刚性变换, 其中 R 和 t 分别表示旋转矩阵和平移向量. TLp 表示刚性变换作用于线集 Lp , 其包含 Tpi = R · pi + t 和 Tvpi = R · vpi , 则目标函数 Eline 可以定 义为两帧对应线集之间的距离平方和加上对应线集之间的方向向量角度度量, 即 Eline = n ∑ i=1 d(TLpi , Lqi ) = n ∑ i=1 {[(qi − R · pi − t)(R · vpi × vqi )]2 + (1 − (vqi )T · R · vpi )}. 点云场景 3D 特征线集之间配准的目标是寻求最佳 R 和 t 使得 Eline 最小. 类似于 ICP 方法, 这里首先需要通过两帧线集的方向向量协方差矩阵计算旋转矩阵 R 如下: 计 ∑ ∑ ∑ 算协方差矩阵 C = n1 ni=1 [vpi · (vqi )T − v̄p · (v̄q )T ], 其中 v̄p = n1 ni=1 vpi 和 v̄q = n1 ni=1 vqi 分别是源帧 线集 Lp 方向向量的均值和目标帧线集 Lq 方向向量的均值, 旋转矩阵 R 可以通过协方差矩阵 C 的 奇异值分解 SVD 和四元数表示得到, 这里使用 SVD 分解 C = UΛVT , 得到 R = VUT . 计算得到旋 转矩阵 R 后, 利用 R 对源帧线集进行旋转, 并计算旋转后的源帧线集与目标帧线集之间的平均距离 ∑ 作为平移向量 t = ni=1 wi (qi − R · pi ) · (R · vpi × vqi ), 其中 wi 是权重, 即当前匹配对线特征长度和所 有参与配准的线特征匹配对总长度的比值. 最后对源帧线集 Lp 进行旋转和平移变换, 得到更新后的 新线集 Lp∗ . 重复上述操作, 计算已更新的源帧线集 Lp∗ 和目标帧线集 Lq 中所有对应直线对的最小化 目标函数 Eline , 并更新旋转矩阵 R 和平移向量 t. 需要指出的是, 本文认为两帧线集距离最小同时其 2078 https://engine.scichina.com/doi/10.1360/SSI-2021-0009 中国科学 : 信息科学 第 51 卷 第 12 期 角度偏差达到最小时取得最佳旋转矩阵 R 和平移向量 t, 所以当前迭代的目标函数 Eline 大于前一次 迭代的目标函数 Eline 时迭代停止, 如算法 2 所示. Algorithm 2 Line-to-line iterative closest line (line-to-line ICL) registration algorithm Input: The matched 3D line sets {Lpi } and {Lqi } which are extracted from the source frame and the target frame of scene data respectively; 1: while Eline of current iteration is not more than that of previous iteration do 2: 3: Compute the average direction vectors for the extracted 3D lines {Lpi } and {Lqi } respectively, that is, v̄p = ∑ ∑n p q q 1/n n i=1 vi , v̄ = 1/n i=1 vi ; ∑ p q T p Calculate the covariance matrix for direction vectors of the extracted lines, that is, C = 1/n n i=1 [vi · (vi ) − v̄ · (v̄q )T ]; 4: Decompose the covariance matrix using the singular value decomposition (SVD) method, that is, C = UΛVT , in which Λ is a diagonal matrix and the rotation matrix can be computed as R = VUT ; 5: After the rotation transformation, the average difference between the aligned 3D lines can be computed as a translation ∑n p q i=1 wi (qi − R · pi ) · (R · vi × vi ); vector, that is, t = 6: Calculate the target function value Eline , and update the extracted 3D lines from source frame scene data using the obtained rotation matrix R and translation vector t; 7: end while Output: The rotation matrix R and translation vector t between the matched 3D line sets. 5 实验结果及分析 本文实验平台为 Intel Core i7, GTX1660ti, 6 GB GPU, CUDA 10.2, 在 64 位 Win 10 系统下利用 Visual Studio 2017 环境开发. 本文提出的融合梯度信息和点云分布特性的场景 3D 线特征提取方法适 用于普通精度的场景点云, 该方法直接利用场景结构线的几何特性抽取场景线特征, 有效避免了由于 点云精度过低导致的场景平面分割欠准确的缺陷; 同时, 利用点云梯度信息指导直线拟合, 从而避免了 线特征提取中直接利用法线判断直线时由于精度限制而导致提取失效的局限性. 本文实验分别利用室 内场景 RGB-D 数据集 Matterport3D [35] 和扩展的 ICL-NUIM 合成数据集 [36] 以验证方法的有效性. 5.1 点云场景 3D 线特征的提取 为了验证场景 3D 线特征提取方法的有效性, 本文在室内场景 RGB-D 数据集 Matterport3D [35] 上对其进行了实验测试. 针对 3 个包含结构线较多的点云场景 (如书架、楼梯、百叶窗场景), 分别利 用本文方法提取场景中的大量 3D 线特征, 并和其他方法进行比较. 图 5 分别给出了书架场景、楼梯 场景和百叶窗场景 RGB-D 数据的 3D 线特征检测结果. 从中可以看到, 利用本文提出的 3D 线特征提 取方法不仅能够提取大的场景框架结构 (如书架的框架、楼梯连续台阶和百叶窗的框架结构等), 而且 能够提取小的场景细节结构 (如书架上摆放的小物体、楼梯的细栏杆和百叶窗的大量扇叶等), 各场景 中的大量 3D 线特征都得到了有效的提取. 表 1 列出了本文方法对不同点云场景进行 3D 线特征提取 的统计数据, 从中可以看到, 场景线特征数目大大少于点云数目, 同时由于省去了场景点云分割的时 间消耗, 本文的 3D 线特征提取高效, 对书架场景、楼梯场景和百叶窗场景 RGB-D 数据的 3D 线特征 提取分别约需 0.40, 0.37, 0.37 s, 其仅为 Lu 等 [15] 方法耗时的 1/10. 这里我们将本文提出的 3D 线特征提取方法与 Lu 等 [15] 的线特征提取方法进行比较. 对于普通 扫描精度的室内场景点云数据来说, Lu 等 [15] 的方法往往由于场景点云法向的杂乱而导致直线拟合的 失败, 从而使得场景中的线特征提取效果大大受限于获取的场景点云数据的精度. 此外, Lu 等 [15] 的 2079 https://engine.scichina.com/doi/10.1360/SSI-2021-0009 缪永伟等: 融合梯度信息和邻域点云分布的 3D 线特征提取与配准 (a) (b) (c) (d) 图 5 (网络版彩图) 不同场景 3D 线特征提取 Figure 5 (Color online) 3D line extraction for different RGB-D scenes. (a) RGB images of different scenes; (b) depth images of corresponding scenes; (c) extraction results by using Lu et al.’s method [15] ; (d) our extraction results 表 1 不同场景的 3D 线特征提取统计 Table 1 Data statistics of 3D line extraction for different RGB-D scenes Lu et al. [15] Our method RGB-D scenes #Sampling points Scene1 (bookshelf) 1207666 544 4.09 722 0.40 Scene2 (stairs) 1185903 369 3.91 1388 0.37 Scene3 (persiennes) 1309428 855 3.81 1049 0.37 #Extracted lines Extraction time (s) #Extracted lines Extraction time (s) 方法提取效果还取决于场景面片分割的准确性, 对于复杂的普通精度室内场景点云数据, 往往会由于 难以正确提取场景中的面片信息或忽略了部分小面片而造成场景线条提取的缺失, 同时复杂场景中的 面片信息提取也是一个耗时的过程. 相反, 本文提出的 3D 线特征提取方法则兼顾了输入数据的 RGB 梯度信息和深度数据的几何信息, 其中 RGB 梯度信息提高了直线拟合区域的判断准确性, 而深度信 息则避免了由于平面分割导致的时间消耗、点云精度不高造成的欠分割或过分割等引起的线特征提 取错误, 对普通精度场景点云的大量线特征提取效果相对较好, 如图 5 所示. 为了验证场景 3D 线特征提取方法在弱光照条件下的适用性, 本文在扩展的 ICL-NUIM 合成数据 集 上进行了实验测试. 针对同一办公室室内场景, 图 6 分别给出了 4 种不同光照条件 — 普通照明 (static lighting)、全局照明 (global illumination)、局部照明 (local illumination)、手电筒照明 (flashlight) 下的场景 3D 线特征提取效果. 从中可以看到, 利用本文提出的方法在弱光照条件下仍具有较强的适 用性. 表 2 给出了不同光照条件下场景 3D 线特征提取的数据统计, 虽然本文方法在不同光照条件下 其提取得到的线特征数目会由于场景明暗程度有所减少, 但本文方法提取的 3D 线特征基本能保持场 景的框架完整性和局部细节, 而 Lu 等 [15] 方法提取的场景线特征数目较少, 其在手电筒照明下由于光 [36] 2080 https://engine.scichina.com/doi/10.1360/SSI-2021-0009 中国科学 : 信息科学 第 51 卷 第 12 期 (a) (b) (c) (d) (e) 图 6 (网络版彩图) 不同光照条件下场景 3D 线特征提取 Figure 6 (Color online) 3D line extraction for different lighting scenes, such as static lighting, global illumination, local illumination, and flashlight. (a) RGB images of different lighting scenes; (b) depth images of corresponding scenes; (c) extraction results by using Lu et al.’s method [15] ; (d) our extraction results of RGB-D scenes without depth noise; (e) our extraction results of RGB-D scenes with depth noise 表 2 不同光照条件下场景 3D 线特征提取统计 Table 2 Data statistics of 3D line extraction for different lighting scenes Lighting scenes #Sampling points Static lighting 307200 Lu et al. [15] Our method #Extracted lines Extraction time (s) #Extracted lines Extraction time (s) 201 1.49 874 0.39 Global illumination 307200 201 1.47 977 0.41 Local illumination 307200 201 1.41 757 0.38 Flashlight 307200 24 0.64 573 0.34 照过弱导致难以提取场景中的平面信息而使该方法失效. 为了验证 RGB-D 场景深度数据噪声误差对 3D 线特征提取效果的影响, 本文在扩展的 ICL-NUIM 合成数据集 [36] 上进行了实验测试. 图 6(e) 分别给出了不同光照条件下具有深度数据噪声的场景 3D 线特征提取效果, 并和无深度数据噪声的场景线特征提取效果进行比较. 从中可以看到, 利用本文的 3D 线特征提取方法在带有深度噪声的场景点云中有一定的适用性, 但相较于光照影响, 场景深度误差 带来的影响要更大一些. 本文方法在不同光照条件下对具有深度噪声的场景点云中提取的线特征数目 分别为 745, 829, 626, 502, 其能基本保持场景线特征的完整性, 但部分细节会有少量扭曲和缺失. 5.2 点云场景 3D 线特征的配准 为了验证本文提出的场景 3D 线特征配准方法的有效性, 本文在 BundleFusion [7] 提供的室内场 2081 https://engine.scichina.com/doi/10.1360/SSI-2021-0009 缪永伟等: 融合梯度信息和邻域点云分布的 3D 线特征提取与配准 (a) (b) (c) (d) 图 7 (网络版彩图) 书桌场景的 3D 线特征配准 Figure 7 (Color online) Matching and registration of 3D lines for indoor desk scene. (a) RGB images of desk scene; (b) point clouds of desk scene; (c) matching of the extracted 3D lines; (d) our registration result of 3D lines (a) (b) (c) (d) 图 8 (网络版彩图) 房间角落场景的 3D 线特征配准 Figure 8 (Color online) Matching and registration of 3D lines for room corner scene. (a) RGB images of room corner scene; (b) point clouds of room corner scene; (c) matching of the extracted 3D lines; (d) our registration result of 3D lines 景 RGB-D 数据集中分别选取了 Office3 中书桌场景和房间角落场景, 并在同一场景中分别选择间隔 15 帧的具有位移偏差的两帧数据进行场景 3D 线特征配准实验. 图 7 展示了书桌场景 3D 线特征的 配准结果, 从中可以看到, 书桌场景的 3D 线特征不仅包括如中间 2 条墙角线、柜门边框线、电脑边 框线等场景框架结构, 还包括如墙上地图或其他图画的边框线, 利用本文提出的 3D 线特征配准方法 能够有效配准这些线特征并能准确对齐两帧点云, 从而避免了场景内部的微小细节纹理 (如地图图案 形成的短线、桌面杂乱小物体形成的短线等) 对场景配准带来的误差影响. 图 8 给出了房间角落场景 3D 线特征的配准结果, 从中可以看到, 场景中大量的屋顶、墙角、门等的 3D 特征线均能得到有效的 匹配和配准, 其不仅包含场景框架结构特征线的配准而且含有场景的细节结构 3D 特征线的配准. 2082 https://engine.scichina.com/doi/10.1360/SSI-2021-0009 中国科学 : 信息科学 第 51 卷 第 12 期 (a) (b) (c) (d) (e) 图 9 (网络版彩图) 点特征基础上点云场景不同配准方法的比较 Figure 9 (Color online) Comparisons of different point registration methods for point cloud scenes. (a) Different point cloud scenes; (b) matching results of 3D points extracted from different scenes; (c) registration results by using Point-toPoint [32] ; (d) registration results by using Point-to-Plane [33] ; (e) registration results by using symmetric ICP [34] 表 3 不同场景的 3D 点配准统计 Table 3 Scenes a) Data statistics of 3D point registration for different RGB-D scenes #Source #Target #Regist. points points points Point-to-Point [32] Point-to-Plane [33] Symmetric ICP [34] Iterat. Regist. Total Iterat. Regist. Total Iterat. Regist. Total times time (s) time (s) times time (s) time (s) times time (s) time (s) Desk 406 327 406 17 0.027 77.667 11 0.215 77.326 11 0.223 77.403 Cabinet 530 517 530 23 0.035 65.479 22 0.263 65.058 4 0.218 65.200 Corner 732 796 732 34 0.048 42.569 31 0.278 43.099 81 0.315 43.043 a) Iterat.: Iteration; Regist.: Registration. 5.3 点云场景不同配准方法的比较 为了验证本文提出的 3D 线特征配准方法比传统点特征配准方法以及其他线特征配准方法更 具鲁棒性和高效性, 本文在 BundleFusion [7] 提供的室内场景 RGB-D 数据集 Office3 中选取书桌场 景、柜子场景、房间角落场景并利用不同的配准方法 (如 Point-to-Point 方法 [32] 、Point-to-Plane 方 法 [33] 、Symmetric ICP 方法 [34] ) 进行场景 3D 点特征配准实验. 同时, 由于现有线特征配准方法大 都将线配准问题转化为对应点配准进行处理, 故这里借助传统的点特征配准方法, 在场景 3D 线特征 匹配的基础上使用参与拟合线特征的采样点作为点配准方法的输入, 并模拟线配准方法进行对比实 验. 图 9 和 10 分别给出了不同场景的 3D 点配准和 3D 线配准的效果比较, 相应的统计数据见表 3 2083 https://engine.scichina.com/doi/10.1360/SSI-2021-0009 缪永伟等: 融合梯度信息和邻域点云分布的 3D 线特征提取与配准 (a) (b) (c) (d) (e) 图 10 (网络版彩图) 线特征基础上点云场景不同配准方法的比较 Figure 10 (Color online) Comparisons of different line registration methods for point cloud scenes. (a) Matching results of 3D lines extracted from different scenes; (b) registration results by using Point-to-Point [32] ; (c) registration results by using Point-to-Plane [33] ; (d) registration results by using symmetric ICP [34] ; (e) our registration results of 3D lines 表 4 不同场景的 3D 线配准统计 Table 4 Scenes #Source#Target#Regist. lines lines lines a) Data statistics of 3D line registration for different RGB-D scenes Point-to-Point [32] Point-to-Plane [33] Symmetric ICP [34] Our method Iterat. Regist. Total Iterat. Regist. Total Iterat. Regist. Total Iterat. Regist. Total times time (s)time (s) times time (s)time (s) times time (s)time (s) times time (s) time (s) Desk 154 161 35 26 6.226 6.859 17 4.067 4.700 10 3.425 4.058 6 1.379 × 10−3 0.634 Cabinet 180 151 36 18 2.419 3.050 51 9.484 10.115 20 4.162 4.793 14 1.891 × 10−3 0.632 Corner 155 193 61 11 0.866 1.493 14 1.481 2.108 13 1.381 2.008 13 1.873 × 10−3 0.628 a) Iterat.: Iteration; Regist.: Registration. 和 4. 可以看出, 点云场景配准中基于线特征的配准比基于点的传统 ICP 配准方法更有效, 本文方法 通过检测场景直线型边界线点和直线型折边线点从而能够提取场景中的大量框架结构线、纹理线条 等; 而基于点的 ICP 配准中, 点特征的离散和无序性往往导致其配准结果易受特征点提取的误差影响 (如场景内部细小纹理、杂乱小物体等), 从而使得场景配准不准确. 如图 9 第 1 行书桌场景的点特征 配准中利用 Point-to-Point 方法 [32] 与第 2 行书柜场景的点特征配准中利用 Point-to-Point 方法 [32] 和 Symmetric ICP 方法 [34] 得到的对齐结果存在扭曲或偏移, 这是由于点特征的离散性、无序性而将单 帧场景点云的所有点特征及其重要性默认为相同, 而点配准方法仅考虑最小化点对点、点对面的误差 度量, 书桌场景中桌面上的杂乱小物体、书柜场景中柜子上的点特征由于其误差度量不准确而干扰了 整个场景的配准结果. 此外, 利用 Point-to-Plane 方法 [33] 和 Symmetric ICP 方法 [34] 时, 由于其缺少 2084 https://engine.scichina.com/doi/10.1360/SSI-2021-0009 中国科学 : 信息科学 第 51 卷 第 12 期 点云场景结构信息而容易使配准迭代陷入局部最优, 如图 9 中第 3 行房间角落场景利用 Symmetric ICP 方法 [34] 和图 10 中第 2 行书柜场景利用 Point-to-Plane 方法 [33] 和 Symmetric ICP 方法 [34] 其配 准效果偏移较明显. 相反, 在线特征基础上利用 Point-to-Point 方法的配准结果则明显优于在点特征 基础上利用 Point-to-Point 方法的配准结果, 如图 9(c) 和 10(b) 所示. 从表 3 和 4 可以看出, 不同场景的线特征数目明显少于点特征数目, 利用基于点特征的 ICP 配 准策略比直接利用 3D 线特征进行配准更加耗时. 另外, 基于点特征的 ICP 配准效果取决于输入的 特征点信息, 虽然线特征数目少于点特征数目, 但线特征包含了所有参与拟合的大量采样点信息; 同 时, 由于场景线特征能体现出场景的大量结构信息, 从而有效避免了配准过程中由于出现错位对齐或 陷入局部最优而导致的配准错误. 需要指出的是, 表 3 和 4 中各种不同的点配准方法的迭代终止条件 为: 设置前后两次迭代的变换矩阵的最大容差为 1E − 10, 即前一个变换矩阵和当前变换矩阵的差异 小于阈值 1E − 10 时认为方法已收敛; 或前后两次迭代的欧氏距离均值的最大容差为 0.001, 即迭代后 点对的均方误差和小于阈值 0.001 时认为方法已收敛. 以房间角落场景为例, Point-to-Point 方法 [32] 需配准迭代 11 次耗时 0.866 s, Point-to-Plane 方法 [33] 需配准迭代 14 次耗时 1.481 s, Symmetric ICP 方法 [34] 则需配准迭代 13 次耗时 1.381 s, 而直接基于线特征配准的本文方法配准迭代 13 次仅耗时 1.873 × 10−3 s, 本文方法由于待配准的线特征数目少从而大大提高了场景配准的效率. 6 结束语 本文提出了一种融合场景数据的 RGB 梯度信息和邻域点云分布特性的 3D 线特征提取与配准方 法. 该方法由于结合了场景 RGB 梯度信息, 在 3D 线特征提取中可以有效降低直线拟合对点云的精度 要求; 同时该方法直接利用点云分布特性提取场景中的主要结构线, 从而避免了由于面片误分割 (如 欠分割或过分割) 导致的提取误差. 进一步, 在线特征提取的基础上, 本文方法利用 3D 线特征的线段 支持域及线特征描述符实现了线特征匹配, 以找到场景配准所需要的对应线对. 最终, 利用基于线 – 线的迭代最近线配准方法实现了场景点云数据的配准. 实验结果表明, 与已有的点云场景线特征提取 及点特征匹配与配准方法比较, 本文方法配准效率高、计算量小、配准精准, 方法具有较强的鲁棒性. 然而, 本文工作仅考虑了场景点云数据的配准问题, 未来将考虑如何在 3D 线特征的基础上实现 局部到全局的位姿优化策略, 如何解决 3D 线特征加入到重建系统中面临的参数化问题等, 从而实现 基于 3D 线特征的场景点云高效重建. 参考文献 1 Miao Y W, Xiao C X. Geometric Processing and Shape Modeling of 3D Point-Sampled Models. Beijing: Science Press, 2014 [缪永伟, 肖春霞. 三维点采样模型的几何处理和形状造型. 北京: 科学出版社, 2014] 2 Mur-Artal R, Tardös J D. ORB-SLAM2: an open-source SLAM system for monocular, stereo, and RGB-D cameras. IEEE Trans Robot, 2017, 33: 1255–1262 3 Newcombe R A, Izadi S, Hilliges O, et al. KinectFusion: real-time dense surface mapping and tracking. In: Proceedings of IEEE International Symposium on Mixed and Augmented Reality (ISMAR), Basel, 2011. 127–136 4 Whelan T, Johannsson H, Kaess M, et al. Robust real-time visual odometry for dense RGB-D mapping. In: Proceedings of IEEE International Conference on Robotics and Automation (ICRA), Karlsruhe, 2013. 5724–5731 5 Whelan T, Salas-Moreno R F, Glocker B, et al. ElasticFusion: real-time dense SLAM and light source estimation. Int J Robot Res, 2016, 35: 1697–1716 6 Nießner M, Zollhöfer M, Izadi S, et al. Real-time 3D reconstruction at scale using voxel hashing. ACM Trans Graph, 2013, 32: 1–11 2085 https://engine.scichina.com/doi/10.1360/SSI-2021-0009 缪永伟等: 融合梯度信息和邻域点云分布的 3D 线特征提取与配准 7 Dai A, Nießner M, Zollhöfer M, et al. BundleFusion: real-time globally consistent 3D reconstruction using on-the-fly surface reintegration. ACM Trans Graph, 2017, 36: 1 8 Zhang G, Lee J H, Lim J, et al. Building a 3-D line-based map using stereo SLAM. IEEE Trans Robot, 2015, 31: 1364–1377 9 Xu C, Zhang L, Cheng L, et al. Pose estimation from line correspondences: a complete analysis and a series of solutions. IEEE Trans Pattern Anal Mach Intell, 2017, 39: 1209–1222 10 Zhou H, Zou D, Pei L, et al. StructSLAM: visual SLAM with building structure lines. IEEE Trans Veh Technol, 2015, 64: 1364–1375 11 Pumarola A, Vakhitov A, Agudo A, et al. PL-SLAM: real-time monocular visual SLAM with points and lines. 12 Li H, Yao J, Bazin J C, et al. A monocular SLAM system leveraging structural regularity in Manhattan world. 13 Ni H, Lin X, Ning X, et al. Edge detection and feature line tracing in 3D-point clouds by analyzing geometric properties 14 Lin Y, Wang C, Chen B, et al. Facet segmentation-based line segment extraction for large-scale point clouds. IEEE 15 Lu X, Liu Y, Li K. Fast 3D line segment detection from unorganized point cloud. 2019. ArXiv:1901.02532 16 Fischler M A, Bolles R C. Random sample consensus: a paradigm for model fitting with applications to image analysis 17 Kamgar-Parsi B. Algorithms for matching 3D line sets. IEEE Trans Pattern Anal Machine Intell, 2004, 26: 582–593 18 Alshawa M. ICL: iterative closest line—a novel point cloud registration algorithm based on linear features. In: Pro- 19 Hofer M, Maurer M, Bischof H. Efficient 3D scene abstraction using line segments. Comput Vision Image Understand- 20 Langlois P A, Boulch A, Marlet R. Surface reconstruction from 3D line segments. In: Proceedings of IEEE International 21 Brown M, Windridge D, Guillemaut J Y. A generalisable framework for saliency-based line segment detection. Pattern 22 Lin Y, Wang C, Cheng J, et al. Line segment extraction for large scale unorganized point clouds. ISPRS J Photogram- 23 Borges P, Zlot R, Bosse M, et al. Vision-based localization using an edge map extracted from 3D laser range data. 24 Rosenfeld A, Thurston M. Edge and curve detection for visual scene analysis. IEEE Trans Comput, 1971, 100: 562–569 25 Vidal R, Ma Y, Sastry S. Generalized principal component analysis (GPCA). IEEE Trans Pattern Anal Machine Intell, 26 Burns J B, Hanson A R, Riseman E M. Extracting straight lines. IEEE Trans Pattern Anal Mach Intell, 1986, 8: 27 Akinlar C, Topal C. EDLines: a real-time line segment detector with a false detection control. Pattern Recogn Lett, 28 Lee J G, Han J, Whang K Y. Trajectory clustering: a partition-and-group framework. In: Proceedings of the ACM 29 Steder B, Rusu R B, Konolige K, et al. Point feature extraction on 3D range scans taking into account object In: Proceedings of IEEE International Conference on Robotics and Automation (ICRA), Singapore, 2017. 4503–4508 In: Proceedings of IEEE International Conference on Robotics and Automation (ICRA), Brisbane, 2018. 2518–2525 of neighborhoods. Remote Sens, 2016, 8: 710–718 Trans Geosci Remote Sens, 2017, 55: 4839–4854 and automated cartography. Commun ACM, 1981, 24: 381–395 ceedings of ISPRS 2nd Summer School in Ljubljana, Ekscentar, 2007. 53–59 ing, 2017, 157: 167–178 Conference on 3D Vision, Quebec, 2019. 553–563 Recogn, 2015, 48: 3993–4011 metry Remote Sens, 2015, 102: 172–183 In: Proceedings of IEEE International Conference on Robotics and Automation (ICRA), Anchorage, 2010. 4902–4909 2005, 27: 1945–1959 425–455 2011, 32: 1633–1642 SIGMOD International Conference on Management of Data, Beijing, 2007. 593–604 boundaries. In: Proceedings of IEEE International Conference on Robotics and Automation (ICRA), Shanghai, 2011. 2601–2608 30 Zhang L, Koch R. Structure and motion from line correspondences: representation, projection, initialization and sparse 31 Scovanner P, Ali S, Shah M. A 3-dimensional SIFT descriptor and its application to action recognition. In: Proceedings 32 Besl P J, McKay N D. Method for registration of 3-D shapes. In: Proceedings of SPIE, 1992. 1611: 586–606 33 Chen Y, Medioni G. Object modelling by registration of multiple range images. Image Vision Computing, 1992, 10: bundle adjustment. J Visual Commun Image Representation, 2014, 25: 904–915 of the 15th ACM International Conference on Multimedia, Augsburg, 2007. 357–360 2086 https://engine.scichina.com/doi/10.1360/SSI-2021-0009 中国科学 : 信息科学 第 51 卷 第 12 期 145–155 34 Rusinkiewicz S. A symmetric objective function for ICP. ACM Trans Graph, 2019, 38: 1–7 35 Chang A, Dai A, Funkhouser T, et al. Matterport3D: learning from RGB-D data in indoor environments. In: Proceedings of International Conference on 3D Vision, Qingdao, 2017. 667–676 36 Park S, Schöps T, Pollefeys M. Illumination change robustness in direct visual SLAM. In: Proceedings of IEEE International Conference on Robotics and Automation (ICRA), Singapore, 2017. 4523–4530 Extraction and registration of 3D lines by fusing gradient information and neighboring point cloud distribution Yongwei MIAO1,2* , Yingting DAI1 , Haipeng WANG1 , Fuchang LIU2 & Jinrong WANG2 1. College of Information Science and Technology, Zhejiang Sci-Tech University, Hangzhou 310018, China; 2. College of Information Science and Technology, Hangzhou Normal University, Hangzhou 311121, China * Corresponding author. E-mail: ywmiao@zstu.edu.cn Abstract The traditional point-based scene reconstruction scheme always leads to inaccurate 3D reconstruction results due to its lack of scene texture and object occlusions. With the help of geometric characteristics and line features of 3D point cloud scenes, a novel extraction, matching, and registration method of 3D line features is presented by fusing RGB gradients and the spatial distribution of neighboring point clouds. Firstly, the supporting region of 3D linear segments with similar gradient directions can be determined by the gradients of an RGB scene image. Secondly, owing to the neighboring geometric features contained in the depth map, the point set of boundary lines and folded edge lines can also be extracted according to the spatial distribution of the current point and its neighboring points. The 3D line features can thus be fitted by these extracted point sets respectively. Thirdly, taking each extracted 3D line feature as a central axis, the supporting region can be constructed as the co-axial cylinder with the same thickness of each cylindrical layer. According to the 3D gradient statistics of point cloud within each cylindrical layer, we can calculate an intrinsic descriptor for each 3D line, which can be adopted to match 3D line features between scene frames. Finally, a novel line-to-line iterative closest line registration algorithm is introduced to compute the rotation and translation transformations, and the inter-frame point cloud scene data can be registered efficiently. The experimental results illustrate that the proposed line feature-based scheme has high registration efficiency, less computational cost, accurate registration, and strong robustness when compared with the existing line feature extraction and point-based registration methods. Keywords point cloud scenes, 3D lines, line feature extraction, line registration, 3D reconstruction 2087 https://engine.scichina.com/doi/10.1360/SSI-2021-0009 缪永伟等: 融合梯度信息和邻域点云分布的 3D 线特征提取与配准 Yongwei MIAO was born in 1971. He received his Ph.D. degree in computer graphics from the State Key Laboratory of CAD and CG, Zhejiang University in 2007. He is a professor at Zhejiang SciTech University, and also a visiting professor of Hangzhou Normal University. His research interests include computer graphics, digital geometry processing, 3D computer vision, machine learning and deep learning. Yingting DAI was born in 1991. She is a master candidate at Zhejiang SciTech University. Her research interests include 3D computer vision and SLAM. Fuchang LIU was born in 1982. He received his Ph.D. degree in computer science from Nanjing University of Science and Technology in 2009. He is an associate professor at Hangzhou Normal University. His research interests include computer graphics, scene understanding, and 3D computer vision. Jinrong WANG was born in 1973. He received his Ph.D. degree in computer graphics from the State Key Laboratory of CAD and CG, Zhejiang University in 2012. He is an assistant professor at Hangzhou Normal University. His research interests include computer graphics, digital geometry processing, and 3D computer vision. 2088 https://engine.scichina.com/doi/10.1360/SSI-2021-0009