---
title: AiATrack
canonical_url: "https://www.modelscope.cn/models/AIBS/AiATrack"
md_url: "https://www.modelscope.cn/models/AIBS/AiATrack.md"
repository: AIBS/AiATrack
last_updated: 2026-03-13
pipeline_tag: video-single-object-tracking
tasks:
  - video-single-object-tracking
library_name:
  - pytorch
frameworks:
  - Pytorch
downloads: 3
stars: 0
---

# AiATrack

> AiATrack - AIBS 在 ModelScope 开源的模型。本分支上的模型库文件与 icraft3.31.0 版本适配，部署时对应使用 25060601 版本位流，硬件后端 仅 支持 BUYI，即：

- **Repository**: AIBS/AiATrack
- **Tasks**: video-single-object-tracking
- **Downloads**: 3
- **Stars**: 0
- **Last updated**: 2026-03-13

Source: https://www.modelscope.cn/models/AIBS/AiATrack

---

# AiATrack
![version](https://img.shields.io/badge/icraft_ver-3.31.0-gold?style=flat&logo=data:image/png;base64,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)  ![author](https://img.shields.io/badge/author-ylm-blue)<br>![metrics](https://img.shields.io/badge/metrics-OK-green?style=flat&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAYAAAA6/NlyAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAPYQAAD2EBqD+naQAABLZJREFUaEPtmmnIpWMYx39/+75lyy6ELGNohA8GIUvEB6RBtomYmhhDIlskkmUSWcLIyDKU9QOy88FSjCIylmSZsoxl7OPSf7pOPY7zvs8573Oa55x3nqveOr33fT/P/buv5f7f9zliGTMtY7w0wOPd442HGw+PsxVoQrrdoRGxOrBN4f8LJC0YVseXejgidgXeLQBeJ2lmAzwkK9B4uEMONyFdlsMRsTywPrAKsFDSj4MS8X0P6YjYCJgK7A2sCnwPvAA8IOm7usH7ChwRWwNP5DZm79oC+BV4EjhT0sI6ofsGHBGbA48Du40C9DRwvKSf6oLuC3BErAlcDpwNrJQw3wBfALtkLrcY7wBmSPq5Duh+Ae8P3AVslRBfA1cCLwJHARcAa2WbvTvD/SX9s7ShKwNHhHP1UuB8YDngb8BenClpUUpTA18IrJA5/TpwmqQPhxF4U+Clgt52KB8p6c0WTETY83cCB8CSWxYvihdhliR/7tkiwou3WJKLYtfWDw87ZB9J7/rFDwJTJC0uziIipgC3FELb+vxQSQ7/ri33+B2BycDcXg8y/QA24LGFGR8s6dl2gohYA3gUOCjbvCAO69nd0kbE2sAprvTAzsCNki7qdrz7VQLO1bawaBWkz4HtJP3VaRIR4eL2fKFtnqQJZROOCM/THr0W2AlYLcf8Buwj6Z2yZ7TaqwLvAbxVeNlsSSeP9vKIeAOYVOgzWdLLIyyQ89Q14hzgdMBn83bzTuDU+L0b6KrAnsj1hRcdJ+mhEuCTgLsLOX8PcGqn4hMRvni4DDgEWK8wpviKX4Bzc5v7T93oNI+qwI+5IueDvb9OkvRRCbAVmbV16xblE2BfSV92yHunypb5t316eYe2fq7Sr7mtm22uKrDDbU9gIrAucImkH0qArcpmAa3Qt+KaJuneknEOb4e+DyW2RYAXy0ruT+Bi4CZJ/jyiVQLuJmc6eM3vPCHFycrZPicr9h8jPTMivLjO/02yj/f5w1PIuPLb8zeUHU6WOrAnGxG7A85de8f2nrcbSW+PAnwE4ChYJ/vclprcnu7a6gL2nmwRYjFiOeoKa319eyflFRHuc1X2WTFDeLqjpF3glJHXApxePibD2mLC9ipwtKRvO6TBZnk4aYmW+RkRr5QBtrfXCezi5SJUPD+fKOm+4iRTdByWWnzjbPO52irNur0nqw04vWxJej/gOzDbp8CBklx9l1ietq4Bzkpl6PD30fPqsRwv6wb20XJuVtsWo/X2VEmWrAbeLw8kG2aHr6zHJb3fk2uzc63ACWRt/Exhu/HWdGsqLIew78K2LcDdDEwfi3f9jEEA9pXQtAxT33IuWYcM7w0A53rLHPITq1z71g6cXjbYFdbUhTux9oj9LBXZU2MJ5daYgQBO6C3ymuiMvAoqcn2cIf5wmXQsW4yBAU5oC5K9gPPyCGld/lyKlA9GOmeXQRbbBwq4l4mPtW8D3L5yzRfi0PwCYKz5VMe4JoebHP7/r3h8teKvVgbRXF9G/UnVWEJ6EEFbc5ogad5oE2yAu8jhce9hX6X6EnwYbL6/k64U0sNA2cscS3O4l4cNQ98GeBi8VGWOjYerrN4wjG08PAxeqjLHfwG92SNbyY+y8QAAAABJRU5ErkJggg==)  ![speed](https://img.shields.io/badge/speed-OK-green?style=flat&logo=fastapi)<br>![FPGA_ops](https://img.shields.io/badge/FPGA_ops-ImageMake%20%7C%20Layernorm%20%7C%20Softmax-lightgreen?style=flat)<br>![Bitstream](https://img.shields.io/badge/Bitstream-v1%20%7C%20v2-6959CD?style=flat&logo=bit)<br>![OS](https://img.shields.io/badge/OS-Windows%20%7C%20Ubuntu-green)



本分支上的模型库文件与 ***icraft3.31.0*** 版本适配，部署时对应使用 ***25060601*** 版本位流，硬件后端 **仅** 支持 ***BUYI***，即：

1. 模型`2_compile/config`目录下 **仅支持** 编译 ***`BY`*** 文件夹下的toml文件；
2. 模型`3_deploy/modelzoo/MODEL/cfg`目录下的yaml文件中， **`run_backend`** 字段 **仅支持** 配置为 ***`host`*** 或 ***`buyi`*** 。



# 0. 文件结构说明

AI部署模型需要以下几部分文件

- 0_AiATrack    >模型原始工程，需要自行下载
- weights              >存放原始权重，需要自行下载
- 1_scripts            >若干脚本，用于保存Icraft编译器需要的模型、编译后仿真等功能
- 2_compile          >Icraft编译器编译模型时所需要的文件
- 3_deploy            >将Icraft编译器编译出的模型部署到硬件时需要的c++工程

# 1. python工程准备

## 1. **模型来源：**

- code：https://github.com/Little-Podi/AiATrack
- branch：main
- commit_id：cdb3a4e
- weights：https://github.com/Little-Podi/AiATrack/releases/download/downloads/Trained_Models.zip

## 2. **保存模型**

**目的：将模型保存成可以被Icraft编译器编译的形态**

1）根据模型来源中的地址：https://github.com/Little-Podi/AiATrack/releases/download/downloads/Trained_Models.zip ，下载原始weights，存放于 `/weights`文件夹中

<div style="background-color: #FFFFCC; color: #000000; padding: 10px; border-left: 5px solid #FFA500;">
注意：

* 有时开源的weights url可能会变更。如果上述weights url失效，请根据原工程相应的branch以及commit版本寻找正确的下载链接
* 若上述weights url永久失效，请联系本模型库相关人员获取权限下载
</div>

2）根据模型来源中的地址，下载指定commit id版本的源代码，文件夹名称要设置为：0_AiATrack

```shell
# 在此模型根目录
mkdir 0_AiATrack
git clone -b main https://github.com/Little-Podi/AiATrack 0_AiATrack
cd 0_AiATrack
git checkout cdb3a4e
```

3）安装好AiATrack源码readme要求的环境后，将1_scripts中文件复制到0_ETTrack中，执行保存模型脚本1_save.py

```shell
# 在此模型根目录
cd 1_scripts
python 1_save.py
```

**1_scripts提供脚本说明：**

**环境要求：**Icraft编译器对**导出框架模型时**使用的**框架版本**有要求。即以下脚本中所有导出模型的脚本 `1_save.py  `，必须在要求的框架版本下执行，其他脚本不限制。要求的版本：

  - **pytorch**：支持pytorch1.9.0、pytorch2.0.1两个版本的原生网络模型文件（.pt格式），以及pytorch框架保存为onnx（opset=17）格式的模型文件（.onnx格式）
  - **paddle**：仅支持PaddlePaddle框架保存为onnx（opset=11）格式的模型文件（.onnx格式），不支持框架原生网络模型文件
  - **darknet**：支持Darknet框架原生网络模型[GitHub - pjreddie/darknet: Convolutional Neural Networks](https://github.com/pjreddie/darknet)

0_infer.py                      	    >可以推理一张图并得到最终结果，模型原始权重会从 `/weights	`中寻找，需要您预先下载

1_save.py                              >保存模型，保存好的用于Icraft编译器的模型，会存放在 `/2_compile/fmodel`

<div style="background-color: #FFFFCC; color: #000000; padding: 10px; border-left: 5px solid #FFA500;">
保存模型时的修改点：
- backbone
  - 去除backbone embeding前处理计算部分，仅保留resnet50模型结果
  - 将`norm_layer`由***FrozenBatchNorm2d***改为***nn.BatchNorm2d***；
  - 将*backbone*(*Joiner*类)及其下*BackboneBase*类的输入和输出格式统一改为`Tensor`;
  - 去除*BackboneBase*中的`mask`相关内容，移至*网络外*作为前处理计算
  - 去除以*backbone*输出为输入的*adjust*函数中的`mask`, `pos_embed`, `inr_embed`相关内容，移至*网络外*作为前处理计算，并将其输入和输出格式统一改为`Tensor`。

- transformer
  - 去除*TransformerEncoder*和*TransformerEncoderLayer*输入参数中的`src_key_padding_mask`（实际未使用）；
  - 去除*TransformerDecoder*和*TransformerDecoderLayer*输入参数中的`refer_msk_list`（实际未使用）；
  - 将*TransformerDecoderLayer*中对`refer_mem_list`, `refer_emb_list`, `refer_pos_list`的`torch.cat`操作移至*网络外*作为前处理计算；
  - 将*AiAModule.CorrAttention*中对`pos_emb`的`torch.repeat_interleave`操作移至*网络外*作为前处理计算；
  - 精简*AiAModule.forward*中一些未使用的输入参数和`if`/`else`分支语句。

- box_head
  - 在***init***函数中新增一个`shape`为`(feat_size*feat_size, 1)`、值均为*1.0*的`float`类型`Tensor`；
  - 将*soft_argmax*函数中的`torch.sum`函数改为与上述新增的常量`Tensor`进行`torch.matmul`操作；
  - 将*forward*函数中的`torch.stack`函数改为`torch.cat`和`reshape`;
  - 将以*box_head*输出为输入的*box_xyxy_to_xywh*, *box_xyxy_to_cxcywh*函数计算移至*网络外*作为后处理计算。

- iou_head
  - ​	去除Prpool部分

2_save_infer.py                    >用修改后保存的模型做前向推理，验证保存的模型与原模型是否一致

# 2.使用Icraft编译器编译模型

目的： 使用[Icraft编译器](https://gitee.com/mxh-spiger/icraft-introduction.git)将上一步保存好的**框架模型**转化为**硬件可部署模型**

- **1）相关命名说明：**

  1）**fmodel**：frame model         			>用于Icraft编译器的框架模型

  2）**imodel**：icraft model				   >用Icraft编译器编译出的模型

  3）**qtset**：Quantitative Calibration Set	  >Icraft编译器所需的量化校准集
- **2）确认已安装正确的icraft版本**

  检查方法：打开cmd运行：`icraft --version`

  若已正常安装则会显示当前icraft版本，例如：

  ```
  Icraft 版本:
   * 3.31.0
  
  CLI 版本:
  3.31.0.0-8639261(2507031119)
  ```
- 3）**执行编译：**

  **在 `/2_compile`目录下执行编译：**

     ```shell
      icraft compile config/BY/AiATrack_8.toml
     ```

     如果过程顺利，将得到 icraft model（以 `.json` （graph）`.raw`（param）的格式保存）

     其中包括编译各阶段产生的中间结果模型和最终用于片上部署的BY模型，直接被保存到:  3_deploy/modelzoo/AiATrack/imodel

# 3. 仿真

通过配置3_deploy/modelzoo/AiATrack/cfg/中yaml文件的`run_backend`字段为`host`实现模型仿真。

```yaml
imodel:
  ...
  run_backend: host
  ...
```

# 4. 部署模型

## 部署环境检查

   * 以root账户登录片上系统terminal（ssh或串口皆可），模型库默认的模型存放路径为以下目录，如果没有请预先创建：

   ```
   /home/fmsh/ModelZoo/
   ```

   * 检查板上环境是否正确：
      1. 查看环境变量，指令：
         `icraft --version`

         看打印信息是否如下：

         ```shell
         Icraft 版本:
         * v3.31.0
         
         CLI 版本:
         3.31.0.0-8639261(2507031119)
         ```
      
      2. 若是，在任意目录下输入`icraft-serve`即可打开server

      3. 检查icraft和customop安装包版本是否为`arm64`

         ```shell
         # 检查icraft安装包版本
         dpkg -l | grep icraft
         # 检查customop安装包版本
         dpkg -l | grep customop
         ```

         如果依次显示如下信息，则安装版本正确：

         ```shell
         ii  icraft                         3.31.0                             arm64        This is Icraft for arm64
         ii  customop                       3.31.0                             arm64        This is Icraft CustomOp for arm64
         ```
      
      4. 如果环境配置有误，请参考[Part 1_1 2.3.1 ARM-Linux（片上系统环境） 编译环境准备](https://gitee.com/mxh-spiger/tutorial-runtime/blob/tt3.30.0/docs/Part%201_1%20quick-start.md#1%E7%BC%96%E8%AF%91%E7%8E%AF%E5%A2%83%E5%87%86%E5%A4%87-2)进行部署环境配置。

      5. 根据此模型使用的硬算子，选择合适的位流，并在板上安装，所用硬算子及可选位流版本可参见本说明文档起始处的状态徽章，位流下载及安装说明请参考[1/4) 其他下载资源](https://gitee.com/mxh-spiger/icraft-introduction/tree/icraft_v3.31.0/#4%E5%85%B6%E4%BB%96%E4%B8%8B%E8%BD%BD%E8%B5%84%E6%BA%90)。

## python  runtime:


目的：在AI硬件上执行模型前向推理

1. **python运行虚拟环境要求与准备**

   - python版本：3.8（否则无法使用icraft的python API）

   - 确保已安装icraft的python安装包

     - socket模式使用：`pip install icraft-3.x.x-cp38-none-win_amd64.whl`
     - axi模式使用：`pip install icraft-3.x.x-cp38-none-manylinux2014_aarch64.whl`

   - 在选定的python运行虚拟环境中安装python运行时所需要的依赖包

     ```
     cd 3_deploy/modelzoo/AiATrack
     pip install -r requirements.txt
     ```

   - 安装一些便于开发pyrt的依赖包

     ```
     cd 3_deploy/Deps/modelzoo
     pip install -e .
     ```

     <div style="background-color: #FFFFCC; color: #000000; padding: 10px; border-left: 5px solid #FFA500;">
     由于python运行时代码在引入依赖包时候已经通过sys.path.append(R"../../../Deps/modelzoo")将一些便于开发pyrt的依赖包加入到了系统路径下，因此可以不用执行该步骤即可直接运行2.执行程序。这里提供额外的[pip install -e .]安装方式是为了在python运行时代码时候方便进行pyrtutils的依赖跳转。

2. **执行程序**

   ```
   # Windows系统下：
   python ./AiATrack_psin.py ../cfg/AiATrack.yaml
   # Linux系统下：
   python icraft_launcher.py ./AiATrack_psin.py ../cfg/AiATrack.yaml
   ```

   在io/output中查看结果



# 5. 精度测试

<div style="background-color: #FFFFCC; color: #000000; padding: 10px; border-left: 5px solid #FFA500;">
由于精度测试需要遍历一个数据集中的所有图片，因此需要使用上位机作为主控操作系统（demo中是按windows作为上位机操作系统来做的），使用网口连接板子，运行时输入数据会通过上位机经由网口传到片上进行推理。
</div>

## 1. 环境准备

若已准备好环境请跳过此部分

**1. 网口调试环境准备**（如果已经准备好网口调试环境则看下一条）

1. 安装ssh

2. 查看或配置板子ip

   - 使用串口连接板子
   - `vim  /etc/rc.local`
   - 查看或设置ip

   ```
   #!/bin/bash
   ifconfig eth0 192.168.125.171 netmask 255.255.255.0
   systemctl start sshd
   ```

3. 修改本地网络适配器配置

   参考配置

   - ipv4地址：`192.168.125.2`
   - 子网掩码：`255.255.255.0`
   - 默认网关：`192.168.125.1`
   - 连接速度与双工：100mbps全双工

4. 使用网口或串口进入板上系统打开server

   上位机：

   ```cmd
   ssh root@192.168.125.171
   ```

   板上：
   确保位于root账户下，执行：

   ```shell
   icraft-serve
   ```

   - 请确保在root账户下执行上述命令
   - 设备成功打开示意图

   ```
   root@U:~# icraft-serve
   [02/22/24 02:02:00.388] [I] Using port : 9981
   [02/22/24 02:02:00.388] [I] synchronous mode
   [02/22/24 02:02:00.388] [I] [irpc::port::tcp::_waitNewConn] wait for new connection
   ```

   如果能正确运行则可以继续下一步。

## 2. 测试说明

1.**数据集准备**

- 测试数据集下载：[LaSOT](http://vision.cs.stonybrook.edu/~lasot/download.html)
- 模型测试使用LaSOT数据集中随机抽取的部分数据集，测试序列存放于  `3_deploy\modelzoo\AiATrack\io\input`及 `3_deploy\modelzoo\AiATrack\io\test.txt`中
- 如需测试其他数据集，需自行将图片存放于 `3_deploy\modelzoo\AiATrack\io\input`,并准备对应的input.txt

2.**修改 运行时的yaml配置文件**：

   运行时需要配置一些模型路径，输入数据，后处理参数等，其配置文件在 `3_deploy/modelzoo/AiATrack/cfg/`

   测试时使用：`AiATrack_psin.yaml`

   需要修改：

- imodel中参数：修改精度测试所用模型文件路径`dir`，根据所使用板子ip设置`ip`。
- dataset中参数：更改自己的精度测试数据集路径。
- param中参数：如果模型没有重训，则无需更改，若 重训则需要修改对应部分参数。

3.**编译、执行运行时程序**

```
cd 3_deploy/modelzoo/AiATrack/pyrt
# Windows系统下：
python ./AiATrack_psin.py ../cfg/AiATrack_test.yaml
# Linux系统下：
python icraft_launcher.py ./AiATrack_psin.py ../cfg/AiATrack_test.yaml
```

4.**使用metrics测试脚本，将保存的测试结果计算出精度指标**

metrics测试脚本使用与配置说明：

- 精度测试脚本存放于：[https://gitee.com/mxh-spiger/benchmark](https://gitee.com/mxh-spiger/benchmark)
- 本模型使用 `./sot_track/analysis_results.py`

# 6.模型性能记录

时间测试结果如下

| AiATrack | input shape      | hard time       |
| --------------- | ---------------- | --------------- |
| float           | [1, 320, 320, 3] | -               |
| int8            | [1, 320, 320, 3] | 91.605ms |
| int16           | [1, 320, 320, 3] | 183.452ms |

精度测试结果如下：

| AiATrack | qt_strategy | AUC   | Precision | Norm Precision |
| -------- | ----------- | ----- | --------- | -------------- |
| float    | -           | 65.74 | 71.69     | 76.23          |
| 8bit     | null-pc     | 58.72 | 61.62     | 69.96          |
| 16bit    | null-pc     | 59.08 | 63.69     | 69.64          |
