桔妹導讀:機場、商場、火車站等大型室內場所內GPS訊號不穩定、室內面積大、路線複雜、使用者判斷方向難等問題,給在大型場所內發單的乘客找上車點帶來了很大的挑戰,使用者急需一種操作簡單、互動友好的引導功能。本文講述了使用三維重建技術、感測器計算技術和擴增實境(AR)技術所開發的滴滴AR實景導航產品,並對開發過程中遇到的難點、挑戰和解決思路展開介紹。
相信很多人都有過這樣的經歷:來到一個自己不熟悉的場景,特別是在一些GPS訊號不準確的室內場所,很難找到建築物內部的一些特定地點。本文將以幫助使用者在大型機場等場所中快速找到上車點為出發點,介紹滴滴AR實景導航產品研發過程中的挑戰和關鍵技術。
1. 應用背景
我們在使用者調研中發現,在一些大型的機場、商場、火車站內部,滴滴乘客在下單成功之後,往往需要更多的時間才能找到上車點,其主要原因是在這些大型的室內場所中,GPS訊號不準確,而這些建築往往面積很大、內部路線複雜,當乘客對場景不熟悉時,找到上車點存在很大的困難。為了解決這個問題,地圖團隊提出了“圖文引導”的方式來幫助使用者,通過特定場景的圖片和文字的方式相結合來引導使用者找到上車點。與此同時,我們也在持續探索是否有更加直觀、易理解的方式來幫助使用者,受到擴增實境(AR)技術在遊戲中應用的啟發,我們提出了使用AR的方式來幫助使用者找到上車點,最終開發出了滴滴AR實景導航產品。
當乘客在支援AR導航的場站,使用滴滴出行App選擇推薦上車點發單成功後,可以通過產品介面中的AR按鈕進入導航介面,並按指引操作,體驗在AR元素指引下到達上車點。如下圖所示。
2. 問題分析
想要給使用者提供一個良好的導航產品,需要解決幾個關鍵問題:第一,場景所在的地圖是怎麼樣的;第二,如何確定使用者的位置;第三,如何使用更加直觀的方式引導使用者走到目的地。這些問題,在通常的室外場景來看,可能都不是"問題",因為可以直接使用現有的地圖、GPS定位、規劃路線和GPS實時位置引導到達目的地。但是這些能力在室內場景下,卻變得很難。具體原因包括:在室內場景中,GPS訊號受到建築物遮擋往往定位不準確,而現有的Wi-Fi、基站等定位技術也因場景中基礎設施情況的不同而表現出精度差異很大;同時,與室外相比,室內場景結構複雜度高、判斷方向難,給使用者引導也帶來很大的挑戰。
為了解決上述問題,給使用者提供更加友好的室內導航服務,我們推出了滴滴AR實景導航產品,其主要方案是採用低成本的視覺定位技術來提升使用者的定位精度,並結合擴增實境技術來將引導資訊顯示到使用者手機上,給使用者提供所見即所得的互動體驗。
3. 技術挑戰
要想實現一個理想的AR導航系統,我們調研了很多技術方案,最終選擇了基於視覺的三維重建技術來解決地圖構建和路徑計算的問題、視覺定位技術來提供更高精度的定位能力以及感測器位置推算與渲染技術來實現更加精確的AR互動顯示。雖然上述技術在學術研究領域已經有了很多年的研究,併產出了一些相對成熟的方案,但是在實施過程中,也遇到了很多挑戰:
(1)在三維重建方面
基於視覺的三維重建技術依賴相機拍攝到的場景影像進行三維結構恢復,一般應用於辦公室、公寓等幾百平米的場景內。在機場、火車站、商場等超過幾萬平米的大型場景下,會存在人群密集、重複紋理多、光照變化大、場景空曠、狹長通道等不利於視覺重建的因素,這種超大現實室內場景三維重建是業界難題。
(2)在視覺定位方面
室內環境複雜多樣,室內空間佈局、拓撲易受人為的影響,導致聲、光、電等環境容易發生變化,對於以特徵匹配為基本原理的定位方法,定位結果將受到較大影響。機場、火車站、商場內大量重複出現的指示牌、廣告牌都極易產生誤匹配,影響定位的精度。
(3)在感測器位置推算方面
由於感測器噪聲的存在,使得基於慣性感測器的位置推算存在累積誤差。當長時間使用時,導致導航路線偏離正確路徑,嚴重影響著使用者體驗。此外,使用者行走行為和手機硬體的多樣性,使得單一模型的慣性感測器位置推算很難解決所有場景遇到的問題。因此,亟需提出一種模型自適應機制來提升導航系統的準確度和魯棒性。
4. 關鍵解決方案
為了解決上述問題,結合具體的應用場景以及技術積累,我們分別針對每個關鍵模組進行了系列優化,現簡要分享一下。
▍基於視覺的三維重建技術
三維重建解決的是室內地圖構建的問題。三維重建一般需要藉助運動恢復結構(Structure from Motion,SfM),其學術定義是「在未知的環境中,讓一個機器人能進行環境的構建,並且估計自身的運動」。用通俗的語言講,是利用相機拍攝到的影像或視訊,恢復整個場景的三維結構。系統的輸入是多張影像或視訊流,輸出是場景的三維結構和每張影像拍攝的位姿。相機位姿是6自由度,3個自由度表示位置,3個自由度表示姿態(相機朝向)。位置可以理解成三維空間當中的一個點,姿態就是這個相機的朝向,如果在二維上就是360度的朝向,擴充套件到三維就是一個球體的朝向。
首先我們瞭解下SfM的技術框架,一共四個主要步驟:①資料採集;②特徵提取;③資料關聯;④結構恢復。在恢復場景的三維結構時,並不是使用影像中的所有畫素點,而僅從影像中提取穩定、顯著的點,也就是特徵點;資料關聯是確定有共視區域的兩張影像中哪些特徵點是對應的;後續會藉助幾何的方法以及最優化技術(Bundle Adjustment)將這些影像中的點恢復為空間的三維點。整個問題最終被轉化為大型非線性最優化問題求解,優化目標是重建的三維點重投影到影像中的位置與影像中的觀測點位置差最小,也就是最小化重投影誤差。
針對大型場站室內場景存在的人群密集、重複紋理多、場景有變化等挑戰。我們設計了一種基於視覺的大型室內場景三維重建方案:針對大型機場、火車站存在的規模大、場景複雜(重複紋理、相似紋理、狹長通道、動態物體等),提出了一種基於視訊的分塊三維重建方案,首先構建影像間的關聯圖,問題可以建模成Graph Cut問題,可以自動進行資料分塊;之後利用Pose Graph Optimization實現了塊間合併與優化,並通過引入關鍵幀、點雲選擇等策略,實現了自動化建圖,效率提升70%,構建的超過6萬平米的室內場站三維模型是業界已知的最大單體模型之一,下圖是鄭州機場的三維模型視覺化效果。
鄭州機場三維模型
▍視覺定位技術
在AR導航的使用場景中,定位的目的就是確定使用者的位置。手機的定位源主要包含3大類:①導航衛星接收機:包括中國的北斗,美國的GPS,歐洲的Galileo、俄羅斯的GLONASS等;②內建感測器:包括加速度計、陀螺儀、磁力計、氣壓計、光線感測器、相機等;③射頻訊號:包括Wi-Fi、藍芽、蜂窩無線通訊訊號等。除了衛星導航接收機外,這些感測器和射頻訊號都不是為定位而設定的,儘管如此,這些感測器還是為我們提供了很多的室內定位源。主流的全球衛星導航系統(Global Navigation Satellite System,GNSS)目前雖然已經被大規模商業應用,在室外開闊環境下定位精度已能解決大部分定位需求,但該類訊號無法覆蓋室內,難以形成定位。室內環境複雜,無線電波通常會受到障礙物的遮擋,發生反射、折射或散射,改變傳播路徑到達接收機,形成非視距(non line-of-sight,NLOS)傳播。NLOS傳播會使定位結果產生較大的偏差,嚴重影響定位精度。
經過充分的調研與對比,考慮到Wi-Fi指紋匹配方式定位精度2~5米,而藍芽iBeacon作用距離短且佈設成本較高等問題,最終我們採用了視覺定位的方式。該方法基於相機互動的方法,定位精度可達亞米級,魯棒性較好,且只需利用手機攝像頭、成本較低,無需佈設額外裝置,而且隨著近年視覺定位技術的不斷優化迭代,其精度與魯棒性已完全能滿足室內定位的需求。
(1)基於感測器融合的影像檢索重排序技術
通常情況下,使用者手機獲取一張查詢圖後,首先對影像進行特徵提取,然後採用特徵描述子對特徵點進行描述,根據圖中提取的大量2D特徵點,會在當前場景三維模型中檢索相似的top N張影像,根據最相似的影像進一步尋找2D點與模型中3D點的匹配,最後利用RANSAC+PnP求解,計算查詢圖的位置與姿態[R|t]。
但是由於室內場景存在大量人造物體,例如機場、火車站中大量出現的指示牌,商場中大量出現的廣告牌,都很容易因為區域性特徵相似,導致錯誤的匹配。考慮到手機本身整合了磁力計和GNSS感測器,雖然這些低成本的感測器精度有限,但作為定位初值還是可以加以利用,我們根據磁力計獲取的大致方位,以及GNSS獲取的大致位置作為先驗知識,根據感測器的精度指標,對候選影像進行聚類,並將引數加權帶入影像重排序(rerank)的計算公式,可以剔除具有明顯方向差異或者位置差異顯著的候選影像。在降低誤匹配概率的同時,也顯著提高了計算的效率,保證了定位結果的精度。
(2)基於上下文資訊的位姿校正技術
由於室內人造結構的特殊性,很多場景都是對稱修建或者呈規則排列的幾何佈局,導致在視覺定位的時候,不僅是區域性特徵幾乎一致,甚至大範圍場景內的全域性特徵也是非常相似的,這就導致初始定位存在一定概率的誤匹配情況。當使用者剛好位於此類區域的時候,很有可能會得到錯誤的引導資訊。不過在實際情況中,這些容易混淆的區域不會完全一模一樣,當使用者移動一小段距離或者視角發生變化的時候,往往會出現具有顯著區分度的地物特徵,依賴這些資訊可以對使用者當前的位姿進行校正,重新生成一條正確的引導路線。但是同樣是特徵匹配,當前後兩幀資訊都滿足定位條件,但定位結果存在較大差異的時候,如何分辨究竟哪個是正確的結果呢。這時就需要利用到上下文的資訊,即我們在定位的時候並不完全依賴於一次的定位結果,而是一片區域或者一段軌跡中的多個定位結果,當這些結果呈現出較好的一致性的時候,通常有更大的概率是正確的定位,相反,那些區域性特徵相似的區域,由於匹配到了錯誤的參考影像,其結果往往呈現出孤立的跳變,與前後幀並不能平滑過渡,行走軌跡也是不光滑的。利用這種定位結果的上下文資訊,可以有效檢測出錯誤的定位結果,對其進行過濾,或者及時發現當前已經處於錯誤的引導路線上,根據正確的結果進行校正。
▍感測器位置推算技術
在完成視覺定位後,需要根據手機的位置進行實時的路線指引和渲染,這裡我們使用了基於感測器的位置推算技術,通過讀取手機上的感測器資訊並結合人體運動模型等方法,推算出對應的位置。
慣性感測器包括加速度計和陀螺儀,通常還會與磁力計組合使用。每個感測器均具有三個自由度。加速度計測量施加給移動裝置的加速度讀數,陀螺儀測量移動裝置的旋轉運動,磁力計通過感知磁場的變化,推理出使用者當前的朝向。這些感測器可以在沒有外部資料的情況下確定移動裝置的位置,而不需要基礎設施的輔助。基於慣性感測器的位置推算由於以下優點逐漸成為研究的熱點:①低能耗全天24小時執行;②不受外界環境干擾;③內建於每一部移動智慧終端。
現有的基於積分的慣性導航演算法主要利用線性加速度計讀數(加速度計讀數減去重力資料)進行二次積分得到位移和陀螺儀讀數積分得到姿態,繼而解算當前位置。然而,慣性感測器具有噪聲,導致慣性積分演算法估計的位置很快飄移。因此,當前慣性積分演算法主要應用於高精度慣性器件中,例如航天級別的慣性感測器。為了解決在低端手機中慣性感測器的迅速飄移問題,研究者們提出了PDR (Pedestrian Dead Reckoning) 演算法。
PDR (Pedestrian Dead Reckoning) 演算法是一種基於相對位置的位置推算方法,主要思想是給定初始位置和朝向,根據行走的位移推算出下一步的位置。主要包括計步、步長估計和朝向估計模組,如下圖所示。計步主要是通過檢測加速度計讀數的峰值點實現步子識別;步長估計利用一步之內的加速度計讀數,根據人的身高、體重、步頻等特徵擬合當前一步的步長;朝向估計利用加速度計和陀螺儀讀數,通過濾波或者優化技術實現裝置的姿態估計,繼而獲取當前一步的行走朝向。由於上述每一個模組都會有誤差,且對不同的人群和裝置的多樣性比較敏感,隨著時間的推移,誤差累積增大,直至導航系統不可用,為AR引導帶來了技術挑戰。
為了解決上述技術挑戰,我們提出了魯棒的位置推算演算法,該方法發表在機器人領域頂級會議International Conference on Intelligent Robots and Systems (IROS) 2020上。
所提出的方法主要包括基於步態強度的計步演算法,基於步頻和統計特徵的步長估計演算法,基於深度模型的朝向迴歸演算法和基於機器學習的運動分類演算法。下面介紹一下相關演算法。
(1)基於步態強度的計步演算法
給定三軸加速度計讀數,首先對每一幀加速度計讀數求取幅值。利用當前幀加速度計的幅值和其鄰近資料,檢測加速度計讀數波形的峰值,每一個峰值對應著候選步子,如下公式所述:
其中,S表示當前加速度計讀數的狀態,即是否為候選步子,如果為1,則表示當前時刻檢測到候選步子。
其次,根據長短窗內的加速度計讀數的均值來判斷當前時刻是否為候選步子,其下公式所述:
其中表示短視窗內的加速度計讀數的均值,表示長視窗內的加速度計讀數的均值。
再次,根據加速度計資料計算步態強度,它描述了一步之內加速度的變化情況。當步態強度超過一定闕值後,我們認為當前時刻是候選步子:
其中,
下圖展示了真實行走狀態下步態強度的變化情況,其中藍色點表示步態強度,紅色點表示步點。
最後,當上述狀態均取得1時,認為當前時刻為檢測到一步,計算公式如下:
計步演算法示意圖如下圖所示,其中藍色曲線表示加速度計讀數,紅色三角形表示識別到一步。
(2) 步長估計演算法
我們提出了一種基於統計特徵的步長估計演算法,其中統計特徵包括步頻、一步內的加速度計讀數的方差、極差的n次開方,計算公式如下所述:
其中,a, b, c和d是超引數,根據實際應用進行訓練。f表示行走步頻,表示加速度計讀數極差的m次開方,表示加速度計讀數的方差。
(3)朝向估計演算法
現有的朝向估計演算法利用互補濾波和卡爾曼濾波實現裝置朝向的估計,而裝置朝向和人員行走朝向之間存在變化的偏差角會導致PDR的位姿估計累積飄移。為了解決該問題,我們利用深度學習演算法來回歸使用者行走的朝向。具體而言,我們提出了一種heading-confidence模型,採用LSTM和ResNet作為深度網路框架。LSTM主要負責行走朝向的迴歸,ResNet主要負責行走速度的迴歸,最後,我們設計了置信度函式來進行朝向的融合。
(4) 運動分類
為了提升PDR系統對運動類別的魯棒性,我們設計了一種基於梯度提升決策樹演算法的運動分類模型。主要包括行走、隨意行走、靜止和手持裝置搖擺四種姿態。通過識別不同的行走姿態,我們自適應的載入對應的模型引數,繼而提高了PDR演算法的精度。實驗結果如下圖所示。其中,黑色曲線表示參考真值,藍色曲線表示沒有運動分類的PDR演算法軌跡,紅色曲線表示引入了運動分類的PDR軌跡。可以看到,紅色軌跡更加接近於參考真值。
5.總結
大型機場、商場、火車站內部的上車點引導能力對使用者體驗影響很大,為了解決這個問題,地圖團隊做出了很多努力,推出了“圖文引導”方案來使用影像和文字的方式幫助使用者。同時,為了給使用者提供更好的體驗,我們也推出了滴滴AR實景導航產品,使用人工智慧演算法等科技手段,為使用者提供準確的、易用的導航產品,來幫助使用者更快的找到上車點。目前在鄭州、深圳以及日本東京等24個機場、商場或者火車站上線了AR導航服務,資料顯示,它能幫助使用者節省近四分之一的時間,讓他們更便捷地到達上車點。與此同時,在南京火車站等大型場站,我們正在進一步探索基於AR導航的技術來幫助乘客快速抵達公交站點。後續我們將持續優化和打磨我們的演算法,為乘客和司機創造更多的價值。歡迎大家體驗我們的產品,並對我們提出寶貴的意見,希望通過我們的努力可以為大家提供更好的出行體驗。
團隊介紹
滴滴地圖視覺計算團隊以使用計算視覺技術解決地圖和出行場景中的痛點問題為目標,團隊在目標檢測、影像分割、場景文字檢測識別、三維重建、SLAM、感測器計算等方向具有豐富的技術積累,並將技術與業務場景緊密結合,成功落地地圖更新、引擎賦能、場站AR導航等多個系列專案,發揮了人工智慧技術在降本增效、使用者體驗提升等方面的獨特優勢。團隊積極關注前沿技術發展,取得例項分割、影像匹配等多項國際比賽冠軍,並在NeurIPS、CVPR、AAAI、TIP等頂級會議和期刊上發表多篇文章。
作者介紹
滴滴地圖視覺計算團隊負責人、計算機視覺方向博士,十餘年計算機視覺領域研究和開發經歷,在視覺分析和理解領域有較豐富的演算法研究和專案落地經驗。曾就職於微軟,從事微軟小冰視覺理解系統的研究和開發工作。累計發表視覺領域會議和期刊論文50餘篇,並擁有多項國內和國際專利。
延伸閱讀
內容編輯 | Charlotte&Teeo
聯絡我們 | DiDiTech@didiglobal.com
滴滴技術 出品