训练自己的SSD

  • Post author:
  • Post category:其他


准备工作

获取LanelImg-master 与SSD网络

训练环境

Python3

1. PyTorch 1.0 or higher

1. yacs

1. [Vizer](https://github.com/lufficc/Vizer)

1. GCC >= 4.9

1. OpenCV

准备数据集

1. 准备 300*300 图像

2. 在labelImg-master 文件夹 在终端中运行 pyton labelImg.py

3. 在弹出窗口   打开目录 选择文件夹  在改变存放目录 更改为存储xml文件夹

创建块  框选目标区域 添加对应标签

4. 将图片 放入PyTorch-SSD\PyTorch-SSD1\datasets\VOC2007\JPEGImages 路径下

将xml文件放入 PyTorch-SSD\PyTorch-SSD1\datasets\VOC2007\Annotations 路径下

将 PyTorch-SSD\PyTorch-SSD1\datasets\VOC2007\ImageSets\Main 下的txt文件全部删除

5. 在PyTorch-SSD\PyTorch-SSD1\datasets\VOC2007 在终端运行 python Process.py 实现测试集、训练集、验证集的自动划分

修改训练参数

6. 修改   SSD工程路径下  configs/vgg_ssd300_voc0712.yaml

其中NUM_CLASSES: 8  的数字改为识别的类别数 +1

MAX_ITER: 7500  为训练的轮数

BATCH_SIZE: 16  根据显存 更改合适的大小

LR: 5e-4  学习率 更改 1e-3

7. 修改ssd/data/datasets/voc.py 第十一行类别数量  将其种类数改为自己分类的数量+1

100行 的文件格式 image_file = os.path.join(self.data_dir, "JPEGImages", "%s.png" % image_id)

训练与验证

8.开始训练 python train.py –config-file configs/vgg_ssd300_voc0712.yaml   重新训练需要将PyTorch-SSD\PyTorch-SSD1\outputs路径下的 vgg_ssd300_voc0712文件删除

9. 修改demo.py第37行图片后缀、image_paths = glob.glob(os.path.join(images_dir, '*.png')

10.运行 python demo.py –config-file configs/vgg_ssd300_voc0712.yaml –images_dir demo –score_threshold 0.7 –ckpt ./outputs/vgg_ssd300_voc0712/model_final.pth

其中  –config-file  为修改的yaml文件   –images_dir为读取图片路径  score_threshold  0.7   为概率阈值     –ckpt ./outputs/vgg_ssd300_voc0712/model_final.pth 为读取的训练模型



版权声明:本文为weixin_44072633原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。