原文首发微信公众号【自动驾驶之心】:一个专注自动驾驶与AI的社区(https://mp.weixin.qq.com/s/NK-0tfm_5KxmOfFHpK5mBA)
1摘要
语义分割是自动驾驶中视觉理解的重要组成部分。然而当前SOTA的模型都非常复杂和繁琐,因此不适合部署在计算资源受限且耗时要求较低的车载芯片平台上。本文深入研究了更紧凑、更高效的模型以解决上述问题,这些模型能够部署在低内存嵌入式系统上,同时满足实时推理的需求。本文讨论了该领域一些优秀的工作,根据它们的主要贡献进行归类,最后本文评估了在相同软硬件条件下模型的推理速度,这些条件代表了一个典型的高性能GPU和低内存嵌入式GPU的实际部署场景。本文的实验结果表明,许多工作能够在资源受限的硬件上实现性能和耗时的平衡。
2数据集
常见的分割数据集有CamVid[1], KITTI[2], Cityscapes[3], Berkeley DeepDrive[4], Audi Autonomous Driving[5], PASCAL VOC2012[6], NYU Depth V2[7]等。
3高效深度 CNN 的技术
降采样和上采样
降采样:通过对输入图像进行降采样以显著减少计算量、增加推理速度,同时牺牲了输出的精度。一般而言,大型复杂模型均需要使用降采样来提升感受野,常用的下采样操作是 max/average pooling。
上采样:分割任务与其他视觉任务不同,通常希望保持输入输出的维度,因此必须使用上采样恢复分辨率,常见的上采样方法又双线性插值、逆卷积等。
高效卷积
高效卷积的核心思想是通过堆叠卷积层在扩大模型感受野的同时,减少模型参数量和计算量。常见的高效卷积有Depthwise-Separable Convolution[8],Grouped Convolution[9],Asymmetric Convolution[10], Bottleneck[11], Dilated Convolution[12]。
残差连接
残差连接通[11]常用于分割网络中以改善反向传播期间的梯度流和重用前一层特征。
主干网络
许多语义分割模型采用若干广泛使用的主干网络作为特征提取器,常见的主干有ResNet[11],Squeezenet[13],Shufflenet[14],Mobilenet[15],MobileNetV2[16],EfficientNet[17]。
4杰出工作
编码器-解码器
语义分割的核心结构便是编码器-解码器。经典的模型有SegNet、U-net、Efficient Neural Network (ENet)、SQNet等等。
多分支
基于编码器-解码器的方法的一个主要挑战是保留在网络早期提取的高分辨率细节,因此一些多分支工作将原始输入图像以两个或更多尺度送入网络。经典模型如Image Cascade Network (ICNet)、ContextNet、Guided Upsampling Network (GUN)等。
元学习
实时语义分割领域中大多数元学习模型都属于NAS的范畴,是一种自动化设计神经网络结构的过程的方法。NAS 通常只涉及可提供最佳结果的架构,但是在实时要求下,架构大小、复杂性和推理时间构成了优化功能中应考虑的其他因素。经典的算法有SqueezeNAS、FasterSeg、Graph-Guided Architecture Search (GAS) 等。
注意力
注意力机制已经被证明是一种适用于视觉任务的关键技术,但一般而言计算繁琐且低效。尽管仍不适合实时推理,但一些工作如Deep Feature Aggregation (DFANet)、Lightweight Encoder-Decoder (LEDNet)等降低了注意力的复杂性。
训练优化
最后一类是采用现有网络结构并改变训练过程以提升模型性能的方法,常见的如知识蒸馏Structured Knowledge Distillation、Knowledge Adaptation等
5评估
本文在Nvidia RTX 3090 GPU和嵌入式平台Nvidia Jetson Xavier AGX Developer Kit两种平台下验证了不同算法的耗时和性能。
对比如下表所示:
6结论
本文讨论了为解决资源受限硬件上的低耗时语义分割算法,并根据它们对该领域的主要贡献进行讨论和分类。最后本文进行了自己的实验,在相同的软硬件条件下分析算法的速度和性能,为模型选型提供参考,对未来工作的优化提供思考方向。
7参考文献
[1] G. J. Brostow, J. Fauqueur and R. Cipolla, "Semantic object classes in video: A high-definition ground truth database," Pattern Recognit. Lett., vol. 30, p. 88–97, 2009.
[2] A. Geiger, P. Lenz, C. Stiller and R. Urtasun, "Vision meets robotics: The KITTI dataset," Int. J. Robotics Res., vol. 32, p. 1231–1237, 2013.
[3] M. Cordts, M. Omran, S. Ramos, T. Rehfeld, M. Enzweiler, R. Benenson, U. Franke, S. Roth and B. Schiele, "The Cityscapes Dataset for Semantic Urban Scene Understanding," in 2016 IEEE Conference on Computer Vision and Pattern Recognition, CVPR 2016, Las Vegas, NV, USA, June 27-30, 2016, 2016.
[4] F. Yu, W. Xian, Y. Chen, F. Liu, M. Liao, V. Madhavan and T. Darrell, "BDD100K: A Diverse Driving Video Database with Scalable Annotation Tooling," CoRR, vol. abs/1805.04687, 2018.
[5] J. Geyer, Y. Kassahun, M. Mahmudi, X. Ricou, R. Durgesh, A. S. Chung, L. Hauswald, V. H. Pham, M. Mühlegg, S. Dorn, T. Fernandez, M. Jänicke, S. Mirashi, C. Savani, M. Sturm, O. Vorobiov, M. Oelker, S. Garreis and P. Schuberth, "A2D2: Audi Autonomous Driving Dataset," CoRR, vol. abs/2004.06320, 2020.
[6] M. Everingham, L. Van Gool, C. K. I. Williams, J. Winn and A. Zisserman, The PASCAL Visual Object Classes Challenge 2012 (VOC2012) Results.
[7] N. Silberman, P. Kohli and R. Fergus, "Indoor Segmentation and Support Inference from RGBD Images," in European Conference on Computer Vision, 2012.
[8] L. Sifre and S. Mallat, Rigid-Motion Scattering for Texture Classification, 2014.
[9] A. Krizhevsky, I. Sutskever and G. E. Hinton, "ImageNet Classification with Deep Convolutional Neural Networks," in Advances in Neural Information Processing Systems, 2012.
[10] M. Jaderberg, A. Vedaldi and A. Zisserman, Speeding up Convolutional Neural Networks with Low Rank Expansions, 2014.
[11] K. He, X. Zhang, S. Ren and J. Sun, "Deep Residual Learning for Image Recognition," in Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2016.
[12] G. Papandreou, I. Kokkinos and P.-A. Savalle, "Modeling Local and Global Deformations in Deep Learning: Epitomic Convolution, Multiple Instance Learning, and Sliding Window Detection," in Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2015.
[13] F. N. Iandola, S. Han, M. W. Moskewicz, K. Ashraf, W. J. Dally and K. Keutzer, SqueezeNet: AlexNet-level accuracy with 50x fewer parameters and <0.5MB model size, 2016.
[14] X. Zhang, X. Zhou, M. Lin and J. Sun, "ShuffleNet: An Extremely Efficient Convolutional Neural Network for Mobile Devices," in Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2018.
[15] A. G. Howard, M. Zhu, B. Chen, D. Kalenichenko, W. Wang, T. Weyand, M. Andreetto and H. Adam, MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications, 2017.
[16] M. Sandler, A. Howard, M. Zhu, A. Zhmoginov and L.-C. Chen, "MobileNetV2: Inverted Residuals and Linear Bottlenecks," in Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2018.
[17] M. Tan and Q. Le, "EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks," in Proceedings of the 36th International Conference on Machine Learning, 2019.