一、简介

本文主要介绍如何编译并运行VLM模型demo程序。

二、源码获取

https://gitee.com/xuanwu_s3/rknn3-model-zoo

git clone https://gitee.com/xuanwu_s3/rknn3-model-zoo.git

三、编译构建

(1)编译步骤:

获取交叉编译工具链并按照文档进行安装

https://gitee.com/xuanwu_s3/toolchain

git clone https://gitee.com/xuanwu_s3/toolchain.git

指定交叉编译路径:

export GCC_COMPILER=aarch64-none-linux-gnu

编译:

./build-linux.sh -t rk3588 -a aarch64 -d FastVLM

(2)编译时报错警告说明:

1. 编译报错说明:出现如下图报错,请联系Ebaina销售人员获取完整补丁资料。

编译报错

2. 编译时提示模型文件找不到说明:

提示模型文件找不到

如上图所示:编译已经成功,红色字体提示是因为编译前没有进行FastVLM模型转换,从而编译后安装目录中就不会安装模型文件,需要在编译前进行模型转换再编译,或者直接联系Ebaina销售人员获取转换好的模型文件。

(3)编译生成文件:

生成的安装目录:rknn3-model-zoo/install/rk3588_linux_aarch64/rknn_FastVLM_demo
目录结构:

rknn_FastVLM_demo
    ├── lib                 # 依赖的动态库 
    │   ├── librga.so
    │   ├── librknn3_api_rkcp.so
    │   └── librknn3_api.so
    ├── model   # 模型目录,需要编译前进行模型转换才会有该目录以及该目录下的模型文件,
    |           # 也可通过Ebaina销售人员获取转化好的模型,单独拷贝到板端运行demo程序时指定模型执行
    |
    └──  rknn_fastvlm_demo  # demo可执行程序

模型文件的两种获取方式:

  1. 联系Ebaina销售人员获取转换好的模型文件;
  2. 参考Ebaina玄武S3_模型转换_环境搭建指南.mdEbaina玄武S3_模型转换_FastVLM指南.md 进行模型转换得到模型;

四、运行说明

demo程序传到板端:

adb push install/rk3588_linux_aarch64/rknn_FastVLM_demo/ /userdata/

板端运行demo:

cd /userdata/rknn_FastVLM_demo
export LD_LIBRARY_PATH=./lib

chmod +x rknn_fastvlm_demo
./rknn_fastvlm_demo \
    model/FastVLM-vision.rknn \
    model/FastVLM-vision.weight \
    model/FastVLM-llm.rknn \
    model/FastVLM-llm.weight \
    model/FastVLM-llm.tokenizer.gguf \
    model/FastVLM-llm.embed.bin \
    0xff 0xff \
    model/demo.jpg \
    "Please describe the content of the picture."

说明:

./rknn_fastvlm_demo 可以指定模型路径和模型。

更多推荐