写在前面的话:啊。。这,好久没有更新了0.0趁着这个间隙好好总结一下自己做的东西吧亲!

--------------------------------------------------------------------------------------------------------------------------

     前面简单谈了一下CT-LineMod算法的设计思考、背景、原理,这一篇主要讲一下设计实验验证模型的有效。为了测试所设计的CT-LineMod算法针对复杂场景下的多目标重叠物体的识别以及6D位姿估计的能力,在旨在测试算法物体识别与位姿估计能力的Six-Challenge比赛中的针对复杂场景下重叠物体的识别能力测试的数据集Doumanoglou数据集上进行了测试。

一、数据集介绍

     Doumanoglou数据集是用于测试算法在复杂场景下多目标重叠物体的识别能力的数据集,包含训练集和测试集两部分。数据集主要包括两种物体以及包含对应物体的三种场景,分别是咖啡杯、果汁盒两种物体以及只由咖啡杯、只由果汁盒、咖啡杯和果汁盒混合的三种识别场景。Doumanoglou数据集包含训练集和测试集两部分,训练集包含4740张渲染图像而测试集包含177张RGB-D图像,物体分布在距离相机455mm-1076mm范围、0-360度方位角范围、-58度到88度仰角范围进行训练。其中,测试集的咖啡杯场景一个场景包含10-15个咖啡杯,果汁盒场景包含4-6个果汁盒,混合场景包含两种物体共计10-15个物体。

      6D位姿估计指的是对于物体在各种场景下准确估计出其位置信息(position)以及方向信息(orientation),称为物体的六自由度姿势估计,即6D位姿估计。在完成特征的计算、选取以及特征块分类后,CT-LineMod算法利用聚类分割后的模板进行匹配。聚类模板分别在水平和垂直方向上利用滑动窗口进行滑窗匹配,并计算模板与实际图像的相似度。最终得到的物体位置结果包含位置(position)信息X、Y、Z以及四个方向(orientation)信息。

二、实验设计

   在Patch-LineMod算法作者meiqua对LineMod算法进行了更新,设计了对识别到的特征点标注到原图片后输出结果的方法。同时,引入召回率以及F1值来表示模型在应对严重遮挡情况下在Doumanoglou数据集上的识别能力,在评价的过程中包含检测到的正确的结果、检测到的错误的结果以及未检测到的6D位姿估计结果。

ps: F1值是Six-Challenge比赛用于评价模型识别到的结果与真实场景中所有的结果的匹配度,是用来反映算法识别率与识别精度的参考值。N-top值指的是在所有的位姿估计值中具有最高自信度的前N个估计值。

三、实验结果

1.特征分类结果

   CT-LineMod算法在特征点的选择结果如下图所示:

       其中:a1行是一个咖啡杯在360度范围内距离1076mm训练距离不同观察视角下的原始数据,a2则是果汁盒在同样条件下的原始数据。b1、b2行为咖啡杯和果汁盒在对应位置处的掩模图像,c1行、c2行、e1行与e2行为咖啡杯和果汁盒的初始特征图,也可视为原始LineMod算法的特征点聚类分布图。d1、d2行为Patch-LineMod算法基于K-means方法形成的特征点聚类分布图,而f1、f2行则显示了本文所设计的算法CT-LineMod利用Müller-Lyer错觉效应启发而完成的特征向量从7D空间映射到3D特征空间的特征点聚类分布图。

  2.特征点聚类结果

    其实就是把LineMod或者Patch-LineMod用的通过特征点xyz位置分成特征块(k-means)后进行匹配这种形式,加入了边缘特征(7D特征向量-详见第五篇),后面通过t-SNE降维为更新后的K-means再分块。所以在特征分类结果中就可以看到边缘、顶部或者其他比较特殊的特征就分到了一个特征块,而这也和我们自身观察物体的方式比较类似。

3.6D位姿估计结果

    在完成特征的计算、选取以及特征块分类后,算法利用聚类分割后的模板进行匹配。聚类模板分别在水平和垂直方向上利用滑动窗口进行滑窗匹配,并计算模板与实际图像的相似度。本文最终得到的物体位置结果包含位置信息X、Y、Z以及四个方向信息。

     如图所示为咖啡杯部分实验结果。第一行为测试图处理得到的特征点,第二行为模型自信度最高的识别结果,第三行为测试图所识别的所有结果,第四行为测试图的深度图像。左侧为Patch-LineMod算法的识别结果,右侧为设计的CT-LineMod算法的识别结果。

4.目标识别结果

     在Doumanoglou数据集进行了测试,包含由两个物体组成的三个场景。其中,场景1只包含咖啡杯,测试集共56张RGB-D图像;场景2只包含果汁盒,测试集共60张RGB-D图像;场景3为二者的混合场景,包含61张RGB-D图片。在总计177个测试样本上进行了测试与评估。LineMod、Patch-LineMod、CT-LineMod算法在三种场景下召回率结果如下:

场景

LineMod

Patch-LineMod

CT-LineMod

咖啡杯

0.051

0.412

0.443

果汁盒

0.253

0.439

0.459

混合

0.017

0.373

0.384

平均值

0.107

0.408

0.422

     除此之外,比较不同的经典算法在Doumanoglou数据集上N-top=1(最高自信度的目标)时的F1分数。测试了LineMod算法、PPF(点对点特征)算法、Hough-Forest算法、Doumanoglou算法和本文提出的模型的F1值,平均值为该算法在两个数据集性能的平均F1值。结果如表所示。

算法

咖啡杯

果汁盒

平均值

LineMod

0.819

0.494

0.656

PPF

0.867

0.604

0.735

Hough Forest

0.877

0.870

0.873

Doumanoglou

0.932

0.819

0.875

CT-LineMod

0.947

0.913

0.93

     在只判断最高自信度(N-top=1)的目标匹配度时,五种算法均可以准确识别到正确的最明显的目标。随着时间推移各算法的F1分数(N-top=1)逐步提高,CT-LineMod算法在两个场景下最终达到了0.947和0.913分,证明模型的准确率大大提高,并且达到了平均0.93分的水平。并且,在果汁盒场景的F1分数CT-LineMod算法有了显著的提高。这在一定程度上证明了模型具备更高的准确度以及更出色的识别能力。

-------------------------------------------------------------------------------------------------------------------

利用三篇(五六七)简单介绍了CT-LineMod算法的原理及实验设计,不过这部分识别结果也用在了机器人抓取上,接下来进入到机器人系统设计部分后可以结合起来一起介绍。