一、介绍
Yolov5当前只公布了代码没有相关的论文,只能通过yolov5的代码来了解其算法。yolov5的整体模型和yolov4差别很小,Yolov5在性能上稍弱于yolov4,但是在灵活性与速度上远强于YOLO V4,在模型的快速部署上具有极强优势
二、特点
2.1 与yolov3对比主要有以下区别
(1)输入端:Mosaic数据增强、自适应锚框计算、自适应图片缩放
(2)Backbone:Focus结构,CSP结构
(3)Neck:FPN+PAN结构
(4)Prediction:GIOU_Loss
(5)pytorch实现,Yolov5代码中给出的网络文件是yaml格式,和原本Yolov3、Yolov4中的cfg不同
2.2 四种网络模型
Yolov5官方代码中,给出的目标检测网络中一共有4个版本,分别是Yolov5s、Yolov5m、Yolov5l、Yolov5x四个模型。其中Yolov5s网络是Yolov5系列中深度最小,特征图的宽度最小的网络。后面的3种都是在此基础上不断加深,不断加宽。yolov5s的模型十几M大小,速度很快,线上生产效果可观,嵌入式设备可以使用。
三、 训练及使用
3.1 下载
git clone https://github.com/ultralytics/yolov5.git
3.2 配置环境
根据requirements.txt文件配置环境,或者直接在当前环境中执行
pip install -r requirements.txt
3.3 下载权重文件
进入/yolov5/weights/ 文件夹下,执行./download_weights.sh,会将最新的四种模型的权重文件下载到yolov5文件夹下。
3.4 测试
cd yolov5
python detect.py --source data/images --weights yolov5s.pt --conf 0.25
检测结果会保存到yolov5/runs/detect/exp文件夹下,原图在data/images文件夹中。
注意:如果报关于环境配置的错误,注释掉detect.py文件中第166行的代码。
3.4 训练
3.4.1 数据集下载
可以执行下面的命令下载相应的数据集,也可以直接执行训练命令,会自动下载相应的数据集,并放到合适的位置。
bash data/scripts/get_coco.sh #下载coco数据集
bash data/scripts/get_voc.sh #下载voc数据集
3.4.2 数据集的位置
将数据集放到和yolov5并排的文件夹下
3.4.3 训练
python train.py --img 640 --batch 16 --epochs 5 --data data/coco128.yaml --weights yolov5s.pt
注意:如果训练的时候报关于环境的错误,注释掉train.py中的以下几行内容。