分享|帶來全新交互體驗的「支付寶AR」技術大解密

小螞蟻說

AR是一種新穎的交互方式,與傳統交互方式相比,可以讓用戶更深入地參與互動,給用戶帶來新體驗。

而春節期間,支付寶的「掃福得福」活動也異常火爆,支付寶將AR與遊戲、紅包相結合,探索出了一種新玩法。

雖然AR領域已經有了很多年的發展歷程,但技術成熟度和用戶普及度都還有很大的進步空間。而走在該領域前排的支付寶,背後又有哪些技術架構和研究故事呢?今天就有請我們的支付寶AR團隊來給大家進行詳細分享。

分享|帶來全新交互體驗的「支付寶AR」技術大解密

1. 前言

首先,我們回顧下網絡上對AR技術的定義:增強現實技術(Augmented Reality,簡稱AR),是一種實時地計算攝影機影像的位置及角度並加上相應圖像、視頻、3D模型的技術,這種技術的目標是在屏幕上把虛擬世界套在現實世界並進行互動。

從這個定義可以看出,AR包含兩個關鍵要素:相機姿態估計和虛實互動

不過,在當前流行的AR應用中,未必都滿足這兩個要素,比如有些簡單的AR應用主要是識別某個物料,識別成功後播放一段廣告視頻然後發個優惠券,這個過程並沒有估計相機姿態,但是已經滿足初期AR營銷需求了。為此,我們可以稱當前的很多AR應用為泛AR應用。

2. AR技術概述

AR技術本身可以從各個維度進行分類,比如根據硬件載體不同,可以分為基於通用移動設備的AR(比如手機AR)和基於專用設備的AR(比如Hololens)。這裡我們主要關注基於手機的AR,正是由於手機的普及推動了AR技術的普及。具體到手機AR,又可以細分成多種:

分享|帶來全新交互體驗的「支付寶AR」技術大解密

• 基於NFT(Natural Feature Tracking,自然特徵點跟蹤)的AR:對著一個紋理豐富的平面物體掃描,就可以實時估計相機姿態並將3D模型疊加到平面物體上;

• 基於SLAM(Simultaneous localization andmapping) 技術的AR:同時估計相機姿態和周圍環境地圖,並可在周圍環境中疊加虛擬物體;

• 基於LBS的AR:主要利用GPS信息和陀螺儀信息實現AR效果,比如PokemonGo;

• 基於3D物體的AR:通常需要預先對3D物體進行建模,然後以任意角度掃3D物體均可估計相機姿態;

• 基於AI的AR:主要結合模式識別技術,實現物體類別識別、物體特徵點定位、物體分割,然後在此基礎上疊加虛擬物體。隨著AI技術的蓬勃發展,這個方向將會受到更多的重視。

2.1 AR平臺識別算法

對於大多數AR應用來說,通常都包含以下3個模塊:

• 識別:具體來說包含圖像識別、跟蹤、3D姿態估計;

• 渲染:結合成像模型,利用渲染引擎將3D虛擬物體疊加到圖像上

• 交互:手機上主要是通過觸控與虛擬物體互動,Hololens則通過手勢、語音進行多模態互動

支付寶AR平臺作為一個平臺性的系統,除了包含以上基本模塊外,還有線上活動運營管理系統等。這裡,我們主要介紹識別模塊,包括基於自然特徵點的圖片識別、跟蹤、姿態估計,以及基於AI技術的物體識別。

2.2 識別算法框架

總體上,AR平臺識別算法框架包含識別核心層業務層識別內容管理層。

其中識別核心層由AR客戶端識別引擎和服務端識別引擎構成,這兩個引擎都是建立在核心算法基礎之上,兩者有機結合、互為補充、協同完成識別任務。

AR業務層也包含客戶端和服務端,負責視頻採集、交互渲染、業務路由、後臺管理等工作。另外一大塊是識別內容管理,包括識別模型訓練、評測以及識別內容發佈、監控,本文主要介紹的就是核心識別算法。

3. NFT識別算法

3.1 NFT算法流程

從數據流角度看,我們的NFT核心識別算法流程如下圖所示。

分享|帶來全新交互體驗的「支付寶AR」技術大解密

整個流程包括客戶端和服務端,對於輸入的每幀圖像,首先會進行客戶端識別,如果客戶端沒能識別出來且滿足靜止判斷條件,則上傳服務端識別。

3.2 客戶端NFT識別

客戶端識別包含局部特徵點檢測、特徵點描述、快速檢索、圖片1對1匹配、單應性校驗等步驟。針對每一個步驟,都有多種方法可選擇。比如特徵點檢測方法有SIFT,SURF,Fast,ORB等,其中前兩種具有尺度不變性,後兩種不具備尺度不變性,需要在不同分辨率圖像上分別提取特徵。

局部特徵點描述有SIFT、SURF、BRISK、FREAK、ORB等,它們的耗時分別為SIFT>SURF>BRISK=FREAK>ORB,準確性和耗時基本相反,在手機上常用的特徵一般為後面三種。

對於快速檢索方面,有兩個思路:

• 採用FLANN近鄰搜索方式:從所有候選圖像的所有特徵點裡查找最相似的特徵點,然後根據每張圖片匹配上的點數進行排序得到候選匹配圖片。

是採用BOW(Bag-of-Words)檢索方式:這樣可以讓我們像查字典一樣快速檢索到候選匹配圖片。

快速檢索只是從眾多圖片中檢索出最相近的N幅候選圖片,針對這N幅候選圖片,還需要做進一步的甄別,給出明確的答案,確定到底和哪一幅圖片匹配,不能模稜兩可。

最後再做一個單應性校驗:基於平面物料的假設,物料模板圖片和實際拍攝的物料圖片之間存在一個單應性變換,利用匹配上的特徵點可以估計出一個單應性變換矩陣,最後再根據內點數多少判定是否真的匹配上了。到此,單純的圖片識別過程就完成了。

3.3 客戶端NFT跟蹤

對於需要需要跟蹤的場景,比如我們最初做的Costa活動,就需要實時對Costa餐盤紙進行跟蹤和姿態估計,以便虛擬的花總是無縫貼合在餐盤紙上,如下圖所示:

分享|帶來全新交互體驗的「支付寶AR」技術大解密

跟蹤的最終目的是為了能夠實時地給出相機姿態,以便3D虛擬物體可以實時疊加到實景中。

事實上,如果每幀做特徵點檢測、匹配、校驗、姿態估計的速度足夠快足夠準,也可以不用做跟蹤。然而現有的特徵點檢測匹配算法在客戶端速度還不夠快,因此普遍做法是檢測之後做跟蹤。

由於跟蹤過程中,我們還需要實時估計相機姿態,因此基於整個物體ROI區域跟蹤的方法比如KCF(Kernelized CorrelationFilters)方法在這裡不適用,我們需要特徵點跟蹤方法,以便利用特徵點進行姿態估計。

最常用的特徵點跟蹤算法就是KLT(Kanade-Lucas-Tomasi)算法,當運動幅度不是很劇烈時,效果還是很不錯的,對於相對劇烈的運動,容易跟蹤失敗。

為此,我們採用了局部區塊模版匹配的方式進行特徵點跟蹤。當然,為了提速,具體實現時採用了很多加速策略。跟蹤完成後,同樣也需要做單應性校驗,確認跟蹤是否正確。如果跟蹤正確了,則進行後面的3D姿態估計環節。

知道2D點和3D點對應關係求解位姿,可採用非線性的Bundle Adjustment

方法,也可以採取線性PnP(Perspective-n-Point)的方法求解。相比Bundle Adajustment方法,PnP方法速度更快,但精度略低,抖動大一些。為減輕抖動,可以通過對位姿做幀間平滑。

3.4 服務端NFT識別

相比客戶端本地識別,我們的服務端可以識別更多種類的圖片,具有更多更強的識別能力。服務端具備海量圖片檢索能力和熱點圖片檢索能力,並且融合這兩個檢索結果,做進一步的精匹配以確定最終匹配結果。

3.5 AI識別算法

除了常規的NFT圖片識別外,我們還提供了其他基於模式識別的算法,比如春節掃紅包用的Adaboost目標檢測、SSD目標檢測、xFuNet識別以及定製的圓形目標檢測、顏色識別、HogSVM識別等。

其中,基於SSD目標檢測的方法由於通用性好、速度快、能夠處理多種複雜情況,藉助支付寶強大的客戶端深度學習引擎xNN已落地到多個業務場景:

分享|帶來全新交互體驗的「支付寶AR」技術大解密

在AR平臺,SSD目標檢測最初用於解決弱紋理商家logo識別問題。

不少商家希望通過掃他們的品牌logo參加活動,然而有些品牌logo實在是沒啥紋理,比如耐克的logo,之前介紹的NFT圖片識別算法對這種場景基本無能為力。因此,我們迫切需要找到一種新方法來滿足這一場景需求。

期間我們嘗試了多種方案:Dense SIFT、深度特徵學習、目標檢測等。對各種方案進行比對後,結合AR平臺業務場景,我們選擇了目標檢測的方式。具體到目標檢測,常見的有Faster-RCNN、YOLO、SSD等。

實測發現SSD的檢測速度最快,精度也能滿足業務需求。最終,我們選擇了SSD目標檢測方式來識別弱紋理商家logo。

主體方案確定之後,還有一個問題需要解決,即商家通常只提供少量幾張logo圖片,這對於深度學習來說,那真是杯水車薪。我們的解決方案是對少量的商家logo圖像數據做倍增,具體倍增方式包括面內面外旋轉、縮放、平移、背景替換、顏色變化等。

此外,針對容易誤檢的樣本,特別添加到樣本集參與樣本倍增合成。最終,我們的SSD目標檢測訓練流程如下圖所示:

分享|帶來全新交互體驗的「支付寶AR」技術大解密

除了SSD目標檢測,基於Adaboost的目標檢測算法由於其全機型覆蓋、計算量小等優勢用在了春節紅包掃福和掃手勢活動中。此外,還有之前的掃中秋月亮、掃脈動瓶蓋也使用了定製化的模式識別算法。

3.6 性能指標

AR平臺識別算法基本性能如下:

1.客戶端NFT識別耗時:<200ms

2.客戶端NFT跟蹤耗時:<10ms

3.NFT識別包大小:<20k

5.客戶端SSD檢測+校驗:<100ms

4. 後記

支付寶AR平臺經過長時間的打磨,各項基本功能日趨完善。同時,我們也非常歡迎AR、AI愛好者加入我們團隊,共同把支付寶AR平臺打造得更好!

代表產品有:支付寶AR掃、2017春節AR紅包、2018新春集五福掃福字、掃“五福到”手勢、支付寶小程序繳費通、開創了支付寶銀行卡識別綁定、聲波支付等。

如果你對我們的工作感興趣,歡迎投簡歷加入我們!我們目前正在招聘目標檢測、圖像識別等方向的專業人才,有興趣可以發郵件至: [email protected]

— END —


分享到:


相關文章: