yolov3介绍

要介绍yolo-v3,首先要知道yolo-v1和yolo-v2

yolov1核心思想

核心思想是:
       要预测一张图片中有哪些物体。如果有一个输入,s×s大小的图片。如果有一个图片上的物体的中心点落到了某一个小区域,就预测这个小区域是什么。
       所以要预测图片中的每一个小区域分别代表什么。但是对每一个小区域预测之后,并不知道预测到的物体他的长宽比例是什么。此时就有一些先验的长宽比例,虽然这个比例和实际可能有一些不符合。
       对每个小区域来进行预测,预测当前的小区域是否有物体,会预测出一些置信度,要把置信度比较小的给过滤掉。
        之后就需要对这些先验知识进行微调,这些微调就是回归任务,通过回归任务来看长和宽做什么微调最为合适。
       此时就要看选择哪一个先验框来进行微调。此时选择IOU大的来进行回归。选择的这个先验框叫做候选框。

yolov1网络架构

       输入图像的大小是固定的,通过对图像进行reset来进行实现。输入图片的大小为448×448×3。因为卷积网络的全连接层的特征图大小是固定的。在这里插入图片描述

       最后的7×7×30中的7×7代表要预测的特征图的大小为7×7个格子。
       每个格子要预测30个值:B1(x1,y1,w1,h1(指预测出的物体的起始位置和长宽比例),c1)这是一个先验框预测出来的指,网络预测了两个框。目前为止,就要10个值了。之后的20个是一个20分类,每一个格子上的物体属于每一个类别的概率,这些类别有20种类别。最后就是5+5+20=30。

位置损失函数的计算

       损失函数就是真实值和预测值之间的误差,分为位置误差,置信度误差,分类误差等。
       对于位置误差,为 ( x − − x ) 2 + ( y − − y ) 2 + ( w − − w ) + ( h − − h ) (x^--x)^2+(y^--y)^2+(\sqrt{w^-}-\sqrt{w})+(\sqrt{h^-}-\sqrt{h}) (xx)2+(yy)2+(w w )+(h h )其中,因为有些物体的面积大,有些物体的面积小,面积小的物体的绝对误差很小时,也会导致对面积小的物体的预测出现较大的错误,所以要对加一个根号来削弱这一特征。

置信度误差的计算

       我们希望置信度越接近于IOU越好,所以置信度误差为 ( C i − I O U i ) 2 (C_i-IOU_i)^2 (CiIOUi)2。但是预测分为对物体的预测和对背景的预测,那么背景的置信度误差之前就加一个权值,来削弱背景误差的影响。

非极大值抑制(NMS)

       选择IOU最大的值。

yolov1的优点

简单,快速

yolov1存在的问题

       如果有两个物体重合在一起,最后很难分类。
       小物体很难检测得到,因为先验框固定而且没有考虑小物体
       如果一个物体有多个标签,很难处理。

yolo-v2概述

       yolov2舍弃了Dropout,在每一次卷积后全部加入Batch Normalization,网络的每一次都加入了归一化,使得收敛更加容易。
       V1训练时用的是224×224,测试的时候使用448×448。
       V2在训练时额外又进行了10次448×448的微调
       使用了高分辨率分类器后,提高了4%。

yolov2网络架构的特点

       yolo-v2提出了一种新的网络结构,实际输入为416×416,称为DarkNet(19)。为什么不是448,因为他一定可以被 2 32 2^{32} 232整除。416是一个比较合适的值。(见下面几行)
       整个网络没有全连接层,可以加快速度,也可以避免过拟合。所有操作都用卷积来实现,最后目标只是提取特征而已。
       没有FC层,经过了5次降采样即 2 32 2^{32} 232。最后416×416变成了13×13。最后的输出就是13×13。
       用了3×3的卷积,还有一些1×1的卷积(在传递中用1×1的卷积更加节省时间)。

yolov2-聚类提取先验框

       在yolov1中先验框是选择了两种,在实际的物体中,先验框远不止两种。在faster-cnn系列中,选择的先验比例都是常规的,但是不一定完全适合数据集。
       聚类提取先验框:先把训练集里面所有的先验框全提取出来在进行聚类。聚类的距离度量选择的是IOU。 d ( b o x , c e n t r o i d s ) = 1 − I O U ( b o x , c e n t r o i d ) d(box,centroids)=1-IOU(box,centroid) d(box,centroids)=1IOU(box,centroid)。IOU越小,d越大。经过实验选择的聚类类别数量是5时,效果最好。
       引入先验框,通过引入Anchor-Box,使得预测的box数量更多(13×13×n)。

yolov2-偏移量计算

       如果计算出来的位置中心为 ( x p , y p ) (x_p,y_p) (xp,yp),宽和高为 ( w p , h p ) (w_p,h_p) (wp,hp),则: x = x p + w p t x x=x_p+w_pt_x x=xp+wptx y = y p + w p t y y=y_p+w_pt_y y=yp+wpty t x = 1 t_x=1 tx=1时,那么bbox在x轴上向右移动 w p w_p wp,反之,则向左移动,这样会导致收敛问题,模型不稳定,尤其是刚开始训练的时候。
       所有yolov2中并没有直接使用偏移量,而是选择相对grid cell的偏移量,这里的gird cell指的就是一个网格,如下图所示:从图中可以看出, t x t_x tx t y t_y ty在sigmod函数的约束下,使得预测出来的位置中心无法脱离网格,避免了不稳定的收敛。而为了记住预测中心的位置,(用于映射到原图),使用了 C x 和 C y C_x和C_y CxCy,代表着他们在水平是在第几个格子,竖直是在第几个格子。
在这里插入图片描述
       上图的 p w p_w pw p h p_h ph是已只常数,而 b w b_w bw b h b_h bh是预测框的大小。

yolov2-感受野的作用:

       感受野指的是一个特征图上的数据可以代表原始图像的多大区域。即特征图上一个点的大小是输入图片多大区域的浓缩,即卷积核的大小。
在这里插入图片描述
       最终的是一个点相当于原始图像多大区域的浓缩。
       如果堆叠3个3×3的卷积层,并且保持滑动窗口步长为1,其感受野就是7×7了,那为什么不用一步7×7的卷积核。
       堆叠小的卷积核所需要的参数更少一些,并且卷积过程越多,特征提取就越细致,加入的非线性变换也会随着增多,而且不会增加参数个数。

yolov2-特征融合:

       yolo-v2最好一层时感受野太大了,小目标可能丢失,需要融合之前的特征。如将一个26×26×512拆为13×13×2048,在加上一层13×13×1024,最后加起来就是13×13×3072。
       都是卷积操作的话,就不像yolov1中一样需要对图片大小进行限制,所以图片大小就可以更加灵活。

yolov3-概述:

       yolov3最大的改进就是网络结构,使其更适合小目标检测。特征做的更加细致,融入多持续特征图信息来预测不太规格的物体。先验框更丰富了,3种scale,每种3个规格,一共九种,并且做了softmax改进,预测多标签任务。
       

多scale改进和特征融合

       为了能检测到不同大小的物体,设计了3个scale。3个scale的大小分别为52×52,26×26,13×13。那么,这三种大小的特征图从何而来?
       最直接的想法就是用多层卷积,卷到大小为52时提出来,卷到大小为26时提出来,卷到大小为13时在提出来。但是还需要借鉴:即大小为52的需要借鉴大小为26的特征图,大小为26的需要借鉴大小为13的特征图。(特征图越小,感受野越大,感受野小的借鉴感受野大的)。
在这里插入图片描述

融合方法

       将13×13的做上采样成为26×26的图。然后将其与原来的26×26的融合到了一起。

残差连接方法

       resnet的思想:残差连接。在传统神经网络中,并不是卷积层数越多,效果越好,例如:从19层开始卷积卷到56层,整体效果会下降。在19-56层这么多层之中,里面会有卷积效果好的和卷积效果差的。
       19层→20层→21层,19层到20层有两种方法,一种是卷积,另一种是啥都不干,直接拿过来当做第20层使用。核心思想就是至少不比原来差。

yolov3卷积架构

       没有池化层和全连接层,全部卷积;下采样通过stride为2实现,三种scale,更多先验框,基本上融合了当年全部的经典做法。

yolov3-sotfmax层改进

       物体检测任务中可能有多个标签。使用logistic激活函数来完成,这样就可以预测每一个类别是/不是。
        ∑ y i − l n y i \sum{y_i^-lny_i} yilnyi,他是以对数的形式存在,如果 y i y_i yi越接近于,那么 y i − l n y i y_{i}^{-}lny_{i} yilnyi越接近于0。这样就避免了属于某一个类别的概率越大而去影响其他类别的概率。

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
YOLOv3是一种目标检测算法,其网络结构可以分为主干网络、FPN特征融合、YOLO Head和不同尺度的先验框anchor box。主干网络负责提取图像的特征,FPN特征融合用于将不同尺度的特征图进行融合,YOLO Head用于生成目标检测的预测结果,而不同尺度的先验框anchor box用于检测不同大小的目标。 主干网络是YOLOv3的基础,它采用了Darknet-53网络结构,包含53个卷积层。这个网络结构可以提取出图像的高级语义特征。 FPN特征融合是为了解决不同尺度目标检测的问题。它通过将不同层级的特征图进行融合,使得网络可以同时检测不同大小的目标。 YOLO Head是YOLOv3的核心部分,它负责生成目标检测的预测结果。它将融合后的特征图输入到多个卷积层和全连接层中,最终输出目标的类别、位置和置信度。 不同尺度的先验框anchor box是为了适应不同大小的目标。YOLOv3使用了3种不同尺度的先验框,分别用于检测小、中、大尺寸的目标。 总的来说,YOLOv3的网络结构通过主干网络提取特征,通过FPN特征融合获得不同尺度的特征图,通过YOLO Head生成目标检测的预测结果,最终实现了高效准确的目标检测。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* [【YOLOv3 net】YOLOv3网络结构及代码详解](https://blog.csdn.net/weixin_45377629/article/details/124080087)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [YOLOv3网络结构和解析](https://blog.csdn.net/dz4543/article/details/90049377)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值