開發場景介紹:
開發場景介紹摘自電腦愛好者2016年21期
AR可以讓用戶在掃描特定的圖片、二維碼時展現相應的視頻場景,
那么這種特效是怎么實現的?
先來了解一下AR程序運行流程是怎么樣的?
開啟手機攝像頭對準特定的宣傳畫掃描,
接著手機屏幕上就會出現和相應產品對應的自然元素組成的視頻。
這個視頻展現,其實就是一個典型AR場景的再現
AR效果的實現
第一步:
制作方要對掃描的實物進行建模。
我們需要先掃描該物品的3D模型,并對其進行關鍵幀標定,
比如:瓶蓋、瓶身某位置或者圖片的不同畫面,
然后根據不同的識別準備對應的動態視頻數據
第二步:
當掃描標定的關鍵幀,系統就會去尋找AR場景中與之最接近的關鍵幀,
根據關鍵幀上的特征點,然后利用特定的算法找到AR場景中對應的視頻,
并將其展現在用戶的手機畫面中;
關鍵技術:<識別跟蹤>
在這個AR應用中技術核心就是<識別跟蹤>技術,
AR應用首先要識別標示物,然后進行跟蹤(跟蹤用戶掃描到的產品標記),
接著就在用戶手機上展示對應的視頻場景。
AR應用是通過“特征點”進行識別的;
檢測到特征點還不行,如果要判斷兩張圖片是否是同一張圖片,
識別設備還要判斷兩張圖片的特征點是否一致;
識別技術不在介紹,(開發時這里了解,不做過多陳述,我也不懂)
第三步: AR視頻是由多幀圖片組成
在完成一幅圖片的比對后還要對視頻幀的其他圖片進行跟蹤比對。
特征跟蹤有兩種方式:
一種是對視頻流中的每一幀圖像進行特征點匹配;
二種則在第一幅圖像中,尋找可能的特征位置
然后在后續的圖像中搜索它們的對應位置。
這樣完成對識別圖片的跟蹤后,
AR應用就會在用戶的手機上顯現對應的視頻畫面了。
最后:
AR應用會先將圖片進行特征點的識別,并存儲在應用中。
這樣當用戶使用手機掃描到符合特征點的瓶身圖片,
AR應用會將當前圖片和存儲的圖片進行比對,如果是一致的圖片,
AR應用就會將特定的視頻展示在用戶手機屏幕上。
當然AR應用還會進行跟蹤,如掃描不同的區域顯示不同的視頻,
或者在掃描其他圖片時快速識別并顯示預置的視頻到用戶手機上。
ARinChina地址:匯總了一些資源??傳送門:
http://dev.arinchina.com/forum.php
AR原理篇,帶你增強現實的思路
(摘自)[AR報告第二章:AR的工作原理]腦補畫面
1 首先對現實場景的理解和重構
在AR(增強現實)系統中
首先要解決“是什么”的問題,
也就是要理解、知道場景中存在什么樣的對象和目標。
第二要解決“在哪里”的問題,也就是要對場景結構進行分析,
實現跟蹤定位和場景重構。
2 物體的檢測和識別技術
物體檢測和識別的目的是發現并找到場景中的目標,
這是場景理解中的關鍵一環。
廣義的物體檢測和識別技術是基于:
"圖像"的基本信息(各類型特征)和先驗知識模型(物體信息表示)
通過相關的算法實現對場景內容分析的過程。
(開發中可能遇到需要識別圖片的場景,但是算法不是自己寫,就先別管怎么識別出來啦)
在增強現實領域,常見的檢測和識別任務有,
人臉檢測、
行人檢測、
車輛檢測、
手勢識別、
生物識別、
情感識別、
自然場景識別等
這里我只提取介紹一種圖像識別:
識別是從圖像匹配的角度出發,
數據庫中保存了圖像的特征以及對應的標注信息,
在實際使用過程中,通過圖像匹配的方法找到最相關的圖像,
從而定位環境中的目標,進一步得到識別圖像和目標圖像的精確位置,
這種識別適用于需要對環境進行精確跟蹤的應用場景
(開發經常使用的識別圖片,其他需要智能識別這里不做介紹);
另一方面,圖像本身還受到噪聲、尺度、旋轉、光照、姿態等因素的影響
視覺跟蹤技術
根據數據的生成方式,視覺跟蹤技術的算法可以分為兩種,
一種是基于模板匹配的方式,
預先對需要跟蹤的target進行訓練,
在跟蹤階段通過不斷的跟預存訓練數據進行比對 解算當前的位姿。
這類方法的好處是速度較快、數據量小、系統簡單,適用于一些特定的場景,
但不適用于大范圍的場景
另外一種是SLAM方法,也就是即時定位和地圖構建技術。(不做介紹)
3 增強現實的顯示技術
攝像頭獲取外部真實環境的圖像,
也就是通過攝像頭來采集真實場景的圖像進行傳遞。
計算機通過場景理解和分析將所要添加的信息和圖像信號疊加
在攝像機的視頻信號上,將計算機生成的虛擬場景與真實場景進行融合
實現篇:
現在不少移動端加入了AR的功能作為功能的拓展與補充。
如淘寶過年期間的AR福字掃描,人臉識別,還有一個AR的游戲等等。
那么我們今天就說幾個可以在移動端實現AR功能的解決方案。
AR在開發ios的時候使用Xcode+Realmax SDK,
也可以使用Unity+Realmax SDK開發導成api,再導入Xcode編譯;
注:需要跨平臺使用實現那些炫酷效果需要使用unity來做;
這里沒嘗試,不懂,再此先不做介紹;研究了補充上說明文檔;
解決方案
1 利用第三方AR開發包去實現。
時至今日,AR技術有了一定的發展,
可以利用第三方的framework開發包導入工程來實現。
支持的SDK:Metaio被蘋果收購、Vuforia被高通(Qualcomm)賣給PTC后,
相對較好的有ARToolKit、Wikitude
國外的介紹高通的AR實現方案
在高通VR的官網 :https://developer.vuforia.com/
有關識別后顯示3D物體,video等的一些基礎與高級識別結果
注:本著能不看英文就不看英文的想法,可以跳過高通的方案;
不過國內也有不錯的一個國內的引擎:EasyAR
國內的有easyAR 地址: http://www.easyar.cn/
文檔和demo真的是干凈,沒有什么注釋說明,
剛剛接觸的使用xcode打開demo看起來是不是一臉懵逼,
沒事不用懂代碼都什么東西,使用unity配置好,玩玩導出ios的就可以了....
(??圖是博客園里的盜圖,如有雷同是我抄襲,如果看到原出處,請告知,謝謝)
圖片地址:http://www.cnblogs.com/guanshenbao/p/5744407.html
看到??的圖,應該就能猜測到,需要識別的圖,
和識別之后顯示的酷炫效果是需要使用unity來制作的;
EasyAR跟高通AR有類似的功能,兩者的操作方法略有不同,
高通需要把圖片傳到其網站上的,
而easyAR是可以直接在工程上替換想要識別的圖片的,(識別的圖片)
所以說在設定識別圖片的方便度上,
easyAR要比高通AR做的好一些。
而在示例demo上高通做的比easyAR要好一些,
比如識別后顯示video上,高通有點擊暫停,在點擊播放的效果,
而且可以轉入到本地播放器,而easyAR就沒有這個功能。
HiAR不推薦,不做介紹,有興趣的自己查閱;
2 隨著VR、AR、MR的火熱,unity3D的發展也是水漲船高,
其跨平臺性更是其一大亮點,(跨平臺)
可以通過unity3D導出xcode工程的方法實現AR功能
高通AR,easyAR,HiAR,都有對應的unity3D的開發包,
導入開發包之后便可進行操作,
可以顯示需要的3D或2D場景,而且也都支持云識別等。
注意開發時在plist文件中加入允許使用相機的屬性。(權限問題,不然報錯哈)
3 關于人臉識別解決方案,可以利用opencv的一些東西。
當然也可以用已經寫好的一些第三方,比如face++,訊飛人臉識別等。
解決方案參考了: CSDN:baidu_33735542的博客
http://blog.csdn.net/baidu_33735542/article/details/55045539?locationNum=11&fps=1