手把手教物体检测——yolov3
目录
下载.weights结尾的预训练模型,并将weight文件转为h5文件
摘要
YOLOv3是YOLO (You Only Look Once)系列目标检测算法中的第三版,相比之前的算法,尤其是针对小目标,精度有显著提升。在Pascal Titan X上处理608x608图像速度达到20FPS,在 COCO test-dev 上 mAP@0.5 达到 57.9%,与RetinaNet(FocalLoss论文所提出的单阶段网络)的结果相近,并且速度快4倍。
相比YOLOV2,YOLOV3的改进之处主要有两点:
- 多尺度预测 (类FPN)
- 更好的基础分类网络(类ResNet)和分类器
关于YOLOV3 的理解可以参照这两篇文章:
1、yolo系列之yolo v3【深度解析】
。
YOLOV3的整体结构
2、目标检测网络之 YOLOv3
训练
本地环境:TensorFlow 1.15.3
Python 3.7
Keras 2.1.5
下载算法
yolo v3 的算法版本比较多,我建议大家选用是qqwweee的keras版本,复现比较容易,代码相对来说比较容易理解。
github地址:
下载.weights结尾的预训练模型,并将weight文件转为h5文件
下载地址:。
新建weight文件夹,将下载的模型放进去。然后修改convert.py文件
将config_path、weightsPath和output_path这个三个参数删除。如下图:
修改main函数中的路径。
修改完成后点击运行。
修改类别。
yolo默认使用的类别文件是coco_classes.txt,所以我们需要将此文件的类别修改为数据集的类别。本例使用的数据集有两个类别,分别是aircraft和oiltank。
Labelme标注的数据集转为yolov3训练的数据集。
增加labelme2txt.py文件
生成的train.txt内容如下:
每张图片是x1,y1,x2,y2 class 组成的字符串。
执行Kmeans.py文件计算anchors。
修改train.py文件。
完成上面的步骤就可以开始训练了,点击run,开始训练。
测试
修改yolo.py
mode_path 修改为最终模型的路径:
修改yolo_video.py
删除以下参数
将image参数改为true
测试结果
本文实例:
- 点赞
- 收藏
- 关注作者
评论(0)