嵌入式視覺可劃分為兩個高級類別;感知環境和采取行動。視覺導向的機器人和無人機屬于后面的采取行動類。
在民用領域,目前無人機是商業、醫療、農業、廣播和執法應用中最熱門的話題之一。對許多這樣的應用,無人機可提供顯著的優勢。在廣播和執法領域,無人機能夠以低得多的成本提供之前需要直升機才能提供的能力。無人機還能執行預訂服務,例如,即將推出的 Amazon Prime (亞馬遜貴賓會員) 交貨服務,或者如烏干達偏遠地區的醫療產品交貨服務。在農業應用中,無人機能使用高光譜成像來判斷作物的健康狀況。而這些應用, 只不過是目前已經在使用或正在考慮使用無人機技術的廣泛應用的冰山一角。
農業無人機應用示例
§ 嵌入式視覺應用趨勢
這些應用,綜合起來體現著我們在嵌入式視覺總體環境中觀察到的嵌入式視覺當前四大普遍趨勢中的三大趨勢:
1. 邊緣 (edge)端通過機器學習獲得的智能化– 智能化嵌入在無人機本身內部,需要從它的攝像頭提取信息并根據該信息采取行動,達成自己的目標。
2. 開放式高級語言和框架– 在無人機中實現智能化需要高級框架和語言。這些中最常用的是開源多平臺框架,比如嵌入式環境里的 OpenCV、OpenVX, 以及在機器學習環境里的 Tensor Flow 和 Caffe。
3. 多層次的安全性– 用于確保無人機不僅能夠運行,且不能影響安全性和信息獲取。這種方法要求在器件、系統和網絡層面實現多層次的安全性。
第四個趨勢是嵌入式視覺的普及化。雖然視覺導向的機器人和無人機還不像我們的手機一樣普及——我們常在旅行中用手機來翻譯標牌等用途,隨著新用例被發掘出來,使用視覺導向的機器人和無人機的應用正處于快速發展中。
在架構層面無人機擁有一些關鍵的子系統,包括實時精準的馬達控制系統、提供與無人機雙向通信的軟件無線電和精確的嵌入式視覺系統。視覺導向的機器人和無人機主要針對大部分電池供電的應用,因此設計高能效解決方案的能力極為重要。
高精度嵌入式視覺系統提供高幀率,其處理圖像和根據圖像采取行動的能力要遠超過人眼。對許多應用來說,需要使用多個攝像頭來形成立體多視覺,以完整掌握無人機周邊環境。這也稱為傳感器融合。雖然許多應用使用多攝像頭方法來觀察環境,部分應用還會把設計用于觀測電磁場頻譜不同組成部分的攝像頭結合起來使用,例如在超光譜或紅外應用中的情況。在使用多個相同類型傳感器的時候這一般稱為同構,在使用不同傳感器技術的時候稱為異構。
在算法層面,這種高精度嵌入式視覺系統運行的算法有同步定位與地圖構建(SLAM)和稠密光流(Dense Optical Flow),可以為平臺提供增強型感知和避障系統。這些算法同時還與更傳統的模式和對象識別算法互相結合。
稠密光流設計
視覺導向的機器人和無人機因此不僅需要強大的處理能力,還需要有能力進行功耗優化,提供面向未來且具有可擴展性的解決方案。
All Programmable ( 全可編程) Zynq SoC可針對您面臨的問題提供獨特的解決方案。Zynq提供的高性能邏輯與雙核ARM A9處理器集成可打造出緊密集成的異構處理單元。該異構處理單元能夠在處理器內或可編程邏輯內實現高效率的功能細分。
使用基于ARM的處理系統,可以在邊緣開展極為復雜的實時視覺分析。在與可編程邏輯架構結合后,它提供實時檢測對象然后使用處理器系統分類對象的能力。分類完成后,視覺導向機器人系統或無人機就能針對檢測出的對象類采取適當的行動。
為在邊緣實現實時視覺分析,我們運用了機器學習提供的智能化技術。要執行這些算法,我們首先需要模型并提供大型培訓數據集,使模型能夠進行分析。在極高性能工作站上進行培訓,得到的分類器被用于實現方案中。開展這類機器學習有多種不同的方法可供選擇,例如,卷積神經網絡、深度神經網絡或遞歸神經網絡。
當我們在邊緣實現這些模型時,我們不需要與培訓相同水平的性能。可以使用整數或浮點數學,兩者都能方便地實現在All Programmable SoC中。
§全可編程SoC 面向嵌入式視覺的獨特優勢
SoC內的可編程邏輯架構本身具有可重編程性,這意味著該器件能支持任意連接。同時處理系統內的多路復用IO(MIO)提供通過多種常用協議(從 SPI、I2C 和串行到千兆以太網、CAN 和 USB)連接的能力,擁有極為靈活的從該設備輸入/輸出數據的方式。
Zynq同時接口和處理多個攝像頭輸入的實例
對使用的圖像傳感器來說,可編程邏輯架構還能夠支持最適合于目前應用的特定傳感器。與限制傳感器接口和圖像處理流水線的一些標準解決方案不同,這種高度的靈活性能夠打造出面向未來的設計方案。目前它可以先實例化一個接口,然后隨著新標準的出現,重新編程已經部署的系統以支持新標準。可編程邏輯的靈活性還體現在能從一個標準轉換到另一個標準。
在同構和異構傳感器融合方面,這個最大的 SoC 產品系列提供充足的可編程邏輯架構,能實現20個以上的視覺通道并讓每一個通道并行運行。因為這些通道實現在可編程邏輯架構內,設計工程人員不受定義的圖像處理路徑制約,相反他們有能力為目前的應用實現所需的特定圖像處理流水線。
就生成圖像處理流水線而言,和普通的想法不同的是我們不必使用 HDL 重新生成一切。在標準 Vivado IP 庫內提供了一些圖像處理內核,使用 AXI Streaming 接口就能夠連接。使用 AXI Streaming 接口便于把靈活、可擴展的圖像處理流水線創建成標準接口,用在所有的 IP 模塊上。這種標準化能縮短初始開發時間,便于隨著產品規劃圖的延伸更容易地升級和復用。
當然許多圖像處理算法相當復雜,需要先在 OpenCV 或 MATLAB 等應用中建模。OpenCV 能與 Vivado 高層次綜合視頻庫結合,即 OpenCV 庫的可綜合版本,極為簡便地為我們的流水線實現圖像處理算法。隨后這些算法能拉回到 Vivado 內的圖像處理流水線中,縮短開發和驗證時間。
另外,還可以實現基于 MathWorks MATLAB 流程的模型設計流程。它能夠先在模型層面定義整個圖像處理流水線,然后在定義底層的代碼。不過大多數現代應用都必須考慮安全性,以防范對系統、系統數據的無授權改動或訪問,或是防范惡意黑客攻擊。開發安全設計必須從系統層面自上而下考慮。不過使用 All Programmable SoC 能提供一系列器件級和系統級安全功能,讓實現工作變得簡便易行。Zynq SoC 能夠對導向與配置流程進行加密和認證。也可使用 Trust Zone 技術創建正交環境,限制軟件借助管理程序訪問底層硬件。同時,內置的 XADC 能用于監測器件電壓和溫度以及外部參數,提供防篡改方法。還有一些功能能實現在設計中,進一步增強安全性。
全可編程 SoC 能實現多個并行圖像處理流水線以及同構/異構傳感器融合,然后實時執行視覺分析和決策,而且提供對電池供電系統非常關鍵的極高效的單位功耗性能。借助內在的靈活性,All Programmable SoC 能提供真正的差異化因素,值得在設計中考慮使用,尤其是在需要考慮單位功耗像素數量的時候。
§單芯片全可編程SoC 實現的智能系統
隨著視覺導向機器人和無人機應用的快速發展,視覺導向的機器人和無人機本身也正在飛速發展。要開發出擁有理想單位功耗性能的高精度視覺系統,最好是使用全可編程SoC。全可編程 SoC 能實現大量并行處理鏈,在邊緣完成傳感器融合和實時分析,同時提供高能效、高靈活度和高安全性的系統。賽靈思全可編程 SoC可以在單個器件中實現處理系統與可編程邏輯的強大組合,支持硬件加速計算。
在這些應用中通常實現的算法有多種,最常見的三種是:
● 環視系統– 這些系統用于生成車輛周邊環境的三維可視化,實現對環境的進一步了解。典型的環視系統使用球面攝像頭。環視往往用于需要同步定位與地圖構建(SLAM)和光流的應用中。
●全景攝像頭– 這些攝像頭為周邊環境提供360度視野,用于監控應用和車輛可視化。
●異構傳感器融合– 融合來自電磁頻譜不同組成部分的圖像,例如紅外成像,以增強低光/夜視性能。
實現這些算法會帶來幾個必須解決的共同挑戰,例如:透鏡校正、消除透鏡失真、視角轉換、使用并行表面進行視頻紋理填充。
結合電磁頻譜中可視部分和紅外部分的傳感器融合實例
另一個是如何呈現最終圖像。這就帶來了多通道處理和多通道同步的難題,但這是保證所有攝像頭都顯示相同幀所需要的。當然多通道處理和同步問題并不只局限于視覺導向的的機器人和無人機應用,這是許多嵌入式視覺應用的通病。視覺導向的機器人和無人機也是檢測和分類對象,實現自動和半自動操作所需要的。
§全可編程 SoC 提供的 IP
在工程項目中實現這些復雜的圖像處理算法堪稱一項壯舉。它需要具有專家級技能水平的工程師正確地在 SoC 內實現算法。這些工程師能夠針對目標架構開發和優化特定問題。取得這樣的技能需要企業聘用一個長期工程師或分包工程師。除了需要取得專家級技能,由于需要全新開發這些功能,還會延長產品上市時間。
使用專業提供商開發的 IP,無需尋找專家級工程師,同時還能夠縮短開發時間,從而加速產品上市進程。它還能夠讓開發企業集中精力實現產品增值,確保嵌入式視覺產品在市場上占據有力地位。
使用現有的、基于成熟技術的 IP 模塊還降低了項目的總體風險。在項目上使用商用 IP 核,還能與輔助合同一起提供,讓內核能無縫集成到您的應用中。有數個 IP 模塊作為 Vivado Design Suite 標配提供,其它用于嵌入式解決方案的高級商用 IP 由多家第三方供應商提供。
其中一個這樣的圖像處理庫組合就是 Xylon 在他們的 LogicBRICKS IP 庫中提供的。該庫專門為在 Vivado Design Suite 中使用進行了優化。一旦這些 IP 模塊運用到 Vivado 設計中,它們就能夠根據應用的要求加以定制。在 logicBRICKS IP 庫內有數個對開發視覺導向的的機器人和無人機應用有重要意義的 IP 模塊。
在嵌入式視覺應用中往往使用基于梯度方向直方圖(HOG)分類器來檢測和跟蹤對象。HOG分類器使用屬于機器學習一部分的支持向量機(SVM)。在 logicBRICK 庫內有一個以 LogiHOG 形式提供的 HOG 分類器,能夠檢測多達四個不同的 SVM 分類器,從而并行檢測多個對象。這些 SVM 經訓練和更新后能適應天氣和燈光等多種不同條件。
工作中的 LogiHOG 分類器
LogicBRICKS 庫中有多種其他常用的 IP 核,可用于簡化開發工作。另外還有幾種圖像信號處理流水線可供設計人員實現在自己的設計中。這些圖像處理內核提供完整解決方案,支持創建高達 4K2K P60 的流水線。這些流水線在 SoC 內與攝像頭界面接口,因此能夠支持多種不同的攝像頭技術。
開發流程遵循傳統 SoC 開發,根據運行要求配置 SoC。LogicBRICKS 庫中的 IP 核隨后插入到可編程邏輯架構中,以構成具備所需功能的圖像處理流水線。然后用運行在 ARM A9 內核上的應用軟件提供的 API 調用按要求實時地精調算法。
許多應用使用的是高動態范圍攝像頭。動態范圍代表的是傳感器捕獲擁有寬范照度強度的圖像的能力,一般使用 dB 或比率來表達。這意味著同一幅圖像中可以同時有高照度區域和黑暗區域。通過增強圖像的照度和圖像局部區域的亮度,logiHDR 內核提供與這些攝像頭接口并從圖像中提取最大細節的能力。
§借助 SDSoC 開發工具推動加速系統設計
在使用免費或商用 IP 實現大部分圖像處理流水線后,要讓應用功能完整,還有需要實現的其余功能。使用 SoC 就能在處理器中或是在可編程邏輯中完成這一步。使用 SDSoC 開發工具,我們能無縫地在這兩者間移植功能,加快首先用高級語言開發的應用的設計速度。
要發揮 SDSoC 的功能,我們可以使用 IP 核定義一個包含底層圖像處理流水線的新平臺。SDSoC 隨后就能夠使用可用的邏輯和互聯資源加速設計。在 SDSoC 內有多個庫可供設計人員開發能在可編程邏輯內加速的應用。具體到圖像處理,主要有兩個支持 HLS 的庫:
●HLS_video– 該庫提供嵌入式視覺功能和數據結構。這些元素可綜合在一起。
●HLS_OpenCV– 該庫提供預先編譯的 OpenCV 功能,以及與 IP 模塊接口所需的專門支持功能。該庫目的是供測試臺使用,因此不可綜合。
許多算法將使用 OpenCV 等開源圖像處理框架開發。因此,在使用 SDSoC 開發以加速為目的的系統時,設計人員希望使用熟悉的框架。這就是 HLS_OpenCV 庫配合 SDSoC 開發工具發揮作用的地方。它提供與加速功能接口所需的功能。
OpenCV 組元中最基本的是 cv::mat 類,用于定義以 X 軸和 Y 軸表示的圖像大小以及像素信息。例如每個像素內的位數、有符號還是無符號、多少個通道構成一個像素。這個類是我們使用 OpenCV 時如何存儲和操作圖像的基礎。
在 HLS 庫中有一個類似的結構,即 hls::mat。鑒于 HLS 流是創建圖像處理流水線的標準接口,該庫還提供一些讓我們能把 hls::mat 類轉化為 HLS 流或把 HLS 流轉化為 hls::mat 類的功能。cv::mat 類和 hls::mat 類之間的主要區別在于 hls::mat 類被定義為適用可編程邏輯架構的像素流,這與屬于內存映射的 cv::mat 類不同。流實現和內存映射實現之間的這種差別意味著我們使用 hls::mat 類時不必隨即訪問像素。
這樣就能夠使用處理器內的雙 ARM A9 內核完成應用的初步開發,確保算法的功能。在需要該功能時,可編程邏輯中的算法就能被加速。設計人員可使用追蹤和 AXI 性能監測等 SDSoC 功能優化加速性能。
視覺導向的的機器人和無人機技術在開發嵌入式視覺算法的過程中面臨一系列的難題,但這些算法可幫助視覺導向的的機器人和無人機了解所處環境并根據得到的信息做出決策。為協助這些圖像處理系統的開發工作,設計人員可使用 IP 核提供的功能,并運用 SDSoC 等系統級開發工具,生成所需的最終硬件加速功能。
-
無人機
+關注
關注
230文章
10437瀏覽量
180455 -
智能系統
+關注
關注
2文章
394瀏覽量
72454 -
嵌入式視覺
+關注
關注
8文章
117瀏覽量
59147
發布評論請先 登錄
相關推薦
評論