本人耗费数日时间,成功完成了windows与ubuntu系统下caffe-ssd环境的搭建、脚本优化,并最终整合出一套高效且可自定义训练的完整项目包。该方案极大简化了训练流程,用户在配置好caffe-ssd环境后,无需再繁琐地编写或修改大量脚本,也不必进行复杂的数据格式转换,即可快速启动自己的数据集训练任务。虽然不敢称专家,但对整个流程已相当熟悉,所有核心脚本均为本人亲手编写。先展示一张在windows系统中训练自定义数据时的运行界面:
再来看一张Ubuntu系统下CPU版Caffe-SSD的训练截图:
两个平台的整体流程基本一致,但在脚本实现上略有差异:Windows主要依赖bat批处理文件,而Ubuntu则以Python和Shell脚本为主。接下来将分别介绍两个平台的使用方法。
Windows平台使用说明:
本方案的一大优势是高度自动化,只需将项目放置指定路径,几乎无需手动修改代码即可运行。
实验环境:
操作步骤:
将源码解压至
D:\caffe-ssd-microsoft目录下,并将
myproj文件夹复制到该目录中,与主Caffe文件夹同级。
进入
D:\caffe-ssd-microsoft\myproj\data\VOCdevkit\VOC2012目录:
.jpg图像文件放入
JPEGImages文件夹;
Annotations文件夹。
删除
D:\caffe-ssd-microsoft\myproj\lmdb目录下的
train_lmdb和
test_lmdb文件夹,避免后续生成LMDB时出错。
打开
bat文件夹,其中包含一个
xml2txt.py脚本,用于将XML标注转换为训练所需的文本列表。
bat目录;
python xml2txt.py;
txt文件夹中生成
train.txt和
test.txt,格式为:
图片名.xml名;
继续在
bat目录执行:
python get_name_size.py;
test_name_size.txt文件,内容为:文件名(无后缀) 高度 宽度。
双击运行
create_lmdb.bat,自动完成训练与测试LMDB数据库的生成。
train_lmdb和
test_lmdb文件夹,否则会报错。
最后双击
starttrain.bat,即可启动模型训练流程。
Ubuntu平台使用说明:
由于Linux系统多采用绝对路径,因此需要根据实际用户名进行一次路径替换,其余部分基本无需更改。
实验环境:
操作步骤:
在
/home下新建
caffe-ssd目录,将Caffe-SSD主程序放入其中,并将
myproj文件夹与其置于同一层级。
进入
/home/fut/caffe-ssd/myproj/data/VOCdevkit/VOC2012:
JPEGImages;
Annotations。
清空
/home/fut/caffe-ssd/myproj/lmdb中的
train_lmdb和
test_lmdb文件夹。
打开
script/x,将其中的用户名(如ml2txt.py
fut)替换为当前系统的用户名,建议使用全局替换方式批量修改路径;
script目录,运行:
python xml2txt.py;
train.txt和
test.txt,格式同上,划分比例可在脚本中调整。
修改
get_name_size.py中的用户名路径,保存后执行:
python get_name_size.py;
test_name_size.txt,记录测试集图像尺寸信息。
在终端执行:
python train_lmdb_gen.py,生成训练用LMDB数据;
lmdb/train_lmdb。
执行:
python test_lmdb_gen.py,生成测试用LMDB数据;
lmdb/test_lmdb。
最后运行:
python ssd_pascal.py开始训练;
若在Caffe-SSD安装配置过程中遇到问题,可私信联系,提供有偿技术支持。
目前因设备限制暂未部署GPU版本,但基于现有结构,迁移至GPU环境难度不大,属于常规操作范畴。