在目前的嵌入式視覺領域中,熱門的話題之一就是機器學習。機器學習涵蓋多個產(chǎn)業(yè)重要趨勢,不僅是嵌入式視覺,而且在工業(yè)物聯(lián)網(wǎng)和云端運算中均發(fā)揮極為顯著的作用。下面粵嵌為你解讀一下機器學習如何提升嵌入式視覺應用。
機器學習是一個復雜的課題,尤其是如果每一次都得從頭開始,定義網(wǎng)絡、網(wǎng)絡架構以及產(chǎn)生訓練算法。為了協(xié)助工程師實作網(wǎng)絡和訓練網(wǎng)絡,有一些產(chǎn)業(yè)標準架構可供使用,例如Caffe和Tensor Flow。Caffe架構為機器學習開發(fā)人員提供各種工具庫、模型以及具有C++庫的預訓練權重,同時提供Python和Matlab綁定。該架構能讓使用者無需從頭開始,就能建立并訓練網(wǎng)絡,以執(zhí)行所需的運算。
對于許多應用來說,低延遲的決策與反應時間極為重要,例如視覺導向的自主機器人,其響應時間對于避免對人員造成傷害、對環(huán)境造成破壞至關重要。增加反應時間的具體方法是使用可編程邏輯,實作視覺處理流水線,以及使用機器學習推斷引擎實現(xiàn)機器學習。相較于傳統(tǒng)的解決方案,在這方面使用可編程邏輯,能夠減少系統(tǒng)瓶頸問題。在使用基于CPU/GPU的方法時,每一階段的運算都必須使用外部DDR,因為影像不能在有限的內部快取功能之間傳遞??删幊踢壿嬐緩阶寖炔縍AM得以按需要提供緩沖,從而實現(xiàn)串流的方法。如此則可免于DDR內儲存中介元素,不僅減少圖像處理的延遲,同時也降低了功耗,甚至提高了確定性,因為無需與其他系統(tǒng)資源共享存取。
在異質SoC中實現(xiàn)圖像處理算法和機器學習網(wǎng)絡,可透過諸如reVISION堆棧等工具來實現(xiàn)。reVISION能同時支持傳統(tǒng)影像應用,以及基于SDSoC工具的機器學習應用;reVISION并同時支持OpenVX和Caffe Framework。為了支持OpenVX架構,核心的圖像處理功能可被加速至可編程邏輯中,以建立圖像處理管線。同時,機器學習推論環(huán)境支持可編程邏輯中的硬件優(yōu)化工具庫,以實現(xiàn)執(zhí)行機器學習實作方案的推論引擎。機器學習推論引擎實作方案中所使用的數(shù)值顯示系統(tǒng),也對機器學習的性能發(fā)揮重要影響。
真實世界性能。在嵌入式視覺應用中使用機器學習的應用實例之一是車輛的避免碰撞系統(tǒng)。以reVISION堆棧針對Xilinx UltraScale+MPSoC開發(fā)相關應用,使用SDSoC為可編程邏輯的各項功能進行加速,以達到優(yōu)化性能,能明顯提高反應程度。
機器學習結合處理器核心與可編程邏輯的異質SoC,能打造出十分高效、反應快且可重配置的解決方案。以上是粵嵌為你解讀一下機器學習如何提升嵌入式視覺應用。