小样本目标检测(Few-Shot Object Detection)综述

背景

  1. 前言:我的未来研究方向就是这个,所以会更新一系列的文章,就关于FSOD,如果有相同研究方向的同学欢迎沟通交流,我目前研一,希望能在研一发文,目前也有一些想法,但是具体能不能实现还要在做的过程中慢慢评估和实现.写文的主要目的还是记录,避免重复劳动,我想用尽量简洁的语言把问题的关键描述出来,这样在我需要复习的时候也能快速回忆工作

小样本目标检测 - Few-Shot Object Detection - FSOD

  1. 小样本目标检测,英文名Few-Shot Object Detection,简称FSOD,论文里面一般都这么写,只有标题会规规矩矩的写全称,其他时候一般都是简写
  2. 注意:在搜索小样本目标检测时候,往往会给到一些关于小目标目标检测的文章,这两就不是一回事,小样本目标检测的小样本不是值样本的size小,而是指样本数量少;小目标目标检测才是真正意义上的目标size小,要精准的对目标进行分类和定位,感兴趣的搜一搜,我看到一篇基于yolo做的小目标目标检测,写的挺好的.
  3. 长尾效应:小样本目标检测的来由 - 数据的分布具有长尾效应,少部分类别大量的数据,而很多类别只有少量数据,如何正确的对这些数据做目标检测就是小样本要考虑的问题.
  4. 目前研究方向:小样本目标检测,未来可能的研究方向:开放世界的目标检测、增量小样本目标检测、广义小样本目标检测 - 总结就是希望以后能实时监测动态的不断出现的新类同时保留对基类的检测能力(基类就是有大量样本的类,新类就是样本数量少的亟待预测的类)

FSOD的两种学习策略

  1. 基于任务驱动的episode策略:基于元学习的方法、基于度量学习的方法
  2. 基于数据驱动的策略:基于迁移学习的方法,基于数据增强的方法在这里插入图片描述
  3. 基于任务驱动的episode指的是小样本任务分成N-way K-shot的任务(N个类,每个类K个样本),任务包含支持集和查询集,代表就是元学习(分为元训练阶段和元测试阶段),希望能够在元训练阶段学得一组泛化能力极强的参数,最终快速适应至新的元测试阶段,掌握学会学习的能力 - 后面会纤细介绍到元学习 - 目前FSOD的主流学习方法之一
  4. 基于数据驱动的学习方法:代表就是迁移学习,通过大量的数据训练好一个模型,然后在回归和分类的层进行微调,使得模型适应新类的检测

FSOD四种学习策略

元学习

  1. 基础方法:两段检测模型Fast RCNN - 通过候选区域生成网络(Region Proposal Network, RPN)生成感兴趣区域边界框(Region of Interests, RoIs),判断是前景还是背景,然后采用RoI池化将大小不同的感兴趣区域边界框处理为相同大小,最后将获得的RoIs进行边界框的分类和回归.
  2. 元训练:模型在一系列不同的任务上进行训练,这些任务被称为元任务。在元训练过程中,模型不是为了在单个任务上表现最佳,而是为了学习一种策略或知识,使其能够在遇到新任务时快速适应。这通常涉及到优化模型的参数,使其能够在新任务上仅通过少量的训练样本进行有效的学习。
  3. 元测试:元测试是元学习过程的评估阶段,模型在这个阶段被测试在新的、未见过的任务上的性能。这些新任务被设计为与元训练阶段中的任务相似,但不完全相同,以此来评估模型的泛化能力和快速适应新任务的能力。元测试的结果可以提供关于模型在实际应用中遇到新问题时可能表现如何的重要信息。

迁移学习

  1. 这个比较好理解 - 在大量数据上训练出一个模型,然后微调分类层和输出层.比如用yolo冻住前面的层然后微调后面的层即可.感觉新手入门用这个比较好,我也是这么打算的

数据增强

  1. 小样本问题就在于样本数量少,通过数据增强的方式扩充数据量,提升模型预测性能

度量学习

  1. 这个是我比较感兴趣的,和transformer有共同知识,可以一起学,把图像映射到嵌入空间,然后根据在嵌入空间的距离判断类别.

总结

  1. 写到这显得优点虎头蛇尾,但是想要毕其功于一役是不太现实的,那这篇文章就聚焦于简单的介绍一下小样本目标检测的四种方法吧,后面随着学习的深入进行肯定会展开细说的,感觉没写什么就快2000字了,写不动了就先这样吧,后面在学习的过程中慢慢展开
  2. 读完之后只要知道,FSOD - 元学习、迁移学习、数据增强、度量学习就ok,根据自己的方向再去衍生
  3. 新手上路,欢迎交流讨论
  4. 这个事情一定要坚持写下去,半途而废好多专题,回想起来挺后悔的

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MATLAB的编程与应用,匿名函数、嵌套函数、蒙特卡洛法的掌握与使用

目录 1.匿名函数 1.1.匿名函数的定义与分类 1.2.匿名函数在积分和优化中应用 2.嵌套函数 2.1.嵌套函数的定义与分类 2.2.嵌套函数彼此调用关系 2.3.嵌套函数在积分和微分中应用 3.微分和积分 4.蒙特卡洛法 4.1.圆周率的模拟 4.2.计算N重积分(均匀分布&am…

计算机毕业设计 基于Springboot的影院购票管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…

【入门Flink】- 09Flink水位线Watermark

在窗口的处理过程中,基于数据的时间戳,自定义一个“逻辑时钟”。这个时钟的时间不会自动流逝;它的时间进展,就是靠着新到数据的时间戳来推动的。 什么是水位线 用来衡量事件时间进展的标记,就被称作“水位线”&#x…

AIGC ChatGPT 4 轻松实现小游戏开发制作

贪吃蛇的小游戏相信大家都玩儿过,我们让ChatGPT4来帮我们制作一个贪吃蛇的小游戏。 在ChatGPT中发送Prompt如下图: 完整代码如下: <!DOCTYPE html> <html> <head> <title>贪吃蛇游戏</title> <style type="text/css"> #can…

UPLAOD-LABS2

less7 任务 拿到一个shell服务器 提示 禁止上传所有可以解析的后缀 发现所有可以解析的后缀都被禁了 查看一下源代码 $is_upload false; $msg null; if (isset($_POST[submit])) {if (file_exists($UPLOAD_ADDR)) {$deny_ext array(".php",".php5&quo…

第一百六十九回 如何修改NavigationBar的形状

文章目录 1. 概念介绍2. 使用方法3. 代码与效果3.1 示例代码3.2 运行效果 4. 内容总结 我们在上一章回中介绍了"如何修改按钮的形状"相关的内容&#xff0c;本章回中将介绍NavigationBar组件.闲话休提&#xff0c;让我们一起Talk Flutter吧。 1. 概念介绍 我们在本章…

javaEE案例,前后端交互,计算机和用户登录

加法计算机,前端的代码如下 : 浏览器访问的效果如图 : 后端的代码如下 再在浏览器进行输入点击相加,就能获得结果 开发中程序报错,如何定位问题 1.先定位前端还是后端(通过日志分析) 1)前端 : F12 看控制台 2)后端 : 接口,控制台日志 举个例子: 如果出现了错误,我们就在后端…

WebSocket是什么以及其与HTTP的区别

新钛云服已累计为您分享774篇技术干货 HTTP协议 HTTP是单向的&#xff0c;客户端发送请求&#xff0c;服务器发送响应。举个例子&#xff0c;当用户向服务器发送请求时&#xff0c;该请求采用HTTP或HTTPS的形式&#xff0c;在接收到请求后&#xff0c;服务器将响应发送给客户端…

Linux技能篇-yum源搭建(本地源和公网源)

文章目录 前言一、yum源是什么&#xff1f;二、使用镜像搭建本地yum源1.搭建临时仓库第一步&#xff1a;挂载系统ios镜像到虚拟机第二步&#xff1a;在操作系统中挂载镜像第三步&#xff1a;修改yum源配置文件 2.搭建本地仓库第一步&#xff1a;搭建临时yum源来安装httpd并做文…

在Win11中使用docker安装Oracle19c

在Win11中使用docker安装Oracle19c 首先是去docker官网下 docker for windows安装oracle19c首先下载image运行镜像在工具中登录可能遇到的问题 首先是去docker官网下 docker for windows 官网&#xff1a; https://www.docker.com/get-started/ 如果Windows是专业版&#xff0…

【Git】Git使用Gui图形化界面,Git中SSH协议,Idea集成Git

一&#xff0c;Git使用Gui图形化界面 1.1 Gui的简介 Gui &#xff08;Graphical User Interface&#xff09;指的是图形用户界面&#xff0c;也就是指使用图形化方式来协同人和计算机进行交互的一类程序。它与传统的命令行界面相比&#xff0c;更加直观、易用&#xff0c;用户…

智慧城市数据中台建设方案:PPT全文51页,附下载

关键词&#xff1a;智慧城市解决方案&#xff0c;数据中台解决方案&#xff0c;智慧城市建设&#xff0c;数据中台技术架构&#xff0c;数据中台建设 一、智慧城市数据中台建设背景 智慧城市数据中台是在城市数字化转型和智能化升级的背景下提出的&#xff0c;旨在实现城市数…

ABAQUS分析步笔记

定义原则&#xff1a; 每个step的所有边界条件&#xff0c;载荷条件累加构成本step的仿真效果&#xff1b; step2需要在step1的状态基础上进行载荷运动等限定时&#xff0c;需要确保在step2中传递了step1的想要保留的特征&#xff0c;如&#xff1a; 1、BC-1 这里的BC-1的固…

积极应对云网络安全

以下是 IT 领导者需要了解的内容&#xff0c;才能在云网络安全方面占据上风。 如果您的组织尚未主动解决云网络安全问题&#xff0c;则将面临灾难的风险。等待攻击发生根本没有意义。 主动云安全会采取积极措施来发现潜在威胁并在网络攻击发生之前阻止网络攻击。 这是通过持…

java 继承和多态 (图文搭配,万字详解!!)

目录 1.继承 1.1 为什么需要继承 1.2 继承概念 1.3 继承的语法 1.4 父类成员访问 1.4.1 子类中访问父类的成员变量 1.4.2 子类中访问父类的成员方法 1.5 super关键字 1.6 子类构造方法 1.7 super和this 1.8 再谈初始化 1.9 protected 关键字 1.10 继承方式 1.11 f…

OpenCV C++ 图像处理实战 ——《多二维码识别》

OpenCV C++ 图像处理实战 ——《多二维码识别》 一、结果演示二、zxing库配置2.1下载编译三、多二维码识别3.1 Method one3.1.1 源码3.2 Method two3.2.1 源码四、源码测试图像下载总结一、结果演示 </

第 117 场 LeetCode 双周赛题解

A 给小朋友们分糖果 I 动态规划&#xff1a;设 p [ k ] [ i ] p[k][i] p[k][i] 为将 i i i 个糖果分给 k k k 个小朋友的方案数&#xff0c;先求 p [ 2 ] [ i ] p[2][i] p[2][i] &#xff0c;再求 p [ 3 ] [ n ] p[3][n] p[3][n] class Solution { public:using ll long …

基于Python+OpenCV+SVM车牌识别系统-车牌预处理系统

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介简介系统流程系统优势 二、功能三、系统四. 总结 一项目简介 ## PythonOpenCVSVM车牌识别系统介绍 简介 PythonOpenCVSVM车牌识别系统是一种基于计算机视…

【C++】this指针讲解超详细!!!

&#x1f490; &#x1f338; &#x1f337; &#x1f340; &#x1f339; &#x1f33b; &#x1f33a; &#x1f341; &#x1f343; &#x1f342; &#x1f33f; &#x1f344;&#x1f35d; &#x1f35b; &#x1f364; &#x1f4c3;个人主页 &#xff1a;阿然成长日记 …

postman接口自动化测试

Postman除了前面介绍的一些功能&#xff0c;还有其他一些小功能在日常接口测试或许用得上。今天&#xff0c;我们就来盘点一下&#xff0c;如下所示&#xff1a; 1.数据驱动 想要批量执行接口用例&#xff0c;我们一般会将对应的接口用例放在同一个Collection中&#xff0c;然…