账号:
密码:
CTIMES / 文章 /   
reVISION加速监控系统应用开发
 

【作者: Nick Ni、Adam Taylor】2018年02月08日 星期四

浏览人次:【11480】
  


监控系统高度依赖嵌入式视觉系统所提供的功能,以加速在广泛市场与应用中的部署。这些监控系统的用途非常广泛,包括从事件与车流量监控、安全与安防应用,一直到ISR与商业智慧。此用途的多样性带来许多挑战,因此系统设计人员在解决方案时须加以克服。


这些挑战,包含:


· 多摄影机视觉:拥有连接多个同质或异质感测器类型的能力。


· 电脑视觉技术:使用高阶函式库与架构(例如OpenCV和OpenVX)进行开发的能力。


· 机器学习技术:使用如Caffe等架构来运行机器学习推论引擎的能力。


· 提高解析度和帧率:提高影像中每帧所需的资料处理。


根据不同应用,监控系统会运用相应的演算法,例如光学流演算来侦测影像内的动态。当立体视觉提供影像内的深度感知时,机器学习技术亦用於侦测和分类影像中的物体。



图1 : 应用实例面部侦测与分类
图1 : 应用实例面部侦测与分类
图2 : 应用实例光学流演算
图2 : 应用实例光学流演算

如All Programmable Zynq-7000和Zynq Ultrascale+ MPSoC等的异质系统元件逐渐被运用在监控系统应用上,而这些元件结合高效能Arm核心,来形成一个可编程逻辑(Processing Logic, PL)结构的处理系统(Processing System, PS)。


与传统方案相比,PL与PS的紧密耦合使建立的系统具更强的反应力、可重组能力及更高的功率效能。基於CPU/GPU的传统SoC方案需使用系统记忆体将影像从一个处理阶段传送到下个阶段,由於多个资源需要存取在同一个记忆体,因此会降低确定性并增加功耗与系统反应延迟,造成处理演算法的瓶颈,且该瓶颈会随着帧率和影像解析度的增加而加重。


当解决方案采用Zynq-7000或Zynq UltraScale+ MPSoC元件时,便能突破这个瓶颈。这些元件允许设计人员在元件的PL中运行影像处理管线,当在其中一个阶段的输出被传送到另一个阶段输入的PL中,设计真正的平行影像管线时,就能获得确定的反应时间,并同时缩短延迟以达到功耗最隹化的解决方案。


相较於仅有固定介面的传统CPU/GPU SoC方案,利用PL来运行影像处理管线,能拥有更广的介面能力。PL IO介面的弹性特质允许任意形式的连接,因此能支援如MIPI、Camera Link、HDMI等业界标准介面。此弹性还能达到客制传统介面,并进行升级以支援最新介面标准,且利用PL能让系统平行连接多个摄影机。


不过,最关键的是在无需使用硬体描述语言(如Verilog或VHDL)来重新编写高阶演算法下,来实现应用演算法的能力,这正是reVISION推叠的用武之地。



图3 : 传统CPU/GPU方案与Zynq-7000/Zynq UltraScale+ MPSoC的对比
图3 : 传统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等高阶架构提供支援。



图4 : reVISION推叠
图4 : 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等功能。



图5 : Caffe流程整合
图5 : Caffe流程整合

推论在机器学习推论引擎中所执行使用的数字表示系统,同时在效能上也扮演着重要的角色。机器学习应用逐渐使用更高效率、降低精度的定点数字系统,例如INT8表示法。


相较於传统的FP32,使用定点降低精度数字系统的准确度没有明显的损失。与浮点相比,定点运算更容易实现,因此改用INT8後,在一些执行上能达到更高效、快速的解决方案。可编程逻辑解决方案适合用於定点数字系统,而reVISION提供在PL中使用INT8表示法的能力。


这些INT8表示法允许在PL内使用专用的DSP模组。当使用同样的核心叁数时,这些DSP模组架构允许两个INT8乘积累加函数(Multiply Accumulate)运算同时执行。此方案不仅能提高效能执行,同时能降低功耗。凭藉可编程逻辑的灵活特性,也可以轻松实现精度更低的定点数字表示法。


结论

reVISION使开发人员能够有效利用Zynq-7000和Zynq UltraScale+ MPSoC元件所提供的功能,即便不是专家,亦能透过可编程逻辑来实现演算法。这些演算法和机器学习应用可通过高阶的业界标准架构来达成,进而缩短系统开发时程。这使开发人员能提供较高的反应性、可重组能力,以及更低功耗的最隹化系统。


(本文作者Nick Ni、Adam Taylor任职於Xilinx公司)


相关文章
跨出影像分类:更多关於深度学习应用
Versal:第一款自行调适运算加速平台(ACAP)
模壳断路器与低压电力断路器的健康状态
加速实现网路终端低功耗人工智慧应用
自动化与客制化成包装机械显学
comments powered by Disqus
相关讨论
  相关新闻
» Audi 扶植台湾优秀新创 发掘智慧移动的创意解方
» Moxa与趋势科技宣布共组公司 致力开发工业物联网资安防护应用
» AMD EPYC处理器打破世界纪录 加速产业体系建构
» 中国文化大学导入丽台NVIDIA VR Ready绘图卡 打造专业教学环境
» Arm针对Xilinx FPGA推出免授权费用的Cortex-M处理器
  相关产品
» Daimler运用Xilinx汽车AI技术 开发车载系统
» 安富利和赛灵思合作 消除嵌入式视觉复杂度
» Xilinx於OFC 2018展示未来光纤网路的突破技术与产品
» Xilinx开始供应车规级Zynq UltraScale+ MPSoC系列元件
» 精益科技推出SmartOffice PS186家务商务双达人

AD