滴滴AR實景導航背後的技術

桔妹導讀:機場、商場、火車站等大型室內場所內GPS信號不穩定、室內面積大、路線複雜、用戶判斷方向難等問題,給在大型場所內發單的乘客找上車點帶來了很大的挑戰,用戶急需一種操做簡單、交互友好的引導功能。本文講述了使用三維重建技術、傳感器計算技術和加強現實(AR)技術所開發的滴滴AR實景導航產品,並對開發過程當中遇到的難點、挑戰和解決思路展開介紹。算法

相信不少人都有過這樣的經歷:來到一個本身不熟悉的場景,特別是在一些GPS信號不許確的室內場所,很難找到建築物內部的一些特定地點。本文將以幫助用戶在大型機場等場所中快速找到上車點爲出發點,介紹滴滴AR實景導航產品研發過程當中的挑戰和關鍵技術。網絡

1. 應用背景

咱們在用戶調研中發現,在一些大型的機場、商場、火車站內部,滴滴乘客在下單成功以後,每每須要更多的時間才能找到上車點,其主要緣由是在這些大型的室內場所中,GPS信號不許確,而這些建築每每面積很大、內部路線複雜,當乘客對場景不熟悉時,找到上車點存在很大的困難。爲了解決這個問題,地圖團隊提出了「圖文引導」的方式來幫助用戶,經過特定場景的圖片和文字的方式相結合來引導用戶找到上車點。與此同時,咱們也在持續探索是否有更加直觀、易理解的方式來幫助用戶,受到加強現實(AR)技術在遊戲中應用的啓發,咱們提出了使用AR的方式來幫助用戶找到上車點,最終開發出了滴滴AR實景導航產品。框架

當乘客在支持AR導航的場站,使用滴滴出行App選擇推薦上車點發單成功後,能夠經過產品界面中的AR按鈕進入導航界面,並按指引操做,體驗在AR元素指引下到達上車點。以下圖所示。機器學習

鄭州機場

2. 問題分析

想要給用戶提供一個良好的導航產品,須要解決幾個關鍵問題:第一,場景所在的地圖是怎麼樣的;第二,如何肯定用戶的位置;第三,如何使用更加直觀的方式引導用戶走到目的地。這些問題,在一般的室外場景來看,可能都不是"問題",由於能夠直接使用現有的地圖、GPS定位、規劃路線和GPS實時位置引導到達目的地。可是這些能力在室內場景下,卻變得很難。具體緣由包括:在室內場景中,GPS信號受到建築物遮擋每每定位不許確,而現有的Wi-Fi、基站等定位技術也因場景中基礎設施狀況的不一樣而表現出精度差別很大;同時,與室外相比,室內場景結構複雜度高、判斷方向難,給用戶引導也帶來很大的挑戰。ide

爲了解決上述問題,給用戶提供更加友好的室內導航服務,咱們推出了滴滴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

滴滴技術 出品

相關文章
相關標籤/搜索