YOLO V3 详解
创始人
2024-03-02 11:44:01
0

YOLO V3

论文链接:YOLOv3: An Incremental Improvement

主要改进

  1. Anchor: 9个大小的anchor,每个尺度分配3个anchor。
  2. Backbone改为Darknet-53, 引入了残差模块
  3. 引入了FPN,可以进行多个尺度的训练,同时对于小目标的检测有了一定的提升 (因为有3个不同大小的feature map 用来做检测)。
  4. Loss function的改进。

Network structure improvement

Backbone: Darknet-53

分别要下采样 32, 16, 8。因此输入的图片尺度一定要是32的倍数。改进点在于引进了残差模块

在这里插入图片描述

FPN-多尺度学习

论文链接: Feature Pyramid Networks for Object Detection

Backbone是一个全卷积的网路结构,不含有全连接层,所以可以适用于各种不同尺度的输入大小。

在这里插入图片描述

多尺度的含义:

  • 3个尺度的feature map 来预测大目标和小目标。
  • 通过上采样的方法将深层的特征与浅层的特征相融合。
  • 比如,52×52的特征是由darknet浅层的细粒度像素级别的特征和深层的语义全局的特征的融合。

Loss Function

预测框分为三种:

  1. 正样本: 与GT的IOU最大
  2. 负样本: 与GT的IOU < 0.5
  3. 忽略样本:与GT的IOU > 0.5 但不是最大的。
    忽略样本不参与loss的计算。

正负样本

  • YOLO v3 只选取与groud truth的IOU最大的预测框进行拟合。而前面两个版本只是按照置信度标签及IOU值进行拟合。
  • 区别于前面版本的YOLO,置信度标签 (objectness score)是预测框和ground truth的IOU值, YOLO v3 对于正样本的置信度标签直接设为1。这样的好处在于,如果是用IOU值作为置信度标签,对于一些IOU值较低的样本不能很好的学习,同时对于小目标IOU对于像素的偏移很敏感。

Loss Function

  • 正样本对于分类和定位学习产生贡献,而负样本只对置信度学习产生贡献。
  • 多标签范式不再使用softmax来进行分类(即假设所有的类别都是互斥的,同一个框只可能属于一个类)。而使用对于每个类别都进行二分类任务,这样的好处在于对于同一个框可能可以存在不同的标签 (e.g. 学生、人).

在YOLOv3中,Loss分为三个部分:

  • 一个是xywh部分带来的误差,也就是bbox带来的loss
  • 一个是置信度带来的误差,也就是obj带来的loss
  • 最后一个是类别带来的误差, 也就是class带来的loss
    在代码中分别对应lbox, lobj, Icls,yolov3中使用的loss公式如下:
    lbox=λcoord ∑i=0S2∑j=0B1i,jobj(2−wi×hi)[(xi−xi^)2+(yi−yi^)2+(wi−w^i)2+(hi−hi^)2]lcls=λclass ∑i=0S2∑j=0B1i,jobj ∑c∈classes pi(c)log⁡(p^i(c))lobj=λnoobj ∑i=0S2∑j=0B1i,jnoobj(ci−c^i)2+λobj∑i=0S2∑j=0B1i,jobj(ci−c^i)2loss=lbox+lobj+lcls\begin{aligned} l b o x &=\lambda_{\text {coord }} \sum_{i=0}^{S^{2}} \sum_{j=0}^{B} 1_{i, j}^{o b j}\left(2-w_{i} \times h_{i}\right)\left[\left(x_{i}-\hat{x_{i}}\right)^{2}+\left(y_{i}-\hat{y_{i}}\right)^{2}+\left(w_{i}-\hat{w}_{i}\right)^{2}+\left(h_{i}-\hat{h_{i}}\right)^{2}\right] \\ l c l s &=\lambda_{\text {class }} \sum_{i=0}^{S^{2}} \sum_{j=0}^{B} 1_{i, j}^{\text {obj }} \sum_{c \in \text { classes }} p_{i}(c) \log \left(\hat{p}_{i}(c)\right) \\ l o b j &=\lambda_{\text {noobj }} \sum_{i=0}^{S^{2}} \sum_{j=0}^{B} 1_{i, j}^{n o o b j}\left(c_{i}-\hat{c}_{i}\right)^{2}+\lambda_{o b j} \sum_{i=0}^{S^{2}} \sum_{j=0}^{B} 1_{i, j}^{o b j}\left(c_{i}-\hat{c}_{i}\right)^{2} \\ l o s s &=l b o x+l o b j+l c l s \end{aligned} lboxlclslobjloss​=λcoord ​i=0∑S2​j=0∑B​1i,jobj​(2−wi​×hi​)[(xi​−xi​^​)2+(yi​−yi​^​)2+(wi​−w^i​)2+(hi​−hi​^​)2]=λclass ​i=0∑S2​j=0∑B​1i,jobj ​c∈ classes ∑​pi​(c)log(p^​i​(c))=λnoobj ​i=0∑S2​j=0∑B​1i,jnoobj​(ci​−c^i​)2+λobj​i=0∑S2​j=0∑B​1i,jobj​(ci​−c^i​)2=lbox+lobj+lcls​
    其中:
    SSS: 代表grid size
    BBB: box
    1i,jobj1_{i, j}^{o b j}1i,jobj​ : 如果在i,j 处的box有目标,其值为 1 ,否则为 0
    1i,jnoobj 1_{i, j}^{\text {noobj }}1i,jnoobj ​ : 如果在i,j 处的box没有目标,其值为 1 ,否则为 0

Focal Loss

为什么YOLO v3使用focal loss效果不好?
Focal loss解决单阶段目标检测,正负样本不均衡,有用的负样本较少的问题。相当于挖掘负样本信息。而YOLO v3对于负样本的IOU阈值设置为0.5过高,因此负样本中其实存在一些疑似正样本的样本,对于这些样本,focal loss基于过高的noise权重会导致效果不好。

相关内容

热门资讯

Kafka_基本结构和原理 一、概念理解 Kafka是最初由Linkedin公司开发,是一个分布式、支持分区的(partitio...
【JVM】搞清类加载机制 文章目录优秀借鉴1、概述2、类加载的时机2.1、概述2.2、初始化的主动引用2.3、初始化的被动引用...
Kubernetes-in-a... Kubernetes-in-action (十) 本节内容: 容器的资源限制&#x...
《渔王的儿子》阅读答案 《渔王的儿子》阅读答案  阅读是一种主动的过程,是由阅读者根据不同的目的加以调节控制的,陶冶人们的情...
三年级下册应用题 三年级下册应用题  导语:应用题是指将所学知识应用到实际生活实践的题目。下面是由小编整理的关于三年级...
风烟俱净阅读以及答案 风烟俱净阅读以及答案  阅读课内文言文,完成问题。  风烟俱净,天山共色。从流飘荡,任意东西。自富阳...
二年级数学测试题 二年级数学测试题精选  二年级数学上册测试题  一、填空。  1、1米=( )厘米 ...
Python 使用tf-idf... Python 使用tf-idf算法计算文档关键字权重,并生成词云 作者:...
孔乙己阅读答案 有关孔乙己阅读答案(精选5篇)  在学习和工作中,我们写阅读题就会用到阅读答案,阅读答案是我们解答阅...
《组装生命》阅读答案 《组装生命》阅读答案  组装生命  致 远  ①就像我们小的时候一遍又一遍拆散收音机,终于有一天,我...
八年级上册数学期末练习题 八年级上册数学期末练习题  八年级上册数学期末练习题  一。选择题  1.下列条件中不能确定四边形A...
酒酿王阅读答案 酒酿王阅读答案  同学们知道《酒酿王》这篇文章吗?下面小编整理了这篇文章的阅读供大家欣赏,一起来看看...
MongoDB详解,用心看这篇... 1.1 MongoDB概述 MongoDB是一个基于分布式文件存储的数据库。由C++...
【三次握手和四次握手】传输层协... 文章目录1.TCP协议介绍2.TCP报文格式3.TCP三次握手3.1 三次握手的建立3.2 第三次握...
台城阅读答案 台城阅读答案  《台城》是唐代诗人韦庄创作的一首凭吊六朝古迹的咏史怀古诗。此诗通过描绘美轮美奂的江南...
《猫人》阅读答案 《猫人》阅读答案  YJBYS文学网小编收集整理了关于《猫人》阅读答案以供各位同学参考和学习,希望对...
适合1~3岁宝宝的13道智力... 有关适合1~3岁宝宝的13道智力测试题  过了1岁,宝贝摇摇晃晃走路了。他的视野越来越开阔,也越来越...
初二数学期中试题下册练习题 人教版初二数学期中试题下册练习题  一、填空题(每题3分,共30分)  1、函数y=+中自变量x的取...
vuex教程,只需一篇让你搞懂... 目录 1.安装vuex npm i vuex 2.在src目录下创建store文件夹,...
18、江科大stm32视频学习... 目录 一、USART串口发送  1、电路图 2、printf函数的移植方法 3、serial.c ...