1. 程式人生 > >基於單目實現微型無人機感知和避撞

基於單目實現微型無人機感知和避撞

1、介紹

光流在實際環境中應用很難,因為大部分同質區域,如白牆,沒有足夠的特徵點來計算光流。

我們的演算法&實驗:
1. 相對大小探測器感知和避撞前方障礙物;
2. 特徵描述器探測特徵點大小的相對變化並實現實時避撞;
3. 使用引導演算法使MAV在森林中飛行,實驗中整條路徑中擺放了20個障礙物。

2、相關工作

由於大小、重量和能量的限制,考慮到計算能力的改進和需要計算比較少,相機是UAV上可承載的最小的感測器。
生物視覺系統:
1. 運動視差;(光流、SFM)
2. 單目cues;
2. 立體視覺。
光流方法的侷限性在於:幀與幀間的光流與前方角度成比例,這個對牆壁跟蹤和中心飛行時有用,但是對於避撞來說作用很小。
儘管單目方法不能直接測量到障礙物的距離,但仍然可以用來避撞,因為光流與到障礙物的時間有一定關係。
本文提出是單目線索方法之一,用相對大小來探測前方障礙物。當UAV前方物體變大時,說明障礙物臨近UAV。障礙物變化與臨近障礙物時間成比例。

文獻[23-2012]使用光流在森林中避障,所以要看看。

3、方法

相對大小探測器函式引數為時間,返回障礙物的大小。當離障礙物的距離由3m變為了2m時,影象大小變為原來的1.5倍。因為影象幀率已知,因此可求得到障礙物的時間。
文獻[14]中SIFT實時性差且沒有應用到實際機器人中。
SUFT特徵點(openCV已經封裝此函式):1)比SIFT計算快;2)可計算相對大小變化,即使障礙物大小變化仍可很好匹配.
本文通過匹配連續影象中的特徵點,比較特徵點所在區域大小的變化來識別是否攝像頭靠近障礙物。
當前特徵點擴大率由原先特徵點大小的改變和模組匹配組成。

3.1 規模擴大器演算法:

用於匹配,過濾和計算連續影象幀SURF特徵點相對變化。
輸出:障礙物的位置。
這裡寫圖片描述

1. 計算SURF特徵點;
2. 連續影象匹配SURF特徵點;
3. 去除沒有匹配的點,如果兩匹配點間距離小於0.25;
4. 去除特徵點變小或者不變的點;
5. 確定模組匹配範圍:(模組匹配演算法輸出:可以表示障礙物的特徵點)

這裡寫圖片描述

  • 上述Template1中KP下標應該是i-nskip,因為其實由第i-nskip影象生成的;
  • 5.1 Template1為第i-nskip幀影象的第j個特徵點周圍擷取size的大小;
  • 5.2 在每次迴圈中,將此塊影象Template1擴大到和Template2一樣;
  • 5.3 Template2的選取和Template1一樣;
  • 5.4 Template1和Template2進行匹配,計算它們中每個畫素的不同,然後輸出和它們大小一樣的影象(這個是文中說的);而此處TMscale表示在此scale下模組匹配的結果,即兩個影象匹配特徵點形成的向量(類似光流),因為影象xy均擴大了scale倍,則這裡除scale2.
  • 5.5 儲存在迴圈中運動最小的向量(其越小,說明兩個影象的匹配度越高,即Template1在變化很小的時候就可以變成Template2)和對應的比例scale;
  • 5.7 如果最小比例scale大於1.2(說明在camera運動過程中離障礙物越近,障礙物變大。如果小於1.2則我們認為前方是同質區域,如白牆等)且運動向量(光流)小於[0.8*標準],則將j特徵點標記為障礙物。

6. 計算剩餘點的平均值,即為障礙物。

3.2 避撞策略

  1. 若在視野中發現障礙物,則無人機向一旁飛;
  2. 控制航向角來到達目的地。

以下引數的設定保證飛行軌跡的合理性:反應時間;加速限制;飛行速度;障礙物感知距離;視野;樹幹大小;兩樹間的最小速度。

4、實驗

  • 配置:
    1. 前方相機92度,320X240的畫素,頻率為10Hz,演算法中採用8bits RGB資訊儲存的灰度影象,演算法在地面計算機上實現。
    2. 採用聲納高度感測器、IMU(陀螺儀、加速度感測器)和向下的相機來控制AR.Drone的高度。
  • 實驗:
    1. 模擬實驗;
    2. 放置8個樹樁,AR.Drone試飛測試,23次,20次成功。
      本文參考文獻[26-2012]的場景設計,可以看一下。
  • 結論:
    該演算法使用低畫素的單目攝像頭、普通的PC,在複雜環境中提取SUFT特徵點且結合比例擴大器演算法識別障礙物位置,並且不需要障礙物的先驗知識,可以避開類似tree這樣的slim障礙物。但是需要障礙物的質地是SURF特徵點。

5、想法

  1. 交叉障礙物場景參考。