郭小沛, 雷 斌, 樊 力, 韓 曉
(武漢科技大學 機械自動化學院,湖北 武漢 430081)
目前的智能機器獲取外界信息的主要方式是紅外線[1~3]、雷達[4]、超聲波[5]等,這些方式在動態環境下的處理能力有限,復雜的背景、移動的物體、快速變化的環境光為機器人的自主運行帶來困難,產生的大量噪聲使其喪失實時處理和快速反應的能力。在不需要對場景進行詳細的內部表征的情況下,視覺可以在與系統相關的視覺行為的背景下得到最好的理解[6]。然而,將視覺系統廉價高效地應用于智能機器上,尤其是微型機器,依然是一件不容易的事。
生物視覺神經網絡在自然界中已經進化了數百萬年,并且在現實世界中運行完美,它可能是設計人工視覺系統的理想模型。視覺能為自然界中的動物提供大量環境信息,同樣也為移動機器人在非結構化環境下的避碰帶來靈感[7]。自然界中的昆蟲視覺系統相對于人類而言結構簡單,卻依然可以為其避開天敵以及同類提供有效線索。例如,蝗蟲視覺系統中的小葉巨型運動探測器(lobula giant movement detector,LGMD)[8]能對接近的物體產生快速的反應,經過數百萬年的進化,對動態環境的應對是可靠而有效的。近幾十年,隨著對LGMD網絡電生理學的研究[9]以及傳入通路的揭示,使得模型的建立成為可能。1996年,Rind F C和Bramwell D I首次開發了基于LGMD輸入通路的功能神經網絡[8],其具有與蝗蟲視覺系統相似的特性,并于2000年在仿真軟件IQR421上進行了離線測試[10]。2006年,Yue S G和Rind F C[11]在LGMD網絡的基礎上進行改進,引入特征增強的GD層,通過分組激勵來增>強檢測目標的擴展邊緣,提升了LGMD膜電位的區分度。2009年,Yue S G等人[12]將LGMD應用于雙目視覺系統,每一個攝像頭對寬視場中的一部分進行處理,最后比較左右LGMD網絡的輸出,并將其轉換為可執行的電機命令,然而,該網絡是采用MathWorks編寫,利用PC計算的。2014年,Hu C等人[13]將基于分組激勵的LGMD網絡應用于嵌入式微系統STM32F4上,進行了離線和實物測試,并于2016年擴展了實驗,提升了系統的魯棒性[14],然而,其成本和耗費資源依然較高。
本文設計了一種低成本視覺系統,通過簡化LGMD模型,降低輸入圖像的灰度等級,并采用更加緊湊的存儲方式,使其占用的空間和資源更小,并成功應用于STM32F1嵌入式系統上,進一步降低了微機器人應用視覺網絡的成本。通過離線測試,檢測了LGMD網絡的關鍵膜電位,分析了相互關系,驗證了該系統的魯棒性、實時性和有效性。為視覺系統的低功耗、低成本應用奠定了基礎,有利于微機器人動態環境下的自主運行,同時可用于群機器人實驗平臺研究。
圖1為本文所采用的LGMD網絡架構,該神經網絡模型由5層神經元細胞(P層,E層,I層,S層,G層),LGMD神經元,前饋抑制(feedforward inhibitory,FFI)神經元構成,在物體靠近時,其擴張邊緣不斷增加,LGMD神經元能夠靈敏捕捉這一變化,產生碰撞檢測的信號。為了降低算法運算耗費的資源,在P層去掉了需要大量指數運算的部分[15]。

圖1 LGMD網絡架構
1)P層
P層是LGMD網絡的輸入層,即光感受器細胞層,代表著輸入圖像相鄰幀的亮度變化。P層每一個像素點模擬自然界中蝗蟲的一個視覺元細胞。定義如式(1)
Pf(x,y)=Lf(x,y)-Lf-1(x,y)
(1)
式中f為視頻幀數,L為灰度圖像的灰度值,(x,y)為像素點的位置坐標。
2)E層,I層
P層細胞的輸出作為下一層細胞的輸入,它們分別是E層(興奮細胞層)和I層(抑制細胞層)。當前幀P層的輸出,直接傳遞給E層,如式(2),上一幀P層輸出進行卷積運算后得到 I層,計算方式如式(3)
Ef(x,y)=Pf(x,y)
(2)
[I]f=[P]f?[w]I
(3)
(4)
式中Ef(x,y)為E層膜電位,[I]f為I層膜電位,[w]I為局部抑制權重。
3)S層
S層是合并細胞層,將I層抑制效果作用于E層上,削減E層膜電位如式(5),其中,Sf(x,y)為S層抑制系數,WI為抑制權重系數
Sf(x,y)=Ef(x,y)-If(x,y)×WI
(5)
4)G層
G層是分組細胞層,通過組效應強化擴展邊緣,使孤立的像素點退化,提升LGMD膜電位判別準確度與分辨率。G層膜電位計算方式如(6)
Gf(x,y)=Sf(x,y)Cef(x,y)ω-1
(6)
式中Gf(x,y)為G層膜電位,Sf(x,y)為S層膜電位,Cef(x,y)為單位細胞傳遞系數,ω為一個標量,傳遞系數Cef(x,y)為S層膜電位和[w]e卷積核共同作用的結果,傳遞系數,卷積核和標量的定義如式(7)~式(9)
[Ce]f=[S]f?[w]e
(7)
(8)
(9)

(10)
5)LGMD
LGMD的膜電位是G層細胞膜電位的總和,Kf的計算如式(11),其刺激值采用Sigmoid激活函數,映射范圍在[0.5,1],如式(12)所示
(11)
(12)
若Kf大于設定閾值Ts,則視為接收到一個刺激值Sf,如式(13),若連續nts幀檢測到刺激值,則視為即將發生碰撞,判別方式如式(14)
(13)
(14)
6)FFI神經元
FFI神經元起到對G層膜電位的抑制作用,當機器人的瞬間轉動和電機噪聲導致成像畫面發生劇烈抖動,也會使G層達到觸發閾值,為了提升系統魯棒性,引入FFI神經元對于誤檢測的碰撞進行判斷并取消刺激,計算細胞的整體閾值變化Ff,如式(15),若超過設定值TFFI,則視為發生一次碰撞誤檢測,如式(16)
(15)
(16)
LGMD系統硬件主要包含移動機器人底盤和視覺模塊兩個部分。Hu C等人[13]采用ATMEL AVR控制微型移動機器人的底盤,采用STM32F4控制器控制視覺模塊。本文采用單個微處理器STM32F103對兩個模塊進行控制,提高了系統的集成度,進一步降低功耗與成本。圖2(a)為微機器人整體。

圖2 LGMD視覺系統硬件設計
底盤部分為微機器人提供了基本的運動功能,主要包含N 20減速電機和驅動模塊。減速電機尺寸12 mm×10 mm×25 mm,對稱分布于直徑為50 mm的印刷電路板(printed circuit board,PCB)上,適合于緊湊的結構設計,工作電壓為3 V。驅動模塊采用TB6612FNG芯片,高性能,體積小,可以達到20 cm/s的運行速度。電機的控制方式采用脈沖寬度調制(PWM)技術,采用差速原理來控制微機器人的轉向。
為了適配小型移動機器人的體積,采用了緊湊的相機模塊OV7725。OV7725是一種低電壓CMOS設備,在一個小內存包中提供了單片機VGA攝像頭和圖像處理器的全部功能[15]。相機尺寸26 mm×27 mm,相機采用SCCB接口協議,工作電壓2.45~3.0 V,功耗120 mW,可輸出RGB565和YUV等多種圖像格式,相機的水平視角為70°。綜合考慮圖像的質量和內存空間,采用了80×80分辨率30幀/s的視頻流,以及8位的灰度圖像。
主要的微處理器以ARM-CortexM3作為處理器架構,選擇了STM32F103進行微機器人的控制。STM32F103的工作頻率為72 MHz,可以滿足實時圖像處理的需求和N 20電機的控制,內存SRAM為64 kB,最大耗散功率434 mW。OV7725攝像頭通過嵌入式I/O口將將采集到的視頻流數據返回單片機,通過調節I/O口的狀態可以復用輸入與輸出。基于STM32F103的LGMD硬件架構如圖2(b)所示。
微機器人采用DC5V供電,功耗特性分析如表1所示,在原有功耗上得到了大幅降低,處理器頻率以及微型電機的型號是主要影響因素。

表1 功耗特性 mW
如前所述,LGMD視覺網絡適合微型機器人的視覺避碰,然而,在SRAM為64 kB的STM32f103芯片上實現圖像的存儲依然不是一件容易的事,采用壓縮算法也耗費了芯片大量的計算資源。故本文提出灰度等級降低,采用4位來表示一幀圖片,使得SRAM總耗費34 kB,滿足微型機器人圖像處理的需求。本文中LGMD網絡的內存分配如圖3,L1,L2,L3表示3幀連續的視頻流,OV7725傳輸圖像格式為16位的RGB圖像,通過灰度轉換公式定義如式(17)
gray=0.299R+0.587G+0.114B
(17)
為了降低雙精度浮點數對于低功耗芯片計算資源的耗費,采用移位運算,故公式轉換如式(18)
gray=(38R+75G+15B)?7
(18)
為進一步降低內存消耗,轉換公式如式(19),讀取對灰度值影響較大的高4位,按小端順序存儲在Lf數組中,每一個字節存儲2個像素值,根據幀數標志位Frame_flag判斷存儲區域,將OV7725返回的視頻數據流發送到不同的數組進行存儲,如式(20)
gray=(38R+75G+15B)?11?4
(19)
(20)
整個圖像存儲流程如圖3(a),這種方式可以將8位灰度值轉換為4位進行存儲。
總體的內存分配如圖3(b),圖中灰色箭頭代表圖3(a)的存儲流程,總耗費34 kB,僅占用整體SRAM的50 %,無需外加可變靜態存儲器FSMC,節省了整體硬件資源所占用的結構空間,滿足了在微機器人平臺上實現視覺算法的需要。

圖3 低成本視覺系統內存分配
整個基于LGMD網絡的圖像處理流程如圖4,系統上電復位后,初始化設備,包括USART串口,時鐘,定時器,外部中斷和OV7725攝像頭等。當檢測到攝像頭開始傳輸數據,系統進入100 ms的反復循環來不斷更新視頻流數據,使其存放于內存數組Lf和Lf—1中,同時進行當前幀LGMD膜電位計算與判斷,若連續多幀檢測到刺激值,則視為檢測到前方碰撞物,單片機給N 20電機發出避碰指令,差速電機差速旋轉改變行進方向,微機器人產生避碰動作。

圖4 微機器人平臺軟件架構
基于MATLAB對采集到的圖片進行處理,設置LGMD網絡算法的相關參數如表2。

表2 GMD網絡參數
為了分析不同層之間的算法特性,在室內通過布置如圖5場景對微機器人接近字母P圖標的過程進行離線測試,得到各層的圖像如下,第一行(a),(b),(c)代表連續視頻流中的三幀;第二行中,(d)代表P1層,(e)代表P2層,(f)代表I層;第三行中,(g)代表S層,(h)代表Ce層,(i)代表G層。實驗結果表明, I層和P1,Ce層和S層相比均產生了模糊效果,符合卷積濾波過程。G層相對于S層顏色變淺,噪聲減弱,符合組效應保留邊緣,降低刺激值的特性。綜上可得,基于STM32f103設計的微機器人LGMD系統對圖像的處理正常。

圖5 LGMD不同層圖像顯示
為了量化LGMD網絡的避碰性能,同時布置如圖6(a)場景進行避碰測試,在照度約為100 lx的室內環境布置微機器人和水杯,使微機器人以10 cm/s的速度接近藍色水杯,檢測其LGMD網絡Kf刺激值,LGMD膜電位和FFI膜電位。

圖6 膜電位分析
整個實驗過程持續90幀,通過串口RS—232實時返回幀間圖像處理值,其中,圖6(b)為LGMD Kf值隨時間的變化;圖6(c)為LGMD細胞膜電位隨時間的變化,閾值0.85;圖6(d)為LGMD FFI值隨時間的變化,閾值40。
微型機器人在40~45幀持續4幀檢測到LGMD刺激值,并產生了避碰動作。由于電機震蕩以及機器人回轉導致圖像畫面整體亮度劇烈變化,FFI神經元在機器人起步(第9幀)以及避碰響應之后(第47幀)發揮了抑制作用,防止誤判以及持續響應。實驗測試與算法的預期一致,驗證了基于STM32f103搭建的 LGMD網絡的穩定性,魯棒性和可靠性。
為了分析速度對于微機器人避碰的影響,設置場景如圖7(a)所示,采用光流法,通過串口攝像頭捕捉微機器人的運行軌跡如圖7(b)~(d),微機器人的速度分別為10,15,20 cm/s。隨著速度的增加,微機器人的避碰響應距離也在增加,圖7(d)中,機器人在較遠的距離已經產生了避碰響應,并且軌跡平滑,回轉角度變小。綜上所述,微機器人能對不同接近速度作出及時響應,驗證了實際動態場景下避碰的準確性。

圖7 微機器人避碰軌跡分析
本文設計了一種基于LGMD網絡的低成本視覺系統,利用仿生技術和成像傳感器實現了微機器人的自主避碰,在硬件上減少了模塊層級,通過降低灰度等級的方式減小了網絡所需的內存空間,并且在不同的環境場景下作了測試,對于LGMD膜電位進行了詳細的記錄。實驗表明:系統具有良好的可靠性和魯棒性,進一步降低了視覺應用于微機器人的成本與功耗,有利于非結構化環境下的自主運行,為視覺算法在群體機器人中的應用奠定了基礎。