论文地址:https://arxiv.org/abs/2102.13086

代码地址:https://github.com/xingyizhou/UniDet

摘要

怎样得到一个普遍和广泛的目标检测系统?我们使用所有标注过得标签,这些标签跨越具有潜在不一致分类法的不同数据集;本文中,作者使用了一个简单的方法在大批量的数据集上用于训练一个统一的检测器。作者使用特定数据集训练协议和loss,但是共享一个通用的有特定数据集输出的检测分支。作者展示了怎样自动整合这些特定的数据集输出到常见的语义分类。与之前的工作相比,作者的方法不需要手工分类核对。本文的方法与在每个数据集上单独训练的模型效果相比一样好,同时可以在没有微调的情况下,将其泛化到没有见过的数据集上;

介绍

计算机视觉的目的就是生成一个广泛,普遍的有目的感知系统,将其用在场景数据中。但是目标检测数据集很多【18,22,24,33】,所以我们的模型就被锁定在了特定的区域;尽管这些数据带来了目标检测和分割算法的快速的发展;同时也有缺陷。单个训练数据被限制在了特定的域,标签类别业有限,不能够得到一个普遍的识别系统。是否可以通过联合各种各样的检测数据集减少这种限制?

本文中,作者直接将收集到的所有数据训练一个单模型。不同的数据集训练使用不同的loss,数据采样策略和schedules。本文展示了我们可以训练一个检测器,不同的数据集有不同的输出,数据集之间相互监督。我们的训练模拟了使用特定数据和常见网络训练。结果,本文中的单个检测器充分利用了所有的训练数据,在训练的域表现很好,在没有见过的域泛化性也很好。但是,这个检测器会产生多个类别的重复输出,特别是产生在多个数据集中(this detector produces duplicate outputs for classes that occur in multiple datasets)。

核心挑战就是整合不同的数据集在一个常见的类别,训练一个检测器推理出泛化(gengral)目标代替特定数据集的类别。传统方法使用手工制作分类器【19,47】,不仅耗时,还有错误倾向。作者展示了一个全自动化方式去统一多数据集检测系统,就是使用仅仅可视化数据。我们利用这样一个事实,即来自不同数据集的类似概念的对象检测器会触发类似的新对象(we use the fact that object detectors for similar concepts from different datasets fire on similar noval object);这就允许我们定义在不同数据集上的代价,全自动化的优化一个常规的分类器。作者优化的目的就是发现一个统一的分类器,可以隐射到每一个数据集。针对每个数据集的统一分类的检测器使用新的0-1整数编码公式。在这个统一分类法上训练的对象检测器有一个从所有训练数据集中自动构建的大型概念词汇表;

作者使用了超大规模的数据对目标检测器做了评估。在三个大规模的数据集上训练,有COCO,Objects365,OpenImages【18】。首先,作者验证了单个检测器的性能和特定数据集训练的模型效果一样的好,一个统一的分类器还对检测性能有所提升。而且,本文的方法在各类训练样本训练后,在没有进行微调的作用下,在新的数据集上模型泛化性能也很好;

相关工作

Training on multiple datasets.近些年来在大量数据集上训练作为一种有效的工具去提升模型在深度估计上的鲁棒性【29】;立体匹配【43】,和人体检测【13】。在这些领域,统一的输出空间涉及到不同的摄像头转换或深度模糊度。反之,对于识别,数据集统一涉及到混合不同的语义概念。MSeg【19】手动整合了7个语义分割数据集,并使用了Amazon Mechanical Turk去解决不连续的标注。本文中,作者提出从视觉数据自动的学习标签空间,不需要任何其他的人工工作;

【40】中,作者训练了一个统一的目标检测器,通过联合不同的监督获得了较好的鲁棒性,这与本文中的分区(our partitioned detector)检测器相似 ;虽然他们在小数据集上工作,并且没有对不同数据集之间的训练差异进行建模。Universal-RCNN【42】在三个大数据集上训练一个分区检测器,使用一个类内的注意力模块建模不同类之间的联系。然而,它们再次对所有数据集使用相同的训练方法,如果同一对象出现在多个数据集中,则会为其生成重复的输出;【40】和跑【19】注意到了单个统一模型的性能下降,使用我们的专用的训练框架,我们统一的模型表现出的性能和单个数据模型效果一样好。当在域内评估的时候,他们需要测试领域内的知识。当在域外评测时,对于单个concept产生了大量的输出。这就是限制了模型的泛化性,导致模型效果不佳。作者的方法,整合了一个单标签空间,产生了一个模型,不需要在测试数据集的域中进行训练,可以部署在新的域。

【47】训练了一个统一的检测器:COCO【22】,VOC【6】,和SUNRGBD【37】,整个有100个类。他们手工混合了分类器,使用交叉数据集训练pseudo-labels产生一个特定的模型。pseudo-label就是一个补充性的工作。作者的整合标签空间学习移除人工劳力,并工作在一个大的数据规模上:所用数据集有COCO,Objects365,和OpenImages,和很多复杂的标签空间,类别有900+类。YOLO9000【30】结合检测和分类数据集扩大检测内容。LVIS【12】扩展COCO标注>1000个类别;作者的方法混合了大量的标注数据集用于补偿,且不用手工去统一分散的目标检测数据集。

zero-shot classification and detection推理是关于训练集中出现的一个新类别【1,8】,一个新的类别通常是用语义表针【25】或者附加属性标签【7】来表征的。在零样本目标检测中(in zero-shot detection),【1】提出了一种方法来避免新的类别被划分为背景类。【28】使用测试时间训练时(test-time training)去基于单词嵌入逐步生成新的类别。【21】减少使用外别文本描述处理新的类别。我们的编程方式是补充性的:我们的通过混合不同的数据来创立一个充分的大的标签空间,这些训练过得检测器在夸域的数据集上转换效果很好,甚至没有使用机械(machinery),例如词嵌量或者属性。这类机械可以加入,来更好的优化我们的模型词汇量;

预备工作

目标检测目的就是预测图像中每个目标i的一个位置和一个类别级的检测分数.

inter-dataset sampline strategy[26,35]——>class_aware sampling

在类别不平衡时的采样策略:这种操作会提升0.6%的精度

Class-aware Sampling. 
To address this issue, we apply a sampling strategy, named “class-aware sampling”, during training.
 We aim to fill a mini-batch as uniform as possible with respect to classes, and prevent the same example and class from always appearing in a permanent order. In practice, we use two types of lists, 
an iteration, we first sample a class X in the class list, then sample an image in the per-class 
image list of class X. When reaching the end of the per-class image list of class X, a shuffle
 operation is performed to reorder the images of class X. When reaching the end of class list, a 
strategy to effectively tackle the non-uniform class distribution, and the gain of accuracy on the validation set is about 0.6%.

有两个列表,一个类别列表X,一个每类列表的样本列表Y。在每次取mini-batch时,先取一个X,再取一个Y中对应的一个样本,即获得一张图片用于mini-batch。往后遍历X,依次类推获得mini-batch,用以训练迭代。若X遍历完毕,再打乱X,再从头遍历X。若Y中某一类样本遍历完毕,则打乱该列样本,下次取该列类别样本时,从该列头开始取。
————————————————
版权声明:本文为CSDN博主「oneTaken」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u011394059/article/details/77942121

[目标检测] Simple Multi-dataset Detection相关推荐

  1. 目标检测数据集The Object Detection Dataset

    目标检测数据集The Object Detection Dataset 在目标检测领域,没有像MNIST或Fashion MNIST这样的小数据集.为了快速测试模型,我们将组装一个小数据集.首先,我们 ...

  2. 无人驾驶中的目标检测--MODNet: Moving Object Detection Network for Autonomous Driving

    MODNet: Moving Object Detection Network with Motion and Appearance for Autonomous Driving 这里讲视频动作识别中 ...

  3. 遥感图像中的小样本目标检测:Few-shot Object Detection on Remote SensingImages

    论文下载:https://arxiv.org/pdf/2006.07826v2.pdf Abstract 在本文中,我们处理遥感图像上的目标检测问题.以前的方法已经发展了许多基于深度卷积的遥感图像目标 ...

  4. 快速小目标检测--Feature-Fused SSD: Fast Detection for Small Objects

    Feature-Fused SSD: Fast Detection for Small Objects 本文针对小目标检测问题,对 SSD 模型进行了一个小的改进,将 contextual infor ...

  5. 【ICPR 2021】遥感图中的密集小目标检测:Tiny Object Detection in Aerial Images

    SSPNet: Scale Selection Pyramid Network for Tiny Person Detection from UAV Images 简介: 数据集: M-CenterN ...

  6. 目标检测simple Faster R-CNN训练自己的数据集

    一.复现 刚开始接触目标检测,自己动手复现的第一个开源项目是github上chenyuntc的simple faster rcnn.历经千辛万苦最后貌似因为服务器显卡内存不够,在训练时一直出现一个错误 ...

  7. 目标检测综述:Object Detection in 20 Years: A Survey

    文章目录 1. INTRODUCTION 1.1 区别 1.2 目标检测中的困难和挑战 2. OBJECT DETECTION IN 20 YEARS 3. SPEED-UP OF DETECTION ...

  8. 【3D目标检测】3D Object Detection for Autonomous Driving: A Survey

    目录 概述 细节 背景 常用数据集及其评价指标 基于RGB图像的算法 基于点云的算法 基于RGB图像与点云模态融合的算法 概述 这是一篇21年的综述,介绍了3D目标检测背景.传感器以及基于传感器的算法 ...

  9. 目标检测——day44 Tiny Object Detection in Aerial Images

    航空图像中的小物体检测 资源下载 原文PDF 代码和数据集 I. INTRODUCTION A. contributions III. DATASET DETAILS A. Dataset Const ...

最新文章

  1. 我是如何在天猫、蚂蚁金服、百度等大厂面试中被拒的 | 掘金技术征文
  2. linux 服务搜索顺序文件 /etc/nsswitch.conf 简介
  3. 申请Let's Encrypt通配符HTTPS证书(转)
  4. lacp静态和动态区别_lacp静态与动态区别
  5. redis启动后出现WARNING you have Transparent Huge Pages (THP) support enabled in your kernel问题...
  6. Oracle GoldenGate微服务架构
  7. 基于Android的聊天软件,Socket即时通信,实现用户在线聊天
  8. WePY,微信小程序开发利器,进一步简化小程序开发难度
  9. 文档比较比对工具Beyond Compare
  10. wps怎么将字体变得很大_wps如何将字体无限放大
  11. mysql重启服务命令_重启mysql命令
  12. python题目58:工厂流水线调度
  13. vue+element 在ie和360浏览器的兼容问题
  14. Docker 配置 nvidia-docker 和 pytorch 的一些想法
  15. 取字符串拼音首字母(js)
  16. 5.5 进入编辑模式 5.6 vim命令模式 5.7 vim实践
  17. 李宏毅《Deep Learning》学习笔记 - transformer
  18. 计算机应用基础0006 19春在线作业1,《计算机应用基础0006》19春在线作业1 为了实现自动控制处理 需要计算机具有的基础条件是...
  19. lightoj1219Mafia
  20. APUE:fork()、exec()前用fflush()刷新缓冲区的重要性

热门文章

  1. html怎么将线条放在图片右边,css如何设置图片边线?
  2. 将LCD屏幕倒过来显示(LCD翻转)
  3. Swagger使用教程及Swagger增强工具knife4j
  4. 简历中没写中间件,面试5分钟就被请出去了,ElasticSearch 改咋学呢?
  5. 北京税后工资计算方式(仅供参考)
  6. 【POI】Apache POI字体/Fonts(八)
  7. 痴情的人注定伤的最深,自古痴情终成空
  8. php微信Emoji表情处理
  9. 求职招聘小程序,微信小程序招聘系统,校园招聘微信小程序系统毕业设计作品
  10. acwing第72场周赛题解