**Pytorch-yolov4做目标检测详细教程**
- 一. 项目环境
- 二.项目连接
- 三.项目搭建
- 3.1 数据准备
- 3.2 搭建流程
- 四.源码分析
- 五.参考文章
一. 项目环境
以下是我工程的环境(基于ubuntu18.04):
环境 | 版本 |
python | 3.6 |
pytorch | 1.5.0 |
注释:环境主要是pytorch环境,而且库很好安装,缺少什么库就安装什么库,这个很简单;
二.项目连接
论文连接:https://arxiv.org/abs/2004.10934
项目连接:https://github.com/Tianxiaomo/pytorch-YOLOv4
三.项目搭建
3.1 数据准备
3.1.1准备coco数据集下载:
coco数据集地址下载方法一:
train2017:http://images.cocodataset.org/zips/train2017.zip
val2017:http://images.cocodataset.org/zips/val2017.zip
test2017:http://images.cocodataset.org/zips/test2017.zip
trainval2017:http://images.cocodataset.org/annotations/annotations_trainval2017.zip
trainval2017:http://images.cocodataset.org/annotations/stuff_annotations_trainval2017.zip
image_info_test2017:http://images.cocodataset.org/annotations/image_info_test2017.zipcoco数据集地址百度云下载方法二:
链接: https://pan.baidu.com/s/1XrRHtRIHu5Jp5j4Rv_-vXA 密码: cw0l
数据目录图片展示:
3.1.2数据增强和路径配置:
注释:数据增强和筛选很重要,后期我会专门讲解这块。
路径配置在cfg.py(P53).注意要把coco数据集生成train.txt/val.txt文件,内容格式如下:
image_path1 x1,y1,x2,y2,id x1,y1,x2,y2,id x1,y1,x2,y2,id …
image_path2 x1,y1,x2,y2,id x1,y1,x2,y2,id x1,y1,x2,y2,id …
3.2 搭建流程
3.2.1搭建流程:
github下载源码并把环境配置配置好,用pycharm打开。train.py参数配置好就可以运行,太简单了/haha.jpg/。然后可以单步调试就行了。具体函数在源码分析里面详细讲解。
四.源码分析
4.1.1代码目录:
4.2.1代码流程:
- 前期准备:
1》论文熟悉了,通读两遍。
2》yolov4主要是借鉴其他有些的技巧,平衡了精度和速度,主要围绕Bag of freebies和 Bag of spedials来写;在这里推荐几个优秀的博客。参考:
睿智的目标检测30——Pytorch搭建YoloV4目标检测平台深入浅出Yolo系列之Yolov3&Yolov4核心基础知识完整讲解
3》Yolov4结构:
2.代码熟悉:
1》大致流程图如下:
其实我主要关注最后的输出和损失函数处理,前面的BackBone也就是特征提取,不用的方法提取的特征有好有坏,现 在也有很多优秀的提取特征的方法,大家可以研究怎么才能更好的提取特征,说不定还能发个论文。
最后经过FPN和PAN后的输出[19 * 19* 255] [38* 38* 255][76* 76* 255].也就是三个yolo层的输出,256 = 3(每层的anchors个数)*【1(目标置信度)+4(四个坐标)+80(类别)】
五.参考文章
[1.] 睿智的目标检测30——Pytorch搭建YoloV4目标检测平台