首页 > 其他分享 >[重读经典论文]YOLOv3

[重读经典论文]YOLOv3

时间:2023-04-28 16:56:20浏览次数:35  
标签:gt YOLOv3 尺度 IOU 论文 https com anchor 重读

1. 前言

YOLOV3是单阶段目标检测算法YOLO系列的第三个版本,由华盛顿大学Joseph Redmon发布于2018年4月,广泛用于工业界。

改进了正负样本选取、损失函数、Darknet-53骨干网络,并引入了特征金字塔多尺度预测,显著提升了速度和精度。

2. 网络结构

换了骨干网络,把backbone在darknet19的基础上融合残差模块,形成darknet-53。

网络结构

v3,输入416*416的图片,经过backbone,提取三个尺度的feature map,然后在Neck部分,融合不同尺度的feature map信息(撒上采样+通道方向拼接),最后输出三个尺度的预测结果,根据感受野不同分别负责预测大物体,中等物体和小物体。

v3结构分部分

v3结构2

更详细网络结构图:

v3结构3

3. 细节

3.1. anchor

沿袭YOLOv2中的设定。将特征图分割为n*n的grid cell,每个grid cell大小归一化为1,对每个anchor预测的位置偏移tx,ty,tw,th通过sigmoid和exp函数进行值域限制,如下图所示:

anchor2

anchor1

3.2. 正负样本

对于每一个gt,按照v3的特征金子塔,应该有三个grid cell共9个anchor可能对其进行预测,方法是选出与之IOU最大的anchor负责预测这个gt,IOU的计算方法是将anchor与gt的中心点对齐后再算,与v1v2不同的是,选出来之后将这个anchor的object的Confidence标签值置为1。而v1v2中使用IOU作为置信度标签的坏处有以下原因:

  • 很多预测框与gt的IOU最高只有0.7,导致很难训练。
  • coco中的小目标IOU对像素偏移敏感,无法有效学习。

对于IOU大于一定阈值(本文是0.5)但又不是最大的,在loss中将其直接忽略。对于小于这个阈值的,定义为负样本,在loss中指对置信度学习产生贡献。

值得注意的是和faster rcnn不一样,v3对每个gt只分配一个anchor对其负责预测。anchor三种情况如下:

正例 与gt IOU最大 计算置信度、分类和定位误差
负例 IOU<0.5 仅计算置信度误差
其他 IOU>0.5但非最大 忽略

3.3. 类别预测

不同于以往对类别的logit输出进行softmax回归,v3使用多分类的方法,对每个类别的输出逐一使用sigmoid函数输出概率,让类别之间不是互斥的,也可以有多个类别同时输出高概率。

3.4. 多尺度目标检测

参考了特征金字塔FPN,V3在三个尺度上对gt进行预测,每个尺度输出的tensor尺寸为:

N * N *[3 * (4 + 1 + 80)]

其中N*N为grid cell数量,3为每个grid cell生产的anchor数量,4为tx,ty,tw,th,1为物体检测置信度,80为类别概率。

在本文中,输入256*256的图片,最后输出三个尺度,分别为:

  • 52*52,负责小物体。
  • 26*26,负责中等尺寸。
  • 13*13,负责大物体。

由于深层的特征通过上采样与浅层特征进行融合, 使得浅层细粒度的像素结构信息融合深层抽象语义信息。

与v2一样,anchor也是通过kmean聚类算法计算获得9个anchor,每个尺度分配三个anchor。

3.5. 训练阶段标签分配

anchor标签

中心点落在三个尺度的grid cell上,由与gt的IOU最大的anchor去负责预测这个物体。

3.6. 特征提取器

也就是backbone,混合了Darknet-19和残差模块,总共有53个参数层(52卷积+1全连接),因此也称为Darknet-53

网络结构

对比Darknet-19,ResNet-10,ResNet-152,在精度上不差,但是效率更高,如下图所示:

网络性能

3.7. 训练

端到端,没有使用难例挖掘。另外使用了多尺度训练,数据增广,bn等标准操作。

3.8. 损失函数

loss

损失函数主要分为三部分。

第一部分是正样本坐标损失,遍历所有anchor,如果是正样本,求bx,by,bw,bh的平方和损失,后面还乘以2*wi*hi用来惩罚小框。

第二部分是正样本的置信度和类别损失,也是遍历所有anchor,分布求执行度和类别的交叉熵损失并相加。

第三部分是负样本的置信度损失,预测值pc越接近0,损失越小。

4.其他细节

V3在IOU=0.5的Ap50上的性能很好,但是在[email protected]:0.95上性能不是很好,证明V3在精准定位上性能依然不行,但是对小目标的检测性能相比以前提高了,这归结于几个原因:

  • grid cell个数增加,使得更容易应付稠密目标
  • 为小目标定制的anchor尺寸
  • 多尺度预测,融合深层语义特征和浅层细粒度特征
  • 损失函数惩罚小框项
  • backbone网络引入残差连接,性能提高

5. 参考

[1] 【精读AI论文】YOLO V3目标检测(附YOLOV3代码复现)

[2] 其他拓展:

江大白:https://zhuanlan.zhihu.com/p/143747206

郭冠华:https://zhuanlan.zhihu.com/p/40332004

Netron可视化YOLOV3网络结构:https://blog.csdn.net/nan355655600/article/details/106246355

木盏:https://blog.csdn.net/leviopku/article/details/82660381

太阳花的小绿豆:https://blog.csdn.net/qq_37541097/article/details/81214953

B站工程师Algernon鉴黄YOLO:https://github.com/thisiszhou/SexyYolo

B站工程师Algernon博客:https://zhuanlan.zhihu.com/p/76802514

损失函数:https://blog.csdn.net/qq_34795071/article/details/92803741

代码复现
Ultralytics公司:https://github.com/ultralytics/yolov3

https://github.com/qqwweee/keras-yolo3

https://github.com/bubbliiiing/yolo3-pytorch

cvpods:https://github.com/Megvii-BaseDetection/cvpods/blob/master/cvpods/modeling/meta_arch/yolov3.py

(完)

标签:gt,YOLOv3,尺度,IOU,论文,https,com,anchor,重读
From: https://www.cnblogs.com/harrymore/p/17362622.html

相关文章

  • 如何使用ChatGPT在1天内完成毕业论文
    ​ 如何使用ChatGPT在1天内完成毕业论文几天前,亲眼见证了到一位同学花了1天时间用ChatGPT完成了他的毕业论文,世道要变,要学会使用黑科技才能混的下去。废话到此结束,下面说明这么用AI生成自己的论文。使用工具:1.Prompt框架学习:https://github.com/prompt-engineering/prompt-......
  • 论文阅读笔记《Grounded Action Transformation for Robot Learning in Simulation》
    GroundedActionTransformationforRobotLearninginSimulation发表于AAAI2017仿真机器人学习中的接地动作变换HannaJ,StoneP.Groundedactiontransformationforrobotlearninginsimulation[C]//ProceedingsoftheAAAIConferenceonArtificialIntelligence......
  • 论文阅读笔记《Stochastic Grounded Action Transformation for Robot Learning in Si
    StochasticGroundedActionTransformationforRobotLearninginSimulation发表于IROS2020(CCFC)模拟中机器人学习的随机接地动作转换DesaiS,KarnanH,HannaJP,etal.Stochasticgroundedactiontransformationforrobotlearninginsimulation[C]//2020IEEE......
  • 论文阅读笔记《Residual Physics Learning and System Identification for Sim to rea
    ResidualPhysicsLearningandSystemIdentificationforSimtorealTransferofPoliciesonBuoyancyAssistedLeggedRobots发表于2023年。论文较新,未找到发表期刊。基于浮力辅助的足式机器人策略迁移的残差物理学习与系统识别SontakkeN,ChaeH,LeeS,etal.Resi......
  • [重读经典论文]YOLOv1
    1.前言由JosephRedmon等人2016年在论文《YouOnlyLookOnce:Unifified,Real-TimeObjectDetection》中提出的一阶段目标检测算法,核心思想是将物体检测任务视为回归问题。它通过将图像分成S×S个网格,每个网格负责预测该网格中是否存在物体以及物体的类别和位置信息。使用单......
  • 1.ORB-SLAM3论文重点导读及整体算法流程梳理
    摘要ORB-SLAM3是第一个能够执行纯视觉、视觉-惯导以及多地图的SLAM系统,可以在单目,双目以及RGB-D相机上使用针孔以及鱼眼模型。本文主要新颖之处在于基于特征的VIO紧耦合系统,该系统完全依赖于最大后验估计,即使在IMU初始化阶段也是如此。本系统在小型和大型、室内和室外环境中实时......
  • 研究生论文处理的数据
    数据的特征是反射率每一个波长代表一个维度。数据的横轴代表像素数,纵轴代表不同频率,里面的内容表示不同频率的反射率。物体反射的辐射能量占总辐射能量的百分比,称为反射率。不同物体的反射率也不同,这主要取决于物体本身的性质(表面状况),以及入射电磁波的波长和入射角度,反射率的大......
  • 中国的世界遗产结课论文
    中国的世界遗产结课论文先上正文​ 中国是一个拥有悠久历史和丰富文化遗产的国家,这些遗产不仅代表着中国人民的智慧和创造力,也是世界文化遗产的重要组成部分。在中国境内,共有56处世界文化和自然遗产,涵盖了古代建筑、自然风光、历史文化等多个方面。​ 本文将重点介绍几处代表......
  • 数学建模论文排版(表格篇)
    本文为学习清风数学建模排版的word部分的笔记配套资料可以在微信公众号《数学建模学习交流》后台发送“论文排版”免费获取。 三线表制作先插入一个表格然后删除边框(在表格工具--布局--查看网格线(打开),即可看见去除边框后的虚线)再利用表格工具--表设计--边框刷为表格刷上边框,第......
  • 论文推荐:基于联合损失函数的多任务肿瘤分割
    以FFANet为主干,加入分类的分支,将模型扩展为多任务图像分割框架,设计了用于分类和分割的联合损失函数。FFANet+MTL完整文章:https://avoid.overfit.cn/post/6a605da56978443bb548e8f342cbda37......