论文阅读笔记:YOLO9000: Better,Faster,Stronger


本文主要包含如下内容:

  论文地址
  参考博客

  • 论文阅读笔记YOLO9000 BetterFasterStronger

    • 回顾 YOLOv1
    • 主要思想
    • 网络改进 Better
      • 实验结果
    • 网络改进 Faster-Draknet19
    • 网络改进 Stronger

回顾 YOLOv1


  

  • 给个一个输入图像,首先将图像划分成 7 * 7 的网格。
  • 对于每个网格,每个网格预测 2 个 bouding box(每个box包含5个预测量)以及 20 个类别概率,总共输出 7×7×(2*5+20)=1470 个 tensor
  • 根据上一步可以预测出 7 * 7 * 2 = 98 个目标窗口,然后根据阈值去除可能性比较低的目标窗口,再由 NMS 去除冗余窗口即可。

  YOLOv1 使用了 end-to-end 的回归方法,没有 region proposal 步骤,直接回归便完成了位置和类别的判定。种种原因使得 YOLOv1 在目标定位上不那么精准,直接导致 YOLO 的检测精度并不是很高。


主要思想


  提出 YOLO v2 :代表着目前业界最先进物体检测的水平,它的速度要快过其他检测系统(FasterR-CNN,ResNet,SSD),使用者可以在它的速度与精确度之间进行权衡。
  提出 YOLO9000 :这一网络结构可以实时地检测超过 9000 种物体分类,这归功于它使用了 WordTree,通过 WordTree 来混合检测数据集与识别数据集之中的数据。(分类信息学习自 ImageNet 分类数据集,物体位置检测学习自 COCO 检测数据集)
  提出了一种新的联合训练算法( Joint Training Algorithm ),使用这种联合训练技术同时在 ImageNet 和 COCO 数据集上进行训练。基本思路: 同时在检测数据集和分类数据集上训练物体检测器( Object Detectors ),用监测数据集的数据学习物体的准确位置,用分类数据集的数据来增加分类的类别量、提升健壮性。


网络改进 Better


  YOLO 有很多缺点,作者希望改进的方向是:改善召回率,提升定位的准确度,同时保持分类的准确度。
  

  • Batch Normalization

  使用 Batch Normalization 对网络进行优化,让网络提高了收敛性,同时还消除了对其他形式的正则化( regularization )的依赖。通过对 YOLO 的每一个卷积层增加 Batch Normalization,最终使得 mAP 提高了 2%,同时还使 model 正则化。使用 Batch Normalization 可以从 model 中去掉 Dropout,而不会产生过拟合。

  • High resolution classifier

  YOLO v2 的分类网络以 448*448 的分辨率先在 ImageNet 上进行 Fine Tune, 之后用于检测网络。最终通过使用高分辨率,mAP 提升了4%。

  • Convolution with anchor boxes

  YOLO 包含有全连接层,从而能直接预测 Bounding Boxes 的坐标值。 Faster R-CNN 的方法只用卷积层与 Region Proposal Network 来预测 Anchor Box 的偏移值与置信度,而不是直接预测坐标值。
  YOLO 删除全连接层和池化层, 通过选择 416*416 用作输入尺寸最终能输出一个 13*13 的 Feature Map。
  使用 Anchor Box 会让精确度稍微下降,但用了它能让 YOLO 能预测出大于一千个框,同时 recall 达到 88%,mAP 达到 69.2%。

  • Dimension clusters

  Faster R-CNN 方法的 Anchor Box 的尺寸是手动选择的,所以尺寸还有优化的余地。 为了优化,在训练集(training set)Bounding Boxes 上跑了一下 k-means 聚类,来找到一个比较好的值。
  如果使用标准的 k-means 方法进行聚类,即使用欧氏距离,那么尺寸大的框比尺寸小的框产生更多的错误. 因此,这里使用 IOU 来度量距离.最后设定的 k-means 聚类的类别为 k=5 类.
  

  • Direct location prediction

  YOLO v2 通过对 Anchor 的偏移量进行预测回归,获得最终的坐标框,这里提出具体的方法. 网络在每一个网格单元中预测出 5 个 Bounding Boxes,每个 Bounding Boxes 有五个坐标值 tx,ty,tw,th,t0. 同时假设一个网格单元对于图片左上角的偏移量是 cx,cy,Bounding Boxes Prior 的宽度和高度是 pw,ph.
  

  • Fine-Grained Features

  修改后的 YOLO 的 Feature Map 大小为 13*13, 加上了一个 Passthrough Layer 来取得之前的某个 26*26 分辨率的层的特征。这个 Passthrough layer 能够把高分辨率特征与低分辨率特征联系在一起,联系起来的方法是把相邻的特征堆积在不同的 Channel 之中,把 26*26*512 变成 13*13*2048。YOLO 中的检测器位于扩展后(expanded )的 Feature Map 的上方,所以他能取得细粒度的特征信息,这提升了 YOLO 1% 的性能。

  • Multi-ScaleTraining

  YOLO v2 每迭代几次都会改变网络参数。每10个 Batch,网络会随机地选择一个新的图片尺寸,由于使用了下采样参数是 32,所以不同的尺寸大小也选择为32的倍数 {320,352…..608},最小 320*320,最大 608*608,网络会自动改变尺寸,并继续训练的过程。
  这一政策让网络在不同的输入尺寸上都能达到一个很好的预测效果,同一网络能在不同分辨率上进行检测。当输入图片尺寸比较小的时候跑的比较快,输入图片尺寸比较大的时候精度高,所以你可以在 YOLO v2 的速度和精度上进行权衡。
  


实验结果


  
  


网络改进 Faster-Draknet19


  YOLO v2 基于一个新的分类 model,有点类似与 VGG。YOLO v2 使用 3*3 filter,每次 Pooling 之后都增加一倍 Channels 的数量。YOLO v2 使用全局平均 Pooling,使用 Batch Normilazation 来让训练更稳定,加速收敛,使 model 规范化。
  最终的 model–Darknet 19,有 19 个卷积层和 5 个 maxpooling 层,处理一张图片只需要 5.58 billio 次运算,在 ImageNet 上达到 72.9% top-1 精确度,91.2% top-5 精确度。
  
  在检测阶段: 网络去掉了最后一个卷积层,而加上了三个 3*3 卷积层,每个卷积层有 1024 个 Filters,每个卷积层紧接着一个 1*1 卷积层, with the number of outputs we need for detection。
对于 VOC 数据,网络预测出每个网格单元预测五个 Bounding Boxes,每个 Bounding Boxes 预测 5 个坐标和 20 类,所以一共 125 个 Filters,增加了 Passthough 层来获取前面层的细粒度信息,


网络改进 Stronger


  通过条件概率,建立一个分层树 WordtTree. 同时对相应的类别进行扩充. 在构建 WordtTree 的情况下, 只需要对同一概念下的同义词进行 softmax 分类.
  这种方法的好处:在对未知或者新的物体进行分类时,性能降低的很优雅(gracefully)。比如看到一个狗的照片,但不知道是哪种种类的狗,那么就高置信度(confidence)预测是”狗“,而其他狗的种类的同义词如”哈士奇“”牛头梗“”金毛“等这些则低置信度。
  
  

  使用联合训练法,YOLO9000 使用 COCO 检测数据集学习检测图片中的物体的位置,使用 ImageNet 分类数据集学习如何从大量的类别中进行分类。
  训练的时候使用 WordTree 混合了 COCO 检测数据集与 ImageNet 中的 Top9000 类,混合后的数据集对应的 WordTree 有 9418 个类。另一方面,由于 ImageNet 数据集太大了,作者为了平衡一下两个数据集之间的数据量,通过过采样(oversampling)COCO 数据集中的数据,使 COCO 数据集与 ImageNet 数据集之间的数据量比例达到1:4。
  当网络遇到检测数据集中的图片时则正常地反方向传播,当遇到分类数据集图片的时候,只使用分类的 loss 功能进行反向传播。同时作者假设 IOU 最少为 .3。最后根据这些假设进行反向传播。

论文阅读笔记:YOLO9000: Better,Faster,Stronger相关推荐

  1. 目标检测经典论文——YOLOV2论文翻译:YOLO9000: Better, Faster, Stronger(YOLO9000:更好、更快、更强)

    YOLO9000: Better, Faster, Stronger YOLO9000:更好.更快.更强 Joseph Redmon*†, Ali Farhadi*† University of Wa ...

  2. 深度学习论文阅读目标检测篇(五)中文版:YOLOv2《 YOLO9000: Better, Faster, Stronger》

    深度学习论文阅读目标检测篇(五)中文版:YOLOv2< YOLO9000: Better, Faster, Stronger> 摘要 1.引言 2. 更好 3. 更快 4. 更强 5. 结 ...

  3. 深度学习论文阅读目标检测篇(五)中英对照版:YOLOv2《 YOLO9000: Better, Faster, Stronger》

    深度学习论文阅读目标检测篇(五)中文版:YOLOv2< YOLO9000: Better, Faster, Stronger> Abstract 摘要 1. Introduction 1. ...

  4. 【目标检测 论文精读】……YOLO-V2 YOLO9000 ……(YOLO9000: Better, Faster, Stronger)

    文章目录 1.YOLO-V1回顾 2.Abstract(摘要) 3.Introduction(引言) 4.Better(更准) (1)Batch Normalization.(BN,批归一) (2)H ...

  5. YOLO9000, Better, Faster, Stronger论文翻译——中英文对照

    文章作者:Tyan 博客:noahsnail.com  |  CSDN  |  简书 声明:作者翻译论文仅为学习,如有侵权请联系作者删除博文,谢谢! 翻译论文汇总:https://github.com ...

  6. YOLO9000, Better, Faster, Stronger论文翻译——中文版

    文章作者:Tyan 博客:noahsnail.com  |  CSDN  |  简书 声明:作者翻译论文仅为学习,如有侵权请联系作者删除博文,谢谢! 翻译论文汇总:https://github.com ...

  7. YOLO 9000论文翻译 | YOLO9000:Better, Faster, Stronger

    文章已迁至:http://www.machunjie.com/translate/27.html 如需交流,请移步新地址,谢谢! YOLO 9000论文翻译 | YOLO9000:Better, Fa ...

  8. 2019 sample-free(样本不平衡)目标检测论文阅读笔记

    点击我爱计算机视觉标星,更快获取CVML新技术 本文转载自知乎,已获作者同意转载,请勿二次转载 (原文地址:https://zhuanlan.zhihu.com/p/100052168) 背景 < ...

  9. keras cnn注意力机制_2019 SSA-CNN(自注意力机制)目标检测算法论文阅读笔记

    背景 <SSA-CNN Semantic Self-Attention CNN for Pedestrian Detection>是2019 的工作,其作者来自于南洋理工.这篇文章主要是做 ...

最新文章

  1. 玩转不同业务场景,这些RabbitMQ特性会是得力助攻
  2. cytoscape使用方法_信号通路分析工具教程——Cytoscape及OmniPath插件
  3. Java 项目权威排名:Spring生态抢镜,Gradle战胜Maven排第2,点击查看更多...
  4. 蓝桥杯-出现次数最多的整数(java)
  5. 年轻程序员需要学习的5大经验
  6. hdu 1086 A - You can Solve a Geometry Problem too (线段的规范相交非规范相交)
  7. 【ClickHouse】查看数据库容量和表大小的方法(system.parts各种操作方法)
  8. javax.crypto.BadPaddingException: Blocktype ...
  9. 对华为GPU Turbo实现的猜测
  10. 用HTML5的DOCTYPE标签兼容各版本IE浏览器的方法技术
  11. epub电子书--目录结构介绍
  12. 病毒之Worm.Win32.AutoRun
  13. setpositivebutton
  14. 「Python」利用高德地图做你想做之事
  15. 能 ping 通但端口不通时端口可用性探测说明
  16. Kotlin 编译出错 java.lang.ClassNotFoundException: com.sun.tools.javac.util.context
  17. RDKit | 计算拓扑极性表面积TPSA
  18. tplink android管理软件,tplink手机app下载
  19. oracle清理aud问来哦,咨询下oracle11gr2清理aud的问题
  20. C++zlib库实现的GZIP压缩解压缩工具类【多图警告^_^】

热门文章

  1. ILSpy中baml转化为xaml的改进
  2. 记录一次华为无线AP5030DN瘦转胖
  3. invalid bound statement (not found):xxxMapper.insert
  4. LaTeX打出字母上标、下标等
  5. vue 实现简单的车牌键盘 包括新能源 移动端 电脑端都可以用哦!(使用了elementui) 复制下来直接可以用v-model接收到输入的值
  6. 智能电灯代码_智能电灯开关与智能电灯泡:您应该购买哪个?
  7. trident-java使用
  8. 效果超好的自制美白面膜大汇总 - 健康程序员,至尚生活!
  9. 剑指offter27. 数值的整数次方-java实现
  10. 理想的下午,西湖边群山傍侃侃谈书 ——启真读书会活动纪要