(linux) ssd-pytorch深度学习2: 训练自己的数据集, gpu+anaconda+pycharm+RTX2080ti 笔记

6 篇文章 0 订阅

前言

  1. 如何在anconda创建ssd虚拟环境和用pycham为项目配置ssd虚拟环境见上一篇(linux)ssd深度学习1:pytorch环境配置gpu+anaconda+pycharm+RTX2080ti 笔记_chao_xy的博客

  1. 配置相应虚拟环境完成后打开pycharm终端应如下图

  1. ssd链接https://github.com/lufficc/SSD,下载并提取

数据集准备

  1. 在ssd根目录下新建datasets文件夹

  1. 在文件夹中新建VOC2007和VOC2012,VOC2012是VOC2007的复制内容

  1. 确认你的各文件为以下格式,完毕

  1. 如果你的图像为单通道灰度图像(一定要确认!!!要是以下方法还不行就放弃这个数据集,或者换SSD版本)

  1. 图像转换为三通道图像SSD训练单通道图像_BookIdiot的博客-CSDN博客

  1. 将xml 的 depth 改为3,参考 批量修改xml标注框坐标,类别名称,删除子节点,删除属性列表,根据xml切割图片_xml 批量修改_树和猫的博客-CSDN博客

# coding:utf-8
import os
import os.path
import xml.dom.minidom

path = r'D:\你的xml路径(最好备份一下)'
files = os.listdir(path)  # 得到文件夹下所有文件名称
for xmlFile in files:  # 遍历文件夹
    if xmlFile[-4:] in ['.xml']:
        dom = xml.dom.minidom.parse(os.path.join(path, xmlFile))
        root = dom.documentElement
        # 获取xml中depth对应节点
        name = root.getElementsByTagName('depth')
        for i in range(len(name)):
            if name[i].firstChild.data == '1':
                name[i].firstChild.data = '3'
        # 保存修改到xml文件中
        with open(os.path.join(path, xmlFile), 'w', encoding='UTF-8') as fh:
            dom.writexml(fh, encoding='UTF-8')
  1. 如果你的数据集目标种类名称含大写字母,需要修改为小写格式,代码如下

# coding:utf-8
import os
import os.path
import xml.dom.minidom

path = r'D:\你的xml路径(最好备份一下)'
files = os.listdir(path)  # 得到文件夹下所有文件名称
for xmlFile in files:  # 遍历文件夹
    if xmlFile[-4:] in ['.xml']:
        dom = xml.dom.minidom.parse(os.path.join(path, xmlFile))
        root = dom.documentElement
        # 获取xml中name对应节点
        name = root.getElementsByTagName('name')
        for i in range(len(name)):
            if name[i].firstChild.data == 'ABC':  #修改为你的classname
                name[i].firstChild.data = 'abc'
        # 保存修改到xml文件中
        with open(os.path.join(path, xmlFile), 'w', encoding='UTF-8') as fh:
            dom.writexml(fh, encoding='UTF-8')

训练前文件修改

  1. 修改voc.py

根目录ssd/data/datasets/voc.py

找到class_name ,保留__background__,其余改为你自己的种类。种类名不能含大写字母,xml修改方法见上面。

  1. 修改defaults.py

根目录ssd/config/defaults.py

找到C.MODEL.NUM_CLASSES

改为你自己的检测种类数+1

  1. 修改nms.py

根目录/ssd/utils/nms.py找到

if torchvision.__version__ >= '0.3.0':

改为

if torchvision.__version__ >= '0.0.0':
  1. 修改vgg_ssd300_voc0712.yaml

根目录configs/vgg_ssd300_voc0712.yaml

找到NUM_CLASSES

改为你自己的检测种类数+1

训练

在终端运行:

python train.py --config-file configs/vgg_ssd300_voc0712.yaml

完成

关于Windows上ssd环境配置及训练过程,可以参考:

(windows)ssd深度学习1:pytorch环境配置gpu+windows11+anaconda+pycharm+RTX3050 笔记_chao_xy的博客-CSDN博客

(windows)ssd深度学习2: 训练自己的数据集gpu+ windows11+ anaconda+ pycharm+ RTX3050 笔记(内含单通道灰度图像的训练方法)_chao_xy的博客-CSDN博客

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值