閱讀428 返回首頁    go 阿裏雲 go 技術社區[雲棲]


AR識別技術不再成為難以逾越的技術壁壘

2016年,一款名為《Pokémon GO》的遊戲出現在大眾視野,怒刷各大遊戲排行榜。極具趣味性和科技感的AR技術效果瞬間火爆全球。接著AR技術被廣泛用在各大互聯網公司APP的營銷場景中,其中最多的便是AR識別和追蹤。但一段時間內,真正掌握核心技術的國內廠家並不多,對應出現了提供AR識別SDK小公司的創業機會。


那麼,這些技術背後的原理是什麼?本文會從圖像處理、特征檢測、特征點匹配、圖像變換匹配和追蹤算法等方麵給你進行深入淺出的技術展現,讓AR識別技術不再成為難以逾越的技術壁壘。最後也會跟大家聊聊,天貓營銷平台技術,是如何探索新技術在營銷領域的運用,與商業進行緊密結合的。


640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1


AR技術從來不是單獨的一門學科領域,它是眾多技術學科集成在一起的一個應用方向。如圖所示,除了一些圖像處理基礎及AR硬件相關算法外,它所依托的最重要兩個領域是計算機視覺和機器學習,而這背後就人工智能這個大領域。我們會以計算機視覺理論作為基礎,來講講AR的技術。


1. 基礎知識準備

         0?wxfrom=5&wx_lazy=1

  

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1


首先科普兩個基礎知識,我們先來說說圖像的表示和色彩模型。


二維圖像模型,定義一個二維圖像的模型表示成z = I(x, y),x、y為二維圖像上的像素點坐標值,z為此像素點的色彩值,如果使用的是RGB色彩模型,那z值就是以紅、綠、藍三個值定義的數據,比如紅色為(255,0,0)。一般圖片處理很多采用單通道即灰度值,那就是0~255之間的一個表示灰度的值,彩色圖片也可以由一定公式變換到灰度空間裏。後續的圖像算子操作(如卷積等)均是在此模型上進行相信數值計算。這個模型很簡單,下麵要介紹的一個模型就有點難了。


640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

計算機視覺的最重要模型:透視照相機模型,也叫小孔攝像機模型。這個模型來源於真實世界的成像原理,從古人發現的小孔成像、到凸透鏡成像、一直到人眼成像結構的發現。

    

人們從發現的原理中受到啟發,確立了由4個坐標係組成的透視照相機模型。它描述了現實世界的物體從世界坐標係、相機坐標係、圖像坐標係到像素坐標係之見轉換的位置關係,並對應到多個矩陣的計算上。AR算法所用到的計算機視覺技術,很多都是現實世界的物體與圖像平麵上的變換(這裏一般稱為單應性變換,後文會用到),所以這個模型就成為了AR算法中最基本的模型,大家心裏要這個概念。

 AR算法的核心技術:識別追蹤

         0?wxfrom=5&wx_lazy=1

  

AR算法有很多不同種類,其中目前在手機端使用的最重要的就是識別和追蹤。基本上,去年以來的所有在手機APP上宣稱的AR功能都離不開此技術。



640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1


如圖我廠去年的一些營銷活動,“全民掃錢”領優惠券、掃實物瓶子出現相關3D動畫,識別標記圖片找紅包等,都使用了圖像的識別或者追蹤技術。




  AR識別追蹤的流程

         gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAA

AR識別追蹤,根據所需識別的圖像內容,大致分為兩個技術流派:Marker based AR 以及MarkerLess AR。Marker識別是使用一個較簡單的標識,通常是正方形並且四邊都清晰可辨。這類識別算法相對簡單,通常用模板匹配算法解決,效果也不錯,此方麵經典實現可以參考早期ARToolKit引擎的Marker識別流程。


隨著進一步發展,人們逐漸喜歡用更複雜的圖像來代替Marker,簡單的識別技術已經不適應現有需求。於是就出現了更複雜更通用的MarkerLess AR的識別,我們下麵主要說的就是這種技術。



MarkerLess AR的識別追蹤主要分為特征點檢測、圖片識別和追蹤(姿態估計)三個步驟。圖片識別的過程又分為特征點匹配和圖片相似度度量兩步。


特征檢測

         gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAA

圖像局部特征檢測作為計算機視覺領域的熱點內容,這十幾年裏研究進展不斷。考察此技術的大致發展曆史,是從簡單的角點特征提取一直到尺度不變、旋轉不變的特征提取算法。圖像的角點特征是最容易被檢測出來的,但是,在不同尺度不同大小分辨率的圖像上會不穩定,比如在小圖片中找到的角點不一定在同一張圖片的小尺寸圖片上檢測得出來。


640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1


另外,圖片發生旋轉後特征區域的角度發生變化,也造成了檢測不出原圖對應的特征點。所以,我們來說一個經典的尺度不變特征檢測(SIFT)算法,它通過引入尺度不變性和旋轉不變性,解決了以上兩個問題。


640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1


SIFT算法之經典,不僅在於它已經寫成了教科書的經典段落,每個學圖像處理或計算機視覺的人都會去完整的經曆一遍它的原理;更在於這十幾年裏不斷湧現的新的特征檢測算法,都可能或多或少的借鑒了它的整體框架和思路。


640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1


怎麼引入尺度不變性呢?SIFT引入了尺度空間的概念,將一張圖片通過高斯卷積操作生成多個尺度的圖片,這些不同尺度因子的圖片給人的直觀感受就是清晰度不同。然後加入多分辨率框架,每次都降采樣寬高為原圖的1/2。


然後同層相鄰圖片進行差分操作,就生成了高斯差分金字塔(DoG),如上右圖所示。為啥使用DoG尺度空間作為特征點的搜索空間呢?因為人們發現高斯拉普拉斯(LoG)函數的極值點相對於其他的特征提取函數能夠產生更加穩定的圖像特征,而DoG和LoG非常相似並且DoG的處理速度比LoG快多了,於是就使用了DoG作為特征提取函數。


640?wx_fmt=png&wxfrom=5&wx_lazy=1


在DoG金字塔中,我們采用區域搜索算法去尋找最大值或最小值點(如上圖)。對於每個點,考察其鄰域點:周圍的8個點及其上下相鄰尺度的18個點,共26個點。一個點如果在這26個領域點中是最大值或最小值,就認為該點是圖像在對應尺度下的一個特征點。全部檢測完後,會使用一些算法去除其中不好的或者邊緣的特征點,以增加特征點提取的穩定性。


640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1


為了獲得特征的旋轉不變性,SIFT通過計算特征點周圍鄰域像素的梯度方向並統計出方向累積直方圖,把其中累計值最大的方向定為該特征點的主方向。後麵的特征點描述就會把坐標軸旋轉為特征點主方向,所以在發生旋轉的圖片上也會同原圖片中的特征描述一致。這樣,就具備了旋轉不變性。


640?wx_fmt=png&wxfrom=5&wx_lazy=1


對檢測出的特征點,根據點周圍鄰域像素的梯度方向形成特征描述子。如上圖示,計算出特征點Keypoint周圍16*16的window中每一個像素梯度,並使用高斯下降函數降低遠離中心的權重。在每個4*4的1/16象限中,通過加權梯度值加到直方圖8個方向區間中的一個,計算出梯度方向直方圖。每個特征點的描述子大小為4*4*8=128維,歸一化之後可以去除光照影響。


640?wx_fmt=png&wxfrom=5&wx_lazy=1


我們可直觀感受下,上圖中一張圖片通過SIFT所提取的特征點信息。圖中每個箭頭代表一個檢測到的特征點,箭頭的起始位置為特征點坐標,方向為特征點主方向,長度為所檢測到的尺度空間。以上是簡要的SIFT算法原理描述,詳細實現細節感興趣的可以參考論文(Lowe, 2004)。


  圖片識別

         0?wxfrom=5&wx_lazy=1

 特征點匹配就是一個高維特征空間的搜索近似最近鄰點的問題。如果是用最簡單的線性匹配,那麼速度遠遠達不到性能要求。這時候我們就必須用構建高維特征空間的數據結構算法。最經典有效的當屬KD樹及KMeans樹兩種結構及對應算法。


640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1


首先KD樹算法我們來舉個例子,假設有特征點樣本集:{(2,3), (5,4), (9,6), (4,7), (8,1), (7,2)},那麼使用KD樹生成算法,構建出如下的二叉樹,特征點匹配的問題就轉化成了二叉樹查找。


640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1


假如有待查找點P(2.1, 3.1),如上圖所示。那麼搜索的過程就是先從(7,2)點開始進行二叉查找。由於第一層標記為考察X軸數據,於是待查找點與目前節點(7,2)的X軸數據比較:(2.1 < 7),選擇走左子樹到達(5,4),重複使用相同算法到達葉節點(2,3),就是所要求的最近鄰特征點。以上隻是簡單而不精確的描述,實際查找算法會更複雜,因為要有回溯的過程避免遺漏路徑上層子樹區域內可能存在的更近距離點。

實際的KD樹生成及查找算法請看相關論文(Muja et al., 2014)。


640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1


另一個很實用的最近鄰查找方案是KMeans樹,它和KD樹查找的原理相似。區別在於,KD樹是二叉樹,每個節點背後對應一個樣本點。而KMeans樹為K叉樹,使用KMeans聚類算法將特征點集分為K類,然後每類移入下一層負責分別生成下一層子樹,每個節點保存的是聚類中心點等相關信息。直到葉子節點的數據量小於等於K為止,構建完成K叉樹後,使用類似KD樹的查找算法從Root節點開始搜索,直到找到最近鄰點。K叉樹如下圖所示,詳細相關算法可參考論文(Muja et al., 2014)。


640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1


特征點匹配的直觀效果,如上圖。每條藍色線段兩端連接著的是兩張圖片上對應的匹配點。


兩張圖片上的特征點匹配完成後,就需要進行下一個步驟:兩圖像間的相似度度量。前麵普及過一個透視照相機模型,大家還有印象麼?描述不同拍攝位置同一圖片之間的變換,我們稱之為單應性變換。如圖所示的H變換。


640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

我們使用無需相機標定的查找單應性H的算法,通過匹配的點集來得到兩張圖片中最佳單應性變換H,詳細可參考OpenCV中的findHomography方法。然後根據得到的H,考察兩圖片中的匹配點集,哪些符合此單應性變換H,哪些不符合。據此,得出圖片的匹配相似度量,超過預先設定閾值就認為兩圖片相似,即識別成功。

 

AR識別追蹤

  gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAA

追蹤的過程就是估計被攝物體3D姿態及3D引擎渲染對應虛擬物體姿態的過程。每一次的追蹤,都依賴於前述的特征點提取、匹配、及計算單應性變換。得到單應性變換,就等於得到了被攝物體3D現實坐標點集與二維屏幕成像坐標點集。通過得到的匹配點集以及標定獲得的攝像機內參數,使用求解透視N點問題的算法,就可以求出攝像機外參數,即攝像機實時姿態,隨即便可估算出被攝物體3D姿態。


640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1


最後一步,使用3D引擎渲染被攝物體上的3D虛擬物體,並且把虛擬物體的姿態根據上麵估計出的實際物體的姿態矩陣進行變換。如下圖所展現的,虛擬與真實物體的聯動,實際上就是實現增強現實的體驗。

 

技術驅動商業變革

全民掃品牌,讓廣告變得更有趣

         0?wxfrom=5&wx_lazy=1

AR技術用在營銷場景下,為消費者帶來的掃碼體驗將是嶄新的,遙想一群人拿著手機在街上掃描LOGO觀看AR動畫的盛況,簡直是物物皆傳播,無處不營銷。與此同時,乘著內容營銷的風口,眾多品牌匯聚所帶來的集群效應,也將進一步連接品牌與平台,實現雙方價值的最大化。


640?wx_fmt=png&wxfrom=5&wx_lazy=1

圖 99聚星節聚劃算&哈根達斯掃Logo營銷Banner


去年9.9期間,國內外160餘個一線品牌參加了天貓營銷平台&聚劃算的品牌LOGO AR互動。幾乎你身邊能看到的品牌,用聚劃算客戶端掃一掃,都會出現酷炫的AR效果,同時消費者還可以領取品牌方發出的不同麵額的現金紅包。此玩法以AR這種科技手段為媒介,將用戶、品牌、天貓營銷平台三者進行有機結合。


消費者:通過聚劃算App體驗每個品牌帶來的AR創意,同時可以獲得自己喜愛品牌的現金紅包。


品牌方:通過AR視頻來表達自己的品牌理念及新品趨勢告知給消費者,同時獲取自己的線下目標客戶信息。


天貓營銷平台:從之前的告訴消費者什麼品牌在參聚,變為消費者通過AR互動知道這個線下品牌在參聚,同時即使該品牌不在參聚狀態下,消費者也可以通過掃LOGO獲取該品牌活動,訂閱該品牌,獲得其參聚資訊。


640?wx_fmt=png&wxfrom=5&wx_lazy=1


2016.9.4-9.9期間,部分優質品牌方和聚劃算全麵線上線下聯動,將品牌LOGO,聚字LOGO全麵投到地鐵、燈箱、建築地標等,消費者掃LOGO即可獲得由品牌方及聚劃算提供豐厚紅包及禮品。


那麼,在以上業務場景構建完畢後,為了完成業務需求,提升用戶體驗,我們必須對AR算法原理進行深入考察,並實現能夠很好應用於以上業務場景下的AR功能。640?wx_fmt=png&wxfrom=5&wx_lazy=1


基於龐大的業務背景,是成百上千的Logo圖標,這些Logo往往比Marker更加複雜和不規則,並不能做到像傳統的Maker那樣四邊邊框清晰。用更複雜的圖像來代替Marker,簡單的識別技術已經不適應現有需求。於是我們開始嚐試MarkerLess AR技術,也就是文章開頭為大家介紹的技術原理。


為了適應Logo數量的增長,我們需要在大量Logo的業務場景下,達到移動端快速AR識別的能力。於是,我們將以上的AR識別技術擴展到了雲端,由移動端提取特征數據上傳到雲端,識別的過程可以在強大計算力的服務器上並行完成,並及時返回結果。目前在我們的生產環境下,已經穩定的運行著可以實時識別萬級別Logo量的AR引擎。


以上,AR技術的基礎框架就構建完成了。我們將此AR算法用在了掃Logo的業務場景上,並產生了很好效果。

 

 實現量化數據,打造智能化平台

         0?wxfrom=5&wx_lazy=1

對99聚星節掃Logo活動進行了詳細的複盤分析和效果評估,我們發現在實現創新營銷體驗的同時,也獲得了營銷廣告的數據化監控能力。


從數據上看,我們得到了創新的營銷效果。掃LOGO整體會場消費者訪問UV達到近千萬(僅在預熱期間展示) 參與玩法用戶達到20%, 到達抽獎頁麵50%。通過 AR 技術打通線上線下,提升用戶參與感,共計超過 100 家以上的品牌參與,當天進入微博話題排行榜第三名,紅包引導率接近 90%。


傳統廣告投放最難的就是數據監控。大多數商家隻能通過各方數據匯總得到一個粗放的效果判斷,無法精確到個人的具體行為。但此次聚劃算的品牌掃LOGO活動卻切實做到了數據的精準和量化。


640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1


而商家通過消費者的掃LOGO行為,可以精確了解,這個廣告帶來了多少收益,誰在哪個時間掃描了什麼。進而判斷出每個廣告位究竟能帶來多少流量、多少收益、實現多少轉化。


在未來,通過掃LOGO的創新玩法以及聚劃算已經積累的海量數據,將為每一個消費者量身定製出真正需要的導購頁麵,最終實現廣告收益的最大化。


2016奧運年,裏約RIO成了全球矚目的焦點。而更巧合的是,銳澳RIO雞尾酒與巴西裏約RIO同名。RIO作為裏約奧運讚助商和天貓營銷平台進行了深入合作,把AR掃RIO限量版瓶子的活動推上了營銷活動的高潮。





通過聚劃算APP掃RIO裏約聯名限量塗鴉瓶身即可體驗酷炫AR,將巴西風情真實融入瓶中,例如掃描奇幻亞馬遜瓶,就能感受到骨頭魚與金剛鸚鵡的奇妙互動,消費者不光能在RIO X裏約聯名限量塗鴉瓶看裏約,更能在RIO X裏約聯名限量塗鴉瓶體驗裏約。讓消費者買到產品的同時感受營銷體驗,無疑又是一次創意上的巨大創新突破。

  

業界AR引擎的發展

         0?wxfrom=5&wx_lazy=1

我們來說說業界用於手機端識別追蹤的AR引擎的發展情況。一言以概括,從2015年起國外幾個著名的引擎都紛紛被大廠們收購,市場對AR技術的迫切需求產生了供給空白,這就給了國內一些小創業公司提供AR SDK服務的機會。


開源中最著名的ARToolKit,2015年被DAQRI收購,然後版本進度變緩,目前一直停留在5.3.3上,很多人翹首以盼的ARToolKit6一直跳票到現在。原先國外比較著名的幾個商業AR引擎,如Vuforia和Metaio,前者被高通賣給了PTC,後者在2015年被蘋果收購,基本上就退出了讓開發者集成AR直接使用的舞台了。


於是,從2015年底開始市場出現了明顯空白,這就給具備計算機視覺技術的某些國內廠商提供了絕佳的時間窗口機會。在2016年拚殺中,國內出現了幾個有代表性的產品,如視辰EasyAR和亮風台HiAR。這些商業引擎雖然沒有開源,但大都提供有限製的免費使用,需要集成AR功能的個人開發者可以去試試。


值得一提的是,天貓技術內部也已經有了AR SDK相關產品,目前已經提供給天貓及聚劃算內部業務作為營銷的技術支撐。後續不排除有接入整個集團基礎服務平台或開源相關的計劃,以供大家使用,各位不妨期待一下。


AR未來技術的展望

         gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAA

最近幾年人工智能(AI)熱潮越來越勐,最典型的便是好多人在說:“人工智能正在重塑整個社會”。AI正在從聽覺、視覺與數據分析等多個方向形成對於人類智能的包圍。計算機視覺與AR領域,無疑會受到AI進步的深刻影響。現在越來越多的AI算法滲入到計算機視覺領域,一個使用了深度學習的算法,很容易就可以得到比傳統經典算法更好的性能效果。


比如大規模圖像分類、目標檢測與識別、場景語義理解都方麵,都有了確切效果印證了AI算法的有效性。正如有人說的:“Deep Learning in All computer vision”,未來的AR技術發展會有越來越多的經典算法被DL算法替代。那麼,到時候AR會達到怎樣的體驗,小夥伴們一起來期待吧。


640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

識別圖片二維碼▲關注「天貓技術」

技術驅動商業變革|做最懂商業的技術人



相關薦文你還以為,除了你寄幾就沒有人懂你女朋友嗎?

點擊下方圖片即可閱讀

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

0?wx_fmt=gif&wxfrom=5&wx_lazy=1


最後更新:2017-04-28 23:21:44

  上一篇:go 收中華人民共和國稅收征收管理法(主席令第四十九號) 2015年8月15日 - 會關於修改〈中華人民共和國文物保護法〉等十二部法律的決定》(主席令第...第八十九條 納稅人、扣繳義務人可以委托稅務代理人代為辦理稅務事宜。 第...起相關人物 祁中華人民共和國
  下一篇:go 相關搜索 國產偷拍自中華人民共和國稅收征收管理法(主席令第四十九號) 2015年8月15日 - 會關於修改〈中華人民共和國文物保護法〉等十二部法律的決定》(主席令第...第八十九條 納稅人、扣繳義務人可以委托稅務代理人代為辦理稅務事宜。 第...拍上傳91