训练数据集的一些坑

笔者最近在学习计算机视觉和目标检测的内容,需要制作数据集并训练自己的模型。在这个过程中,遇到了一些问题,于是专门写出来记录一下,同时也希望能够给其他遇到类似问题的人一些解决问题的思路。

系统:Ubuntu.20.04

首先说明我用的算法是YOLOv4,yolov4的话速度相比于faster-rcnn来说就要快很多了,实测效果大概能稳定在4.5fps左右,用个中等显卡差不多能达到20fps。并且因为yolov4的特征提取层采用了特征金字塔+下采样的结构以及训练时采用Mosaic数据增强的方法,所以对于小目标检测也有着不错的效果。
而yolov4-tiny就是yolov4的简化版。在特征提取时没有采用Mish激活函数,并且在特征加强层只采用了一个特征金字塔,没有像yolov4那样再进行下采样。 yolov4的训练参数有64363101个,而yolov4-tiny只有5918006个,比yolov4少了十倍。因此yolov4-tiny加载模型的速度上也是更快的,但最终检测效果和准确度大概率没有YOLOv4的好,虽然我没有两种都尝试过,但看别人的结果是准确度相差了10%以上吧。

  1. 选用模型
    建议下载网上关于yolo算法的官方预处理模型,比如yolov4.conv.137和yolov4-tiny.conv.29。
    yoloV4的预训练权重 yolov4-tiny.conv.29 tiny比较小,速度非常快,结合opencv可以实时检测。效果相当的棒。
    这里提供几种预处理模型的网盘链接,需要的自取,里面包括yoloV4.weights,yoloV4预训练权重:yolov4.conv.137,yolov4-tiny.weights,tiny yoloV4预训练权重:yolov4-tiny.conv.29。

链接:https://pan.baidu.com/s/110z61p-3pUu4IWRopvouqw?pwd=npif
提取码:npif

注:如果你想把自己经过训练然后得到的权重文件例如:yolov4_2000.weights拿去训练,必须要经过转换成模型文件,即后缀名为.137这种,否则如果直接训练 .weights文件将不能得到正确的输出权重。
转换方法如下:

#首先用第一行代码将yolo-obj_last.weights转化为yolo-obj_last.conv.23(注意文件位置,否则程序会报错
./darknet partial yolo-obj.cfg backup/yolo-obj_last.weights backup/yolo-obj_last.conv.23 
  1. CUDA Error: out of memory

最常见的一种报错就是:
CUDA status Error: file: ./src/dark_cuda.c : () : line: 373 CUDA Error: out of memory CUDA Error: out of memory:
在这里插入图片描述
图片是随便找的,反正就是这个报错。

关键是“CUDA Error: out of memory:”这句,这表明你的电脑配置跑不动程序,可能是显卡比较差。需要降低yolo-obj.cfg里面的运行配置要求。
降低batch和subdivisions都设为16(8的倍数);然后width和height减小(要是32的倍数,我的是192,192)直到能训练。
具体可以参考 https://zhuanlan.zhihu.com/p/91587361https://zhuanlan.zhihu.com/p/114530609的内容。

这里其实非常体现显卡的重要性,好的显卡可以大大加快训练模型的速度和增加质量。当然如果有条件的话可以找超级计算机来算,那个贼快。

  1. Couldn’t open file:yolov4.conv.137
    就是你的预处理模型的位置放错了,yolov4.conv.137的位置路径要和你输进去启动训练的命令的路径一致。
    比如
./darknet detector train data/voc.data cfg/yolov4.cfg yolov4.conv.137 -gpus 0

这里yolov4.conv.137就是直接放在darknet的文件目录下。
又比如

./darknet detector train data/voc.data cfg/yolov4.cfg backup/yolov4.conv.137 -gpus 0

这里yolov4.conv.137就是直接放在 darknet/backup 的文件目录下。

最后,训练模型一般都要好几个小时以上甚至可能一整天,所以启动训练必须在电脑充电的时候,不然跑着跑着电脑可能就关机了……

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zkisltm

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值