半监督目标检测

2023-11-10

在这里插入图片描述

  • 有监督目标检测: 拥有大规模带标签的数据,包括完整的实例级别的标注,即包含坐标和类别信息;
  • 弱监督目标检测: 数据集中的标注仅包含类别信息,不包含坐标信息,如图一 b 所示;
  • 弱半监督目标检测: 数据集中拥有部分实例级别的标注,大量弱标注数据,模型希望利用大规模的弱标注数据提升模型的检测能力;
  • 半监督目标检测: 数据集中拥有部分实例级别的标注,大量未标注数据,模型希望利用大规模的无标注的数据提升模型的检测能力;

半监督目标检测

  1. 一致性学习(Consistency based Learning)
  2. 伪标签(Pseudo-label based Learning)
    https://paperswithcode.com/task/semi-supervised-object-detection

一致性学习

论文: Consistency-based Semi-supervised Learning for Object Detection (https://papers.nips.cc/paper/2019/hash/d0f4dae80c3d0277922f8371d5827292-Abstract.html)
代码:https://github.com/soo89/CSD-SSD (pytorch)
概要:
在这里插入图片描述
CSD训练的损失函数主要包括两个部分,labeled sample 的监督损失和 unlabeled samples 的 Consistency loss。针对 unlabeled samples,首先将图像水平翻转,然后分别送入网络当中,得到对应的 Feature map,由于两张翻转的图像的空间位置是可以一一对应的,因此可以在对应的位置计算一致性损失。分类部分,利用 JS 散度作为 consistency loss;定位部分,利用 L2 loss 作为 consistency loss。
通过数据增强计算无标签数据集的一致性损失

伪标签

  1. 论文:A Simple Semi-Supervised Learning Framework for Object Detection (https://arxiv.org/abs/2005.04757)
    代码:https://github.com/google-research/ssl_detection(tensorflow)
    概要:
    在这里插入图片描述
  2. 首先利用 labeled data 训练一个 Teacher 模型;
  3. 生成 pseudo label, 将 unlabeled data 输入进 Teacher 网络中,得到大量的目标框预测结果,利用 NMS 消除大量的冗余框,最后使用阈值来挑选高置信度的 pseudo label;
  4. 应用 strong data augmentation。得到 pseudo label 后与 unlabeled image 图像相结合,包括图像级别的颜色抖动、geometric transformation(平移、旋转、剪切)、box-level transformation(小幅度的平移、旋转、剪切);
  5. 计算无监督 loss (pseudo label)和监督学习 loss
    类似于蒸馏,使用Teacher网络对无标签数据打伪标签,用于训练Student网络
    在这里插入图片描述

2 论文:Instant-Teaching: An End-to-End Semi-Supervised Object Detection Framework (https://arxiv.org/abs/2103.11402)
代码:未开源
概要:
在这里插入图片描述

  • 采用在线伪标注更新的方式。随着模型训练收敛,模型的精度提升的同时,在线生成的pseudo labels的质量也会得到及时的提高,从而反过来进一步促进模型的学习。
  • 为了更有效的对unlabel images 进行数据增强,采用在labeled images 和 unlabeled images 之间进行Mixup和Mosaic增强。
  • 针对confirmation bias 问题,提出了Co-rectify的方案,即同时训练两个模型,两个模型分别为彼此检查和纠正pseudo labels,从而有效抑制错误预测的累积,提高模型精度。值得注意的是,虽然在训练时,需要同时训练两个模型,但是infernece时,只需要使用单个模型即可,因此,不影响模型推理的速度
    主要在SATC的基础上进行修改,Teacher网络在训练中会进行更新
    在这里插入图片描述
    3 论文:Unbiased Teacher for Semi-Supervised Object Detection (https://arxiv.org/abs/2102.09480)
    代码:https://github.com/facebookresearch/unbiased-teacher (pytorch)
    概要:
    在这里插入图片描述

一开始训练用标注数据(burn-in),联合训练包括两步:固定teacher产生伪标注,用以训练student,而基于exponential moving average (EMA),学习的知识迁移给渐渐进步的teacher。半监督目标检测算法生成的标签具有 bias,将原本的 cross entropy loss 替换为 Focal loss 来解决 pseudo label bias 问题,即 class imbalance

主要在SATC的基础上进行修改,Teacher网络在训练中进行更新和Focal loss
在这里插入图片描述

4 论文:End-to-End Semi-Supervised Object Detection with Soft Teacher (https://arxiv.org/abs/2106.09018)
代码:https://github.com/microsoft/SoftTeacher (pytorch mmdetection)
概要:
在这里插入图片描述

  1. 教师模型和学生模型是两个完全相同的结构,因为要进行 EMA 更新,两者都是带有预训练的随机初始化

  2. 有标签图片采用常规的 pipeline 流程,利用学生模型进行预测,计算得到有标签的 loss,包括分类和回归分支 loss

  3. 参考 FixMatch 做法,无标签数据会经过强和弱两种不同的 aug pipeline,其中弱增强线输入到教师模型,而强增强线用于学生模型

  4. 使用可靠性度量来加权每个“背景”候选框的损失,而实测发现教师模型产生的背景检测分数可以很好地作为可靠性度量。这种监督方式实测效果远好于 hard 标签(按阈值筛选)训练方式,所以本文才称为 soft teacher

  5. 通过框抖动 box jittering 选择可靠的边界框来训练学生模型的定位分支,这种方法首先多次抖动伪前景框候选; 然后在利用教师模型对这些抖动框进行回归(实际上是 rcnn 分支进一步 refine ),并将这些回归框的方差用作可靠性度量;最后将具有足够高可靠性的 box 候选用于学生定位分支的训练。

  6. 强增强线学生模型的无标签分类和回归分支的伪标签是不一样的。教师模型采用 Mean teachers 方法进行更新

和论文3类似,对Teacher网络在训练中进行更新,增加了soft teacher 和 box jittering trick来提升效果
在这里插入图片描述

6 论文:Towards Open World Object Detection (https://arxiv.org/abs/2103.02603)
代码:https://github.com/JosephKJ/OWOD (pytorch)
概要:

  1. 在没有提供相关监督的情况下将无法分类的目标检测出来标记为unknown (对RPN中与GT的IOU不高的,但是softmax分数很高的进行排序,取k个作为潜在的未知物体)
  2. 能够在后续提供这些标签时,不忘记之前的类别同时渐进地学得这些unknown的类别

概要

  1. 在没有显式监督的情况下确认未知目标;
  2. 步进地学习这些确认的未知类,这些对应数据的标注渐进地收到,这样能够不会忘记之前学习的类。ORE(Open World Object Detector), 主要是基于一种聚类,即contrastive clustering,和基于能量的模型,即Energy based models (EBMs),对未知目标确认。
    对RPN输出的ROI特征聚类,并且修改了分类层为能量模型,比较适合增量训练
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

半监督目标检测 的相关文章

随机推荐

  • JavaScript一次替换字符串中多个

    问题 在JavaScript中对字符串替换时可能出现想要替换的字符串strB在原字符串strA中出现多次 而string replace方法只能替换一个字符串strB 解决方法 多次使用replace替换 使用replace 正则表达式替换
  • Rust 编程: 条件编译-Features

    Rust 编程 条件编译 Features Rust 支持条件编译 可通过两种不同的操作实现 cfg 属性 在属性位置中使用 cfg cfg 宏 在布尔表达式中使用 cfg 根据操作系统引用不同文件的相同模块 cfg attr target
  • java-在数组中,用二分法查找一个数。返回下标,找不到则返回-1。

    编写程序 完成下列功能 1 输入 20 个整数到数组中 2 对 20 个数按从大到小的顺序排序 输出排序后的数组 3 输入一个整数 x 4 在数组中 用二分法查找 x 如果找到了输出 x 在数组中的下标 找不到输出 1 package la
  • python Image模块基本语法

    Python Image 基本的图像处理操作 有需要的朋友可以参考下 Python 里面最常用的图像操作库是 Image library PIL 功能上 虽然还不能跟Matlab比较 但是还是比较强大的 废话补多少 写点记录笔记 1 首先需
  • Power BI /Power BI Pro账户等基本概念介绍

    视频内容 Power BI 的基本概念 Power BI 的概念 Power BI 是一种商业分析解决方案 可帮助对数据进行可视化 共享可视化报表 或将报表嵌入应用或网站中 Microsoft Power BI 是一系列的软件服务 应用和连
  • 组件封装

    基本用法 在使用 vue cli 创建的项目中 组件的创建非常方便 只需要新建一个 vue 文件 然后在 template 中写好 HTML 代码 一个简单的组件就完成了 一个完整的组件 除了 template 以外 还有 script和
  • Cannot find module ‘@/views/test/index.vue‘ or its corresponding type declarations.ts(2307)的原因

    在Vue的TypeScript项目中 使用const test gt import views test index vue 语法动态导入模块时 可能会出现类型声明文件找不到的错误 这是由于TypeScript无法正确解析动态导入的路径而导
  • 五线舵机驱动程序_16路舵机驱动板程序使用说明

    用Arduino类库驱动舵机并不是一件难事 如果需要驱动很多电机 就需要要占用更多的引脚 也会影响到Arduino的处理能力 专门的舵机驱动板很好的解决了这个问题 此舵机驱动板使用PCA9685芯片 是16通道12bi tPWM舵机驱动 用
  • 2020年“泰迪杯”数据分析职业技能大赛A 题优秀报告:教育平台的线上课程智能推荐策略

    摘要 近年来 随着互联网与通信技术的高速发展 学习资源共享与建设呈现出新的发展趋势 多样化的线上教育平台如雨后春笋般争相涌入大众视野 尤其是在今年年初 受新冠肺炎疫情的冲击下 学生返校进行线下授课收到严重阻碍 由此 网络线上平台由此成为 互
  • 字节跳动精准测试实践,SmartEye背后的设计逻辑

    简介 在移动互联网高度发展下 移动APP趋近于大型化 功能也趋近于复杂化 诸如各种国民级应用 功能 玩法等迭代不停 其背后对应的研发协作团队也非常庞大 在此种场景下 依靠人力堆叠去保障产品质量 并非最优解 在软件规模达到某个临界点之后 问题
  • [论文] LIMA: Less Is More for Alignment

    文章目录 概要内容 关键方法 高质量样本获取 模型评估方法 结论 思考 Meta新模型LIMA 基于LLaMa 65B 精选1000个微调样本进行训练 对比GPT 4 Bard DaVinci003 表现出强大的性能 结果表明 大语言模型中
  • 程序员mac开发环境配置

    拿了一台新的macbook pro 作为一个程序员 我把自己的开发环境给贴出来 1 输入法 先把苹果的系统自带的中文输入法 换成自己习惯的搜狗输入法 2 略 3 jdk 7u71 直接下载dmg文件安装 4 git 在terminal中 直
  • 中国职场女性领导者专题访谈

    导读 书写中国职场女性领导者并不容易 一不小心就会落入成功学后验主义窠臼 狭隘单一的价值评判 亦或是隐形性别偏见 但我们还是坚定地提笔 因为每一位女性领导者的成长历程 无论高光时刻还是黑暗片段 都会通过文字与读者产生连接 为其带来启示 而我
  • 服务器计算机性能测试,服务器平台计算性能工具Linpack服务器性能测试利器_一_.pdf...

    服务器平台计算性能工具Linpack服务器性能测试利器 一 pdf 产 品 技 术 服务器平台 文 赵吉志 计算性能工具Linpack 服务器性能测试利器 一 计算机硬件的不断升级带来了系统处理性能的持续提高 如何对平台的性能作出正确的判断
  • Linux基础(命令学习) ———从入坑到放弃1.0

    Linux文件 一 系统层次图 Linux文件类型 在Linux中一切都是文件 但文件都得有类型 shell 对命令的解释 cd pwd 查看当前的工作目录 Is 列表显示目录内容 alias 设置别名 du 统计目录及文件空间占用情况 m
  • SpringBoot的基本使用

    SpringBoot 目录 SpringBoot 一 SpringBoot简介 1 什么是SpringBoot 2 SpringBoot的优点 3 SpringBoot的缺点 二 SpringBoot的创建方式 1 基于官网的Initial
  • 【vue运行报错】There are multiple modules with names... 报错原因和解决办法

    项目场景 There are multiple modules with names that only differ in casing 项目运行时候报错如下 There are multiple modules with names t
  • Python中的__init__.py的高级用法

    刚开始学习编程 我们很少会关注这个文件 只知道一个目录中存在该文件 该目录就是一个package 不存在就是普通的目录 普通的目录在导入包时 pycharm并不会智能提示 Python中每新建一个package都会默认生成一个 init p
  • (一)app自动化测试环境搭建(mac+ios+airtest )

    环境搭建的效果如下 IOS手机屏幕显示Automation Running 电脑端airtest设备窗口上可以看到手机屏幕 以下是在mac电脑的搭建过程 只演示连接IOS真机部分 安卓机较为简单暂时省略 1 APP自动化测试工具介绍 Air
  • 半监督目标检测

    有监督目标检测 拥有大规模带标签的数据 包括完整的实例级别的标注 即包含坐标和类别信息 弱监督目标检测 数据集中的标注仅包含类别信息 不包含坐标信息 如图一 b 所示 弱半监督目标检测 数据集中拥有部分实例级别的标注 大量弱标注数据 模型希