RepPoints: Point Set Representation for Object Detection
CornerNet论文阅读整理-CSDN博客
可变形卷积(Deformable Conv)原理解析与torch代码实现-CSDN博客
RepPoints(本质是可变形卷积DCN)再理解-CSDN博客
简介:
时间:2019
会议:ICCV
作者:Ze Yang,Shaohui Liu,Han Hu,Liwei Wang,Stephen Lin
摘要:
①边界框检测提供粗略定位
②提出RepPoints,更精细并且可以自动排列自身,无需锚框进行采样
③与当前最先进的基于锚框检测一样具有精确性
创新点:
①基于点集的物体表示方法(RepPoints)
②RepPoints提供了比边界框更细粒度的物体定位信息和特征提取
③不需要使用锚点来采样边界框空间
对比:
对比Anchor-Free:
在二阶段目标检测中,候选框通过RPN网络产生proposal;而单阶段网络中,通过在特定特征图上的每个位置产生不同大小和宽高比的Anchor
Anchor-Free目标检测是一种不依赖于锚点的目标检测方法,比如通过确定物体中心点和四条边框的预测,主要分为基于多关键点联合表达和基于单中心点预测
基于多关键点联合表达:CornerNet、ExtremeNet、CenterNet、RepPoints
基于单中心点预测:Objects as Points、CSP、FCOS
对比CornerNet:
CornerNet将一个目标检测视为一对关键点,即边界框的左上角和右下角。
使用单个卷积网络来预测同一目标类别的所有实例的所有左上角的热力图,右下角的热图以及每个检测到的Corner的嵌入向量。
流程:
①使用Hourglass Network作为其主干网络,提取特征
②通过CNN预测目标边界框的左上角和右下角,网络输出两组heatmaps,一组用于预测左上角角点,另一组用于预测右下角角点,每个热图的大小是C×Hsan
③引入角点池化帮助网络更好地定位边界框的角点
④为角点预测一个嵌入向量,使得来自同一对象的两个角点的嵌入向量之间的距离很小
⑤预测偏移量以稍微调整角点的位置
⑥后处理
⑦关键点配对,预测属于同一对象的角点的相似嵌入向量,生成目标边界框
背景:
①边界框提供对象的粗略定位
②边界框中提取的特征会受到背景内容或包含很少语义信息的无信息前景区域的影响
RepPoints:
RepPoints 是一组点,它们学习以限制对象空间范围并指示语义上重要的局部区域的方式自适应地将自己定位在对象上,训练由对象定位和识别目标共同驱动
目标检测问题的边界框:
RepPoints与可变形卷积结合,自然地与RepPoints对齐
对齐:模型的预测特征和真实特征相匹配
可变形卷积:
可变形卷积的采样位置更符合物体本身的形状和尺寸,可变性卷积顶层特征图中最终的特征点学习了物体的整体特征,相比原始的卷积它更能排除背景噪声的干扰,得到更有用的信息
原理:
基于一个网络学习偏移量,使卷积核在input feature map的采样点发生偏移,为每个点引入一个偏移量,偏移量使由输入特征图与另一个卷积生成的,而这个偏移量一般为小数,并不对应输入特征图上实际的像素点,因此需要使用双线性插值来得到偏移后的像素:
可变形卷积示意图:
offsets偏移是额外使用一个卷积来生成的,与最终要做卷积操作的卷积并非同一个
N为卷积核区域大小,若3*3大小的卷积核,N=9
绿色为卷积学习偏移的过程,其中offset field的通道大小为2N,表示卷积核学习的x,y轴方向
①一个output feature map上的点对应到input feature map上的卷积采样区域大小为K*K,按照可变形卷积的操作,这K*K区域的每一个卷积采样点都要学习一个偏离量offset,而offset是用坐标表示的,所以一个output要学习2*K*K个参数。
假设一个output大小为H*W,所以一共要学习2*K*K*H*W个参数。即上图的offset field(N=K*K),其维度为B*2*K*K*H*W,其中B代表batch_size
②假设input feature map的维度为B*C*H*W,一个batch内的特征图(一共C个)共用一个offset field,即一个batch内的每张特征图用到的偏移量是一样的
③可变形卷积不改变input feature map的尺寸,所以output feature map也为H x W
现代物体探测器中的边界框:
RepPoints 可用于替换模型对象检测器所有阶段中的边界框表示,从而产生更有效的新对象检测器
锚点被中心点替代
用于对象检测的其他表示:
现有的方法如CornerNet都是自下而上的方式构建,而RepPoints是自上而下的方式构建
自下而上:从图像底层向上构建,由点到图
自上而下:从输入图像/对象特征中的高层向下提取细节信息
RepPoints 可以自动学习极值点和关键语义点,无需超出真实边界框的监督
物体识别中的变形建模:
RepPoints采用自上而下的变形建模方法
可变形卷积和可变形 RoI 池化方法都只是为了改进特征提取而设计的
RepPoints代表点表示:
边界框表示:
边界框编码,x、y表示中心点,w、h表示宽度和高度
多级物体探测器的对象表示角色通过以下管道表示:
使用锚点生成候选区域,通过边界框回归调整提高区域检测准确性
一阶段通过置信度得分进行细化,二阶段通过ROI-pooling和ROI-Align
边界框回归,将预测的4维回归向量映射到当前的proposal
上,得到更精确的边界框
:
给定对象的真实边界框,边界框回归的目标是使
(预测值)和
(真实值)尽可能接近
将和
之间的距离作为计算损失函数的学习向量,使用L1平滑损失函数
RepPoints:
使用自适应样本点进行建模:
细化表示:
表示新样本对于旧样本的偏移
将 RepPoint 转换为边界框:
使用预定义的转换函数:
为对象的RepPoints,
表示伪框
转换函数的三种形式:
学习RepPoints是由对象定位损失和对象识别损失共同驱动的。为了计算目标定位损失,首先使用变换函数将RepPoints转换为伪盒,然后计算转换后的伪盒与背景真实边界盒之间的差值。
使用左上点和右下点之间的平滑L1距离来表示定位损失。
RPDet无锚检测器:
RPDet是一种基于RepPoints的无锚点(anchor-free)目标检测模型,它利用RepPoints作为其基本的对象表示方法
在多级管道中,对象表示的演变如下:
RPDet基于可变形卷积的两个识别阶段构成:
流程:
①图像通过FPN骨干网络提取多尺度特征
②通过第一层可形变卷积,学习到更加灵活的特征表示,以适应不同形状和姿态的物体
③可形变卷积层预测一个偏移场,用于调整卷积核的位置,更准确地捕捉物体的边界
④通过偏移场,网络预测第一组RepPoints,代表物体的初步定位
⑤第一组RepPoints通过点损失函数优化,确保准确定位物体边界
⑥第一组RepPoints的偏移信息会用于第二层可形变卷积
⑦第二层可形变卷积输出第二组RepPoints,提供更精细的物体定位
⑧第二组RepPoints同样会通过点损失函数进行优化
⑨网络会输出一个分类得分图用于预测物体的类别
特点:
使用两个连续的网络来计算偏移量
使用中心点作为对象的初始表示
backbone:
本地化/类别目标分配:
两个定位阶段:
通过从对象中心点假设(feature map bin)细化生成第一组 RepPoints
通过对第一组 RepPoints 进行细化来生成第二组 RepPoints
positive object:
feature map bin:指的是特征映射(feature map)上的一个单元格或区域
一阶段:
①该feature map bin的金字塔级别等于GT object的对数尺度
②该GT object中心点的投影位于该feature map bin内
二阶段:
其诱导的伪框与GT object有足够的重叠且它们的交集大于 0.5,则第一个 RepPoints 为正
实验与结论:
在MS-COCO检测基准上进行实验的设置
总结了RepPoints作为一种新的物体检测表示方法的贡献,并强调了学习更丰富、更自然的物体表示对于物体检测领域的重要性
相关文章:
RepPoints: Point Set Representation for Object Detection
CornerNet论文阅读整理-CSDN博客 可变形卷积(Deformable Conv)原理解析与torch代码实现-CSDN博客 RepPoints(本质是可变形卷积DCN)再理解-CSDN博客 简介: 时间:2019 会议:ICCV 作者:Ze Yang,Shaohui Liu,…...
高效使用AI完成编程项目任务的指南:从需求分析到功能实现
随着人工智能工具的普及,即便是零编程基础或基础薄弱的用户,也可以借助AI完成许多技术任务。然而,要高效地使用AI完成编程任务,关键在于如何清晰表达需求,并逐步引导AI实现目标。 在本文中,我们将通过开发…...
Linux命令——RPM与yum
文章目录 一、RPM包命令1.安装和升级包2.删除包3.查询包信息4.验证和检查5.其他操作 二、yum安装器1.安装包2.更新包3.卸载包4.查询和搜索5.清理缓存6.其他操作 一、RPM包命令 1.安装和升级包 命令解释rpm -ivh package.rpm安装一个 RPM 包,显示详细信息和进度条r…...
C++软件设计模式之责任链模式
责任链模式的动机与意图 动机: 在软件开发中,经常会遇到需要处理一系列请求或事件的情况。这些请求可能需要经过多个处理对象,每个对象根据其职责决定是否处理请求或将其传递给下一个对象。责任链模式(Chain of Responsibility P…...
Spring Cloud Security集成JWT 快速入门Demo
一、介绍 JWT (JSON Web Token) 是一种带有绑实和信息的简单标准化机制,在信息通信中用于验证和信息传递。尤其在应用中使用Spring Cloud实现分布式构建时,JWT可以作为一种无状态验证原理的证明。 本文将进一步描述如何在Spring Cloud Security中集成JW…...
Python 爬虫
一、创建项目 1.双击打开pycharm,点击新建项目 2.项目设置- 勾选[继承全局站点软件包]- 勾选[可用于所有项目]- 取消勾选[创建main.py欢迎脚本]- 点击创建 3.项目名称右键--新建--python文件 4.输入文件名--回车二、编辑代码 # 导入请求模块 import requests # 如…...
【PCIe 总线及设备入门学习专栏 4.1 -- PCI 总线的地址空间分配】
文章目录 Overview 本文转自:https://blog.chinaaet.com/justlxy/p/5100053219 Overview PCI 总线具有32位数据/地址复用总线,所以其存储地址空间为 2324GB。也就是PCI上的所有设备共同映射到这4GB上,每个PCI设备占用唯一的一段PCI地址&…...
虚拟电厂搭建指南:绿虫仿真设计软件的助力
在虚拟电厂的搭建中,绿虫仿真设计软件起着重要作用。 绿虫光伏仿真软件是一款综合性辅助工具,能为虚拟电厂中的光伏项目提供精准数据支持。它所提供的项目选址地气象数据,涵盖海拔、辐照、风速、温度等,数据源为 Meteonorm &…...
开源漏洞管理工具--Faraday
前言 在现代安全领域,面临着两个主要的挑战:一是设计出智能化的方式来获取新信息,二是有效地跟踪和管理发现的内容,以便不断改善修复工作。为了解决这些问题,Faraday应运而生,它能够帮助您专注于漏洞的发现…...
一、EF框架的Database First开发模式(数据库优先)
Database First开发模式(数据库优先) Database First是Entity Framework(EF)的三种开发模式之一,适用于在已有数据库的情况下进行开发。其核心思想是从现有数据库中逆向生成实体类和映射文件,然后在此基础上进行开发。 官方…...
Datawhale AI冬令营(第二期)动手学AI Agent task2--学Prompt工程,优化Agent效果
目录 如何写好Prompt? 工具包神器1:Prompt框架——CO-STAR 框架 工具包神器2:Prompt结构优化 工具包神器3:引入案例 案例:构建虚拟女友小冰 1. 按照 CO-STAR框架 梳理目标 2. 撰写Prompt 3. 制作对话生成应用&…...
Go IO之文件处理,TCPUDP讲解
文章目录 1 文件处理1.1 打开和关闭文件1.2 读取文件1.2.1 简单示例1.2.2 中文乱码1.2.2.1 bufio1.2.2.2 ioutil 1.3 写入文件1.3.1 Write 和 WriteString1.3.2 fmt.Fprintln1.3.2.1 写入文件1.3.2.2 写入标准输出 1.3.3 bufio.NewWriter1.3.4 ioutil.WriteFile 2 TCP&UDP2…...
[卫星遥感] 解密卫星目标跟踪:挑战与突破的深度剖析
目录 [卫星遥感] 解密卫星目标跟踪:挑战与突破的深度剖析 1. 卫星目标跟踪的核心挑战 1.1 目标的高速与不确定性 1.2 卫星传感器的局限性 1.3 数据处理与融合问题 1.4 大尺度与实时性要求 2. 当前卫星目标跟踪的主流技术 2.1 卡尔曼滤波(Kalman …...
U盘提示格式化?原因、恢复方案与预防措施全解析
一、U盘提示格式化现象概述 在日常使用U盘的过程中,我们有时会遇到一个令人头疼的问题——U盘插入电脑后,系统却弹出一个提示框,告知我们U盘需要格式化才能访问。这个提示往往伴随着数据的潜在丢失风险,让我们不禁为之心焦。U盘提…...
Vuex中dispatch的用法
在 Vuex 中,dispatch 是用于触发 actions 的方法,它的主要作用是调用一个 action 并可以传递一些参数。以下是关于 dispatch 的详细解释: 基本语法 dispatch(type, payload)type:要调用的 action 的名称,它是一个字符…...
Agent系列:AppAgent v2-屏幕智能Agent(详解版)
引言 简介 方法 Agent 框架 Agent 交互 探索阶段 部署阶段 文档生成 高级功能 实验结果 总结 局限性 未来工作 1. 引言 大语言模型(LLM)如 ChatGPT 和 GPT-4 显著提升了自然语言处理能力,并且推动了智能体在自主决策中的应用。…...
Word如何插入图片并移动到某个位置
Word如何插入图片并移动到某一个位置 新建word→插入→图片 选择合适的位置→选择图片→打开 点击图片→布局选项→选择文字环绕下的任意一个→固定在页面上 点击图片就可以将图片移动到任意位置...
[CTF/网络安全] 攻防世界 upload1 解题详析
姿势 在txt中写入一句话木马<?php eval($_POST[qiu]);?> 回显如下: 查看源代码: Array.prototype.contains function (obj) { var i this.length; while (i--) { if (this[i] obj) { return true; } } return false; } function …...
golang:微服务架构下的日志追踪系统(二)
背景 在使用Gin框架进行服务开发时,我们遇到了一个日志记录的问题。由于Gin的上下文(*gin.Context)实现了context.Context接口,在调用日志记录器的Info、Warn、Error等方法时,直接传递Gin的上下文通常不会导致编译错误…...
单片机的存储器类型
单片机(Microcontroller Unit, MCU)是一种将计算机的主要部分集成在一个芯片上的微型计算机。它集成了处理器(CPU)、存储器、输入输出接口等必要的功能模块,广泛应用于各种嵌入式系统中。单片机的存储器结构对于理解和使用单片机至关重要&…...
深入剖析MySQL数据库架构:核心组件、存储引擎与优化策略(一)
sql语句分为两大类:查询(select)、增删改----修改(update) select语句的执行流程 执行sql语句的流程:连接数据库、缓存查询、解析器、优化器、执行器、存储引擎操作数据 客户端:图形界面工具…...
java常见的面试题
目录 一、 spring的配置文件的哪四处? 1.数据源(Data Source)配置 2.事务管理器(Transaction Manager)配置 3. 扫描组件(Component Scanning)配置 4. AOP(面向切面编程)配置&…...
2025吉林大学软件学院研究生人工智能原理真题
选择题 5题共10分 5.以下模型不需要训练过程的是? A.支持向量机 B.决策树 C.KNN近邻算法 D.卷积神经网络 简答题 4题35分 1.大模型是否已经通过图灵测试 2.三个近二十年来的机器学习模型和应用案例 3.LDA原理和算法流程 4.CNN原理和算法流程 证明题 谓词逻辑15…...
Qt判别不同平台操作系统调用相应动态库读取RFID
本示例使用的读卡器:https://item.taobao.com/item.htm?spma21dvs.23580594.0.0.52de2c1b8jdyXi&ftt&id562957272162 #include <QDebug> #include "mainwindow.h" #include "./ui_mainwindow.h" #include "QLibrary"…...
智慧工地系统:建筑施工智能化管理的全新模式
智慧工地概述 智慧工地是将互联网的理念和和物联网的技术引入建筑工地,依托物联网、互联网、大数据、5G技术,建立云端数据平台,形成大数据的业务体系,打通一线操作与远程监管的链条,实现劳务、安全、环境、材料等各个…...
js将object整个实体对象作为参数传递
①将object实体转化成json字符串传递: JSON.stringify(obj) ②将json字符串转化成JSON对象值:JSON.parse(json) 实际应用: <div id"div_notice" stylefont-size:14px; width:100%; height:200px; overflow-y:auto;></di…...
shell的循环结构
1、思维导图 2、定义一个find函数,查找ubuntu和root的gid并使用变量接收结果 #!/bin/bash #第二题查找gid并返回结果 find() {u_gidid -g ubuntur_gidid -g rootecho "root-gid$r_gid"echo "ubuntu-gid$u_gid" } ret$(find) echo $ret3、定义一…...
STM32-笔记29-蓝牙遥控插座项目
一、实验前期准备 手机通过蓝牙模块远程遥控风扇。(插座的原理就是继电器,所以控制继电器就是控制插座电源) 二、项目实现 复制项目文件夹32-蓝牙模块实现,重命名33-蓝牙遥控插座项目 找到一个继电器项目,把继电器复…...
计算机网络复习(习题)
术语辨析 数据链路层 该层在两个通信实体之间传送以帧为单位的数据,通过差错控制方法,使有差错的物理线路变成无差错数据链路。 网络层 负责使分组以适当的路径通过通信子网的层次。 运输层 负责向两台主机中进程之间的通信提供通用的数据传输服务的层次。 应用层…...
webserver的http实现
1、用了状态机,为什么要用状态机? 在逻辑处理模块中,响应的http请求采用主从状态机完成, 传统的控制流程都是按照顺序执行的,状态机能够处理任意顺序的事件,并能提供有意义的响应--即使这些事件发生的顺序和…...
C语言----指针
目录 1.概念 2.格式 3.指针操作符 4.初始化 1. 将普通变量的地址赋值给指针变量 a. 将数组的首地址赋值给指针变量 b. 将指针变量里面保存的地址赋值给另一个指针变量 5.指针运算 5.1算术运算 5.2 关系运算 指针的大小 总结: 段错误 指针修饰 1. con…...
Elasticsearch与数据库数据一致性:最佳实践与解决方案
在现代应用程序中,Elasticsearch(ES)作为一个高效的分布式搜索引擎,常常与数据库一同使用,以提供强大的搜索、分析和数据可视化功能。然而,数据库和Elasticsearch之间的同步与一致性常常成为一个挑战。如何…...
C# 基本语法
C# 基本语法 介绍 C#(读作 "C sharp")是一种现代的、面向对象的编程语言,由微软开发,并在2000年首次发布。它是.NET框架的一部分,被广泛用于开发各种类型的应用程序,包括桌面应用、Web应用、移…...
CDGA|浅析自动化对数据治理的深远影响
在数字化时代,数据治理已成为企业管理的核心议题之一。随着数据量的快速增长和复杂性的不断提升,传统的手工数据管理方式已难以满足企业的需求。而自动化技术的引入,为数据治理带来了新的动力,正在逐步改变数据治理的面貌。 自动化…...
【机器学习】【朴素贝叶斯分类器】从理论到实践:朴素贝叶斯分类器在垃圾短信过滤中的应用
🌟 关于我 🌟 大家好呀!👋 我是一名大三在读学生,目前对人工智能领域充满了浓厚的兴趣,尤其是机器学习、深度学习和自然语言处理这些酷炫的技术!🤖💻 平时我喜欢动手做实…...
小程序租赁系统的优势与应用探索
内容概要 小程序租赁系统,听起来很高大上,但实际上它比你想象的要实用得多!设想一下,几乎所有的租赁需求都能通过手机轻松解决。这种系统的便捷性体现在让用户随时随地都能发起租赁请求,而不再受制于传统繁琐的手续。…...
汇编环境搭建
学习视频 将MASM所在目录 指定为C盘...
ubuntu24.04使用open-vm-tools无法在主机和虚拟机之间拖拽文件夹
最近安装了vmware用ubuntu24.04作为虚拟机 然后发现无法在主机和虚拟机之间复制粘贴 然后安装了 sudo apt-get install open-vm-tools-desktop重启虚拟机,发现可以复制粘贴文字,但是文件和文件夹仍然不行 搜索发现是Ubuntu(22.04࿰…...
C++软件设计模式之模板方法模式
模板方法模式是面向对象软件设计模式之一,其主要意图是在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中实现。模板方法使得子类可以在不改变算法结构的情况下重新定义算法的某些特定步骤。 动机 在软件开发中,常常会遇到这样的情…...
20241231 机器学习ML -(2)KNN(scikitlearn)
1. build DKTree 递推创建Tree;当前维度找中位数分割 数据集 left set,Node(mid), right set. * 循环维度(当log(Nsample)>featureSize) 2. DKTree KNN search * 理论部分向量几何有介绍。 每个维度列中,中位数对应的数据点…...
Prometheus之终极指南(The Ultimate Guide to Prometheus)
Prometheus之终极指南 Prometheus 彻底改变了我们在现代 DevOps 生态系统中监控基础设施、应用程序和服务的方式。它不仅仅是一个工具;它是一个由指标收集、告警和实时监控组成的生态系统,受到 Uber、Google 和 SoundCloud 等组织的信任。在本文中&…...
如何使用Python调用淘宝api接口获取商品详情信息?
使用 Python 调用淘宝 API 接口获取商品详情信息,可按照以下步骤进行: 注册并获取 API 密钥 访问淘宝api文档,点击 “立即测试” 按钮,按照提示完成注册流程。注册成功后,登录测试平台,进入 “控制台” 页面…...
ubuntu 22下解决Unment dependencies问题
问题现象 在使用apt安装包的时候,出现如下错误: 解决方案 第一步 sudo apt-get -f install sudo apt-get update sudo apt-get upgrade第二步 sudo apt-get update sudo apt-get clean sudo apt-get autoremove第三步 sudo apt --fix-broken inst…...
leetcode 热题100(155. 最小栈)multiset c++
链接:155. 最小栈 - 力扣(LeetCode) 设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。 实现 MinStack 类: MinStack() 初始化堆栈对象。void push(int val) 将元素val推入堆栈。…...
某小程序sign签名参数逆向分析
文章目录 1. 写在前面2. 接口分析3. 分析还原 【🏠作者主页】:吴秋霖 【💼作者介绍】:擅长爬虫与JS加密逆向分析!Python领域优质创作者、CSDN博客专家、阿里云博客专家、华为云享专家。一路走来长期坚守并致力于Python…...
阿里云redis内存优化——PCP数据清理
在阿里云安装了一个redis节点,今天使用时忽然想着点击了一下分析内存。好家伙,居然崩出了一个30多M的块出来。问题是我本地安装的redis没有这个啊,怎么奇怪冒出这个来了。 本着把系统用干榨尽的态度,研究了下这个问题的来源。网上…...
YOLOv10-1.1部分代码阅读笔记-head.py
head.py ultralytics\nn\modules\head.py 目录 head.py 1.所需的库和模块 2.class Detect(nn.Module): 3.class Segment(Detect): 4.class OBB(Detect): 5.class Pose(Detect): 6.class Classify(nn.Module): 7.class WorldDetect(Detect): 8.class RTDETRDec…...
java开发中注解汇总
注解作用位置注意mybatis Data Getter Setter ToString EqualsAndHashCode AllArgsConstructor NoArgsConstructor Data 代替:无参构造,get,set,toString,hashCode,equals Getter Setter 可放在类和方法上&…...
Java开发 PDF文件生成方案
业务需求背景 业务端需要能够将考试答卷内容按指定格式呈现并导出为pdf格式进行存档,作为紧急需求插入。导出内容存在样式复杂性,包括特定的字体(中文)、字号、颜色,页面得有页眉、页码,数据需要进行表格聚…...
Python机器学习笔记(十七、分箱、离散化、线性模型与树)
数据表示的最佳方法:取决于数据的语义,所使用的模型种类。 线性模型与基于树的模型(决策树、梯度提升树和随机森林)是两种成员很多同时又非常常用的模 型,它们在处理不同的特征表示时就具有非常不同的性质。我们使用w…...