3.7 KiB
3.7 KiB
OSTrack — 单流 Transformer 目标跟踪
概述
OSTrack(One-stream Transformer Tracker) 是一种基于 Transformer 架构 的单目标视觉跟踪模型,创新性地将特征提取和目标匹配统一在单一 Transformer 框架中,避免了传统两流设计中的信息损失,实现了高效且准确的视觉目标跟踪。
核心特性
| 特性 | 说明 |
|---|---|
| 模型类型 | 单目标视觉跟踪(Visual Object Tracking) |
| 架构设计 | 单流 Transformer(One-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
