OpenVX便携式、高能效的视觉处理

OpenVX便携式、高能效的视觉处理
OpenVX 1.3.1 来了!
OpenVX 1.3.1 规范于 2022 年 2 月 2 日发布
 
OpenVX™ 是一种开放、免版税的标准,用于计算机视觉应用程序的跨平台加速。OpenVX 支持性能和功耗优化的计算机视觉处理,这在嵌入式和实时用例中尤为重要,例如面部、身体和手势跟踪、智能视频监控、高级驾驶辅助系统 (ADAS)、物体和场景重建、增强现实、视觉检查、机器人等。
OpenVX:视觉加速
OpenVX 通过可重用的视觉加速功能轻松扩展到每个低功耗领域。这为OpenVX和开发人员提供了一个关键优势,促进了广泛的采用,这提供了以下内容:
  • 免版税开放标准 API,由硬件供应商可靠地加速,并严格定义一致性测试。
  • 面向低功耗实时应用,包括移动和嵌入式平台。
  • 跨各种异构处理器的可移植性,包括 ISP、专用硬件、DSP 和 DSP 阵列、GPU、多核 CPU 等。
  • 不需要高功率 CPU/GPU 复合体。低功耗主机可以设置和管理帧速率视觉处理管道。
 
OpenVX 图形
OpenVX 允许图形级处理优化,这允许实现在可能的情况下融合节点以实现更好的整体性能。该图还允许自动图级内存优化,以实现低内存占用。OpenVX 图形优化工作负载可以部署在各种计算机硬件上,包括小型嵌入式 CPU、ASIC、APU、独立 GPU 和异构服务器。
  • OpenVX 开发人员表示一个称为“节点”的图像操作图,它可以位于任何以任何语言编码的任何硬件或处理器上。
  • OpenVX Graphs 使实施能够优化功耗和性能。实现可以融合节点以消除内存传输,并且可以平铺处理以将数据完全保存在本地内存/缓存中。
  • 在帧速率图执行期间,OpenVX Graph 将主机交互降至最低。主机处理器可以设置一个图形,然后几乎可以自主执行。
 
分层视觉处理生态系统
实现者可以使用 OpenCL 或计算着色器在可编程处理器上实现 OpenVX 节点。开发人员可以使用 OpenVX 轻松地将这些节点连接到图形中。OpenVX 图形使实施者能够优化不同硬件架构的执行。OpenVX 使图形能够扩展,以包括不支持可编程 API 的硬件架构。
 
一致性实施
硬件供应商提供优化的 OpenVX 驱动程序,其架构旨在从其芯片架构中获得最佳性能,并可供开发人员使用。以下供应商提供符合要求的 OpenVX 驱动程序:
OpenVX 1.3 的新增功能
现在 OpenVX API 已经发展到一组广泛的功能,人们有兴趣创建针对一组功能的实现,而不是涵盖整个 OpenVX API。为了在提供此选项的同时仍管理 API,以防止在哪些实现提供哪些功能方面出现过度碎片化,OpenVX 1.3 规范定义了一组功能集,这些功能集构成了 OpenVX API 的连贯且有用的子集。这些功能集包括:
  • 基本功能集(基本图形基础结构)
  • 视觉(OpenVX 1.1 等效视觉功能)
  • 增强视觉(OpenVX 1.2 中引入的视觉功能)
  • 神经网络(OpenVX 1.2 等效的神经网络函数,以及神经网络扩展和张量对象)
  • NNEF(内核导入加上张量对象)
  • 二进制映像支持 (U1)
  • 部署功能集(用于安全关键用途)
随着 OpenVX 1.3 的发布,流水线、神经网络和导入内核扩展也在更新。有关所有扩展和功能的列表,请转到 OpenVX 注册表 。
OpenVX 历史
OpenVX 规范和一致性测试于 2014 年发布。随后是 2015 年的 1.0.1 版规范和开源示例实现,2016 年嵌入式视觉峰会的 1.1 版,以及 2017 年嵌入式视觉峰会的 1.2 版。
OpenVX 功能集
为了在避免碎片化的同时实现部署灵活性,OpenVX 1.3 定义了许多针对常见嵌入式用例的功能集。硬件供应商可以在其实施中包含一个或多个完整的功能集,以满足其客户的需求并完全符合要求。OpenVX 的灵活性支持在各种加速器架构上部署,并且功能集有望显著增加可用 OpenVX 实现的广度和多样性。定义的 OpenVX 1.3 功能集包括:
  • 图形基础结构(其他功能集的基线),
  • 默认愿景,
  • 增强视觉(OpenVX 1.2 中引入的功能),
  • 神经网络推理(包括张量对象),
  • NNEF 内核导入(包括张量对象),
  • 二进制图像,
  • 安全关键(减少功能,以便更轻松地进行安全认证)。
  • OpenVX 和 OpenCV 是互补的

 

OpenCV

OpenVX

实现

社区驱动的开源库

由硬件供应商实施、优化和交付的可调用 API

范围

100 多种成像和视觉功能
多个相机 API/接口

紧紧关注数十个核心硬件加速功能以及扩展和加速自定义节点。
使用外部摄像头驱动程序

一致性

广泛的 OpenCV 测试套件,但没有正式的 Adopters 计划

实施必须通过 Khronos 一致性测试套件才能使用商标

知识产权保护

没有。源代码在 BSD 下获得许可。
某些模块需要版税/许可

受 Khronos IP 框架保护 - Khronos 成员同意在合规实施中使用时不针对 API 主张专利

加速度

OpenCV 3.0 透明 API(或 T-API)支持将功能卸载到 OpenCL 设备

实现免费使用任何底层 API,例如 OpenCL。可以将 OpenCL 用于自定义节点

效率

OpenCV 4.0 G-API 图形模型,用于某些过滤器、算术/二进制运算和定义明确的几何变换

所有节点的基于图形的执行。
可优化的计算和数据传输

推理

深度神经网络模块,用于从层构建网络,仅用于前向传递计算。
从 ONNX、TensorFlow、Torch、Caffe 导入

直接在 OpenVX Graph 中表示的神经网络层和操作。
NNEF 直接导入,ONNX 通过 NNEF 转换器

 
参考文献链接
https://www.khronos.org/openvx/
posted @ 2024-05-21 04:18  吴建明wujianming  阅读(161)  评论(0编辑  收藏  举报