張午陽 章偉 宋芳 龍林
摘 要:針對無人機避障問題,提出一種基于深度學習的四旋翼無人機單目視覺避障方法。首先通過目標檢測框選出目標在圖像中的位置,并通過計算目標選框上下邊距的長度,以此來估量出障礙物到無人機之間的距離;然后通過協(xié)同計算機判斷是否執(zhí)行避障動作;最后使用基于Pixhawk搭建的飛行實驗平臺進行實驗。實驗結果表明,該方法可用于無人機低速飛行條件下避障。該方法所用到的傳感器只有一塊單目攝像頭,而且相對于傳統(tǒng)的主動式傳感器避障方法,所占用無人機的體積大幅減小。該方法魯棒性較好,能夠準確識別不同姿態(tài)的人,實現(xiàn)對人避障。
關鍵詞:深度學習;目標檢測;單目視覺;無人機避障
中圖分類號:TP242
文獻標志碼:A
文章編號:1001-9081(2019)04-1001-05
Abstract: A monocular vision obstacle avoidance method for quadrotor based on deep learning was proposed to help quadrotors to avoid obstacles. Firstly, the position of object in the image was obtained by object detection, and by calculating the height of the object box in the image, the distance between quadcopter and obstacle was estimated. Then, whether performing obstacle avoidance was determined by synergetic computer. Finally, experiments were conducted on a flight test platform based on Pixhawk flight control board. The results show that the proposed method can be applied to quadcoptor obstacle avoidance with low speed. Compared with traditional active sensor methods, the proposed method greatly reduces the occupied volume with only one monocular camera as sensor. This method is robust and can identify people with different postures as obstacles.
Key words: deep learning; object detection; monocular vision; quadcopter obstacle avoidance
0?引言
隨著機器人技術以及微機電系統(tǒng)(Micro-Electro-Mechanical System, MEMS)的發(fā)展,無人機在各領域中的應用越來越廣泛。圍繞著無人機相關的研究也日趨增多,其中,無人機的自主飛行技術一直是研究熱點之一。四旋翼無人機具有體積小、結構簡單、機動性強、可垂直起降等固定翼無人機所不具備的優(yōu)點,因此具有很強的適應性和廣泛的應用場景,可用在航拍、巡檢、物流等低空域任務當中,很多科研機構和高校均對此展開了不同層次的深入研究。
對于固定翼無人機,因其飛行高度較高,在其任務高度上基本沒有障礙物阻攔,可以人為地為其劃定航線,讓其沿著預定航線在預定高度飛行。然而,四旋翼無人機執(zhí)行任務時,受限于通信距離以及續(xù)航時間,其飛行高度一般較低,飛行路徑上可能會分布著各式各樣的障礙物,比如樓房、樹木、人類等,若四旋翼無人機不具有避障功能,則會沿著預定航線與障礙物相撞,造成財產(chǎn)損失甚至造成人員傷亡事故。這是一個客觀存在而且棘手的問題,本文致力于提出此類問題的解決方案。
目前,有很多科研機構和高校都對小型四旋翼無人機的避障問題展開了深入研究,并提出了很多行之有效的解決方案[1-6]。若要實現(xiàn)避障,首先要使無人機感知到障礙物的方位,文獻[6]提出了一種基于RealSense相機的避障方式,通過RealSense相機獲得當前幀的景深圖像,通過對景深圖像的分層和分割,獲得障礙物的方向和距離信息,以此達到感知障礙物的目的。在感知到障礙物的空間相對位置后,無人機需要對任務路徑進行重新規(guī)劃,針對這一問題,文獻[7]提出了一種基于分布感知與決策的避障算法,該算法將避障問題分為了局部決策和全局決策兩部分,這樣做不僅避免了無人機與障礙物碰撞,同時也能夠在任務區(qū)域內規(guī)劃出一條最優(yōu)路徑。為了降低無人機避障系統(tǒng)的成本,Gageik等[8]提出了一種成本較低的避障方案,該方案在盡量減少冗余模塊的基礎上,作了一定的整合優(yōu)化,讓無人機實現(xiàn)障礙物檢測和避障。除此之外,也可以通過同步定位與地圖構建(Simultaneous Localization and Mapping, SLAM)[9-11]技術、并行跟蹤與地圖構建(Parallel Tracking and Mapping, PTAM)[12]技術等實現(xiàn)無人機避障功能。
傳統(tǒng)的避障方式是通過高精度傳感器感知障礙物的空間相對位置,然后據(jù)此執(zhí)行避障動作[7-9,12],此種避障方式精度高,但是由于所依賴的傳感器體積較大,導致無人機載荷明顯增大,其續(xù)航能力將會明顯下降;并且其無法對識別出的障礙進行分類,即其并不知道前方障礙物到底為何物,這樣,無人機就無法根據(jù)不同障礙物類型作出最優(yōu)的規(guī)避動作。近年來,隨著圖像處理及計算機視覺技術的發(fā)展,基于機器視覺的無人機避障逐漸成為當前無人機領域的一個研究熱點[4-6,13]。圖像采集和處理設備體積小,非常適合無人機在任務中攜帶。傳統(tǒng)的視覺識別是通過特征提取方法來處理圖像信息,然而,它會受到光照、物體擺放位置等外部因素影響,魯棒性較差,故這種方法適合于特定條件下對特定物體進行識別。
近年來,深度學習發(fā)展迅速[14-16],其優(yōu)勢在于不需要人為地指定需要提取的特征值,而是使用大數(shù)據(jù)去訓練得到模型,使其自己學習總結目標所具備的特征[17]。
文獻[18]使用基于深度學習的目標檢測算法對機械臂將要抓取之物進行檢測分類,并通過實驗驗證了其有效性,其泛化性和魯棒性較好。受其啟發(fā),本文提出一種基于深度神經(jīng)網(wǎng)絡的四旋翼無人機避障方法,通過訓練集對模型進行訓練,使其能夠辨認出一定數(shù)量的障礙物,并能識別前方障礙的類型,即具有障礙物分類的功能。通過機載協(xié)同計算機將目標障礙物識別并框選出來,得到目標障礙物在圖像中的位置,進而計算出目標障礙物的圖上尺寸,再利用相似三角形原理估量出目標障礙物到無人機之間的間隔,再由機載協(xié)同計算機判斷是否執(zhí)行避障動作。該方法能應對各類復雜場景中的目標檢測任務,例如目標被遮擋、亮度變化、目標姿態(tài)變化等。系統(tǒng)結構及算法流程如圖1所示。
1?基于深度學習的目標檢測
在目標檢測領域,卷積神經(jīng)網(wǎng)絡(Convolutional Neural Network, CNN)具有優(yōu)異的特性,其權重共享網(wǎng)絡結構能夠降低網(wǎng)絡模型的復雜性和權重數(shù)量[19-20]。CNN的優(yōu)勢是識別準確率高,然而大量的卷積運算使其運行效率偏低,實時性較差。為了克服這一缺陷,區(qū)域卷積神經(jīng)網(wǎng)絡(Regional-CNN, R-CNN)應運而生[21]。R-CNN算法分為四個步驟:首先將一張圖像劃分為2000~3000個候選區(qū)域(Region Proposals),然后利用CNN提取每個候選區(qū)域的特征,再訓練SVM分類器對這些特征進行分類,最后通過邊界框回歸算法重新定位目標邊界框。雖然R-CNN克服了傳統(tǒng)方法的缺點,但是其運算效率依然不高,因為其對于每個候選區(qū)域都要重新計算整個網(wǎng)絡??焖賀-CNN(fast R-CNN)則可以較好地克服以上缺點[22]。相對于R-CNN, fast R-CNN主要優(yōu)勢在于提出了ROI(Region Of Interests)策略,將候選區(qū)域映射到CNN模型的特征層上,直接在特征層上提取對應區(qū)域的深層特征,避免了不斷輸入不同區(qū)域圖像的部分,克服了R-CNN提取卷積特征時冗余操作的缺點[22];但其實時性并未得到很大的提升。因此Ren等[23]在fast R-CNN的基礎上提出了Faster R-CNN,其模型框架如圖2所示。考慮到無人機在飛行過程中需要對障礙物進行實時檢測并作出相應的規(guī)避動作,本文采用Faster R-CNN作為目標檢測模型。
作為fast R-CNN的改進, Faster R-CNN引入了區(qū)域生成網(wǎng)絡(Region Proposal Network, RPN)的概念,RPN模型如圖3所示。在RPN中,損失函數(shù)為分類損失(Classify Loss)和回歸損失(Regression Loss)的聯(lián)合損失[23]:
采用隨機梯度下降的方法進行端到端的訓練,求解優(yōu)化目標函數(shù)式。
2?四旋翼無人機避障
通常的無人機避障方案是通過距離傳感器測得障礙物到無人機之間的距離,比如激光雷達(Lidar)[24]、超聲波[25-26]等,然后根據(jù)測得的距離判斷無人機與障礙物之間的位置關系,從而實現(xiàn)避開障礙物。這類主動傳感器需要時刻對無人機周圍的環(huán)境進行掃描,并且其體積相對較大,造成了大量的能量損耗,縮短了無人機的續(xù)航時間。本文利用單目視覺方案進行目標與攝像頭之間距離的估計,屬于一種軟測量方案,體積相對于傳統(tǒng)傳感器測量大幅減小,成本也大幅縮減。
利用上文提到的Faster R-CNN,被測目標能夠有效并完整地被框選出來,并計算選擇框上下邊距之間的像素尺寸。利用相似三角形的原理,通過計算得到的目標選擇框上下邊距之間的像素尺寸,以此來估計出障礙物距無人機當前位置的距離,原理如圖4所示。由相似三角性原理,物體到攝像頭之間的距離滿足以下關系:
d=(f·h)/l(10)
其中:d表示物體到攝像頭之間的實際距離; f表示攝像頭的焦距,本文采用的攝像頭為定焦攝像頭;h代表被檢測目標的實際尺寸;l表示物體經(jīng)過攝像頭成像后的尺寸。
3?實驗與結果分析
實驗平臺為一架四旋翼無人機,基于Pixhawk飛控板搭建,并通過Pixhawk的Telem 2接口將Raspberry 3B+與其連接,作為協(xié)同電腦。RaspberryPi 3B+操作系統(tǒng)為Raspbian stretch系統(tǒng),搭載一分辨率為640×480的單目攝像頭,負責圖像采集以及目標檢測,并通過DroneKit-Python控制無人機的動作(升降、俯仰、橫滾以及偏航)。在對目標檢測網(wǎng)絡進行訓練時,采用的是Windows 10操作系統(tǒng),并使用Nvidia GeForce GTX 1060顯卡對訓練過程進行加速。Faster R-CNN模型所依賴的深度學習框架為Tensor flow。圖5為本次實驗所采用的飛行實驗平臺。
3.1?目標檢測
因為無人機避障要優(yōu)先考慮避開人體,因此本文先訓練模型識別人體。將“people”作為標簽,訓練模型識別人體的能力。本文從互聯(lián)網(wǎng)上隨機選取了6張帶有人物的照片,以此來檢驗模型對于人體識別的準確率。為了實現(xiàn)障礙物分類的功能,分別將“screen”“trash can”“l(fā)aptop”“chair”等作為標簽,訓練模型對于障礙物分類的能力。經(jīng)實驗驗證,本文所訓練的模型識別人體的準確率均在99%以上,并且無論人體是以何種角度出現(xiàn)在圖片中(正面、側面或背面),模型均能將其識別出來,魯棒性較好。對于其他類型的障礙物,比如椅子、垃圾桶等地面小型目標,也有一定的識別能力。目標檢測結果如圖6所示。
3.2?距離估計
實驗選取人體的參考身高為1.75m,以此為參考,通過計算圖像中目標選擇框上下邊框之間的長度便可估計出人體距離無人機之間的距離。考慮到無人機的反應時間以及圖像傳輸延遲,本文將安全距離設置為1.5m。當檢測到無人機與人體之間的距離小于或等于1.5m時,RaspberryPi 3B+將產(chǎn)生報警信號,并向Pixhawk發(fā)送避障指令。經(jīng)對比,估計出的距離和測量得到的實際距離誤差在±0.5m。圖像處理結果如圖7所示,圖中所示距離信息為攝像頭到人體之間的距離估計值。
3.3?四旋翼無人機避障
是否執(zhí)行避障動作由協(xié)同計算機RaspberryPi 3B+作出判斷,再通過DroneKit-Python向Pixhawk發(fā)送Mavlink指令。通過實際飛行,無人機確實可以在距離人1.5m之外避讓行人,該實驗驗證了本文方法的有效性。避障實驗結果如圖8所示,其中,圖8(a)為從機載協(xié)同計算機處理得到的距離估計結果,圖8(b)為在兩種不同的距離下進行實驗的實拍圖。
4?結語
本文利用單目攝像頭,基于深度學習實現(xiàn)了對人體的目標檢測,并將人體在圖像中的位置通過框選的方式標注出來,再利用相似三角形原理估算出人體到無人機之間的近似距離。與傳統(tǒng)避障方法相比,此方法具有占用體積小、魯棒性好、成本低等優(yōu)點。通過仿真實驗驗證了該方法能對人體進行高準確率識別,并且能估算出人體到無人機之間的距離,誤差為±0.5m。在飛行實驗平臺上進行了實際飛行避障實驗,實驗結果驗證了該方法的有效性。
由于受到RaspberryPi 3B+機能的限制,在進行飛行實驗時,它對人體的檢測和距離估計往往會出現(xiàn)延遲現(xiàn)象。為保證實驗人員的安全,目前無人機只能進行低速飛行以抵消延遲帶來的影響;并且本文只訓練了模型用于識別人體,并不能做到行為預測,并且在實際應用中還有許多種障礙要閃避,這些都是未來需要研究的內容。
參考文獻(References)
[1] 楊秀霞, 劉小偉, 張毅. 基于時間約束的無人機避障研究[J]. 飛行力學, 2015, 33(2): 125-129. (YANG X X, LIU X W, ZHANG Y. Research on obstacle avoidance of UAV based on time constraint[J]. Flight Mechanics, 2015, 33(2): 125-129.)
[2] 高迪. 無人機避障雷達目標探測與跟蹤算法研究[D]. 哈爾濱: 哈爾濱工業(yè)大學, 2017: 10-17. (GAO D. Research on target detection and tracking algorithm for UAV obstacle avoidance radar[D]. Harbin: Harbin Institute of Technology, 2017: 10-17.)
[3] 朱平, 甄子洋, 覃海群,等. 基于立體視覺和光流的無人機避障算法研究[J]. 電光與控制, 2017, 24(12): 31-35. (ZHU P, ZHEN Z Y, QIN H Q, el al. Research on UAV obstacle avoidance algorithm based on stereo vision and optical flow[J]. Electronics Optics & Control, 2017, 24(12): 31-35.)
[4] YANG Y, WANG T T, CEHN L, et al. Stereo vision based obstacle avoidance strategy for quadcopter UAV[C]// Proceedings of the 2018 Chinese Control and Decision Conference. Piscataway, NJ: IEEE, 2018: 490-494.
[5] HU Y Y, WANG Y X. Stereo vision-based fast obstacles avoidance without obstacles discrimination for indoor UAVs[C]// Proceedings of the 2011 2nd International Conference on Artificial Intelligence, Management Science and Electronic Commerce. Piscataway, NJ: IEEE, 2011: 4332-4337.
[6] HU J, NIU Y, WANG Z. Obstacle avoidance methods for rotor UAVs using RealSense camera[C]// Proceedings of the 2017 Chinese Automation Congress. Piscataway, NJ: IEEE, 2017: 7151-7155.
[7] XU Z, WER R, ZHANG Q, et al. Obstacle avoidance algorithm for UAVs in unknown environment based on distributional perception and decision making[C]// Proceedings of the 2016 IEEE Chinese Guidance, Navigation and Control Conference. Piscataway, NJ: IEEE, 2016: 1072-1075.
[8] GAGEIK N, BENZ P, MONTENEGRO S. Obstacle detection and collision avoidance for a UAV with complementary low-cost sensors[J]. IEEE Access, 2015, 3: 599-609.
[9] RIISGAARD S, BLAS M R. SLAM for dummies: a tutorial approach to simultaneous localization and mapping[EB/OL]. [2018-05-10]. http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.208.6289&rep=rep1&type= pdf.
[10] 陳煒楠, 劉冠峰, 李俊良, 等. 室內環(huán)境的元胞自動機SLAM算法[J]. 機器人, 2016, 38(2): 169-177. (CHEN W N, LIU G F, LI J L, et al. Cellular automaton SLAM algorithm for indoor environment[J]. Robot, 2016, 38(2): 169-177.)
[11] 徐偉杰, 李平, 韓波. 基于2點RANSAC的無人直升機單目視覺SLAM[J]. 機器人, 2012, 34(1): 65-71. (XU W J, LI P, HAN B. Unmanned helicopter monocular vision SLAM based on 2 points RANSAC[J]. Robot, 2012, 34(1): 65-71.)
[12] BAI G, XIANG X, ZHU H, et al. Research on obstacles avoidance technology for UAV based on improved PTAM algorithm[C]// Proceedings of the 2015 IEEE International Conference on Progress in Informatics and Computing. Piscataway, NJ: IEEE, 2015: 543-550.
[13] CHEN Z, LUO X, DAI B. Design of obstacle avoidance system for micro-UAV based on binocular vision[C]// Proceedings of the 2017 International Conference on Industrial Informatics — Computing Technology, Intelligent Technology, Industrial Information Integration. Piscataway, NJ: IEEE, 2017: 67-70.
[14] HINTON G E, SALAKHUTDINOV R R. Reducing the dimensionality of data with neural networks[J]. Science, 2006, 313(5786): 504-507.
[15] ABBAS M A. Improving deep learning performance using random forest HTM cortical learning algorithm[C]// Proceedings of the 2018 First International Workshop on Deep and Representation Learning. Piscataway, NJ: IEEE, 2018: 13-18.
[16] WANG Y. Cognitive foundations of knowledge science and deep knowledge learning by cognitive robots[C]// Proceedings of the 2017 IEEE 16th International Conference on Cognitive Informatics & Cognitive Computing. Piscataway, NJ: IEEE, 2017: 5.
[17] GOODFELLOW I, BENGIO Y, COURVILLE A, et al. Deep learning[M]. Cambridge, MA: MIT Press, 2016: 11-12.
[18] 杜學丹, 蔡瑩皓, 魯濤, 等. 一種基于深度學習的機械臂抓取方法[J]. 機器人, 2017, 39(6): 820-828, 837. (DU X D, CAI Y H, LU T, et al. A mechanical arm grabbing method based on deep learning[J]. Robot, 2017, 39(6): 820-828, 837.)
[19] ZOU J, SONG R. Microarray camera image segmentation with faster-RCNN[C]// Proceedings of the 2018 IEEE International Conference on Applied System Invention. Piscataway, NJ: IEEE, 2018: 86-89.
[20] LECUN Y, KAVUKCUOGLU K, FARABET C. Convolutional networks and applications in vision[C]// Proceedings of the 2010 IEEE International Symposium on Circuits and Systems. Piscataway, NJ: IEEE, 2010: 253-256.
[21] GIRSHICK R, DONAHUE J, DARRELL T, et al. Rich feature hierarchies for accurate object detection and semantic segmentation[C]// Proceedings of the 2014 IEEE Conference on Computer Vision and Pattern Recognition. Piscataway, NJ: IEEE, 2014: 580-587.
[22] GIRSHICK R. Fast R-CNN[C]// Proceedings of the 2015 IEEE International Conference on Computer Vision. Piscataway, NJ: IEEE, 2015: 1440-1448.
[23] REN S, HE K, GIRSHICK R, et al. Faster R-CNN: towards real-time object detection with region proposal networks[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2017, 39(6): 1137-1149.
[24] ZHENG W, XIAO J, XIN T. Integrated navigation system with monocular vision and LIDAR for indoor UAVs[C]// Proceedings of the 2017 12th IEEE Conference on Industrial Electronics and Applications. Piscataway, NJ: IEEE, 2017: 924-929.
[25] GUANGLEI M, HAIBING P. The application of ultrasonic sensor in the obstacle avoidance of quad-rotor UAV[C]// Proceedings of the 2016 IEEE Chinese Guidance, Navigation and Control Conference. Piscataway, NJ: IEEE, 2016: 976-981.
[26] DIXIT K R, KRISHNA P P, ANTONY R. Design and development of H frame quadcopter for control system with obstacle detection using ultrasound sensors[C]// Proceedings of the 2017 International Conference on Circuits, Controls, and Communications. Piscataway, NJ: IEEE, 2017: 100-104.