当前位置: 首页 > news >正文

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 日&#xff0c;Meta 发布了 Llama&#xff0c;大语言模型 Llama 1 的进阶版&#xff0c;可以自由免费用于研究和商业&#xff0c;支持私有化部署。 所以本期 Star History 的主题是&#xff1a;帮助你快速把 Llama 2 在自己机器上跑起来的开源工具&#xff0c;无论你的…...

修改电脑上路由表使笔记本默认走无线

如果笔记本上即连接了有线&#xff0c;也连接了无线&#xff0c;默认电脑会走有线的&#xff0c;通过route print命令查看路由表就可以看出来&#xff0c;因为无线的“metric”跳数要比有线的高 解决方法&#xff1a; 如果想实现让默认走无线&#xff0c;就需要修改自己电脑的…...

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是一个框架&#xff0c;实现了基于注解的缓…...

软考高级系统架构设计师系列论文六十九:论信息系统的安全风险评估

一、信息系统相关知识点 软考高级信息系统项目管理师系列之四十三:信息系统安全管理软考高级系统架构设计师:系统安全分析与设计...

Ubuntu系统安装之后首需要做的事情

Ubuntu系统的初步环境搭建 1、换源2、显卡3、浏览器4、输入法5、终端6、ROS7、VSCode8、设置时间与win一致9、 TimeShift10、 Anaconda&#xff08;考虑装不装&#xff09; 1、换源 点开Software&&Update&#xff0c;找到Ubuntu Software中的Download from&#xff0c…...

Qt——QPushButton控件的常见属性、方法和信号

Qt中QPushButton控件的常见属性、方法和信号 一、QPushButton控件常见属性 一、QPushButton控件常见方法 一、QPushButton控件常见信号 一、QPushButton控件常见属性&#xff08;Properties&#xff09; 1. text: 描述&#xff1a;按钮上显示的文本。 用法&#xff1a; butto…...

AUTOSAR规范与ECU软件开发(实践篇)5.5 基于ISOLAR-A的系统级设计与配置方法(上)

目录 前言 1 系统配置输入文件创建与导入 2、 Composition SWC建立 前言 如前所述, AUTOSAR支持整车级别的软件架构设计, 开发人员可以进行整车级别的软件组件定义, 再将这些软件组件分配到各个ECU中, 这就是AUTOSAR系统级设计需要完成的主要任务。 下面结合AUTOSAR方法论…...

mongoDB的CRUD

...

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周&#xff0c;有很多同学在写期末Java web作业时&#xff0c;运行tomcat出现乱码问题&#xff0c;经过多次解决与研究&#xff0c;我做了如下整理&#xff1a; 原因&#xff1a; IDEA本身编码与tomcat的编码与Windows编码不同导致&#xff0c;Windows 系统控制台…...

关于nvm与node.js

1 安装nvm 安装过程中手动修改 nvm的安装路径&#xff0c; 以及修改 通过nvm安装node后正在使用的node的存放目录【这句话可能难以理解&#xff0c;但接着往下看你就了然了】 2 修改nvm中settings.txt文件配置 nvm安装成功后&#xff0c;通常在该文件中会出现以下配置&…...

新能源汽车智慧充电桩管理方案:新能源充电桩散热问题及消防安全监管方案

随着新能源汽车的快速普及&#xff0c;充电桩作为核心配套设施&#xff0c;其安全性与可靠性备受关注。然而&#xff0c;在高温、高负荷运行环境下&#xff0c;充电桩的散热问题与消防安全隐患日益凸显&#xff0c;成为制约行业发展的关键瓶颈。 如何通过智慧化管理手段优化散…...

《基于Apache Flink的流处理》笔记

思维导图 1-3 章 4-7章 8-11 章 参考资料 源码&#xff1a; https://github.com/streaming-with-flink 博客 https://flink.apache.org/bloghttps://www.ververica.com/blog 聚会及会议 https://flink-forward.orghttps://www.meetup.com/topics/apache-flink https://n…...

tree 树组件大数据卡顿问题优化

问题背景 项目中有用到树组件用来做文件目录&#xff0c;但是由于这个树组件的节点越来越多&#xff0c;导致页面在滚动这个树组件的时候浏览器就很容易卡死。这种问题基本上都是因为dom节点太多&#xff0c;导致的浏览器卡顿&#xff0c;这里很明显就需要用到虚拟列表的技术&…...

均衡后的SNRSINR

本文主要摘自参考文献中的前两篇&#xff0c;相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程&#xff0c;其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt​ 根发送天线&#xff0c; n r n_r nr​ 根接收天线的 MIMO 系…...

Linux离线(zip方式)安装docker

目录 基础信息操作系统信息docker信息 安装实例安装步骤示例 遇到的问题问题1&#xff1a;修改默认工作路径启动失败问题2 找不到对应组 基础信息 操作系统信息 OS版本&#xff1a;CentOS 7 64位 内核版本&#xff1a;3.10.0 相关命令&#xff1a; uname -rcat /etc/os-rele…...

C++ 设计模式 《小明的奶茶加料风波》

&#x1f468;‍&#x1f393; 模式名称&#xff1a;装饰器模式&#xff08;Decorator Pattern&#xff09; &#x1f466; 小明最近上线了校园奶茶配送功能&#xff0c;业务火爆&#xff0c;大家都在加料&#xff1a; 有的同学要加波霸 &#x1f7e4;&#xff0c;有的要加椰果…...

Java 与 MySQL 性能优化:MySQL 慢 SQL 诊断与分析方法详解

文章目录 一、开启慢查询日志&#xff0c;定位耗时SQL1.1 查看慢查询日志是否开启1.2 临时开启慢查询日志1.3 永久开启慢查询日志1.4 分析慢查询日志 二、使用EXPLAIN分析SQL执行计划2.1 EXPLAIN的基本使用2.2 EXPLAIN分析案例2.3 根据EXPLAIN结果优化SQL 三、使用SHOW PROFILE…...

Windows 下端口占用排查与释放全攻略

Windows 下端口占用排查与释放全攻略​ 在开发和运维过程中&#xff0c;经常会遇到端口被占用的问题&#xff08;如 8080、3306 等常用端口&#xff09;。本文将详细介绍如何通过命令行和图形化界面快速定位并释放被占用的端口&#xff0c;帮助你高效解决此类问题。​ 一、准…...