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

Object Re-identification (Re-ID)

目标重识别 (Re-ID) 通过比较外观嵌入,在不同摄像头、时间间隔和遮挡条件下再次识别同一个人或车辆。

对象再识别 (Re-ID) 是一项计算机视觉任务,旨在对象重新出现时再次识别出同一对象,无论它是在另一台摄像头中出现、经过一段时间后出现,还是曾被遮挡。目标检测会报告图像中有一个人,而 Re-ID 会判断这个人是否就是十分钟前经过入口摄像头的那个人。它通过比较外观特征来实现,例如衣服颜色、体型、携带的包,或车辆颜色和车顶细节,因此 Re-ID 是在没有视野重叠的摄像头网络中关联不同视角下目标的主要工具。行人 Re-ID 和车辆 Re-ID是研究最多的两种形式。

再识别如何运作#

Re-ID 系统会将每个检测到的对象转换为一个紧凑的外观描述符,并比较这些描述符:

  1. 检测并裁剪:检测器会找到每个人或车辆,然后裁剪并调整其边界框内的图像尺寸。
  2. 编码为嵌入向量:卷积神经网络或视觉 Transformer 会将裁剪图像映射为包含数百至数千个数字的向量,用于概括对象的外观。
  3. 通过余弦相似度进行匹配:查询嵌入向量会与图库中存储的嵌入向量进行打分比较,图库则按相似度从高到低排序;有些系统会改用欧氏距离。

随后,系统会根据最高分是否达到阈值,判断查询对象是已知身份还是新身份:

编码器通过度量学习进行训练,使同一身份的嵌入向量聚集在一起、不同身份的嵌入向量彼此远离。一种常见方案会结合身份分类损失和三元组损失:后者会拉近锚点图像与同一身份的另一张图像,并推远它与不同身份图像之间的距离,同时使用困难负样本挖掘专注于外观相似的对象。难点在于保持不变性:同一个人从不同视角、不同光照和分辨率下出现,或被部分遮挡时,都必须映射到彼此接近的嵌入向量。

Re-ID 与跟踪和人脸识别#

Re-ID 常与两个相近的任务混淆:

  • 目标跟踪:通过预测对象运动来跟踪单个视频中的对象,通常使用卡尔曼滤波器,并根据帧间的重叠度匹配边界框。它依赖时间上的连续性;当对象长时间被遮挡或离开视野时,连续性就会中断,而 Re-ID 恰好能在这些情况下恢复身份。
  • 人脸识别:根据多年保持稳定的人脸特征识别一个人,因此需要能看到人脸。行人 Re-ID 即使在人物背对镜头或图像分辨率较低时也能工作;由于它主要依赖衣着信息,通常只在数小时或一天的时间范围内有效。

多目标跟踪器中的 Re-ID#

自 2017 年出现 DeepSORT以来,许多多目标跟踪 (MOT)跟踪器都融合了 Re-ID 嵌入向量与运动线索,因此两个人交错而过时仍能保留各自的 ID,而躲到柱子后面的人再次出现时也能找回原来的 ID。在 Ultralytics YOLO 的跟踪模式中,BoT-SORT、Deep OC-SORT 和 TrackTrack 跟踪器支持 with_reid: True,并能加载 YOLO26 Re-ID 编码器,编码器可从 yolo26n-reid.onnx 到 yolo26x-reid.onnx,首次使用时会自动下载:

from ultralytics import YOLO
from ultralytics.utils import YAML
from ultralytics.utils.checks import check_yaml

# Copy the default TrackTrack settings and enable Re-ID with a YOLO26 appearance encoder
cfg = YAML.load(check_yaml("tracktrack.yaml"))
cfg.update(with_reid=True, model="yolo26n-reid.onnx")
YAML.save("tracktrack_reid.yaml", cfg)

# Track people (class 0); appearance embeddings help restore IDs after occlusions
model = YOLO("yolo26n.pt")
source = "https://github.com/ultralytics/assets/releases/download/v0.0.0/decelera_portrait_min.mov"
identities = set()
for result in model.track(source, tracker="tracktrack_reid.yaml", classes=[0], stream=True):
    if result.boxes.is_track:
        identities.update(result.boxes.id.int().tolist())

print(f"Person identities assigned: {len(identities)}")

跟踪器在遮挡后恢复的每个 ID,都能让打印出的计数更接近视频中的真实人数。

实际应用#

  • 零售分析:关联顾客在不同过道摄像头中的出现记录,可生成匿名的全店行程、停留时间和转化漏斗。
  • 交通管理:车辆 Re-ID 会关联同一辆车在不同路口的出现记录,以测量行驶时间和起讫点流量,即使车牌无法辨认也能做到。
  • 体育:球员 Re-ID 会在球员离开直播画面或挤成一团时,继续保持身份标记一致。
  • 野生动物研究:动物 Re-ID 会根据相机陷阱和无人机图像中的皮毛纹路与鳍部标记,识别每一只斑马、鲸鱼或大型猫科动物。

基准测试与指标#

Re-ID 被视为检索问题来评估。Rank-1 准确率表示排名第一的图库图像身份正确的查询所占比例;平均精度均值 (mAP)则衡量整个图库中的所有正确匹配排序效果。经典的行人 Re-ID 基准 Market-1501 包含由大学校园内 6 台摄像头拍摄的 1,501 人的 32,668 个边界框。

探索解决方案

体育领域的计算机视觉

体育领域的计算机视觉

了解 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 的未来!

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