試想一下,在一個(gè)通常性能受限的嵌入式架構(gòu)中去跑復(fù)雜的視覺(jué)處理算法,還要平衡功耗、尺寸、成本、開發(fā)周期等因素,確實(shí)不容易。如果你面對(duì)的是工業(yè)或汽車這種對(duì)實(shí)時(shí)性和可靠性要求較高的場(chǎng)合,視覺(jué)處理要又快又準(zhǔn),容不得半點(diǎn)閃失。而且現(xiàn)在都人工智能(AI)時(shí)代了來(lái)了,機(jī)器學(xué)習(xí)是不是也應(yīng)該支持一下?所以,嵌入式視覺(jué)開發(fā)者頭上總會(huì)有個(gè)大大的“鴨梨”。
不過(guò),這個(gè)世界上總是會(huì)有人在琢磨“如何將復(fù)雜的事情變得簡(jiǎn)單”。在嵌入式視覺(jué)開發(fā)這件事上,如何為開發(fā)者“減負(fù)”,已經(jīng)有了許多好方案擺在我們面前了。
我們先從硬件上來(lái)看。單一處理器架構(gòu)當(dāng)然更容易上手,但是開發(fā)者總免不了要在性能和靈活性、可擴(kuò)展性上做折中。直到賽靈思推出了Zynq這種全新架構(gòu)的FPGA SoC器件,大家才眼前一亮。Zynq是一種異構(gòu)處理器,內(nèi)部既包含嵌入式處理器(PS),也有可編程邏輯電路(PL)。
嵌入式視覺(jué)開發(fā)者可以根據(jù)需要將計(jì)算任務(wù)在兩個(gè)系統(tǒng)間進(jìn)行分配,十分靈活。通常可以將高性能的視覺(jué)處理功能放在PL上做加速,這自然比用通用CPU處理更高效。由于PL是硬件可編程的,所以開發(fā)者可以復(fù)用成熟的IP,也可以根據(jù)算法編寫自己的定制化IP,實(shí)現(xiàn)與眾不同視覺(jué)處理效果。
為了更好地支持高性能視覺(jué)處理的應(yīng)用開發(fā),賽靈思特別推出了Zynq Ultrascale+ MPSoC,與上一代Zynq相比,該器件提升了性能,同時(shí)為了應(yīng)對(duì)實(shí)時(shí)性視覺(jué)處理做了專門的優(yōu)化。我們看看Zynq Ultrascale+ MPSoC的核心資源配置,就明白了:
四個(gè)ARM Cortex-A53 CPU,算力不俗,可以支持功能復(fù)雜的OS,如Linux。
兩個(gè)ARM Cortex R5F實(shí)時(shí)處理器(RPU),可工作在鎖步和獨(dú)立運(yùn)行模式,鎖步模式可用于安全性要求嚴(yán)苛的場(chǎng)合。
一個(gè)Mali-400圖形處理器,用于2D/3D圖形顯示,可提供高質(zhì)量的視頻顯示輸出。
不夸張地說(shuō),Zynq Ultrascale+ MPSoC就是一顆“為嵌入式視覺(jué)”而生的器件,豐富的硬件資源能夠讓開發(fā)者達(dá)到事半功倍的目的。
圖1,Zynq Ultrascale+ MPSoC將嵌入式視覺(jué)作為其主攻應(yīng)用市場(chǎng)(圖片來(lái)源:賽靈思)
硬件架構(gòu)能夠滿足要求了,但這并不意味著就能玩轉(zhuǎn)嵌入式視頻開發(fā)。以往在開發(fā)者心中,想和FPGA打交道,要學(xué)會(huì)要用專門的硬件描述語(yǔ)言寫HDL代碼,這并不容易,更何況現(xiàn)在面對(duì)的Zynq Ultrascale+ MPSoC是一個(gè)更復(fù)雜的FPGA+CPU的“異構(gòu)”系統(tǒng)。
這個(gè)顧慮,賽靈思早已經(jīng)料到了,所以他們?cè)谕瞥鯶ynq之后,也開發(fā)出了一個(gè)“軟件定義”的工具套件,讓FPGA SoC的開發(fā)變得更容易,這就是SDSoC。
對(duì)于SDSoC比較通俗的理解就是,它將FPGA SoC所需的開發(fā)工具和資源庫(kù)整合在一個(gè)統(tǒng)一的開發(fā)環(huán)境中,讓以往需要由系統(tǒng)架構(gòu)、硬件設(shè)計(jì)、軟件開發(fā)等不同團(tuán)隊(duì)協(xié)調(diào)合作、反復(fù)迭代才能完成的復(fù)雜設(shè)計(jì)開發(fā)流程,以更為自動(dòng)化的方式得以實(shí)現(xiàn),簡(jiǎn)化了工作,提高了效率。
SDSoC的核心愿景就是:讓更多只有很少或根本沒(méi)有FPGA設(shè)計(jì)經(jīng)驗(yàn)的研發(fā)人員,無(wú)需寫一行RTL代碼,就可以直接使用高級(jí)編程語(yǔ)言編程,體驗(yàn)到可編程硬件的的強(qiáng)大能力,并且可以與通用處理器系統(tǒng)一起協(xié)同工作。就嵌入式視覺(jué)開發(fā)而言,開發(fā)者使用SDSoC后,可以將更多的時(shí)間和精力從繁復(fù)的底層開發(fā)工作中解放出來(lái),去考慮算法的優(yōu)化這類可以給產(chǎn)品帶來(lái)更多差異化和附加值的高層次、系統(tǒng)級(jí)的問(wèn)題。
圖2,SDSoC典型開發(fā)流程(圖片來(lái)源:賽靈思)
可見,SDSoC的出現(xiàn)讓基于Zynq Ultrascale+ MPSoC這類嵌入式視覺(jué)硬件平臺(tái)的開發(fā)效率大為提升。但是,你別以為這就大功告成了。市場(chǎng)的發(fā)展會(huì)不斷給你提出新的需求,比如說(shuō)如果今天你還沒(méi)有考慮為嵌入式視覺(jué)系統(tǒng)加入機(jī)器學(xué)習(xí)功能,明天你的產(chǎn)品可能就OUT了。
想要在設(shè)計(jì)上“追新”不掉隊(duì),傳統(tǒng)的視覺(jué)處理設(shè)計(jì)思路就要改變——開發(fā)者要從費(fèi)時(shí)費(fèi)力的自己做HDL編程優(yōu)化,轉(zhuǎn)向充分利用現(xiàn)有的成熟、經(jīng)過(guò)驗(yàn)證的IP資源,通過(guò)軟件定義的方式獲得所需的視覺(jué)加速性能。賽靈思的reVISION堆棧就是一個(gè)將實(shí)現(xiàn)新思路所需的所有要素整合在一起的系統(tǒng)環(huán)境。
reVISION堆棧包括豐富的平臺(tái)、算法和應(yīng)用開發(fā)資源,支持最流行的神經(jīng)網(wǎng)絡(luò),如AlexNet、GoogLeNet、SqueezeNet、SSD和FCN等。此外,該堆棧還提供庫(kù)元素,包括預(yù)定義和優(yōu)化的CNN網(wǎng)絡(luò)層實(shí)現(xiàn),這是構(gòu)建定制神經(jīng)網(wǎng)絡(luò)(DNN(深度神經(jīng)網(wǎng)絡(luò))/CNN(卷積神經(jīng)網(wǎng)絡(luò)))所必需的。
機(jī)器學(xué)習(xí)元素還配合一系列豐富的支持加速功能的OpenCV功能,滿足計(jì)算機(jī)視覺(jué)處理要求。針對(duì)應(yīng)用層開發(fā),賽靈思支持工業(yè)級(jí)框架,包括面向機(jī)器學(xué)習(xí)的Caffe和面向計(jì)算機(jī)視覺(jué)的OpenVX。reVISION堆棧還包括了賽靈思和第三方提供的開發(fā)平臺(tái)以及各類傳感器。
用reVISION的開發(fā)流程也很簡(jiǎn)單,在SDSoC開發(fā)環(huán)境中,軟件工程師和系統(tǒng)工程師可以 reVISION硬件平臺(tái)為目標(biāo),并調(diào)用大量的加速就緒型計(jì)算機(jī)視覺(jué)庫(kù)進(jìn)行開發(fā),快速構(gòu)建應(yīng)用。
按照賽靈思的說(shuō)法,采用傳統(tǒng)的RTL流程進(jìn)行視覺(jué)處理開發(fā),賽靈思的FPGA可以幫助用戶完成20%的工作,用戶需要解決剩余的80%問(wèn)題;而基于reVISION的開發(fā)則可以幫助用戶完成80%的工作量,用戶只需做剩下的20%即可,效率的提升十分顯著。
圖3,采用reVISION的軟件定義設(shè)計(jì)流程(圖片來(lái)源:賽靈思)
總之,一個(gè)為視頻處理專門優(yōu)化的硬件架構(gòu)Zynq Ultrascale+ MPSoC、一個(gè)簡(jiǎn)單易用低門檻兒的SDSoC開發(fā)環(huán)境、一個(gè)資源豐富的reVISION堆棧,構(gòu)成了嵌入式視覺(jué)開發(fā)“三件套”,它們可以幫助開發(fā)者大幅減少工作負(fù)荷、提升設(shè)計(jì)效率。一旦擁有,做個(gè)嵌入式視覺(jué)開發(fā)者,是不是件幸福的事兒?
圖4,安富利推出的MicroZed嵌入式視覺(jué)開發(fā)套件,結(jié)合reVISION可以為開發(fā)者提供全面的嵌入式視覺(jué)設(shè)計(jì)開發(fā)支持
-
嵌入式
+關(guān)注
關(guān)注
5068文章
19019瀏覽量
303292 -
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8377瀏覽量
132409
原文標(biāo)題:必備且必會(huì)!嵌入式視覺(jué)開發(fā)減負(fù)“三件套”
文章出處:【微信號(hào):AvnetAsia,微信公眾號(hào):安富利】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論