A Comparative Study of Real-Time Semantic Segmentation for Autonomous Driving

Mennatullah Siam, Mostafa Gamal, Moemen Abdel-Razek, Senthil Yogamani, Martin Jagersand, Hong Zhang; Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR) Workshops, 2018, pp. 587-597

Abstract


Semantic segmentation is a critical module in robotics related applications, especially autonomous driving. Most of the research on semantic segmentation is focused on improving the accuracy with less attention paid to computationally efficient solutions. Majority of the efficient semantic segmentation algorithms have customized optimizations without scalability and there is no systematic way to compare them. In this paper, we present a real-time segmentation benchmarking framework and study various segmentation algorithms for autonomous driving. We implemented a generic meta-architecture via a decoupled design where different types of encoders and decoders can be plugged in independently. We provide several example encoders including VGG16, Resnet18, MobileNet, and ShuffleNet and decoders including SkipNet, UNet and Dilation Frontend. The framework is scalable for addition of new encoders and decoders developed in the community for other vision tasks. We performed detailed experimental analysis on cityscapes dataset for various combinations of encoder and decoder. The modular framework enabled rapid prototyping of a custom efficient architecture which provides x143 GFLOPs reduction compared to SegNet and runs real-time at 15 fps on NVIDIA Jetson TX2. The source code of the framework is publicly available.

Related Material


[pdf]
[bibtex]
@InProceedings{Siam_2018_CVPR_Workshops,
author = {Siam, Mennatullah and Gamal, Mostafa and Abdel-Razek, Moemen and Yogamani, Senthil and Jagersand, Martin and Zhang, Hong},
title = {A Comparative Study of Real-Time Semantic Segmentation for Autonomous Driving},
booktitle = {Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR) Workshops},
month = {June},
year = {2018}
}