论文阅读—— UniDetector(cvpr2023)

arxiv:https://arxiv.org/abs/2303.11749

github:https://github.com/zhenyuw16/UniDetector

一、介绍        

通用目标检测旨在检测场景那种的一切目标。现有的检测器依赖于大量数据集

        通用的目标检测器应该有两个能力:1、可以利用多种来源的图片和标签训练2、可以很好的泛化到开放世界,对于没见过的类别也可以预测。

        传统的目标检测,rcnn系列,只能在封闭数据集上,后来发展的开放词汇目标检测很大程度提升了性能,也能泛化到一些非常见类别,但是仍然只在一个数据集迁移,同时见过的类别比没见过的类别多,泛化能力受到限制。在多数据集上训练的问题是需要统一标签空间,为此提出了一些方法但是这些方法仍然关注于在封闭数据集上检测。  

二、The UniDetector Framework

Step1: Large-scale image-text aligned pre-training.

        采用RegionCLIP参数:We adopt RegionCLIP pre-trained parameters for our experiments.

Step2: Heterogeneous label space training.

1、对于处理不同来源的数据,考虑三个问题,架构、采样和损失函数选择

        1)提出了三种处理不同来源标签的架构:

        2)训练大规模数据集,一个不可避免的问题是长尾效应。之前用在封闭数据集上解决这个问题的方法不太管用因为通用检测器有没见过的类别。对于语言嵌入,长尾问题的不利影响可以忽略不计。因此,我们采用了随机采样器。(With language embeddings, the adverse effect of the long-tailed problem becomes negligible. We thus adopt the random sampler.)

        3)损失函数

        使用基于sigmoid的损失函数,同时当类别数量增加时,为了避免基于sigmoid的分类损失过大,随机抽取一定数量的类别作为负类别。

2、解耦RPN区域生成和ROI分类的训练

        1)传统的两阶段目标检测器,包括backbone encoder, a RPN and a RoI classification module。RPN是类别无关的,使用与通用目标检测,但是特定类别的RoI分类模块依然不能用于罕见类别。所以作者解耦了这两个阶段,分别训练。也就是,用ImageNet预训练参数初始化RPN模块,类别不相关方式训练,训练完成后就会产生一系列region proposals。然后对于这些区域,ROI分类模块用Fast RCNN方式训练,这个阶段用imagetext预训练参数初始化来预测没见过的罕见类别。用到的这两种预训练参数包含互补信息,对通用检测提供了理解信息。

        2)CLN模块:是在RPN模块后面ROIHead

        

        

        s_{i}^{r1}s_{i}^{r2}s_{i}^{c}分别是RPN和ROI的localization confidence以及ROIHead的classification confidence。

Step3: Open-world inference.

        提出概率对准

        开放世界推理阶段有个问题,训练集中出现的类别(基础类别)推理得出的分数会高于罕见类别,这样就会使检测器忽略大量的没见过的类别实例。于是作者在后处理阶段提出了概率对准,目的是降低基础类别概率增加没见过类别的概率,概率对准公式如下:

\pi_{j}是类别的先验概率,值越大说明模型越偏向这个类别可以在测试集上推理一遍,根据得到的结果中每个类别的数量获得\pi_{j}的值,如果测试集太小,也可以使用训练集。\gamma是超参数。

最终的预测分数使用上面公式的p_{ij}和CLN模块的目标分数\eta_{i}相乘,再引入超参数β得到:

三、一些训练细节

训练数据集:

COCO:80类,稠密高质量人工标注,作者从中随机采样了35K训练

Objects365:365类,更大规模,作者从中随机采样了60K训练

OpenImages:500类别,许多标注稀疏并且是脏数据,作者从中随机采样了78K训练

推理数据集:

LVIS:LVIS v0.5有1230类别,LVIS v1有1203类别

ImageNetBoxes:3000多类别

VisualGenome:7605类别,相当一部分数据是机器标注,所以噪声非常多

实现细节:使用mmdetection实现,选择ResNet50-C4 based Faster RCNN as our detector, initialized with RegionCLIP pre-trained parameters。超参数设置,\tau=0.01,\gamma=0.6,\alpha=\beta=0.3

四、一些实验结果

   

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

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

相关文章

计算机网络常见的名词解释

计算机网络常见的名词解释 1.应用层2.传输层3. 网络层4.链路层5. 无线网络和移动网络6.计算机网络中的安全 1.应用层 API (Application Programming Interface)应用程序编程接口HTTP (Hyper Text Transfer Protocol) 超文本传输协…

Linux难学?大神告诉你,Linux到底该怎么自学!

Linux难学?大神告诉你,Linux到底该怎么自学! 就Linux这个学习曲线,如果不是有人带,分分钟会被自己劝退!不过,要是你换个思路,不妨跟着这里的节奏,试试看? 知乎…

AI系统ChatGPT程序源码+AI绘画系统源码+支持GPT4.0+Midjourney绘画

一、AI创作系统 SparkAi创作系统是基于OpenAI很火的ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统,支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美,可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如…

AWS SAP-C02教程0--课程概述

SAP是亚马逊云的解决方案架构师专业级认证,关于本课程,我会简述已下3点: 在本课程中按照自己的分类讲述考试相关的AWS产品,特别会注明每个产品在考试中可能出现的考点会对一些解决方案做对比,通过一些对比给出不同场景…

帧间快速算法论文阅读

Low complexity inter coding scheme for Versatile Video Coding (VVC) 通过分析相邻CU的编码区域,预测当前CU的编码区域,以终止不必要的分割模式。 𝐶𝑈1、𝐶𝑈2、𝐶𝑈3、&#x…

linux在如何安装宝塔,宝塔在linux服务器下如何安装?

宝塔在linux服务器下如何安装? 那首先你得有一台linux的服务器 可以到这里白嫖一台服务器 【基本上】 https://t.aliyun.com/U/9WzPCS 有了服务器之后就可以进行宝塔的安装了! 在Linux系统下安装宝塔面板主要分为以下步骤: 1、进入远程连接…

图论(欧拉路径)

理论: 所有边都经过一次,若欧拉路径,起点终点相同,欧拉回路 有向图欧拉路径:恰好一个outin1,一个inout1,其余inout 有向图欧拉回路:所有inout 无向图欧拉路径:两个点度数奇,其余偶 …

3.4、Linux小程序:进度条

个人主页:Lei宝啊 愿所有美好如期而遇 目录 回车与换行的概念和区别 行缓冲区概念 进度条代码 version1 version2 version3 回车与换行的概念和区别 换行\n,回车\r 似乎无需多言 行缓冲区概念 这里我们通过例子来简单理解即可,深入…

vue面试题

Vue.js 是一个渐进式的 JavaScript 框架,被设计用来构建用户界面。与其他重量级框架(如 Angular 或 React)相比,Vue.js 提供了更简单、更灵活的 API,使得你可以在各种项目中灵活使用。 Vue.js 主要的核心特性是&#…

wx 小程序不打开调试模式无法获取数据

问题开始 最近学习小程序,发布了一个体验版的小程序,发现正常扫码进入后接口数据是无法访问的。也就是原始数据,不过开启调试模式后,数据又一切正常,但是总不能让每个人都开启调试模式用吧,终于查阅资料后找到了解决问题的办法 …

10 索引优化与查询优化

文章目录 索引失效案例关联查询优化对于左外连接对于内连接JOIN语句原理简单嵌套循环连接SNLJ索引嵌套循环连接INLJ块嵌套循环连接BNLJHash Join 子查询优化排序优化filesort算法:双路排序和单路排序 分组优化分页优化优先考虑覆盖索引索引下推ICP使用条件 其他查询…

最新、最全、最详细的 K8S 学习笔记总结

Kubernetes就是一个编排容器的工具,一个可以管理应用全生命周期的工具,从创建应用,应用的部署,应用提供服务,扩容缩容应用,应用更新,都非常的方便,而且可以做到故障自愈。 K8S的前景…

笔记50:正则表达式入门宝典

引自:正则表达式是什么? - 知乎 中“龙吟九野”所写的一个回答,个人感觉看完之后如同醍醐灌顶,查了很多资料都没有这篇文章写的基础和通透,感觉是正则表达式扫盲好文,所以搬运一下,侵权删,感谢…

面向萌新的数学建模入门指南

时间飞逝,我的大一建模生涯也告一段落。感谢建模路上帮助过我的学长和学姐们,滴水之恩当涌泉相报,写下这篇感想,希望可以给学弟学妹们一丝启发,也就完成我的想法了。拙劣的文笔,也不知道写些啥,…

ESP8266:物联网时代的连接神器

一、引言 在当今的物联网时代,智能设备与互联网的连接已经成为日常生活中不可或缺的一部分。而在这股浪潮中,ESP8266作为一个低成本、高效率的Wi-Fi芯片模块,扮演着举足轻重的角色。本文将为你揭示ESP8266的魅力,并探讨其在物联网…

Hadoop知识点全面总结

文章目录 什么是HadoopHadoop发行版介绍Hadoop版本演变历史Hadoop3.x的细节优化Hadoop三大核心组件介绍HDFS体系结构NameNode介绍总结 SecondaryNameNode介绍DataNode介绍DataNode总结 MapReduce介绍分布式计算介绍MapReduce原理剖析MapReduce之Map阶段MapReduce之Reduce阶段 实…

MySQL的event的使用方法

MySQL的event的使用方法 一、事件定时策略 1、查看event事件开启状态 SHOW VARIABLES LIKE event_scheduler;如图,Value值 ON:打开,OFF:关闭。 2、设置event事件打开 SET GLOBAL event_scheduler ON;如果MySQL重启了&#x…

【软件工程】金管局计算机岗位——软件测试的分类(⭐⭐⭐⭐)

软件工程 软件测试的分类从是否关心软件内部结构和具体实现的角度划(⭐⭐⭐⭐)从是否执行代码角度划分(⭐⭐)从软件开发的过程按阶段划分(⭐⭐⭐⭐) 软件测试的分类 考点导读: 软件测试是软件工…

C#通过FTP与异构系统实现业务接口

using System; using System.Data; using System.Configuration; using System.Web; using System.Net; using System.IO; using System.Text; using System.Configuration; /// <summary> /// FtpWeb 的摘要说明 /// .net对FTP操作类 /// </summary> namespace…