前言:
如今咱们对“yolo2算法”大体比较关切,看官们都需要知道一些“yolo2算法”的相关知识。那么小编也在网摘上收集了一些有关“yolo2算法””的相关资讯,希望我们能喜欢,小伙伴们快快来了解一下吧!YOLO9000(YOLO2的改进版本),比YOLO有不少改进,并且有“更好,更快,更强”之称谓,那么到底更好在哪?更快在哪?更强在哪?本文抽丝剥茧,一一予以给出。
本文的背景论文是:
《YOLO9000:Better,Faster,Stronger》。
YOLOv2
在67 FPS,YOLOv2在PASCAL VOC 2007上获得76.8%的mAP。在40 FPS时,YOLOv2获得78.6%mAP,这比使用ResNet和SSD 更快的R-CNN更好。凭借如此优异的成绩,YOLOv2于2017年CVPR发布并获得超过1000次引用。
YOLO9000是如何实现“更好,更快,更强 ”:
1. YOLOv2改进并且超过YOLOv1(更好)
2. YOLOv2使用Darknet-19(更快)
3. YOLO9000 by WordTree(更强)
YOLOv2比YOLOv1改进的若干技巧(更好)
1、批归一化(BN)
在前边的文章专门阐述过《批归一化Batch Normalization的原理及算法
BN用于YOLOv2中的所有卷积层mAP提高2%
2、高分辨率分类器
经过224×224图像训练后,YOLOv2还使用448×448图像对ImageNet上的10个epochs的分类网络进行微调mAP增加4%
3、与锚箱(Anchor Boxes)的卷积
· YOLOv2删除所有完全连接的图层,并使用锚框来预测边界框。
· 移除一个池化层以提高输出分辨率。
· 416×416图像用于训练检测网络。
· 并且获得13×13特征图输出,即32×下采样。
· 没有锚箱,中间模型的mAP达到69.5%,召回率为81%。
· 使用锚箱,获得69.2%的mAP和88%的召回率。虽然mAP略有下降,但召回量大幅增加。
4、Dimension Clusters
· 锚箱Anchor box的大小和比例是预先定义的,没有获得任何先验信息,就像Faster R-CNN中的那样。
· 使用标准的基于欧几里德距离的k-means聚类是不够好的,因为较大的盒子比较小的盒子产生更多的误差
· YOLOv2使用k-means聚类,这可以获得良好的IOU分数:
· k = 5是最佳值,在模型复杂度和高召回率之间具有良好的权衡。
· 基于IOU的聚类具有5个锚箱(61.0%)具有与Faster R-CNN中9个锚箱(60.9%)的聚类相似的结果。
· 基于IOU的9个锚箱聚类得到67.2%。
5、直接位置预测
· YOLOv1对位置预测没有约束,这使得模型在早期迭代时不稳定。预测的边界框可以远离原始网格位置。
· YOLOv2使用逻辑激活σ来限制位置,这使得值落在0到1之间:
· (cx,cy)是网格的位置。
· (bx,by)是边界框的位置:(cx,cy)+ delta由σ(tx)和σ(ty)限定。
· (pw,ph)是从聚类中获得的锚盒。
· (bw,bh)是边界框尺寸:(pw,ph)按(tw,th)缩放。
· 锚箱版本mAP增加5%。
6、细粒度的功能
· 13×13特征图输出足以检测大对象。
· 为了很好地检测小物体,将早期图层的26×26×512特征图映射到13×13×2048特征图,然后与原始的13×13特征图连接进行检测。
· 实现了mAP增加1%。
7、多尺寸训练
· 对于每10批次,随机选择新的图像尺寸。
· 图像尺寸为{320,352,...,608}。
· 网络已调整大小并继续训练。
8、比YOLO2改进摘要
· 网络在较小尺寸的图像上运行得更快。
· 对于低分辨率的YOLOv2,在90 FPS时,mAP与Fast R-CNN一样好,非常适合较小的GPU。
· 对于高分辨率YOLOv2,实时速度获得76.8%mAP。
对于MS COCO数据集,只有YOLOv2可以在以下方法中获得实时性能:
YOLOv2使用Darknet-19(更快)
除上述修改外,网络架构也是影响mAP的一个因素。
YOLOv2中使用Darknet-19分类网络进行特征提取:
我们可以看到Darknet-19有许多1×1的卷积来减少参数的数量。
Darknet-19可以在准确性和模型复杂性之间取得良好的均衡:
由于TopNet 1和Top-5错误接近ResNet-50,因此Darknet-19具有较低的模型复杂度(FLOP),因此检测速度更快(FPS)。
使用WordTree的YOLO9000(更强)
有多个数据集用于分类和检测。作者有一个想法,“他们可以结合在一起吗?”
1、结合
· 微软COCO:100k图像,80个类,检测标签,类更像是“狗”或“船”。
· ImageNet:1300万张图像,22k类,分类标签,类别更具体,如“诺福克梗”,“约克夏犬”或“贝德灵顿犬”。
· 像“狗”和“诺福克梗”这样的类并不相互排斥。
我们不能通过添加更多类来直接组合它们,如下所示:
要结合使用,可以使用WordTree:
如上所示,WordTree有一个分层树,用于将类和子类关联在一起。简而言之,基于树的WordTree是基于基于图形的WordNet构建的,它通过可视化ImageNet中的名词并选择WordNet中的较短路径。
例如:“Norfolk terrier”也被标记为“狗”和“哺乳动物”。
如果网络看到“狗”的图像但不确定它是哪种类型,它仍将基于条件概率以高置信度预测为“狗”。
最后有9418个类。
2、YOLO9000训练
· 使用3个先验而不是5来限制输出大小。
· 对于检测图像,损失像正常一样地反向传播。
· 对于分类图像,只有分类损失在标签的相应级别或之上才反向传播。
3、YOLO9000结果
· 获得19.7%的mAP。
MS COCO没有那么多ground-truth类别(框多),而ImageNet有类别,但没有那么多ground-truth框。现在YOLO9000提供了一种将它们组合在一起的方法。
标签: #yolo2算法