目标检测算法YOLOv3简介

      YOLOv3由Joseph Redmon等人于2018年提出,论文名为:《YOLOv3: An Incremental Improvement》,论文见:https://arxiv.org/pdf/1804.02767.pdf ,项目网页:https://pjreddie.com/darknet/yolo/ 。YOLOv3是对YOLOv2的改进。

      以下内容主要来自论文:

      1.Bounding Box Prediction:遵循YOLO9000,我们的系统使用维度簇(dimension clusters)作为锚框来预测边界框。网络为每个边界框预测4个坐标:tx、ty、tw、th,如下图所示。在训练过程中,我们使用误差平方和损失(sum of squared error loss)。YOLOv3使用逻辑回归预测每个边界框的目标得分(objectness score)。如果先验边界框(bounding box prior)与真实目标(ground truth object)框的重叠程度超过任何其他先验边界框,则该值应该为1。如果先验边界框不是最好的,但确实与真实目标框重叠超过某个阈值,我们将忽略预测。我们使用0.5的阈值。我们的系统只为每个真实目标分配一个先验边界框。如果先验边界框未分配给真实目标,则不会导致坐标或类别预测损失,只会损失目标性(objectness,描述了某个图像区域是否可能包含一个目标的可能性)。

      2.Class Prediction:每个框使用多标签分类(multilabel classification)来预测边界框可能包含的类别。我们不使用softmax,因为我们发现它对于良好的性能来说是不必要的,而是简单地使用独立的逻辑分类器(logistic classifiers)。在训练过程中,我们使用二元交叉熵损失(binary cross-entropy loss)进行类别预测。多标签方法可以更好地对数据进行建模。

      3.Predictions Across Scales: YOLOv3预测3个不同尺度的框。我们的系统使用与特征金字塔网络(feature pyramid networks)类似的概念从这些尺度中提取特征。从我们的基本特征提取器中,我们添加了几个卷积层。最后一个预测3-d张量编码边界框、目标性和类别预测。在我们使用COCO的实验中,我们在每个尺度上预测 3个框,因此对于4个边界框偏移(bounding box offsets)、1个对象性预测和80个类别预测,张量为N*N*[3∗(4+1+80)]。接下来,我们从前2层获取特征图(feature map),并将其上采样2倍。我们还从网络的早期获取特征图,并使用串联(concatenation)将其与我们的上采样特征合并。这种方法使我们能够从上采样的特征中获得更有意义的语义信息(semantic information),并从早期的特征图中获得更细粒度(finer-grained)的信息。然后,我们添加更多的卷积层来处理这个组合特征图,并最终预测一个类似的张量(tensor),尽管现在大小是原来的两倍。我们再次执行相同的设计来预测最终尺度的框。因此,我们对第三个尺度的预测受益于所有先前的计算以及网络早期的细粒度特征(finegrained features)。我们仍然使用k均值聚类来确定边界框先验。我们只是任意选择9个簇(clusters)和3个尺度,然后在尺度上均匀地划分簇。在COCO数据集上,9个簇是:(10*13), (16*30), (33*23), (30*61), (62*45), (59*119), (116*90), (156*198), (373*326)。

      4.Feature Extractor:我们使用新的网络来执行特征提取。我们的新网络是YOLOv2、Darknet-19中使用的网络和新奇的残差网络(residual network)之间的混合方法。我们的网络使用连续的3*3和1*1卷积层,但现在也有一些快捷连接(shortcut  connections),并且尺寸明显更大。它有53个卷积层,所以我们称之为Darknet-53,如下图所示:

      过去,YOLO在处理小目标时遇到了困难。然而,现在我们看到这种趋势发生了逆转。通过新的多尺度预测,我们看到YOLOv3具有相对较高的AP性能。然而,它在中等和较大尺寸目标上的性能相对较差

      Things We Tried That Didn't Work:在开发YOLOv3时,我们尝试了很多东西。很多都没有效果。这是我们可以记住的东西。

      1.锚框x,y偏移预测:我们尝试使用普通的锚框预测机制,你可以使用线性激活(linear activation)将x,y偏移量预测为框宽度或高度的倍数。我们发现这种公式降低了模型稳定性并且效果不佳。

      2.线性x,y预测而不是逻辑预测:我们尝试使用线性激活来直接预测x,y偏移,而不是逻辑激活。这导致mAP下降了几个点。

      3.焦点损失(focal loss):我们尝试使用焦点损失。它使我们的mAP下降了约2点。YOLOv3可能已经对焦点损失试图解决的问题具有鲁棒性(robust),因为它具有单独的对象性预测(objectness predictions)和条件类别预测。因此,对于大多数例子来说,类别预测没有损失?或者其他的东西?我们并不完全确定。

      4.双IOU阈值和真值分配:Faster RCNN在训练期间使用两个IOU阈值。如果预测与真实情况重叠0.7,则为正例;如果预测与真实值重叠[.3−.7],则会被忽略;对于所有真实值目标,如果预测与真实值重叠小于0.3,则为负例。

      我们非常喜欢我们当前的表述(formulation),它似乎至少处于局部最优。其中一些技术可能最终会产生良好的结果,也许它们只需要一些调整来稳定训练。

      YOLOv3是一个很好的检测器。它很快,而且很准确。在0.5到0.95 IOU指标之间的COCO平均AP上,它并不那么好。但它在0.5 IOU的旧检测指标上非常好。

      YOLOv3配置文件:https://github.com/pjreddie/darknet/blob/master/cfg/yolov3.cfg

      GitHub:https://github.com/fengbingchun/NN_Test

     

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/661487.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Unity动画系统】动画状态转换详解

动画状态转换 此空处可以改换新转换名字。 表示有多个转换,播放顺序不可调整。 Solo:表示只执行它们,其他没勾选的不考虑;都勾选了,哪个转换条件先满足,就先执行哪个转换;如果同时满足,那就按顺序执行。 M…

无人机+三维建模:倾斜摄影技术详解

无人机倾斜摄影测量技术是一项高新技术,近年来在国际摄影测量领域得到了快速发展。这种技术通过从一个垂直和四个倾斜的五个不同视角同步采集影像,从而获取到丰富的建筑物顶面及侧视的高分辨率纹理。这种技术不仅能够真实地反映地物情况,还能…

Redis源码学习记录:列表 (ziplist)

ziplist redis 源码版本&#xff1a;6.0.9。ziplist 的代码均在 ziplist.c / ziplist.h 文件中。 定义 ziplist总体布局如下&#xff1a; <zlbytes> <zltail> <zllen> <entry> <entry> ... <entry> <zlend> zlbytes&#xff1a;uin…

深入解析智能指针:从实践到原理

&#x1f466;个人主页&#xff1a;晚风相伴 &#x1f440;如果觉得内容对你有所帮助的话&#xff0c;还请一键三连&#xff08;点赞、关注、收藏&#xff09;哦 如果内容有错或者不足的话&#xff0c;还望你能指出。 目录 智能指针的引入 内存泄漏 RAII 智能指针的使用及原…

【Linux 系统】多线程(线程控制、线程互斥与同步、互斥量与条件变量)-- 详解

一、线程概念 线程是进程的一个执行分支&#xff0c;是在进程内部运行的一个执行流。下面将从是什么、为什么、怎么办三个角度来解释线程。 1、什么是线程 上面是一张用户级页表&#xff0c;我们都知道可执行程序在磁盘中无非就是代码或数据&#xff0c;更准确点表述&#xff0…

OpenSceneGraph

文章目录 关于 OpenSceneGraphScreenshots - OpenMW 关于 OpenSceneGraph 官网&#xff1a;https://openscenegraph.github.io/openscenegraph.io/github : https://github.com/openscenegraph/OpenSceneGraphClasses : https://podsvirov.github.io/osg/reference/opensceneg…

Linux 文件管理命令Lawk wc comm join fmt

文章目录 2.Linux 文件管理命令2.44 awk&#xff1a;模式匹配语言1&#xff0e;变量2&#xff0e;运算符3&#xff0e;awk 的正则4&#xff0e;字符串函数5&#xff0e;数学函数案例练习 2.45 wc&#xff1a;输出文件中的行数、单词数、字节数案例练习2.46 comm&#xff1a;比较…

【Spring基础】关于Spring IoC的那些事

文章目录 一、如何理解IoC1.1 Spring IOC 概述1.2 IoC 是什么 二、Ioc 配置的方式2.1 xml 配置2.2 Java 配置2.3 注解配置 三、依赖注入的方式3.1 setter方式3.2 构造函数3.3 注解注入 小结 一、如何理解IoC 1.1 Spring IOC 概述 控制反转 IoC(Inversion of Control)是一种设计…

吴恩达机器学习笔记:第 9 周-15 异常检测(Anomaly Detection) 15.3-15.4

目录 第 9 周 15、 异常检测(Anomaly Detection)15.3 算法15.4 开发和评价一个异常检测系统 第 9 周 15、 异常检测(Anomaly Detection) 15.3 算法 在本节视频中&#xff0c;我将应用高斯分布开发异常检测算法。 异常检测算法&#xff1a;对于给定的数据集 x ( 1 ) , x ( 2…

经典网络解读——Efficientnet

论文&#xff1a;EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks&#xff08;2019.5&#xff09; 作者&#xff1a;Mingxing Tan, Quoc V. Le 链接&#xff1a;https://arxiv.org/abs/1905.11946 代码&#xff1a;https://github.com/tensorflow/t…

python安卓自动化pyaibote实践------学习通自动刷课

前言 欢迎来到我的博客 个人主页:北岭敲键盘的荒漠猫-CSDN博客 本文是一个完成一个自动播放课程&#xff0c;避免人为频繁点击脚本的构思与源码。 加油&#xff01;为实现全部电脑自动化办公而奋斗&#xff01; 为实现摆烂躺平的人生而奋斗&#xff01;&#xff01;&#xff…

【全开源】最新恋爱交友脱单盲盒源码

PHP开源版&#xff0c;带扩列付费恋爱定位入群&#xff0c;内有详细安装教程&#xff0c;轻松部署&#xff0c;搭建即可运营&#xff0c;内置永久免费更新地址&#xff0c;后续无忧升级。 程序介绍&#xff1a; 近期爆火的模式&#xff0c;无压力付费交友&#xff0c;由线下摆…