本次介绍一个发表于Computer Vision and Image Understanding的经典三维点云描述子RCS。
论文地址:Jiaqi Yang, Qian Zhang, Ke Xian, Yang Xiao, Zhiguo Cao, “Rotationalcontour ignatures for both real-valued and binary feature representations of 3Dlocal shape”, Computer Vision and Image Understanding, vol. 160, pp. 133–147,2017.
程序地址:https://github.com/TaylorAmy1995/3D-feature-description.git
1.引言
虽然上一次介绍的 TOLDI 描述子具有稳定、鉴别能力强的优点,但是 TOLDI 维度很高(1200 维)而且是浮点型描述子,这将不利于高效率的特征匹配和存储。在图像分析中,轮廓是一种稳定且具有一定描述能力的特征,而且解码图像轮廓所占用的维度资源远低于利用图像全部像素的方式。因此,这一次本文介绍基于轮廓签名描述的特征表达并借助旋转投影机制增强轮廓对于形状的描述能力,形成旋转轮廓特征(RCS)。
随着传感器技术的发展,例如微软 Kinect、谷歌 Tango 手机和平板的出现,点云数据的获取变得和图像一样便捷,人们可以利用电脑、手机和平板设备获得点云数据。在这些移动设备上的点云处理对于存储和时效性有着苛刻的要求。因此,点云的局部特征一方面需要具有一些本征属性例如抗刚体变换、局部模式鉴别能力以及在常见干扰下能保持稳定,另一方面需要使自身轻量化(快速、低维)来适应移动设备上的点云处理应用。传统的点云局部特征描述子可以按照是否基于 LRF 分为两类,目前非基于 LRF 的特征面临着描述性不足的问题。尽管基于 LRF 的特征鉴别能力强,但是维度相对较高,将占用大量内存空间并导致特征匹配耗时巨大。因此,实际应用中对于低维且描述能力、鲁棒性强的局部点云特征有着迫切的需求。
另一个强调的问题就是点云局部二值化特征表达。二值化特征和浮点型特征相比有诸多优势,例如极为快速的特征匹配(二值化特征可直接由异或操作完成特征相似度计算)以及占用内存少。二值化特征对于机器人以及嵌入式平台尤为重要,因为这些平台对于计算实时性要求很高。在二维计算机视觉领域,图像局部描述子按照数据类型可以分为浮点型和二值化两类。浮点型的图像局部特征包括 SIFT(scale invariant feature transform)和 HOG(histogram of gradients)等。二值化图像局部特征包括 BRIEF(binary robust independent elementaryfeatures)和FREAK (fast retinakeypoint)等。然而在三维计算机视觉领域,目前只有B-SHOT(Binary SHOT)特征为点云局部二值化特征。遗憾的是,B-SHOT 特征仍然存在 SHOT 特征对于点云数据分辨率变化敏感的问题并且特征鉴别能力有限。因此 B-SHOT难以得到令人满意的特征匹配结果。
图 1 RCS 特征描述机制示意图
在以上分析的促使下,本论文提出了旋转轮廓特征(rotationalcontour signatures,RCS)来同时达到对局部曲面的浮点型和二值化特征描述。图 1 展现了 RCS 特征描述的基本机制:我们首先不断地旋转一个三维物体来获得多视角的信息,然后在每个视角下观察三维形状在该视角投影下具有的二维轮廓来感知三维几何信息。RCS利用该机制来“看”局部形状。因此,作者提出了利用二维轮廓来表征三维形状。我们表明二维投影图的轮廓线索能够有效地、鲁棒地对局部三维曲面进行描述。不可避免的是,仅仅利用二维轮廓来表征整个投影图将丢失许多信息。为了解决该问题,我们将局部曲面在局部坐标系LRF 内不断旋转来捕获多视角信息。此外,提出了 RCS 的多个二值化变种,分别由基于最大信息熵的二值化、量化以及几何二值化编码计算得出。这些 RCS 二值化特征一方面和大多数二值化特征一样具有轻量级的优点,另一方面表现出了良好的描述性和鲁棒性。在三个数据库中展开的实验以及和大量现有描述子的对比验证了RCS 特征的有效性。
贡献主要包括以下两点:
• 一个基于多视角机制、二维轮廓特征表达的RCS 点云局部特征。RCS 具有描述性强、时效性高以及很强的抗噪声、点云分辨率变化、嘈杂和遮挡的能力;
• 基于初始提出的浮点型 RCS,该论文提出了多个 RCS 的二值化变种。和现存的 BSHOT不同的是,我们的 RCS 二值化特征具有很强的鉴别能力和鲁棒性并且极为紧凑。
图 2 RCS 特征描述机制示意图
2.旋转轮廓特征(RCS)
本节中,我们将介绍旋转轮廓特征 RCS 的浮点型版本。RCS 的计算流程如图 3-2 所示,包括 LRF 建立、局部曲面旋转、轮廓签名计算、子特征归一化和特征融合。
2.1局部坐标系建立
令 P 为输入的三维模型(点云数据),如果输入模型为三维网格,我们仅仅利用网格模型的顶点数据来计算 RCS 因为 RCS 的计算对象为三维无序点云。这也说明 RCS 特征的计算不需要对初始三维数据进行复杂的曲面重构例如三角化。对 P 中的任一关键点 p,计算其球形邻域点集为 Q = {qi : kqi − pk ≤ r},其中 r 为球形邻域的支撑半径。为了抗刚体变换和充分利用局部空间信息,我们采用和TOLDI 类似的方法为 Q 计算一个局部坐标系 LRF。在点 p 的局部坐标系可表达为L(p) = {x(p), x(p) × z(p), z(p)},其中 x(p) 和 z(p) 分别为 LRF的 x 轴和 z 轴。
因此,LRF 的计算主要包括 z 轴和 x 轴的计算。研究表明使用 p 周围的一小部分邻域点来计算 z 轴、Q 的边缘区域来计算 x 轴可以获得更高的可重复性。因此,我们选取一小部分邻域点集,来计算 z 轴。对于 x 轴,考虑到仅仅在 Q的边缘区域选取一个点将易受噪声干扰,则考虑 Q 边缘区域的所有点。令Qx = {qi x : 0.85 × r ≤ kqi x − pk ≤ r} 为 Q 的边缘的区域,x 轴的定义为:
其中 kx 为Qx 内点数,vi 是向量 pqx i 在 z(p) 切平面上 T 的投影。wi 是关于 qi x 在平面 T 上投影距离的一个权重,被定义为:
值得注意的是,wi 决定着 Qx 内点对于 x 轴计算的贡献,因为投影距离可以在几何信息较弱的区域内也提供很高的可重复性。最后,y 轴由 x 轴以及 z 轴之间的向量叉乘所得。
2.2. 局部曲面旋转
当LRF建立后,我们将局部曲面Q旋转至LRF坐标系内得到一个变换后的曲面Q0。为了解码Q0 的多视角信息,我们将Q0同时绕着L(p)中三个轴分别旋转{θi, i = 1, 2, . . . , Nθ}角度。算法中,旋转角度每次递增 30◦,因为该角度数值被证明能在特征冗余以及信息解码的全面性中取得一个较好的折中。
给定一个旋转角度θ,对应的旋转矩阵为:
所以,Nθ 个被旋转后的曲面可以由 Q0 · Rxyz(θ) 获得,记为 {Q0(θi), i = 1, 2, . . . , Nθ}。
2.3.轮廓签名编码和RCS 计算
目前,我们已经得到了 Nθ 个旋转后的局部曲面。对于曲面 Q0(θi) 我们需要设计一种合适的表征来描述当前视角反映的形状几何信息。相关的基于视角的特征描述方法包括Snapshots、RoPS 和TOLDI,它们利用所有邻域点的局部深度或点密度来进行特征编码。尽管这些方法能保证较高的鉴别能力,然而它们的稳定性不足因为局部曲面可能掺杂噪声等干扰。因此,仅仅利用局部曲面在当前视角投影下的轮廓区域进行特征编码。
具体来说,我们选定一个和 L(p) 的 xy 平面垂直的视点。首先,Q0(θi)中的所有点被投影在 xy 平面上从而产生一个二维图 M(θi)。其次,我们定义 Nc 条在 xy 平面上、关键点 p 为起点的射线。其中,射线和二维图 M(θi) 的交汇点被定义为轮廓点(如图 2(d)中黄色圆点所示)。值得注意的是,第一条射线和 x 轴重合而且任意两条相邻的射线之间的夹角是相等的。该规则的设定类似于 SIFT 中关于主方向的设定,以保证 RCS中每个轮廓签名特征在经历刚体变换时保持不变。最终,对于曲面 Q0(θi) 我们可以得到Nc个轮廓点 {˜qk 0 (θi), k = 1,2, . . . , Nc} 。
为了达到有效、快速的轮廓信息编码目的,RCS采用轮廓点到关键点 p 之间的距离来进行特征描述,得到子特征 f(θi):
其中,d(p,˜ qk 0 (θi)) = kp− ˜ qk 0 (θi)k 的取值范围为 [0, r]。通过这个流程,我们可以为所有的旋转曲面计算一个子特征并得到 Nθ 个子特征。最终的 RCS 特征由将这些经过归一化后的子特征串接所得,即:
这里优先考虑操作的便捷性和时效性所以采用串接操作来融合多视角下的轮廓签名(签名即带有空间信息的特征表达,和直方图一起为最常见的两种点云局部特征表达方式)特征。RCS 特征因此由 Nθ × Nc 个浮点数组成。目前,只有距离特征值(关键点到轮廓点之间的距离)被赋予给轮廓点,其它特征例如纹理和曲率也能同时加入轮廓点的属性集内。这将进一步增强 RCS 的描述性和特征对于 RGB-D 数据的扩展性。
3.RCS 的二值化变种
本节将上一节介绍的浮点型 RCS 特征扩展为多个二值化特征。其中,我们提出了三种转化方法包括基于最大信息熵的二值化、量化以及几何二值化编码。图 3 给出了三种转化方法的示意图,下面我们将详述各个方法。
3.1.基于最大信息熵的二值化
阈值转化法可能是一种最直接的二值转化方法,所以我们首先尝试这种方法。由于RCS 最初由一系列轮廓签名特征形成,我们将逐次转化每个子特征,例如 θi 旋转角下对应的 fθi 签名特征,并将它们串接成一个位串。令 |fθi| 为归一化后的 fθi 特征,f(i) 表示特征 f 的第 i 个特征值,我们根据如下方法从 |fθi| 中计算一个位串 fθB i_threshold:
图 3 RCS 二值化的方法。(a)基于最大信息熵的二值化。(b)量化,我们采用 2 位-量化作为示例。(c)几何二值化编码。上述二值化编码过程被应用于所有轮廓签名(图 2)。
这里,t∗ 为一个待定的阈值,其可以从一些训练集中学习或调参得到。图像阈值转化法中的最大信息熵准则已被成功应用于如何决定合适的分割阈值。RCS将其应用于 t∗的取值从而获得最大的信息熵。应用场景中,最大信息熵对应的情况为位串中 0 的数量等于 1 的数量。该方法有两个优点:首先,我们能避免繁琐的调参工作从而使得 RCS充分自动化;其次,特征描述子的目的即充分描述隐含在局部曲面中的信息,所以转换后的位串需要最大化信息量。基于最大信息熵的二值化方法,我们能够最大化最后位串的信息量。如图 3(a)所示,在一维的情况下,最佳 t∗ 的取值将是|fθi| 所有元素的中值:
其中 Nc 为子特征维度,即轮廓点的数量。
3.2.量化
最初始的 RCS 特征中每一维度值由一浮点数来表达。在归一化的基础上,我们可以用多个位来表征一个浮点数从而减少内存占用。阈值转化法是将 N 个浮点数转化为 N个位,而量化方法不同的是其需要 NB(NB>1)位来表征一个浮点数。不可否认的是,用更多的位来拟合浮点数可以达到更精准的效果。然而当初始浮点型特征包含噪声的时候,适当减少位数将得到更好的效果。将考察 NB 分别为 2、4 和 6 位情况下的量化性能。图 3(b)展示了 2 位-量化的示意图。
3.3.几何二值化
目前为止已经介绍了阈值转化法和量化两种方法来转换浮点型 RCS。这里我们尝试将 RCS 具有的独特几何属性结合进二值化编码方法当中。回顾 RCS 中轮廓签名的计算过程,我们利用了轮廓点到距离点的距离来描述轮廓,从而生成了一系列线段(图 3(e)),线段长度的变化即能反映该轮廓签名的几何特征。在二值化条件的限定下,我们可以很直观地通过比较相邻的线段长度来反映线段长度的变化。因此,提出如下二值化方法:
其中 |fθi| 的第一个维度(当 i =1 时)将和最后一个维度比较从而形成一个闭环。由于包含了对比轮廓几何信息,我们将该方法命名为几何二值化方法。和阈值转化法一样,该方法将 N 个浮点数转化为 N 个位。
以上就是RCS描述子的算法过程以及对应的二值化方法,具体的实验效果与扩展应用读者们可以详细的阅读对应论文。