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