利用reVISION? 堆栈实现应用算法
输入处理 – 支持位深度转换、通道运算、直方图均衡化、重新映射和尺寸重调整。
-
滤波 - 支持多种滤波器,包括 Sobel、自定义卷积和高斯滤波器。
-
其他 – 提供多种功能,包括 Canny/Fast/Harris 边缘检测、阀值以及 SVM 和 HoG 分级器。
这些功能构成了 OpenVX 子集的核心功能,能够针对 OpenVX 与应用开发层紧密集成。开发团队可利用这些功能在可编程逻辑中创建算法流水线。以此方式在逻辑中实现这些功能,这样能显著提高算法实现性能。
reVISION 中的机器学习
reVISION 提供与 Caffe 的集成,能够实现机器学习推断引擎。与 Caffe 的集成发生在算法开发层和应用开发层。Caffe 框架在 C++ 库中为开发人员提供大量函数库、模型和预训练的权重,以及 Python™ 和 MATLAB® 捆绑程序。该框架使用户能够创建和训练网络,以执行所需的运算,无需重新开始。为便于模型重用,Caffe 用户可通过模型库(model zoo)共享模型;库中提供多个网络模型,用户可针对专门的任务实现和更新网络模型。在 prototxt 文件中定义这些网络和权重,当在机器学习环境中部署时,使用该文件来定义推断引擎。
reVISION 提供 Caffe 集成功能,使机器学习推断引擎的实现非常简单,只需提供 prototxt 文件即可;剩下的工作由框架来完成。然后,使用这个 prototxt 文件来配置处理系统以及可编程逻辑中的硬件优化库。可编程逻辑用来实现推断引擎,并包含 Conv、ReLu、Pooling 等功能。
图 4 - Caffe 流程集成
机器学习推断引擎中的数字表达对性能也起到重要作用。机器学习越来越多地使用更为高效、降低精度的定点数字系统,例如 INT8 表达法。与传统的浮点 32 (FP32)方法相比,定点降精度数字系统不会造成较大精度损失。与浮点相比,定点运算更易于实现,因此改用 INT8 后能实现更高效、快速的解决方案。可编程逻辑解决方案最适合使用定点数字,reVISION 能在 PL 中使用 INT8 表达法。采用 INT8 表达法后,可在 PL 中使用专用 DSP 模块。有了这些 DSP 模块的架构,当使用相同的内核权重时,可同时执行两个 INT8 乘法累积运算。这样不仅能获得高性能实现方案,而且可以降低功耗。凭借可编程逻辑的灵活特性,也可以轻松实现精度更低的定点数字表达形式。
结论
reVISION 使开发人员能够利用 Zynq-7000 和 Zynq UltraScale+ MPSoC 器件所提供的功能。而且,即使不是专家也能利用可编程逻辑来实现算法。这些算法和机器学习应用可通过高级的行业标准框架来实现,从而缩短系统开发时间。这使开发人员能够提供响应性和可重配置能力更强而且功耗更加优化的系统。
- 4G LTE技术很成功,对5G设计有何意义?(05-05)
- 物联网的承诺:下一个重大应用(02-16)
- Xilinx在2017嵌入式世界大会上展示响应最快且可重配置的视觉导向智能系统(02-17)
- 基于赛灵思FPGA的端到端广播平台解决方案的实现(10-27)
- 基于赛灵思(Xilinx) FPGA的DisplayPort设计与实现(10-23)
- 玩转赛灵思Zedboard开发板(3):基于Zynq PL的流水灯(11-05)