前言
如何在anconda创建ssd虚拟环境和用pycham为项目配置ssd虚拟环境见上一篇(linux)ssd深度学习1:pytorch环境配置gpu+anaconda+pycharm+RTX2080ti 笔记_chao_xy的博客
配置相应虚拟环境完成后打开pycharm终端应如下图
数据集准备
在ssd根目录下新建datasets文件夹
在文件夹中新建VOC2007和VOC2012,VOC2012是VOC2007的复制内容
确认你的各文件为以下格式,完毕
如果你的图像为单通道灰度图像(一定要确认!!!要是以下方法还不行就放弃这个数据集,或者换SSD版本)
图像转换为三通道图像SSD训练单通道图像_BookIdiot的博客-CSDN博客
将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')
如果你的数据集目标种类名称含大写字母,需要修改为小写格式,代码如下
# 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')
训练前文件修改
修改voc.py
根目录ssd/data/datasets/voc.py
找到class_name ,保留__background__,其余改为你自己的种类。种类名不能含大写字母,xml修改方法见上面。
修改defaults.py
根目录ssd/config/defaults.py
找到C.MODEL.NUM_CLASSES
改为你自己的检测种类数+1
修改nms.py
根目录/ssd/utils/nms.py找到
if torchvision.__version__ >= '0.3.0':
改为
if torchvision.__version__ >= '0.0.0':
修改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博客