看見像素的運動:單眼無人機如何靠「光流」穿越障礙叢林?

在密林之中,當無人機以每秒6公尺的速度穿越樹幹與細枝間的狹縫時,它如何判斷該左轉還是右閃?沒有雷達、也不靠立體鏡頭,僅用一台普通的單眼攝影機,它能安全飛行、甚至比人還靈活。來自上海交通大學的一項最新研究提出一種仿昆蟲視覺的創新方法,讓無人機透過「看」像素的運動,也就是光流(optical flow),來學會避開障礙、維持平衡,並完成高速飛行任務。在自主飛行領域,大多數無人機會仰賴雷射雷達或立體相機來建構環境的3D地圖,並規劃路徑。但這些感測器體積大、耗電高、價格不斐,對小型空中載具來說並不理想。

相對地,大自然中蒼蠅與蜜蜂等昆蟲靠一對單眼,就能完成快速閃避與飛行。這背後的關鍵正是「光流」:當一台攝影機移動時,畫面中的每個像素會隨環境中物體的遠近產生不同的移動速度與方向,這就是光流。就像開車時,旁邊的路燈飛快向後掠過、遠處的山頭幾乎不動,我們大腦就可感知速度與深度。

研究團隊設計了一套從頭學習的避障系統,不是靠傳統手工規則,而是讓無人機直接從光流學會怎麼飛。他們建構了一個端對端的學習架構,包含三個核心技術:

1. 光流注意力系統:他們發現,畫面中間的光流訊息最關鍵,將高解析光流的中央區域與整體低解析度光流結合,提升算法對重要區域的感知能力。就像人開車時眼睛專注看前方,無人機也能對畫面中央給予更高的關注權重。(圖一)
圖一、光流注意力系統:若畫面中央無空間可前進,則可透過轉向重新探索,結合注意與感知雙策略提升決策能力。

2. 主動感知策略:除了「看」,無人機還會調整自己的視角,把攝影機主動朝向前進方向,確保關鍵資訊在正中間。
3. 可微分物理模擬器:他們打造了一套能快速模擬飛行軌跡、光流與控制結果的模擬器,主要用來模擬無人機的動態與控制過程,使訓練過程可以直接進行「梯度下降」優化,快速收斂控制策略。(圖二)
圖二、可微模擬器(differentiable simulator)
這裡使用的是一個點質量模型(point mass model),這種模型把無人機視為一個質點,不考慮旋轉或空氣動力等複雜因素,只模擬質點位置與速度的變化(左半)。
黑色箭頭表示模擬器的正向模擬流程:輸入控制參數 → 計算機體位置與速度的變化 → 得到下一時刻的狀態。紅色箭頭表示梯度反傳(gradient backpropagation)的流程:用來計算控制策略的參數如何影響最終表現(例如是否成功避開障礙),控制策略以CNN+RNN實作。

實驗結果
研究團隊以NVIDIA RTX 3090 GPU訓練,2小時內完成。模型能成功閃避細如樹枝的障礙,最高達每秒6公尺的速度。(圖三)
圖三、真實環境飛行結果
實驗涵蓋了多種環境,包括密集林地(a)、稀疏樹林(b)、帶有細枝的樹木區域(c),以及兩種室內雜亂場景(e 與 f),涵蓋了從戶外自然環境到室內人工結構的多樣障礙類型。這些場景都未曾在訓練資料中出現,因此能有效測試演算法的泛化能力。
此外,為了幫助觀察飛行過程,研究團隊將無人機的飛行軌跡以位置疊圖的方式標註在影片畫面上,清楚顯示無人機如何穿越障礙與修正飛行方向。圖中 (c1) 至 (c6) 更進一步呈現無人機在 (c) 場景中即時避開樹枝與樹幹的第一人稱視角畫面(FPV),顯示其控制器在複雜環境下仍能做出靈敏反應,避免碰撞。

過去的訓練方式多半使用模仿學習或強化學習(如 PPO),這類方法常常收斂慢、效果不穩。該研究的可微模擬器能直接計算控制器的誤差與影響,像訓練神經網路一樣,讓飛行策略學得更快、更穩。(圖四)
圖四、訓練成效比較
左列圖:中央注意力策略提升大視角相機下的效能(150° FOV表現最佳)。
右列圖:不同方法比較:
-- 光流 vs 深度:深度訓練收斂較快,但光流遷移能力更佳。
-- PPO vs 可微物理:可微模擬支援解析梯度,訓練更穩定、收斂更快。
-- 主動 vs 非主動感知:主動調整視角提升表現。

然而,光流並不是完美的方法。當相機快速旋轉時,像素的流動方向會類似「前方有障礙」,導致誤判。此外,畫面中「前進方向」的焦點位置(稱為 FoE)幾乎沒有光流,因此飛行方向最需要資訊時,反而是感知最弱的地方。這些問題,未來可以透過更精準的光流預測網路(如 NeuFlow)、加入 IMU 等感測器做多模態融合……等方法改善。

這篇研究不只證明「一顆攝影機」也能讓無人機敏捷飛行,也展示了生物啟發式視覺與機器學習結合的可能性。


撰文:余雪淩


原始論文:Y. Hu et al., "Seeing Through Pixel Motion: Learning Obstacle Avoidance From Optical Flow With One Camera," in IEEE Robotics and Automation Letters, 10(6), pp. 5871-5878, (2025)

留言