yolov3算法检测单类物体

yolov3是目前目标检测类检测效果和检测速度最好的算法,原版的yolov3检测的物体种类众多,本文实在原有yolov3上将多累物体检测简化为单类物体检测,本文的原始代码基于github上copy的,源码下载地址为:https://github.com/qqwweee/keras-yolo3
根据作者提供的代码我们可以测试、训练我们的数据集,原文已做详细叙述如何训练测试代码,不做过多叙述。
单类物体检测假设我们是在源码基础上检测‘person’这个类别,我们需要对其中的yolo.cfg文件做修改,这里写图片描述
这里写图片描述
将其中的classes修改为1,所有的filters=255的值修改为filters=18(计算方式为(classes+5)*3),然后将coco_class.txt和voc_class.txt文件中的类别全部修改成‘person’
这里写图片描述
再将voc_annocation.py文件中的classes修改成只有‘person’一个类。
这里写图片描述
然后需要准备数据集,将数据集放在运行代码的同一级目录下。注意数据集下载需要将训练集和测试集里面的数据放在一起,我这里已经将其数据整理,https://download.csdn.net/download/z649431508/10638245,有人说我设置的积分太高,我说明下,这是CSDN官方调的,我自己都不知道,这里给一个百度云链接,不需要从CSDN那边下载,https://pan.baidu.com/s/15ewJZoav2ebmkqBf2bPyeA,提取码 anv2
这里写图片描述
运行voc_annocation.py生成2007_train.txt和2007_test.txt,2007_val.txt文件。
然后通过命令行cd到运行代码的同一级目录,执行

python convert.py -w yolov3.cfg yolov3.weights model_data/yolo_weights.h5

生成预训练权重。
然后运行

python train.py

开始训练
训练过程可能会出现val_loss=nan的情况,我在训练过程中发现在训练到50Epoch以后val_loss开始降低,或者按照网上的说法可以调整cfg文件的batch大小,将其调大,也能改善val_loss。
训练完成后会生成一个logs文件夹,里面的000文件夹下会有训练好的权重文件,trained_weights_final.h5是我们所需要的文件,再次修改yolo.py文件中的代码,将其中的modelpath换成自己生成的trained_weights_final.h5文件下的目录。
这里写图片描述
至此所有工作基本上完成,接着就是检测效果的时候,命令行运行代码

python yolo_video.py --input 1.mp4

这里写图片描述

  • 13
    点赞
  • 92
    收藏
    觉得还不错? 一键收藏
  • 62
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值