Semi-supervised Open-World Object Detection
Semi-supervised Open-World Object Detection
- 摘要
- 1 介绍
- 2.准备工作
- 提出的SS-OWOD问题设置
- 2.1 基础架构
- 3 方法
- 3.1整体架构
摘要
传统的开放世界对象检测(OWOD)问题设置首先区分已知和未知类别,然后在后续任务中引入标签时逐步学习未知对象。然而,当前的OWOD公式在增量学习阶段严重依赖外部人类预言者进行知识输入。这种对运行时的依赖使得这种公式在现实世界的部署中显得不太现实。为了解决这个问题,我们引入了一个更现实的公式,名为半监督开放世界检测(SS-OWOD),通过将OWOD的增量学习阶段投射为半监督方式,减少了注释成本。我们证明了最先进的OWOD检测器在提出的SS-OWOD设置中的性能显著下降。因此,我们引入了一种新的SS-OWOD检测器,名为SS-OWFormer,它利用特征对齐方案来更好地对齐原始图像和增强图像之间的对象查询表示,以利用大量的未标记数据和少量的标记数据。我们进一步引入了一种用于未知检测的伪标签方案,该方案利用解码器对象查询捕获对象特定信息的固有能力。在COCO数据集上,我们的SS-OWFormer只使用50%的标记数据就达到了与使用所有100%标记数据的最先进(SOTA)OWOD检测器相当的检测性能。此外,我们的SS-OWFormer在未知召回率上比SOTA OWOD检测器提高了绝对4.8%。最后,我们展示了我们的SS-OWOD问题设置和方法在遥感对象检测中的有效性,提出了精心策划的分割和基线性能评估。我们在包括MS COCO、PASCAL、Objects365和DOTA在内的4个数据集上的实验证明了我们方法的有效性。我们的源代码、模型和分割可以在这里找到:https://github.com/sahalshajim/SS-OWFormer。
1 介绍
传统的对象检测器建立在一个假设之上,即模型只会遇到它在训练过程中遇到过的“已知”对象类别。最近,开放世界对象检测(OWOD)问题引起了人们的关注,其目标是检测已知和“未知”的对象,然后在后续任务中引入标签时逐步学习这些“未知”的对象。在这个问题设置中,新识别的未知对象首
相关文章:
Semi-supervised Open-World Object Detection
Semi-supervised Open-World Object Detection 摘要1 介绍2.准备工作提出的SS-OWOD问题设置2.1 基础架构3 方法3.1整体架构摘要 传统的开放世界对象检测(OWOD)问题设置首先区分已知和未知类别,然后在后续任务中引入标签时逐步学习未知对象。然而,当前的OWOD公式在增量学习…...
C语言实现射击小游戏
以下是一个简单的C语言射击小游戏的实现示例。这个游戏中,玩家控制一个飞船,敌方飞船会随机出现并向玩家移动。如果玩家的飞船与敌方飞船相撞,玩家就失去一条生命,代码如下: #include <stdio.h> #include <s…...
c++11 标准模板(STL)本地化库 - std::islower(std::locale) 检查字符是否被本地环境分类为小写
本地化库 本地环境设施包含字符分类和字符串校对、数值、货币及日期/时间格式化和分析,以及消息取得的国际化支持。本地环境设置控制流 I/O 、正则表达式库和 C 标准库的其他组件的行为。 检查字符是否被本地环境分类为小写 std::islower(std::locale) template&…...
粘度指数改进剂市场需求增长 为润滑油添加剂细分产品
粘度指数改进剂市场需求增长 为润滑油添加剂细分产品 粘度指数改进剂是一种油溶性高分子聚合物,主要用于提高润滑油粘度以及粘度指数。粘度指数改进剂具有稠化能力强、抗磨性好、热稳定性好等优势,可添加于液压油、内燃机油以及齿轮油等油品中。 …...
LabVIEW柴油机安保监控系统
LabVIEW柴油机安保监控系统 随着航运业的快速发展,确保船舶柴油机的安全稳定运行变得尤为重要。船舶柴油机故障不仅会导致重大的经济损失,还可能危及人员安全和环境。设计并开发了一套基于LabVIEW平台的柴油机安保监控系统,旨在通过实时监控…...
实测国内AI大模型问答效果
随着ChatGPT热度的攀升,越来越多的公司也相继推出了自己的AI大模型。按照github工程awesome-LLMs-In-China所列举的,现如今国内AI大模型已达243个,比较著名的有文心一言、通义千问等。各大应用也开始内置AI玩法,如抖音的AI特效。下…...
不得不等待的无奈 -《葡萄成熟时》
恋上一个人便是撒下一颗葡萄种子,你可能会坚持,但不一定会结果,收获(在一起)。 更有可能得到的是枯枝烂叶(ta的离开)。 就算你再努力,再用心去栽培(为ta付出࿰…...
【Python】Python中装饰器和魔法方法的区别
在Python中,装饰器(Decorators)和魔法方法(Magic Methods)是两种不同的高级特性,分别服务于不同的目的。 装饰器 (Decorators) 装饰器是一种强大的工具,它可以修改或增强函数、方法或类的行为…...
【React】创建你的第一个React组件
要使用React创建你的第一个组件,首先确保你已经安装了Node.js和npm(Node包管理器)。然后,你可以通过npm安装Create React App这个官方支持的脚手架工具来快速生成一个新的React应用项目,该项目包含了React、ReactDOM、…...
五分钟搞懂MySQL索引下推
什么是索引下推 索引下推(Index Condition Pushdown,简称ICP),是MySQL5.6版本的新特性,它能减少回表查询次数,提高查询效率。 索引下推优化的原理 我们先简单了解一下MySQL大概的架构: MySQL服务层负责SQL语法解析、…...
【数据库】SQL如何添加数据
在SQL中,您可以使用INSERT INTO语句来添加数据到数据库表中。以下是一些基本的示例和解释: 1.插入完整行数据: 如果您想为表中的每一列都插入数据,那么可以不必指定列名。但是,您需要为每一列都提供数据,并…...
ClickHouse01-什么是ClickHouse
什么是ClickHouse? 关于发展历史存在的优势与劣势什么是它风靡的原因? 什么是ClickHouse? 官方给出的回答是,它是一个高性能、列式存储、基于SQL、供在线分析处理的数据库管理系统 当然这边不得不提到OLAP(Online Analytical Pr…...
使用Docker搭建Nascab
使用Docker来部署Nascab能够让这个过程变得更加灵活和便捷,因为Docker可以在隔离的环境中运行应用程序,简化了部署和配置的复杂性。 使用Docker CLI部署Nascab docker run -d \ --name nascab \ -p 18080:80 \ -p 18443:443 \ -p 18090:90 \ -p 18021:…...
Elasticsearch8.x版本Java客户端Elasticsearch Java API 如何并发修改
前言 并发控制,一般有两种方案,悲观锁和乐观锁,其中悲观锁是默认每次更新操作肯定会冲突,所以每次操作都要先获取锁,操作完毕再释放锁,适用于写比较多的场景。而乐观锁是默认每次更新操作都不会冲突&#…...
Docker 安装 Skywalking以及UI界面
关于Skywalking 在现代分布式系统架构中,应用性能监控(Application Performance Monitoring, APM)扮演着至关重要的角色。本文将聚焦于一款备受瞩目的开源APM工具——Apache Skywalking,通过对其功能特性和工作原理的详细介绍&am…...
mysql 空间查询 多边形内的点
数据库查询 # 1新增空间point类型坐标字段 ALTER TABLE gaoxin_isdp.business_master ADD COLUMN location2 point NULL AFTER location;# 2从原字段更新点位字段,原字段poi1是字符串106.474596,29.464360 UPDATE business_master SET location POINT(substr(poi…...
实际开发中,git版本切换操作
业务场景 客户环境需要部署当前分支的之前的一个版本代码,所以需要从当前的commit切换到之前的commit 版本切换步骤 查看版本提交日志 $ git reflog切换版本 git reset --hard 七位数的版本id在切换后的版本上更改代码后 执行完暂存 git commit 把回退后的代码提…...
线程池实现“线程复用”的原理
线程池实现“线程复用”的原理 学习线程复用的原理,以及对线程池的 execute 这个非常重要的方法进行源码解析。 线程复用原理 我们知道线程池会使用固定数量或可变数量的线程来执行任务,但无论是固定数量或可变数量的线程,其线程数量都远远…...
[Linux开发工具]——make/Makefile的使用
Linux项目自动化构建工具——make/Makefile 前言:一、背景二、认识make和makefile2.1 创建Makefile文件2.2 创建test.c文件,并打开Makefile2.3 我们想要test.c生成test文件2.4 编译2.5 清理可执行文件 三、理解依赖关系和依赖方法3.1 依赖关系3.2 依赖方…...
C++中的动态数组vector的基本操作
文章目录 前言一、vector数组的声明二、vector数组的初始化三、vector数组的大小1. 在声明时设置大小2. 修改大小3. 查看大小 四、添加元素与删除元素1. 添加元素2. 删除元素 总结 前言 在 C 中,std::vector 是一个标准库中的容器类型。它是一个动态数组࿰…...
从“单细胞”到“多细胞”:MetaGPT、AutoGen、AgentVerse如何重塑AI应用开发范式?
从“单细胞”到“多细胞”:MetaGPT、AutoGen、AgentVerse如何重塑AI应用开发范式? 想象一下,当你对AI说"开发一个电商网站"时,不再只是得到零散的代码片段,而是一个完整的数字团队自动分工协作:产…...
彻底吃透哨兵值:从底层逻辑到自定义设计(附原创值域理论)
彻底吃透哨兵值:从底层逻辑到自定义设计(附原创值域理论) 在编程中,哨兵值(Sentinel Value)是一个高频出现但容易被误解的概念。很多人只会死记硬背“哨兵值是用来终止循环的特殊值”,却不懂其底…...
XSS的半点小技巧
你提到的“/”和“ES6”是绕过滤器的特殊技巧,我来逐一说明:1. 标签名后的 /代替空格这是绕过标签名检测的技巧有些过滤器检测标签是否以 <标签名␣开头用 <script/或 <img/代替 <script␣可绕过简单正则示例:<script/src&quo…...
你的SSH密钥可能已经过期了噬
引言 在现代软件开发中,性能始终是衡量应用质量的重要指标之一。无论是企业级应用、云服务还是桌面程序,性能优化都能显著提升用户体验、降低基础设施成本并增强系统的可扩展性。对于使用 C# 开发的应用程序而言,性能优化涉及多个层面&#x…...
轻量级嵌入式电机控制库:面向差速机器人的裸机PWM驱动方案
1. 项目概述Simple_Robot_Motor_Control 是一个面向嵌入式机器人平台的轻量级电机控制库,专为资源受限的微控制器(如 STM32F0/F1、ESP32-C3、nRF52832 或 ATmega328P)设计。其核心目标并非提供工业级运动控制算法,而是以极简接口抽…...
gitru:一个由 Rust 打造的零依赖 Git 提交信息校验工具雅
一、项目背景与核心价值 1. 解决的核心痛点 Navicat的数据库连接密码并非明文存储,而是通过AES算法加密后写入.ncx格式的XML配置文件中。一旦用户忘记密码,常规方式只能重新配置连接,效率极低。本项目只作为学习研究使用,不做其他…...
从20.03 SP3到24.03 LTS:我的openEuler大版本升级实战与避坑全记录
从20.03 SP3到24.03 LTS:我的openEuler大版本升级实战与避坑全记录 去年夏天,当我第一次在服务器监控面板上看到"openEuler 20.03-LTS-SP3即将停止维护"的警告时,就知道一场硬仗要来了。作为团队里负责基础设施的"老运维"…...
FastAPI单元测试实战:别等上线被喷才后悔,TestClient用对了真香!滔
正文 异步/等待解决了什么问题? 在传统同步I/O操作中(如文件读取或Web API调用),调用线程会被阻塞直到操作完成。这在UI应用中会导致界面冻结,在服务器应用中则造成线程资源的浪费。async/await通过非阻塞的异步操作解…...
GLM-4.5编程套餐实战:5分钟搞定Claude Code平替配置(含避坑指南)
GLM-4.5编程套餐实战:低成本高效替代Claude Code的完整指南 1. 为什么选择GLM-4.5作为Claude Code的替代方案 在当前的AI编程助手领域,Claude Code以其出色的代码生成和问题解决能力赢得了众多开发者的青睐。然而,其高昂的使用成本和网络稳…...
mysql如何使用RIGHT JOIN右外连接_mysql右表关联补全
RIGHT JOIN 语法写对了,但结果为空?检查左表是否真有匹配行RIGHT JOIN 的核心是“以右表为基准,左表缺失则补 NULL”。很多人写完发现结果和预期相反,不是语法错,而是逻辑误判:以为 RIGHT JOIN 能自动“补全…...
