目录

1、配置环境

1.1 利用conda新建一个环境并激活

1.2 安装pytorch

1.3 更新bashrc环境

2、安装DeeplabV3

2.1 克隆代码

2.2 下载数据集和预训练模型

3、测试算法

4、制作VOC数据集

4.1 转VOC格式

4.2 项目数据准备

5、训练验证数据集

5.1 visdom可视化

5.2 训练网络

5.3  验证模型

6、cityscapes数据集的训练及制作

6.1 训练cityscapes数据集

6.2 cityscapes数据集的制作


1、配置环境

1.1 利用conda新建一个环境并激活

conda create -n deeplabv3 python=3.8
conda activate deeplabv3

1.2 安装pytorch

conda install pytorch torchvision cudatoolkit=11.3 -c pytorch
//11.3为电脑cuda的版本,其他版本也可以

1.3 更新bashrc环境

alias python='/home/cxl/anaconda3/envs/deeplabv3/bin/python3.8'
source ~/.bashrc

2、安装DeeplabV3

2.1 克隆代码

git clone https://github.com/VainF/DeepLabV3Plus-Pytorch.git
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

2.2 下载数据集和预训练模型

数据集:链接: https://pan.baidu.com/s/1eiPyD6Esjihiph9yCTYv0Q 提取码: qrcl

权重:链接: https://pan.baidu.com/s/1-CE9WUVkyhg64YD6IDwL9g 提取码: t4wt

下载到DeepLabV3Plus-Pytorch/datasets/data目录下并解压
解压命令
tar xvf VOCtrainval_06-Nov-2007.tar
tar xvf VOCtest_06-Nov-2007.tar
tar xvf VOCtrainval_11-May-2012.tar将训练模型放在weight文件夹中

3、测试算法

使用deeplabv3plus_mobilenet模型

单张图片
python predict.py --input datasets/data/VOCdevkit/VOC2007/JPEGImages/000001.jpg --dataset voc --model deeplabv3plus_mobilenet --ckpt weights/best_deeplabv3plus_mobilenet_voc_os16.pth --save_val_results_to test_results
文件夹图片
python predict.py --input datasets/data/VOCdevkit/VOC2007/JPEGImages --dataset voc --model deeplabv3plus_mobilenet --ckpt weights/best_deeplabv3plus_mobilenet_voc_os16.pth --save_val_results_to test_results
cityscapes
python predict.py --input datasets/data/JPEGImages --dataset cityscapes --model deeplabv3plus_mobilenet --ckpt weights/best_deeplabv3plus_mobilenet_cityscapes_os16.pth --save_val_results_to test_results

使用deeplabv3_mobilenet模型

python predict.py --input datasets/data/VOCdevkit/VOC2007/JPEGImages/000001.jpg --dataset voc --model deeplabv3_mobilenet --ckpt weights/best_deeplabv3_mobilenet_voc_os16.pth --save_val_results_to test_results
python predict.py --input datasets/data/VOCdevkit/VOC2007/JPEGImages --dataset voc --model deeplabv3_mobilenet --ckpt weights/best_deeplabv3_mobilenet_voc_os16.pth --save_val_results_to test_results

4、制作VOC数据集

4.1 转VOC格式

labelme官方转化代码,roadscene_train为图片和json混合的文件

labelme/examples/semantic_segmentation at main · wkentaro/labelme · GitHub

训练数据集
python labelme2voc.py roadscene_train roadscene_train/data_dataset_voc --labels
labels.txt
验证数据集
python labelme2voc.py roadscene_val roadscene_val/data_dataset_voc --labels
labels.txt

其中labels.txt文件是自己定义的类别

4.2 项目数据准备

在DeepLabV3Plus-Pytorch/datasets/data文件夹下,创建目录结构如下:
└── VOCdevkit
     ├── VOC2007
        ├── ImageSets
        ├── JPEGImages
        └── SegmentationClass
其中:
JPEGImages放所有的数据集图片;
SegmentationClass放标注的数据集掩码文件;
ImageSets/Segmentation下存放训练集、验证集、测试集划分文件
train.txt给出了训练集图片文件的列表(不含文件名后缀)
val.txt给出了验证集图片文件的列表
trainval.txt给出了训练集和验证集图片文件的列表
test.txt给出了测试集图片文件的列表

txt文件名可用一下命令获得,随后用gedit的替换排序去掉后缀名

find . -name "*.*" > lists.txt

5、训练验证数据集

5.1 visdom可视化

#install visdom
pip install visdomanaconda3/envs/deeplabv3/lib/python3.8/site-packages/visdom
注释掉server.py文件中函数download_scripts_and_run()中的一句
#download_scripts()# Run visdom server
python -m visdom.server

5.2 训练网络

使用deeplabv3plus_mobilenet模型

python main.py --model deeplabv3plus_mobilenet --enable_vis --vis_port 8097 --gpu_id 0 --year 2007 --crop_val --lr 0.01 --crop_size 513 --batch_size 16 --output_stride 16 --num_classes 6 --total_itrs 1000 --ckpt weights/best_deeplabv3plus_mobilenet_voc_os16.pthbatch_size根据电脑性能做调整
num_classes 为种类个数+1
--ckpt 为预训练权重文件

visdom可视化

训练好的模型在checkpoints文件夹中

5.3  验证模型

性能指标统计:用的验证数据集

python main.py --model deeplabv3plus_mobilenet --gpu_id 0 --year 2007 --crop_val --lr 0.01 --crop_size 513 --batch_size 16 --output_stride 16 --ckpt checkpoints/best_deeplabv3plus_mobilenet_voc_os16.pth --test_only --save_val_results

图片测试

python predict.py --input datasets/data/VOCdevkit/VOC2007/JPEGImages/img001.jpg --dataset voc --model deeplabv3plus_mobilenet--ckpt checkpoints/best_deeplabv3plus_mobilenet_voc_os16.pth --save_val_results_to test_results1 --crop_size 513

6、cityscapes数据集的训练及制作

6.1 训练cityscapes数据集

1、下载cityscapes数据集

Cityscapes Dataset – Semantic Understanding of Urban Street Scenes

2、下载官网数据集功能文件cityscapesScripts-master

将文件一定放对目录

cityscapesScripts/cityscapesscripts at master · mcordts/cityscapesScripts · GitHub

3、预处理数据集

  • helpers/label.py文件对训练种类标签进行选择

trainID这一列,凡是255的表示均没有加入训练分类。修改trainID和不感兴趣的ignoreInEval改为True

直接运行一下python文件

  • preparation/createTrainIdLabelImgs.py 将多边形格式的注释转换为带有标签ID的png图像,其中像素编码可以在“labels.py”中定义的“训练ID”。
  • preparation/createTrainIdInstanceImgs.py 将多边形格式的注释转换为带有实例ID的png图像,其中像素编码由“train ID”组成的实例ID。

4、训练

先打开visdom,不然会报错ConnectionRefusedError: [Errno 111] Connection refused

--vis_port 后面的数字是自己visdom生成的数字

python -m visdom.server
#训练
python main.py --model deeplabv3plus_mobilenet --dataset cityscapes --enable_vis --vis_port 8097 --gpu_id 0  --lr 0.1  --crop_size 321 --batch_size 2 --output_stride 16 --data_root ./datasets/data/cityscapes --ckpt weights/best_deeplabv3plus_mobilenet_cityscapes_os16.pth
#验证
python main.py --model deeplabv3plus_mobilenet --dataset cityscapes --enable_vis --vis_port 8097 --gpu_id 0 --year 2012_aug --crop_val --lr 0.01 --crop_size 513 --batch_size 16 --output_stride 16 --ckpt checkpoints/best_deeplabv3plus_mobilenet_cityscapes_os16.pth --test_only --save_val_results

6.2 cityscapes数据集的制作

工程(二)——DeeplabV3+语义分割训练自制数据集相关推荐

  1. win10+tensorflow+cuda+cudnn,实现deeplabv3语义分割自己的数据集

    ** 参考: ** 1.使用 deeplabv3+ 训练自己的数据集经验总结 2.window环境下进行deeplab_tensorflow实验之第一阶段 3.window环境下进行deeplab_t ...

  2. 基于MindSpore复现Deeplabv3—语义分割

    基于MindSpore复现Deeplabv3-语义分割 实验介绍 本实验主要介绍使用MindSpore深度学习框架在PASCAL VOC2012数据集上训练Deeplabv3网络模型.本实验使用了Mi ...

  3. 遥感图像语义分割各公开数据集

    遥感图像语义分割数据集 1. Gaofen Image Dataset(GID) 2. ISPRS Test Project on Urban Classification and 3D Buildi ...

  4. 憨批的语义分割重制版9——Pytorch 搭建自己的DeeplabV3+语义分割平台

    憨批的语义分割重制版9--Pytorch 搭建自己的DeeplabV3+语义分割平台 注意事项 学习前言 什么是DeeplabV3+模型 代码下载 DeeplabV3+实现思路 一.预测部分 1.主干 ...

  5. DeepLabV3+语义分割实战

    DeepLabV3+语义分割实战 语义分割是计算机视觉的一项重要任务,本文使用Jittor框架实现了DeepLabV3+语义分割模型. DeepLabV3+论文:https://arxiv.org/p ...

  6. 制作用于图像语义分割训练的标签数据【图像分割】【labelme】

    制作用于图像语义分割训练的标签数据 *写在前面 一.使用labelme制作json数据 1.安装labelme 2.利用labelme制作json数据 二.将json数据转化为图像数据 1.单个jso ...

  7. 2020年AI竞赛获奖方案复盘系列(二) 遥感语义分割竞赛trick-2020华为云人工智能大赛

    前言 这是去年博主参加的一个语义分割竞赛,最终取得了top3%(13/377).这是博主第一次参加遥感图像语义分割竞赛,借着这次机会博主开始了语义分割的学习旅程,比起最终名次,博主更在意的是在这个过程 ...

  8. mmsegmentation 训练自制数据集全过程

    1.简介 mmsegmentation是目前比较全面和好用的用于分割模型的平台,原始的github链接 https://github.com/open-mmlab/mmsegmentation 2.G ...

  9. 类特征注意机制融合Deeplabv3+语义分割

    针对经典语义分割网络在高分辨率遥感图像语义分割中存在的边缘目标分割不准确.不同类型目标分割不一致.预测效率慢等问题,本文提出了一种融合改进的Deeplabv3+网络CFAMNet的分类特征注意机制,用 ...

最新文章

  1. 使用 $.grep() 方法
  2. C语言与C++ 中bool关键字的矛盾解决
  3. 深度拷贝 java_Java深度拷贝方式和性能对比
  4. 从蓝桥杯来谈Fibonacci数列
  5. Spring Boot框架敏感信息泄露的完整介绍与SRC实战(附专属字典与PoC)
  6. wltc循环多少公里_原来所有车都烧机油!但是烧多少才算正常你知道吗?
  7. NOI入门级:排序算法
  8. python二维元组元素的提取_如何从元组列表中提取第n个元素?
  9. Linux内核--基于Netfilter的内核级包过滤防火墙实现
  10. 启动和停止一个服务,修改服务的启动类型 Start and Stop Service for windows
  11. 微信小程序 添加卡券至微信卡券
  12. 苹果logo_苹果LOGO起拍价2万美元?
  13. air202c语言编程,Air202学习 五
  14. Unity Timeline自定义轨道
  15. iOS指纹识别(解锁)
  16. [面试] 各大IT公司校园招聘程序猿笔试、面试题集锦
  17. 新房子没网络,怎么用光猫和路由器上网
  18. java基础语法试题_请问有没有java基础语法的练习题?发个链接吧!?
  19. 快递与电商的恩怨纠纷
  20. 个人做的职业规划以及分析报告

热门文章

  1. windows7 旗舰版下载地址
  2. 大数据哪个省才是高考地狱_是一名数据科学家,确实是地狱附近最性感的工作...
  3. 基于联发科(MTK)MT8735平台的安卓4G全网通核心板
  4. Facebook等使用苹果源生分享
  5. 作为程序员,你一定要知道的十大经典排序算法!(详细解析)
  6. 实验9:Problem C: 农夫果园
  7. 判断平面图的库拉托夫斯基定理
  8. 如何给老师写信?收到斯坦福/UCL/CMU/NYU/UW的博士offer的经验
  9. 我犯了一个低级的C++的逻辑错误
  10. AI芯片加持,安防下一爆点会是边缘计算?