<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 消費電子 > 設計應用 > 借助reVISION加速監控系統的開(kāi)發(fā)

借助reVISION加速監控系統的開(kāi)發(fā)

作者: 時(shí)間:2018-07-25 來(lái)源:網(wǎng)絡(luò ) 收藏

監控系統嚴重依靠視覺(jué)系統提供的功能加速在廣泛市場(chǎng)和系統中的部署。這些監控系統的用途非常廣泛,包括事件和流量監控、安全與安防用途、ISR 和商業(yè)智能。用途的多樣性也帶來(lái)了幾大挑戰,需要系統設計人員在解決方案中加以解決。它們是:

本文引用地址:http://dyxdggzs.com/article/201807/383750.htm

● 多攝像頭視覺(jué) – 能夠連接多個(gè)同類(lèi)或異類(lèi)類(lèi)型。

● 計算機視覺(jué)技術(shù) - 能夠使用高級庫和框架(例如 OpenCV 和 OpenVX)進(jìn)行開(kāi)發(fā)。

● 機器學(xué)習技術(shù) – 能夠使用框架(例如 Caffe)來(lái)實(shí)現機器學(xué)習推斷引擎。

● 提高分辨率和幀率 – 提高每個(gè)圖像幀所需的數據處理。

根據用途,監控系統會(huì )實(shí)現相應算法(例如光流法)以檢測圖像內的運動(dòng)。立體視覺(jué)提供圖像內的深度知覺(jué),也使用機器學(xué)習技術(shù)來(lái)檢測和分類(lèi)圖像中的對象。

圖 1 - 實(shí)例應用(上:面部檢測與分類(lèi),下:光流)

異構系統器件,例如 All Programmable Zynq®-7000 和 Zynq® Ultrascale+™ MPSoC,正越來(lái)越多地應用于監控系統的開(kāi)發(fā)。這些器件是可編程邏輯(PL)架構與高性能 ARM® 內核處理器系統(PS)的完美結合。

與傳統方案相比,PL 與 PS 的緊密耦合使得創(chuàng )建的系統具有更強的響應能力、可重配置能力以及更高的能效?;?CPU/GPU 的傳統 SoC 需要使用系統存儲器將圖像從一個(gè)處理階段傳送到下個(gè)階段。這會(huì )降低確定性并增大功耗和系統響應時(shí)延,因為多個(gè)資源需要訪(fǎng)問(wèn)同一個(gè)存儲器,造成處理算法瓶頸。該瓶頸隨幀率和圖像分辨率增加而加重。

當解決方案采用 Zynq-7000 或 Zynq UltraScale+ MPSoC 器件實(shí)現時(shí),就會(huì )打破這個(gè)瓶頸。這些器件允許設計人員在器件的 PL 中實(shí)現圖像處理流水線(xiàn)。在 PL 中創(chuàng )建真正的并行圖像流水線(xiàn),其中一個(gè)階段的輸出被傳送到另一個(gè)階段的輸入。這樣能獲得確定的響應時(shí)間,縮短時(shí)延,實(shí)現功耗最佳解決方案。

利用 PL 實(shí)現圖像處理流水線(xiàn),還能獲得比傳統 CPU/GPU SoC 方案更寬的接口能力,而后者只能獲得固定接口。PL IO 接口的靈活特性允許任意連接,支持 MIPI、Camera Link、HDMI 等行業(yè)標準接口。這種靈活特性還能實(shí)現定制傳統接口,而且能進(jìn)行升級以支持最新接口標準。利用 PL,還可以讓系統并行連接多個(gè)攝像頭。

不過(guò),最關(guān)鍵的是實(shí)現應用算法,而且無(wú)需用硬件描述語(yǔ)言(例如 Verilog 或 VHDL)重新編寫(xiě)所有高級算法。這正是 reVISION™ 堆棧的用武之地。

圖 2 - 傳統 CPU/GPU 方案與 Zynq-7000/Zynq UltraScale+ MPSoC 的對比

reVISION 堆棧

reVISION 堆棧使開(kāi)發(fā)人員能夠實(shí)現計算機視覺(jué)和機器學(xué)習技術(shù)。在這里,針對 Zynq-7000 和 Zynq UltraScale+ MPSoC 的高級框架和庫同樣適用。為此,reVISION 將支持平臺、應用和算法開(kāi)發(fā)的多種資源完美結合在一起。該堆棧分為三個(gè)不同等級:

1、平臺開(kāi)發(fā) - 這是堆棧的最底層,是剩余堆棧層的構建基礎。該層為 SDSoC™ 工具提供平臺定義。

2、 算法開(kāi)發(fā) – 這是堆棧的中間層,為所需算法的實(shí)現提供支持。該層有助于圖像處理和機器學(xué)習推斷引擎加快向可編程邏輯中轉移。

3、應用開(kāi)發(fā) – 這是堆棧的最高層,可提供行業(yè)標準框架支持。該層用來(lái)開(kāi)發(fā)應用,以便利用平臺開(kāi)發(fā)和算法開(kāi)發(fā)層。

堆棧的算法和應用層支持傳統圖像處理流程和機器學(xué)習流程。在算法層中,支持用 OpenCV 庫開(kāi)發(fā)圖像處理算法。這包括:能將多種 OpenCV 功能(包括 OpenVX 內核子集)加速放在可編程邏輯中實(shí)現。為支持機器學(xué)習,算法開(kāi)發(fā)層提供幾種可以放在 PL 中用以實(shí)現機器學(xué)習推斷引擎的預定義硬件功能。然后,由應用開(kāi)發(fā)層訪(fǎng)問(wèn)這些圖像處理算法和機器學(xué)習推斷引擎,用以創(chuàng )建最終應用,并為 OpenVX 和 Caffe 等高級框架提供支持。

圖 3 - reVISION 堆棧

reVISION 堆棧能提供所有必要元素,用以實(shí)現高性能監控系統所需的算法。

在 reVISION 中加速 OpenCV

算法開(kāi)發(fā)層的最重要優(yōu)勢之一是能夠加速多種 OpenCV 功能。該層中,可加速的 OpenCV 功能被分成四個(gè)高級類(lèi)別。

1、計算 – 包括的功能有:兩個(gè)幀的絕對偏差、像素運算(加、減和乘)、梯度和積分運算。

2、輸入處理 – 支持位深度轉換、通道運算、直方圖均衡化、重新映射和尺寸重調整。

3、濾波 - 支持多種濾波器,包括 Sobel、自定義卷積和高斯濾波器。

4、其他 – 提供多種功能,包括 Canny/Fast/Harris 邊緣檢測、閥值以及 SVM 和 HoG 分級器。

這些功能構成了 OpenVX 子集的核心功能,能夠針對 OpenVX 與應用開(kāi)發(fā)層緊密集成。開(kāi)發(fā)團隊可利用這些功能在可編程邏輯中創(chuàng )建算法流水線(xiàn)。以此方式在邏輯中實(shí)現這些功能,這樣能顯著(zhù)提高算法實(shí)現性能。

reVISION 中的機器學(xué)習

reVISION 提供與 Caffe 的集成,能夠實(shí)現機器學(xué)習推斷引擎。與 Caffe 的集成發(fā)生在算法開(kāi)發(fā)層和應用開(kāi)發(fā)層。Caffe 框架在 C++ 庫中為開(kāi)發(fā)人員提供大量函數庫、模型和預訓練的權重,以及 Python™ 和 MATLAB® 捆綁程序。該框架使用戶(hù)能夠創(chuàng )建和訓練網(wǎng)絡(luò ),以執行所需的運算,無(wú)需重新開(kāi)始。為便于模型重用,Caffe 用戶(hù)可通過(guò)模型庫(model zoo)共享模型;庫中提供多個(gè)網(wǎng)絡(luò )模型,用戶(hù)可針對專(zhuān)門(mén)的任務(wù)實(shí)現和更新網(wǎng)絡(luò )模型。在 prototxt 文件中定義這些網(wǎng)絡(luò )和權重,當在機器學(xué)習環(huán)境中部署時(shí),使用該文件來(lái)定義推斷引擎。

reVISION 提供 Caffe 集成功能,使機器學(xué)習推斷引擎的實(shí)現非常簡(jiǎn)單,只需提供 prototxt 文件即可;剩下的工作由框架來(lái)完成。然后,使用這個(gè) prototxt 文件來(lái)配置處理系統以及可編程邏輯中的硬件優(yōu)化庫??删幊踢壿嬘脕?lái)實(shí)現推斷引擎,并包含 Conv、ReLu、Pooling 等功能。

圖 4 - Caffe 流程集成

機器學(xué)習推斷引擎中的數字表達對性能也起到重要作用。機器學(xué)習越來(lái)越多地使用更為高效、降低精度的定點(diǎn)數字系統,例如 INT8 表達法。與傳統的浮點(diǎn) 32 (FP32)方法相比,定點(diǎn)降精度數字系統不會(huì )造成較大精度損失。與浮點(diǎn)相比,定點(diǎn)運算更易于實(shí)現,因此改用 INT8 后能實(shí)現更高效、快速的解決方案??删幊踢壿嫿鉀Q方案最適合使用定點(diǎn)數字,reVISION 能在 PL 中使用 INT8 表達法。采用 INT8 表達法后,可在 PL 中使用專(zhuān)用 DSP 模塊。有了這些 DSP 模塊的架構,當使用相同的內核權重時(shí),可同時(shí)執行兩個(gè) INT8 乘法累積運算。這樣不僅能獲得高性能實(shí)現方案,而且可以降低功耗。憑借可編程邏輯的靈活特性,也可以輕松實(shí)現精度更低的定點(diǎn)數字表達形式。

結論

reVISION 使開(kāi)發(fā)人員能夠利用 Zynq-7000 和 Zynq UltraScale+ MPSoC 器件所提供的功能。而且,即使不是專(zhuān)家也能利用可編程邏輯來(lái)實(shí)現算法。這些算法和機器學(xué)習應用可通過(guò)高級的行業(yè)標準框架來(lái)實(shí)現,從而縮短系統開(kāi)發(fā)時(shí)間。這使開(kāi)發(fā)人員能夠提供響應性和可重配置能力更強而且功耗更加優(yōu)化的系統。



關(guān)鍵詞: 嵌入式 傳感器

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>