对比实验系列:SSD环境配置及训练自己数据集

一、源码下载

可以从下方的链接下载SSD-Pytorch源码

https://github.com/bubbliiiing/ssd-pytorchicon-default.png?t=N7T8https://github.com/bubbliiiing/ssd-pytorch

二、环境配置

1、创建环境

使用anaconda进行环境配置,创建一个ssd的环境:

conda create -n ssd python=3.8 -y

2、进入环境

激活anaconda环境:

conda activate ssd

3、torch安装

安装torch和torchvision,我所使用的torch版本为1.9.1+cu111,对应的torchvision版本为0.10.1+cu111:

pip install torch==1.9.1+cu111 torchvision==0.10.1+cu111 -f https://download.pytorch.org/whl/torch_stable.html

4、其他依赖包安装

由于SSD开发时间较早,很多依赖包版本已经过时,建议不要通过requirements.txt安装,自己一个一个安装包,下方就是SSD所需要的所有依赖包:

scipy
matplotlib
opencv_python
tqdm
Pillow
h5py

5、测试配置

需要在SSD代码根目录创建weights文件夹,通过下方链接下载预训练权重并放入文件夹。

百度网盘 请输入提取码百度网盘为您提供文件的网络备份、同步和分享服务。空间大、速度快、安全稳固,支持教育网加速,支持手机端。注册使用百度网盘即可享受免费存储空间icon-default.png?t=N7T8https://pan.baidu.com/s/1iUVE50oLkzqhtZbUL9el9w提取码:jgn8

运行predict.py,在终端输入img/street.jpg:

最终的检测结果弹窗显示:

至此,SSD全部前置配置全部完成

6、预测过程中出现的问题

6.1 AttributeError: 'ImageDraw' object has no attribute 'textsize'

这是由于Pillow版本过高,已经移除了textsize参数,可以通过降低Pillow版本解决错误

pip install Pillow==9.5.0

三、自己的数据集制作

1、根目录创建文件夹

Annotations文件夹存放所有xml(VOC)格式的标签,ImageSets文件夹创建Main文件夹,YOLO文件夹存放所有YOLO格式(txt)标签

2、修改标签类型

在model_data文件夹内创建txt文件,将自己数据集的标签类型写入:

3、划分数据集,生成索引文件

修改标签文件路径和训练集比例后,运行voc_annotation.py,生成索引文件,索引文件保存在VOCdevkit\VOC2007\ImageSets\Main文件夹内。

4、补全索引文件路径

由于索引文件只生成了图片的名称,没有路径和后缀,所以要通过一个脚本对索引文件进行修改:

def process_txt_file(input_file, output_file):
    with open(input_file, 'r') as f_in, open(output_file, 'w') as f_out:
        for line in f_in:
            line = line.strip()  # 去除每行两边的空白符
            #填相对路径
            new_line = 'VOCdevkit/VOC2007/JPEGImages/' + line + '.jpg\n'
            f_out.write(new_line)

# 替换 'input.txt' 和 'output.txt' 为你实际的文件相对路径
process_txt_file('VOCdevkit/VOC2007/ImageSets/Main/val.txt', 'VOCdevkit/VOC2007/ImageSets/Main/output.txt')

四、训练

在train.py文件内修改参数

1、修改标签文件路径

2、修改预训练权重路径

3、修改训练轮数

4、修改线程数和数据集路径

5、开始训练

使用命令开始训练。

python train.py

  • 18
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
您好!对于使用SSD(Single Shot MultiBox Detector)训练自己的数据集,您可以按照以下步骤进行操作: 1. 数据集准备:收集并标注您自己的数据集,确保每个样本都有正确的边界框标注和相应的类别标签。您可以使用标注工具,如LabelImg,进行标注。 2. 数据集格式转换:将数据集转换为SSD所需的格式。SSD使用Pascal VOC或COCO等标准格式。您可以使用数据转换工具,如convert2ssd.py脚本,将数据集转换为SSD可接受的格式。 3. 配置网络模型:根据您的需求和数据集的类别数,选择合适的SSD网络模型。您可以在网络模型配置文件中进行相关设置,如设置输入图像大小、锚框尺寸和比例等。 4. 数据集划分:将数据集划分为训练集和验证集。通常,80%的数据用于训练,20%的数据用于验证。 5. 训练模型:使用标注好的数据集进行模型训练。您可以使用深度学习框架,如TensorFlow或PyTorch,加载SSD网络模型,并结合优化算法(如随机梯度下降)进行模型训练。 6. 模型评估和调优:在训练过程中,您可以定期评估模型在验证集上的性能,并进行相应的调优,如调整学习率、增加训练轮次等。 7. 模型推理:在完成模型训练后,您可以使用该模型进行目标检测任务。通过将输入图像传入SSD模型,您可以获取检测到的目标边界框和对应的类别标签。 请注意,这只是一个基本的概述,具体的实现细节可能因您使用的深度学习框架和数据集格式而有所不同。同时,由于SSD算法较为复杂,可能需要一定的计算资源和时间来完成训练过程。祝您成功训练自己的SSD模型!如果您有任何进一步的问题,请随时提问。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值