張洪濤, 張廣玉, 李隆球, 王林
(哈爾濱工業(yè)大學 機電工程學院,黑龍江 哈爾濱 150001)
光流的概念是Gibson于1950年首次提出的。感知心理學認為,光流是源于觀測者和靜止環(huán)境之間相對運動的一種圖像運動[1]。因此,光流提供了觀察者全局運動的主要信息,如自身運動。通常,光流被定義為觀察者和非靜止環(huán)境之間的任何相對運動引起的圖像運動[2]。如果圖像保持靜止,圖像運動直接與觀察者的自身運動相關(或者直接反應觀察者的運動)。在這種情況下,觀察者不需要對環(huán)境中的單一物體進行感知,而是將整個環(huán)境視為一種關于時間和空間的背景,由此可以感知自身運動[3]。
光流傳感器是一種基于光流法對視覺運動進行測量并輸出測量值的視覺傳感器。按其結構可分為2種:一種結構是一個圖像傳感器芯片連接到一個運行光流算法的微處理上,可稱為分體式光流傳感器[4];另一種結構是將圖像傳感器和微處理器整合到一個視覺芯片上,可稱為一體式光流傳感器[5-7]。光流傳感器現(xiàn)已廣泛應用于計算機領域的光電鼠標中,作為測量光電鼠標運動的主要感應元件。此外,光流傳感器也用于機器人領域中需要進行視覺運動測量和相對運動感知的場合[8-9]。近年來,使用光流技術進行飛行穩(wěn)定控制和避障也成為了無人飛行器研究領域的一個熱點問題[10-15]。
目前,分體式光流傳感器多采用圖像傳感器與FPGA相結合的方式,體積較大,不適用于對尺寸和重量有嚴格要求的場合(比如微型飛行器)。一體式光流傳感器尺寸小,但分辨率較低,對應用環(huán)境要求較高,環(huán)境普適性較差。針對現(xiàn)有2種傳感器的不足,本文基于圖像插值算法[16],設計了一種尺寸小、重量輕、分辨率較高、環(huán)境適應能力好的光流傳感器,該傳感器可以測量攝像頭相對靜止環(huán)境的自身二維平移。本文還對微型光流傳感器的硬件結構和軟件流程進行了介紹。
當攝像頭與靜止的環(huán)境作相對運動時,可以假定攝像頭不動,而環(huán)境相對其運動,如圖1所示。
圖1 環(huán)境平移引起的像素運動
(1)
(2)
因此
(3)
其中,
(4)
(5)
當環(huán)境點產(chǎn)生Δl的平移時,其對應的像點產(chǎn)生Δx的像素位移,如圖2所示。
圖2 環(huán)境平移引起的像素運動
根據(jù)相似三角形原理可得
(6)
式中:f代表攝像頭焦距。由于環(huán)境各點與像平面的距離d不同,所以各點的像點像素位移也不同。將環(huán)境整體看作一個剛體,則所有環(huán)境點的位移均為Δl。所以
(7)
式中:N為圖像像素數(shù)。特殊情況下,當環(huán)境為近似平面(如地板、墻壁等)時,各環(huán)境點與像平面的距離d均相同,因此對應的像點的Δx也都相同,即Δx1=Δx2=…=ΔxN。整個圖像發(fā)生了Δx的位移,且圖像位移與環(huán)境位移成正比,當環(huán)境相對靜止時,則攝像頭的自身位移與圖像位移成正比,以下推算均假定環(huán)境為此種情況。
圖3 圖像及其參考圖像的相對位置
(8)
(9)
即令E對Δxt和Δyt的偏導數(shù)為0,可以得到
(10)
(11)
由式(10)、 (11)可以解得
(12)
其中,
(13)
實際應用中,由于圖像噪聲、環(huán)境光照變化或者陰影等因素的影響,會使光流輸出值產(chǎn)生小幅度波動甚至大幅度突變。一般情況下,典型的圖像噪聲為單位亮度值,梯度越小的點受圖像噪聲影響越大,當這些小梯度點參與光流計算時,會使結果產(chǎn)生較大誤差。為了不受這些點的影響,可以在計算時設定一個梯度閾值,梯度小于此閾值的點不參與光流計算,即剔除極大誤差圖像點。
當環(huán)境光照突變時,圖像整體的亮度會增大或減小,在突變期間計算的光流值會產(chǎn)生一個大幅度波動。對于這種情況,一種方法是在檢測到光流突變時不進行輸出,當光流穩(wěn)定后再輸出。另一種方法是先對圖像進行去直流成分處理,然后再進行光流計算,這種方法把環(huán)境光照的突變看作是每個圖像點疊加了一個直流成分,破壞了亮度不變性假設,引起了光流計算誤差,因此通過去直流成分的方法消除干擾。這種方法不關心環(huán)境亮度變化的幅度,適應性更強,并且去直流成分的操作不會改變圖像的梯度值,不會對光流計算帶來附加的影響。進一步的,如果環(huán)境光照變化對圖像各部分的影響并不一致,可以使用局部亮度突變一致性假設,對圖像進行分塊去直流成分操作。
實際應用中,使用梯度閾值與分塊去直流成分相結合的方法來克服圖像噪聲和環(huán)境光照變化。
使用USB攝像頭,在PC機上使用Matlab對上述算法進行仿真,設置攝像頭分辨率為160×120。兩次實驗中,攝像頭分別相對環(huán)境做平移和圓周運動。程序連續(xù)采集圖像并對相鄰幀計算光流。從視頻流中抽取連續(xù)的10幀圖像,如圖4所示。
(a) 水平運動
(b) 圓周運動
圖中用向量表示當前幀相對于前一幀的光流大小和方向,結果表明光流向量正確的反映了攝像頭自身的運動方向,在室內(nèi)環(huán)境下算法運行良好,無需人為設置特殊的紋理背景。
光流傳感器采用分體式結構,圖像傳感器使用OV7670攝像頭模組,尺寸21 mm×12.5 mm,鏡頭焦距4.49 mm,視場角67°,像素640×480。處理器使用STM32F207VGT6,集成一個數(shù)字攝像頭接口(DCMI),可以方便地與OV7670進行連接。其128 kB的RAM可以存儲2張QCIF (176×144像素)格式的彩色圖像,無需外擴數(shù)據(jù)存儲器,有利于微型化設計。120 MHz的時鐘頻率和150DMIPS的運算能力滿足實時光流計算的需求。光流傳感器的主要硬件接口電路如圖5所示。
圖5 光流傳感器主要硬件接口電路
圖6 光流傳感器
光流傳感器工作流程如下:首先獲取一幅QCIF格式的圖像,然后使用模板尺度為5×5的高斯濾波器進行濾波,去除圖像噪聲,再使用分塊去直流成分與梯度閾值相結合的方式來消除干擾。如果采集的是第一幅圖像,則使用式(13)計算a、b和d,否則計算c和e,然后使用式(12)進行光流計算,這里Δp設定為1個像素。然后更新計算a、b和d,再進行下一幅圖像的采集。為了防止應用中不利因素(如圖像抖動等)引起的光流突變,將光流計算值經(jīng)過低通濾波后再輸出。光流輸出頻率為30 Hz,滿足低速運動環(huán)境的需求。光流傳感器尺寸為30 mm×25 mm,質量2.9 g,實物如圖6所示。
使用自行研制的微型四旋翼飛行器為實驗平臺,如圖7(a)所示。該飛行器最大尺寸16.5 cm,重量約35 g,最大載荷5 g,由于載荷的限制無法使用常規(guī)的光流傳感器進行輔助懸停控制。實驗在室內(nèi)自然光照環(huán)境下進行,光流傳感器面向地面,地面為帶有紋理的普通木質地板,如圖7(b)所示。
圖7 微型飛行器及實驗環(huán)境
實驗中,首先通過手動遙控使微型飛行器達到指定位置,然后向其發(fā)送指令,使其進入光流傳感器輔助的自主懸停模式。在該模式下,飛行器的高度由超聲波測量并鎖定;偏航方向的旋轉被偏航陀螺和電子羅盤鎖定。這樣,飛行器在三維空間中只能進行前后方向和左右方向的漂移運動。為了對漂移進行抑制,飛行器的主控制器首先通過串口從光流模塊獲取代表圖像運動的二維光流信息,然后根據(jù)飛行高度,由式(6)計算出飛行器的絕對漂移量。此漂移量作為飛行器位置控制環(huán)的輸入,通過一個PID控制器來調(diào)整飛行器的運動方向,以實現(xiàn)目標漂移量為零。飛行器正面安裝了一個紅色發(fā)光二極管,通過雙目測距法對圖像中的紅色目標進行跟蹤,以實時監(jiān)測飛行器的位置漂移情況。實驗中懸停高度為1 m,懸停時間為60 s,飛行器相對設定懸停位置的漂移量如圖8所示,前后方向和左右方向的最大位置漂移量均小于20 cm,基本滿足狹小環(huán)境下的懸停精度要求。
圖8 飛行器懸停漂移量
本文提出了基于圖像插值的二維光流計算方法,使用梯度閾值與分塊去除亮度直流成分相結合的方法來克服圖像噪聲和環(huán)境光照變化,通過仿真驗證了算法的可行性。給出了微型光流傳感器的設計方法。在微型四旋翼飛行器平臺上進行了自主懸停實驗,結果表明飛行器懸停的位置誤差小于20 cm,光流傳感器輔助位置控制的效果較好。與常規(guī)的光流傳感器相比,該傳感器尺寸小重量輕,環(huán)境適應能力較強,適用于一般要求的輔助位置控制,尤其適用于微型的機器人和飛行器平臺。
參考文獻:
[1]KOENDERINK J. Optic flow[J]. Vision Research, 1986, 26(1): 161-180.
[2]HORN B, SCHUNCK B. Determining optical flow[J]. Artificial Intelligence, 1981, 17: 185-203.
[3]SUNDARESWARAN V. Egomotion from global flow field data[C]//Proceedings of the IEEE Workshop on Visual Motion. Los Alamitos, USA, 1991: 140-145.
[4]WEI Z, LEE D, NELSON B. FPGA-based real-time optical flow algorithm design and implementation[J]. Journal of Multimedia, 2007, 2(5): 38-45.
[5]BARROWS G, NEELY C. Mixed-mode VLSI optic flow sensors for in-flight control of a micro air vehicle[C]// Proceedings of the SPIE 45th Annual Meeting. San Diego, USA, 2000: 52-63.
[6]STOCKER A. Analog integrated 2-D optical flow sensor[J]. Analog Integrated Circuits and Signal Processing, 2006, 46: 121-138.
[7]STOCKER A, DOUGLAS R. Analog integrated 2-D optical flow sensor with programmable pixels[C]//International Symposium on Circuits and System. Vancouver, Canada, 2004: 121-138.
[8]LEE S, SONG J. Mobile robot localization using optical flow sensors[J]. International Journal of Control, Automation and Systems, 2004, 2(4): 485-493.
[9]STOFFLER N, FARBER G. An MPEG-processor-based robot vision system for real-time detection of moving object by a moving observer[C]//Proceedings of 14th International Conference on Pattern Recognition. Washington, USA, 1998: 477-481.
[10]KHALIL F, PAYEUR P. Optical flow techniques in biomimetic UAV vision[C]//IEEE International Workshop on Robotic and Sensors Environments. Ottawa, Canada, 2005: 14-19.
[11]ROMERO H, SALAZAR S, LOZANO R. Real-time stabilization of an eight-rotor UAV using optical flow [J]. IEEE Transactions on Robotics, 2009, 25(4): 809-817.
[12]HERISSE B, RUSSOTTO F, HAMEL T, et al. Hovering flight and vertical landing control of VTOL unmanned aerial vehicle using optical flow[C]//IEEE/RSJ International Conference on Intelligent Robots and Systems. Nice, France, 2008: 801-806.
[13]REZAEI M, SAGHAFI F.Optical flow-based obstacle avoidance of a fixed-wing MAV[J]. Aircraft Engineering and Aerospace Technology, 2011, 83(2): 85-93.
[14]RUFFIER F, FRANCESCHINI N. Optical flow regulation: the key to aircraft automatic guidance[J]. Robotics and Autonomous Systems, 2005, 50(4): 177-194.
[15]ZINGG S, SCARAMUZZA D, WEISS S, et al. MAV navigation through indoor corridors using optical flow[C]//IEEE International Conference on Robotics and Automation. Anchorage, USA, 2010: 3361-3368.
[16]SRINIVASAN M V. An image-interpolation technique for the computation of optic flow and egomotion[J]. Biological Cybernetics, 1994, 71(5): 401-415.
[17]FENNEMA C, Thompson W. Velocity determination in scenes containing several moving objects[J]. Computer Graphics and Image Processing, 1979, 9: 301-315.