技術探索

昆蟲動態視覺與其仿生應用

國立清華大學 系統神經科學研究所 羅中泉教授兼所長 王誠德、葉宸甫、姚皇宇

工業技術研究院 資訊與通訊研究所 盧峙丞、李堅百

前言

昆蟲是演化上極為成功的一種動物。雖然其視覺系統的解析度遠遜於較高等的脊椎動物,但卻有非常靈敏的動態視覺,可讓昆蟲偵測因自身移動或外界物體的移動所造成的光流。我們將在本文簡介昆蟲的動態視覺系統,解釋昆蟲的如何利用光流的資訊來理解自身運動狀態以及偵測威脅。接下來將介紹光流在工程上的廣泛應用,以及幾種主要的演算法與技術。最後我們將討論仿生系統如何為光流技術瓶頸的突破提供了新的希望。

精彩內容

1. 果蠅簡單但有效率的動態視覺系統
2. 光流運算從滑鼠到無人機的應用
3. 光流如何告訴我們障礙物的距離

昆蟲的動態視覺感應器

相對於我們人類或是大多數脊索動物擁有的單透鏡眼睛 (又稱相機式眼睛),昆蟲的複眼是一種設計概念迥異但高效率的視覺系統 (圖一A & B)。昆蟲的複眼是一個由上千到數萬個小眼所組成的視覺系統[1],而每一個小眼包含了一個透鏡與數個感光細胞。在複眼下游處理訊號的是一套相當有效率的視覺系統。兩側有視覺葉為前級處理單元,佔據了大腦相當顯著的體積。另有中央複合體為後級處理單元,產生複雜的認知訊號。由於每個小眼僅相當於視野中的一個像素,昆蟲的視覺解析度比起大多數高等動物的單透鏡眼睛來說是極低的:它們看到的景物是由數千到數萬個畫素所組成馬賽克圖像。

然而昆蟲的視覺系統卻有幾個特性讓他們極具生存的優勢:1. 昆蟲的複眼通常覆蓋的大部分的頭部,這樣給予昆蟲極寬廣的視野,讓他們可以偵測到各個方向的威脅。2. 昆蟲複眼的感光細胞有極高的時間分辨率,能夠辨別每秒閃爍高達兩三百次的光線刺激。3. 昆蟲具有高度發展的動態視覺,其視覺神經系統有複雜的迴路讓他們對於因自身或外界物體的移動而造成的景物流動(i.e, 光流; optical flow)特別敏感。對光流的敏感有兩個重要的功能,一是可以藉由偵測周遭的全景光流來辨識出己身的運動狀態,二是可以藉由偵測局部區域的光流來得知是否有物體的接近。

昆蟲對於光流的敏感來自於一種稱作基本移動感應器 (elementary motion detector) 的神經網路。早在上世紀50-60年代,Bernhard Hassenstein 與 Werner Reichardt 在一連串昆蟲實驗之後提出了一個基本移動感應器模型,又被稱作Hassenstein- Reichardt (HR) 模型 (圖一C)。這個模型利用計算鄰近兩個像素的訊號之間的時間延遲來達到偵測特定移動方向的能力[2]。此模型一共有四層(圖一C):層I為兩個鄰近小眼,層II為一短時間之延遲,層III為訊號相乘,層IV為相減。層III因不對稱的時間延遲,所以左邊與右邊的M單元各對相反方向的移動方向敏感。最後層IV的單元將左邊輸入減掉右邊輸入,得到一個對向右光流敏感之移動偵測器。在過去幾十年來Alexander Borst以及其他研究人員對蠅類的視網膜以及下游的視覺葉的神經網路結構與功能做了大量的研究,提出更精確與複雜的模型,但也驗證了HR模型的基本原理的正確性[3]。

上述的神經運算賦予昆蟲感應外界景物流動的能力。有趣的是如果蠅之類的昆蟲其神經系統不僅止於感應每個像素上景物流動的方向,下游的視覺葉還做了複雜的全景光流運算,讓系統對不同方向旋轉的光流敏感,因而可以得知自身在各軸向上的旋轉速度(圖一D)。另外果蠅視覺系統也可以計算局部光流的變化,如膨脹或縮小,從而感知出物體的接近或遠離(圖一E)。這也是為什麼果蠅可以快速地閃避接近的物體。而更下游的中央複合體負責做資訊整合,計算出果蠅的飛行姿態與運動方向(圖一F),進一步形成果蠅對周遭環境的空間感知以做導航之用。因此昆蟲雖然視覺系統的解析度很低,難以對複雜的圖像作辨識,但卻有極佳的動態視覺。而這些動態視覺運作的原理也被應用在工程設計上。

圖1  果蠅視覺神經系統,可以處理複雜的光流運算。

工程上的光流演算法

最早工程上光流演算法由Berthold Horn和Brian Schunck在1981年提出[4]。受限於單眼視覺(monocular vision)在任一時間點都只能提供單一的觀察資訊,所以他們給出兩項假設:(1)亮度恆定性 (brightness constancy) 、(2)空間平滑性 (spatial smoothness),亦即假定畫面中的景物全為靜止,且觀察者移動軌跡平滑。數學上描述如下[5]:

令I(x,t)是影像的亮度函數,可得:



δx 描述經過時間δ𝑡之後的位移量,經由泰勒級數展開:



其中∇I(x,t)=(Ix,Iy) ,和It同屬I(x,t)的一階導函數,最後推得光流限制式:



此處的v=(u,v)即表示觀察者的平移向量。

迄今光流演算法可分為兩大類,稠密光流(dense optical flow)與稀疏光流(sparse optical flow)。兩類演算法本質上是相同的,然而稠密光流計算的是整張圖像任一像素點的平移,如Farneback演算法[6];稀疏光流則針對影像中數個特徵點計算平移,如Lucas-Kanade演算法[7],運用最小平方法求解。

光流演算法相當多樣化,但基本上都是誤差與運算量之間的取捨。不過幾年前密集反向搜尋 (Dense Inverse Search, DIS) 光流法[8]的提出打破了此局面。DIS如同Farneback光流法一樣能產生密集光流,但使用的算法為Lucas-Kanade的變種,透過迭代法最小化比對誤差,並使用金字塔法避免無法偵測不同速度的光流以及不同大小的物品的情形。與需要特徵點的LK法不同之處是,DIS會主動尋找同樣速度的區塊,以此來利用稀疏法建構密集光流圖。DIS可大幅降低運算量,同時不會犧牲太多的精確性。

光流的應用 – 光學里程計

現今光流演算法最廣為應用的地方事實上就在我們生活周遭,光學滑鼠即是利用底部的影像感測器計算滑鼠的移動方向和速度。利用同樣的原理,我們將每個時間點的速度積分起來,可以得到感測器在一段時間的移動軌跡。此法稱之為光學里程計(visual odometry)。

光學里程計的應用近年在無人機領域逐漸成熟。此技術能在GPS或慣性導航系統 (Inertial Measurement Unit, IMU) 無法獲取精準資訊時,由光學影像計算自身運動狀態,而仍保留穩定懸停姿態,目前已經可見於許多商用無人機。開源無人機社群方面,則有瑞士蘇黎世聯邦理工學院領銜開發的PX4FLOW [9],他是一顆朝向下的相機模組、超聲波測距儀和慣性導航系統的組合,其配備的微處理器透過計算光流,並以當下對地距離補償無人機自身旋轉姿態,得到無人機純粹平移的向量,積分即得到無人機的飛行軌跡。當飛行器的主要導航系統失效時,光學里程計就是十分重要的備援系統;平時還能作為無人機精準定位的輔助工具。

室內飛行器因為無法接收GPS訊號,以視覺方式來定位以及紀錄飛行軌跡的技術就成為最佳解決方案之一。比如說 “Swarm gradient bug algorithm (SGBA)” 技術使用一群自動微型飛行器探索未知空間[10]。若每個飛行器朝不同方向探索,並沿著牆壁飛行,便可以光學里程計在短時間內勾勒出未知空間的平面圖。

光流的應用 – 視覺避障

避障系統被廣泛的應用在無人機、自駕車等,以提升載具的安全性與降低外界障礙物撞擊的可能性。依照其運作原理可以大致分為兩類:1.主動式避障2.被動式避障(如表一所示)。

主動式避障是藉由載具發射電磁波或聲波等訊號到周圍環境中,由於訊號碰到物體會反射,藉著接收反射訊號計算載具與障礙物的距離,即可達到偵測障礙物的效果。常見的訊號發射裝置有:紅外線、光達(Lidar)、超聲波等。反之被動式避障的載具不會發射訊號,而是藉由一到兩個相機蒐集環境中的資訊,例如:視覺影像、空氣擾動等,計算障礙物與載具距離,在障礙物夠靠近時自動控制載具迴避或提醒駕駛注意。本文所提到的視覺式之光流法為被動式,有潛力成為視覺式之低功耗避障解決方案,接下來我們就簡介光流如何應用於視覺避障中。

表1 避障系統依運作原理可分為兩類:主動式避障及被動式避障

 

主動式避障

被動式避障

常見方法

紅外線、超聲波、毫米雷達波

光達

單相機、雙相機

功耗

5~12.5mW

600~8000 mW

5~40 mW

偵測距離

4~8M

6M~15M

1M~20M

有效偵測速度

<2.5 m/s

10m/s

3m/s~10m/s

缺點

1. 紅外線在強光時難以發揮作用。

2. 超聲波不受光影響但不光滑表面會影響其反射波

偵測有高反射性物體時會無效

不怕強光,但亮度過暗時,其準確率會降低

雙眼視覺動物可以用雙眼視差來判斷物體的遠近,因此為避障的重要機制之一。但由於雙眼距離有限,視差僅適合較近的物體的距離判定。所幸當相機本身在移動時 (如飛行器或汽車上的相機),我們亦可以不同時間點的影像形成之光流來估算物體的距離。此種方式可適用於更遠之物體。簡單來說,在真實世界上的一個四元數坐標點(X,Y,Z,1),可藉由針孔相機模型投影到相機影像平面的坐標系(x,y)(圖二)[11]:

 

其中K相機參數矩陣,R為旋轉矩陣,T為相機移動向量。 當相機在移動的時候,也隨之改變現實世界中的物件與相機之間的相對位置。因此在影像平面上物件也會有相對移動的向量,而此向量就是就是物件在畫面中移動的影像光流。我們可以從式二推導出影像光流 (vx ,vy) 與相機平移速度 (VX,VY,VZ)、相機旋轉速度 (ωXYZ)、物件在影像平面上的位置 (x,y) 等參數的關係:

其中 f 為相機焦距。

從式三與圖二可知影像中的光流大小跟距離有關,距離越近的物件光流越大。所以若我們可以知道相機的平移與旋轉速度,就可以藉由影像中的光流大小從式三解出物體與相機的距離,進而達到障礙物偵測的能力。

但是在實務上還有兩個因素影響此演算法的效果:影像解析度跟影像的幀率。由於光流是計算畫面中物件移動的像素量,因此當解析度越大時,可以獲得較遠物體的細微移動。但畫面像素越高,需要的計算量也就越多。所以應根據應用場景權衡適當的解析度才不會造成過多的計算量或者無法獲取重要物體的移動資訊。

此外,由於光流是計算物體在每兩幀畫面中移動的像素數,所以越高的幀率在固定移動速度下其光流大小越小,而每秒所需的計算量卻越大,但是好處是高幀率表示系統可以在越短的時間內得到光流並更快地給予障礙物警告。那如何取捨適當的幀率呢? 如果今天相機是在慢速移動的情況,由於其速度本身不快,不需要太短的反應時間,而且慢速移動的光流大小已經偏小,所以可以降低幀率。反之,若相機是在高速移動的情況,需要較短的反應時間,這時候就必須提高幀率。也由於高速移動的光流大小已經足夠,所以提高幀率依然可以正確計算出光流大小。此時若要解決運算量過大的問題,可以縮小解析度。

從式三與圖二可知影像中的光流大小跟距離有關,距離越近的物件光流越大。所以若我們可以知道相機的平移與旋轉速度,就可以藉由影像中的光流大小從式三解出物體與相機的距離,進而達到障礙物偵測的能力。

但是在實務上還有兩個因素影響此演算法的效果:影像解析度跟影像的幀率。由於光流是計算畫面中物件移動的像素量,因此當解析度越大時,可以獲得較遠物體的細微移動。但畫面像素越高,需要的計算量也就越多。所以應根據應用場景權衡適當的解析度才不會造成過多的計算量或者無法獲取重要物體的移動資訊。

此外,由於光流是計算物體在每兩幀畫面中移動的像素數,所以越高的幀率在固定移動速度下其光流大小越小,而每秒所需的計算量卻越大,但是好處是高幀率表示系統可以在越短的時間內得到光流並更快地給予障礙物警告。那如何取捨適當的幀率呢? 如果今天相機是在慢速移動的情況,由於其速度本身不快,不需要太短的反應時間,而且慢速移動的光流大小已經偏小,所以可以降低幀率。反之,若相機是在高速移動的情況,需要較短的反應時間,這時候就必須提高幀率。也由於高速移動的光流大小已經足夠,所以提高幀率依然可以正確計算出光流大小。此時若要解決運算量過大的問題,可以縮小解析度。

圖2 視覺避障使用因相機移動造成的光流來估計物體距離

光流技術之展望

由前述介紹可知,光流法為仿生物之視覺前處理,可為特定任務之視覺AI運算前處理,且目前已應用於工程上各層面。其中,應用在避障上比起其他避障技術有低功耗與匿蹤的優勢。雖然目前主動式避障是較主流的避障技術,但如果我們檢視動物的避障功能,會發現除了蝙蝠以外,大多數動物都是以視覺作為主要的避障方法。顯示視覺避障是有能力應付絕大多數實務上之需求。

以光流做里程計算或避障雖然是一種仿生應用,但多數光流技術在底層的計算仍然使用傳統的數學演算法,而其運算量與影像之像素成正相關。昆蟲之所以可以使用低像素的視覺系統是因為其避障距離需求不高,最多幾公分到幾公尺,而一般工程應用的避障距離需求數十倍大於此,因此還是得使用較高像素的影像。為了解決高像素造成的運算量問題,有兩個領域內專家在努力的方向。一是使用事件相機 (event-based camera),或是幀差相機 (frame-difference camera),這兩種相機可大幅減低輸出的頻寬,讓後端光流計算可在較低的資料量上運作。另一方向是仿神經工程,參考昆蟲或哺乳類動物的視覺系統結構,設計更有效率的計算系統。比如說仿照前述HR或是Borst的移動偵測模型,以及下游的視覺神經系統結構,設計出可平行運算的仿神經晶片,避開傳統演算法所需的解方程式或做資料擬合等的複雜運算。

本文專注於仿生之動態視覺前處理,而光流法應用在AI運算之相關領域目前仍處於萌芽階段,仍待可利用光流特徵之特定視覺任務AI工程師們努力合作開發,也因此資料上都仍屬於概念的整理與架構設計。但我們相信未來當仿生光流技術益加成熟之後,我們將會看到這些技術被大量應用在小型飛行器或機器人上,讓這些運算能力有限的裝置也有如同昆蟲般優異的避障與空間感知能力。這樣的能力除了可增加這些微型移動裝置的安全性,也可大幅擴充它們的功能與應用場域。

參考資料

[1] 複眼的功能, Scholarpedia. http://www.scholarpedia.org/article/Function_of_compound_eye
[2] A. Borst, J. Haag & D. F. Reiff. Fly Motion Vision. Annual Review of Neuroscience 33, 49–70 (2010).
[3] A. Borst. A biophysical mechanism for preferred direction enhancement in fly motion vision. PLOS Computational Biology 14, e1006240 (2018).
[4] B. K. P. Horn & B. G. Schunck, Determining Optical Flow, in Techniques and Applications of Image Understanding 281, 319–331 (1981).
[5] S. S. Beauchemin & J. L. Barron. The computation of optical flow. ACM Computing Surveys 27, 433–466 (1995).
[6] G. Farnebäck. Two-Frame Motion Estimation Based on Polynomial Expansion. in Image Analysis, Berlin, Heidelberg, pp. 363–370 (2003).
[7] B. D. Lucas & T. Kanade. An iterative image registration technique with an application to stereo vision. Proceedings of the International Joint Conferences on Artificial Intelligence 81, 674-679 (1981).
[8] T. Kroeger, R. Timofte, D. Dai & L. Van Gool. Fast Optical Flow Using Dense Inverse Search. in Computer Vision – ECCV 2016 (eds. Leibe, B., Matas, J., Sebe, N. & Welling, M.) 471–488 (Springer International Publishing, 2016).
[9] D. Honegger, L. Meier, P. Tanskanen, & M. Pollefeys. An open source and open hardware embedded metric optical flow CMOS camera for indoor and outdoor applications. in 2013 IEEE International Conference on Robotics and Automation, May 2013, pp. 1736–1741 (2013).
[10] K. N. McGuire, C. D. Wagter, K. Tuyls, H. J. Kappen & G.C.H.E. de Croon. Minimal navigation solution for a swarm of tiny flying robots to explore an unknown environment. Science Robotics 4, (2019).
[11] M.Shibata, Y. Yasuda & M. Ito. Moving Object Detection for Active Camera based on Optical Flow Distortion. IFAC Proceedings 41, 14720–14725 (2008).
[12] 清華研發仿視神經AI晶片 讓無人機學果蠅飛行。中央通訊社 2020/02/02 https://www.cna.com.tw/news/ait/202001310133.aspx