YOLO V3训练自己的数据集 keras踩坑实现

本文介绍了使用keras训练YOLO V3模型时的注意事项,包括CUDA、tensorflow和numpy版本匹配,Python版本选择,GPU内存管理,数据集标注,kmeans聚类,以及训练过程中遇到的bug和解决方法。详细讨论了配置环境、数据预处理、训练过程和模型检测等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

YOLO V3训练自己的数据集 keras踩坑实现

首先本文使用keras CUDA9.0 tensorflow1.9或者1.10、1.12都可以
一定要找对应的版本 CUDA 和cudnn还有tensorflow版本包括对应的numpy版本都要一一对应,错了一个后面会出现很多bug!!!!
还有一定要用python 3.6!!! python 3.5 3.6 3.7以及2代版本的python全都不兼容 ,会出现巨多的warning!!!!
对了 我的显卡是1060的阉割版5GB显存

一些非常有帮助的博客

这是帮你读懂yolo v3里面自带的cfg文件设置参数的博客 ****链接: link.
这是yolo v3系列之网络结构解读 ****链接: link.
这是损失函数计算解析 ****链接: link.
这是具体创建环境的实施步骤 ****链接: link.

这是大神的keras版本的yolo v3 的github,膜拜一下 ****链接: link.

我来列举一下我遇到的真实bug

(1)

首先cfg里面的subsivisions参数一定不能设置的太大,我设置的是16,我这个显卡最好不超过32,batch我是设置为4-8,如果太大会爆内存 。
就是Run out of memory的错误,一定要及时调,否则训练到后半夜可能训练到一半就停了

VOC2007数据集样例图片:
在这里插入图片描述
具体的用labelimg标定就不说了
可以直接在控制台

// An highlighted block
pip install labelimg
#然后再直接用
labelimg

一定要记得保存为.xml文件 而且标注完,用Notepad打开检查一下最好,四个坐标是否有 ,不要为空坐标,而且标注对象 “dog”之类的一定要确定存在且正确。

数据集弄好之后一定要先用文件夹里的 kmeans聚类帮自己找到合适的先验框(也就是聚类中心)的坐标,用自己的聚类中心坐标,这样训练才能提高准确率哟。

log文件里面的events.out.tfevents.可以帮助你查看训练过程中的损失函数。

// An highlighted block
tensorboard --logdir==#'你自己的logs的path'#

(2)

记得不要用tensorflow 1.14或者2.0的,我就出现了bug 虽然不怎么影响 但是出来的http:local6006那些地址要自己敲之类的。
直接pip安装或者更新的话就会直接安装最新的tensorflow 越新bug越多,因为yolo v3都是17 18年的产物了。

官方keras版本的yolov3 有个bug,别跟github写的一样,什么python yolo.py 运行去检测图片,根本检测不了
按我这样来

// An highlighted block
python yolo_video.py --image

(3)

还有个bug,一定要注意,txt文件里面一定要生成有坐标,如果你生成不了坐标,那一定是你标注的名称和你在train里的类型名称不符,比如大小写 labelimg标注写 “Dog” 结果代码改成了“dog” 这样程序生成的txt文件会显示没有这个物体的,所以不会胜出坐标,,,切记。

txt最后的0是我的第0个类

在这里插入图片描述

数据集一定要打乱,像我0001 、0002 、0003太整齐了 你可以把图片打散,也不用按顺序来,
你用7821.jpg 和 ABCD.jpg都没有任何影响。

(4)

但是千万不要有中文!!!
XML文件、txt文件里面一定不要有中文,有中文就会出现 gbk 的编译错误,程序没办法解析中文的,包括你的文件路径,全都不要中文。
在这里插入图片描述

yolo v3是现在我碰到的最简单的复现过程之一了 ,一定要耐心哟。。

有什么问题也可以甩过来哟。

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值