2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > 目标检测之yolo系列模型-yolov4/yolox

目标检测之yolo系列模型-yolov4/yolox

时间:2018-12-08 16:22:31

相关推荐

目标检测之yolo系列模型-yolov4/yolox

文章目录

一、yolov4较yolov3的优化点1.1 网络结构层面(1) CSPDarknet53(借用CSP结构)(2) SPP(3) PAN(借用PANet) 1.2 优化策略(1) mosaic 4张不同的图片拼接起来(2) ciou(3) *消除grid网格敏感——预测目标中心点可以取到网格边界/增加正样本的数量* Eliminate grid sensitivity 二、yolox较yolov4的优化点2.1 网络更新--解耦检测头2.2 Anchor-Free机制以及优缺点2.2.1 (附录) Anchor-based机制的优缺点 2.3 *更先进的正负样本匹配策略(simOTA)*步骤 三、focal loss3.1 背景3.2 做法3.3 更细节

一、yolov4较yolov3的优化点

/cucwwb/p/13166288.html

总结:

(1)对主干网络进行了修改,将原先的Darknet53改为CSPDarknet53,其中是将激活函数改为Mish激活函数,并且在网络中加入了CSP结构。

(2)对特征提取过程的加强,添加了SPP,PANet结构。

(3)在数据预处理阶段加入Mosaic方法。

(4)在损失函数中做了改进使用了CIOU作为回归Loss。

M i s h ( ) = x × t a n h ( l n ( 1 + e x ) ) Mish() = x×tanh(ln^{(1+e^x)}) Mish()=x×tanh(ln(1+ex))

1.1 网络结构层面

(1) CSPDarknet53(借用CSP结构)

CSP是可以增强CNN学习能力的新型结构,CSPNet将底层的特征映射分为两部分,一部分经过密集块和过渡层,另一部分与传输的特征映射结合到下一阶段。

原文表达的作用:

加快网络的推理速度,减少对显存的使用,并且提升网络的学习能力。

更强的CNN的学习能力;移除计算瓶颈;减小使用的内存;

原文通过通道分割,但实际上不是,代码中是先用卷积下采样,然后分别输入两个conv结构中。

(2) SPP

优点:解决多尺度的问题

分别经过卷积和大小5X5,步距为1,padding为2;卷积和大小9X9,步距为1,padding为4;卷积和大小13X13,步距为1,padding为6;输出都是13X13X2046,和原始的拼接起来,最后的shape为13X13X2046。

附:卷积和的计算公式

o u t p u t = i n p u t − k e r a l + p a d d i n g ∗ 2 s t r i d e + 1 output = \frac{input - keral + padding * 2}{stride} + 1 output=strideinput−keral+padding∗2​+1

(3) PAN(借用PANet)

上采样:FPN

上采样+下采样:PAN

特征融合:CONCAT策略,在深度方向进行拼接

1.2 优化策略

(1) mosaic 4张不同的图片拼接起来

(2) ciou

IOU:一般的iou,两个框的交集除以并集

GIOU:= i o u − ( ( A C − U ) / A C ) iou - ((AC-U)/AC) iou−((AC−U)/AC)

其中, AC为两个框的外接矩形的面积,U为两个框的并集的面积

缺点:

当两个框并列时,退化为IOU计算公式;两个框,小框在大框中时,无法衡量两个框的位置关系,基于这一点提出DIOU

DIOU:= i o u − ( d 2 / c 2 ) iou - (d^2 / c^2) iou−(d2/c2)

其中d为两个框中心点的距离,c为两个框外接矩形的对角线的距离

CIOU:= i o u − ( d 2 / c 2 + a v ) iou - (d^2 / c^2 + av) iou−(d2/c2+av)

考虑到了距离和框的宽高

这也是两者在loss function上的区别:

YOLO V4相较于YOLO V3,只在bounding box regression做了创新,用CIOU代替了MSE,其他两个部分没有做实质改变。

(3)消除grid网格敏感——预测目标中心点可以取到网格边界/增加正样本的数量Eliminate grid sensitivity

回顾yolov3

预测目标边界框的时候,通过1X1卷积层滑动grid cell会针对每个anchor预测回归框参数以及每个类别的score分数,回归参数则为 t x , t y , t w , t h t_x,t_y,t_w,t_h tx​,ty​,tw​,th​,公式如下:虚线为anchor,蓝色为gt框。

问题在于sigmoid激活函数在0和1范围内取值,因此如果真实目标的中心点刚好落在grid cell边界上,是无法预测正确的。

yolov4的改进:修改激活函数

二、yolox较yolov4的优化点

网络结构基于yolov5 v5.0构建的

2.1 网络更新–解耦检测头

加速收敛,提升AP,参数不共享;类别一个检测头,位置和objectness共用一个检测头;

需要注意的是,实验效果是跟yolov3进行比较,看结果是能更快的收敛,但网络是从yolov5借鉴的,所以效果就emmm值得商榷,结果如下:

2.2 Anchor-Free机制以及优缺点

anchor-free机制

在每个grid cell来预测四个参数 t x , t y , t w , t h t_x, t_y, t_w, t_h tx​,ty​,tw​,th​,这里是相对特征层的,还原到原图需要乘以步距。可以看到跟anchor没关,是个anchor-free的网络。

优点:

使用类似分割的思想来解决目标检测问题;不需要调优与anchor相关的超参数;避免大量计算GT boxes和anchor boxes 之间的IoU,使得训练过程占用内存更低。 缺点:

/news//0413/10766620.html

1.正负样本极端不平衡;

2.语义模糊性(因为主要靠关键点检测,如果两个目标中心点距离太近,更甚重叠,就会造成语义模糊);

现在这两者大多是采用Focus Loss和FPN来缓解的,但并没有真正解决。

2.2.1 (附录) Anchor-based机制的优缺点

优点:

(1)使用anchor机制产生密集的anchor box,使得网络可直接在此基础上进行目标分类及边界框坐标回归;

(2)密集的anchor box可有效提高网络目标召回能力,对于小目标检测来说提升非常明显。

缺点:

(1)anchor机制中,需要设定的超参:尺度(scale)和长宽比( aspect ratio)是比较难设计的。这需要较强的先验知识。

(2)冗余框非常之多,会造成正负样本严重不平衡问题,也是one-stage算法难以赶超two-stage算法的原因之一。

(3)网络实质上是看不见anchor box的,在anchor box的基础上进行边界回归更像是一种在范围比较小时候的强行记忆。

(4)基于anchor box进行目标类别分类时,IOU阈值超参设置也是一个问题。

————————————————

版权声明:本文为CSDN博主「ytusdc」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:/ytusdc/article/details/107864527

2.3更先进的正负样本匹配策略(simOTA)

一句话解释:目标时怎样以最低的成本(cost)将GT分配给对应的样本,公式为:

最小化cost可以理解为让网络以最小的学习成本学习到有用的知识。

步骤

(1)预筛选grid cell

根据GT box和fixed center area来选取grid cell

(2)cost具体计算公式

(3)计算得到grid去预测哪个GT代价更小

(3.1) 计算grid与GT的cost矩阵

(3.2) 计算grid与GT的IoU矩阵

(3.3) 在grid与GT的IoU矩阵中计算grid的数量

(3.4)最后根据grid数量取cost矩阵中cost最小的 grid对应的gt框,再得到分配矩阵,1为正样本,0为负样本

(3.5) 如果同一个grid分配给了多个GT框的话,选取cost最小的那个GT。

三、focal loss

3.1 背景

针对one-stage的模型,目的是解决正负样本不均衡的问题。(负样本会有1w-10w,权重小,数量多也会过多关注)

3.2 做法

降低易分样本的loss贡献,让网络专注于学习难分的样本,达到平衡样本的目的,因为负样本数量巨多,就会有很多的易分样本。

3.3 更细节

类别不平衡问题是目标检测任务中常见的问题之一,即在标注数据中,某些类别的样本数量远远大于其他类别的样本数量。这会导致模型对于少数类别的识别能力较弱,易于因为平衡问题导致分类性能下降。Focal Loss正是为了解决这一问题而提出的一种损失函数。

Focal Loss是一种动态平衡损失函数,它主要通过调整难易样本的权重,使得难以分类的样本更受重视,而易分类的样本则更加忽略,从而解决了数据类别不平衡的问题。具体而言,Focal Loss将正常的二元交叉熵损失函数分解为两个部分,分别考虑易分和难分样本的权重:

F L ( p t ) = − ( 1 − p t ) γ log ⁡ ( p t ) FL(p_t) = -(1-p_t)^\gamma \log(p_t) FL(pt​)=−(1−pt​)γlog(pt​)

其中, p t p_t pt​是预测概率, 1 − p t 1-p_t 1−pt​是样本权重, γ \gamma γ 是调整因子,用于平衡易分和难分样本的权重。 γ \gamma γ 取值越大,难分样本获得的权重越多,容易分样本的权重越少。

Focal Loss的原理是通过平衡权重,让难分样本在损失函数中所占据的比例变大,从而给予更大的惩罚,在训练中更容易识别这些样本。在实验中,Focal Loss已经被证明可以提高目标检测的性能和准确性,特别是在类别不平衡问题比较严重的数据集中表现更为突出。

参考:

yolo系列:

/ThomasCai001/article/details/123593690?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22123593690%22%2C%22source%22%3A%22ThomasCai001%22%7D

yolov3:/leviopku/article/details/82660381

yolox:/video/BV1JW4y1k76c/?spm_id_from=333.1007.top_right_bar_window_history.content.click&vd_source=82b50e78f6d8c4b40bd90af87f9a980b

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。