前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >3D点云two-stage目标检测方法优化综述

3D点云two-stage目标检测方法优化综述

作者头像
3D视觉工坊
发布2020-12-11 10:26:00
9930
发布2020-12-11 10:26:00
举报
文章被收录于专栏:3D视觉从入门到精通

前言

和二维图像目标检测一样,3D点云目标检测除了按照输入模态划分为基于点云、基于单目、基于双目或者是多模态融合的方法。也可以按照对proposal的提出和优化分为one-stage、two-stage甚至three-stage的方法。当然也可以再根据是否设置anchor分为anchor-based和anchor-free的工作。下图表示了目前的一些近两年的文章,包括了室内和室外的点云目标检测算法。

这一篇文章核心介绍一些two-sgate的方法中的refine阶段怎么做的。

1. 为啥要做两阶段方法

当然在工业界目前为了能够实时都是以one-stage的方法居多,两阶段的方法优点是精度高,回归准但是缺点是速度慢,所以在很多刷榜的任务中,在不考虑精度的前提下都是采用two-stage的方法为主,two-stage方法在学术界可以将精度推进一部分,而目前点云目标检测的方法中两阶段方法由最初的尝试(19年下半段)到现在发展成存在一定的套路。

2. two-sgate 的第二阶段,refine怎么做?

先做一点笔者的个人总结,以前的refine工作(ICCV19以前)更多的是在前一步的基础上进一步的精确定位,例如F-Pointnet则是首先根据二维检测结果投影到3D点云中以大致确定bbox的位置,随后根据设计的pointntet点云网络得到更加精确的回归信息。而后的发展则是多为这样的操作:(1)作者利用了之前网络没有考虑到的信息或者结构(2)该信息或者该结构提取到的信息通过第二阶段融入到现有的proposal中做进一步优化。

F-pointnet

就读者看到的最早的文章是F-pointnet,准确而言是一个三阶段的方法,这里的refine工作可以理解成从二维图像检测到3D目标后,通过视锥投影得到在点云场景中的位置,然后再根据一个衍生的pointnet做进一步的refine。这个方法更像是一个阶段性“回归”bbox的过程,不像是进一步做精细refine的过程

PointRCNN

发表在CVPR19上的文章,如下图所示的网络结构,图的上栏表示根据点提proposals的过程,下栏表示采用一个MLP编码结构将proposals周围的特征聚合得到refine的特征,然后根据proposals的内点作为pointnet的网络输入做进一步的回归。

Fast-PointRcnn

发表在ICCV19,这里的refine工作就显得很直接了当了,左下的voxel-RPN网络即上目前大火的second1.5,根据SECOND和anchor-based的方法提出proposals就完成了第一阶段的proposals提取,然后第二阶段是将voxel的卷积特征、原始场景的点云信息通过检索在proposals内点中进行融合,这里的refinenet也是一个简单的pointnet,对proposals中所有的点进行进一步refine的操作。

STD

也是发表在ICCV19,效果很好,目前仍然在KITTI榜单上第12名,值得一提的是今天(7/24)霸榜长达大半年的方法PV-RCNN被更新下去了,可以期待一下现在第一名的工作~

STD的方法准确来说也是一个point-based的方法,下图也可以清晰的看的出来PGM网路作为第一阶段提出proposals,后续的pointspool模块也就是refine的工作,这里作者还采用了一些根据IOU的策略对refine的结果做进一步的优化和处理。

PV-RCNN

笔者将上面的refine工作和下面的refine工作先做一个简单的区分,首先前面介绍到的refine工作都是比较单一的通过proposals回到原始点云场景中的点上,然后根据这些点做进一步的refine,采用的refine方式也多是pointnet回归。而下面重点介绍的refien工作则是有存在一定的套路可以使用的。 这篇文章的解读已经很多了,作者自己的讲解中也说到这个方法是想 融合point和voxel二者的优点,其中proposals由voxel-based的backbone提出,然后第二阶段的refine也是在proposal内部的点上集成point的feature,这里作者设计的融合方法和前面提到的文章的最大的不同就是grid的使用。之前的refine的方法尽管也都是在原始的点上进行的,(partA2这篇文章有在BEV上做过),但是不可避免的一个问题是每一个proposals中的点个数一样,同时点的分布也是不同的,以前的方法都是直接采用pointnet网络将batch这个维度直接和point这个维度融合在一起。而PVRCNN的refine网络不一样的是对每一个proposas内部均匀划分设置了6×6×6个格点,而这些格点会通过插值的方式得到原始点云的特征,最终是在这些格点中进行refine工作。

所谓均匀的格点就如下图所示。其中红色的这种均匀的点就是作者自己设置的,然后灰色的点是原始点云的点,可以通过特征插值的方式(3NN)将原始点云的点插值给均匀设置的点,这样设置点后,每一个proposal的点个数一致。

进一步的,可以理解为,因为voxel-backbone的效果很好,所以作者将这一块用来做第一阶段的refine,然后作者想要将point-feature融入到该方法中,因此设计了融合模块也就是refinne网络,后续的很多two-stage的研究都是基于如下的模式去做,也就是首先想要融合某些信息(如point信息或者image信息),然后通过特征提取,再通过proposals回到点云上,在点云上将额外的特征进行融合,最后再采用MLP做优化就可以了,如果自己做研究,完全是可以按照这一个套路来。

3DCVF & MMF

3DCVF是今年ECCV20的研究工作,MMF是CVPR19的研究工作,二者都是采用的MMF的refine方式,这里以3D-CVF为例,在上一篇文章中也已经讲解到了这个融合了image信息的研究工作,同样的该网络的第一阶段也是采用的second1.5,然后主要是在refine网络中将Image信息融合进去。也正应了上面的那个模式,即首先想要将Image信息融合做目标检测,第一阶段都使用second提出proposals(第一阶段的deature-map是融合特征的).第二阶段则是将信息融合进去。

具体的refine网络如下所示,首先也是在bbox表面设置一些特征点,由于本文采用的是Image信息融合,所以在设计refine网络时,先是回到iamge域得到特征(也就是特征融合),然后再采用pointnet对点信息融合做refine。

笔者总结

如果想要精度更高,两阶段的方法是不可避免的(二维目前anchor-free的精度就很高了)。所以在做研究时,可以多多观察哪些信息是还没被利用起来的,然后根据上面画的那个模式因地制宜的设计自己的网络,如果精度提升,那就可以了。

本文仅做学术分享,如有侵权,请联系删文。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-07-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 3D视觉工坊 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 为啥要做两阶段方法
  • 2. two-sgate 的第二阶段,refine怎么做?
    • F-pointnet
      • PointRCNN
        • Fast-PointRcnn
          • STD
            • PV-RCNN
              • 3DCVF & MMF
              • 笔者总结
              相关产品与服务
              图像处理
              图像处理基于腾讯云深度学习等人工智能技术,提供综合性的图像优化处理服务,包括图像质量评估、图像清晰度增强、图像智能裁剪等。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档