Object Re-identification (Re-ID)
目标重识别 (Re-ID) 通过比较外观嵌入,在不同摄像头、时间间隔和遮挡条件下再次识别同一个人或车辆。
对象再识别 (Re-ID) 是一项计算机视觉任务,旨在对象重新出现时再次识别出同一对象,无论它是在另一台摄像头中出现、经过一段时间后出现,还是曾被遮挡。目标检测会报告图像中有一个人,而 Re-ID 会判断这个人是否就是十分钟前经过入口摄像头的那个人。它通过比较外观特征来实现,例如衣服颜色、体型、携带的包,或车辆颜色和车顶细节,因此 Re-ID 是在没有视野重叠的摄像头网络中关联不同视角下目标的主要工具。行人 Re-ID 和车辆 Re-ID是研究最多的两种形式。
再识别如何运作#
Re-ID 系统会将每个检测到的对象转换为一个紧凑的外观描述符,并比较这些描述符:
- 检测并裁剪:检测器会找到每个人或车辆,然后裁剪并调整其边界框内的图像尺寸。
- 编码为嵌入向量:卷积神经网络或视觉 Transformer 会将裁剪图像映射为包含数百至数千个数字的向量,用于概括对象的外观。
- 通过余弦相似度进行匹配:查询嵌入向量会与图库中存储的嵌入向量进行打分比较,图库则按相似度从高到低排序;有些系统会改用欧氏距离。
随后,系统会根据最高分是否达到阈值,判断查询对象是已知身份还是新身份:
编码器通过度量学习进行训练,使同一身份的嵌入向量聚集在一起、不同身份的嵌入向量彼此远离。一种常见方案会结合身份分类损失和三元组损失:后者会拉近锚点图像与同一身份的另一张图像,并推远它与不同身份图像之间的距离,同时使用困难负样本挖掘专注于外观相似的对象。难点在于保持不变性:同一个人从不同视角、不同光照和分辨率下出现,或被部分遮挡时,都必须映射到彼此接近的嵌入向量。
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 个边界框。










