目标检测:YOLO V1 思想总结

news2024/11/18 20:13:58

目标检测:YOLO V1 思想总结

  • YOLO V1
    • Introduction(模型介绍)
    • Network Design(网络设计)
      • Backbone(骨干网络)
      • Grid Cell(单元格)
      • Loss Function(损失函数)
    • Training
    • 小结

YOLO V1

在这里插入图片描述

Introduction(模型介绍)

  1. YOLO V1在当时的速度非常快,FastYOLO可以达到150FPS。
  2. 它的背景误判率小于Faster RCNN,由于它直接提取全图的特征(前景与背景的关系),而后者则是提取候选框的特征。
  3. 迁移学习效果好。
  4. 在小目标上表现不佳。

Network Design(网络设计)

在这里插入图片描述

Backbone(骨干网络)

在这里插入图片描述
yolo的骨干网络是一个很简单网络,总体类似于VGG,采用3 * 3的卷积,最后全连接层输出4096维的向量,然后在跟一个全连接 (7 * 7 * 30)1430维的向量, 然后把它 resize成 7 * 7 * 30的一个tensor,这里面的每一个channel维就对应了一个单元格。

Grid Cell(单元格)

它把输入的一张图像分成 S * S 的网格(原文S=7),如果标注框的中心落在其中的一个 单元格,那么这个单元格就负责预测这个标注框对应的类别。每个单元格预测B个bounding box,每个bounding box 包含 四个坐标(x,y,w,h),和一个confidence。

其中这四个坐标为:x ,y 是bounding box的中点,用gird cell 左上角的偏移量表示,wh是相对于原图的大小,它们都是被归一化的。
在这里插入图片描述

confidence 的公式为:
在这里插入图片描述
其中 Pr(object)为gird cell是否包含物体中心的概率,非0即1,后者表示如果gird cell 负责预测某一类别,它的标注框与预测框的IOU。
其中每个gird cell还会预测每个类别的概率,公式为:
在这里插入图片描述
其中第一项就这个gird cell在负责预测某一类别的情况下,所有类别的softmax概率。
那么我们用什么样的feature来代表gird cell 呢?
在这里插入图片描述
根据骨干网络输出的feature,每一个channel维就是每一个 gird cell 的 feature。

那么最终模型会输出 S * S *(5B+C)shape 的 tensor。

Loss Function(损失函数)

均方误差对需要细粒度的目标检测任务比较敏感,所以大部分都采用均方误差。
在这里插入图片描述

这里我们首先解释 λ \lambda λ,由于作者发现大部分的 gird cell 不负责预测物体,那么它们就没有坐标,只有背景的confdence,而这部分占大多数,就会掩盖住有物体的gird cell 所产生的loss,所以把下标为 coord的lambda 设为5,noobj设置为0.5,以便均衡两者。
在这里插入图片描述
其中对不同尺度的IOU而言,当他们的偏移量一致的时候,小的bounding box 产生的误差要更大,所有为 w h 去根号,小的wh 会获得较小的loss,反之较大。

Training

首先把骨干网络 在Image Net上跑一遍,达到了很好的精度后,然后把权重拿到yolo,把input size 改为 448 * 448 因为检测任务对feature map 细粒度要求大。
激活函数采用 Leaky relu,根据训练epoch衰减lr, dropour =0.5. 数据增强。

小结

YOLO以速度见长,处理速度可以达到45fps,其快速版本(网络较小)甚至可以达到155fps。这得益于其识别和定位合二为一的网络设计,而且这种统一的设计也使得训练和预测可以端到端的进行,非常简便。
不足之处是小对象检测效果不太好(尤其是一些聚集在一起的小对象),对边框的预测准确度不是很高,总体预测精度略低于Fast RCNN。主要是因为网格设置比较稀疏,而且每个网格只预测两个边框,另外Pooling层会丢失一些细节信息,对定位存在影响。 更多细节请参考原论文。

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

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

相关文章

信息系统项目管理师考点之进度与成本常见计算

信息系统项目管理师考点之进度与成本常见计算总时差和自由时差区别PERT技术进度管理常见问题解决方案挣值分析成本控制主要工作内容参考链接总时差和自由时差区别 总时差 指一项工作在不影响总工期的前提下所具有的机动时间 总时差 LS - ES LF - EF 自由时差 指一项工作在不…

【STL标准库 范型编程】学习笔记(1):C++学习网站、STL六大部件介绍

目录 简介C++学习网站STL六大部件学习来源结语简介 Hello! 非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出~ ଘ(੭ˊᵕˋ)੭ 昵称:海轰 标签:程序猿|C++选手|学生 简介:因C语言结识编程,随后转入计算机专业,获得过国家奖学金,有幸在竞赛中拿过一些国…

YUTU

FE: Cortex-R4 处理器 第一个基于 ARMv7-R 体系结构的深层嵌入式实时处理器 BE : Cortex-M3处理器 基于 ARMv7-M体系结构 The YuTu SoC is a Flash memory controller chip, which provides a PCIe Gen 3x4 host interface and 4 channels (up to 8 CEs per channel) Flash in…

【自学C++】C++变量赋值

C变量赋值 C变量赋值教程 变量 的赋值就是给已经定义的变量进行重新设置值的过程,C 中变量的赋值可以单独为单个变量赋值,也可以同时为多个变量赋值。 C变量赋值详解 语法 varname1 value1;参数 参数描述varname1需要赋值的变量。value1需要给变量…

【MySQL系列】Java的JDBC编程

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 目录 文章目录 前言 一、JCBD背景知识引入 二、安装MySQL数据库驱动包,并且导入到项目中 三、JDBC的使用 3.1 JDBC插入数据操作 3.2 JDBC修改数据操作…

哈希(C++)

C语言总结在这常见八大排序在这作者和朋友建立的社区:非科班转码社区-CSDN社区云💖💛💙期待hxd的支持哈🎉🎉🎉最后是打鸡血环节:想多了都是问题,做多了都是答案&#x1f…

计算机网络复习之运输层

文章目录ARQ协议停等式ARQ回退n帧的ARQ(GBN)选择性重传ARQ(SR)UDP协议TCP协议TCP协议的特点TCP报文段首部格式TCP连接管理TCP可靠传输TCP的流量控制TCP拥塞控制参考拥塞:若对网络中某一资源的需求超过了该资源所能提供…

Jenkins安装

Jenkins安装1、Jenkins简介2、Jenkins安装2.1 安装条件2.2 安装JDK2.2.1 检索可用包2.2.2 安装2.3 下载Jenkins的war包2.4 启动jenkins并测试3、安装maven1、Jenkins简介 Jenkins是一款开源 CI&CD 软件,用于自动化各种任务,包括构建、测试和部署软件…

LeNet5—论文及源码阅读

LeNet5—论文及源码阅读🐬 目录: 一、概论二、论文选读三、源码精读四、参考资料 一、概论 LeNet-5是一种经典的卷积神经网络结构,于1998年投入实际使用中。该网络最早应用于手写体字符识别应用中。普遍认为,卷积神经网络的出现开始于LeCu…

蓝牙Inquiry与Inquiry Scan

文章目录一、Inquiry和Inquiry Scan二、Inquiry的三种模式2.1 Inquiry命令2.2 标准Inquiry应答2.3 带RSSI的Inquiry应答2.4 带EIR的Inquiry应答三、Extend Inquiry Response3.1 EIR数据格式3.2 EIR数据注册3.3 EIR数据解析示例3.4 获取对端设备名称的方法四、Inquiry Scan参数一…

推荐系统入门学习(二)【小白入门系列】

搭建你的第一个推荐系统 初识推荐系统 最初的推荐系统,作用是过滤垃圾邮件。今日机器学习算法的发展,朴素贝叶斯、神经网络已然成为了过滤垃圾邮件的好手。但是在30年前,算法还没有如今使用得广泛的时候,“找相同”就成为了过滤…

大型网络游戏任务系统的架构与设计

在网路游戏中做任务已经成为游戏很重要的一个核心功能和玩法,如何做好一个灵活可扩展的任务系统的架构与设计,今天来给大家分享一些我们的设计经验。接下来我把整个的任务系统分成以下6个模块:任务配置表设计与管理;游戏任务的解锁与生成;任务完成判定;任…

将本地的word文档转为markdown(带图片)发布到CSDN

文章目录一、前言二、word转为markdown三、自动发布本地md文件一、前言 背景:早期很多学习笔记都是记在word上(那一年,还不知道有markdown),现在想将早期的一些资料都发布到CSDN上(本地学习资料我都懒得打…

数据中心灾备通用基础

1.灾备的定义 没有灾备会带来的问题 一旦数据中心的数据遭到破坏,随之而来的是很多棘手的问题 灾备可以提供全面数据保护 IT行业中的备份 在当今IT行业中,数据量急剧增长,并且新的法规不断出台,对备份时间、恢复时间目标&#…

Linux应用编程---4.pthread_create函数

Linux应用编程—4.pthread_create函数 ​ 之前学习了进程有关的东西,现在学习如何创建一个线程。 4.1 pthread_create()函数详情 ​ 线程创建函数是:pthread_create()。在Linux终端下,输入man pthread_create,查看函数定义以及…

Python基础(二十三):面向对象之继承介绍

文章目录 面向对象之继承介绍 一、继承的概念 二、单继承 三、多继承

IntelliJ IDEA安装教程(超详细)

✅作者简介:CSDN内容合伙人、阿里云专家博主、51CTO专家博主、新星计划第三季python赛道Top1🏆 📃个人主页:hacker707的csdn博客 🔥系列专栏:实用工具 💬个人格言:不断的翻越一座又一…

Java学习(44)new关键字

new关键字 对象实例化 实例化对象的过程可以分为两部分: (1) 声明对象:Cat one (2) 实例化对象:new Cat()JVM可以被理解为Java程序与操作系统之间的桥梁 每次使用new关键字,就相当于在内存中开辟了一块新的存储空间。 package c…

CPU概述

CPU 概述 1. CPU 基础 CPU 的概念 CPU 是最重要的计算机组件,由控制器和运算器组成,通过总线与其它设备连接。 CPU 与南北桥 所谓的桥,都是 cpu 和其它设备连接这样的一个桥梁。分为南北桥。 什么是南桥? 南桥主要是用来连接…

【北邮果园大三上】运筹学期中后

运筹学后半段 第五章 动态规划 最优化原理,可以归结为一个递推公式 现实应用:比如最优路径、资源分配、生产计划和库存等 5.1 动态规划的最优化原理及其算法 5.1.1 求解多阶段决策过程的方法 例如:最短路径问题 求A到B的最短路径&#xff…