深度学习(三):自己训练yolov3模型进行目标检测

流程

了解过yolov3的模型结构了(但是还没去看v1,v2,尬)
现在我准备用自己的数据集进行一个训练,看看能不能达到想要的预期效果。
流程:
1、搜集数据集。
2、数据集标注和分类
3、进行训练
4、得到权重进行预测

1、搜集数据集

本来脑洞大开,想做一些不一样的检测,结果,,不知道去哪里搞那么大量的数据集。
最后,最为初次入门,我选择了笔这个物品,作为我的数据集内容。
伙伴们淘宝搜寻了两百张的各类笔的数据集
比如这样:
在这里插入图片描述
再比如这样:
在这里插入图片描述
如果你们也想搞这个训练,自己上淘宝卖家秀,买家秀,一顿copy。我的伙伴们也花了不少时间。。。

2、数据集标注和分类

当然我们初始的数据集是不能直接丢入网络中直接训练的。我们需要将它进行一个规范。这个规范呢不同的设计者,可以要求不同的规范。
之前有说过了,
我使用的是github上yolov3
这个代码,要我们标注完是一个img+xml标签VOC类型的文件。
我们使用一个目标标注软件labelimg进行一个生成。
关于labelimg的使用和教程呢,参考这位博主的windows下使用labelImg标注图像
就可以完成VOC数据集准备工作咯。。
接下来就是网络需要的标签生成(我们用软件生成的是xml标签文件。我们要将它转化为网络可读的txt文本文件,接下来会讲)和数据集分类了(分为训练集和测试集)
我们将标注好的文件要分为两个文件夹。
将图片文件放在JPEGImages中
xml标签文件放在Annotations中
就放在代码中VOCdevkit下的VOC2007下
在这里插入图片描述
下一步,我们查看ImageSets下main里是否有
test.txt,train.txt,trainval.txt,val.txt这四个文本。有的话我们要删除,因为我们要生成我们自己的
在这里插入图片描述
删除完之后,我们运行VOC2007目录下的
在这里插入图片描述
生成我们自己的train.txt。因为这个代码里只写了生成训练集列表。所以只有在生成的train.txt中有我们需要的训练集序列号。这样我们就能读取我们的训练图片和标签了。但是还不够,我们还需要生成图片对应标签的一个路径。
下一步,我们运行根目录下的
在这里插入图片描述
文件生成我们图片路径+标签+种类。
我们要注意的是!!
在这步生成之前,我们要修改代码中的classes,改成我们用到的类别,就两个地方!!!
第一个地方:
就在voc2yolo3.py代码中
在这里插入图片描述
这里我用的是一个种类pen。
那我就改成

classes = ["pen"]

第二个地方:
在utils下的config.py代码中,
我们要将classes改为我们定义的类的个数。
在这里插入图片描述
运行之后我们就可以得到2007_train.txt文件了。

3、进行训练

一切准备工作做好之后,
我们可以开始训练了
我们运行train.py代码。
在这里插入图片描述
等到完成之后,权重文件将会保存在logs文件夹下,使用权重时,我们可以选取loss比较低的使用。
之后我们就可以利用训练好的权重文件进行预测了。

4、得到权重进行预测

预测代码在yolo.py代码中,predict.py只是做了一个接口,让我们输入图片输出label的一个工作。

在yolo.py中,我们要修改两个地方,分别为
model_path 和 classes_path两个路径。
在这里插入图片描述
model_path 就是我们生成的权重文件路径。在logs下。
classes_path 我们需要建立一个我们自己类别的txt
然后将我们的类名写进去就可以了。
在这里插入图片描述
在这里插入图片描述
然后将这个文档的路径加到classes_path中就好了。
修改完之后,我们就可以运行predict.py文件,进行我们数据的预测了。
输入我们图片路径。
然后就会输出检测图咯。。
因为我之前做的。权重文件都删了。。所以这里就不放预测图了。。。

总之训练完成了,成功实现pen预测。。。。。

之后我将开始分析整个训练和预测是如何完成的了。大家看的化,最好是先看论文,明白整体思路,再来看代码的分析。。。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值