对论文 You Only Look Once: Unified, Real-Time Object Detection 的理解 (一)
来源:互联网 发布:macos mysql 安装 编辑:程序博客网 时间:2024/06/04 19:59
本文转载自:
http://blog.csdn.net/surgewong/article/details/51864859
背景介绍
在深度神经网络之前,早期的 Object detection 方法是通过提取图像的一些 robust 的特征如( Haar,SIFT,HOG )等特征,使用 DPM 模型,用 silding window 的方式来预测具有较高 score 的 bounding box。这种方式非常耗时,而且精度又不怎么高。
Selective Search (可以参考我之前的 博文 ) 的方法,相比于 sliding window 这中穷举的方式,减少了大量的计算,同时在性能上也有很大的提高。
利用 Selective Search 提出的 region proposals 结合卷积神经网络的R-CNN的方法提出后,Object detection 的性能有了一个质的飞越。基于 R-CNN 发展出来的 SPPnet、Fast R-CNN、Faster R-CNN 等方法,证明了 “Proposal + Classification” 的方法 在 Objection Detection 上的有效性。
相比于 R-CNN 系列的方法,该论文提供了另外一种思路,将 Object Detection 的问题转化成一个 Regression 问题。给定输入图像,直接在图像的多个位置上回归出目标的 bounding box 以及其分类类别。
YOLO的主要特点
- 速度快,能够达到实时的要求。在 Titan X 的 GPU 上 能够达到 45 帧每秒。
- 使用全图作为 Context 信息,背景错误(把背景错认为物体)比较少。
- 泛化能力强。在自然图像上训练好的结果在艺术作品中的依然具有很好的效果。
论文概要
给定输入图像,将图像分割成
每个网格都预测
与此同时,每个网格还预测
网络结构
该论文提出的网络结构,包括 24 个卷积层,最后接 2 个全连接层。文章设计的网络借鉴 GoogleNet 的思想,在每个
训练策略
该论文的训练策略,总体给人的感觉:比较复杂,技巧性比较强。可以看得出作者为了提升性能花了不少功夫。
- 首先利用 ImageNet 的数据集 Pretrain 卷积层。使用上述网络中的前 20 个卷积层,外加一个全连接层,作为 Pretrain 的网络,训练大约一周的时间,使得在 ImageNet 2012 的验证数据集 Top-5 的准确度达到 88%,这个结果跟 GoogleNet 的效果相当。
- 将 Pretrain 的结果应用到 Detection 中,将剩下的 4 个卷积层及 2 个全连接成加入到 Pretrain 的网络中。同时为了获取更精细化的结果,将输入图像的分辨率由 224*224 提升到 448*448。
- 将所有的预测结果都归一化到 0~1, 使用 Leaky RELU 作为激活函数。
- 对比 localization error 和 classification error,加大 localization 的权重
- 在 Pascal VOC 2007 和 2012 上训练 135 个 epochs, Batchsize 设置为 64, Momentum 为 0.9, Decay 为 0.0005.
- 在第一个 epoch 中 学习率是逐渐从
10−3 增大到10−2 ,然后保持学习率为10−2 ,一直训练到 75个 epochs,然后学习率为10−3 训练 30 个 epochs,最后 学习率为10−4 训练 30 个 epochs。 - 为了防止过拟合,在第一个全连接层后面接了一个
ratio=0.5 的 Dropout 层。并且对原始图像做了一些随机采样和缩放,甚至对调节图像的在 HSV 空间的饱和度。
在训练过程中,如果将 localization error 和 classification error 同等对待,这样是不合理的。因为在一个网格中,有很大的概率是没有物体的,那么在类别上的置信度是 0,这样对于其他少量的包含物体的网格而言,这样是 overpowering 的。因此论文中加大了 localization error 的权重,
训练过程中,小的 Box 对位置回归错误比大的 Box 更加敏感,由于
实验结果
从实验结果上来看,Yolo在速度上有很大的优势,在 mAP 与 state of art 的结果还有不少差距。
最后总结
这篇论文提出的方法有一些天然的缺陷,这个在论文中也有提及。
- 每个 grid 只预测一个 类别的 Bounding Boxes,而且最后只取置信度最大的那个 Box。这就导致如果多个不同物体(或者同类物体的不同实体)的中心落在同一个网格中,会造成漏检。
- 预测的 Box 对于尺度的变化比较敏感,在尺度上的泛化能力比较差。
在测试阶段,每张图像只预测 7*7*2 = 98 个 Box,所以速度非常快。在训练过程中,每个网格预测多个 Box,但是对于每个类别只预测一个结果,相对来说对类别的预测要求更高,得到的结果较为准确,该方法的主要错误来源于定位 (localization) 的错误。这也许是该方法对背景误判的错误率低的原因。
还有一个问题,该方法说其泛化能力很强,能够在一些艺术作品中,都有很好的效果,一时也想不通到底是什么原因。
- 对论文 You Only Look Once: Unified, Real-Time Object Detection 的理解 (一)
- 论文笔记(3)You Only Look Once:Unified, Real-Time Object Detection
- [深度学习论文笔记][Object Detection] You Only Look Once: Unified, Real-Time Object Detection
- Object Detection -- 论文YOLO(You Only Look Once: Unified, Real-Time Object Detection)解读
- You Only Look Once: Unified, Real-Time Object Detection
- You Only Look Once: Unified, Real-Time Object Detection
- You Only Look Once(YOLO):Unified, Real-Time Object Detection
- You Only Look Once: Unified, Real-Time Object Detection(2)
- You Only Look Once: Unified, Real-Time Object Detection
- You Only Look Once: Unified, Real-Time Object Detection
- You Only Look Once: Unified, Real-Time Object Detection
- 《You Only Look Once:Unified,Real-Time Object Detection》笔记
- You Only Look Once: Unified, Real-Time Object Detection
- 论文提要“You Only Look Once: Unified, Real-Time Object Detection”
- 论文提要“You Only Look Once: Unified, Real-Time Object Detection”
- You Only Look Once:Unified, Real-Time Object Detection论文笔记
- 论文阅读笔记:You Only Look Once: Unified, Real-Time Object Detection
- 论文阅读笔记:You Only Look Once: Unified, Real-Time Object Detection
- idea tomcat 内存溢出
- zip与unzip
- 11.ExpandableListView
- C# 获取Byte[]类型的内存地址
- 利用Java和photoShop实现照片拼图
- 对论文 You Only Look Once: Unified, Real-Time Object Detection 的理解 (一)
- 大神养成之路上的经验教训,持续不定期更新ing(3)
- runOnUiThread() UI跟新
- groovy 闭包实战教程
- 问题解决
- 迷宫问题 POJ - 3984
- OPENSSL库使用--AES篇
- 【转】hzwer的OI省选算法汇总[打卡记录]
- 'mysql' 不是内部或外部命令,也不是可运行的程序或批处理文件的解决办法