SiamRPN模型-推理指导

概述

SiamRPN是一个能实时完成视觉物体跟踪并呈现出顶级性能的基于深度学习的跟踪器网络。

  • 参考实现:

    url=https://github.com/STVIR/pysot
    branch=master
    model_name=SiamRPN
    

    通过Git获取对应commit_id的代码方法如下:

    git clone {repository_url}        # 克隆仓库的代码
    cd {repository_name}              # 切换到模型的代码仓目录
    git checkout {branch/tag}         # 切换到对应分支
    git reset --hard {commit_id}      # 代码设置到对应的commit_id(可选)
    cd {code_path}                    # 切换到模型代码所在路径,若仓库下只有该模型,则无需切换
    

输入输出数据

  • 输入数据

    输入数据 数据类型 大小 数据排布格式
    template RGB_FP32 batchsize x 3 x 127 x 127 NCHW
    search RGB_FP32 batchsize x 3 x 255 x 255 NCHW
  • 输出数据

    输出数据 数据类型 大小 数据排布格式
    cls FLOAT32 batchsize x 10 x 25 x 25 NCHW
    loc FLOAT32 batchsize x 20 x 25 x 25 NCHW

推理环境准备

  • 该模型需要以下插件与驱动

    表 1 版本配套表

配套 版本 环境准备指导
固件与驱动 22.0.2 Pytorch框架推理环境准备
CANN 6.0.0 -
Python 3.7.5 -
PyTorch 1.8.0 -

快速上手

说明: 该推理指导的所有步骤都以具体路径和参数为例进行说明,若有修改需要,请对开源代码仓中的pysot/pysot/core/config.py配置文件以及推理过程中的所有路径和参数进行相应修改。

获取源码

  1. 获取源码。

    得到本项目代码后,将SiamRPN项目放置在/home目录下,进入/home/SiamRPN目录下,下载开源代码仓

    git clone https://github.com/STVIR/pysot.git
    

    确认获取的开源pysot项目文件存放在/home/SiamRPN目录下,进入/home/SiamRPN/pysot目录下执行

    patch -N -p1 < ../fix.patch
    
  2. 安装依赖。

    cd /home/SiamRPN
    pip3 install -r requirements.txt
    cd pysot
    export PYTHONPATH=/home/SiamRPN/pysot:$PYTHONPATH
    python3 setup.py build_ext --inplace install
    

准备数据集

  1. 获取原始数据集。(解压命令参考tar –xvf *.tar与 unzip *.zip)

    通过Vot Challenge获取VOT2016数据集。

    将数据集VOT2016下载并放在/root/datasets目录下。

模型推理

说明: 下述test/pth2onnx.sh、test/onnx2om.sh和test/eval_acc_perf.sh三个脚本中的环境变量仅供参考,请以实际安装环境配置环境变量。详细介绍请参见《CANN 开发辅助工具指南 (推理)》。

  1. 模型转换。

    使用PyTorch将模型权重文件.pth转换为.onnx文件,再使用ATC工具将.onnx文件转为离线推理模型文件.om文件。

    1. 获取权重文件。 在PySOT Model Zoo上获取权重文件siamrpn_r50_l234_dwxcorr。

    2. 导出onnx文件。

      cd /home/SiamRPN
      bash test/pth2onnx.sh
      

      获得SiamRPN.onnx文件。

    3. 使用ATC工具将ONNX模型转OM模型。

      bash test/onnx2om.sh
      

      说明: 请根据实际使用的芯片型号对脚本中的soc_version参数进行修改。

  2. 开始推理验证。

    1. 安装ais_bench推理工具。

      请访问ais_bench推理工具代码仓,根据readme文档进行工具安装。

    2. 执行推理、精度验证与性能验证。

      bash test/eval_acc_perf.sh VOT2016 1
      

      参数说明:

      • VOT2016 使用的推理数据集
      • 1 使用的npu卡号

模型推理性能&精度

  • 评测结果:
------------------------------------------------------------
|Tracker Name| Accuracy | Robustness |   Average   |  EAO  |
------------------------------------------------------------
|  VOT2016   |  0.639   |   0.177    |    42fps    | 0.483 |
------------------------------------------------------------
  • 参考pth精度和性能
------------------------------------------------------------
|Tracker Name| Accuracy | Robustness |   Average   |  EAO  |
------------------------------------------------------------
|  VOT2016   |  0.642   |   0.196    |    35fps    | 0.464 |
------------------------------------------------------------