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

分别是RPN和ROI的localization confidence以及ROIHead的classification confidence。

Step3: Open-world inference.

提出概率对准

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

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

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

三、一些训练细节

训练数据集:

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。超参数设置,=0.01,=0.6,==0.3

四、一些实验结果

相关推荐
rit84324993 分钟前
MATLAB基于voronoi生成三维圆柱形
开发语言·人工智能·matlab
xuedaobian14 分钟前
AI IDE里的 context 工程
人工智能·aigc·visual studio code
PyAIExplorer1 小时前
图像处理中的霍夫变换:直线检测与圆检测
图像处理·人工智能
格林威1 小时前
Baumer工业相机堡盟工业相机如何通过DeepOCR模型识别判断数值和字符串的范围和相似度(C#)
开发语言·人工智能·python·数码相机·计算机视觉·c#·视觉检测
不爱学英文的码字机器1 小时前
Claude Code: Best practices for agentic coding
人工智能
代码老y1 小时前
数据挖掘:从理论到实践的深度探索
人工智能·数据挖掘
九章云极AladdinEdu2 小时前
冷冻电镜重构的GPU加速破局:从Relion到CryoSPARC的并行重构算法
人工智能·pytorch·深度学习·机器学习·自然语言处理·架构·gpu算力
HMS Core2 小时前
用AI重塑游戏体验:《诛仙2》携手HarmonyOS SDK实现性能与功耗双赢
人工智能·游戏·harmonyos
jndingxin2 小时前
OpenCV哈希算法------Marr-Hildreth 边缘检测哈希算法
人工智能·opencv·哈希算法
金智维科技2 小时前
揽获双奖!2025大湾区珠港澳计算机设计大赛,金智维再现创新实力
人工智能