当前位置: 首页 > news >正文

论文阅读—— 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

四、一些实验结果

   

相关文章:

  • Apache Doris (五十二): Doris Join类型 - Broadcast Join
  • Redis02-持久化策略
  • 公司团建小游戏开发小程序游戏互动小游戏
  • RK356X Android13.0 HDMI和喇叭同时出声音
  • 算法整理合集
  • R语言 复习 习题图片
  • Java 数据结构篇-实现单链表核心API
  • NOIP2023模拟12联测33 滈葕
  • 初阶JavaEE(14)表白墙程序
  • OpenCV官方教程中文版 —— 图像修复
  • ViT模型中的tokens和patches概念辨析
  • 86.Linux系统下复制进程fork(逻辑地址和物理地址)
  • Scala语言用Selenium库写一个爬虫模版
  • 【监控指标】监控系统-prometheus、grafana。容器化部署。go语言 gin框架、gRPC框架的集成
  • python-全自动二维码识别
  • 深入了解以太坊
  • 时间复杂度分析经典问题——最大子序列和
  • 【399天】跃迁之路——程序员高效学习方法论探索系列(实验阶段156-2018.03.11)...
  • 10个最佳ES6特性 ES7与ES8的特性
  • Brief introduction of how to 'Call, Apply and Bind'
  • maven工程打包jar以及java jar命令的classpath使用
  • MySQL-事务管理(基础)
  • OSS Web直传 (文件图片)
  • python docx文档转html页面
  • React-生命周期杂记
  • windows下mongoDB的环境配置
  • 前端临床手札——文件上传
  • 前端之Sass/Scss实战笔记
  • 双管齐下,VMware的容器新战略
  • 探索 JS 中的模块化
  • 学习使用ExpressJS 4.0中的新Router
  • CMake 入门1/5:基于阿里云 ECS搭建体验环境
  • ​ 无限可能性的探索:Amazon Lightsail轻量应用服务器引领数字化时代创新发展
  • ​一文看懂数据清洗:缺失值、异常值和重复值的处理
  • #QT(智能家居界面-界面切换)
  • #我与Java虚拟机的故事#连载08:书读百遍其义自见
  • $HTTP_POST_VARS['']和$_POST['']的区别
  • (01)ORB-SLAM2源码无死角解析-(66) BA优化(g2o)→闭环线程:Optimizer::GlobalBundleAdjustemnt→全局优化
  • (03)光刻——半导体电路的绘制
  • (1)(1.13) SiK无线电高级配置(五)
  • (10)STL算法之搜索(二) 二分查找
  • (3)(3.2) MAVLink2数据包签名(安全)
  • (DFS + 剪枝)【洛谷P1731】 [NOI1999] 生日蛋糕
  • (二)PySpark3:SparkSQL编程
  • (附源码)ssm智慧社区管理系统 毕业设计 101635
  • (三)Hyperledger Fabric 1.1安装部署-chaincode测试
  • (四)模仿学习-完成后台管理页面查询
  • (译)计算距离、方位和更多经纬度之间的点
  • (转)Android中使用ormlite实现持久化(一)--HelloOrmLite
  • (转载)VS2010/MFC编程入门之三十四(菜单:VS2010菜单资源详解)
  • .NET CORE使用Redis分布式锁续命(续期)问题
  • .Net下使用 Geb.Video.FFMPEG 操作视频文件
  • @Documented注解的作用
  • [ C++ ] STL---string类的模拟实现
  • [ 云计算 | Azure 实践 ] 在 Azure 门户中创建 VM 虚拟机并进行验证