最近谷歌I/O中亮相的迷你雷達(project soli)著實令人眼前一亮。現場展示中,該雷達可以捕捉手指的細微運動,可以隔空通過手勢控制手錶屏幕翻頁,可以通過變化手指與屏幕距離實時改變UI元素,好像巫師施展魔法操作一般。懷著好奇心,本文來聊聊雷達背後的黑科技,作為科普。
雷達,英文Radar(Radio Detection And Ranging),利用發射「無線電磁波」得到反射波來探測目標物體的距離,角度,和瞬時速度。從1922年無線電之父馬可尼(GuglielmoMarchese Marconi)提出雷達概念至今,雷達多用於軍事偵查和預警,在二次世界大戰中也發揮了重要的作用。於是在人們的普遍印象中,雷達似乎就應該有著巨型的拋物天線,笨重,昂貴,而且功耗巨大。然而,這種觀念基本已經落伍了。隨著天線尺寸和晶片的極度縮小,在可預見的未來,更多的雷達設備將會以微型器件面世。如圖1所展示的那樣,它們不僅能嵌入可穿戴設備,成為物聯網的一類重要傳感器,也會逐漸走入尋常百姓家,為生活和日常起居帶來方便。
圖1 傳統的探測偵查雷達(左)以及Project Soli中用於手勢識別的迷你雷達(右)
相比於其它隔空操作技術,比如體感相機、超聲波等,雷達有著一些天然優勢:比如無論白天黑夜,暴曬寒風,皆可正常工作;在體積、成本,以及功耗上都比Kinect等體感相機來得要更低;高頻雷達測量物體距離通常可以精確到毫米級別;而低頻雷達則可以做到「穿牆而過」,完全無視遮擋物的存在。這些特性讓雷達,尤其是微型雷達,在未來都有著廣闊的應用前景。除體感手勢識別之外,亦可用於商業和住宅的室內室外監控,甚至隔空測量生命體徵。
一般雷達由發射器、接收器、發射/接收天線、信號處理單元,以及終端設備組成。發射器通過發射天線將經過調頻或調幅的電磁波發射出去;部分電磁波觸碰物體後被反射回接收器,這就好比聲音碰到牆壁被反射回來一樣;信號處理單元分析接受到的信號並從中提取有用的信息諸如物體的距離、角度,以及行進速度;這些結果最終被實時地顯示在終端設備上。傳統的軍事雷達還常配有機械控制的旋轉裝置用以調整天線的朝向,而新型雷達則更多通過電子方式做調整。
為節省材料和空間,通常發射器和接收器可以共享同一個天線,方法是交替開關發射或接收器避免衝突。終端設備通常是一個可以顯示物體位置的屏幕,但在迷你雷達的應用中更多是將雷達提取的物理信息作為輸入信號傳送給諸如手錶或其它電子設備。信號處理單元才是雷達真正的創意和靈魂所在,主要利用數學物理分析以及計算機算法對雷達信號作過濾、篩選,並計算出物體的方位。在這基礎之上,還可以利用前沿的機器學習算法對捕捉的信號作體感手勢識別等等。
目前雷達的基本功能仍然是測距和測速。比如警察執法中通常會使用測速雷達來判斷車輛是否超速。測距和測速背後的基本原理並不難理解。就那測距來說吧,最簡單的做法就是發射一個脈衝波,並等待其返回接收器。因為電磁波是以光速行進的,那麼通過測量等待時間就可以間接地獲取距離了(如圖2所示),是不是很簡單呢?
圖2 電磁波遇到障礙物後,大部分能量散射到空間各個角落,小部分能量被反射回接收天線。通過精確測量發射到接受回波的時間,就可以推斷雷達到物體的距離。
當然,發射脈衝對於發射機的峰值功率有較高要求,並且電路實現相對複雜。更普遍地低功耗獲取距離信息的方法是對發射信號的頻率作調製。此類雷達的專業術語叫做FMCW(Frequency Modulation Continuous Wave),方法是發射一個線性調頻信號(chirp),其波形見圖3。因為頻率與距離的關係是線性的,通過檢測反射波與發射波當前的頻率差異即可推斷物體的距離。從演示來看,筆者估計谷歌I/O發布的project soli就是一款基於FMCW的微型雷達。
圖3 線性調頻信號波形(左)。通過反射波與發射波的頻率差可推測物體距離(右)
雷達的另一項優勢是可以測量物體的瞬時速度,這就要提到物理中鼎鼎大名的「都卜勒效應」了。其大意是說,反射波的頻率會因為物體行進的速度改變而改變。經典的例子是聲波的傳播。遠方急駛過來的火車鳴笛聲變得尖細(即頻率變高),而遠去的火車鳴笛聲變得低沉(即頻率變低)。見圖4。那麼,利用此規律,只需洞悉了頻率變化就可以推斷物體的速度了!
圖4 都卜勒效應演示 反射波的頻率因物體速度大小和方向不同而改變
前面所講的測距或者測速都把物體想像成一個抽象的點。而真實的物體如手掌則可以認為是一堆三維點的集合體。所以在反射波中已然蘊藏了許多個點的距離與速度信號。同時呈現這些信息的
一個好方法叫做距離-都卜勒映射(Range-Dopler Map),簡稱RDM(如圖5)。RDM中的橫軸是速度,縱軸是距離。它可以認為是一張反射波的能量分布圖或概率圖,每一個單元的數值都代表了反射波從某個特定距離和特定速度的物體得到的反射波能量。仔細看的話,從RDM中已然可以窺見探測物體的特徵身形!基於RDM及其時間序列, 我們可以採用機器學習的方法識別特定的能量模式變化,進而識別手勢及動作。在Soli推出之前,Nvidia也做過類似的研究,參見注釋[1]。
圖5 距離-都卜勒(速度)映射的等高線表示示例每一個單元值代表了反射波中具有對應距離和速度的點的集合的反射能量。該映射可以作為特徵向量用於機器學習識別手勢動作。
當然,除了簡單的手勢識別之外,雷達還有很多其它妙用哦,比如說定位!回想一下,無論測距或者測速或者手勢識別,都不能精準地指出物體所在的3D位置有木有。當然要實現定位也不難,最簡單粗暴的做法就是利用一個有向天線和一個機械旋轉裝置嘛,通過不停地旋轉天線來掃描天空的各個位置。
這種通過機械方式旋轉天線的方法,對於移動產品來說顯得很笨重,耗電量大且不方便。一個聰明且有趣的解決辦法是通過「相位陣列」以電子的方式調控天線的合成方向,也被稱為波束成形(beamforming)。其主要原理是使用多個發射器,通過調整波形的相位和波形間的相長和相消幹涉(constructive and destructive interference) 來達到控制合成發射波的朝向問題。更簡單地說,就是「打時間差」!為便於理解,不妨想像水波之間的幹涉條紋(如圖6)。如果可以自由任性輕鬆地調整天線朝向,再配合上測距的原理,雷達就可以實現自動定位啦!
圖6 波束成形演示 通過調整不同發射波的相位(時間差)來模擬天線朝向
定位的另一個常用方法是使用多個接收器!因為多個接收器收到的反射波的相位(時間)略有不同,通過測量它們之間的相位差即可作定位,在此就不詳細敘述了。從介紹上看,谷歌新款的迷你雷達擁有2個發射器和4個接收器,這樣就可以同時利用波束成形和相位差的方法作手掌定位。
儘管雷達技術本身已有近百年歷史,在軍事,通訊等領域都有著廣泛的應用,但迷你雷達的研究和商業應用直到最近才初露端倪,相信它在未來的可穿戴設備,室內外監控,體徵檢測等領域都有著廣闊的應用前景。關於體徵檢測方面,做到比較前沿的是位於挪威的Novelda公司 (https://www.xethru.com/en/),其宣傳視頻顯示甚至可以通過雷達隔空檢測心跳,呼吸等,如同科幻片一般。對迷你雷達感興趣的讀者朋友們也可進一步閱讀注釋[2]作為入門讀物。可以想見,在一個充滿微型雷達的未來世界裡,人人都是懂得魔法的巫師 !
原文刊載於《程式設計師》雜誌8A刊
參考文章:
[1] P. Molchanov, S. Gupta, K. Kim, andK. Pulli. "Short-Range FMCW Monopulse Radar for Hand-GestureSensing", in IEEE International Radar Conference, May 2015
[2] G. Charvat. 「Small and Short-Range RadarSystems」, CRC Press, 1st edition,April 2014
作者:顧志強,計算機科學博士。熱愛研究和分享黑科技帶來的最新成果。曾先後在蘋果人機互動實驗室與谷歌 [x] 實驗室,從事蘋果手錶觸屏以及谷歌眼鏡的研發項目,並取得多項專利和若干創新項目獎項。本文節選自他目前正在籌備的新書《矽谷黑科技》。