yoloV2细节改进

news/2024/5/20 7:28:29 标签: YOLO, 聚类, 机器学习

文章目录

  • 1 v2 细节升级概述
  • 2 .网络结构特点
  • 3. 架构细节解读
  • 4. 基于聚类来选择先验框尺寸
  • 5. 偏移量计算方法
  • 6. 坐标映射与还原
  • 7 感受野
  • 8. 特征融合的改进
  • 其他知识点
    • filter 是什么?

1 v2 细节升级概述

在这里插入图片描述

2 .网络结构特点

  1. 使用dropout,杀死部分神经元,使得神经没那么复杂,防止过拟合
  2. V2 舍弃Dropout,卷积后全部加入Batch Normalization
  3. Batch Normalization 归一化,让网络收敛,学习速度更快
  4. conv-BN, 已是目前网络的标配。
    在这里插入图片描述
    在这里插入图片描述
  5. 使用更大的分辨率(V1训练时使用224)

3. 架构细节解读

在这里插入图片描述

7.为啥是416416,不是448448,需要经过5次降采样,所以要能被32整除,并且除得的结果是奇数,比如最后是1313,只有一个中心点,如果最后结果是偶数,则有4个中心点,不好处理。
8. DarkNet 19 ,19层卷积层
9.问题: Filter 是什么,为什么数值一直在增加?
9. 网络模型都是卷积,没有全连接层,做起来省事,省参数,比较快,
10. 卷积核3
3,1*1,比较小,感受野比较大。

4. 基于聚类来选择先验框尺寸

在这里插入图片描述
11.Faster RCNN: 9种,按照 1:1,1:2,2:1, 3*3=9种
12. v2: 使用k-means 聚类,将实际打标的框聚类,比如聚成5类,将每类的中心点作为一个框。但是不使用欧式距离,使用 1-IOU作为距离**。(V2的特点)**
13. 如何确认聚类的类数呢? 做了一个折中,k=5时,平均IOU值还不错,再往上的话,IOU提升不明显,所以k=5。

5. 偏移量计算方法

在这里插入图片描述
问题:使用先验框前后,mAP值没有提升。原因在于,虽然候选框多了,但是不是所有的候选框都能发生作用。
在这里插入图片描述
在这里插入图片描述
sigmoid函数,(0-1)之间,在这里插入图片描述

6. 坐标映射与还原

pw ph 为先验框
14. 特征图为降采样以后的,还原到原图的话,*采样倍数(32)

7 感受野

在这里插入图片描述 感受野的大小跟卷积有关。1–>33–>55 。 在这里插入图片描述
15. 为什么要用小的卷积核,不用大的卷积核?卷积核大的话,参数多。并且卷积核小一点,卷积过程越多,特征提取也会越细致。
在这里插入图片描述
卷积核的第三个维度要跟输入的第三个维度一样,c个卷积核,再*c

8. 特征融合的改进

在这里插入图片描述
16. 最后一层感受野太大了,小目标可能丢失了,需融合之前的特征。
倒数前几层的感受野可能比较小,如19层是大目标的感受野,17层是小目标的感受野
将前一层2626523分为4个 41313512,跟13131024相加后得到 5124+1024=3072 30721313
17. 多尺度, 没有全连接层,只有卷积层,不同大小的图像尺寸均可以。
在这里插入图片描述

其他知识点

filter 是什么?

神经网络中的filter (滤波器)与kernel(内核)的概念

kernel: 内核是一个2维矩阵,长 × 宽;

filter:滤波器是一个三维立方体,长× 宽 × 深度, 其中深度便是由 多少张内核构成;

两者之间的关系:可以说 kernel 是filter 的基本元素, 多张kernel 组成一个filter;

那么, 一个filter 中应该包含多少张 kernel 呢?

答:是由输入的通道个数所确定, 即,输入通道是3个特征时,则后续的每一个filter中包含3张kernel ;

filter输入通道是包含128个特征时, 则一个filter中所包含kernel 数是128张。

那么一层中应该有多少个filter 构成呢?

答: 我们想要提取多少个特征,即我们想要输出多少个特征,那么这一层就设置多少个filter;

一个filter 负责提取某一种特征,N个filter 提取 N 个 特征;


http://www.niftyadmin.cn/n/294264.html

相关文章

Android开发名企真实面试经历

作为一名Android开发,在各种初创公司工作了几年后,我觉得是时候开始去大公司探索机会了。 当前国内大厂人人都想挤进去,在我综合考量之下,我选择了投外企,幸运的是,没过多长时间我就接到了某著名外企面试官…

消息队列中间件 - Docker安装RabbitMQ、AMQP协议、和主要角色

概述 不管是微服务还是分布式的系统架构中,消息队列中间件都是不可缺少的一个重要环节,主流的消息队列中间件有RabbitMQ、RocketMQ等等,从这篇开始详细介绍以RabbitMQ为代表的消息队列中间件。 AMQP协议 AMQP协议是一个提供统一消息服务的应…

Vue 2.0 学习笔记

Vue学习笔记 文章目录 Vue学习笔记[toc]一、数据代理实现二、事件相关1.事件修饰符2.键盘事件 三、计算属性与监视1.计算属性-computed2.监视-watch 四、条件渲染1.v-show2.v-if,v-else-if 五、循环遍历1.v-for语法2.key的作用与原理 六、内置指令1.v-cloak指令&…

三十多岁程序员的难熬时刻

从帝都回来的这两三年,工作、生活、日常琐事几乎让人崩溃。 总是感觉生活无望,工作让人难以忍受,难以处理家庭、夫妻关系。 有了孩子以后,夫妻之间频繁吵架、甚至闹到要离婚。我无法对目前的状况抱有积极态度。我总感觉我们无法…

Js算法篇

1.防抖与节流 function antiShake(fn, wait) {let timeOut null;return args > {if (timeOut) clearTimeout(timeOut)timeOut setTimeout(fn, wait)} } 2.深拷贝 function deepClone(obj) {// 基本数据类型和null不需要处理if (typeof obj ! object || !obj) {// undef…

Java简介和基础语法

文章目录 一、java简介二、Java 基础语法总结 一、java简介 通过一个简单的实例来展示 Java 编程,创建文件 HelloWorld.java(文件名需与类名一致), 代码如下: public class HelloWorld {public static void main(String[] args) {System.out.println(&q…

BigDecimal工具类

package com.vivo.ars.util; import java.math.BigDecimal; /** * 用于高精确处理常用的数学运算 */ public class ArithmeticUtils { //默认除法运算精度 private static final int DEF_DIV_SCALE 10; /** * 提供精确的加法运算 * * param v1 被…

windows权限维持之shift后门

原理:沾滞键的目的是为了帮助那些按键有困难的人设计的,在Windows系统下连续按5次shift键后,系统就会执行C:\Windows\System32下的sethc.exe,也就是启用了沾滞键,但是当我们将shell.exe文件把sethc.exe文件通过更改名称…