监控体系严峻依托嵌入式视觉体系供给的功用加快在广泛商场和体系中的布置。这些监控体系的用处十分广泛,包括事情和流量监控、安全与安防用处、ISR 和商业智能。用处的多样性也带来了几大应战,需求体系规划人员在解决计划中加以解决。它们是:
● 多摄像头视觉 – 可以衔接多个同类或异类传感器类型。
● 核算机视觉技能 – 可以运用高档库和结构(例如 OpenCV 和 OpenVX)进行开发。
● 机器学习技能 – 可以运用结构(例如 Caffe)来完结机器学习揣度引擎。
● 进步分辨率和帧率 – 进步每个图画帧所需的数据处理。
依据用处,监控体系会完结相应算法(例如光流法)以检测图画内的运动。立体视觉供给图画内的深度知觉,也运用机器学习技能来检测和分类图画中的目标。
图 1 – 实例运用(上:面部检测与分类,下:光流)
异构体系器材,例如 All Programmable Zynq®-7000 和 Zynq® Ultrascale+™ MPSoC,正越来越多地运用于监控体系的开发。这些器材是可编程逻辑(PL)架构与高功用 ARM® 内核处理器体系(PS)的完美结合。
与传统计划比较,PL 与 PS 的严密耦合使得创立的体系具有更强的呼应才能、可重装备才能以及更高的能效。根据 CPU/GPU 的传统 SoC 需求运用体系存储器将图画从一个处理阶段传送到下个阶段。这会下降确认性并增大功耗和体系呼应时延,由于多个资源需求拜访同一个存储器,形成处理算法瓶颈。该瓶颈随帧率和图画分辨率添加而加剧。
当解决计划选用 Zynq-7000 或 Zynq UltraScale+ MPSoC 器材完结时,就会打破这个瓶颈。这些器材答应规划人员在器材的 PL 中完结图画处理流水线。在 PL 中创立真实的并行图画流水线,其间一个阶段的输出被传送到另一个阶段的输入。这样能取得确认的呼应时刻,缩短时延,完结功耗最佳解决计划。
运用 PL 完结图画处理流水线,还能取得比传统 CPU/GPU SoC 计划更宽的接口才能,而后者只能取得固定接口。PL IO 接口的灵敏特性答应恣意衔接,支撑 MIPI、Camera Link、HDMI 等职业标准接口。这种灵敏特性还能完结定制传统接口,并且能进行晋级以支撑最新接口标准。运用 PL,还可以让体系并行衔接多个摄像头。
不过,最要害的是完结运用算法,并且无需用硬件描绘言语(例如 Verilog 或 VHDL)从头编写一切高档算法。这正是 reVISION™ 仓库的用武之地。
图 2 – 传统 CPU/GPU 计划与 Zynq-7000/Zynq UltraScale+ MPSoC 的比照
reVISION 仓库
reVISION 仓库使开发人员可以完结核算机视觉和机器学习技能。在这里,针对 Zynq-7000 和 Zynq UltraScale+ MPSoC 的高档结构和库相同适用。为此,reVISION 将支撑渠道、运用和算法开发的多种资源完美结合在一起。该仓库分为三个不同等级:
1、渠道开发 – 这是仓库的最底层,是剩余仓库层的构建根底。该层为 SDSoC™ 东西供给渠道界说。
2、 算法开发 – 这是仓库的中间层,为所需算法的完结供给支撑。该层有助于图画处理和机器学习揣度引擎加快向可编程逻辑中搬运。
3、运用开发 – 这是仓库的最高层,可供给职业标准结构支撑。该层用来开发运用,以便运用渠道开发和算法开发层。
仓库的算法和运用层支撑传统图画处理流程和机器学习流程。在算法层中,支撑用 OpenCV 库开发图画处理算法。这包括:能将多种 OpenCV 功用(包括 OpenVX 内核子集)加快放在可编程逻辑中完结。为支撑机器学习,算法开发层供给几种可以放在 PL 中用以完结机器学习揣度引擎的预界说硬件功用。然后,由运用开发层拜访这些图画处理算法和机器学习揣度引擎,用以创立终究运用,并为 OpenVX 和 Caffe 等高档结构供给支撑。
图 3 – reVISION 仓库
reVISION 仓库能供给一切必要元素,用以完结高功用监控体系所需的算法。
在 reVISION 中加快 OpenCV
算法开发层的最重要优势之一是可以加快多种 OpenCV 功用。该层中,可加快的 OpenCV 功用被分红四个高档类别。
1、核算 – 包括的功用有:两个帧的肯定误差、像素运算(加、减和乘)、梯度和积分运算。
2、输入处理 – 支撑位深度转化、通道运算、直方图均衡化、从头映射和尺度重调整。
3、滤波 – 支撑多种滤波器,包括 Sobel、自界说卷积和高斯滤波器。
4、其他 – 供给多种功用,包括 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 器材所供给的功用。并且,即便不是专家也能运用可编程逻辑来完结算法。这些算法和机器学习运用可通过高档的职业标准结构来完结,然后缩短体系开发时刻。这使开发人员可以供给呼应性和可重装备才能更强并且功耗愈加优化的体系。