不在自动驾驶公司,但是博士课题和3D检测相关。猜一猜,就当检验一下学习成果了。
PointPillars,Complex Yolo这类基于Bird Eye View和2D CNN的应该是最受业界欢迎的。因为2D CNN的效率高,工具链成熟,硬件支持好。PiontPillars当年发论文刚出来的时候,帧率惊人的高,仔细一看,用了TensorRT加速。后来的论文经常黑这一点,说PointPillars的速度是unfair comparison,因为别人的网络都是原生TensorFlow或者Pytorch在跑。而这恰恰是这个方法的闪光点:容易部署。几乎全是二维卷积和Pooling,是个加速芯片都支持。基于纯3D表示的方法,绕不开PointNet++,3D Conv或者他们的变种,速度高不到哪儿去,而且基本都会卡在硬件部署上。GPU部署的时候还能硬着头皮给TensorRT写PlugIn,硬件如果是FPGA那就慢慢去写IP Core吧。在ASIC上部署限制就更多了。
另外2D CNN的量化压缩,理论和工具链都比较成熟。那些真·3D算子,INT8量化一下会发生什么还真的不太好说。
至于性能什么的,可以靠trick往上堆嘛,魔改loss,加数据增强,堆数据。大力出奇迹。
另外个人觉得最近的基于Range Image的方法比如RangeRCNN也是值得关注的。但是RangeRCNN为了刷到SOTA的性能,结构还是过于复杂了。尝试简化一下或许也能得到不错的折中效果。
最后是个人吐槽时间。学术界搞3D检测还是以在KITTI等数据集上刷高AP为主,基本无视落地需求。比如PointRCNN,性能确实高,但是一想到要让这玩意儿落地,感觉就大事不妙。KITTI上的AP已经被刷的非常高了,不管是idea还是提升余地,感觉都快被榨干了。但是路上跑的智能车还是智障的一匹。工业界和学术界隐约有种分道扬镳的意思。求求学术界大佬们水论文之余关注一下落地的工作,人类会感谢你们的(水论文还是让我这种没毕业的来吧哈哈哈)