windows训练自己的语义分割

建议去ubuntu

我们开始

我这有2个版本

一个是deeplabv3-plus-pytorch

         链接:https://pan.baidu.com/s/1R1vWf1T6bPQMP7zKTsdCgQ 
提取码:a3ei

        

        

一个是unet   下面是连接

        mirrors / bubbliiiing / unet-pytorch · CODE CHINA

是没有权重的提前下载

官网的权重 链接: 百度网盘 请输入提取码 提取码: c3c2

然后就是制作数据集,

使用deeplabv3+训练自己数据集(迁移学习) - vcjmhg - 博客园 (cnblogs.com)

这个连接,看着做。我这2个不用转tfrecorde的格式

害怕我以后忘记

在python 终端

pip install labelme

activate labelme

    

labelme

标注工具 上面是命令

开始标注,我就不展示了,网上有大把的教程。

我们标志好的文件这样放  到时候可以方便我们在训练的时候直接拿。

开始跑第一个脚本   path放的是上面的json的路径

import os
#path = 'C:/Users/tj/Desktop/dd'  # path为labelme标注后的.json文件存放的路径
path = 'C:\\Users\\31319\\Desktop\\data\\json'
json_file = os.listdir(path)
for file in json_file:
    if(file.split('.')[1]=='json'):
        os.system("labelme_json_to_dataset  %s" % (path + '/' + file))  #
# C:/soft/ev4/venv/Scripts/labelme_json_to_dataset.exe  为labelme_json_to_dataset.exe的路径  path + '/' + file 为读取.json路径
    print(path + '/' + file)

跑完 你可以看见 1_json 文件  这个里面有4个东西

 

 

我们在跑第2个脚本  

path 是这些1_json 文件

output 就是我们之前新建的文件夹

import os
path = 'C:/Users/31319/Desktop/data/json/'
output='C:\\Users\\31319\\Desktop\\data\\1/'
fileDirs=os.listdir(path)
for fileDir in fileDirs:
    file=path+fileDir+"\\label.png"
    if(os.path.exists(file)):
        # 输出的文件直接以上层文件夹命名
        end= len(fileDir);
        fileName=fileDir[:end-5]
        os.rename(file,output+fileName+".png")

下载源码

打开C:\Users\31319\Desktop\unet-pytorch-main\VOCdevkit\VOC2007

 

 JPEGImages 

放原图

SegmentationClass

放png 也就是我们那个1文件夹

 在这个地方我们把我们的第一3个脚本拿出来

 

 跑一下这个脚本代码

import os
import random 
random.seed(0)
 
segfilepath=r'C:\Users\31319\Desktop\unet-pytorch-main\VOCdevkit\VOC2007\SegmentationClass'
saveBasePath=r"C:\Users\31319\Desktop\unet-pytorch-main\VOCdevkit\VOC2007\ImageSets\Segmentation"
 
#----------------------------------------------------------------------#
#   想要增加测试集修改trainval_percent
#   修改train_percent用于改变验证集的比例
#----------------------------------------------------------------------#
trainval_percent=1
train_percent=0.9

temp_seg = os.listdir(segfilepath)
total_seg = []
for seg in temp_seg:
    if seg.endswith(".png"):
        total_seg.append(seg)

num=len(total_seg)  
list=range(num)  
tv=int(num*trainval_percent)  
tr=int(tv*train_percent)  
trainval= random.sample(list,tv)  
train=random.sample(trainval,tr)  
 
print("train and val size",tv)
print("traub suze",tr)
ftrainval = open(os.path.join(saveBasePath,'trainval.txt'), 'w')  
ftest = open(os.path.join(saveBasePath,'test.txt'), 'w')  
ftrain = open(os.path.join(saveBasePath,'train.txt'), 'w')  
fval = open(os.path.join(saveBasePath,'val.txt'), 'w')  
 
for i  in list:  
    name=total_seg[i][:-4]+'\n'  
    if i in trainval:  
        ftrainval.write(name)  
        if i in train:  
            ftrain.write(name)  
        else:  
            fval.write(name)  
    else:  
        ftest.write(name)  
  
ftrainval.close()  
ftrain.close()  
fval.close()  
ftest .close()

把权重放在C:\Users\31319\Desktop\unet-pytorch-main\model_data

打开train.py  找到num_classes   我的是一个类别  所以 要1+1  也就是类别+1 

那个权重路径

开始运行   这是我的一个报错

 解决   在头文件加

import os
os.environ["KMP_DUPLICATE_LIB_OK"]="TRUE"

在次训练

 还有一个报错就是   

之前遇到的 

 

解决

开始测试

这是我们训练的权重

打开 unet  修改这个地方

 打开终端 输入  python predict.py img/1.jpg

 在输入你要测试图片的路径

                                                    

  

           

开始查看性能

 在改

 直接跑get-miou

就可以查看

看好31,32的路径

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

WangSaLe

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值