Ultralytics YOLO27: 加入候补名单。
获取 YOLO 许可
返回 Ultralytics 术语表

Few-Shot Learning

小样本学习(FSL)通过度量学习、元学习、微调或提示词,仅凭少量带标签示例识别新类别。

少样本学习(FSL)是指只用每个类别的少量标注样本来学习新任务(通常是识别新类别),一般每个类别只有 1 到 10 个样本。标准的监督学习每个类别需要数百或数千张标注图像,而对于罕见缺陷、罕见疾病或昨天才上市的产品,这些数据往往难以收集,甚至根本无法收集。少样本方法利用已有知识弥补这一差距:在大量相关数据上预训练的模型已经能够生成有助于区分新类别的特征,因此只需少量样本就足以定义新类别。语言模型中也有同样的思路:在提示中加入几个示例,就能引导模型执行新任务,无需训练。

N 路 K 样本任务#

少样本问题通常用 N 路 K 样本来描述:有 N 个新类别,每个类别有 K 个标注样本。这些标注样本组成支持集,模型则根据它对同一 N 个类别中另一组查询样本的分类效果接受评估。因此,一个 5 路 1 样本任务会给模型提供五个从未见过的类别各自的一个样本,并要求它将新图像归入这些类别。单样本学习是 K = 1 的情况,零样本学习则是 K = 0,此时类别由文本或属性描述,而不是通过样本提供。研究基准会使用训练期间未出现过的类别进行评估,例如 Omniglot(包含来自 50 种字母表的 1,623 个手写字符)和 miniImageNet(包含 100 个 ImageNet 类别,每类 600 张图像)。

少样本学习方法#

度量学习方法会训练网络,将图像映射到嵌入向量空间,使同一类别的样本彼此靠近,因此查询样本会被赋予最相似支持样本的标签。原型网络会将每个类别支持集中的嵌入向量取平均,形成一个原型,再将查询样本分配给最近的原型;新类别出现时无需重新训练。

其他方法会调整模型权重或模型输入:

  • 元学习:使用基础类别中抽取的数千个小型模拟任务进行训练,让模型学会如何适应新任务。模型无关元学习(MAML)会学习一个初始化权重;在新任务的支持集上执行几步梯度更新,就能得到效果良好的权重。
  • 迁移与微调:先在大型数据集上预训练骨干网络,然后只训练新的分类头,或使用较小的学习率在支持集上训练整个网络。这个简单基线在标准小样本基准上足以与专用元学习方法竞争;对大型预训练模型进行线性探测仍是强有力的小样本基线。
  • 提示基础模型:大型语言模型可以根据提示中的少量示例执行新任务,无需更新权重;GPT-3 在二十多个语言基准测试中展示了这一能力。视觉模型也能以同样的方式使用视觉提示,例如示例边界框。

使用视觉提示进行少样本目标检测#

检测为少样本问题增加了定位要求:模型必须找到每个未经训练的类别实例。YOLO26 还为 YOLOE-26 提供支持。YOLOE-26 是一个开放词汇变体,其视觉提示编码器会将示例边界框转换为类别嵌入,然后无需训练,就能在新图像中检测和分割匹配的物体。具有相同类别 ID 的边界框会合并为一个提示,因此某个类别的两个示例就构成一个 2 样本支持集。本例将一张图像中的两个人作为支持集,并在另一张图像中查找相似对象:

import numpy as np
from ultralytics import YOLOE
from ultralytics.models.yolo.yoloe import YOLOEVPSegPredictor

# 支持视觉提示的 YOLOE-26 检查点
model = YOLOE("yoloe-26s-seg.pt")

# 支持集:参考图像中同一类别(人员)的两个示例框
boxes = np.array([[221.52, 405.8, 344.98, 857.54], [669.47, 392.19, 809.72, 877.04]])
support = {"bboxes": boxes, "cls": np.array([0, 0])}

# 查询:无需训练,在另一张图像中查找与示例相似的物体
results = model.predict(
    "https://ultralytics.com/images/zidane.jpg",
    refer_image="https://ultralytics.com/images/bus.jpg",
    visual_prompts=support,
    predictor=YOLOEVPSegPredictor,
)
result = results[0]
result.save(filename="few_shot_result.jpg")

视觉提示无需为示例命名就能将其分组,因此结果中的匹配项会标记为 object0、object1 等,每个类别 ID 对应一个名称。

实际应用#

  • 制造业检测:新类型的缺陷(例如新推出零件上的裂纹)在检验人员希望将其标记出来之前,可能只出现过几次;少样本检测或异常检测无需大量新数据集就能识别这类缺陷。
  • 医学影像:罕见疾病的标注扫描图像很少,因此医学图像分析模型会利用少量专家标注病例,让预训练特征适应新的发现。
  • 零售和机器人:商店不断上架新产品,机器人也不断遇到新物体;只需几张参考照片,系统就能识别货架上或夹爪中的每个物体。
  • 迁移学习:将一个任务中的知识用于另一个任务的广义做法。少样本学习是数据极少的特殊情况,而迁移学习是解决少样本问题最常用的工具。
  • 元学习:一种训练策略,即学习如何学习,也是解决少样本问题的多种方法之一。少样本学习描述的是问题本身的设定。
  • 少样本提示:在推理时通过输入中的示例来调整冻结模型,而少样本微调则使用同样少量的示例来更改模型权重。

探索解决方案

体育领域的计算机视觉

体育领域的计算机视觉

了解 Ultralytics YOLO 如何通过球员和球追踪、表现分析、教练洞察及运动员康复,推动体育视觉技术的发展。
了解详情
航空影像计算机视觉

航空影像计算机视觉

使用 Ultralytics YOLO 将无人机和航空影像转化为农业、水产养殖、保护工作和地理空间分析的实时洞察。
了解详情
航空航天中的计算机视觉

航空航天中的计算机视觉

使用 Ultralytics YOLO 将计算机视觉应用于航空航天领域,包括飞机检查、跑道 FOD 检测、机场地面作业和复合材料缺陷检测。
了解详情
安防领域的计算机视觉

安防领域的计算机视觉

使用 Ultralytics YOLO 模型守护每个场所。视觉 AI 可用于周界监控、威胁检测、车牌识别和工作场所安全。
了解详情
机器人领域的计算机视觉

机器人领域的计算机视觉

使用 Ultralytics YOLO 模型提升智能机器的能力。机器人领域的视觉 AI 可用于自主导航、感知、目标跟踪和实时控制。
了解详情
物流中的计算机视觉

物流中的计算机视觉

借助 Ultralytics YOLO 模型优化物流流程。视觉 AI 可用于包裹检查、分拣、车辆跟踪和仓库安全实时监控。
了解详情
零售中的计算机视觉

零售中的计算机视觉

借助 Ultralytics YOLO 模型重新构想零售。视觉 AI 可用于库存跟踪、货架监控、排队管理和更深入的客户洞察。
了解详情
医疗领域的计算机视觉

医疗领域的计算机视觉

借助 Ultralytics YOLO 模型构建医疗解决方案。医疗领域的视觉 AI 可加快医学影像处理、优化诊断并监测患者。
了解详情
制造业中的计算机视觉

制造业中的计算机视觉

利用 Ultralytics YOLO 模型优化制造流程。视觉 AI 可用于质量控制、缺陷检测、个人防护装备合规检查和装配线自动化。
了解详情
汽车领域的计算机视觉

汽车领域的计算机视觉

利用 Ultralytics YOLO 模型在汽车领域应用计算机视觉。视觉 AI 可提升道路安全、驾驶辅助和车辆自动化水平,让道路更智能。
了解详情
农业中的计算机视觉

农业中的计算机视觉

借助 Ultralytics YOLO 模型,将视觉 AI 引入智慧农业。为作物监测、牲畜追踪和精准农业提供支持,从而提高产量并实现更智能的生产。
了解详情

让我们携手构建 AI 的未来!

开启你的旅程,迎接机器学习的未来