DEEPROUTE LAB | 同学!我们举办了一场线上Poster
【DEEPROUTE LAB栏目介绍】元戎启行是一家国际领先的L4级自动驾驶全栈解决方案提供商,为车企、Tier1、出行公司、物流企业等提供多应用场景、定制化的自动驾驶解决方案。本栏目是我们创办的自动驾驶学术产业前沿知识共享平台。我们将会不定期分享公司内部的Paper Reading,也会在这分享我们对行业以及最新技术进展的理解,期待有越来越多的同学爱上自动驾驶,加入这个行业!
本文是针对https://blog.nowcoder.net/n/375121a3c1b441bfb46953b0ebfa32d5 《TPCN: Temporal Point Cloud Networks for Motion Forecasting》的线上POSTER,同学们可以先看看原文,再一起来交流哦!
Question 01
非常好的运动预测新方法,想问此方法与传统EKF运动估计对比效果?此结合时间空间信息的网络可否拓展到3D检测?半监督、自监督、无监督的点云深度学习范式不管是用于点云目标检测和运动估计都还较少,作者认为视频和图像中的哪些无监督学习范式也能拓展到点云,无监督所学到的descriptor如何提高点云目标检测和运动估计的performance?
Author:
- argoverse 上面也有传统的方法;
- 我们比对过在我们自己的数据集上,ekf的运动估计不如很多deeplearning的方法也包含了tpcn;
- 时空多帧信息就是可以做时序的点云检测,我们也在尝试,从pointlevel的角度都是可以做融合的;
- 无监督我做得比较少,但是自监督方面点云的ego-motion scene flow都是自监督做得挺火的方法,对于prediction其实也有自监督的做法,包含了现在大热的contrastive learning其实在运动估计里面其实都可以做迁移
Question 02
粗略地看了一下:没看到inference time和memory cost。请问实时性和复杂度如何?point cloud video相关的工作应该目前还是比较慢和吃显存吧?
Author:
https://github.com/rusty1s/pytorch_scatter
实时性得看设备,以及当前frame内物体的数目,但是不会慢,因为我们采用了spconv,sparse conv以及gpu上面的scatter,gather,indexing,hashing的实现,速度挺美好的,而且spconv我们内部有更快的自定义版本,相关操作的参考实现
https://github.com/mit-han-lab/torchsparse
https://github.com/rusty1s/pytorch_scatter
Reply:
我个人感觉,如果应用到自动驾驶上的话,实时性还是非常重要,目前point cloud相关的工作。的确是设备越好速度越快,但是车上挂太贵的gpu,也不现实,一个车上如果挂两块v100,那也太扯了
Author:
几个关于点云实时性的工作,sparse conv,如果是dense convolution尽量减少feature map的size,(增大voxel size)
Reply:
sp conv 还是有局限性的。请问作者为什么没有尝试bev下的结构,用point pillars来做,或者用kpconv这种兼具实时性的point-wise工作呢?不过用voxel也有自身的优点,在pvrcnn里有明确的分析
Author:
kpconv performance跟point选择太重要了,看他们在semantickitti上的实验,迭代了1000次吧,要求的时间太长了,因此印象很差,pointpillar这种结构舍去了Z的信息,最早我们也使用了,参考我们去年的工作,但是使用spconv的话得到的是更加compact的表示,prediction这个任务稀疏性比点云还大。越来越多的工作把spconv的performance提升得更好了,比如今年的cylind3D
Reply:
是的,现在特别多工作选择用spread conv做为backbone,包括检测和place recognition领域也是,这样搭建出来的结构更简洁。不过我近期做6d pose的原因,一直在关注rgbd的利用,pixel和cloud之间的特征融合,用point wise的会更好。是我局限了。不过作者这个方向未来也可以cloud和rgb的融合,跟imvotenet一样,应该能起到很不错的提升效果
Question 03
抛开引入点云的形式来做预测的创新性,单纯问把目标建模成点云,相比之前lane graph和vector net的方式,本质上有更容易学习到更好的特征吗?为什么?
Author:
Prediction 任务非常适合用点云的思路去做,通过不同的表征方式,去学习更好的特点,vectornet的特征提取方式,也可以当作输入特征的一部分
Question 04
1.spatial module和temporal module用到的输入信息是一样的吗,都用了所有old trajectory上的数据?
2.temporal module是否可以看作是在多尺度的time interval上对轨迹上特征进行的一种增强?
3.和GCN-based方法比,对空间拓扑结构信息建模的优势体现在哪里?
4.对最后用point-wise feature做预测的方式不是太明白,对每一个point都会产生预测吗?
5.对出现概率比较低的轨迹能否正确预测?
6.训练时长是多少,采用了几块GPU训练?
Author:
1.补充材料里面有比较详细的网路结构 所有的都用上了;
2. temporal module就是多尺度的特征提取,时间尺度上的金字塔;
3. 跟GCN相比,处理效率以及modeling的方式更加符合我们做点云的人的直觉;
4.不会的,会做一个instance pooling;
5. 在corner case上面处理还挺好的,我们有做更细致metric但不是argoverse上,以5. 8卡的2080TI为例,32个batch训练,不到8小时可以收敛,argoverse训练集
Question 05
文中提到的spatial module, 输入是这个点的坐标值(x,y), 为什么不把语义信息输入,比如(x, y, 车)。而且所有的时刻的点一起输入,是否应该根据不同的时刻对点进行区分?
Author:
argoverse数据集暂时只有车,但是确实我们可以加入其它的属性当成额外的特征,比如vectornet之类的特征,另外,对于不同时刻我们建立了一套indexing系统,所以其实我们是做了区分的,详细可以参看我们论文里面的time indexing系统,我们区分的时候,比如multi-interval learning里面是对每个车一定时刻进行pooling,另外有了这套indexing系统其实我们也是可以做,同一个时刻下,所有不同物体在那一时刻的pooling操作。我们cvpr之后的实验也加入了这个我们称之为single-frame-pooling,效果有一定的提升,后续的会继续挖掘
Question 06
Motion Forecasting主要的任务是对时空特征的表征,将空间跟时间的轨迹点mapping到点云系统的想法非常好,想问一下如何空间上和时间上的信息是如何Joint Learning的,scatter,gather,unique等操作在其中起到的作用各是什么呢?另外map的feature是如何统一到整个框架中来的?
Author:
这是大概的网络结构,在附录里面可见,scatter起到的作用就是类似于把同一个index的特征clustering聚合一把,gathering就是反过来的操作,unique是为了得到不同领域下,相同clustering的物体,相当于hashing的作用。
map的话,我们也离散化成点,进行处理,只不过map没有时间的概念是静止的物体
巨人网络成长空间 53人发布
查看3道真题和解析