手动收集一批手机图片,然后训练一个能够识别手机的YOLOv3模型,最终效果如下图所示:
感谢untilyouydc博主提供的轮子,可以很方便的爬取百度图片
https://blog.csdn.net/qq_40774175/article/details/81273198
????????????????????????
????????????????????????
本次测试在服务器上的目录为/data_1/git/
- 下载darknet工程
cd /data_1/git/
git clone https://github.com/pjreddie/darknet
cd darknet
- 修改相应配置
vim Makefile
将GPU=0改为GPU=1,使用GPU进行训练
- 执行
make
- 准备训练数据集及相关配置文件 (该目录)
cd /data_1/git/darknet/test/
- JPEGImages 文件夹保存用于训练的图片
- labels 文件夹保存训练图片对应的标注结果
(采用labelImg标注工具: 参考 https://github.com/tzutalin/labelImg )
- 将labels下的标注文件拷贝到JPEGImages目录下
cd /data_1/git/darknet/test/labels
scp * ../JPEGImages
cd ../JPEGImages
ls
- lxp.names 保存类别对应的标签名称
- tain.txt & val.txt 保存训练集和验证集图片的绝对路径清单
- backup_big 用于保存模型权重文件的中间结果,名称可以随意取
cd /data_1/git/darknet/test/
mkdir backup_big
- lxp.data 保存训练相关参数
(classes对应类别数量,train对应训练集图片路径集合,valid对应验证集训练图片路径集合,names对应类别标签名称文件,backup对应训练过程中保存模型权重文件的中间结果的文件夹)
- yolov3-lxp.cfg
文件详细解释 ???YOLO - YOLOV3 .cfg 配置文件 参数含义
关闭测试模式、开启训练模式,根据需要调整最大迭代次数
vim /data_1/git/darknet/test/yolov3-lxp.cfg
在文件中搜索yolo层,将前一个网络层中filters参数进行修改,文件总共有3处需要修改
- 下载预训练模型权重
cd /data_1/git/darknet/test/
wget https://pjreddie.com/media/files/darknet53.conv.74
- 开始训练模型
cd /data_1/git/darknet/
./darknet detector train test/lxp.data test/yolov3-lxp.cfg test/darknet53.conv.74
- 开始测试模型
cd /data_1/git/darknet/
./darknet detector test test/lxp.data test/yolov3-lxp.cfg test/backup_big/yolov3-lxp_final.weights test/JPEGImages/hold_phone_1.jpg