YOLOv2在第一个版本的基础上做了不少的改进,包括网络结构和训练的小技巧,anchor机制的加入,本文将对这些改进做一个梳理。

总览

作者的实验结果总结,可以发现有很多的工程性质的trick,背后的理论却不是很多,感觉上是实验性质,能work,还要啥自行车呢?

改进分析

Batch Normalization

这个就像卷积网络中的神器,加上之后又能防止过拟合又能加速收敛。原理上,对每一批训练数据统计通道上的均值和方差,再做归一化处理,预测的时候只有一张图片,统计性质不好,用训练集的期望代表均值和方差。具体原理有很多博文解释,我一直处于不甚明白本质的状态。

加上BN之后有了2个点的提升。

大尺度预训练分类

目标检测的基础网络一般都是从分类网络来的,而且通常采用分类网络的权值初始化。问题在于,分类网络设计时输入尺寸是224,而目标检测对输入尺寸是有要求的,一般输入尺寸越大,准确率越好。这就导致初始化的权重不一定适合检测网络。

预训练初始化,主要目的是初始化浅层的一些卷积核,这些卷积核所提取的特征被认为具有通用性,用448的输入训练分类,再作为初始化会比224的好很多,提升了4个点!

新网络和跳跃结构

用了性能更好的网络,加上了passthrough层,该层将\(26 \times 26 \times 512\)的浅层特征,通过一定的组合转换成\(13 \times 13 \times 2048\)的特征图,再与网络深层对应空间大小的特征图融合,提升1个点多。

多尺度训练

这个不太明白,也是trick吧,确实有作用,能提升1个点!

anchor机制

每个网格对应5个box,并且这5个box的类别可以不同,具有先验的wh,wh是对数据集的聚类分析得到的。

cxcy仍然和v1一样,是距离当前网格左上角的偏差,并被归一化到0-1之间,而宽高则变为相对于匹配的anchor的宽高,匹配anchor应该是根据IOU来的。

anchor机制的目标如下图所示

对v2的一些个人理解

对于网络和训练上的改进,就不多说了,说一下anchor机制。

v2和v1有哪些差别?v2每个网格的box自带wh,可以为不同的类别,我觉得这就是最大的差别,v2网格的每个box更合理一些。这样的好处:1.对聚集的小目标更好;2.对不同大小的目标匹配不同的anchor box,计算wh时有各自的基准wh。

YOLO的anchor与SSD的有什么不同?1.YOLO固定了anchor box的中心点范围;2.匹配机制不同,YOLO根据目标中心点确定网格,再从网格中选择合适的box,貌似不存在匹配不到的情况,SSD根据IOU大小匹配,有些位置出现的某些大小的目标IOU都小于阈值,只能匹配一个IOU最大的;3.anchor box的宽高设置上,YOLO对数据集作聚类分析,其实SSD也可以借鉴了,这种聚类分析受到数据集的影响,对新数据集可能要重做一遍才比较好,泛化性不强。

转载于:https://www.cnblogs.com/xiongzihua/p/9321893.html

谈谈YOLOv2做了哪些改进相关推荐

  1. 对神经网络某一层做了小改进,效果却提升显著,可以发论文吗?

    点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送达 知乎:青春没有终点 编辑:深度学习自然语言处理公众号 链接:见原文链接 学术分享,侵删 ...

  2. 谈谈我做拼音搜索的一点经验

    谈谈我做拼音搜索的一点经验 需要注意的一些事情 本文使用的为 Java 语言解决方案. 搜索方法上,按照个人理解,有两点关键: 分词 将类似 "women" 这样的词分解成 &qu ...

  3. 今天给大家谈谈一个做了11年Java开发,转型做老师,沙雕一个。

    第一回,大家好,今天给大家谈谈一个做了11年Java开发转型做老师的过程. 学习目标: 提示:2021[前端VUE框架]最新/最全/最细实战课程,VUE56节进阶学习 重磅来袭:3个月掌握 vue 入 ...

  4. 解密百度大数据:百度是如何使用hadoop的,并且做了哪些改进?

    引读:百度作为全球最大的中文搜索引擎公司,提供基于搜索引擎的各种产品,几乎覆盖了中文网络世界中所有的搜索需求,因此,百度对海量数据处理的要求是比较高的, 要在线下对数据进行分析,还要在规定的时间内处理 ...

  5. TiDB 4.0 为解决热点问题做了哪些改进?

    作者:李坤 热点问题概述 一直以来,TiDB 的数据访问热点问题,是用户比较关注的问题.为什么这个问题如此突出呢?这其实是"分布式"带来的结构效应.单机数据库由于只有一个节点,是不 ...

  6. 【转】谈谈如何做研究

    今天谈谈我自己做研究的方法 -- 它跟随我多年,且一直在演进和完善中.我虽然没有读过 PhD(希望有生之年能够尝试一下),但我自认为这法子并不算差 -- 至少,它让我能够更加高效地进入一个新的领域,并 ...

  7. Avalonia Beta 1对WPF做了很多改进

    \ 看新闻很累?看技术新闻更累?试试下载InfoQ手机客户端,每天上下班路上听新闻,有趣还有料! \ \\ Avalonia将自己定义为"基于WPF(使用XAML.数据绑定以及lookles ...

  8. 你知道这5年我怎么过的吗!谈谈我做测试开发的这些年……【总结】

    软件测试这个行业总是会被很多人误解,不懂行的人总会这样吐槽:"测试员就是吃青春饭的","30岁还没做公司中层领导说明快被企业淘汰了","过了30岁年薪 ...

  9. 谈谈怎么做【服务隔离】

    本文转载自公众号  孤独烟 引言 OK,如下图所示 那显而易见,做服务隔离的目的就是避免服务之间相互影响.毕竟谁也不能说自己的微服务百分百可用,如果不做隔离,一旦一个服务出现了问题,整个系统的稳定性都 ...

  10. 云漫圈 | 谈谈怎么做【服务隔离】

    戳蓝字"CSDN云计算"关注我们哦! 转自:  孤独烟 引言 OK,如下图所示 那显而易见,做服务隔离的目的就是避免服务之间相互影响.毕竟谁也不能说自己的微服务百分百可用,如果不做 ...

最新文章

  1. class不生效 weblogic_weblogic下更改jsp不生效的解决办法
  2. Linux下安装oracle数据库步骤
  3. tp中的M,D,C,A,I,S方法
  4. Codeforces Global Round 10
  5. codeforces-1176 (div3)
  6. Linux下删除非空文件目录
  7. 买iphone不买android,为何宁可用4年前的苹果6s,也不买两三千的安卓呢?理由很真实...
  8. WordPress 4.8.2 升级维护版本发布
  9. 小红书成立六周年内部信:月活用户量已经突破8500万
  10. 每周荐书:京东架构、Linux内核、Python全栈
  11. mysql控制结构_Mysql 控制结构初识
  12. maya多边形建模怎样做曲面_maya中的曲面模型怎么转换成多边形?
  13. 阿里云生成SSH秘钥对,使用SCRT登录阿里云服务器
  14. linux 中的3类驱动程序
  15. MYSQL判断中文、英文、日文常用语句
  16. 【软件相关】win10自带软件“画图”的妙用
  17. 【Android】APK应用安装过程源码解析
  18. 如何破解私域留存?四大核心环节拆解锁客关键能力
  19. java 树结构_Java通用tree树形结构
  20. Configure交叉编译

热门文章

  1. C#中可以使用正则表达式来过滤html字符
  2. 亮度 调整_显示器对比度多少合适 显示器亮度多少合适【详细介绍】
  3. 构造一个日期类java,java 日期类
  4. keyshot分辨率多少合适_分辨率单位及换算详解
  5. ios opencv图片处理_iOS_OpenCV图片轮廓检测
  6. Bake into Pose的设置以及动画系统的一些疑惑和如何实验
  7. mybatis在oracle数据库中获取主键
  8. redis-shake数据同步迁移工具
  9. sqlerver 字符串转整型_Sqlerver进行模糊查询like和转义字符
  10. 面试题--------8、mysql的几种锁