探索AI中的单样本学习。了解如何使用Ultralytics YOLO26和孪生网络从单张图像中对目标进行分类,实现高效计算机视觉。
一次性学习是机器学习 (ML)中一种专门的分类技术,旨在从单个训练示例中学习物体类别信息。与需要包含数千张标注图像的大规模数据集才能有效泛化的传统深度学习 (DL)算法不同,一次性学习模仿了人类即时掌握新概念的认知能力。例如,一个人通常在只见过一次后就能识别出一种特定的异国鸟类;这种方法试图在人工智能 (AI)系统中复制这种效率。它在数据标注成本高昂、数据稀缺或需要动态添加新类别而无需重新训练整个模型的情况下尤其有价值。
一次性学习的核心原则是将目标从标准分类转向相似性评估。模型不再训练神经网络 (NN)以输出特定的类别标签(例如“狗”或“猫”),而是学习一个距离函数。为此采用的一种常见架构是孪生神经网络,它由两个共享相同模型权重的相同子网络组成。
在操作过程中,网络执行特征提取,将输入图像转换为紧凑的数值向量,称为嵌入。系统随后将新查询图像的嵌入与单个参考“样本”的嵌入进行比较。如果数学距离——通常使用欧氏距离或余弦相似度计算——低于某个阈值,则认为这些图像属于同一类别。这使得模型能够根据它们在学习到的特征空间中的接近程度来验证身份或classify物体。
以下python代码演示了如何使用
YOLO26 的分类模型
ultralytics 包装
import numpy as np
from ultralytics import YOLO
# Load a pre-trained YOLO26 classification model for feature extraction
model = YOLO("yolo26n-cls.pt")
# Extract embeddings for a reference 'shot' and a query image
# The embed() method returns the feature vector directly
shot_vec = model.embed("reference_img.jpg")[0]
query_vec = model.embed("query_img.jpg")[0]
# Calculate similarity (higher dot product implies greater similarity)
similarity = np.dot(shot_vec, query_vec) / (np.linalg.norm(shot_vec) * np.linalg.norm(query_vec))
print(f"Similarity Score: {similarity:.4f}")
区分单样本学习与其他数据高效学习技术至关重要,因为它们通过不同的约束条件解决相似问题:
单次学习技术在某些领域开辟了新可能,这些领域原本难以收集海量训练数据。
单样本学习最普遍的应用在于生物识别安全领域。在智能手机上设置面容ID或注册员工门禁系统时,设备会捕获用户面部的单一数学表示。日常使用中,人脸识别系统会将实时摄像头画面与这个存储的“单样本”进行比对,以验证身份。这依赖于强大的嵌入技术,例如在基础性FaceNet研究中讨论的技术,以确保光照或角度变化不会破坏相似性匹配。
在AI在制造业中的应用中,创建平衡的“缺陷”部件数据集十分困难,因为缺陷稀有且不一致。单样本学习允许计算机视觉 (CV)系统学习单个“完美”参考部件的表示。装配线上任何产生与此参考显著偏离的嵌入的物品都会被标记为异常检测对象。这使得无需数千张损坏部件图像即可实现即时质量保证,并且可以通过Ultralytics平台进行管理和部署。
尽管功能强大,单样本学习易受噪声影响;如果单一参考图像模糊、受阻或不具代表性,模型识别该类别的能力会显著下降。研究人员常采用元学习(即“学会学习”)来提高模型的稳定性和泛化能力。随着架构的演进,YOLO26等新型模型正在集成更鲁棒的特征提取器,使单样本推理更快、更准确,为更具适应性和智能的边缘AI设备铺平道路。

开启您的机器学习未来之旅