監(jiān)控系統(tǒng)高度依賴嵌入式視覺系統(tǒng)所提供的功能,以加速在廣泛市場與應(yīng)用中的部署。這些監(jiān)控系統(tǒng)的用途非常廣泛,包括從事件與車流量監(jiān)控、安全與安防應(yīng)用,一直到ISR與商業(yè)智慧。此用途的多樣性帶來許多挑戰(zhàn),因此系統(tǒng)設(shè)計人員在解決方案時須加以克服。
這些挑戰(zhàn),包含:
? 多攝影機視覺:擁有連接多個同質(zhì)或異質(zhì)感測器類型的能力。
? 電腦視覺技術(shù):使用高階函式庫與架構(gòu)(例如OpenCV和OpenVX)進(jìn)行開發(fā)的能力。
? 機器學(xué)習(xí)技術(shù):使用如Caffe等架構(gòu)來運行機器學(xué)習(xí)推論引擎的能力。
? 提高解析度和幀率:提高影像中每幀所需的資料處理。
根據(jù)不同應(yīng)用,監(jiān)控系統(tǒng)會運用相應(yīng)的演算法,例如光學(xué)流演算來偵測影像內(nèi)的動態(tài)。當(dāng)立體視覺提供影像內(nèi)的深度感知時,機器學(xué)習(xí)技術(shù)亦用於偵測和分類影像中的物體。

圖2 : 應(yīng)用實例—光學(xué)流演算 |
|
如All Programmable Zynq-7000和Zynq Ultrascale+ MPSoC等的異質(zhì)系統(tǒng)元件逐漸被運用在監(jiān)控系統(tǒng)應(yīng)用上,而這些元件結(jié)合高效能Arm核心,來形成一個可編程邏輯(Processing Logic, PL)結(jié)構(gòu)的處理系統(tǒng)(Processing System, PS)。
與傳統(tǒng)方案相比,PL與PS的緊密耦合使建立的系統(tǒng)具更強的反應(yīng)力、可重組能力及更高的功率效能。基於CPU/GPU的傳統(tǒng)SoC方案需使用系統(tǒng)記憶體將影像從一個處理階段傳送到下個階段,由於多個資源需要存取在同一個記憶體,因此會降低確定性並增加功耗與系統(tǒng)反應(yīng)延遲,造成處理演算法的瓶頸,且該瓶頸會隨著幀率和影像解析度的增加而加重。
當(dāng)解決方案採用Zynq-7000或Zynq UltraScale+ MPSoC元件時,便能突破這個瓶頸。這些元件允許設(shè)計人員在元件的PL中運行影像處理管線,當(dāng)在其中一個階段的輸出被傳送到另一個階段輸入的PL中,設(shè)計真正的平行影像管線時,就能獲得確定的反應(yīng)時間,並同時縮短延遲以達(dá)到功耗最佳化的解決方案。
相較於僅有固定介面的傳統(tǒng)CPU/GPU SoC方案,利用PL來運行影像處理管線,能擁有更廣的介面能力。PL IO介面的彈性特質(zhì)允許任意形式的連接,因此能支援如MIPI、Camera Link、HDMI等業(yè)界標(biāo)準(zhǔn)介面。此彈性還能達(dá)到客制傳統(tǒng)介面,並進(jìn)行升級以支援最新介面標(biāo)準(zhǔn),且利用PL能讓系統(tǒng)平行連接多個攝影機。
不過,最關(guān)鍵的是在無需使用硬體描述語言(如Verilog或VHDL)來重新編寫高階演算法下,來實現(xiàn)應(yīng)用演算法的能力,這正是reVISION推疊的用武之地。

圖3 : 傳統(tǒng)CPU/GPU方案與Zynq-7000/Zynq UltraScale+ MPSoC的對比 |
|
reVISION推疊
reVISION推疊使開發(fā)人員能夠?qū)崿F(xiàn)電腦視覺和機器學(xué)習(xí)技術(shù),當(dāng)針對Zynq-7000和Zynq UltraScale+ MPSoC時,也能使用相同的高階架構(gòu)和函式庫。為此,reVISION廣泛地結(jié)合多種資源來支援平臺、應(yīng)用與演算法的開發(fā)。該推疊分為三個不同等級:
1.平臺開發(fā):此為推疊的最底層,且是剩餘推疊層的建構(gòu)基礎(chǔ)。該層為SDSoC 工具提供平臺定義。
2.演算法開發(fā):此為推疊的中間層,為需運用的演算法提供支援。同時該層亦支援影像處理和機器學(xué)習(xí)推論引擎加快轉(zhuǎn)移至可編程邏輯中。
3.應(yīng)用開發(fā):此為推疊的最高層,為業(yè)界標(biāo)準(zhǔn)架構(gòu)提供支援。該層利用平臺開發(fā)和演算法開發(fā)層來發(fā)展應(yīng)用。
推疊的演算法和應(yīng)用層是被設(shè)計來支援傳統(tǒng)影像處理流程與機器學(xué)習(xí)流程。在演算層中,支援用OpenCV函式庫開發(fā)影像處理演算法,這包含將多種OpenCV功能(包括OpenVX核心子集)加速轉(zhuǎn)移成可編程邏輯的能力。當(dāng)支援機器學(xué)習(xí)時,演算法開發(fā)層則提供幾種可放在PL中用以實現(xiàn)機器學(xué)習(xí)推論引擎的預(yù)先定義硬體功能,然後再由應(yīng)用開發(fā)層存取這些影像處理演算法與機器學(xué)習(xí)推論引擎,來創(chuàng)立最終應(yīng)用,並為OpenVX和Caffe等高階架構(gòu)提供支援。
reVISION堆疊能提供高效能監(jiān)控系統(tǒng)演算法所需的所有必要元素。
在reVISION中加速OpenCV
演算法開發(fā)層最重要的優(yōu)勢之一是能夠加速多種OpenCV功能。該層可加速的OpenCV功能可分成以下四種高階類別:
1.運算:包含兩個幀的絕對偏差、像素運算(加、減和乘)、梯度與積分運算等功能。
2.輸入處理:支援位元深度轉(zhuǎn)換、通道運算、直方圖等化、重新映射與尺寸重調(diào)等。
3.濾波:支援包含Sobel、自定義卷積和高斯濾波器等多種濾波器。
4.其他:提供Canny/Fast/Harris邊緣偵測、閥值以及SVM和 HoG分類器等多種功能。
這些功能構(gòu)成OpenVX子集的核心功能,能提供支援OpenVX的應(yīng)用開發(fā)層緊密的整合。開發(fā)團(tuán)隊能利用這些功能在可編程邏輯中創(chuàng)立演算法管線,若能以此方式在邏輯中實現(xiàn)這些功能,便能明顯得提高演算法的運行效能。
reVISION中的機器學(xué)習(xí)
reVISION提供與Caffe的整合,以實現(xiàn)機器學(xué)習(xí)推論引擎。與Caffe的整合發(fā)生在演算法和應(yīng)用開發(fā)層。Caffe架構(gòu)在C++函式庫中為開發(fā)人員提供一系列的函式庫、模型和預(yù)先訓(xùn)練的參數(shù),以及Python和MATLAB捆綁程序。該架構(gòu)在無需重新開始的狀況下,讓用戶能建立和訓(xùn)練網(wǎng)路,以執(zhí)行所需的運算。為便於模型重用,Caffe用戶可通過模型庫(model zoo)共享模型;其模型庫中提供多個網(wǎng)路模型,用戶可針對指定的任務(wù)來執(zhí)行和更新。推論這些網(wǎng)路和參數(shù)則在prototxt檔案中被定義,且當(dāng)在機器學(xué)習(xí)環(huán)境中部署時,此檔案則用來定義推論引擎。
reVISION提供Caffe整合功能,使機器學(xué)習(xí)推論引擎的執(zhí)行非常簡單,剩下的工作皆由架構(gòu)來完成,只需提供prototxt文件即可。接著,此prototxt檔案來配置處理系統(tǒng)及可編程邏輯中的硬體最佳化函式庫,而可編程邏輯則用來質(zhì)行推論引擎,並包含Conv、ReLu、Pooling等功能。
推論在機器學(xué)習(xí)推論引擎中所執(zhí)行使用的數(shù)字表示系統(tǒng),同時在效能上也扮演著重要的角色。機器學(xué)習(xí)應(yīng)用逐漸使用更高效率、降低精度的定點數(shù)字系統(tǒng),例如INT8表示法。
相較於傳統(tǒng)的FP32,使用定點降低精度數(shù)字系統(tǒng)的準(zhǔn)確度沒有明顯的損失。與浮點相比,定點運算更容易實現(xiàn),因此改用INT8後,在一些執(zhí)行上能達(dá)到更高效、快速的解決方案。可編程邏輯解決方案適合用於定點數(shù)字系統(tǒng),而reVISION提供在PL中使用INT8表示法的能力。
這些INT8表示法允許在PL內(nèi)使用專用的DSP模組。當(dāng)使用同樣的核心參數(shù)時,這些DSP模組架構(gòu)允許兩個INT8乘積累加函數(shù)(Multiply Accumulate)運算同時執(zhí)行。此方案不僅能提高效能執(zhí)行,同時能降低功耗。憑藉可編程邏輯的靈活特性,也可以輕鬆實現(xiàn)精度更低的定點數(shù)字表示法。
結(jié)論
reVISION使開發(fā)人員能夠有效利用Zynq-7000和Zynq UltraScale+ MPSoC元件所提供的功能,即便不是專家,亦能透過可編程邏輯來實現(xiàn)演算法。這些演算法和機器學(xué)習(xí)應(yīng)用可通過高階的業(yè)界標(biāo)準(zhǔn)架構(gòu)來達(dá)成,進(jìn)而縮短系統(tǒng)開發(fā)時程。這使開發(fā)人員能提供較高的反應(yīng)性、可重組能力,以及更低功耗的最佳化系統(tǒng)。
(本文作者Nick Ni、Adam Taylor任職於Xilinx公司)