实时语义分割比较研究
来自以下论文中使用的官方TensorFlow代码:
- RTSEG: REAL-TIME SEMANTIC SEGMENTATION COMPARATIVE STUDY 用于比较不同的实时语义分割体系结构。
- SHUFFLESEG: REAL-TIME SEMANTIC SEGMENTATION NETWORK 它引入了一个基于ShuffleNet单元的新的快速实时语义分割网络。
描述
语义分割有利于机器人相关的应用,尤其是自动驾驶。大多数关于语义分割的研究只是提高分割模型的准确性,而很少关注计算有效的解决方案。此前学界在这方面已有的少量工作并没有提供评估分割不同设计选择的原则性方法。在RTSeg中,我们通过提供实时语义分割基准测试框架和特征提取和解码方法的解耦设计来弥补这一缺憾。代码和实验结果在CityScapes数据集中进行了评估。
已有模型
编码器 | Skip | U-Net | DilationV1 | DilationV2 |
---|---|---|---|---|
VGG-16 | 是 | 是 | 是 | 没有 |
RESNET-18 | 是 | 是 | 是 | 没有 |
MobileNet | 是 | 是 | 是 | 是 |
的ShuffleNet | 是 | 是 | 是 | 是 |
注意:后续会发布更多模型的评估。
报告的结果
测试集
模型 | GFLOPS | Class IoU | Class IIoU | Category IoU | Category iIoU |
---|---|---|---|---|---|
SegNet | 286.03 | 56.1 | 34.2 | 79.8 | 66.4 |
ENET | 3.83 | 58.3 | 24.4 | 80.4 | 64.0 |
DeepLab | – | 70.4 | 42.6 | 86.4 | 67.7 |
SkipNet-VGG16 | – | 65.3 | 41.7 | 85.7 | 70.1 |
ShuffleSeg | 2.0 | 58.3 | 32.4 | 80.2 | 62.2 |
SkipNet-MobileNet | 6.2 | 61.5 | 35.2 | 82.0 | 63.0 |
验证集
编码器 | 解码器 | Coarse | mIoU |
---|---|---|---|
MobileNet | SkipNet | 没有 | 61.3 |
ShuffleNet | SkipNet | 没有 | 55.5 |
RESNET-18 | UNET | 没有 | 57.9 |
MobileNet | UNET | 没有 | 61.0 |
ShuffleNet | UNET | 没有 | 57.0 |
MobileNet | Dilation | 没有 | 57.8 |
ShuffleNet | Dilation | 没有 | 53.9 |
MobileNet | SkipNet | 是 | 62.4 |
ShuffleNet | SkipNet | 是 | 59.3 |
** GFLOPs是在图像分辨率360×640上计算的。但是,mIOU(s)是根据CityScapes评估脚本1024×2048所需的官方图片分辨率计算的。**
用法
- 从这里下载训练权重,处理过的数据和训练好的图表
- 解压pretrained_weights.zip
- 在data/下解压full_cityscapes_res.zip
- 在experiments/中解压unet_resnet18.zip /
运行
run.sh文件为运行不同的架构提供了一个很好的例子。看看这个文件。
run.sh文件中运行命令的示例:
python3 main.py --load_config=[config_file_name].yaml [train/test] [Trainer Class Name] [Model Class Name]
- SkipNet-MobileNet和SkipNet-ShuffleNet的测试结果可在Cityscapes Benchmark上公开获得。
python3 main.py --load_config=unet_resnet18_test.yaml test Train LinkNET
- 要测量运行时间,请运行推理模式。
python3 main.py --load_config=unet_resnet18_test.yaml inference Train LinkNET
- 要在不同的数据集或模型上运行,请
config/experiments_config/unet_resnet18_test.yaml
选取其中一个配置文件,并对其进行修改或根据需要创建另一个.yaml配置文件。
注意:当前的代码不包含测量推理时间的优化代码,最终的代码将很快发布。
主要依赖
Python 3 and above
tensorflow 1.3.0/1.4.0
numpy 1.13.1
tqdm 4.15.0
matplotlib 2.0.2
pillow 4.2.1
PyYAML 3.12
安装所有依赖库
pip install -r [requirements_gpu.txt] or [requirements.txt]
引文
如果您发现RTSeg对您的研究有用,请考虑引用下面的论文:
@ARTICLE{2018arXiv180302758S,
author = {{Siam}, M. and {Gamal}, M. and {Abdel-Razek}, M. and {Yogamani}, S. and
{Jagersand}, M.},
title = "{RTSeg: Real-time Semantic Segmentation Comparative Study}",
journal = {ArXiv e-prints},
archivePrefix = "arXiv",
eprint = {1803.02758},
primaryClass = "cs.CV",
keywords = {Computer Science - Computer Vision and Pattern Recognition},
year = 2018,
month = mar,
adsurl = {http://adsabs.harvard.edu/abs/2018arXiv180302758S},
adsnote = {Provided by the SAO/NASA Astrophysics Data System}
}
https://github.com/MSiam/TFSegmentation