准备工作
获取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 为读取的训练模型