YOLO3实现对自身数据集的训练-YOLO3代码学习资料

我用的Ubuntu 16.04,Windows下面有些软件包不好装,后面就放弃了。

1.首先我们需要一些数据集。

如果是我们自己有数据集的话,我们就需要去打标签啥的(网上说的是用工具:LabelImg),具体一点的话可以参考文章。这里拿WiderFace数据集来把这个思想跑通。我们首先进入数据集官网WIDER FACE: A Face Detection Benchmark。之后我们下载一下文件:

红色框框住的是数据集,黑色框框住的是lable。下载完成后解压,放入文件夹下面,最总的文件目录如下图所示:

wider_face_train_bbx_gt.txt是边框数据集,格式如下:

数据说明:

第1行:图片的位置和名称;

第2行:边框的数量;

第3~n行:每个人脸的边框和属性:

  • 其中1~4位是x1, y1, w, h
  • blur:模糊,0清晰、1一般、2严重;
  • expression:表情,0正常、1夸张;
  • illumination:曝光,0正常、1极度;
  • occlusion:遮挡,0无、1部分、2大量;
  • pose:姿势,0正常,1非典型;

2.之后我们需要将数据转化为我们需要的格式。

为了符合训练要求,需要转换wider数据集中的边框格式,为训练要求的边框格式。转换源码。遍历数据文件夹,逐行解析不同格式的数据,写入文件。注意:

  1. 物体框,Wider的数据格式是x,y,w,h,而训练的数据格式是xmin,ymin,xmax,ymax;
  2. 只检测人脸一个类别,则类别索引均为0;

具体参考工程的wider_annotation.py脚本。总的来说的话就是用脚本将数据格式转化为YOLO支持的。

3.之后我们下载yolo3的官方权重,并将其转化为keras读取的格式。

在转化之前,我们需要安装一些软件包,这个是别人代码的一个要求,尽量满足的话最好,满足不了估计也没太大问题,我应该就有些没有满足,但是依然可以跑。

如果是GPU的话,那么这个也有一些要求:

先运行convert.py将cfg模型+weights文件转化为yolo.h5文件作为预训练模型,如果你这一步没有跑通的话,我之后会放百度云盘的链接,所以不要方,嘻嘻嘻嘻。

python convert.py yolov3.cfg yolov3.weights yolo_weights.h5

4.训练网络

修改这五个变量的路径,使其找到相应的文件。

annotation_path = 'wider_dataset/WIDER_train.txt'  # 数据
classes_path = 'configs/wider_classes.txt'  # 类别
log_dir = 'logs/'  # 日志文件夹
pretrained_path = 'model_data/yolo_weights.h5'  # 预训练模型
anchors_path = 'configs/yolo_anchors.txt'  # anchors

创建模型:

  1. input_shape是输入图像的尺寸;
  2. anchors是检测框的尺寸;
  3. num_classes是类别数;
  4. freeze_body,模式1是全部冻结,模式2是训练最后三层;
  5. weights_path,预训练权重的路径;
  6. logging是TensorBoard的回调,checkpoint是存储权重的回调;

并且,如果电脑配置低的话,需要调小batch_size以及epoch的次数,否则会在unfreeze阶段产生out of memory的错误
更具体的代码的编写的话,可以参考文章:目标检测 YOLO v3 训练 人脸检测模型 - 简书

5.验证

训练完成之后就可以跑测试的代码。yolo3_predict_pic.py测试图片,yolo3_predict_video.py测试视频。

如果你想入坑的话,下面有一些链接您可以深入入坑:GitHub - SpikeKing/keras-yolo3-detection: YOLO v3 物体检测算法

参考链接:

WiderFace数据集用于训练人脸检测模型_wider face数据集数据说明-CSDN博客 人脸数据集下载。

目标检测 YOLO v3 训练 人脸检测模型 - 简书 讲的比较详细的简书教程。

GitHub - SpikeKing/keras-yolo3-detection: YOLO v3 物体检测算法 github代码加微信公众号代码详解。

目标检测:YOLOv3: 训练自己的数据_yolov3训练小目标-CSDN博客 csdn博客写的比较全面。

最后附上没有数据集的完整目录文件,以及权重文件等等,注意这里面是没有数据集的,您需要加数据集进去才可以跑通。链接:https://pan.baidu.com/s/1aYoA2mhsy0_a47_7HI8iLg 密码:z4gi

我的微信公众号名称:小小何先生
公众号介绍:主要研究强化学习、计算机视觉、深度学习、机器学习等相关内容,分享学习过程中的学习笔记和心得!期待您的关注,欢迎一起学习交流进步!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值