【DeepLabv3+】训练自己的数据集(小白版)

代码来源于代码
本地训练,设备3050

一、数据集准备

1.数据集创建
在原始的根目录VOCdevkit下创建数据集Crack500文件夹,下面再创建三个文件夹。

ImageSets下创建文件夹,命名为Segmentation。里面存放生成的txt文件
JPEGImages 放原始的图片
SegmentationClass 放原始图片对应的mask图片的png格式

【DeepLabv3+】训练自己的数据集(小白版)_第1张图片

2.数据集的处理
需要用到根目录下的voc_annotation.py,目的是获得训练用的train.txt以及val.txt。(自己的数据集需要进行这一步操作)
改为自己的数据集路径,一般为相对地址。
【DeepLabv3+】训练自己的数据集(小白版)_第2张图片

二、训练

1.改参数
train.py文件中

主要修改:
num_classes
backbone
model_path
txt文件路径

【DeepLabv3+】训练自己的数据集(小白版)_第3张图片
【DeepLabv3+】训练自己的数据集(小白版)_第4张图片
这里是在VOCdevkit下新建的一个数据集Crack500,需要修改txt文件地址
【DeepLabv3+】训练自己的数据集(小白版)_第5张图片
同理,根目录下的utils>dataloader.py下的读取图像的路径也需要修改
在这里插入图片描述
2.运行train.py
3.结果存放在根目录下的logs文件夹下
【DeepLabv3+】训练自己的数据集(小白版)_第6张图片
4.运行get_miou.py
运行之前需要去deeplab.py里修改model_path、num_classes和backbone,
刚才运行好的pth文件在log里存放。

三、预测

训练结果预测需要用到两个文件,分别是deeplab.pypredict.py
需要去deeplab.py里面修改model_path以及num_classes,这两个参数必须要修改。

model_path指向训练好的权值文件,在logs文件夹里。
num_classes指向检测类别的个数+1。

单张图片检测时,可以在predict.py里修改参数"mode=dir_predict"
【DeepLabv3+】训练自己的数据集(小白版)_第7张图片
原始图像放在img里,检测的图片放在img_out里,如下图所示。

可能遇到的报错
【DeepLabv3+】训练自己的数据集(小白版)_第8张图片
解决办法:
utils>callbacks.py下
【DeepLabv3+】训练自己的数据集(小白版)_第9张图片

参考文献:deeplabv3+

你可能感兴趣的:(深度学习,pytorch)