OpenVX介绍与Build on Linux

690 阅读2分钟

OpenVX

屏幕截图 2024-01-03 112855.png OpenVX Overview - The Khronos Group Inc

OpenVX™ 是一种开放、免版税的计算机视觉应用跨平台加速标准。 OpenVX 可实现性能和功耗优化的计算机视觉处理,这在嵌入式和实时用例中尤其重要,例如面部、身体和手势跟踪、智能视频监控、高级驾驶员辅助系统 (ADAS)、对象和场景重建、增强现实、目视检查、机器人技术等。

屏幕截图 2024-01-03 143815.png

OpenVX Feature Sets

为了实现部署灵活性并避免碎片化,OpenVX 1.3 定义了许多针对常见嵌入式用例的功能集。硬件供应商可以在其实现中包含一个或多个完整的Feature Sets,以满足客户的需求并完全符合要求。 OpenVX 的灵活性使得能够在各种加速器架构上进行部署,并且Feature Sets可以显著增加可用 OpenVX 实现的广度和多样性。定义的 OpenVX 1.3 Feature Sets包括:

  • Graph Infrastructure (baseline for other Feature Sets),
  • Default Vision,
  • Enhanced Vision (functions introduced in OpenVX 1.2),
  • Neural Network Inferencing (including tensor objects),
  • NNEF Kernel import (including tensor objects),
  • Binary Images,
  • Safety Critical (reduced features to enable easier safety certification).

OpenVX Build on Linux

安装OpenCV

安装libgtk

GTK是一个Linux平台下基于Xwindows图形窗口的图形用户编程接口工具,可以借助它开开发Linux平台下基于Xwindows的图形用户界面

sudo apt install libgtk2.0-dev

安装pkg-config

(在Linux系统下安装第三方软件时要用到第三方软件的头文件以及相关库,在编译时指定库和头文件是十分麻烦的,而pkg-config能够把这些头文件和库文件的位置指出来给编译器使用)

sudo apt install pkg-config

安装OpenCV

  • 从OpenCV官网Releases - OpenCV下载Sources文件
  • 解压安装包unzip opencv-4.8.0.zip
  • 进入解压的目录,新建编译目录,使用cmake make编译,最后安装

OpenCV测试

在终端输入ldconfig -v | grep opencv,检查是否安装成功

OpenVX Sample Implementation

KhronosGroup/OpenVX-sample-impl: OpenVX sample implementation (github.com)

链接中的项目提供了OpenVX的参考示例实现,首先clone下来

git clone https://github.com/KhronosGroup/OpenVX-sample-impl.git

然后运行python3 Build.py --os=Linux --arch=64

运行上述py文件后会build至./build/Linux/x64/Release

OpenVX头文件将会安装在./install/Linux/x64/Release/include

可执行文件与lib文件将会安装在./install/Linux/x64/Release/bin

然后,将安装的静态库目录加入环境变量

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/tairan/work/OpenVX-sample-impl/install/Linux/x64/Release/bin

至此完成了一个OpenVX Sample Implementation的Build,运行示例:

cd raw
./install/Linux/x64/Debug/bin/vx_test

OpenVX Tutorial

此外,github有openvx教程: rgiduthuri/openvx_tutorial: Khronos OpenVX Tutorial Material (github.com)