---
title: TarDAL
canonical_url: "https://www.modelscope.cn/models/AIBS/TarDAL"
md_url: "https://www.modelscope.cn/models/AIBS/TarDAL.md"
repository: AIBS/TarDAL
last_updated: 2026-01-06
pipeline_tag: image-face-fusion
tasks:
  - image-face-fusion
library_name:
  - pytorch
frameworks:
  - Pytorch
downloads: 3
stars: 0
---

# TarDAL

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

- **Repository**: AIBS/TarDAL
- **Tasks**: image-face-fusion
- **Downloads**: 3
- **Stars**: 0
- **Last updated**: 2026-01-06

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

---

# TarDAL

  ![author](https://img.shields.io/badge/author-ql-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>![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`*** 。
3. 模型下载后，切换至对应版本分支后执行

```powershell
# 在模型根目录下
git submodule update --init
```

# 0. 文件结构说明

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

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

# 1. python工程准备

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

- code：https://github.com/JinyuanLiu-CV/TarDAL
- main
- 6a9edd7
- weights：https://github.com/JinyuanLiu-CV/TarDAL/releases/download/v1.0.0/tardal-dt.pth

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

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

1）根据模型来源中的地址：https://github.com/JinyuanLiu-CV/TarDAL/releases/download/v1.0.0/tardal-dt.pth ，下载原始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_TarDAL-main

```shell
# 在此模型根目录
mkdir 0_TarDAL-main
git clone -b main https://github.com/JinyuanLiu-CV/TarDAL.git 0_TarDAL-main
cd 0_TarDAL-main
git checkout 6a9edd7
```

创建runs文件夹并下载m3fd数据集 //pan.baidu.com/s/1GoJrrl_mn2HNQVDSUdPCrw?pwd=M3FD 到 0_TarDAL-main/data/m3fd/ 路径下
```shell
cd 0_TarDAL-main
mkdir runs
cd runs
mkdir tmp
```

3）进入1_scripts执行保存模型脚本

```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;">
  保存模型时的修改点：   

  1. 将Detect forward中conv算子之后的后处理操作去掉<br>
  2. 定义new_forward对forward进行替换<br>
     </div>
  
- 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/tardal-dt.toml
     ```
  
      如果过程顺利，将得到 icraft model（以 `.json` （graph）`.raw`（param）的格式保存）
      
      其中包括编译各阶段产生的中间结果模型和最终用于片上部署的BY模型，直接被保存到:  3_deploy/modelzoo/yolov5_7.0/imodel
  
# 3. 仿真

通过配置3_deploy/modelzoo/TarDAL/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/TarDAL.0
     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 ./TarDAL_psin.py ../cfg/TarDAL.yaml
   # Linux系统下：
   python icraft_launcher.py ./TarDAL_psin.py ../cfg/TarDAL.yaml
   ```

   在io/output中查看结果

# 5. 模型性能记录

| TarDAL | input shape     | hard time      | qt_strategy     | 精度             |
| -------------- | --------------- | -------------- | --------------- | ---------------- |
| float          | [1, 1, 768, 1024], [1, 1, 768, 1024] | - | - | MI:2.356; EN:6.889; SD:43.323; PSNR:12.270; SSIM:0.752 |
| 8bit           | [1, 1, 768, 1024], [1, 1, 768, 1024] | 109.868ms | kld-pc | MI:2.349; EN:5.009; SD:43.704; PSNR:12.171; SSIM:0.728 |
| 16bit          | [1, 1, 768, 1024], [1, 1, 768, 1024] | 225.6657ms | kld-pc | None |
