Google 地圖重大升級,用深度學習即時更新街景

作者 | 發布日期 2017 年 05 月 05 日 16:30 | 分類 AI 人工智慧 , Google , 軟體、系統 follow us in feedly

每天,Google 地圖都為成千上百萬的人們提供方位指示、即時路況資訊以及商業資訊。為了提供最佳的用戶體驗,地圖資訊需要不斷根據現實世界的變化調整。街景車每天收集數百萬張圖片,如果用人工分析每天超過 800 億張高清晰圖片,找出其中的新變化或更新地圖資訊,顯然不可能。因此,Google 地面實況團隊(Ground Truth team)的目標之一,就是從地理位置圖像自動提取資訊來升級 Google 地圖。




在「從街景圖像中提取基於注意機制的結構化資訊」(Attention-based Extraction of Structured Information from Street View Imagery)一文中,Google 描述了採用的方法──怎樣在街景視圖中使用深度神經網路自動且準確無誤地讀出街道名稱。演算法系統在挑戰「法國街道名稱識別數據集」(French Street Name Signs(FSNS)dataset)中達到 84.2% 的正確率,明顯優於之前的最優系統。重要的是,Google 的系統在提取其他類型資訊也很容易擴展。比如現在幫助 Google 自動提取商店前面的商戶名稱。目前該模型已經開源。

▲ 法國街道名稱標識數據集中的一個例子,被 Google 的系統正確辨識。上圖為同一標識的 4 種不同視角。

自然環境中的文本辨識在電腦視覺和機器學習上是一個非常具有挑戰性的問題。傳統的光學字符辨識(OCR)系統,主要側重於從掃描的文檔中提取文本。在自然場景中由於視覺偽影,如失真、閉塞、定向模糊、雜亂的背景或不同的角度給提取文本提升了難度。Google 從 2008 年開始致力於解決這一問題,使用神經網路模糊了街景圖像中的臉和車牌,以保護 Google 用戶的隱私。從最初的研究中,團隊意識到經過足夠的標記數據訓練後,機器學習不僅能保護用戶的隱私,而且還可以自動升級 Google 地圖相關的最新資訊。

2014 年 Google 地面實況團隊在街景門牌號數據集(SVHN)上公布了讀取街道號碼的方法,隨後暑期實習生 Ian Goodfellow(現為 Google 員工)進行了運用。這個工作不僅是出於對學術的興趣,而且也是使 Google 地圖更為精確的關鍵。如今得益於這個系統,超過三分之一的全球地址已經在 Google 地圖上有了自己的位置。在一些國家,如巴西,這個演算法增加了超過 90% 的 Google 地圖地址,大大提高了 Google 地圖的可用性。

下一步是將這些技術擴展到街道名稱。為了解決這個問題,Google 創建和發布了法國街道名稱標誌(French Street Name Signs,FSNS),有超過 100 萬的街道名稱訓練數據集,旨在提高人們對 OCR 模型在實際使用情況下的認識。FSNS 是 Google 經過多年努力而構建的,它比 SVHN 數據集更加龐大,也更具挑戰性,因為如果要準確辨識某個街道標識,可能需要對各個角度所拍攝的圖片進行整合處理。

▲ 上圖是辨識起來很有難度的一些標識,也被 Google 系統透過對圖像的理解而正確判斷了。尤其是第二個,不過這個模型在之前學習了語言模型,使其能夠消除歧義,並正確識別出街道名。值得一提的是,在 FSNS 數據集中,同一路標在少於 4 個獨立視圖的情況下會增加隨機雜訊。

Google 實習生 Zbigniew Wojnazai 在 2016 年夏天用這個數據集開發了一個深度學習模型,它能夠自動標註新的街景視圖。這個新模型的一個優點是,它可以根據日常的命名習慣進行文本規範。

▲ 上圖的例子中,可以將「AV.」轉化為「Avenida」,「PRES.」轉化為「Presidente」這是我們期望看到的結果。

▲ 在這個圖中,模型沒有被圖中的兩個街道名稱迷惑,將「AV.」正確轉化為「Avenue」,同時也辨識出數字「1600」。

儘管這個模型非常精確,它依然有 15.8% 的序列錯誤率。不過,在分析錯誤樣本後,團隊發現,其中 48% 是由於地面實況錯誤,也就是說,模型與標記質量呈現的準確度基本一致。

這個新系統結合了提取街道號碼技術,能夠直接從圖像創建新的地址。現在,每當一輛街景車在新建的道路上行駛時,系統可以捕捉上千萬張圖像,提取街道名稱和數字,並自動在 Google 地圖上創建和定位新地址。

但自動為 Google 地圖創建地址是不夠的。此外,還希望能夠為商業提供導航。2015 年,Google 發表了「從街景圖像中進行大規模的商業發現」(Large Scale Business Discovery from Street View Imagery)一文,文中提出一種方法可以準確地檢測商店外牆的標誌。然而,檢測到商店外牆,仍然需要準確地提取它的有用名稱。模型必須找出哪個文本是商戶名稱,哪些文本是不相關的。Google 稱這種提取為「結構化文本」信息的提取。它不只是文字,而是具有語義意義的文本。

使用不同的訓練數據,用來讀取街道名稱的模型結構也可以用來準確地提取商業名稱。在這種特殊情況下,如果已經知道這個商戶在 Google 地圖的位置,可以只提取商業名稱來進行驗證,使之能夠更準確地更新商業列表。

▲ 如上圖所示,雖然沒有從圖片中獲得任何有關真實地址的資訊,但系統還是正確辨識出了商戶的名字 Zelina Pneus,而且沒有被旁邊的輪胎品牌所騙。

模型需要處理 800 多億個街景圖像,需要強大的計算能力。這就是為什麼 Google 地面實況團隊採用 TPU,可以大幅減少推理計算成本。

人們依賴於 Google 地圖的精準性來協助他們工作和生活。同時,在景觀、道路和商業不斷變化的情況下,Google 地圖的更新所面臨的技術挑戰,遠遠還沒有解決。為超過十億的 Google 地圖用戶創造更好的用戶體驗,一直是 Google 地面實況團隊追求的目標。

(本文由 雷鋒網 授權轉載;首圖來源:Flickr/J K THORNE (J K THORNE) CC BY 2.0)