CV——day71 零基础学YOLO:YOLOv2

news2024/9/27 23:33:03

YOLOv2

  • 5. YOLOv2
    • 5.1 YOLOv2升级概述
    • 5.2 YOLOv2网络架构
    • 5.3 基于聚类提取先验框
    • 5.4 偏移量计算方法
    • 5.5 坐标映射与还原
    • 5.6 感受野的作用
    • 5.7 特征融合改进
      • 5.7.1 多尺度检测
    • 5.8 YOLOv2 总结

5. YOLOv2

5.1 YOLOv2升级概述

image-20230130100749694

可以看出,v2的map相比v1改进了很多,那么具体有哪些呢?

YOLO-V2-Batch Normalization
a. V2版本舍弃Dropout,卷积后全部加入Batch Normalization
b. 网络的每一层的输入都做了归一化,收敛相对更容易
c. 经过Batch Normalization处理后的网络会提升2%的mAP
d. 从现在的角度来看,Batch Normalization已经成网络必备处理

5.2 YOLOv2网络架构

image-20230130101904066

网络结构变许多,借鉴了VGG等网络,核心网络中所有层都是卷积层,无全连接层,不仅避免了过拟合,也减少了参数量。

image-20230130102206753

5个最大池化(maxpool)作为降采样,减小输出大小,即变为原来的1/2,参数h,w也变为原来的h/32,w/32;输入的416*416因此也是有依据的,首先要能被32整除,416/32=13 是一个奇数,也就只有一个中心点,所以每个参数的选择都是很巧妙且有依据的。

5.3 基于聚类提取先验框

先验框B在YOLOv1的取值为2,但现实中远不止这两种,如Faster-RCNN有九种。

image-20230130103305431

  • **K=5:**上图(左)中可以看出,k=5是一个折中的值,再往上IOU的提升速度会逐渐变缓
  • *1-IOU:*重合程度越高说明越近,而不用欧氏距离来计算,相当于归一化距离了。

image-20230130104014894

5.4 偏移量计算方法

image-20230130104615064

偏移量预测:tx,ty是预测值,原先的偏移量是x+tx,有可能超出边界框

image-20230130111919861

image-20230130112441360

**计算公式如下:**仔细按顺序看其实就会很清楚了,加油!image-20230130113002543

5.5 坐标映射与还原

image-20230130113026316

为什么要乘以32呢,因为现在算出的位置是特征图上的位置,在原图上只有一个单元格大小,五次下采样2^{5}=32,等比例放大之后就是原来的位置所在了 。

5.6 感受野的作用

概述来说就是特征图上的点能看到原始图像多大区域

image-20230130113254779

特征图中的一个单元格就相当于上一层输入图中的好几个单元格的浓缩。

image-20230130113909046

图中绐的是两个卷积核堆起来,下边数字说的是3个,两个堆起来就是5 * 5,三个是7 * 7,可以自己尝试算一下。(也就是左边应该再有一个7 * 7的输入图)

那么为什么都用小卷积核呢?

image-20230130114429038

5.7 特征融合改进

最后一层时感受野太大了,小目标可能丢失了,需融合之前的特征

image-20230130113406243

把原特征图拆成四个13 * 13 * 512 的特征图,4 * 512+1024=3072,让前一层找小目标。

5.7.1 多尺度检测

image-20230130115224266

5.8 YOLOv2 总结

到最后,其实大家就能看得懂这一张图了吧。

image-20230130115435626

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

KafkaProducer线程安全吗?

这是我今天面试被问的一个问题&#xff0c;这会回来就来看看源码 先看KafkaProducer的构造函数 public KafkaProducer(Map<String, Object> configs) { this((ProducerConfig)(new ProducerConfig(configs)), (Serializer)null, (Serializer)null); } public KafkaPro…

[MRCTF2020]PixelShooter1题解

Android一词最早出现于法国作家利尔亚当&#xff08;Auguste Villiers de lIsle-Adam&#xff09;在1886年发表的科幻小数《未来的夏娃》&#xff08;Lve future&#xff09;中。他将外表像人的机器起名为Android。 本题是一个安卓逆向 1.下载到手机玩一玩 是一个32位文件下载…

2-JVM、JRE、JDK的作用及联系和区别

在Java环境配置和项目启动中&#xff0c;这三者的配置是项目启动的基础保证。 JVM(Java Virtual Machine)&#xff0c;Java虚拟机&#xff0c;就是一个虚拟的用于解析bytecode字节码的”虚拟计算机”。一般与OS操作系统打交道。是整个java实现跨平台的最核心的部分【使用Java编…

GlobalPointer:用统一的方式处理嵌套和非嵌套NER

本文将介绍一个称为GlobalPointer的设计&#xff0c;它利用全局归一化的思路来进行命名实体识别&#xff08;NER&#xff09;&#xff0c;可以无差别地识别嵌套实体和非嵌套实体&#xff0c;在非嵌套&#xff08;Flat NER&#xff09;的情形下它能取得媲美CRF的效果&#xff0c…

大数据专业前景怎么样?

大数据专业毕业生未来的岗位选择空间比较大&#xff0c;有三大类岗位可选择分别是大数据开发岗位、大数据分析岗位和大数据运维岗位&#xff0c;在不同的行业和技术体系结构下这些岗位也包含很多细分的岗位。 大数据开发岗位分为平台研发岗位和行业场景开发岗位两大类&#xf…

latex自己记录需要的

参考:LaTeX 公式篇 推荐网站&#xff1a;LaTeX公式编辑器&#xff0c;有模板 换行 $$ \begin{array}{c} 1\\ 2\\ 3\\ \end{array} $$123\begin{array}{c} 1\\ 2\\ 3\\ \end{array} 123​ 公式拆分 $$ \begin{split} 123 & 33 \\ &6 \end{split} $$123336\begin{split}…

找工作不用愁,送你一份Salesforce面试秘籍!

在之前的文章中&#xff0c;自由侠部落为学习者梳理了Salesforce架构师的面试秘籍&#xff0c;将其拆解为了3个方面——分享工作经验、展示技术知识以及证明领导能力&#xff0c;上篇文章已经展示了工作经验部分&#xff0c;接下来将继续分享面试秘籍&#xff0c;帮助求职者顺利…

linux内核之netlink通信

Linux内核(04)之netlink通信 Author&#xff1a;Onceday Date&#xff1a;2023年1月3日 漫漫长路&#xff0c;才刚刚开始… 参考文档&#xff1a; netlink 机制 binarydady 阿里云开发者社区linux中通用Netlink详解及使用剖析 binarydady 阿里云开发者社区RFC 3549 Linux N…

测试员最不愿遇到的18个测试问题,怎么解决?

测试员最不愿遇到的18个测试问题&#xff0c;怎么解决&#xff1f; 目录&#xff1a;导读 测试员最不愿遇到的18个测试问题&#xff0c;怎么解决&#xff1f; 一 测试充分度&#xff08;Test Sufficiency&#xff09; 二 测试有效性&#xff08;Test Effectiveness&#x…

人大金仓数据库-表的定义

表的定义 使用子查询来创建表 通过复制student表创建student_m表&#xff0c;只复制原表中的部分数据到新表 通过复制course表创建course01表&#xff0c;复制原表中的全部数据到新表 使用LIKE语法来创建表 非空约束会默认复制到新表中 create table t03(LIKE t02 INCLUDING…

设计循环队列

前言&#xff1a;队列中有一种特殊的存在——环形队列&#xff0c;其有一定的价值与意义&#xff0c;这篇文章主要由一道与其相关的例题来引出相关的知识内容。 注&#xff1a;下述解题过程是用C语言实现。 目录 一&#xff1a;题目简述 二&#xff1a;环形队列的简单介绍 …

什么是Docker?看这一篇干货文章就够了!

什么是Docker容器技术的起源容器技术 vs 虚拟机什么是容器什么是docker如何使用dockerdocker是如何工作的docker的底层实现总结作为程序员我们应怎样理解docker&#xff1f; 容器技术的起源 假设你们公司正在秘密研发下一个“今日头条”APP&#xff0c;我们姑且称为明日头条&…

ORB-SLAM3算法和代码学习——重定位Relocalization

0总述 重定位是ORB-SLAM系列保持跟踪稳定性的保障&#xff0c;从ORB-SLAM沿用至ORB-SLAM3。主要作用是在跟踪失败时&#xff0c;通过词袋向量搜索在关键帧数据库中寻找和当前帧相似的关键帧作为匹配帧&#xff0c;建立数据关联并计算当前帧的位姿&#xff0c;恢复相机的运动。…

正大国际期货:外盘短线交易九大生存准则:从亏损预期出发

一、生存是第一位 这并不是陈词滥调&#xff0c;投机是非常危险的活动。投机非并输赢那样简单&#xff0c;首要的任务是在顶峰和谷底之间的波动中生存&#xff0c;如果连生存都做不到&#xff0c;你根本就没有谈及赢的资格。 即使有了好的资金管理、正确的系统和行动的前提&a…

Ubuntu18.04下安装配置AndroidStudio软件图文教程

运行环境&#xff1a;操作系统为Ubuntu18.04&#xff0c;android-studio版本为2022.1.1.19-linux&#xff0c;Java版本为jdk8,安装路径/opt/android-studio/,当前用户为xqf222,sdk下载路径默认为/home/xqf222/Android/Sdk 详细步骤和指令如下&#xff1a; 1.安装JDK8&#xf…

VTK CT重建(一) MPR 多层面重建 四视图

除了MPR之外&#xff0c;在CT重建后处理中还有很多别的常用方法&#xff0c;包括 多层面重建&#xff08;MPR&#xff09;最大密度投影&#xff08;MIP&#xff09;最小密度投影&#xff08;MinIP&#xff09;表面阴影遮盖&#xff08;SSD&#xff09;容积漫游技术&#xff08…

go validator参数校验器自定义规则及提示(自定义异常返回提示语)

原文连接&#xff1a;https://segmentfault.com/a/1190000040445612 笔者针对参数为指针的情况做了一点小优化 这里我们用validator用来做参数校验&#xff0c;gin默认的github.com/go-playground/validator&#xff0c;可以直接使用 除此之外还有一些其他的工具也挺好用的&am…

Linux基础指令

本文已收录至《Linux知识与编程》专栏&#xff01;作者&#xff1a;ARMCSKGT演示环境&#xff1a;CentOS 7 目录 前言 正文 查看当前用户whoami 查看当前目录路径pwd 清理屏幕clear 查看目录下文件指令ls 进入目录指令cd 以树状结构显示目录文件tree 创建普通文件指令t…

Leetcode.1669 合并两个链表

题目链接 Leetcode.1669 合并两个链表 Rating : 1428 题目描述 给你两个链表 list1和 list2&#xff0c;它们包含的元素分别为 n个和 m个。 请你将 list1中下标从 a到 b的全部节点都删除&#xff0c;并将list2接在被删除节点的位置。 示例 1&#xff1a; 输入&#xff1a;li…

rtsp实时流通过rtmp推送到服务端

ffmpeg可以实现这个功能。ffmpeg支持rtsp协议&#xff0c;也支持rtmp。在这个案例中rtsp是输入&#xff0c; rtmp是输出&#xff0c;ffmpeg实现了转码的功能。下面可出一个整体思路流程图。 如图1所示&#xff1a;在获取都rtsp流以后&#xff0c;解复用&#xff08;demux&…