郭小沛, 雷 斌, 樊 力, 韓 曉
(武漢科技大學 機械自動化學院,湖北 武漢 430081)
目前的智能機器獲取外界信息的主要方式是紅外線[1~3]、雷達[4]、超聲波[5]等,這些方式在動態(tài)環(huán)境下的處理能力有限,復雜的背景、移動的物體、快速變化的環(huán)境光為機器人的自主運行帶來困難,產(chǎn)生的大量噪聲使其喪失實時處理和快速反應的能力。在不需要對場景進行詳細的內(nèi)部表征的情況下,視覺可以在與系統(tǒng)相關的視覺行為的背景下得到最好的理解[6]。然而,將視覺系統(tǒng)廉價高效地應用于智能機器上,尤其是微型機器,依然是一件不容易的事。
生物視覺神經(jīng)網(wǎng)絡在自然界中已經(jīng)進化了數(shù)百萬年,并且在現(xiàn)實世界中運行完美,它可能是設計人工視覺系統(tǒng)的理想模型。視覺能為自然界中的動物提供大量環(huán)境信息,同樣也為移動機器人在非結(jié)構(gòu)化環(huán)境下的避碰帶來靈感[7]。自然界中的昆蟲視覺系統(tǒng)相對于人類而言結(jié)構(gòu)簡單,卻依然可以為其避開天敵以及同類提供有效線索。例如,蝗蟲視覺系統(tǒng)中的小葉巨型運動探測器(lobula giant movement detector,LGMD)[8]能對接近的物體產(chǎn)生快速的反應,經(jīng)過數(shù)百萬年的進化,對動態(tài)環(huán)境的應對是可靠而有效的。近幾十年,隨著對LGMD網(wǎng)絡電生理學的研究[9]以及傳入通路的揭示,使得模型的建立成為可能。1996年,Rind F C和Bramwell D I首次開發(fā)了基于LGMD輸入通路的功能神經(jīng)網(wǎng)絡[8],其具有與蝗蟲視覺系統(tǒng)相似的特性,并于2000年在仿真軟件IQR421上進行了離線測試[10]。2006年,Yue S G和Rind F C[11]在LGMD網(wǎng)絡的基礎上進行改進,引入特征增強的GD層,通過分組激勵來增>強檢測目標的擴展邊緣,提升了LGMD膜電位的區(qū)分度。2009年,Yue S G等人[12]將LGMD應用于雙目視覺系統(tǒng),每一個攝像頭對寬視場中的一部分進行處理,最后比較左右LGMD網(wǎng)絡的輸出,并將其轉(zhuǎn)換為可執(zhí)行的電機命令,然而,該網(wǎng)絡是采用MathWorks編寫,利用PC計算的。2014年,Hu C等人[13]將基于分組激勵的LGMD網(wǎng)絡應用于嵌入式微系統(tǒng)STM32F4上,進行了離線和實物測試,并于2016年擴展了實驗,提升了系統(tǒng)的魯棒性[14],然而,其成本和耗費資源依然較高。
本文設計了一種低成本視覺系統(tǒng),通過簡化LGMD模型,降低輸入圖像的灰度等級,并采用更加緊湊的存儲方式,使其占用的空間和資源更小,并成功應用于STM32F1嵌入式系統(tǒng)上,進一步降低了微機器人應用視覺網(wǎng)絡的成本。通過離線測試,檢測了LGMD網(wǎng)絡的關鍵膜電位,分析了相互關系,驗證了該系統(tǒng)的魯棒性、實時性和有效性。為視覺系統(tǒng)的低功耗、低成本應用奠定了基礎,有利于微機器人動態(tài)環(huán)境下的自主運行,同時可用于群機器人實驗平臺研究。
圖1為本文所采用的LGMD網(wǎng)絡架構(gòu),該神經(jīng)網(wǎng)絡模型由5層神經(jīng)元細胞(P層,E層,I層,S層,G層),LGMD神經(jīng)元,前饋抑制(feedforward inhibitory,FFI)神經(jīng)元構(gòu)成,在物體靠近時,其擴張邊緣不斷增加,LGMD神經(jīng)元能夠靈敏捕捉這一變化,產(chǎn)生碰撞檢測的信號。為了降低算法運算耗費的資源,在P層去掉了需要大量指數(shù)運算的部分[15]。
圖1 LGMD網(wǎng)絡架構(gòu)
1)P層
P層是LGMD網(wǎng)絡的輸入層,即光感受器細胞層,代表著輸入圖像相鄰幀的亮度變化。P層每一個像素點模擬自然界中蝗蟲的一個視覺元細胞。定義如式(1)
Pf(x,y)=Lf(x,y)-Lf-1(x,y)
(1)
式中f為視頻幀數(shù),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為局部抑制權(quán)重。
3)S層
S層是合并細胞層,將I層抑制效果作用于E層上,削減E層膜電位如式(5),其中,Sf(x,y)為S層抑制系數(shù),WI為抑制權(quán)重系數(shù)
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)為單位細胞傳遞系數(shù),ω為一個標量,傳遞系數(shù)Cef(x,y)為S層膜電位和[w]e卷積核共同作用的結(jié)果,傳遞系數(shù),卷積核和標量的定義如式(7)~式(9)
[Ce]f=[S]f?[w]e
(7)
(8)
(9)
(10)
5)LGMD
LGMD的膜電位是G層細胞膜電位的總和,Kf的計算如式(11),其刺激值采用Sigmoid激活函數(shù),映射范圍在[0.5,1],如式(12)所示
(11)
(12)
若Kf大于設定閾值Ts,則視為接收到一個刺激值Sf,如式(13),若連續(xù)nts幀檢測到刺激值,則視為即將發(fā)生碰撞,判別方式如式(14)
(13)
(14)
6)FFI神經(jīng)元
FFI神經(jīng)元起到對G層膜電位的抑制作用,當機器人的瞬間轉(zhuǎn)動和電機噪聲導致成像畫面發(fā)生劇烈抖動,也會使G層達到觸發(fā)閾值,為了提升系統(tǒng)魯棒性,引入FFI神經(jīng)元對于誤檢測的碰撞進行判斷并取消刺激,計算細胞的整體閾值變化Ff,如式(15),若超過設定值TFFI,則視為發(fā)生一次碰撞誤檢測,如式(16)
(15)
(16)
LGMD系統(tǒng)硬件主要包含移動機器人底盤和視覺模塊兩個部分。Hu C等人[13]采用ATMEL AVR控制微型移動機器人的底盤,采用STM32F4控制器控制視覺模塊。本文采用單個微處理器STM32F103對兩個模塊進行控制,提高了系統(tǒng)的集成度,進一步降低功耗與成本。圖2(a)為微機器人整體。
圖2 LGMD視覺系統(tǒng)硬件設計
底盤部分為微機器人提供了基本的運動功能,主要包含N 20減速電機和驅(qū)動模塊。減速電機尺寸12 mm×10 mm×25 mm,對稱分布于直徑為50 mm的印刷電路板(printed circuit board,PCB)上,適合于緊湊的結(jié)構(gòu)設計,工作電壓為3 V。驅(qū)動模塊采用TB6612FNG芯片,高性能,體積小,可以達到20 cm/s的運行速度。電機的控制方式采用脈沖寬度調(diào)制(PWM)技術(shù),采用差速原理來控制微機器人的轉(zhuǎn)向。
為了適配小型移動機器人的體積,采用了緊湊的相機模塊OV7725。OV7725是一種低電壓CMOS設備,在一個小內(nèi)存包中提供了單片機VGA攝像頭和圖像處理器的全部功能[15]。相機尺寸26 mm×27 mm,相機采用SCCB接口協(xié)議,工作電壓2.45~3.0 V,功耗120 mW,可輸出RGB565和YUV等多種圖像格式,相機的水平視角為70°。綜合考慮圖像的質(zhì)量和內(nèi)存空間,采用了80×80分辨率30幀/s的視頻流,以及8位的灰度圖像。
主要的微處理器以ARM-CortexM3作為處理器架構(gòu),選擇了STM32F103進行微機器人的控制。STM32F103的工作頻率為72 MHz,可以滿足實時圖像處理的需求和N 20電機的控制,內(nèi)存SRAM為64 kB,最大耗散功率434 mW。OV7725攝像頭通過嵌入式I/O口將將采集到的視頻流數(shù)據(jù)返回單片機,通過調(diào)節(jié)I/O口的狀態(tài)可以復用輸入與輸出?;赟TM32F103的LGMD硬件架構(gòu)如圖2(b)所示。
微機器人采用DC5V供電,功耗特性分析如表1所示,在原有功耗上得到了大幅降低,處理器頻率以及微型電機的型號是主要影響因素。
表1 功耗特性 mW
如前所述,LGMD視覺網(wǎng)絡適合微型機器人的視覺避碰,然而,在SRAM為64 kB的STM32f103芯片上實現(xiàn)圖像的存儲依然不是一件容易的事,采用壓縮算法也耗費了芯片大量的計算資源。故本文提出灰度等級降低,采用4位來表示一幀圖片,使得SRAM總耗費34 kB,滿足微型機器人圖像處理的需求。本文中LGMD網(wǎng)絡的內(nèi)存分配如圖3,L1,L2,L3表示3幀連續(xù)的視頻流,OV7725傳輸圖像格式為16位的RGB圖像,通過灰度轉(zhuǎn)換公式定義如式(17)
gray=0.299R+0.587G+0.114B
(17)
為了降低雙精度浮點數(shù)對于低功耗芯片計算資源的耗費,采用移位運算,故公式轉(zhuǎn)換如式(18)
gray=(38R+75G+15B)?7
(18)
為進一步降低內(nèi)存消耗,轉(zhuǎn)換公式如式(19),讀取對灰度值影響較大的高4位,按小端順序存儲在Lf數(shù)組中,每一個字節(jié)存儲2個像素值,根據(jù)幀數(shù)標志位Frame_flag判斷存儲區(qū)域,將OV7725返回的視頻數(shù)據(jù)流發(fā)送到不同的數(shù)組進行存儲,如式(20)
gray=(38R+75G+15B)?11?4
(19)
(20)
整個圖像存儲流程如圖3(a),這種方式可以將8位灰度值轉(zhuǎn)換為4位進行存儲。
總體的內(nèi)存分配如圖3(b),圖中灰色箭頭代表圖3(a)的存儲流程,總耗費34 kB,僅占用整體SRAM的50 %,無需外加可變靜態(tài)存儲器FSMC,節(jié)省了整體硬件資源所占用的結(jié)構(gòu)空間,滿足了在微機器人平臺上實現(xiàn)視覺算法的需要。
圖3 低成本視覺系統(tǒng)內(nèi)存分配
整個基于LGMD網(wǎng)絡的圖像處理流程如圖4,系統(tǒng)上電復位后,初始化設備,包括USART串口,時鐘,定時器,外部中斷和OV7725攝像頭等。當檢測到攝像頭開始傳輸數(shù)據(jù),系統(tǒng)進入100 ms的反復循環(huán)來不斷更新視頻流數(shù)據(jù),使其存放于內(nèi)存數(shù)組Lf和Lf—1中,同時進行當前幀LGMD膜電位計算與判斷,若連續(xù)多幀檢測到刺激值,則視為檢測到前方碰撞物,單片機給N 20電機發(fā)出避碰指令,差速電機差速旋轉(zhuǎn)改變行進方向,微機器人產(chǎn)生避碰動作。
圖4 微機器人平臺軟件架構(gòu)
基于MATLAB對采集到的圖片進行處理,設置LGMD網(wǎng)絡算法的相關參數(shù)如表2。
表2 GMD網(wǎng)絡參數(shù)
為了分析不同層之間的算法特性,在室內(nèi)通過布置如圖5場景對微機器人接近字母P圖標的過程進行離線測試,得到各層的圖像如下,第一行(a),(b),(c)代表連續(xù)視頻流中的三幀;第二行中,(d)代表P1層,(e)代表P2層,(f)代表I層;第三行中,(g)代表S層,(h)代表Ce層,(i)代表G層。實驗結(jié)果表明, I層和P1,Ce層和S層相比均產(chǎn)生了模糊效果,符合卷積濾波過程。G層相對于S層顏色變淺,噪聲減弱,符合組效應保留邊緣,降低刺激值的特性。綜上可得,基于STM32f103設計的微機器人LGMD系統(tǒng)對圖像的處理正常。
圖5 LGMD不同層圖像顯示
為了量化LGMD網(wǎng)絡的避碰性能,同時布置如圖6(a)場景進行避碰測試,在照度約為100 lx的室內(nèi)環(huán)境布置微機器人和水杯,使微機器人以10 cm/s的速度接近藍色水杯,檢測其LGMD網(wǎng)絡Kf刺激值,LGMD膜電位和FFI膜電位。
圖6 膜電位分析
整個實驗過程持續(xù)90幀,通過串口RS—232實時返回幀間圖像處理值,其中,圖6(b)為LGMD Kf值隨時間的變化;圖6(c)為LGMD細胞膜電位隨時間的變化,閾值0.85;圖6(d)為LGMD FFI值隨時間的變化,閾值40。
微型機器人在40~45幀持續(xù)4幀檢測到LGMD刺激值,并產(chǎn)生了避碰動作。由于電機震蕩以及機器人回轉(zhuǎn)導致圖像畫面整體亮度劇烈變化,F(xiàn)FI神經(jīng)元在機器人起步(第9幀)以及避碰響應之后(第47幀)發(fā)揮了抑制作用,防止誤判以及持續(xù)響應。實驗測試與算法的預期一致,驗證了基于STM32f103搭建的 LGMD網(wǎng)絡的穩(wěn)定性,魯棒性和可靠性。
為了分析速度對于微機器人避碰的影響,設置場景如圖7(a)所示,采用光流法,通過串口攝像頭捕捉微機器人的運行軌跡如圖7(b)~(d),微機器人的速度分別為10,15,20 cm/s。隨著速度的增加,微機器人的避碰響應距離也在增加,圖7(d)中,機器人在較遠的距離已經(jīng)產(chǎn)生了避碰響應,并且軌跡平滑,回轉(zhuǎn)角度變小。綜上所述,微機器人能對不同接近速度作出及時響應,驗證了實際動態(tài)場景下避碰的準確性。
圖7 微機器人避碰軌跡分析
本文設計了一種基于LGMD網(wǎng)絡的低成本視覺系統(tǒng),利用仿生技術(shù)和成像傳感器實現(xiàn)了微機器人的自主避碰,在硬件上減少了模塊層級,通過降低灰度等級的方式減小了網(wǎng)絡所需的內(nèi)存空間,并且在不同的環(huán)境場景下作了測試,對于LGMD膜電位進行了詳細的記錄。實驗表明:系統(tǒng)具有良好的可靠性和魯棒性,進一步降低了視覺應用于微機器人的成本與功耗,有利于非結(jié)構(gòu)化環(huán)境下的自主運行,為視覺算法在群體機器人中的應用奠定了基礎。