3D点云 返回

  • 3D点云数据下的目标检测、追踪任务小结

    • 发布人:peadmin
    • 阅读量:19
  • 1、按照对点云数据的处理方式对检测、跟踪任务分类

    按照对点云数据的处理方式,可以将论文分为三类:1、体素处理方法(Voxel-based) 2、原始点云处理方法(Point-based) 3、两种处理方式混合使用(Point-based & Voxel-based)。

    1.1、体素处理方法(Voxel-based)

    体素处理方法将首先对空间中的点云数据进行体素化,体素化过程为此类方法来了如下的优点和缺点:

    优点:1)体素化后的点云数据将在内存中有序存储,有利于减小随机内存访问,增加数据运算效率。

    2)得益体素化带来的数据有序存储和降采样,此类方法可以处理数量级较大的点云数据。

    3)体素化后的数据可以高效的使用空间卷积,有利于提取多尺度、多层次的局部特征信息。

    缺点:1)体素化过程将不可避免的带来信息丢失,信息丢失程度与选择的分辨率紧密相关。

    2)内存占用大小与分辨率几乎呈三次方关系,当分辨率选择较大时,所需内存将非常大。

    3)由于点云在空间中是稀疏的,若不采用稀疏卷积,将有大量的无意义运算,降低运算效率

    代表论文为

    1)VoxelNet:

    此方法将点云数据体素化后,提取每个体素中的特征,然后将不同体素的特征放在一起进行全局特征提取。非常典型的Voxel-based方法。

    2)FaFNet:

    此方法将原始点云数据投影到2D鸟瞰图中(特殊体素形式)进行特征提取,然后将多帧的数据按时间维度拼接在一起。使用3D卷积处理拼接后的数据,进行目标检测、预测、追踪。

    3)Center-based Detector:

    此方法以VoxelNet或者PointPillars作为backbone进行原始的特征提取,然后使用center-based的方法进行后续的目标检测追踪任务。

    1.2、原始点云数据方法(Point-based)

    此类方法不对点云数据进进行体素化,直接在原始点云数据上进行处理,主要具有如下优点和缺点:

    优点: 1)由于没有下采样过程,信息保留完整。

    2)可以采集到区域内比较完整、语义特征丰富的特征信息。

    缺点: 1)数据在内存中无序存储,在使用时会有较多的随机内存访问,进而降低数据运算效率。

    2)由于点云数据的无序性,难以直接使用空间卷积进行特征提取

    读到的相关论文比较多,如

    PointNet:

    经典的针对无序点云数据的处理方法,能够有效的提取点云数据的全局特征信息

    PointNet++:

    PointNet的升级版,加入了采样和聚类模块,在提取全局特征信息的过程中也能有效提取局部特征信息。

    VoteNet:

    在3D点云数据中引入了霍夫投票机制,利用采样点的到更接近目标选票点,利用选票点优化Propoals生成。

    3DSSD:

    单阶段目标检测算法,其认为两阶段方法中的SA、FP、细化模块太过耗时,故提出F- FPS以代替部分上述部分模块,在保证精度的情况下,提高速度。

     

    P2B:

    使用PointNet++提取模板区域和搜索区域的特征并进行拼接,之后利用拼接的特征估计出被追踪物体的所在位置。

     

    Box aware Net:

    在P2B的基础上提取初始给定Box的形状特征,将形状特征与点特征融合使用,估计被追踪物体的所在位置。

    半闲:Box-Aware for SOT __点云数据下的目标追踪10 赞同 · 1 评论文章

     

    PointTrackNet:

    该方法使用PointNet++进行前景和背景的分割,在前景点上使用检测算法检测物体。将前后帧共同放入网络中预测物体的运动情况,进而实现不同帧之间的物体匹配、轨迹生成。

     

    1.3、混合处理方法(Point-based & Voxel-based)

    简单来说,Point-based的方法可以获得较丰富的语义特征,Voxel-based的方法具有较高的运算效率。故不少团队提出将两种方法混合使用,结合两种优点。

    1)Fast Point RCNN:

    作者利用体素化后的点云数据进行一阶段的目标检测,提出粗糙的预测框。将预测框映射回到原始点云数据后,利用预测框内及周围的点云数据进行二阶段的目标检测,即对预测框的优化

    该方法将体素化处理过程视为一个采样器,采样出关键区域的原始点云送入Point-based的特征提取方法,减小运算量。

     

    2)STD:

    作者在原始点云上进行球形聚类,利用不同的聚类点集生成一系列的Propoals。同时使用PointNet++对原始点云做特征提取。将Propoals的点与PN++中提取的对应特征结合后投影到鸟瞰视角(特殊的体素化)。最后在鸟瞰视角的特征图上提出最终的预测框

    该方法中首先使用Point-based的方法进行特征提取、Propoals生成,然后送入Voxel-based的方法中提出最终的预测框。

     

    3)PV-RCNN:

    作者首先将数据进行体素化,使用空间卷积进行多尺度多层次的特征提取,多次卷积后,原始数据被压缩到2D的鸟瞰图同时在卷积的每一个层次使用Point-based方法中的set abstraction(SA模块)进行体素级的聚类和特征提取。根据鸟瞰图特征进行一阶段的目标检测框预测,然后使用SA模块提取的特征对预测框进行优化

    该方法最大的特色是使用在体素数据中使用Point-based方法中的SA模块进行特征提取。两种方法进行了模块级的方法融合

    4)PV-CNN:

    此方法着力于降低运算过程中的内存使用和提高运算效率。使用两条分支,Voxle分支下对数据进行体素化,空间卷积特征提取,然然后使用去体素化将得到的特征返还到每个点。Point分支下将每个点的信息单独放入MLP进行特征提取。最后将两条分支下得到的特征融合,进行后续处理。

    作者在体素化时使用了较低的分辨率,避免了巨大的内存占用。在Point分支下对每个点的信息单独处理,避免了大量的随机内存访问。最后结合两者特征,在多任务上取得了较好的效果。

    2、按照匹配方式对跟踪算法进行分类

    按照跟踪算法中的匹配方式,可以分为三类:1、基于检测的追踪(Track by detection) 2、基于Siamese框架的追踪 3、基于点的追踪

    2.1、基于检测的追踪

    此类方法的检测对象通常是多个目标。思路可以概括为对每一帧进行一次目标检测得到一些Box,然后将不同帧的同一物体的Box关联起来,形成轨迹。主要的优缺点可以概括为:

    优点:1) 相较于其他两种方法,这种方法没有累计误差,每一帧都重新进行检测获得目标

    2) 可以更好的面对目标丢失问题,当目标重新出现时,只需要进行检测和匹配即可

    3) 可以实现多目标的跟踪

    4) 完成匹配后,可以很好的利用Box的时序信息对检测结果进行优化

    缺点: 1) 慢。很明显,对整个数据来一轮检测和匹配,肯定是一件比较耗时的事情

    2) 由于没有模板,所以除了匹配这一方法,很难实现同一类别不同物体的区分

    这一类算法的代表论文如下:

    1)PointTrackNet:

    该方法使用PointNet++进行前景和背景的分割,在前景点上使用检测算法检测物体。将前后帧共同放入网络中预测物体的运动情况,进而实现不同帧之间的物体匹配、轨迹生成。

    主要特点

    没有使用传统的卡尔曼滤波和粒子滤波对轨迹进行预测,而是将两帧数据放入网络中预测点级别的位移,进而对轨迹进行预测。文中介绍称这样可以解决传统滤波算法不能解决的急转弯等物体剧烈运动的问题

    重要技巧:

    滤波FPS、使用Mini-PointNet进行点级的关联

    2)Center-based 3D Object Detection and Tracking:

    该方法从2D的center-based算法拓展而来。首先对所有数据进行一次目标检测。然后将前后帧共同放入网络中预测不同物体的速度,将后一帧的物体投影回到前一帧进行匹配。

    主要特点:

    和PointTrackNet相比,他是直接在回归的时候预测每个物体的速度,并且是后一帧往前一帧投影。而PTN中是预测每个点的位移,然后对被检测对象Box中的每一个点的预测位移做平均作为这个物体的位移。

    重要技巧:

    Map-view feature、中心点检测、特征都在点上

    3)FaFNet:

    此方法将原始点云数据投影到2D鸟瞰图中(特殊体素形式)进行特征提取,然后将多帧的数据按时间维度拼接在一起。使用3D卷积处理拼接后的数据,进行目标检测、预测、追踪。

    主要特点:

    相对于前面两种算法,该算法利用的是数帧数据进行预测(前面的用的是两帧)。每一帧检测结束后,与前面几帧的数据进行结合,向后预测 [公式] 帧物体的运动情况。每一帧的检测结果将与前面的预测结果进行结合得到融合后的Box,进而得到被追踪物体的运动轨迹

    重要技巧:

    投影到鸟瞰视角、Early Fusion和Late Fusion

    2.2、基于Siamese框架的目标追踪

    这种方法就是很干脆的将2D中的Siamese的追踪方法搬到3D来。主要思路就是计算搜索区域不同位置的点云特征,以及模板区域的点云特征。然后将得到的特征进行互相关计算找到响应值最大的地方作为目标的所在点。和2D中的追踪算法是非常类似的。

    优点:1) 非常经典传统的思路,在可行性上很有保障

    2) 由于对Candidate区域进行了一次较为完整的特征提取,相较于第三种方法,应该更不容易跟踪到类似的物体上去(这一点纯粹为我的揣测)

    缺点:1) 精度不高。由于3D空间中多了一维,同时点云较为稀疏,不容易定位到精准的Box

    代表论文:

    1)SC3D:

    使用Siamese在点云数据中进行目标跟踪的鼻祖之作(似乎也后继无人了hh)。将2D中的Siamese方法应用到了3D。

    主要特点:

    使用了编码解码网络,对搜索区域和模板区域的点云进行编码后还进行了一次解码,可以得到对点云更好的表述,增强了跟踪过程的健壮性。

    重要技巧:

    自编码模块

     

    2.3、基于点的追踪

    这类方法的出现,目前(2022.1.14)是直接掐死了前一种方法。效果有非常明显的提升。以Point代替Box进行追踪。思路主要是:将搜索区域的点尽可能的与模块区域有相同语义的点对应起来。然后利用完善的模板信息估计搜索区域中目标的中心位置,最后利用点的特征进行角度预测和对中心位置进行修正。这类方法跳过了Box级别的匹配,直接进行点级别的匹配,再利用点的特征进行Box的预测。

    优点:1 )精度高。这类方法使用原始点云数据进行处理,搜索区域小,可以获得较高的精度。

    2) 速度快。大多数运算是在点这一级别实现的,不仅比Siamese系列的方法快,也快于基于检测的方法

    缺点:1) 有累积误差。相比于检测的方法,该方法不断进行模板更新,垃圾模板也会更新进去,不断影响追踪。

    2) 不具备重跟踪能力。该类方法在前一帧的基础上,在小范围内进行搜索。一旦某一帧跟踪失败,后续基本没有可能找到正确的目标。

    代表论文:

    1) Point to Box

    本类算法的鼻祖了(给他也整个鼻祖当当)。分别对搜索区域模板区域做一个PointNet++得到多个采样点和对应的特征。利用特征将搜索区域的采样点模板区域的采样点对应起来实现点级别的匹配。随后利用模板区域的特征跟踪区域的坐标实现对跟踪目标的定位--->模板区域出特征,跟踪区域出坐标,这也就是这一类算法最核心的点了。

    主要特点:

    利用PointNet得到的特征进行点级别的匹配

    重要技巧:

    使用了VoteNet

    2) Box-aware Tracker

    当前此类算法性能最好的追踪器。该文认为前面的P2B等追踪算法忽略了非常重要的Box信息,即3D点云空间中的Box尺寸是没有畸变,不会发生变化的,应该将这个信息充分的利用起来。故P2B中使用特征进行点级的匹配,BAT使用Box坐标进行点级匹配,大大提高了准确率

    主要特点:

    有效的利用Box本身的尺寸信息

    重要技巧:

    使用了VoteNet、Box坐标预测

  • 2022-05-03

新闻推荐