小样本(少样本)目标检测概述(few-shot object detection)_小样本目标检测_ctrl A_ctrl C_ctrl V的博客-程序员秘密

技术标签: 机器学习  图像处理  目标检测  深度学习  人工智能  

一、小样本目标检测 vs 少样本目标检测

首先必须要分辨这两个概念。如果光看名字,我们可能会单纯的认为小样本就是代检测目标区域比较小,难以检测;少样本就是训练样本数量较少,难以训练。

上面的理解其实是错的。看网上大部分的文章、博客、论文,小样本和少样本是等价的。所谓小样本并非是目标较小,而是训练数据较少。

看英文名字就会更加直白,小样本/少样本目标检测一般翻译为 few-shot object detection,显然 few-shot 指的是数量少。同理还有 one-shot 、zero-shot 都是指样本数量,而一般目标区域较小会用 dense-detection或small 来表达。

二、小样本目标检测简介

小样本分类问题一般被定义为 C-way K-shot 问题,即有 C 种类别的数据且每类仅包含 K个已标记的样本。

小样本目标检测 FSOD(few-shot object detection),是解决训练样本少的情况下的目标检测问题。

众所周知,人类可以仅从一个动物实例中就推广到该动物其它实例,现有深度学习方法,多数仍以数据驱动,即需要成千上万的类别实例训练,使得模型能够“认识”类别的新实例。因此few shot learning ,只从少数实例训练,使得模型即可认识新实例,成为目前的一个研究热点。

通过应用较少的标注数据的半监督方法或者利用不完全匹配的标注数据的弱监督方法,利用极少的标注数据学习具有一定泛化能力的模型显得较为重要,这是小样本学习的所需要解决的问题。

小样本目标检测可以分为以下几种情况:

(1)类别数确定:给定一个现有的目标检测器,该检测器已经在某些类别的大量数据(称为基本类别)上进行了训练。我们希望仅加入少量新的类别和训练集(例如每个类别1-30个),就能够检测新类别,同时保持检测原始基本类别的性能。

(2)类别数确定:用小样本从头开始训练一个目标检测器,没有大量数据可以用于预训练。

(3)类别数不确定:在模型训练后对新的类别进行分类。这要求训练集、验证集和测试集来自于不同类别的数据集。

小样本图像目标检测是传统目标检测技术与小样本学习技术的融合。主流方法是使用一些trick对一般的目标检测网络进行修改,包括但不限于预训练–微调、数据增强、网络修改、样本匹配策略、损失函数修改等。

三、小样本目标检测的方法

这部分内容来源于论文《 张振伟,郝建国,黄健,潘崇煜.小样本图像目标检测研究综述[J].计算机工程与应用,2022,58(05):1-11. 》,知网可以下载这篇论文。

小样本目标检测方法主要基于传统的经典成熟的目标检测方法,借鉴小样本学习框架,构建针对目标检测的小样本解决方案。现有的方法主要可以分为六种:

(1)基于度量学习(metric learning)的方法
(2)基于数据增强的方法
(3)基于模型结构的方法
(4)基于微调(fine-tune)的方法
(5)基于元学习的方法
(6)基于集成的方法

不同方法的对比如下:
在这里插入图片描述
各种方法的具体介绍可以参看这篇论文。

关于元学习的介绍可见 一文入门元学习(Meta-Learning)(附代码) 现有的大多数小样本目标检测方法使用元学习的思想。首先从大量的基类数据中学习通用元特征,然后从少量的支持样本中生成特征映射,对新类的特征图进行重新加权,得到最终的检测结果。

四、小样本目标检测现有的问题

1、依赖于传统的目标检测领域中经典成熟的方法,但是后续的推理速度缓慢,不能满足实时性需求。

2、现有的方法泛化性能差强人意,随小样本类别增加,效果下降明显

五、参考资料

小样本目标检测研究现状

CVPR小样本检测:蒸馏&上下文助力小样本检测(代码已开源)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_43799400/article/details/123992543

智能推荐

基于薄板样条插值图像配准的Matlab实现_summitgao的博客-程序员秘密

薄板样条(Thin Plate Spline)映射根据两幅相关图像中的对应控制点集来决定一个变形函数。它寻找通过所有给定点的饶度最小的光滑曲面。“薄板”这个名字的由来,就表示薄板样条是用来近似的仿真一块金属薄片在通过相同的控制点时的行为特征。

k8s学习 - API_轩脉刃的博客-程序员秘密

k8s学习 - API之前对k8s并没有很深入的了解,最近想把手头一个项目全部放到k8s上,以方便部署,需要研究。这里记录一下自己研究过程中头脑中的理解。k8s 和 do...

程序员每天工作摸鱼俩小时,月薪35K?_区块链大本营的博客-程序员秘密

职场上有很多奇奇怪怪的事。比如说有人爆肝996,工资却还养不活自己。有人每天工作摸鱼,但是却月薪数万。前端时间,小编在某职场社交平台上看到这么一则帖子#程序员摸鱼2小时月入35k#仔细看下...

淘宝天天特价返回值说明_电商数据girl的博客-程序员秘密

请求地址: https://api-gw.……n/taobao/item_search_jupage。参数说明:start_price:1,end_price:990 = 9.9包邮。请求参数:start_price=1&end_price=990&page=1。(bid:总价,bid2:商品价格,sale:销量,credit信用,加。start_price:1,end_price:2990 = 29.9包邮。API:item_get 参数说明: num_iid:宝贝ID。

【机器学习实战系列】读书笔记之AdaBoost算法公式推导和例子讲解(一)_会飞的小罐子的博客-程序员秘密

最近在看集成算法AdaBoost,推荐先看李航的统计学习方法第8章,然后再看机器学习实战第7章,李航的书上的公式推导讲的很详细了,但是很多地方对于初学者来说,还是需要时间去理解和消化的。本文将从以下几个方面来介绍AdaBoost算法。一、AdaBoost算法公式推导二、AdaBoost相关例子讲解三、AdaBoost的toy algorithm的python实现四、启发和思考“为什么”,“如何做”...

FMSoft uniGUI Professional v1.90.0.1555_fmsoft_unigui_john_dwh的博客-程序员秘密

uniGUI Web Application Framework extends Web application development experience to a new dimension. uniGUI enables Delphi developers to create, design and debug web applications in IDE using a unique set of visual components. Each component is designed to

随便推点

java List报错Method threw ‘java.lang.UnsupportedOperationException‘ exception. 解决_chenthe1的博客-程序员秘密

当然,如果你觉得文章有什么让你觉得不合理、或者有更简单的实现方法又或者有理解不来的地方,希望你在看到之后能够在评论里指出来,我会在看到之后尽快的回复你。Arrays.asList()返回的 List 与 new ArrayList() 不是一个类型,缺少泛型结构;new ArrayList()底层是重写了 Arrays.asList();List使用Arrays.asList()初始化后,再add对象时报错。因此,集合的方法在 Arrays.asList() 里是没有的。

PostgreSQL问题解决--- integer out of range_asin929的博客-程序员秘密

问题描述PostgreSQL中,输入以下sql语句查询时,报错ERROR: integer out of range。参见postgresql数值类型,integer数据类型的最大值为2147483647,即2*1024*1024*1024。很明显,我们输入的整数溢出了。select 10*1024*1024*1024;问题解决stackoverflow针对此问题的解决办法是修改列的类型为bigin

.Net Core 过滤器详解之 ———— 行为结果过滤器IActionFilter_.net 过滤器_孟章豪的博客-程序员秘密

.Net Core 过滤器详解.Net MVC 常用的4种过滤器:  Action过滤器(IActionFilter):行为过滤器  Result过滤器(IResultFilter):结果过滤器  Exception过滤器(IExceptionFilter):异常过滤器  Authorization过滤器(IAuthorizationFilter): 权限效验过滤器  Action过滤器:在Action执行之前和执行之后调用。  Result过滤器:在结果之前和之后调用。  Excepti

Seurat包里面的Read10X_h5函数介绍_Young.Dr的博客-程序员秘密

本人做肺纤维化研究,近期在Science Advance 上连续发了两篇单细胞文章,所以计划根据单细胞天地胶质瘤的单细胞CNS复现系列推文,复现一下。本文使用的是题目为Senescence of Alveolar Type 2 Cells Drives Progressive Pulmonary Fibrosis.发表在Am J Respir Crit Care Med (IF17.4)2020 Sep 29. PMID: 32991815的文章,对应的GEO数据GSE146981(17个对照和11个肺

Error creating bean with name 'userService' defined in file [D:\eclipse-jee-neon-3-win32-x86_64\jav_qq_36472439的博客-程序员秘密

错误原因Cannot proxy target class because CGLIB2 is not available. Add CGLIB to the class path or specify proxy interfaces.Spring AOP底层自动的使用JDK的动态代理或者CGLIB代理1:当对象有接口时,使用JDK动态代理2:当对象没有接口时使用CGLIB代理...

Spotless 代码格式化的配置和使用_江无羡的博客-程序员秘密

Spotless 是一个代码格式化工具。它支持的开发语言有java, kotlin, scala, sql, javascript, css, json, yaml, etc; 它不仅能按照指定的规则去检测我们的代码指示出不合规的地方, 同时可以按照规则修复代码; 且发布了现成的maven|gradle plugin, 这里我们对gradle-plugin进行使用演示SpotlessChe...

推荐文章

热门文章

相关标签