windows 10+ubuntu16.04全程配置CPU版本的caffe ssd并训练自己的数据研究报告

本人耗费数日时间,成功完成了windows与ubuntu系统下caffe-ssd环境的搭建、脚本优化,并最终整合出一套高效且可自定义训练的完整项目包。该方案极大简化了训练流程,用户在配置好caffe-ssd环境后,无需再繁琐地编写或修改大量脚本,也不必进行复杂的数据格式转换,即可快速启动自己的数据集训练任务。虽然不敢称专家,但对整个流程已相当熟悉,所有核心脚本均为本人亲手编写。先展示一张在windows系统中训练自定义数据时的运行界面:

再来看一张Ubuntu系统下CPU版Caffe-SSD的训练截图:

两个平台的整体流程基本一致,但在脚本实现上略有差异:Windows主要依赖bat批处理文件,而Ubuntu则以Python和Shell脚本为主。接下来将分别介绍两个平台的使用方法。


Windows平台使用说明:

本方案的一大优势是高度自动化,只需将项目放置指定路径,几乎无需手动修改代码即可运行。

实验环境:

  • Windows 10 专业版 64位
  • Caffe-SSD CPU版本

操作步骤:

  1. 将源码解压至

    D:\caffe-ssd-microsoft
    目录下,并将
    myproj
    文件夹复制到该目录中,与主Caffe文件夹同级。

  2. 进入

    D:\caffe-ssd-microsoft\myproj\data\VOCdevkit\VOC2012
    目录:

    • 将自己的
      .jpg
      图像文件放入
      JPEGImages
      文件夹;
    • 对应的XML标注文件放入
      Annotations
      文件夹。
  3. 删除

    D:\caffe-ssd-microsoft\myproj\lmdb
    目录下的
    train_lmdb
    test_lmdb
    文件夹,避免后续生成LMDB时出错。

  4. 打开

    bat
    文件夹,其中包含一个
    xml2txt.py
    脚本,用于将XML标注转换为训练所需的文本列表。

    • 打开命令行窗口,切换至
      bat
      目录;
    • 执行命令:
      python xml2txt.py
    • 此时会在
      txt
      文件夹中生成
      train.txt
      test.txt
      ,格式为:
      图片名.xml名
    • 默认按80%训练集、20%测试集划分,如需调整比例,可修改脚本内参数。
  5. 继续在

    bat
    目录执行:
    python get_name_size.py

    • 生成
      test_name_size.txt
      文件,内容为:文件名(无后缀) 高度 宽度。
  6. 双击运行

    create_lmdb.bat
    ,自动完成训练与测试LMDB数据库的生成。
    ⚠️ 注意:请确保之前已删除旧的
    train_lmdb
    test_lmdb
    文件夹,否则会报错。

  7. 最后双击

    starttrain.bat
    ,即可启动模型训练流程。


Ubuntu平台使用说明:

由于Linux系统多采用绝对路径,因此需要根据实际用户名进行一次路径替换,其余部分基本无需更改。

实验环境:

  • Ubuntu 16.04
  • Caffe-SSD CPU版本

操作步骤:

  1. /home
    下新建
    caffe-ssd
    目录,将Caffe-SSD主程序放入其中,并将
    myproj
    文件夹与其置于同一层级。


  2. 进入

    /home/fut/caffe-ssd/myproj/data/VOCdevkit/VOC2012

    • 图像放入
      JPEGImages
    • XML标注放入
      Annotations
  3. 清空

    /home/fut/caffe-ssd/myproj/lmdb
    中的
    train_lmdb
    test_lmdb
    文件夹。

  4. 打开

    script/xml2txt.py
    ,将其中的用户名(如
    fut
    )替换为当前系统的用户名,建议使用全局替换方式批量修改路径;

    • 切换到
      script
      目录,运行:
      python xml2txt.py
    • 生成
      train.txt
      test.txt
      ,格式同上,划分比例可在脚本中调整。
  5. 修改

    get_name_size.py
    中的用户名路径,保存后执行:
    python get_name_size.py

    • 生成
      test_name_size.txt
      ,记录测试集图像尺寸信息。
  6. 在终端执行:

    python train_lmdb_gen.py
    ,生成训练用LMDB数据;

    • 输出路径为
      lmdb/train_lmdb
  7. 执行:

    python test_lmdb_gen.py
    ,生成测试用LMDB数据;

    • 输出路径为
      lmdb/test_lmdb
  8. 最后运行:

    python ssd_pascal.py
    开始训练;

    • 该脚本中多数参数均可自定义,只需确保用户名路径正确即可;
    • 此配置适用于目标检测任务。
若在Caffe-SSD安装配置过程中遇到问题,可私信联系,提供有偿技术支持。

目前因设备限制暂未部署GPU版本,但基于现有结构,迁移至GPU环境难度不大,属于常规操作范畴。