自己研究课题涉及到图像语义分割,所以最近复现了Deeplabv3+,在KITTI数据集上进行实验,kitti的语义分割数据集是按照cityspace的数据集制作的所有可以用cityspaces的训练模型来预测kitti的图像。
Github代码地址:https://github.com/VainF/DeepLabV3Plus-Pytorch
原文地址:https://arxiv.org/pdf/1802.02611.pdf
1.环境配置
1.1笔者环境
Ubuntu 18.04
cuda 9.0 cudnn7.6
Anaconda3
gcc 4.8
conda list 如下图:
接下来创建虚拟环境,配置上述环境
1.2 代码环境配置
创建虚拟环境:conda create -n deeplabv3+ python=3.7
启动安装环境:conda/source activate deeplabv3+
安装requirements.txt:pip install -r requirements.txt
requirements.txt如下:
查看是否安装成功:
1、通过conda list
2、代码检测:
import torch
print(torch.__version__)
print(torch.cuda.is_available())
输出pytorch版本号和True,即配置成功
注:其余环境可以在运行程序报错后依次pip安装,cuda无法调用的话,检查Pytorch对应Cuda和cudnn版本
1.3 下载数据集和预训练权重
(1)Kitti数据集下载:
官网主页:http://www.cvlibs.net/datasets/kitti/index.php
Kitti原文(数据集种类介绍):http://www.cvlibs.net/publications/Geiger2013IJRR.pdf
本文实验数据集网盘链接:raw_data 2011_09_29_drive_0004
提取码:2hy6
(2)预训练权重下载
腾讯微云:https://share.weiyun.com/qqx78Pv5
(本文只用到 best_deeplabv3plus_mobilenet_cityscapes_os16.pth
)
下载后,在工程文件夹中新建checkpoints文件夹,将权重放在该文件夹下
2. 预测
2.1 单张图片预测
1. cd 到工程文件夹下
2. 终端运行:python predict.py --input xxx.png --dataset cityscapes --model deeplabv3plus_mobilenet --ckpt checkpoints best_deeplabv3plus_mobilenet_cityscapes_os16.pth --save_val_results_to test_results
3. xxx.png为单张预测图片的路径
4. best_deeplabv3plus_mobilenet_cityscapes_os16.pth为预训练权重路径
5. 预测结果保存在test_results文件夹下
2.2 文件夹下所有图片预测
1. 与预测单张图片类似,只需将图片路径改为文件夹路径
2. 终端运行:python predict.py --input xxx(文件夹路径) --dataset cityscapes --model deeplabv3plus_mobilenet --ckpt checkpoints /best_deeplabv3plus_mobilenet_cityscapes_os16.pth --save_val_results_to test_results
2.3 预测过程展示
3. 结果展示
单张图片预测效果:
预测文件夹下所有图片: