本章节介绍了UCP示例包 ucp_tutorial 中VP模块的示例使用方法,以及如何配置开发环境、编译并运行示例应用代码,帮助快速上手UCP中的VP功能模块。
其主要架构如下:

示例包结构如下所示:
其中 ucp_tutorial/vp 文件夹为VP模块的示例,包括了基础图像处理示例、图像变换示例、图片特征提取示例、光流示例、环视图像拼接示例,可同时支持板端运行编译和x86仿真编译两种方式。
具体的示例原理及实现流程请查阅 示例 章节。
在编译运行示例应用代码前,您需要确保环境满足要求,根据 环境部署 部分的指引,您的开发机中应该已经安装有相关环境,要求如下:
在示例的 ucp_tutorial/vp/code 目录下有预先配置好的编译脚本 build.sh,选项 -a x86 和 -a aarch64 分别支持两种编译方式,
直接执行 build.sh 脚本即可完成一键编译,生成的文件会被保存到 ucp_tutorial/vp/vp_samples 目录下。
此外,目录中也包含了 build_aarch64.sh 和 build_x86.sh 两个编译脚本,分别对应了两个编译选项,
使用这两个脚本进行编译与使用 build.sh 脚本等效。
编译板端运行的VP模块需要执行的命令如下:
执行编译脚本后,会生成运行示例所需要的执行程序和依赖文件,保存在 ucp_tutorial/vp/vp_samples 目录下。
以VP为例,其生成物如下所示,包含图片数据、示例运行脚本、运行依赖库、可执行文件以及运行示例的脚本目录,共同组成了完整的运行环境和运行依赖。
正确地完成编译的全部步骤后,可执行示例会被配置完毕并保存在 vp_samples 文件夹内。下面根据执行环境不同,介绍上板与仿真两种运行示例的方式。
将 vp_samples 文件夹整个拷贝到开发板上,进入 vp_samples/script 文件夹,直接执行示例文件夹中提供的运行脚本即可看到示例的运行结果。
开发板上执行脚本的参考指令如下:
进入 vp_samples/script_x86 文件夹,直接执行示例文件夹中提供的运行脚本即可看到示例的运行结果。
执行脚本的参考指令如下:
地平线J6 SOC使用的是Cadence公司的Tensilica Vision Q8 DSP,因此x86仿真实例中dsp算子运行依赖Cadence提供的一套工具链,环境配置可参考 DSP工具链安装 的指引, 需要正确配置 License 以及环境变量 XTENSA_ROOT 即可。
以板端运行为例,示例运行时会在控制台内打印流程日志并生成对应输出文件。日志中会包含全部算子的调用流程,输出结果会被保存在 script/01_basic_processing 文件夹中。示例部分输出如下:
生成物会被保存到 vp_samples/script/01_basic_processing 目录下,内容如下:
本节通过一个简单的算子调用展示了如何使用VP封装的算子实现图片处理的功能。主要步骤包含了图片载入、任务创建、任务提交、任务完成、销毁任务、保存输出等。 您可以阅读相应源码和注释进行学习。
该示例的作用为使用hbVPRotate算子将图片旋转90度,具体实现如下: