获取 YOLO 许可
返回 Ultralytics 术语表

Identity Preservation

身份保持可确保特定人物或物体在生成的图像、视频帧和跟踪 ID 中始终能被识别为同一个体。

身份保持是指模型在其输出中持续将特定主体呈现为同一个体的能力:一组生成肖像中的同一张脸、生成视频从第一帧到最后一帧中的同一个角色,或行人走到巴士后面再出现时仍保持相同的跟踪 ID。两个领域都使用这个术语。在生成式 AI中,它指将真实人物或产品融入新场景而不改变其身份或特征的个性化方法。在多目标跟踪(MOT)中,它指在遮挡、交叉和摄像头切换期间保持每个物体的 ID 稳定。两个领域都会使用身份嵌入来衡量身份保持能力:同一个体的特征向量彼此接近,不同个体的特征向量彼此远离。

图像与视频生成中的身份保持#

文生图模型知道“一位女士”或“一只狗”是什么样子,却不知道某位特定女士或某只特定狗的样子,因此个性化方法会补充这方面的信息。微调方法通过少量照片学习主体特征。Google 的 DreamBooth(2022)会使用与稀有 token 绑定的主体三到五张图像,对整个扩散模型进行微调,并加入特定类别的先验保持损失,使模型仍能正常生成其他狗;LoRA 适配器则让相同思路的训练成本低到足以针对每个人进行训练。

基于编码器的方法无需针对每个主体单独训练。Tencent 的 IP-Adapter(2023)通过单独的交叉注意力层将图像嵌入输入扩散模型;InstantID(2024 年 1 月)则通过结合人脸识别网络生成的嵌入与 IdentityNet,从单张照片保持人脸身份。IdentityNet 是一个由五个人脸关键点提供条件的 ControlNet。更强的身份条件会让输出更像参考图,也会复制更多姿势、表情和光照特征,因此这些工具提供了强度设置,用于权衡相似度与提示改变场景的幅度。

生成的人脸通过参考照片和输出图像的 ArcFace 嵌入之间的余弦相似度进行评分。ArcFace 由 Jiankang Deng 及其同事在 CVPR 2019 上提出,它通过角度间隔训练人脸嵌入,使不同身份在超球面上清晰分离。视频还增加了第二项要求:在不同帧之间保持主体一致性;VBench 会比较帧间的 DINO 特征,并将其作为主体一致性指标。在视频生成中,如果角色的脸在几秒内逐渐变化,即使每一帧单独看起来都很逼真,也无法通过这项测试。

跟踪中的身份保持#

跟踪器通过将每帧中的检测结果与现有轨迹进行匹配来分配 ID。仅依靠运动信息——使用 Kalman 滤波器预测每个边界框的位置,再通过交并比(IoU)进行匹配——在两个人交叉或其中一人消失在障碍物后面之前都能正常工作;之后跟踪器就可能交换他们的 ID 或创建新的 ID,这种错误称为身份切换。外观特征可以修正其中许多问题。Nicolai Wojke、Alex Bewley 和 Dietrich Paulus 提出的 DeepSORT(2017)为仅依赖运动信息的 SORT 跟踪器加入了由人物重识别数据集训练的网络生成的嵌入,将身份切换减少了 45%。Ergys Ristani 及其同事于 2016 年提出的 IDF1 指标则直接衡量身份保持能力,即检测结果中被分配正确身份的比例。

Ultralytics YOLO 跟踪默认使用 TrackTrack(Shim 等人,CVPR 2025),它会让丢失的轨迹保持 30 帧 (track_buffer),以便重新出现的物体能够找回自己的 ID,并且会在创建新 ID 前抑制重复的新 ID。在跟踪器 YAML 中设置 with_reid: True 会启用外观匹配,默认使用检测器自身的特征,也可以选择专用编码器,例如拥有 280 万参数的 YOLO26n-reid 模型。下面的代码片段使用示例视频跟踪人物,分别启用和禁用 ReID,并统计每次运行分配的不同 ID 数量:

from ultralytics import YOLO
from ultralytics.utils import ROOT, YAML

# Copy the default TrackTrack config and turn on appearance re-identification
cfg = YAML.load(ROOT / "cfg/trackers/tracktrack.yaml")
cfg.update(with_reid=True, model="yolo26n-reid.onnx")
YAML.save("tracktrack_reid.yaml", cfg)

video = "https://github.com/ultralytics/assets/releases/download/v0.0.0/decelera_portrait_min.mov"
for tracker in ["tracktrack.yaml", "tracktrack_reid.yaml"]:
    model = YOLO("yolo26n.pt")  # fresh model so each run starts with no tracks
    ids = set()
    for result in model.track(video, tracker=tracker, classes=[0], stream=True, verbose=False):
        if result.boxes.is_track:
            ids.update(result.boxes.id.int().tolist())
    print(f"{tracker}: {len(ids)} person IDs")

在这段较短的视频中,两次运行都为人物分配了 3 个 ID,因此外观匹配在这里没有改变结果;但对于人物离开画面后又重新出现的较长视频,外观匹配就很重要。对于同一批人物,不同 ID 的数量越少,身份切换就越少,而下游计数依赖的正是这一点:客流计数系统若给返回的顾客分配新 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 的未来!

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