主頁 >  其他 > 高德網路定位演算法的演進

高德網路定位演算法的演進

2020-09-16 08:20:49 其他

1.導讀
GPS定位精度高,且早已成為移動設備標配,但GPS也具有一些難以克服的缺陷,包括:

  • 冷啟動時間長,GPS啟動時,需要進行搜星,鎖定衛星信號,然后再進行位置技術,這個程序可能會達到幾十秒,即使采用諸如AGPS等技術,仍然有秒級的時間無法定位,
  • 室內或有遮擋的場景,GPS信號弱,無法有效定位,

用戶需要持續的有效定位,因此需要另一個技術對GPS進行補充,這就是網路定位技術,

網路定位是將手機設備收到的信號(主要是基站、Wifi、藍牙)發送到網路服務器,獲得位置,之所以要將信號資料發送到網路上,是因為網路定位是利用信號指紋進行定位,需要一個龐大的且持續更新的指紋資料庫,這個資料庫難以同步到移動設備上,為了進行定位,需要事先建立每個位置的指紋特征,然后在定位時用實時指紋比對每個位置的歷史指紋,確定位置,

高德網路定位不僅承擔著高德地圖用戶的定位請求,還面向國內所有主流手機廠商,以及國內30萬以上App提供服務,日均處理請求千億次,峰值QPS百萬級,

在過去的幾年中,高德網路定位演算法經歷了從無監督演算法向有監督演算法的演進,從定位精度、定位能力透出等方面都有了顯著的提升,

注:高德網路定位只存在于安卓平臺上,在iOS上由于蘋果公司未開放任何定位相關的指紋資料(Wifi、基站串列等),定位結果全部來自于iOS自身,

2.基于聚類的無監督演算法
經典的指紋定位演算法是無監督演算法,其核心是計算指紋的相似性,用指紋確定位置,下圖是一個例子,AP代表手機掃描到的基站和Wifi設備編號,縱軸代表不同的位置,二者交點的數值代表該位置掃描到該AP的信號強度,為空代表該位置沒有掃描到該AP,

要對一個新定期請求進行定位(比如AP1:-30,AP2:-50,AP3:-90),一個最簡單的方法,是用KNN逐一計算該指紋與歷史指紋的相似度(比如用L2距離或者余弦相似度),取相似度最大的歷史位置作為用戶位置,

這有兩個問題,第一是計算量太大(AP是10億量級,loc是千億量級),無法滿足實時定位的要求,第二是歷史指紋在區域可能比較稀疏,對于用戶指紋無法精確匹配,

于是需要對歷史資料進行預處理,提取出AP和網格的通用指紋,這樣在定位時只需要比對一次即可,下圖是利用一個AP的歷史采集位置進行聚類,獲得AP實際位置和覆寫半徑的程序,有了每個AP的位置,在定位時將多個AP的位置進行加權平均即可獲得最終位置,

這種方法需要解決的一個挑戰是當有多個候選位置時如何選擇,如下圖所示,有兩個候選位置,

 

此時需要設計一個策略進行簇選擇,基于每個簇的特征進行打分,找出最有可能的一個簇作為用戶位置,

基于加權平均的定位,速度很快,但精度比較差,原因是指紋在空間上的分布并不是連續的,而可能受到建筑、地形、道路的影響,呈現一種不規則的分布,于是在上面定位方式的基礎上,發展出一種基于格子排序的演算法,可以更精準的定位,

首先將地球劃分為25*25的網格,然后統計每個網格內的指紋特征,最后進行格子排序,設候選網格為l,信號向量是S,則定位程序就是計算

根據貝葉斯公式,有

根據1-1,由于所有候選網格的分母相同,只需要計算分子,即:

其中P(l)是某個位置在全量用戶位置中出現的概率,可以用定位PV表示,而P(S=S0|l)則需要計算在每個網格內出現某種信號向量的概率,由于向量維數高,概率難以計算,因此對不同維進行獨立假設,認為每個信號出現的概率是獨立的,有:

這樣,可以基于歷史指紋對每個網格內的每個AP的信號強度進行直方圖統計,即可計算出概率,最后對所有格子的概率進行排序,獲得概率最高的那一個,如下圖:

3.基于分層排序的有監督演算法

無監督演算法的一個問題,是難以迭代,對于badcase無法進行有效優化,一旦調整策略就會影響到其他case,無法獲得全域最優,

因此,有監督學習就變得很有必要,高德定位從近兩年開始全面轉向有監督學習,持續進行特征和模型設計,提升效果,取得了不錯的收益,解決了50%以上的大誤差問題(5公里以上),在移動Wifi識別上獲得了99%以上的識別準確率,

有監督學習需要使用大量的特征,特征的計算需要消耗較多資源,考慮到定位服務要承受10萬以上的QPS,模型的復雜性與效果同等重要,因此我們首先將定位服務進行了分層,上面的層級針對大網格,計算粗略的位置,下面的層級針對小網格,逐步細化位置,這樣可以極大減少不必要的計算,在性能和效果間取得平衡,

對于每一個單獨的演算法模塊,都采用類似下面的神經網路模型對每個候選網格進行打分,再使用LTR損失函式作為目標進行訓練,從而獲得神經網路的引數,在特征方面,同時考慮以下三類:

  • AP的動態特征,比如信號強度
  • 網格特征,比如PV、UV、AP數、周邊候選網格數等
  • AP在網格上的特征,比如信號強度分布、PV、UV等

采用這種方法可以解決絕大部分格子選擇不準確的問題,遺留的一個問題是當定位依據特別少的時候,比如只有一個基站和一個Wifi,二者分別位于距離較遠的兩個網格,此時無論選擇哪個都有50%的錯誤概率,為了解決這個問題,我們引入了用戶歷史定位點輔助進行各自選擇,

在特征部分加入歷史定位點序列,輸出一個歷史位置特征(可以看成是一個預測的新位置),讓這個預測位置參與網格打分,當有兩個距離較遠但打分接近的網格進行對比時,通過預測位置進行加權,這樣模型應該可以學出這樣的規律:如果網格距離預測位置比較遠,打分就降低,如果比較近,分就高,通過這個方法,大誤差case的比例可以降低20%,

4.場景化定位
用戶在不同場景下對定位的要求是不同的,比如用戶在旅途中可能只需要知道大致的位置,不需要很精確,但是在導航時就需要精確的知道自己在哪條道路上,距離出口多遠,

因此,除了在整體演算法架構上進行優化,高德還在不同特定場景上進行針對性的優化,滿足用戶不同場景下的定位需求,

室內場景

指紋定位的一個局限,是需要采集帶GPS的樣本作為真值進行訓練,由于GPS只能在室外被采集到,即使用戶在室內,其定位結果有很大概率在室外,這會對用戶造成不少困擾,特別是在用戶準備出行的時候,其定位點的漂移會導致起點偏離真實位置較大,

為了解決這個問題,有兩個解決辦法,一是采集室內真值,但這種方法需要大量人工采集作業,作業量巨大,目前高德在一些熱門商場和交通樞紐進行人工指紋采集(除了基站Wifi還支持藍牙、傳感器定位),第二個辦法是借助大資料,無需人工干預,對Wifi進行建筑/POI關聯,用建筑/POI位置去修正定位結果,

Wifi-POI關聯有多種方法,一個簡單的方法是用POI名字與Wifi名字的相似度判斷是否有關聯,比如麥當勞的Wifi名字就是McDonald,關聯的時候需要考慮中英文、大小寫、中英文縮寫等,從名稱能分析出關聯關系的Wifi畢竟是少數,另外一種覆寫能力更強的方法是利用Wifi信號分布規律去挖掘Wifi的真實位置,畢竟絕大部分Wifi都是部署在室內的,

這里我們采用的是CNN的方法,將樓塊資料、POI資料、采集真值資料繪制為二維影像,然后進行多層卷積計算,label為Wifi所在的真實樓塊區域,下圖中藍色塊為樓塊,綠色為采集點,顏色越亮代表信號強度越高,紅色點代表Wifi真實位置,

目前演算法能挖掘出30%Wifi對應的真實位置,在最終定位效果上,用戶在室內時,能正確定位到室內的樣本比例提升了15%

高鐵場景

從用戶報錯情況看,有大量報錯是用戶乘坐高鐵時定位例外,高鐵在近兩年開通了車載Wifi,這些Wifi都是移動Wifi,因此這些AP是沒有一個固定位置的,如果不進行任何處理,演算法訓練獲得的Wifi位置一定是錯誤的,很大概率會在沿途的某個車站(用戶集中,采集量高),

針對這種場景,需要將移動Wifi全部去除再進行定位,我們開發了針對高鐵和普通場景的移動Wifi挖掘演算法,利用采集點時空分布等特征判斷某個Wifi是否移動,挖掘準確率和召回率均超過99%,可以解決絕大部分高鐵定位錯誤的問題,

地鐵場景

地鐵場景有點類似高鐵,用戶掃到的Wifi基本都是移動Wifi(少量車站有固定Wifi),因此只能借助基站進行定位,但基站深埋地下,缺乏采集資料,如何獲得基站的真實位置呢?我們采用了兩種策略,第一個策略是利用相鄰基站資訊,當用戶在一個請求里或者在短暫時間段內同時掃描到地鐵基站(無GPS采集)和非地鐵基站(有GPS采集)時,我們可以用后者的位置去推算前者位置,當然這種方式得到的基站位置不太準確,于是我們進行了進一步優化,利用用戶軌跡去精準挖掘出每個請求對應的地鐵站,從而構建出指紋對應的真值,

基于以上方法,地鐵內的定位精度可達到90%以上,實作地鐵報站和換乘提醒,

5.未來演進
在未來,定位技術特別是移動設備的定位技識訓將快速發展,主要突破可能來自以下方面:

影像定位:谷歌已經發布了基于街景的AR定位,可以解決在城市峽谷區域內的精準定位,這種定位利用了更豐富的資料源,對用戶體驗的提升也會非常顯著,

5G定位:5G相比4G,頻率更高,頻帶更寬,用于測距時精度更高(比如利用相位差進行傳輸時間計算),行業協會也在范訓5G定位相關的標準,運營商在未來可能會支持基于5G網路的定位,屆時在5G覆寫區將會有類似GPS精度的定位效果,

IOT定位:隨著物聯網的普及,基于NB-IOT的定位技術也會應運而生,它可以使用類似基站定位的方法,或者使用P2P定位的方法為物聯網設備進行定位,

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/55439.html

標籤:其他

上一篇:TensorFlow2.0(12):模型保存與序列化

下一篇:虛擬對抗訓練(VAT):一種用于監督學習和半監督學習的正則化方法

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more