OpenCV实例(九)基于深度学习的运动目标检测(二)YOLOv2概述
基于深度学习的运动目标检测(二)YOLOv2&YOLOv3概述
- 1.YOLOv2概述
- 2.YOLOv3概述
- 2.1 新的基础网络结构:
- 2.2 采用多尺度预测机制。
- 2.3 使用简单的逻辑回归进行分类
1.YOLOv2概述
对YOLO存在的不足,业界又推出了YOLOv2。YOLOv2主要通过以下方法对模型进行优化:
(1)使用Batch Normalization方法对模型中每一个卷积层的输入进行归一化,缓解梯度消失,加快收敛速度,减少了训练时间,同时提高了平均检测准确率。
(2)增加Anchors机制,借助训练集的边框标签值,使用k-means聚类的方法生成几种不同尺寸的Anchors。YOLOv2去掉了YOLO网络中的全连接层和最后一个池化层,以提高特征的分辨率;在最后一层卷积采样后使用Anchors机制,旨在提高IoU。训练时,在每个网格上预置Anchors,以这些Anchors为基准计算损失函数。
(3)提出一个新的基础网络结构:Darknet-19。Darknet-19是一个全卷积网络,相比YOLO的主体结构,它用一个average pooling层代替全连接层,有利于更好地保留目标的空间位置信息。
(4)采用优化的直接位置预测方法,根据设定的Anchors,在网络最后一个卷积层输出的特征图上,对每个网格进行边框预测,先预测tx、ty、tw、th、to这5个值,然后根据这5个值计算预测边框的位置信息和置信度。
通过以上改进,YOLOv2在平均检测准确率和训练检测速度方面较YOLO均有明显的提高。作为一个中间版本,我们了解即可。
2.YOLOv3概述
为了进一步提高性能,人们又提出了YOLOv3。相比前两个版本,YOLOv3在分类方法、网络结构方面做了较大改进,具体实现如下:
2.1 新的基础网络结构:
Darknet-53。Darknet-53共有75层,使用了一系列3×3、1×1的卷积,其中包括53层卷积层,其余为res层,借鉴ResNet(Residual Network,残差网络)的思想,采用跳层连接的方式进一步优化网络性能。Darknet-53的网络结构如图所示。
在深度学习中,越是深层次的网络越容易出现梯度消失,导致网络退化,即使使用了Batch Normalization等方法,效果依然不太理想。2015年,Kaiming He等人提出ResNet,在当年的ILSVRC比赛中获得了冠军。ResNet的主要思想是在网络结构中增加了“直连通道”,将某层的原始输出直接传递到后面的层中,这种跳层连接结构能减少原始信息在传递过程中的损耗,在一定程度上缓解了深度神经网络中的梯度消失问题。ResNet的原理如图所示。
在ResNet中,如果用xl和xl+1分别表示第l层的输入和输出,Wl表示第l层的权重,F表示该层的残差函数,则xl和xl+1之间的关系可以表示为:xl+1=xl+F(xl,Wl)。如果网络以这样的结构学习到第L层,以xL表示第L层的输入xL和xl之间的关系可表达为:
从而求得在此反向传递过程中损失函数的梯度:
从上面公式括号里的两项可以看出,1保证了梯度可以无损地传递,第二项的大小由网络权重决定,并且该项再小也不会导致梯度消失的问题。由此可见,ResNet对原始输入信息的学习更容易、更准确。
Darknet-53通过引入res层,将整个网络分成若干个小的ResNet结构单元,通过逐级对残差的学习来控制梯度的传播,以此来缓解训练中的梯度消失。
2.2 采用多尺度预测机制。
YOLOv3沿用了YOLOv2中的Anchors机制,使用k-means方法聚类出9种大小不同的Anchors。为了充分利用这些Anchors,YOLOv3进一步细化网格划分,将Anchors按大小平均分配给3种scale。
· scale1:在Darknet-53后添加6层卷积层,直接得到用以检测目标的特征图,维度为13×13×(B×5+C),对应最大的3种Anchors,适用于大目标检测。
· sale2:对网络第79层的输出进行上采样,生成26×26×(B×5+C)的特征图,同时与第61层输出的特征图合并,再进行一系列的卷积操作,最终得到的特征图对应3个中等大小的Anchors,适用于中目标检测。
· scale3:对网络第91层的输出进行上采样,生成52×52×(B×5+C)的特征图,先与第36层输出的特征图合并,再进行系列卷积,最终得到与3个最小的Anchors对应的特征图,适用于小目标检测。通过这样的改进,YOLOv3相比YOLOv2,在小目标检测效果上有了较为明显的提高。
2.3 使用简单的逻辑回归进行分类
分类损失函数采用了binary cross-entropy loss(二值交叉熵损失),而且不再使用softmax进行分类。在softmax分类中,得分最高的预测边框获得一个分类,但是在很多情况下(尤其是在对有遮挡或重叠的多目标检测时)softmax并不适合。
通过不断的改进与创新,YOLOv3使基于回归思想的YOLO系列模型的性能达到了一个峰值,最大限度地兼顾了检测的实时性和准确率,为危险物品的实时检测和跟踪、自动驾驶的环境信息采集等对实时性和准确率要求都较高的应用领域提供了非常有参考、研究价值的可靠模型。
相关文章:
OpenCV实例(九)基于深度学习的运动目标检测(二)YOLOv2概述
基于深度学习的运动目标检测(二)YOLOv2&YOLOv3概述 1.YOLOv2概述2.YOLOv3概述2.1 新的基础网络结构:2.2 采用多尺度预测机制。2.3 使用简单的逻辑回归进行分类 1.YOLOv2概述 对YOLO存在的不足,业界又推出了YOLOv2。YOLOv2主要…...
【Docker】已经创建好的Docker怎么设置开机自启
已经创建好的Docker怎么设置开机自启 1.使用命令Docker update来完成2.查看是否开启3.验证是否开启 1.使用命令Docker update来完成 操作步骤: docker update --restartalways 容器ID2.查看是否开启 docker inspect 容器Id看到这里RestartPolicy设置为如图&#…...
E - Excellent Views
Problem - E - Codeforces 问题描述:数组H大小都不相同。从i到j是可行的,当且仅当 不存在 k ,使 ∣ i − k ∣ ≤ ∣ i − j ∣ , H k > H j 不存在k,使 \\ |i - k| \leq |i - j|, \quad H_k > H_j 不存在k,使…...
WiFi天线和NB-IoT天线不通用
表面看起来完全一样。但是把WiFi天线插到NB-IoT设备后,信号弱了很多。还导致设备反复重启...
IoT DC3 是一个基于 Spring Cloud 的开源的、分布式的物联网(IoT)平台本地部署步骤
dc3 windows 本地搭建步骤: 必要软件环境 进入原网页# 务必保证至少需要给 docker 分配:1 核 CPU 以及 4G 以上的运行内存! JDK : 推荐使用 Oracle JDK 1.8 或者 OpenJDK8,理论来说其他版本也行; Maven : 推荐…...
VBA Excel自定义函数的使用 简单的语法
一个简单的教程,实现VBA自定义函数。 新建模块 复制后面的代码放进来 函数的入口参数不定义,则认为是一块区域; 反之,如FindChar1 As String,则认为是输入的单值。 循环和分支如下例子,VB比较接近自然语…...
字节跳动 从需求到上线全流程 软件工程流程 需求评估 MVP
走进后端开发流程 整个课程会带大家先从理论出发,思考为什么有流程 大家以后工作的团队可能不一样,那么不同的团队也会有不同的流程,这背后的逻辑是什么 然后会带大家按照走一遍从需求到上线的全流程,告诉大家在流程的每个阶段&am…...
线性代数-矩阵的本质
线性代数-矩阵的本质 线性代数-矩阵的本质...
React基础入门之虚拟Dom
React官方文档:https://react.docschina.org/ 说明 重要提示:本系列文章基础篇总结自尚硅谷课程,且采用类式写法!!最新的函数式组件写法见高级篇。 本系列文档旨在帮助vue同学更快速的学习react,如果你很…...
C++基础Ⅰ编译、链接
目录儿 1 C是如何工作的1.1 预处理语句1.2 include1.3 main()1.4 编译单独编译项目编译 1.5 链接 2 定义和调用函数3 编译器如何工作3.1 编译3.1.1 引入头文件系统头文件自定义头文件 3.1.2 自定义类型3.1.3 条件判断拓展: 汇编 3.2 链接3.2.1 起始函数3.2.2 被调用的函数 3.3 …...
VMware和ubuntu配置Hadoop环境
目录 一、获取VMware安装包 1、官网获取 1)首先先进入官网,官网首页是下面这样: 2)接着点击产品选项 3)进入后点击查看所有产品,然后在右上角选择排序方式为Z到A,然后向下滑动找到Workstation…...
uview2.0自定义tabbar
tabbar组件 <template><u-tabbar :value"tab" change"changeTab" :fixed"true" :border"true" :placeholder"true":safeAreaInsetBottom"true"><u-tabbar-item text"消息" icon"c…...
Star History 月度开源精选|Llama 2 及周边生态特辑
7 月 18 日,Meta 发布了 Llama,大语言模型 Llama 1 的进阶版,可以自由免费用于研究和商业,支持私有化部署。 所以本期 Star History 的主题是:帮助你快速把 Llama 2 在自己机器上跑起来的开源工具,无论你的…...
修改电脑上路由表使笔记本默认走无线
如果笔记本上即连接了有线,也连接了无线,默认电脑会走有线的,通过route print命令查看路由表就可以看出来,因为无线的“metric”跳数要比有线的高 解决方法: 如果想实现让默认走无线,就需要修改自己电脑的…...
Spring Cache的介绍以及怎么使用(redis)
Spring Cache 文章目录 Spring Cache1、Spring Cache介绍2、Spring Cache常用注解2.1、EnableCaching注解2.2、CachePut注解2.3、CacheEvict注解2.4、Cacheable注解 3、Spring Cache使用方式--redis 1、Spring Cache介绍 Spring Cache是一个框架,实现了基于注解的缓…...
软考高级系统架构设计师系列论文六十九:论信息系统的安全风险评估
一、信息系统相关知识点 软考高级信息系统项目管理师系列之四十三:信息系统安全管理软考高级系统架构设计师:系统安全分析与设计...
Ubuntu系统安装之后首需要做的事情
Ubuntu系统的初步环境搭建 1、换源2、显卡3、浏览器4、输入法5、终端6、ROS7、VSCode8、设置时间与win一致9、 TimeShift10、 Anaconda(考虑装不装) 1、换源 点开Software&&Update,找到Ubuntu Software中的Download from,…...
Qt——QPushButton控件的常见属性、方法和信号
Qt中QPushButton控件的常见属性、方法和信号 一、QPushButton控件常见属性 一、QPushButton控件常见方法 一、QPushButton控件常见信号 一、QPushButton控件常见属性(Properties) 1. text: 描述:按钮上显示的文本。 用法: butto…...
AUTOSAR规范与ECU软件开发(实践篇)5.5 基于ISOLAR-A的系统级设计与配置方法(上)
目录 前言 1 系统配置输入文件创建与导入 2、 Composition SWC建立 前言 如前所述, AUTOSAR支持整车级别的软件架构设计, 开发人员可以进行整车级别的软件组件定义, 再将这些软件组件分配到各个ECU中, 这就是AUTOSAR系统级设计需要完成的主要任务。 下面结合AUTOSAR方法论…...
mongoDB的CRUD
...
flutter TARGET_SDK_VERSION和android 13
config.gradle ext{SDK_VERSION 33MIN_SDK_VERSION 23TARGET_SDK_VERSION 33COMPILE_SDK_VERSION SDK_VERSIONBUILD_TOOL_VERSION "33.0.0"//兼容库版本SUPPORT_LIB_VERSION "33.0.0"}app/build.gradle里面的 defaultConfig {// TODO: Specify your…...
大数据Flink(六十六):Flink的重要概念和小结
文章目录 Flink的重要概念和小结 一、数据流图(Dataflow Graph)...
Rider 添加NuGet软件包 (NuGet Package)
如图,在解决方案中选择自己的项目右键,点击管理 NuGet 软件包即可 在搜索栏中搜索自己要使用的软件包安装即可使用...
什么是JVM ?
一、JVM 简介 JVM 是 Java Virtual Machine 的简称,意为 Java 虚拟机。 虚拟机是指通过软件模拟的具有完整硬件功能的、运行在一个完全隔离的环境中的完整计算机系统。 常见的虚拟机: JVM 、 VMwave 、 Virtual Box 。 JVM 和其他两个虚拟机的区别…...
【大数据】Hive 中的批量数据导入
Hive 中的批量数据导入 在博客【大数据】Hive 表中插入多条数据 中,我简单介绍了几种向 Hive 表中插入数据的方法。然而更多的时候,我们并不是一条数据一条数据的插入,而是以批量导入的方式。在本文中,我将较为全面地介绍几种向 H…...
【Modbus通信实验三】数据切片问题
在做两个串口相互通信的实验中,当发送频率快一点时偶尔会遇到以下情景,即一次send中把原数据拆成两份发送,就会导致CRC校验错误。下图中6字节数据拆成42是把SetRThreshold()阈值设为2,当设为1的情况下则会拆成51。 一开始以为是缓…...
记录《现有docker中安装spark3.4.1》
基础docker环境中存储hadoop3--方便后续查看 参考: 实践: export JAVA_HOME/opt/apache/jdk1.8.0_333 export SPARK_MASTER_IP192.168.0.220 export SPARK_WORKER_MEMORY4g export SPARK_WORKER_CORES2 export SPARK_EXECUTOR_MEMORY4g export HADOOP_H…...
【3ds Max】练习——制作衣柜
目录 步骤 一、制作衣柜顶部 二、制作衣柜门板 三、制作衣柜底部 四、制作柜子腿部 五、制作柜子底板 步骤 一、制作衣柜顶部 1. 首先创建一个平面,然后将图片素材拖入平面 2. 平面大小和图片尺寸比例保持一致 3. 单机鼠标右键,选择对象属性 勾选…...
Spring-MVC的数据响应-19
在访问服务端MVC的时候,这个controller层进行相应操作之后 他要做两件事:页面跳转和返回字符串,在做完这些操作之后,我们一般进行页面展示:排除页面展示之外,有些需求可能直接回写给我们一些数据: 页面跳…...
(三)行为模式:5、中介者模式(Mediator Pattern)(C++示例)
目录 1、中介者模式(Mediator Pattern)含义 2、中介者模式的UML图学习 3、中介者模式的应用场景 4、中介者模式的优缺点 (1)优点 (2)缺点 5、C实现中介者模式的实例 1、中介者模式(Media…...
企业宣传片制作公司天津/什么是搜索引擎优化推广
点击上方关注我们!11月15日,由亚信安全主办的“安全世界 5正当时”2020第五空间战略发展高峰论坛在北京盛大举行。来自政府、运营商、金融和能源等关键信息基础设施行业的负责人,生态合作伙伴出席本次活动,“共启安全数字世界”,聚…...
小程序游戏制作/东莞百度seo排名
作者|yawn Lauhttp://jvm123.com/2019/08/springboot-activiti.html依赖:新建springBoot项目时勾选activiti,或者在已建立的springBoot项目添加以下依赖:org.activitiactiviti-spring-boot-starter-basic6.0.0配置:数据…...
南京做网站公司 雷仁/西安百度推广开户运营
每一种计算机语言都有自己的自动垃圾回收机制,让程序员不必过分关心程序内存分配,php也不例外,但是在面向对象编程(OOP)编程中,有些对象需要显式的销毁;防止程序执行内存溢出。 一、PHP 垃圾回收机制(Garbage Collector 简称GC) 在…...
wordpress模板dux/google推广公司哪家好
第三章 进程描述和控制 一、什么是进程: 开发操作系统是为了给应用程序提供一个方便、安全和一致的接口。 操作系统是计算机硬件和应用程序之间的一层软件,对应用程序和工具提供支持。 目标: 资源对多个应用程序是可用的; 物理处…...
局域网下怎么访问自己做的网站/产品推广计划
弹性模量越大说明什么(弹性模量和泊松比)轴向拉伸:杆件沿轴线方向的变形称为轴向变形或纵向变形,垂直于轴线方向的变形称为横向变形。杆的纵向绝对变形△l和横向绝对变形△d的计算公式:杆件变形程度的衡量方法:为了准确地反映变形…...
手工做皮具国外的网站/windows7优化大师
作业模拟实现词法分析器,记录一下。 题目: 一、待分析的C语言子集的词法 关键字 main if else int return void while (都是小写) 专用符号 — * / < < < > ! ; : ,{ } [ ] …...