项目作者: WangRongsheng

项目描述 :
SSD-pytorch yyds!
高级语言: Python
项目地址: git://github.com/WangRongsheng/SSD-pytorch.git
创建时间: 2021-04-09T09:53:36Z
项目社区:https://github.com/WangRongsheng/SSD-pytorch

开源协议:

下载


SSD:Single-Shot MultiBox Detector目标检测模型在Pytorch当中的实现

训练步骤

  1. 本文使用VOC格式进行训练。
  2. 训练前将标签文件放在VOCdevkit文件夹下的VOC2007文件夹下的Annotation中。
  3. 训练前将图片文件放在VOCdevkit文件夹下的VOC2007文件夹下的JPEGImages中。
  4. 在训练前利用voc2ssd.py文件生成对应的txt。
  5. 再运行根目录下的voc_annotation.py,运行前需要将classes改成你自己的classes注意不要使用中文标签,文件夹中不要有空格!
    1. classes = ["aeroplane", "bicycle"]
  6. 此时会生成对应的2007_train.txt,每一行对应其图片位置及其真实框的位置
  7. 在训练前需要务必在model_data下新建一个txt文档,文档中输入需要分的类,示例如下:
    model_data/new_classes.txt文件内容为:
    1. cat
    2. dog
    3. ...
  8. utils.confignum_classes修改成所需要分的类的个数+1,运行train.py即可开始训练。

训练所需的ssd_weights.pth可以在百度云下载(提取码: uqnw)。 下载并放入model_data

预测步骤

如果你的训练不是在pytorch<=1.3进行的,预测会出错,你需要转化模型,可以使用load_save_model.py

  1. 按照训练步骤训练。
  2. ssd.py文件里面,在如下部分修改model_pathclasses_path使其对应训练好的文件;model_path对应logs文件夹下面的权值文件,classes_path是model_path对应分的类
    1. _defaults = {
    2. "model_path": 'model_data/ssd_weights.pth',
    3. "classes_path": 'model_data/voc_classes.txt',
    4. "model_image_size" : (300, 300, 3),
    5. "confidence": 0.5,
    6. "cuda": True,
    7. }
  3. 运行predict.py,输入
    1. img/street.jpg
  4. 利用video.py可进行摄像头检测。

评估步骤

步骤是一样的,不需要自己再建立get_dr_txt.pyget_gt_txt.py等文件。

  1. 本文使用VOC格式进行评估。
  2. 评估前将标签文件放在VOCdevkit文件夹下的VOC2007文件夹下的Annotation中。
  3. 评估前将图片文件放在VOCdevkit文件夹下的VOC2007文件夹下的JPEGImages中。
  4. 在评估前利用voc2ssd.py文件生成对应的txt,评估用的txt为VOCdevkit/VOC2007/ImageSets/Main/test.txt,需要注意的是,如果整个VOC2007里面的数据集都是用于评估,那么直接将trainval_percent设置成0即可。
  5. yolo.py文件里面,在如下部分修改model_pathclasses_path使其对应训练好的文件;model_path对应logs文件夹下面的权值文件,classes_path是model_path对应分的类
  6. 运行get_dr_txt.pyget_gt_txt.py,在./input/detection-results./input/ground-truth文件夹下生成对应的txt。
  7. 运行get_map.py即可开始计算模型的mAP。