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