目标检测之YoloV1

一、预测阶段(前向推断)

在预测阶段Yolo就相当于一个黑箱子,输入的是448*448*3的图像,输出是7*7*30的张量,包含了所有预测框的坐标、置信度和类别

为什么是7*7*30呢?

--将输入图像划分成s*s个grid cell,在yolov1中s=7,然后每个grid cell会预测B个bounding box,这个bounding box里包含4个位置参数和一个置信度参数,在yoolov1中B=2。

--每一个grid cell还能生成所有类别的条件概率,假设已经包含物体的情况下,那它属于某个类别的概率。

--再把每个bounding box的置信度×类别的条件概率=每个bounding box的各类别的概率

--结合bounding box的信息和grid cell的类别信息就可以获得最后的预测结果

为什么是30?

过程可视化显示:

解释:每个grid cell只能有一个类别概率,从所有的预测的类别概率中选择最高的那一个代表这个格子的所属的类别,也就是说每个格子只能预测出一个类别。

--将中间的图进行处理,把置信度高额过滤掉,进行非极大值抑制得到最后的图

完整的过程:

二、预测阶段 后处理(置信度过滤 非极大值抑制)

输入448*448*3的图像到生成7*7*30的张量的过程,这个过程可以看成是一个黑盒子进行处理的,那么我们现在要研究一下7*7*30的张量是怎么生成最后的结果的?

每个bounding box的有30个参数

每个grid cell预测两个bounding box

5:4个位置信息和1个置信度信息

20:20个类别,这个小框可能的所属的类别的概率

把这20个所属类别概率单独拿出来,跟每个bounding box的置信度相乘,(条件概率*这个条件本身发生的概率=全概率),就得到了它真正是哪个类别的概率

每个grid cell都可以获得连个全概率

将某个类别的概率从大到小排序,然后在进行非极大值抑制

比较预测框的IoU,如果大于某个阈值,我们认为他们两个在重复识别一个物体,就将低概率的值置为0

把所有框跟第一高的比对完了之后,再和第二高的框进行比对

最后就剩下了两个框

20个类别就进行20次非极大值抑制

三、训练阶段

已经人工的标注好了真实的框(ground truth),我们要让预测结果尽量拟合这个框,使得损失函数最小化。这个ground truth的中心点落到哪个grid cell的中心点处,就应该由该grid cell生成的bounding box来负责拟合ground truth。选择和ground truth的交并比较大的。

yolov1的损失函数

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

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

相关文章

【多线程】如何解决线程安全问题?

🥰🥰🥰来都来了,不妨点个关注叭! 👉博客主页:欢迎各位大佬!👈 文章目录 1. synchronized 关键字1.1 锁是什么1.2 如何加锁1.3 synchronized 修饰方法1) 修饰普通成员方法2) 修饰静态…

LeetCode //Bash - 192. Word Frequency

192. Word Frequency Write a bash script to calculate the frequency of each word in a text file words.txt. For simplicity sake, you may assume: words.txt contains only lowercase characters and space ’ ’ characters.Each word must consist of lowercase ch…

【系统架构设计师】七、信息安全技术基础知识(访问控制技术|抗攻击技术|计算机系统安全保护能力等级)

目录 一、访问控制技术 二、信息安全的抗攻击技术 2.1 分布式拒绝服务DDoS与防御 2.3 ARP欺骗攻击与防御 2.4 DNS欺骗与防御 2.5 IP欺骗与防御 2.6 端口扫描(Port Scanning) 2.7 强化TCP/IP堆栈以抵御拒绝服务攻击 2.8 系统漏洞扫描 三、信息安…

基于weixin小程序乡村旅游系统的设计

管理员账户功能包括:系统首页,个人中心,用户管理,商家管理,旅游景点管理,景点类型管理,景点路线管理,系统管理 商家帐号账号功能包括:系统首页,旅游景点管理&…

ArchLinux挑战安装(ZFS、Wayland、KDE、xero)

目录 0. 前言: 1. 先期准备 1.1 引导ArchLinx光盘。 1.2 禁用 reflector 服务 1.3 防止网卡禁用 1.4 wifi设置 1.5 测试网络是否连接 1.6 更新系统时间 1.7 更换源 1.8 下载ZFS模块 1.9 加载ZFS模块 2. 磁盘处理 2.1 查看磁盘分区 2.2 清除与整个磁盘…

HTML5与HTML:不仅仅是标签的革新

当我们提到HTML5,很多人会想到这是HTML的一个升级版本,增加了许多新的标签和特性。然而,HTML5带来的变化远不止于此。它是一个全面的网页开发框架,重新定义了网络应用程序的构建方式,为开发者提供了前所未有的灵活性和…

【数组】- 最小覆盖子串

1. 对应力扣题目连接 最小覆盖子串 2. 实现案例代码 public class MinimumCoveringSubstring {public static void main(String[] args) {System.out.println(minWindow("ADOBECODEBANC", "ABC")); // 输出:"BANC"System.out.prin…

解决RuntimeError: Unsupported image type, must be 8bit gray or RGB image.

今天在使用Opencv进行人脸识别项目时发现了一个问题,一直报这个错误RuntimeError: Unsupported image type, must be 8bit gray or RGB image.查了一下资料也是解决了,这样给大家分享一下 解决方案 Numpy 有一个主要版本更新,与 dlib 不兼容。…

【Docker】创建 swarm 集群

目录 1. 更改防火墙设置 2. 安装 Docker 组件 3. 启动 Docker 服务,并检查服务状态。 4. 修改配置文件,监听同一端口号。 5. 下载 Swarm 组件 6. 创建集群,加入节点 7. 启动集群 8. 查询集群节点信息 9. 查询集群具体信息 10. 查询…

电脑文件concrt140.dll丢失要怎么恢复?靠谱修复方法分析

电脑文件concrt140.dll丢失这种情况,相对来说还是比较少见的!但是不代表没有,既然有人出现这种情况了,那么小编势必要给大家详细的讲解一下concrt140.dll这个文件,以及我们要怎么去解决concrt140.dll文件丢失的问题。下…

hnust 1817 算法10-10,10-11:堆排序

hnust 1817 算法10-10,10-11:堆排序 题目描述 堆排序是一种利用堆结构进行排序的方法,它只需要一个记录大小的辅助空间,每个待排序的记录仅需要占用一个存储空间。 首先建立小根堆或大根堆,然后通过利用堆的性质即堆顶的元素是最…

【算法篇】查找字符串数组中的最长公共前缀

问题描述: 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 “”“”。 示例 1: 输入: [“flower”,“flow”,“flight”] 输出: “fl” 示例 2: 输入: [“dog”,“racecar”,“car”] 输出: “” 解题 为了解决这个问题,我们可以遍历…

pppd 返回错误码 含义

错误码 00: pppd已经断开,或者已经成功建立连接后请求方又中 断了。 01: 发成了一个严重错误,例如系统调用失败或者访问非法内存。 02: 处理给定操作是检测到错误,例如使用两个互斥的操作。 03:…

如何获取Power BI的个性可视化控件?

我们在使用Power BI Desktop自带可视化控件进行报表设计的时候,有的时候会发现自带控件使用起来略显单薄,需要一些更有创意或者更能直接吸人眼球的可视化控件。 那有没有地方可以让我们找到一些个性化控件呢? 答案是肯定的,目前P…

每日一道算法题 括号的最大嵌套深度

题目 1614. 括号的最大嵌套深度 - 力扣(LeetCode) Python class Solution:def maxDepth(self, s: str) -> int:count0maxCount0for i in s:if i(:count1if i):maxCountmax(maxCount,count)count-1return maxCountC class Solution { public:int m…

vscode 安装Vue插件

打开扩展面板 --> 点击左侧的扩展图标,或者按下快捷键 Ctrl Shift X 搜索插件,在搜索框中输入 Vue vue-helper 用来快捷提示,如果使用elementui的话,插件不会自动提示,安装了它,组件、属性都会有提示了 Vetur V…

Ionic 滑动框

Ionic 滑动框 Ionic 是一个强大的开源框架,用于构建高性能、高质量的移动端和网页应用程序。它以其美观的设计和丰富的组件库而闻名,其中包括滑动框(Slide Box)。滑动框是一个多功能的组件,允许用户通过滑动来浏览图片、文本或其他内容。在本篇文章中,我们将深入探讨Ion…

嵌入式Linux系统编程 — 4.1 字符串输入输出

目录 1 字符串输出 1.1 字符串输出函数简介 1.2 示例程序 2 字符串输入 2.1 字符串输入简介 2.2 示例程序 程序运行时,需打印信息至标准输出 stdout 设备 或标准错误 stderr设备(譬如屏幕),如调试信息、报错信息、中间产生的…

Java | Leetcode Java题解之第202题快乐数

题目&#xff1a; 题解&#xff1a; class Solution {private static Set<Integer> cycleMembers new HashSet<>(Arrays.asList(4, 16, 37, 58, 89, 145, 42, 20));public int getNext(int n) {int totalSum 0;while (n > 0) {int d n % 10;n n / 10;totalS…

学习python笔记:10,requests,enumerate,numpy.array

requests库&#xff0c;用于发送 HTTP 请求的 Python 库。 requests 是一个用于发送 HTTP 请求的 Python 库。它使得发送 HTTP 请求变得简单且人性化。以下是一些基本的 requests 函数及其用途&#xff1a; requests.get(url, **kwargs) 发送一个 GET 请求到指定的 URL。 i…