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