模型训练-SSD模型

本文详细介绍了如何在PyTorch环境下下载并配置SSD模型,包括设置CUDA环境、安装依赖、配置数据集(如VOC2007)、修改类别名称和配置文件,以及处理训练过程中遇到的NoNMS可用的警告。
摘要由CSDN通过智能技术生成

01官方下载SSD模型

在GitHub上搜索SSD,pytorch框架下

GitHub - lufficc/SSD: High quality, fast, modular reference implementation of SSD in PyTorch

02配置SSD环境

01自备一个cuda环境

01创建环境

        conda create -n torch python=3.8                  ---torch是环境名

02激活环境

        conda activate torch

03安装cuda

         版本网站 https://pytorch.org/get-started/previous-versions/

        conda install pytorch==1.12.1 torchvision==0.13.1 torchaudio==0.12.1 cudatoolkit=11.6 -c pytorch -c conda-forge

04检查cuda

import torch
torch.cuda.is_available()

02安装SSD环境

先打开我们创建的torch环境,然后安装SSD环境。

pip install -r requirements.txt

        如果哪个包出问题,就把他拿出来单独装。

03设置数据集

01数据文件介绍

        新建一个datasets文件夹,路径在SSD-master\datasets。其中子文件夹VOC2007,VOC2007包括以下三个文件夹Annotations,JPEGImages, ImageSets。

数据文件夹如下,

        其中Annotations中是标签文件,放置xml文件。

        JPEGImages中是影像,放置jpg影像。

        ImageSets中是txt索引文件,放置训练验证的文件名称。

        分别把所有的xml和jpg文件放到对应文件夹中。

02索引文件生成

           这个是生成索引文件的代码,输入xml文件的路径,生成训练测试索引文件。保存在datasets/VOC2007/ImageSets/Main路径下。

import os
import random

# 定义百分比
trainval_percent = 1
train_percent = 0.8

# 路径
xmlfilepath = "Annotations"
txtsavepath = 'ImageSets/Main'
xml_files = os.listdir(xmlfilepath)
num = len(xml_files)
file_list = list(range(num))
tv = int(num * trainval_percent)
tr = int(tv * train_percent)

# 随机划分数据
trainval = random.sample(file_list, tv)
train = random.sample(trainval, tr)

# 创建并写入文本文件
with open(os.path.join(txtsavepath, 'trainval.txt'), 'w') as ftrainval, \
     open(os.path.join(txtsavepath, 'test.txt'), 'w') as ftest, \
     open(os.path.join(txtsavepath, 'train.txt'), 'w') as ftrain, \
     open(os.path.join(txtsavepath, 'val.txt'), 'w') as fval:

    for i in file_list:
        name = xml_files[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)

      代码命名为txt.py,放在和jpg,xml文件夹同级目录下。datasets/VOC2007/txt.py

结果生成,

03修改类别名称

        路径在SSD-master/ssd/data/datasets/voc.py。修改成自己xml所有的。

04修改配置文件

        配置文件路径在configs/vgg_ssd300_voc0712.yaml。修改自己的类别数,其他参数可以任意改。

05 开始训练

        终端输入以下训练代码。

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

        训练显示开始

报错

D:\learn\sdxx\mbjc\dbsy\SSD-master\ssd\utils\nms.py:10: UserWarning: No NMS is available. Please upgrade torchvision to 0.3.0+
  warnings.warn('No NMS is available. Please upgrade torchvision to 0.3.0+')

点击蓝色部分,找到报错位置,将其中的0.3.0改成0.0.0.

if torchvision.__version__ >= '0.3.0':
    _nms = torchvision.ops.nms
else:
    warnings.warn('No NMS is available. Please upgrade torchvision to 0.3.0+')
    sys.exit(-1)

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
好的,针对你的问题,这里简单介绍一下如何使用caffe-ssd训练模型进行目标检测。 caffe-ssd是基于caffe框架实现的单阶段目标检测算法,使用预训练模型可以加快模型训练的速度,同时也可以提高模型的检测精度。下面是使用预训练模型目标检测的步骤: 1. 下载预训练模型 caffe-ssd官方提供了一些预训练模型,可以在这里下载:https://github.com/weiliu89/caffe/tree/ssd#models。选择适合自己数据集的模型进行下载。 2. 准备数据集 准备自己的数据集,包括训练集、验证集和测试集。数据集需要满足SSD数据格式要求,即每个样本需要有对应的标注文件,标注文件格式为:类别id、xmin、ymin、xmax、ymax(例如:0 0.1 0.2 0.3 0.4,表示类别为0,左上角坐标为(0.1, 0.2),右下角坐标为(0.3, 0.4))。 3. 修改配置文件 修改caffe-ssd的配置文件,将模型路径、数据路径、类别数等参数配置正确。其中,模型路径需要指定为下载的预训练模型路径。 4. 训练模型 使用修改后的配置文件训练模型训练过程中可以调整学习率、迭代次数等参数,以达到更好的效果。 5. 测试模型 使用测试集对训练好的模型进行测试,并计算模型在测试集上的精度和召回率等指标。 以上就是使用caffe-ssd训练模型目标检测的基本步骤。需要注意的是,使用预训练模型虽然可以加速模型训练过程,但是如果数据集和预训练模型的差异较大,仍然需要进行微调。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值