期待已久的—YOLO V3
好久不见各位研友(研究好友,不是考研的小伙伴,嘿嘿)!最近,因为题主学校事情比较繁忙,没有花更多的时间在我们的平台,希望关注支持我们的您,原谅我们更新的速度,希望大家继续支持我们,谢谢!
刚结束自己的手头事情,就想到给大家更新点东西,然后就想到了YOLO V3的东西,因为之前自己有认真研读,发现确实了不起的框架,但是如果有对V1和V2了解的,一定很熟悉了,今天我就和大家来分享下最近的框架——YOLO V3。
论文:https://pjreddie.com/media/files/papers/YOLOv3.pdf
代码:https://github.com/pjreddie/darknet
要不先来简单回忆下YOLO系列的框架。YOLO算法,从V1到V2,再到现在的V3系列,算法的性能在不断改进,以至于现在成为了开源通用目标检测算法的佼佼者。
一直以来,在计算机视觉领域有一个问题待解决,那就是如何检测两个距离很近的同类的目标或不同类目标?大多数的算法都会对输入的图像数据进行尺度变化,缩放到较小的分辨率情况下,但是一般在这总情况下只会给出一个Bounding Box,主要由于特征提取过程中将这总情况人为是一个目标。(本来就很近,一放缩之间的近距离越发明显了),但是实际这是两个相同或不同的目标。这个难题就是目标检测领域内的一个挑战。
对小目标检测,有很多新的算法,但是YOLO V3版本却做到了,它对这种距离很近的目标或者小目标有很好的鲁棒性,虽然不能百分百检测,但是这个难题得到了很大程度的解决。
这也是为什么写这篇文章的目的,在于见证一下这个算法的神奇。其实,百分百的检测,在我看来事实上是不存在的。
YOLO的V1和V2都不如SSD的算法,主要原因是V1的448尺寸和V2版本的416尺寸都不如SSD的300,以上结论都是实验测试的,V3版本的416应该比SSD512好,可见其性能。
对官方YOLO做了实验,实验中,采用同一个视频、同一张显卡,在阈值为0.3的前提下,对比了V3和V2的测试效果之后,有了下面两个疑问:
V3和V2的测试性能可以有较大的提升,但速度却没有降低?
V3性能上为啥有这么大的改进?对小目标检测变得这么好?
如果看了V3论文的,应该很清楚结果,如下:
Loss不同:将YOLO V3替换了V2中的Softmax loss变成Logistic loss,而且每个GT只匹配一个先验框;
Anchor bbox prior不同:V2用了5个anchor,V3用了9个anchor,提高了IOU;
Detection的策略不同:V2只有一个detection,V3设置有3个,分别是一个下采样的,Feature map为13*13,还有2个上采样的eltwise sum,Feature map分别为26*26和52*52,也就是说,V3的416版本已经用到了52的Feature map,而V2把多尺度考虑到训练的data采样上,最后也只是用到了13的Feature map,这应该是对小目标影响最大的地方;
backbone不同:V2的Darknet-19变成了V3的Darknet-53,这与上一个有关。
另外V3还是用了一连串的3*3、1*1卷积,其中,3*3的卷积增加channel,而1*1的卷积在于压缩3*3卷积后的特征表示,这波操作很具有实用性。
V2日志信息:
V3的日志信息:
简单分析:
YOLO V2是一个纵向自上而下的网络架构,随着通道数目的不断增加,FLOPS是不断增加的,而V3网络架构是横纵交叉的,看着卷积层多,其实很多通道的卷积层没有继承性,另外,虽然V3增加了anchor centroid,但是对GT的估计变得更加简单,每个GT只匹配一个先验框,而且每个尺度只预测3个框,V2预测5个框,这样的话也降低了复杂度。
YOLO V3
YOLO V3在Pascal Titan X上处理608x608图像速度达到20FPS,在 COCO test-dev 上 mAP@0.5 达到 57.9%,与RetinaNet的结果相近,并且速度快了4倍。 YOLO V3的模型比之前的模型复杂了不少,可以通过改变模型结构的大小来权衡速度与精度。 速度对比如下:
改进之处:
多尺度预测;
更好的基础分类网络和分类器。
多尺度预测
每种尺度预测3个box, anchor的设计方式仍然使用聚类,得到9个聚类中心,将其按照大小均分给3中尺度。
尺度1:在基础网络之后添加一些卷积层再输出box信息;
尺度2:从尺度1中的倒数第二层的卷积层上采样(x2)再与最后一个16x16大小的特征图相加,再次通过多个卷积后输出box信息,相比尺度1变大两倍;
尺度3:与尺度2类似,使用了32x32大小的特征图。
分类器-类别预测:
YOLO V3不使用Softmax对每个框进行分类,主要考虑因素有两个:
Softmax使得每个框分配一个类别(score最大的一个),而对于Open Images这种数据集,目标可能有重叠的类别标签,因此Softmax不适用于多标签分类;
Softmax可被独立的多个logistic分类器替代,且准确率不会下降。 分类损失采用binary cross-entropy loss。
基础网络 Darknet-53
仿ResNet, 与ResNet-101或ResNet-152准确率接近,但速度更快.对比如下:
YOLO V3网络结构如下:
边框预测
优缺点分析:
优点:
快速,pipline简单,背景误检率低,通用性强。
YOLO V3对非自然图像物体的检测率远远高于DPM和RCNN系列检测方法。 但相比RCNN系列物体检测方法,YOLO V3具有以下缺点:
缺点:
识别物体位置精准性差,召回率低。
在每个网格中预测两个bbox这种约束方式减少了对同一目标的多次检测(R-CNN使用的region proposal方式重叠较多),相比R-CNN使用Selective Search产生2000个proposal(RCNN测试时每张超过40秒),YOLO仅使用7x7x2个。
实验结果:
自己也在数据集上做了一些实验:
用的数据集也是最近比较火的数据集——王者荣耀游戏数据。
有兴趣的朋友,后续会将这个视频实时检测放在平台共享栏目,谢谢大家今天的阅读,谢谢!
如果感兴趣,请长按二维码关注,谢谢!
期待已久的—YOLO V3相关推荐
- 期待已久的VS2008 SP1 和.NET FRAMEWORK 3.5 SP1都出来了
期待已久的VS2008 SP1 和.NET FRAMEWORK 3.5 SP1都出来了 下载地址 Microsoft Visual Studio 2008 Service Pack 1 (iso) h ...
- “期待已久的UFO报告”公布了
来源:环球网 作者:张晓雅 多家美媒表示,调查没有得出确切结论. 包括美国有线电视新闻网(CNN).美联社.美国哥伦比亚广播公司(CBS)在内多家美媒最新消息,美国政府当地时间25日发布报告,披露对 ...
- 期待已久的2012年度最佳 jQuery 插件揭晓
期待已久的2012年度最佳 jQuery 插件揭晓 让人期待已久的2012年度最佳 jQuery 插件终于发布了.jQuery 自2006年发布以来,经过6年的迅速发展,目前已是最流行和使用最广泛的 ...
- 期待已久的Java 9 今日发布
人们期待已久的Java SE 9.0将在2017年9月21日发布,它会带来一些重要的变化. \\ JDK 9的核心变化就是引入了一种新的Java编程组件,也就是模块,按照Oracle的说法,它是一个可 ...
- 果粉期待已久,iPhone 6s 或年底发布
果粉期待已久,iPhone 6s 或年底发布.5 月 30 日,科技网站 GottaBeMobile 报道称,业界早已传言,iPhone 6s 将于今年底取代 iPhone 6.6 月份即将来临 ...
- 期待已久!iPhone 13将使用带LTPO技术的OLED屏幕
据国外媒体报道,业内人士称,苹果的供应链合作伙伴正在使用LTPO背板技术为2021年款iPhone(iPhone 13)开发OLED显示屏. 苹果计划在2021年采用带有LTPO技术的OLED显示屏, ...
- 期待已久的《刀剑神域》第三季终于来了
本博主期待已久的<刀剑神域>第三季终于在B站播放了第一集,那就是10月7日凌晨1点.不过值得庆幸的是10月7日为礼拜天,我们没有课也没有工作,倒是可以熬熬夜.后面<刀剑神域>第 ...
- 重磅!期待已久的Niushop开源商城系统3.0正式版于今日发布,真正开启牛店新时代...
重磅!期待已久的Niushop开源商城系统3.0正式版于今日发布,真正开启牛店新时代 测试地址:http;//wxcs.niuteam.cn/admin 转载于:https://my.oschina. ...
- ps4播放器显示dlna服务器,PS4更新:期待已久的功能终于出现了
目前在销量方面索尼的PS4一直领先微软Xbox One,但不得不说的是,PS4在多媒体应用和管理上的确不如对手. 不过这境况已经在本届E3游戏展上宣告结束.索尼确认期待已久的全新媒体播放器登陆PS4. ...
最新文章
- ajax jsonp请求报错not a function的解决方案
- Cisco PT模拟实验(12) 路由器静态路由的配置
- linux测试网页装载时间,使用curl测试web页面响应加载速度
- jenkins安装环境搭建(3)
- java用while循环语句输出1-100内的奇数和
- Java基础入门笔记-Getter与Setter
- 9月11号华为发布鸿蒙2.0和EMUI 11,来看看鸿蒙最牛逼的地方
- 2. SpringBoot +Mybaits
- quartz2.3.0(六)job任务异常处理方式
- dir函数python_Python dir()函数
- 同时读取两个文件进行while循环
- 解决weblogic.net.http.SOAPHttpsURLConnection incompatible with javax.net.ssl.HttpsURLConnection
- linux下oracle 9204 soft only,在CentOS4.3(x86_64)上安装Oracle9204 for linux(x86_64)
- 冯·诺依曼理论的要点
- Gitlab-runner(一)安装
- Android开发实战《手机安全卫士》——13.“缓存清理”模块实现
- VB.NET邮件群发纯htlm二维码
- PHP开源导航,OneNav-简约免费开源导航PHP源码
- 遗传算法:交叉算子的分类
- 菜鸟Java使用Netty