64. 锚框

news2024/11/17 6:51:16

1. 锚框

在这里插入图片描述
锚框是用来预测真实的边缘框。

2. loU-交并比

  • ioU用来计算两个框之间的相似度
    • 0表示无重叠,1表示重合
  • 这是Jacquard指数的一个特殊情况
    • 给定两个集合A和B:

杰卡德系数(Jaccard)可以衡量两组之间的相似性。 给定集合A和B,他们的杰卡德系数是他们交集的大小除以他们并集的大小:

在这里插入图片描述

事实上,我们可以将任何边界框的像素区域视为一组像素。通 过这种方式,我们可以通过其像素集的杰卡德系数来测量两个边界框的相似性。 对于两个边界框,它们的杰卡德系数通常称为交并比(intersection over union,IoU),即两个边界框相交面积与相并面积之比,如 图13.4.1所示。 交并比的取值范围在0和1之间:0表示两个边界框无重合像素,1表示两个边界框完全重合。
在这里插入图片描述

3. 赋予锚框标号

  • 每个锚框是一个训练样本
  • 将被个锚框,要么标注成背景,要么关联上一个真实边缘框
  • 我们可能会生成大量的锚框
    • 这个导致大量的负类样本

4. 将真实边界框分配给锚框

在这里插入图片描述
下面用一个具体的例子来说明上述算法。

如 图13.4.2(左)所示,假设矩阵中的最大值为x23 ,我们将真实边界框A2分配给锚框B3。 然后,我们丢弃矩阵第2行和第3列中的所有元素,在剩余元素(阴影区域)中找到最大的x71,然后将真实边界框A7分配给锚框B1。 接下来,如 图13.4.2(中)所示,丢弃矩阵第7行和第1列中的所有元素,在剩余元素(阴影区域)中找到最大的x54,然后将真实边界框A5分配给锚框B4。 最后,如 图13.4.2(右)所示,丢弃矩阵第5行和第4列中的所有元素,在剩余元素(阴影区域)中找到最大的x92,然后将真实边界框A9分配给锚框B2。 之后,我们只需要遍历剩余的锚框,然后根据阈值确定是否为它们分配真实边界框。

在这里插入图片描述
需要注意:

  1. 锚框要么是固定生成的,要么是根据图片进来生成锚框。
  2. 赋予锚框标号是每次把图片读进来要做的一个操作。比如说,一张图片读进来,有9个锚框的话,就会生成9个训练样本(几个边缘框就是几个类别,几个锚框就是几个训练样本)。

所以一个图片读进来有可能会生成很多个训练样本,所以导致在目标检测时很有可能是一张一张读。因为内存可能放不下。

其实赋予标号的算法有很多种,这里只列出了一种。

5. 使用非极大值抑制(NMS)输出

在这里插入图片描述

6. 总结

  • 一类目标检测算法基于锚框来预测
  • 首先生成大量锚框,并赋予标号,每个锚框作为一个样本进行训练
  • 在预测时,使用NMS来去掉冗余的预测

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

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

相关文章

D. Boris and His Amazing Haircut(线段树)

传送门题意:给定长度为 n 的数组 A ,代表 Boris 现在的头发长度,和一个长度为 n 的数组 B ,代表他希望的发型的头发长度。理发师手里有 m 把剪刀,每个都只能用一次,剪刀的所剪的高度用 xi 给出。 对于每一把…

ASO优化之苹果和安卓的优化思路

大家都知道,ASO优化是指应用商店的搜索优化,其目的就是通过关键词的覆盖,让APP的搜索排名靠前,带来更多的曝光和用户下载量。 安卓ASO优化的思路: 1,关键词的覆盖。由于现在大部分的安卓商店为了商业化,所以后台几乎…

【C语言进阶】指针经典笔试题

作者:匿名者Unit 目录指针笔试题eg1.eg2.eg3.eg4.指针笔试题 eg1. 我们先来看第一题: int main() {int a[4] { 1, 2, 3, 4 };int *ptr1 (int *)(&a 1);int *ptr2 (int *)((int)a 1);printf( "%x,%x", ptr1[-1], *ptr2);return 0; }我们先来分析ptr1&…

初级篇Nginx笔记

第一章、Nginx的目录结构以及运行原理Nginx的目录结构[rootlocalhost ~]# tree /usr/local/nginx/usr/local/nginx├── client_body_temp # POST 大文件暂存目录├── conf # Nginx所有配置文件的目录│ ├── fastcgi.conf # fastcgi相关参数的配置文件│ ├── fastcgi.…

在maven项目当中创建第一个jdbc程序

大家好&#xff0c;今天给大家分享在Maven环境中创建jdbc程序 这是Maven项目的创建方式 跟着一步一步做就可以了 然后&#xff0c;创建好的Maven项目应该是这样的 导入相关的依赖 <dependencies><!-- https://mvnrepository.com/artifact/mysql/mysql-connector-ja…

PHP date() 函数

PHP date() 函数用于格式化时间/日期。 PHP date() 函数 PHP date() 函数可把时间戳格式化为可读性更好的日期和时间。 时间戳是一个字符序列&#xff0c;表示一定的事件发生的日期/时间。 语法 string date ( string $format [, int $timestamp ] ) 参数描述format必需。规…

Python下载ts文件视频且合并

目录 一、ts文件的由来 二、下载ts文件 1.下载index.m3u8&#xff0c;并做相应处理 2.下载ts文件 三、合并ts文件 一、ts文件的由来 ts文件&#xff0c;ts即"Transport Stream"的缩写&#xff0c;特点就是要求从视频流的任一片段开始都是可以独立解码的&#xff…

Pytorch 权重衰减

目录 1、权重衰减 2、L2正则化和L1正则化 3、高维线性回归演示权重衰减 1、权重衰减 一般来说&#xff0c;我们总是可以通过去收集更多的训练数据来缓解过拟合。 但这可能成本很高&#xff0c;耗时颇多&#xff0c;或者完全超出我们的控制&#xff0c;因而在短期内不可能做到…

OpenTelemetry日志体系

前言 OpenTelemetry为了实现其可观测性有三大体系&#xff1a;Trace&#xff0c;Metrics和Log。本文将对于OpenTelemetry实现的日志体系进行详细的讲述。 日志 说到日志相比大家都能侃侃而谈&#xff1a;帮助快速定位出现的问题&#xff0c;数据追踪&#xff0c;性能分析等等…

联合证券|新年再现“A吃A” 建发股份拟控股美凯龙

2022年&#xff0c;A股上市公司之间的并购超越10起。2023年伊始&#xff0c;上市公司“A吃A”或将再添新事例。 建发股份(600153)1月8日晚公告&#xff0c;公司正在谋划经过现金方法协议收购红星美凯龙控股集团有限公司&#xff08;以下简称“红星控股”&#xff09;持有的美凯…

导致 MySQL 索引失效

1、索引失效情况1&#xff1a;非最左匹配 最左匹配原则指的是&#xff0c;以最左边的为起点字段查询可以使用联合索引&#xff0c;否则将不能使用联合索引。 我们本文的联合索引的字段顺序是 sn name age&#xff0c;我们假设它们的顺序是 A B C&#xff0c;以下联合索引的…

YOLOv8来啦 | 详细解读YOLOv8的改进模块!YOLOv5官方出品YOLOv8!

YOLOv8是Ultralytics开发的 YOLO&#xff08;You Only Look Once&#xff09;物体检测和图像分割模型的最新版本&#xff0c;详细介绍可以参考Ultralytics发布的网址&#xff0c;可以通过ultralytics python 包获取代码&#xff0c;暂时还没有官方公布代码 安装ultralytics py…

再见,Python 循环,向量化已超神

使用向量化 -- Python中循环的超级快速替代品 我们在几乎所有的编程语言中都学习过循环。所以&#xff0c;默认情况下&#xff0c;只要有重复性的操作&#xff0c;我们就会开始实施循环。但是当我们处理大量的迭代&#xff08;数百万/数十亿行&#xff09;时&#xff0c;使用循…

啊哈哈哈,2023年Python学习清单来喽;这清单都上齐了,怎么不收藏啊

不知不觉已经在CSDN写了三百多篇博客&#xff0c;这些博客中&#xff0c;Python相关的内容占了绝大多数&#xff0c;而这些与Python有关的内容中&#xff0c;绝大多数又都是我个人学习的总结&#xff0c;本文希望把我的Python学习过程做一个总结&#xff0c;也希望能够帮助不同…

【Java】阻塞队列

【Java】阻塞队列 什么是阻塞队列&#xff1f; 阻塞队列&#xff08;BlockingQueue&#xff09;是一个支持两个附加操作的队列。这2个附加的操作支持阻塞的插入和移除方法。 支持阻塞的插入方法&#xff1a;当队列满时&#xff0c;队列会阻塞插入元素的线程&#xff0c;直到…

4.3 集成运放电路简介

从本质上看&#xff0c;集成运放是一种高性能的直接耦合放大电路。尽管品种繁多&#xff0c;内部结构也各不相同&#xff0c;但是它们的基本组成部分、结构形式和组成原则基本一致。因此&#xff0c;对于典型电路的分析具有普遍意义&#xff0c;一方面可以从中理解集成运放的性…

MapGIS用投影变换功能绘制多条测线

1 问题的提出 在做测线设计的时候,经常要在MapGIS里投点,投线。投点可以用section自带功能实现,但投线还是另有讲究的。可以用MapGIS自带的投影变换功能来实现。 先看下我已知线在奥维地图里是什么样的。 下面就来对这些线,进行投影变换,生成wl线文件,从而可以放入设计…

1. 【prometheus 学习】架构Architecture

prometheus是开源的系统监控及告警系统&#xff0c;很多企业、互联网公司应用prometheus&#xff0c;搭配可视化的grafana&#xff0c;实现对系统的全面度量。 prometheus应用的场景&#xff1a; 1&#xff09;对于数据准确率要求不高&#xff0c;可以粗略反映监控数据走势的场…

前端实战:Vue实现数据导出导入案例

❤️作者主页&#xff1a;IT技术分享社区 ❤️作者简介&#xff1a;大家好,我是IT技术分享社区的博主&#xff0c;从事C#、Java开发九年&#xff0c;对数据库、C#、Java、前端、运维、电脑技巧等经验丰富。 ❤️荣誉&#xff1a; CSDN博客专家、数据库优质创作者&#x1f3c6;&…

linux内核调度浅析

目录 进程控制块PCB 就绪队列结构体 调度队列成员 下一个进程的选择 进程切换 加入就绪队列 linux进程调度相关的知识再重新梳理一遍。抽取主要数据结构中的主要成员&#xff0c;以最简单的方式实现进程调度。 进程控制块PCB task_struct /* 进程PCB */ struct task_s…