無人機避障的技術實現方式
近年來無人機市場飛速增長,避障技術作為增加無人機安全飛行的保障也隨著技術的發展日新月異。無人機在飛行過程中,通過其感測器收集周邊環境的信息,測量距離從而做出相對應的動作指令,從而達到「避障」的作用。
目前,無人機的避障技術中最為常見的是紅外線感測器、超聲波感測器、激光感測器以及視覺感測器。那為什麼大疆的前視避障首先選擇了雙目視覺呢?這就要從各個技術的原理說起了。
紅外避障:
紅外線的應用我們並不陌生:從電視、空調的遙控器,到酒店的自動門,都是利用的紅外線的感應原理。而具體到無人機避障上的應用,紅外線避障的常見實現方式就是「三角測量原理」。
紅外感應器包含紅外發射器與CCD檢測器,紅外線發射器會發射紅外線,紅外線在物體上會發生反射,反射的光線被CCD檢測器接收之後,由於物體的距離D不同,反射角度也會不同,不同的反射角度會產生不同的偏移值L,知道了這些數據再經過計算,就能得出物體的距離了,如下圖所示。
超聲波避障:
超聲波其實就是聲波的一種,因為頻率高於20kHz,所以人耳聽不見,並且指向性更強。
超聲波測距的原理比紅外線更加簡單,因為聲波遇到障礙物會反射,而聲波的速度已知,所以只需要知道發射到接收的時間差,就能輕鬆計算出測量距離,再結合發射器和接收器的距離,就能算出障礙物的實際距離,如下圖所示。
超聲波測距相比紅外測距,價格更加便宜,相應的感應速度和精度也遜色一些。同樣,由於需要主動發射聲波,所以對於太遠的障礙物,精度也會隨著聲波的衰減而降低,此外,對於海綿等吸收聲波的物體或者在大風乾擾的情況下,超聲波將無法工作。
激光避障:
激光避障與紅外線類似,也是發射激光然後接收。不過激光感測器的測量方式很多樣,有類似紅外的三角測量,也有類似於超聲波的時間差+速度。
但無論是哪種方式,激光避障的精度、反饋速度、抗干擾能力和有效範圍都要明顯優於紅外和超聲波。
但這裡注意,不管是超聲波還是紅外、亦或是這裡的激光測距,都只是一維感測器,只能給出一個距離值,並不能完成對現實三維世界的感知。當然,由於激光的波束極窄,可以同時使用多束激光組成陣列雷達,近年來此技術逐漸成熟,多用於自動駕駛車輛上,但由於其體積龐大,價格昂貴,故不太適用於無人機。
視覺避障:
解決機器人如何「看」的問題,也就是大家常聽到的計算機視覺(Computer Vision)。其基礎在於如何能夠從二維的圖像中獲取三維信息,從而了解我們身處的這個三維世界。
視覺識別系統通常來說可以包括一個或兩個攝像頭。單一的照片只具有二維信息,猶如2D電影,並無直接的空間感,只有靠我們自己依靠「物體遮擋、近大遠小」等生活經驗腦補。故單一的攝像頭獲取到的信息及其有限,並不能直接得到我們想要的效果(當然能夠通過一些其他手段,輔助獲取,但是此項還不成熟,並沒有大規模驗證)。類比到機器視覺中,單個攝像頭的圖片信息無法獲取到場景中每個物體與鏡頭的距離關係,即缺少第三個維度。
如下圖所示,單一的圖片具有很強的迷惑性和不確定性
雙目立體視覺猶如3D電影(左右眼看到的場景略有差異),能夠直接給人帶來強烈的空間臨場感。類比機器視覺,從單個攝像頭升級到兩個攝像頭,即立體視覺(Stereo Vision)能夠直接提供第三個維度的信息,即景深(depth),能夠更為簡單的獲取到三維信息。雙目視覺最常見的例子就是我們的雙眼:我們之所以能夠準確的拿起面前的杯子、判斷汽車的遠近,都是因為雙眼的雙目立體視覺,而3D電影、VR眼鏡的發明,也都是雙目視覺的應用。
雙目視覺的基本原理是利用兩個平行的攝像頭進行拍攝,然後根據兩幅圖像之間的差異(視差),利用一系列複雜的演算法計算出特定點的距離,當數據足夠時還能生成深度圖。
為什麼雙目視覺能夠在無人機應用中脫穎而出?
其實,各個避障技術在無人機上都有用武之地,只是應用場景有所不同,特別對於前視避障而言,有些技術就不適用了。
紅外和超聲波技術,因為都需要主動發射光線、聲波,所以對於反射的物體有要求,比如:紅外線會被黑色物體吸收,會穿透透明物體,還會被其他紅外線干擾;而超聲波會被海綿等物體吸收,也容易被槳葉氣流干擾。
而且,主動式測距還會產生兩台機器相互干擾的問題。相比之下,雖然雙目視覺也對光線有要求,但是對於反射物的要求要低很多,兩台機器同時使用也不會互相干擾,普適性更強。
最重要的是,常見的紅外和超聲波目前都是單點測距,只能獲得特定方向上的距離數據,而雙目視覺可以在小體積、低功耗的前提下,獲得眼前場景的比較高解析度的深度圖,這就讓避障功能有了更多的發展空間,比如避障之後的智能飛行、路徑規劃等。
激光技術雖然也能實現類似雙目視覺的功能,但是受限於技術發展,目前的激光元件普遍價格貴、體積大、功耗高,應用在消費級無人機上既不經濟也不實用。
所以各方比較之下,性價比高、原理簡單、前景廣闊、普遍適用的雙目視覺就這樣脫穎而出了。
精靈4Pro上的五向避障
精靈4Pro上的五向避障可以說是大疆無人機避障技術的集中體現,因此我們以精靈4Pro舉例說明。P4P前後的避障都採用了雙目視覺系統,相比精靈4而言,僅雙目視覺部分的數據量就翻了一倍。向下採用雙目視覺+超聲波的組合避障,以提高在不同環境中飛行的穩定性和安全性。而飛行器左右的避障則採用了紅外線避障。
視覺里程計
值得一提的是,其中下視的雙目運用了視覺里程計(VO)的技術。
視覺里程計簡單來說,就是「通過左右雙目的圖像,反推出視野中物體的三維位置」,所以相比光流+超聲波技術只能簡單的測出速度和高度,視覺里程計還能構建地面的三維模型,並通過連續的圖像,跟蹤自身與環境的相對移動,估計出自身的運動。準確測出自身與地面的相對位置。
雖然視覺里程計的數據處理量是光流法的數倍不止,但正是因為它的引入,使得精靈4和精靈4Pro在無GPS的室內也能對自身位置有清晰的掌控,從而實現穩定的懸停並且不會出現掉高等現象。
有了視覺里程計,再結合前後立體視覺的地圖重構,無人機就同時掌握了障礙物的位置和機器自身的位置,這時再驅動電機進行繞行就顯得易如反掌了,一個完整的避障功能就是這麼實現的。
Flight Autonomy系統
精靈4Pro的五向避障並非各自獨立,前後視的雙目視覺、下視雙目+超聲波和左右紅外避障共同構成了大疆的FlightAutonomy系統,這個系統賦予了精靈4Pro對三維環境的記憶能力,前後雙目+下視雙目能夠實時對周圍的地形進行構建和記錄(Mapping),具體而言分為局部地圖(Local Mapping)和全局地圖(Global Mapping)。
局部地圖讓無人機能夠構建並記住周圍幾十米內的三維環境,從而實現「指點飛行」等功能,因為僅僅知道飛行方向和機身位置肯定是不夠的,只有對周圍地形變化有記憶能力,才能完成「在指定方向上規劃線路並繞行」這樣級別的任務。
而全局地圖則是對整個飛行過程中經過的地形的記錄,雖然精度不如局部地圖,卻能幫助無人機實現「智能返航」等功能:當無人機一不小心飛到了建築物後面導致遙控信號丟失時,智能返航功能能夠讓無人機在一分鐘內沿原路返航,如果一分鐘內不能連上遙控器信號,則會直線返航。這其中對飛行路徑周圍環境的記憶,就是精靈4Pro智能之處的另一個體現。
實現的難點
避障功能從構思到實現,走的每一步幾乎都便隨著無數的難題。僅僅是寫出有效的視覺識別或者地圖重構的演算法還只是第一步,能讓它在無人機這樣一個計算能力和功耗都有限制的平台上流暢穩定的跑起來,才是真正困難的地方。特別是在精靈4Pro上,不僅雙目視覺的數據量相比精靈4直接翻了一倍,還要保證續航不受影響,這是非常困難的。
此外,如何處理功能的邊界也是一個問題,比如雙目視覺在視線良好的情況下可以工作,那麼當有灰塵遮擋的情況下呢?這就需要不斷的實驗和試錯,並且持續的優化演算法,保證各項功能在各類場景下都能正常工作,不會給出錯誤的指令。
「避障功能」作為近年來無人機產品的大趨勢,帶來的最直接的好處就是,以往一些人為疏忽造成的撞擊,現在都能經由避障功能去避免,既保障了無人機飛行安全的同時,也避免了對周圍人員財產的損害,讓飛無人機的門檻進一步得到了降低。
而長遠來看,無人機想要普及到農業、建築、運輸、媒體等領域,「智能化」肯定是必經之路,畢竟只有在飛行功能上做到智能控制,才有餘量去滿足不同行業的需求。如今由「避障功能」而衍生出的一系列「智能飛行」功能,無疑就是「無人機智能化」的階段性體現之一。
推薦閱讀:
※HOG特徵如何可視化?
※[171108] 基於 Python OpenCV 圖像處理的特殊濾鏡(鉛筆畫、風格化、細節增強等)
※中科院醫工所智能醫療影像團隊公開「iMED-Origa650數據集」
※實時多人的姿態估計【 CVPR'17 (Oral)】