few shot目标检测survey paper笔记(整体概念)

paper: Few-Shot Object Detection: A Comprehensive Survey (CVPR2021)

深度学习提高了目标检测的精度,但是它需要大量的训练数据。
对于训练数据集中没有见过的目标,是检测不了的,所以就限制了在实际中的应用。
如果想让模型去识别新的目标,就需要自己标注,这是既花时间又很枯燥的活,而且像医疗数据这种根本得不到大量的数据。
对比人类就不同了,小孩子看一眼一个物体就能很快认识它。
那么就引出了few shot目标检测(FSOD)。称作小样本目标检测。旨在通过少量标注的数据去训练一个已经预训练的模型,就能达到检测新目标的目的。

大致思想如下
在这里插入图片描述

小样本目标检测的一些概念:

在这里插入图片描述

先给模型训练的base数据集和新标注的小样本数据集novel是不重叠的。

K-shot目标检测: C n o v e l C_{novel} Cnovel中每个类别只有K个标注的目标instances. 并不一定是K张图片(一张图片中可有多个目标)。
难度最大的是one-shot目标检测,也就是K=1.

N-way目标检测:从N个类别中检测目标,N<=| C n o v e l C_{novel} Cnovel|

few-shot目标检测可以总结为N-way K-shot检测。

为什么要先用 D b a s e D_{base} Dbase训练然后再用 D n o v e l D_{novel} Dnovel,而不是直接用 D n o v e l D_{novel} Dnovel训练?因为只用 D n o v e l D_{novel} Dnovel训练会overfit, poor generalization.
那么把 D b a s e D_{base} Dbase D n o v e l D_{novel} Dnovel融合成一个数据集一起训练呢? D b a s e D_{base} Dbase数据集中的样本数远远多于小样本的 D n o v e l D_{novel} Dnovel,是很大程度的class imbalance, 结果就是训练时会偏向base数据集,造成小样本数据类别检测效果不好。

基本上训练是分成3步的,
第1步,用classification数据(比如imageNet)先训练backbone, 得到初步的模型 M i n i t M_{init} Minit,
第2步,用 D b a s e D_{base} Dbase训练,得到模型 M b a s e M_{base} Mbase,
最后用在这里插入图片描述训练,得到 M f i n a l M_{final} Mfinal
在这里插入图片描述

小样本数据训练的相关概念:

Few-Shot Learning and Classification:
最早用于分类任务,比目标检测任务要简单一些,它的一些ideas也可用于目标检测。

Semi-Supervised Learning:
半监督学习,只有少量有标签的数据,大量没有标签的数据可用来学习合适的representations.
可用来提高few-shot learning中学习到的representations.

Incremental Learning:
一般的深度学习会遇到严重的忘性,学习了新数据就忘了旧数据。
比如先用COCO数据集训练,再用航拍数据训练,然后就只能检测航拍数据,COCO数据竟检测不出来了。
增量学习旨在保留旧类别的performance.
当不断有新的类别进来时,一些FSOD方法会引入增量学习。

几种不同的目标检测:

一般目标检测:分类+目标框,类别有限,不在训练类别里面的就检测为背景。需要标注的数据集进行训练。

Cross-Domain目标检测:
先用大量标记数据训练,再用不同领域的少量数据训练。这乍一听不就是few-shot么。
其实不然,cross-domain前后虽然是不同的domain, 但前后类别是一样的,比如先用合成数据训练,再用真实数据训练;
few-shot是引入新的类别。

Zero-shot目标检测:
是few-shot的极端情况,标注数据为0 (K=0)。
zero-shot常和语义word embedding一起,语义上相似类别的目标在embedding空间会有相似的feature。
zero-shot对于检测常用的物体是可以的,但是如果你提供一个特殊的标签,或者想区分非常相近的目标是有问题的。

Weakly Supervised目标检测:
弱化标注,训练数据仅包含image-level的标签。
比如在图像的某个地方是不是存在某种类别的目标。这种标注比画框标注简单,常可通过关键字搜索获得。
弱监督的难点再于训练时没有任何定位信息的情况下检测到所有目标。
虽然说在标注上难度有所下降,但是仍然需要大量的图片,在很难获得图片(比如医疗图像)时仍然是有困难的。

几种Learning Techniques:

Transfer Learning(迁移学习):
和few-shot的区别是,新的类别数据不必要是小数据。
因此,如果用迁移学习做小样本训练,需要结合小样本学习。

Metric Learning(度量学习):
学习一个embedding, 可以理解为一个特征向量。相似的目标特征会相似,有较小的距离. 不相似的目标距离就远。
为了学习到有较低类内距离和较高类间距离的L2特征,一般会用到triplet loss或者它的拓展。
这些特征的推广性还不错,模型可以encode新类别的目标,不需要重新训练。
在模型推理阶段,模型会提取新目标的embedding,然后类别会分到最相近的特征embedding类别中。
不过,上面只提到了分类,对于目标检测,还需要把目标的位置信息融合进去。

Meta Learning(元学习):
也叫“学会学习”,以推广到新的任务和新的数据。
对于小样本few-shot来说,元学习需要学会如何区分出训练时不固定的类别,
所以需要学习如何最有效地获取需要的信息,以便在只有少量样本时也能学到有效信息。

小样本目标检测方法分类

paper中将FSOD分为两类,meta learning和transfer learning.
其中meta learning又分为single-branch和dual-branch.
dual-branch: 2个input, query和support image.
single-branch: 类似于一般的检测模型,但是在训练新的类别或者用metric learning时,会压缩需要学习的参数的数量。

一些dual-branch结构和迁移学习会结合metric learning的idea,所以为了不至于混淆,paper不把metric learning单独当作一个类别。
而是通过训练策略和结构把SOTA方法进行区分。

下面的图是survey中涉及到的方法,可以看出小样本目标检测这个领域还很新,大部分方法都是近几年才提出来,
其中多数用了transfer learning和dual-branch meta learning.
在这里插入图片描述

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

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

相关文章

element-table 行的拖拽更改顺序(无需下载sortableJs

样例展示&#xff1a;vueelement 通过阅读element文档我们发现element并不提供拖拽相关的api 本博客通过element提供的行类名 注册函数 实现行与行的拖拽 1.设置el-table 的行样式类名 这里是用的是 function <el-table:data"outputData":row-class-name&qu…

H.265 视频在浏览器中的播放问题探究

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f405;&#x1f43e;猫头虎建议程序员必备技术栈一览表&#x1f4d6;&#xff1a; &#x1f6e0;️ 全栈技术 Full Stack: &#x1f4da…

2023/9/12 -- C++/QT

作业 实现一个图形类&#xff08;Shape&#xff09;&#xff0c;包含受保护成员属性&#xff1a;周长、面积&#xff0c; 公共成员函数&#xff1a;特殊成员函数书写 定义一个圆形类&#xff08;Circle&#xff09;&#xff0c;继承自图形类&#xff0c;包含私有属性&#xf…

X86_64函数调用汇编程序分(2)

X86_64函数调用汇编程序分&#xff08;2&#xff09; 1 X86_64寄存器使用标准2 leaveq和retq指令2.1 leaveq2.2 retq 3 执行leaveq和retq之后栈的结构3.1 执行leaveq之后栈的结构3.1.1 test_fun_b函数执行leaveq之前的栈结构示意图3.1.2 test_fun_b函数执行leaveq之后的栈结构示…

Charles的Map Remote功能

1、charles的Map Remote功能&#xff08;指定的网络请求重定向到另一个网址&#xff09;&#xff0c;说白了就是你本来要请求A接口拿数据&#xff0c;重定向后&#xff0c;你实际请求的是B接口&#xff0c;拿到的是B接口返回的数据。 入口Tools->Map Remote 本次测试过程中…

第三节:在WORD为应用主窗口下关闭EXCEL的操作(2)

【分享成果&#xff0c;随喜正能量】凡事好坏&#xff0c;多半自作自受&#xff0c;既不是神为我们安排&#xff0c;也不是天意偏私袒护。业力之前&#xff0c;机会均等&#xff0c;毫无特殊例外&#xff1b;好坏与否&#xff0c;端看自己是否能应机把握&#xff0c;随缘得度。…

Trinitycore学习之在vscode查看远端服务器上源码配置

1&#xff1a;安装vscode&#xff0c;去官网下载&#xff0c;这里下载windows版本安装包 .zip https://code.visualstudio.com/Download 2&#xff1a;安装后&#xff0c;安装扩展chinese&#xff0c;使用中文设置&#xff0c;需要重启vscode。 3&#xff1a;安装ssh相关插件…

Springmvc之JSR303和拦截器

JSR303拦截器 1.JSR303 什么是JSR303 JSR是Java Specification Requests的缩写&#xff0c;意思是Java 规范提案。是指向JCP(Java Community Process)提出新增一个标准化技术规范的正式请求。任何人都可以提交JSR&#xff0c;以向Java平台增添新的API和服务。JSR已成为Java界的…

06目标检测-One-stage的目标检测算法

一、 One-stage目标检测算法 使用CNN卷积特征直接回归物体的类别概率和位置坐标值&#xff08;无region proposal&#xff09;准确度低&#xff0c;速度相对two-stage快 二、One-stage基本流程 输入图片------对图片进行深度特征的提取&#xff08;主干神经网络&#…

苹果数据恢复软件:Omni Recover Mac

Omni Recover是一款十分实用的Mac数据恢复软件&#xff0c;为用户提供了简单、安全、快速和高效的数据恢复服务。如果您遇到了Mac或iOS设备中的数据丢失和误删情况&#xff0c;不要着急&#xff0c;不妨尝试一下Omni Recover&#xff0c;相信它一定会给您带来惊喜。 首先&…

CSS选择器

基本选择器 通配选择器 可以选中所有的HTML元素&#xff0c;清除样式时可以使用 * {color: orange;font-size: 40px; }元素选择器 为元素统一设置样式&#xff0c;故无法实现差异化设置 /* 为所有h1元素添加样式 */ h1 {color: red;font-size: 60px; }/* 为所有p元素添加样…

【C++ • STL • 力扣】详解string相关OJ

文章目录 1、仅仅翻转字母2、字符串中的第一个唯一字符3、字符串里最后一个单词的长度4、验证一个字符串是否是回文5、字符串相加总结 ヾ(๑╹◡╹)&#xff89;" 人总要为过去的懒惰而付出代价 ヾ(๑╹◡╹)&#xff89;" 1、仅仅翻转字母 力扣链接 代码1展示&…

ENVI_IDL: 基础语法详解

01 题目 02 代码说明 题目本身很简单&#xff0c;但是我自己加了一些东西进去增加难度。主要包括print函数的封装、格式化字符串&#xff0c;但是不影响代码的阅读。&#xff08;注&#xff1a;对于没有语言基础的人而言相对阅读困难&#xff0c;但是由于IDL是解释型语言&…

antd react 文件上传只允许上传一个文件且上传后隐藏上传按钮

antd react 文件上传只允许上传一个文件且上传后隐藏上传按钮 效果图代码解析 效果图 代码解析 import { Form, Upload, message } from antd; import { PlusOutlined } from ant-design/icons; import { useState, useEffect } from react; import { BASE_URL } from /utils/…

网络爬虫-----初识爬虫

目录 1. 什么是爬虫&#xff1f; 1.1 初识网络爬虫 1.1.1 百度新闻案例说明 1.1.2 网站排名&#xff08;访问权重pv&#xff09; 2. 爬虫的领域&#xff08;为什么学习爬虫 ?&#xff09; 2.1 数据的来源 2.2 爬虫等于黑客吗&#xff1f; 2.3 大数据和爬虫又有啥关系&…

stm32---基本定时器(TIM6,TIM7)

STM32F1的定时器非常多&#xff0c;由两个基本定时器&#xff08;TIM6&#xff0c;TIM7&#xff09;、4个通用定时器&#xff08;TIM2-TIM5&#xff09;和两个高级定时器&#xff08;TIM&#xff11;&#xff0c;TIM&#xff18;&#xff09;组成。基本定时器的功能最为简单&am…

〔022〕Stable Diffusion 之 生成视频 篇

✨ 目录 &#x1f388; 视频转换 / mov2mov&#x1f388; 视频转换前奏准备&#x1f388; 视频转换 mov2mov 使用&#x1f388; 视频转换 mov2mov 效果预览&#x1f388; 视频无限缩放 / Infinite Zoom&#x1f388; 视频无限缩放 Infinite Zoom 使用 &#x1f388; 视频转换 /…

ITIL 4—创建、交付和支持—设定工作优先级和管理供应商

5. 设定工作优先级和管理供应商 5.1 为什么我们要对工作优先级排序? 只要工作需求超出了在预期时间内能完成的产能&#xff0c;就会出现排队的情况。在理想情况下&#xff0c;组织的需求没有任何变化&#xff0c;并且拥有满足需求所需的适当质量和数量的资源。但现实里&…

Tomcat多实例部署和动静分离

一、多实例部署&#xff1a; 多实例&#xff1a;多实例就是在一台服务器上同时开启多个不同的服务端口&#xff0c;同时运行多个服务进程&#xff0c;这些服务进程通过不同的socket监听不同的服务端口来提供服务。 1.前期准备&#xff1a; 1.关闭防火墙&#xff1a;systemctl …

Multi Query Attention Group Query Attention

Multi Query Attention(MQA)在2019年就被提出来了&#xff0c;用于推理加速&#xff0c;但在当时并没有受到很多关注&#xff0c;毕竟一张2080就能跑Bert-base了。随着LLM的大火&#xff0c;MQA所带来的收益得以放大。 思路 Multi Query Attention(MQA)跟Multi Head Attention…