監(jiān)控系統(tǒng)嚴重依靠嵌入式視覺系統(tǒng)提供的功能加速在廣泛市場和系統(tǒng)中的部署。這些監(jiān)控系統(tǒng)的用途非常廣泛,包括事件和流量監(jiān)控、安全與安防用途、ISR 和商業(yè)智能。用途的多樣性也帶來了幾大挑戰(zhàn),需要系統(tǒng)設計人員在解決方案中加以解決。它們是:
●多攝像頭視覺– 能夠連接多個同類或異類傳感器類型。
●計算機視覺技術- 能夠使用高級庫和框架(例如 OpenCV 和 OpenVX)進行開發(fā)。
●機器學習技術– 能夠使用框架(例如 Caffe)來實現(xiàn)機器學習推斷引擎。
●提高分辨率和幀率– 提高每個圖像幀所需的數(shù)據(jù)處理。
根據(jù)用途,監(jiān)控系統(tǒng)會實現(xiàn)相應算法(例如光流法)以檢測圖像內(nèi)的運動。立體視覺提供圖像內(nèi)的深度知覺,也使用機器學習技術來檢測和分類圖像中的對象。
圖 1 - 實例應用(上:面部檢測與分類,下:光流)
異構系統(tǒng)器件,例如 All Programmable Zynq?-7000 和 Zynq? Ultrascale+? MPSoC,正越來越多地應用于監(jiān)控系統(tǒng)的開發(fā)。這些器件是可編程邏輯(PL)架構與高性能 ARM? 內(nèi)核處理器系統(tǒng)(PS)的完美結合。
與傳統(tǒng)方案相比,PL 與 PS 的緊密耦合使得創(chuàng)建的系統(tǒng)具有更強的響應能力、可重配置能力以及更高的能效?;?CPU/GPU 的傳統(tǒng) SoC 需要使用系統(tǒng)存儲器將圖像從一個處理階段傳送到下個階段。這會降低確定性并增大功耗和系統(tǒng)響應時延,因為多個資源需要訪問同一個存儲器,造成處理算法瓶頸。該瓶頸隨幀率和圖像分辨率增加而加重。
當解決方案采用 Zynq-7000 或 Zynq UltraScale+ MPSoC 器件實現(xiàn)時,就會打破這個瓶頸。這些器件允許設計人員在器件的 PL 中實現(xiàn)圖像處理流水線。在 PL 中創(chuàng)建真正的并行圖像流水線,其中一個階段的輸出被傳送到另一個階段的輸入。這樣能獲得確定的響應時間,縮短時延,實現(xiàn)功耗最佳解決方案。
利用 PL 實現(xiàn)圖像處理流水線,還能獲得比傳統(tǒng) CPU/GPU SoC 方案更寬的接口能力,而后者只能獲得固定接口。PL IO 接口的靈活特性允許任意連接,支持 MIPI、Camera Link、HDMI 等行業(yè)標準接口。這種靈活特性還能實現(xiàn)定制傳統(tǒng)接口,而且能進行升級以支持最新接口標準。利用 PL,還可以讓系統(tǒng)并行連接多個攝像頭。
不過,最關鍵的是實現(xiàn)應用算法,而且無需用硬件描述語言(例如 Verilog 或 VHDL)重新編寫所有高級算法。這正是 reVISION? 堆棧的用武之地。
圖 2 - 傳統(tǒng) CPU/GPU 方案與 Zynq-7000/Zynq UltraScale+ MPSoC 的對比
reVISION 堆棧
reVISION 堆棧使開發(fā)人員能夠?qū)崿F(xiàn)計算機視覺和機器學習技術。在這里,針對 Zynq-7000 和 Zynq UltraScale+ MPSoC 的高級框架和庫同樣適用。為此,reVISION 將支持平臺、應用和算法開發(fā)的多種資源完美結合在一起。該堆棧分為三個不同等級:
-
平臺開發(fā) - 這是堆棧的最底層,是剩余堆棧層的構建基礎。該層為 SDSoC? 工具提供平臺定義。
-
算法開發(fā) – 這是堆棧的中間層,為所需算法的實現(xiàn)提供支持。該層有助于圖像處理和機器學習推斷引擎加快向可編程邏輯中轉(zhuǎn)移。
-
應用開發(fā) – 這是堆棧的最高層,可提供行業(yè)標準框架支持。該層用來開發(fā)應用,以便利用平臺開發(fā)和算法開發(fā)層。
堆棧的算法和應用層支持傳統(tǒng)圖像處理流程和機器學習流程。在算法層中,支持用 OpenCV 庫開發(fā)圖像處理算法。這包括:能將多種 OpenCV 功能(包括 OpenVX 內(nèi)核子集)加速放在可編程邏輯中實現(xiàn)。為支持機器學習,算法開發(fā)層提供幾種可以放在 PL 中用以實現(xiàn)機器學習推斷引擎的預定義硬件功能。然后,由應用開發(fā)層訪問這些圖像處理算法和機器學習推斷引擎,用以創(chuàng)建最終應用,并為 OpenVX 和 Caffe 等高級框架提供支持。
圖 3 - reVISION 堆棧
reVISION 堆棧能提供所有必要元素,用以實現(xiàn)高性能監(jiān)控系統(tǒng)所需的算法。
在 reVISION 中加速 OpenCV
算法開發(fā)層的最重要優(yōu)勢之一是能夠加速多種 OpenCV 功能。該層中,可加速的 OpenCV 功能被分成四個高級類別。
-
計算 – 包括的功能有:兩個幀的絕對偏差、像素運算(加、減和乘)、梯度和積分運算。
-
輸入處理 – 支持位深度轉(zhuǎn)換、通道運算、直方圖均衡化、重新映射和尺寸重調(diào)整。
-
濾波 - 支持多種濾波器,包括 Sobel、自定義卷積和高斯濾波器。
-
其他 – 提供多種功能,包括 Canny/Fast/Harris 邊緣檢測、閥值以及 SVM 和 HoG 分級器。
這些功能構成了 OpenVX 子集的核心功能,能夠針對 OpenVX 與應用開發(fā)層緊密集成。開發(fā)團隊可利用這些功能在可編程邏輯中創(chuàng)建算法流水線。以此方式在邏輯中實現(xiàn)這些功能,這樣能顯著提高算法實現(xiàn)性能。
reVISION 中的機器學習
reVISION 提供與 Caffe 的集成,能夠?qū)崿F(xiàn)機器學習推斷引擎。與 Caffe 的集成發(fā)生在算法開發(fā)層和應用開發(fā)層。Caffe 框架在 C++ 庫中為開發(fā)人員提供大量函數(shù)庫、模型和預訓練的權重,以及 Python? 和 MATLAB? 捆綁程序。該框架使用戶能夠創(chuàng)建和訓練網(wǎng)絡,以執(zhí)行所需的運算,無需重新開始。為便于模型重用,Caffe 用戶可通過模型庫(model zoo)共享模型;庫中提供多個網(wǎng)絡模型,用戶可針對專門的任務實現(xiàn)和更新網(wǎng)絡模型。在 prototxt 文件中定義這些網(wǎng)絡和權重,當在機器學習環(huán)境中部署時,使用該文件來定義推斷引擎。
reVISION 提供 Caffe 集成功能,使機器學習推斷引擎的實現(xiàn)非常簡單,只需提供 prototxt 文件即可;剩下的工作由框架來完成。然后,使用這個 prototxt 文件來配置處理系統(tǒng)以及可編程邏輯中的硬件優(yōu)化庫??删幊踢壿嬘脕韺崿F(xiàn)推斷引擎,并包含 Conv、ReLu、Pooling 等功能。
圖 4 - Caffe 流程集成
機器學習推斷引擎中的數(shù)字表達對性能也起到重要作用。機器學習越來越多地使用更為高效、降低精度的定點數(shù)字系統(tǒng),例如 INT8 表達法。與傳統(tǒng)的浮點 32 (FP32)方法相比,定點降精度數(shù)字系統(tǒng)不會造成較大精度損失。與浮點相比,定點運算更易于實現(xiàn),因此改用 INT8 后能實現(xiàn)更高效、快速的解決方案??删幊踢壿嫿鉀Q方案最適合使用定點數(shù)字,reVISION 能在 PL 中使用 INT8 表達法。采用 INT8 表達法后,可在 PL 中使用專用 DSP 模塊。有了這些 DSP 模塊的架構,當使用相同的內(nèi)核權重時,可同時執(zhí)行兩個 INT8 乘法累積運算。這樣不僅能獲得高性能實現(xiàn)方案,而且可以降低功耗。憑借可編程邏輯的靈活特性,也可以輕松實現(xiàn)精度更低的定點數(shù)字表達形式。
結論
reVISION 使開發(fā)人員能夠利用 Zynq-7000 和 Zynq UltraScale+ MPSoC 器件所提供的功能。而且,即使不是專家也能利用可編程邏輯來實現(xiàn)算法。這些算法和機器學習應用可通過高級的行業(yè)標準框架來實現(xiàn),從而縮短系統(tǒng)開發(fā)時間。這使開發(fā)人員能夠提供響應性和可重配置能力更強而且功耗更加優(yōu)化的系統(tǒng)。
-
賽靈思
+關注
關注
32文章
1794瀏覽量
131283 -
reVISION
+關注
關注
0文章
3瀏覽量
4115
原文標題:借助 reVISION 加速監(jiān)控系統(tǒng)的開發(fā)
文章出處:【微信號:xilinx_inc,微信公眾號:賽靈思】歡迎添加關注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關推薦
評論