目标检测之YOLOv5算法分析
YOLOv5共有5个版本的网络模型及其权重文件,即(n,s,m,l,x)
。
(下图来自github上yolov5官方开源项目的性能截图)
其中n,s,m,l,x网络模型结构如出一辙,差异在参数上。另外的n6,s6,m6,l6,x6模型是对于更大分辨率图片检测。
网络结构
该网络结构图来自CSDN博主:江大白。此处引用,仅供学习记录使用。
此图为YOLOv5sYOLOv5sYOLOv5s的网络模型架构。
Backbone
CSP-Darknet53
Neck
SPPF + CSP-PAN
Head
YOLOv3 Head
输出三种大小的特征预测,如分别是(76,76,255),(38,38,255),(19,19,255)(76,76,255),(38,38,255),(19,19,255)(76,76,255),(38,38,255),(19,19,255),不同版本不一致。
重点解析
边界框优化
在YOLOv4的基础上,将bw=pw∗etwb_w=p_w*e^{t_w}bw=pw∗etw与bh=ph∗ethb_h=p_h*e^{t_h}bh=ph∗eth换成bw=pw∗(2∗σ(etw))2b_w=p_w*(2*\sigma(e^{t_w}))^2bw=pw∗(2∗σ(etw))2与bh=ph∗(2∗σ(eth))2b_h=p_h*(2*\sigma(e^{t_h}))^2bh=ph∗(2∗σ(eth))2.
使用σ\sigmaσ函数旨在限制twt_wtw与tht_hth的值域,避免出现Nan的情况发生。
数据增强
数据增强方式有mosaic、HSV色域变换、旋转、缩放、翻转、平移、剪切等
真实框与Anchor匹配
rw=wgtwatrh=hgthatrwmax=max(rw,1rw)rhmax=max(rh,1rh)rwmax=max(rwmax,rhmax)\begin{align} r_w&=\frac{w_{gt}}{w_{at}}\\ r_h&=\frac{h_{gt}}{h_{at}}\\ r_w^{max}&=max(r_w,\frac{1}{r_w})\\ r_h^{max}&=max(r_h,\frac{1}{r_h})\\ r_w^{max}&=max(r_w^{max},r_h^{max})\\ \end{align} rwrhrwmaxrhmaxrwmax=watwgt=hathgt=max(rw,rw1)=max(rh,rh1)=max(rwmax,rhmax)
其中wgtw_{gt}wgt为真实框的宽度,watw_{at}wat为anchor的宽度,hgth_{gt}hgt为真实框的高度,hath_{at}hat为anchor的高度。
(3)(4)(3)(4)(3)(4)两式子用于衡量真实框与anchor差异大小,如果两者框的差异最小或两个框最相近,那么rhmaxr_h^{max}rhmax和rwmaxr_w^{max}rwmax为1.最后(5)(5)(5)中,获取框在高、宽上的最大差异值。这个差异值会与给定的阈值进行比较,如果满足阈值条件则认为匹配成功,否则失败。该原理与之前的使用IOU匹配原理类似。
损失函数
(v6.0及以后版本)
损失=边界框定位损失+目标分类损失+CIoU损失(置信度损失)
Loss=λ1Lloc+λ2Lcls+λ3LciouLoss=\lambda_1L_{loc}+\lambda_2L_{cls}+\lambda_3L_{ciou}Loss=λ1Lloc+λ2Lcls+λ3Lciou
也即
参数K为特征图数量,S2S^2S2为grid cell数量,BBB为anchor数量。
其中为了平衡不同尺度的损失(在coco数据集上),对于三个预测特征层{P3(小目标,如76∗76),P4(中等目标,如38∗38),P5(大目标,如19∗19)}\{P_3(小目标,如76*76),P_4(中等目标,如38*38),P_5(大目标,如19*19)\}{P3(小目标,如76∗76),P4(中等目标,如38∗38),P5(大目标,如19∗19)}上的目标CIOU损失采用不同的权重:Lossciou=4∗Lciousmall+Lcioumedium+0.4∗LcioulargeLoss_{ciou}=4*L_{ciou}^{small}+L_{ciou}^{medium}+0.4*L_{ciou}^{large}Lossciou=4∗Lciousmall+Lcioumedium+0.4∗Lcioularge
损失函数中, 为了提高对小目标的精准度,提高了小目标预测的损失。
目标检测之YOLOv5算法分析相关推荐
- 深度学习目标检测---使用yolov5训练自己的数据集模型(Windows系统)
目录 0 前言 1.从githab上克隆yolov5代码 1.1 yolov5网络project克隆 1.2 项目代码结构的整体介绍 1.3 深度学习环境的配置和安装yolov5所需要的库 2. ...
- 【目标检测】YOLOv5能识别英雄和小兵?原理解析~
目录 一.简介 二.模型结构 1.整体结构图 2.Backbone(CSPDarknet) 3.SPPF(Spatial Pyramid Pooling - Fast) 4.Neck(FPN+PAN) ...
- 深度学习目标检测:YOLOv5实现车辆检测(含车辆检测数据集+训练代码)
深度学习目标检测:YOLOv5实现车辆检测(含车辆检测数据集+训练代码) 目录 深度学习目标检测:YOLOv5实现车辆检测(含车辆检测数据集+训练代码) 1. 前言 2. 车辆检测数据集说明 (1)车 ...
- 深度学习目标检测:YOLOv5实现红绿灯检测(含红绿灯数据集+训练代码)
深度学习目标检测:YOLOv5实现红绿灯检测(含红绿灯数据集+训练代码) 目录 深度学习目标检测:YOLOv5实现红绿灯检测(含红绿灯数据集+训练代码) 1. 前言 2. 红绿灯检测数据集说明 (1) ...
- 目标检测算法——YOLOv5改进|增加小目标检测层
关注"PandaCVer"公众号 >>>深度学习Tricks,第一时间送达<<< 小目标检测一直以来是CV领域的难点之一,那么,YOLOv5该如 ...
- 用安卓手机解锁目标检测模型YOLOv5,识别速度不过几十毫秒!
丰色 发自 凹非寺 量子位 报道 | 公众号 QbitAI 现在,目标检测界明星模型YOLO,最新v5版本也可以在手机上玩儿了! 瞧-只需要区区几十毫秒,桌上的东西就全被检测出来了: 这速度似乎不比电 ...
- 目标检测:Yolov5集百家之长
首发于:公众号YueTan (1920,被识别为泰迪熊?有排面) 背景 2017年底,我已毕业多年了.用起Excel和PPT.研究车的质量问题俨然老手的样子.有一晚,照着一个帖子跑了一下Yolov1的 ...
- 【目标检测】YOLOv5分离检测和识别
前言 YOLO作为单阶段检测方法,可以直接端到端的输出目标对象位置和类别,而在一些大型无人机遥感等目标检测任务中,使用单阶段检测往往会产生类别预测错误的问题. 正好,YOLOv5-6.2版本提供了一个 ...
- 深度学习评估指标之目标检测——(yolov5 可视化训练结果以及result.txt解析)
1.机器学习模型评估指标总结 机器学习的数据集一般被划分为训练集和测试集,训练集用于训练模型,测试集则用于评估模型.针对不同的机器学习问题(分类.回归.排序.序列预测等),评估指标决定了我们如何衡量模 ...
- 目标检测—基于Yolov5的目标检测项目(学习笔记)
今天学习了炮哥带你学的yolov5入门教程,并成功的训练出了模型,原博客地址: 目标检测-教你利用yolov5训练自己的目标检测模型 本文主要讲述了在Windows10环境下复现此项目的具体过程和遇到 ...
最新文章
- 特写李飞飞:她激励了人工智能的发展,更要给人工智能赋予人的价值
- QuartZ Cron表达式详解
- Java12题:发奖金问题
- 你确定不反编译 likely 看看?
- linux下安装php两种模式区别
- DBA自述:非科班出身,如何成为Oracle ACE
- [原创]如何从数据库层面检测两表内容的一致性
- python有趣小程序-抖音最火的整蛊表白小程序如何做出来的?教你用python做出
- Windows 7安装Virtual Server 2005 R2 SP1
- Kibana饼图介绍
- 摄像头录像软件测试初学者,几款好用的摄像头视频捕获工具推荐
- 简单理解匈牙利KM算法
- 项目管理常用文档表格模板二
- MICRO‘21文章挑选(感兴趣)
- LPTSTR、LPCSTR、LPCTSTR、LPSTR之间的转换
- renqun_youhua=2004892,竞价链接后缀标识都是什么含义?
- Linux root添加用户
- 知识分享:电脑可以使用的pdf翻译软件哪个好用?
- D23:Multiple of 3 Or 5(3或5的倍数,翻译+题解)
- win10系统正在锁定计算机,怎样一息屏电脑就上锁win10
热门文章
- 论文解读(IGSD)《Iterative Graph Self-Distillation》
- ABAP--新语法--New Keyword in ABAP--第四天--CORRESPONDING MOVE-CORRESPONDING(DEEP) REDUCE
- 【Pycharm教程】Pycharm下载安装、配置与测试
- Unity的[Obsolete]属性
- js 移动端 下载 doc文件
- 软件测试工程师面试题之数据库
- 【提供代码获取方式】matlab使用风羽法画大气环流
- hdu_2670Girl Love Value(dp)
- 中国凝油锅炉市场趋势报告、技术动态创新及市场预测
- sudo报错及在linux上启动jar包时报错java.net.UnknownHostException