深圳Yolo 视觉
深圳
立即加入
词汇表

对象再识别(Re-ID)

了解目标重识别 (Re-ID) 如何跨摄像头视图匹配身份。探索如何使用 Ultralytics YOLO26 和 BoT-SORT 进行鲁棒的视觉 track。

目标重识别 (Re-ID) 是计算机视觉 (CV)中的一项专门任务,旨在跨不同非重叠摄像头视图或在长时间内匹配特定物体或个体。虽然标准的目标检测侧重于识别实体的类别——识别图像中包含“人”或“汽车”——Re-ID 更进一步,通过视觉外观确定哪个特定的人或汽车。这种能力对于在单个摄像头无法覆盖整个区域的大规模环境中创建连贯的运动叙事至关重要,有效地连接了孤立视觉观测之间的点。

再识别(Re-ID)的工作原理

Re-ID的核心挑战在于,尽管光照、摄像机角度、姿势估计和背景杂波存在变化,仍需保持身份一致性。为实现这一目标,系统通常采用涉及深度神经网络的多步骤流程。

  • 特征提取:一旦检测到对象,卷积神经网络 (CNN)会分析图像裁剪区域以生成特征向量,通常称为嵌入。该向量是对象独特视觉特征(如服装纹理或车辆颜色)的密集数值表示。
  • 度量学习:底层模型采用度量学习技术进行训练。目标是确保同一对象的嵌入在向量空间中数学上彼此接近,而不同对象的嵌入则被推开。像Siamese神经网络这样的专门架构常用于学习这些关系。
  • 相似度匹配: 在部署过程中,系统会将查询对象的嵌入与存储身份库进行比较。这种比较通常涉及计算 余弦相似度欧氏距离。如果相似度分数超过预设阈值,系统则确认匹配。

重新识别与目标跟踪

将Re-ID与object track区分开来很重要,因为它们在视觉管道中扮演着互补但不同的角色。

  • 目标 track: 此过程依赖于时间连续性。像 卡尔曼滤波器 这样的算法根据对象的当前速度和轨迹,预测其在下一帧中的未来位置。它通常使用 交并比 (IoU) 来关联相邻帧中的 detect。
  • 再识别: 当时间连续性中断时,Re-ID 至关重要。这发生在遮挡期间——当一个物体被障碍物遮挡时——或者当一个物体离开一个摄像机的视野进入另一个摄像机视野时。Re-ID 基于外观而非位置历史重新建立身份,从而实现稳健的 多目标 track (MOT)

实际应用

在不连续视图中保持身份的能力使得在各个行业中进行复杂分析成为可能。

  • 智慧城市交通管理:智慧城市中的AI背景下,Re-ID技术使市政系统能够在车辆穿行城市范围内的交叉路口网络时对其进行跟踪。这有助于计算平均行程时间并优化交通信号灯配时,而无需完全依赖车牌识别
  • 零售客户分析:零售商利用Re-ID来理解顾客行为。通过关联顾客在不同货架区域的出现情况,商店可以生成热门路径的热力图。这有助于优化商店布局和人员配置水平,从而提供对整个顾客旅程的洞察,而不仅仅是孤立的互动。

使用Re-ID特征实现跟踪

现代视觉AI工作流程通常将高性能detect器与利用Re-ID概念的track器相结合。YOLO26模型可以与BoT-SORT等track器无缝集成,该track器利用外观特征来保持track一致性。对于希望高效管理其数据集和训练管道的用户,Ultralytics Platform提供统一的标注和部署界面。

以下示例演示了如何使用Ultralytics python包执行目标跟踪,该包可自动管理身份持久性:

from ultralytics import YOLO

# Load the latest YOLO26 model
model = YOLO("yolo26n.pt")

# Track objects in a video file
# The 'persist=True' argument is vital for maintaining IDs across frames
# BoT-SORT is a tracker that can utilize appearance features for Re-ID
results = model.track(
    source="https://www.ultralytics.com/blog/ultralytics-yolov8-for-speed-estimation-in-computer-vision-projects",
    tracker="botsort.yaml",
    persist=True,
)

# Print the unique ID assigned to the first detected object in the first frame
if results[0].boxes.id is not None:
    print(f"Tracked Object ID: {results[0].boxes.id[0].item()}")

为了获得稳健的性能,训练这些模型需要高质量的训练数据。在训练特定的Re-ID子模块时,常采用三元组损失(triplet loss)等技术来提高嵌入的判别能力。了解精确率和召回率(precision and recall)的细微差别,对于评估Re-ID系统如何有效避免错误匹配也至关重要。

让我们一起共建AI的未来!

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