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

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

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

如果是我们自己有数据集的话,我们就需要去打标签啥的(网上说的是用工具:LabelImg),具体一点的话可以参考文章。这里拿WiderFace数据集来把这个思想跑通。我们首先进入数据集官网http://mmlab.ie.cuhk.edu.hk/projects/WIDERFace/。之后我们下载一下文件:

红色框框住的是数据集,黑色框框住的是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的错误
更具体的代码的编写的话,可以参考文章:https://www.jianshu.com/p/8214d947e031

5.验证

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

如果你想入坑的话,下面有一些链接您可以深入入坑:https://github.com/SpikeKing/keras-yolo3-detection

参考链接:

https://blog.csdn.net/yison11/article/details/78122339 人脸数据集下载。

https://www.jianshu.com/p/8214d947e031 讲的比较详细的简书教程。

https://github.com/SpikeKing/keras-yolo3-detection github代码加微信公众号代码详解。

https://blog.csdn.net/lilai619/article/details/79695109 csdn博客写的比较全面。

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

猜你喜欢

转载自blog.csdn.net/weixin_39059031/article/details/82731961