YOLOv1和YOLOv2

视频链接:视频链接
论文链接:yolov1论文

YOLOV1

论文思想:

  • 将一副图像分成SXS个网络(grid cell),如果某个object的中心落在这个网格中,则这个网络就负责预测这个object
  • 每个网格要预测B个bounding box ,每个bounding box除了要预测位置之外(x,y,w,h 其中x,y表示针对于中心网格所处的位置,范围处于0-1之间,w,h是物体与整个图像而言之间的比值,范围也是处于0-1之间),还要附带预测一个confidence值( P r ( O b j e c t ) ∗ I O U p r e d i c t t r u t h P_r(Object)*IOU_{predict}^{truth} Pr(Object)IOUpredicttruth),每个网格还要预测C个类别分数。
    在这里插入图片描述
    最终计算的时候我们计算的是目标概率乘上每个网格的置信度,即 P r ( C l a s s ) ∗ I O U p r e d t r u t h P_r(Class)*IOU_{pred}^{truth} Pr(Class)IOUpredtruth

损失函数

  • bounding box损失
    λ c o o o r d ∑ i = 0 S 2 ∑ j = 0 B I i j o b j [ ( x i − x i ^ ) 2 + ( y i − y i ^ ) 2 ] + λ c o o o r d ∑ i = 0 S 2 ∑ j = 0 B I i j o b j [ ( w i − w i ^ ) 2 + ( h i − h i ^ ) 2 ] \lambda_{cooord}\sum_{i=0}^{S^2}\sum_{j=0}^BI_{ij}^{obj}[(x_i-\hat{x_i})^2+(y_i-\hat{y_i})^2]+\lambda_{cooord}\sum_{i=0}^{S^2}\sum_{j=0}^BI_{ij}^{obj}[(\sqrt{w_i}-\sqrt{\hat{w_i}})^2+(\sqrt{h_i}-\sqrt{\hat{h_i}})^2] λcooordi=0S2j=0BIijobj[(xixi^)2+(yiyi^)2]+λcooordi=0S2j=0BIijobj[(wi wi^ )2+(hi hi^ )2]
    由于x,y表示的是相对位置,而w,h表示的是相对大小,针对于不同大小的目标而言,偏移相同的距离,小目标产生的误差比大目标要大,因此我们需要更加关注小目标的情况,所以我们可以进行开根号处理

  • confidence损失
    ∑ i = 0 S 2 ∑ j = 0 B I i j o b j [ ( C i − C i ^ ) 2 + λ n o o b j ∑ i = 0 S 2 ∑ j = 0 B I i j n o o b j ( C i − C i ^ ) 2 \sum_{i=0}^{S^2}\sum_{j=0}^BI_{ij}^{obj}[(C_i-\hat{C_i})^2+\lambda_{noobj}\sum_{i=0}^{S^2}\sum_{j=0}^BI_{ij}^{noobj}(C_i-\hat{C_i})^2 i=0S2j=0BIijobj[(CiCi^)2+λnoobji=0S2j=0BIijnoobj(CiCi^)2

  • class损失
    ∑ i = 0 S 2 I i j o b j ∑ c ∈ c l a s s ( p i ( c ) − p i ^ ( c ) ) 2 \sum_{i=0}^{S^2}I_{ij}^{obj}\sum_{c\in class}(p_i(c)-\hat{p_i}(c))^2 i=0S2Iijobjcclass(pi(c)pi^(c))2

其中 I i o b j I_i^{obj} Iiobj表示第i个网格中是否存在物体, I i j o b j I_{ij}^{obj} Iijobj表示利用第j个标定框取预测第i个网格。

YOLOv1存在的问题

(YOLOv1算法定位不准确导致)

  • YOLOv1本身对边界框较为敏感(SXS的格子中,每个格子只预测两个边界框,并且每个边界框只预测一个类别),当出现鸟群的时候,预测效果不是很好。
  • YOLOv1的边界框中本身是从数据中提取边界框的大小尺寸,所以当数据的尺寸发生变化的时候,效果并不是很好。

YOLOV2

YOLOv1版本本身的召回率和定位的效果交叉,因此YOLOv2版本主要用于解决此类问题,做出了以下七点尝试。

  • 归一化处理

    可以帮助模型收敛,对模型进行正则化处理,且Dropout层可以移。

  • 高分辨率分类器

    与传统的采用224X224的分类器不一样,我们主要采用448X448的分辨率,可以提高4%的mAP。

  • 基于anchor的目标边界框预测
    去预测偏移而不是坐标可以简化模型,并且让网络更加容易去训练,此时map下降了0.3%但是召回率上升了7%,召回率上升意味着有更大的改进空间。

    大的物体,往往占据图像的中心位置,所以最好在中心位置有一个位置来预测这些物体

  • 边界框聚类
    采用K-means聚类的方式来anchor的大小,获得先验知识,因为当先验框的效果更好,网络的预测效果也更好。

  • 直接位置预测
    在这里插入图片描述
    当直接对位置进行预测的时候,每个网格左上角的边界框可能不是预测自己本身,因此会导致模型的不稳定性,我们仍然可以预测其中的偏移,将数值规定在0-1之间,这样可以使模型更加的稳定。

  • 细腻度特征
    在这里插入图片描述 利用passthrough layer将图像的尺寸变为原来的1/4,通道数变为原来的四倍,可以不减少图像的信息,并且去结合更底层的信息,知道图像更多的细节。

  • 多尺度训练

    由于v1网络中采用了固定分辨率大小的图片,因此当输入的数据发生变化的时候,训练的效果不是很好,早v2中每迭代10次,随机的更换模型的输入分辨率,模型的鲁棒性效果更好。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 以下是YOLOv1和YOLOv2的主要区别: 1. Darknet-19代替了AlexNet作为YOLOv2的基础网络,因此YOLOv2在检测性能和速度方面都比YOLOv1更优秀。 2. 对于YOLOv2,作者使用批量归一化(Batch Normalization)来提高模型的稳定性和训练速度。这使得YOLOv2相对于YOLOv1更容易训练和收敛。 3. YOLOv2使用更细的网格(grid)和多尺度预测(multi-scale prediction)来提高检测精度和多尺度目标检测的能力。具体来说,YOLOv2将输入图像分成不同的尺度,并在每个尺度上进行目标检测,这使得YOLOv2能够检测到不同大小的目标。 4. 在YOLOv2中,作者使用Anchor Boxes来预测目标的边界框。这一技术使得YOLOv2能够更好地处理目标的不同宽高比,并提高目标检测的精度。 5. YOLOv2在训练时使用了更多的数据增强技术,如旋转、缩放、平移等,以增加模型的鲁棒性和泛化能力。 综上所述,YOLOv2在训练速度、检测精度、多尺度目标检测等方面都相对于YOLOv1有了较大的提升。 ### 回答2: YOLO(You Only Look Once)是一种实时目标检测算法,YOLOv2是YOLO的改进版本。下面先介绍YOLOv1,再与YOLOv2进行对比。 YOLOv1将目标检测问题转化为一个回归问题,使用一个单一的神经网络来同时预测边界框和类别。它将输入图像划分为SxS个网格(默认为7x7),每个网格预测B个边界框。对于每个边界框,预测的包围盒坐标是相对于该网格的,并使用卷积层来预测边界框的坐标。此外,每个网格还预测C个不同类别的置信度得分。最终,通过将网格的置信度得分与预测的边界框坐标相乘得到最终的预测结果。 YOLOv2在YOLOv1的基础上进行了一些重要的改进。首先,YOLOv2采用了更深和更复杂的卷积神经网络,使用更多的卷积层和更小的卷积核。这使得YOLOv2在预测时可以捕获更多的细节和高级语义特征。其次,YOLOv2引入了Anchor Boxes的概念,用于处理多尺度目标。它将输入图像划分为不同尺度的网格,在每个尺度的网格上预测不同数量和大小的边界框。这使得YOLOv2能够更好地处理不同大小的目标。此外,YOLOv2还使用了Batch Normalization和改进的损失函数,以提高模型的训练稳定性和准确性。 综上所述,与YOLOv1相比,YOLOv2在网络结构、多尺度处理和训练技巧等方面有了重大的改进。这些改进使得YOLOv2在目标检测任务中具有更高的准确性和更快的速度,尤其在实时场景下表现出色。 ### 回答3: YOLOv2是YOLO(You Only Look Once)检测器中的第二个版本,相比YOLOv1,它在准确性和速度上有了显著的提升。 首先,YOLOv2引入了DarkNet-19结构,它是一个19层的卷积神经网络模型,相比YOLOv1的网络结构更加深入,并且采用了预训练技术,从而提高了特征提取的能力。这就意味着在相同的输入图像下,YOLOv2可以更好地捕捉到目标的特征,从而提高了检测器的准确性。 其次,YOLOv2在网络结构中引入了Anchor Boxes的概念。Anchor Boxes是预先定义的多个矩形框,用来表示不同尺寸和长宽比的目标。通过在Anchor Boxes上进行回归预测,YOLOv2可以更好地适应不同尺寸和形状的目标,提高了检测器的灵活性和准确性。 此外,为了进一步提高YOLOv2的检测能力,它还引入了多尺度训练和测试技术。YOLOv2将输入图像分为不同尺度的网格,然后在每个尺度上进行检测,从而能够检测到不同大小的目标。这种多尺度的处理方式能够有效地提高检测器的覆盖率和准确性。 最后,YOLOv2还通过使用BN(Batch Normalization)层和更大的输入尺寸等技术,进一步提高了模型的性能。BN层能够加速模型的收敛速度,而更大的输入尺寸则能够提供更多的细节信息,从而增强了检测器的表达能力。 综上所述,相比YOLOv1,YOLOv2在准确性和速度上都有了显著的提升,这使得它在实时目标检测任务中具有更好的应用潜力。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值