新一年的集創賽已如火如荼的展開~
為了讓大家更多的了解該賽事,小編整理了2021年的優秀作品供學習分享
在每周一為大家分享獲獎作品,記得來看連載喲 ~
團隊介紹
參賽單位:上海電力大學
隊伍名稱:駭行隊
總決賽獎項:二等獎
1.摘要
隨著信息技術的發展,AGV(Automated Guided Vehicle,AGV)無人自動導航小車已被廣泛應用于智能制造、智慧物流等場景。AGV搬運車的導航系統主要利用視覺、激光雷達等傳感器,其主控系統大多使用多個芯片及其復雜嵌入式系統實現,成本高、功耗大、實時性差。為了解決這一問題,本設計在Xilinx FPGA平臺上構建了ARM-M3軟核,設計了加速雙目視差圖像計算的SOC及相關控制外設,驗證了單個芯片引導AGV小車的基本功能。本設計主要工作體現在如下幾個方面。
1) 在Xilinx Artix XC7A200T平臺上構建了ARM-M3微處理器及相關外設。通過OV5640雙目相機進行圖像采集,經協處理器加速,ARM-M3微處理器分析周圍的環境進行路徑規劃最終產生PWM信號驅動小車進行運動。
2)在硬件方面,本設計自制了OV5640雙目相機及SiC780碳化硅電機驅動板。通過對雙目視覺的原理進行分析,自制的雙目相機選用了平行式雙目立體視覺模式作為設計方案。得益于小車使用的麥克納姆輪全向移動平臺及自制的大電流碳化硅驅動板,小車可以自由靈活地進行各種運動。
3)在算法方面,本設計對傳統的立體匹配算法進行了并行優化,使得算法的運行速度得到了極大地提升,最終實現了資源消耗、功耗、運行速度三者較好的平衡。為了消除圖像的徑向畸變、傾斜畸變及切向畸變,本設計采用了張正友標定法對雙目相機進行標定和校正。利用Matlab的自動標定工具Stereo Camera Calibrator App得到了相機的內外參數并代入校正算法最終實現了圖像的校正。
4)在測試方面,本文分析了傳統立體匹配算法中存在的特征匹配耗時過長、匹配錯誤較多的問題,并在樹莓派3B以及PC機進行了相關的對比實驗。
5)在應用場景方面,采集視頻數據自行構建二維碼數據集,使用TensorFlow訓練定點卷積神經網絡,利用HLS構建CNN IP核,使之具備二維碼檢測能力。
2.系統功能介紹
2.1 總體介紹
本作品的目標是在ARM公司提供的ARM CortexM3 DesignStart RTL Eval處理器IP的基礎上,設計AGV小車自主視覺避障專用SOC,開發出能夠感知障礙物的雙目深度視覺協處理器。
設計內容包括:
開發了基于BM(Block Maching)算法的雙目立體匹配智能協處理器;
設計并制作了OV5640雙目立體相機電路板 ,及雙目相機視頻采集Verilog驅動IP;
設計了用于顯示參數和圖像的LCD 驅動;
設計制作了運動控制模塊驅動板,及相關PWM驅動;
控制具備全位移動能力的麥克納姆車進行避障演示。
構建CNN IP核,使之具備二維碼檢測能力。
2.2 系統流程
本系統在Xilinx FPGA Artix XC7A200T上構建ARM Cortex-M3處理器,搭配自行設計的OV5640雙目相機采集視頻并利用VDMA存入DDR中。深度加速模塊根據相機標定參數進行畸變矯正和立體匹配,并將所得的視差圖進行緩存。M3軟核從DDR中讀取視差圖,計算與前方障礙的相對距離并進行路徑規劃。最后讀取幀率數據,將相機圖像,視差結果,運動方向和圖像幀率在LCD上顯示,并根據規劃結果控制小車。
3.系統架構
3.1 架構簡介
系統主要由視頻采集、圖像處理、實時顯示和運動控制四個模塊組成。
A、視頻采集模塊由相機采集、寄存器配置、視頻流轉換三個子模塊構成,實現對自行設計的雙目相機分辨率和成像參數配置,并將采集數據傳輸到圖像處理模塊。
B、圖像處理模塊由配置為高性能模式的AXI連接器將VDMA、幀率計數器、深度加速核以及OSD結果呈現四個子模塊互相連接,實現視差圖計算和幀率計數功能,最后由結果呈現模塊進行匯總傳遞給顯示模塊進行顯示。
C、顯示模塊由視頻流轉換、視頻時序控制器、動態時鐘、和VGA顯示四個子模塊構成。根據高性能視頻系統參考設計搭建視頻顯示模塊的結構和參數配置。視頻時序控制器產生1080p對應的行場同步信號交由視頻流轉換子模塊輸出到VGA顯示模塊,動態時鐘可由用戶自行配置來驅動VGA顯示模塊以適配不同的屏幕分辨率。在上述幾個模塊的協作下實現分辨率為1080p刷新率為60Hz的圖像和運行參數顯示。
D、運動控制模塊主要由ARM-M3核、UART、GPIO、PWM子模塊等模塊構成。M3核讀取DDR中深度加速模塊的結果進行簡單計算,實現對前方障礙物距離的估計,從而進行路徑規劃。最后讀取視頻采集模塊和深度輸出模塊的幀率數據同小車運行方向一起輸出到結果呈現模塊和UART串口 ,實現實時運行參數的呈現。
3.2 軟硬功能劃分
相較于傳統單片機串行采集相機數據,傳輸單個像素進行顯示,根據定時器中斷產生PWM,以及在PC機上都難以實現的穩定視差圖計算輸出在本系統中都由硬件實現,極大減輕了CPU負擔。
軟件部分主要在Keil中由C語言實現,主要用于初始化各個外設,配置相機寄存器。初始化完成后讀取幀率計數模塊數據和深度加速模塊的結果,根據公式進行簡單的四則運算完成對距離的估計。根據估計結果配置PWM模塊和顯示模塊的寄存器實現運動控制和實時顯示。
3.3 外設掛載
本系統的中央處理單元是由ARM公司提供的ARM CortexM3 DesignStart RTL Eval,整個系統及外設部署在Xilinx xc7a200tfbg484 FPGA平臺上。本系統的主要由Cortex-M3軟核,OV5640雙目攝像頭模塊,深度加速模塊,DDR3內存控制器,VGA顯示器,AHB總線矩陣、AXI總線及APB低速外設等相關模塊組成,詳細框圖如下圖所示。
4.模塊及系統功能仿真與測試
4.1 相機測試仿真
OV5640攝像頭的寄存器配置由M3軟核控制GPIO模擬SCCB實現,使用DSLogic邏輯分析儀捕獲引腳電平,其配套軟件DSView可以解析與SCCB兼容的IIC協議,顯示不同電平組合對應的命令和數據。
4.2 加速模塊仿真
4.3 CNN二維碼檢測
二維碼的圖案相較于自然場景具有更簡單的結構和紋理,本設計針對二維碼圖像的這一特點,構建了一個簡單的CNN網絡,該CNN網絡包括三個卷積層、三個池化層和兩個全連接層。
輸入的圖像通過不同的卷積核產生不同的特征圖像用于提取目標不同的特征值。經過卷積操作,可以完成對輸入圖像的降維和特征提取。為了進一步降低特征圖的維度并減少FPGA資源消耗,每一個卷積層后還需要加上一個池化層來減少數據的空間大小并控制過擬合。
全連接層是一個矩陣乘法,相當于一個特征空間變換,可以把有用的信息提取并整合。全連接的主要目標是維度變換,將高維的數據變成低維的數據。
經過上述運算之后,可以得到輸入圖像中含有二維碼的概率。
4.4 模塊和系統的整體測試結果
在室外放置兩個紙箱作為路徑障礙來進行系統的整體測試。下圖節選自視頻中小車對第二個障礙物進行避障操作參考圖中兩個障礙物的位置可知,在前進過程中前方物體距離太近時進行避障操作。當障礙物不再位于小車正前方時繼續前進,達到避障的效果。
5.參賽體會
通過本次比賽我們對基于ARM核的SOC設計有了一個初步的認識。通過ARM核+協處理器的方式使得整個系統在計算深度圖像時的圖像采集性能、功耗、成本優于常見的嵌入式系統及一般性能的PC機。相較于傳統單片機串行采集相機數據,傳輸單個像素進行顯示,根據定時器中斷產生PWM,以及在PC機上都難以實現的穩定視差圖計算輸出在本系統中都由硬件實現,極大減輕了CPU負擔。
本設計使用的FPGA芯片是Xilinx FPGA Artix XC7A200T。在參賽的過程中我們發現,當LUT的消耗大于10W,用量大于70%時,布線所用時長將成倍的增加,時序也將很難收斂。
關于安芯教育
安芯教育是聚焦AIoT(人工智能+物聯網)的創新教育平臺,提供從中小學到高等院校的貫通式AIoT教育解決方案。
安芯教育依托Arm技術,開發了ASC(Arm智能互聯)課程及人才培養體系。已廣泛應用于高等院校產學研合作及中小學STEM教育,致力于為學校和企業培養適應時代需求的智能互聯領域人才。
原文標題:【2021集創賽作品分享】第五期 | 基于ARM-M3的雙目立體視覺避障系統 SOC設計
文章出處:【微信公眾號:安芯教育科技】歡迎添加關注!文章轉載請注明出處。
審核編輯:湯梓紅
-
soc
+關注
關注
38文章
4161瀏覽量
218167 -
Xilinx
+關注
關注
71文章
2167瀏覽量
121305 -
AGV小車
+關注
關注
4文章
168瀏覽量
11099
原文標題:【2021集創賽作品分享】第五期 | 基于ARM-M3的雙目立體視覺避障系統 SOC設計
文章出處:【微信號:Ithingedu,微信公眾號:安芯教育科技】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論