demo_system_algorithm/docs/ostrack.md

3.7 KiB
Raw Permalink Blame History

OSTrack — 单流 Transformer 目标跟踪

概述

OSTrackOne-stream Transformer Tracker 是一种基于 Transformer 架构 的单目标视觉跟踪模型,创新性地将特征提取和目标匹配统一在单一 Transformer 框架中,避免了传统两流设计中的信息损失,实现了高效且准确的视觉目标跟踪。

核心特性

特性 说明
模型类型 单目标视觉跟踪Visual Object Tracking
架构设计 单流 TransformerOne-stream
输入形式 模板图像 + 搜索区域图像
输出形式 目标边界框 + 置信度分数
关键创新 统一特征提取与目标匹配

模型架构

graph LR
    A["模板图像<br/>384×128"] --> C["Transformer 骨干"]
    B["搜索区域图像<br/>768×256"] --> C
    C --> D["交叉注意力融合"]
    D --> E["响应图解码"]
    E --> F["目标边界框"]
    E --> G["置信度分数"]

与传统两流跟踪器对比

特性 传统两流跟踪器 OSTrack (单流)
特征提取 模板和搜索区域分开提取 统一提取
特征交互 需要额外的匹配模块 自注意力机制天然融合
参数量 较大 更轻量
计算效率 中等 更高效

目标应用场景

  • 自动驾驶 — 车辆、行人等动态目标跟踪
  • 视频监控 — 跨帧目标持续追踪
  • 体育分析 — 运动员轨迹跟踪
  • 无人机视觉 — 空中目标跟踪

参考来源


输入 / 输出规格

模型接口

方向 名称 数据类型 维度 尺寸 说明
输入 INPUT:0 UINT8 4D 1 × 1 × 128 × 384 模板图像 (目标特征)
输入 INPUT:1 UINT8 4D 1 × 1 × 256 × 768 搜索区域 (待搜索区域)
输出 OUTPUT:0 FP32 4D 1 × 1 × 16 × 16 响应图 (Heatmap)
输出 OUTPUT:1 FP32 4D 1 × 2 × 16 × 16 边界框偏移 (dx, dy)
输出 OUTPUT:2 FP32 4D 1 × 2 × 16 × 16 边界框尺寸 (dw, dh)

模板图像:初始帧中目标区域的裁剪图 搜索区域:当前帧中目标可能出现的区域


后处理流程

flowchart TD
    A["响应图"] --> B["加权优化"]
    B --> C["定位最高响应位置"]
    D["边界框偏移"] --> E["解码候选框"]
    F["边界框尺寸"] --> E
    C --> G["确定目标中心"]
    E --> G
    G --> H["裁剪坐标 → 原图坐标"]
    H --> I["边界裁剪 & 修正"]
    I --> J["最终目标框"]

步骤说明

步骤 操作 说明
1 响应图加权 对原始响应图进行优化,提高跟踪精度
2 解码候选框 将响应图 + 偏移量解码为具体边界框坐标
3 坐标映射 从搜索区域坐标系映射回原始图像坐标系
4 边界修正 确保边界框在图像范围内,避免越界错误

执行与性能

运行方式

python ostrack.py

性能指标

指标 数值
推理平台 边缘板卡NPU
推理时间 ~1550.21 ms
输入数量 2 (模板 + 搜索区域)

推理时间较长主要是因为 Transformer 架构的自注意力计算复杂度较高。


输出示例

跟踪结果

目标跟踪结果

图中红框表示模型当前帧的跟踪目标位置。结果图保存路径:../resource/ostrack/result.jpg