技術宅
蘋果今年6月在WWDC17上推出ARKit,使iPhone一夜之間成為有數億用戶的最大AR平臺。一時間基于ARKit的各種玩法紛紛出現,其中Dan Monaghan用ARKit開發出了一款名為Float0的APP,它可以讓手機拍攝的一系列照片靜止漂浮在空中,可以把任何一個場景都變成一個照片展示中心。今天我們就來聊聊什么是ARKit,以及照片懸浮后面又有什么樣的技術原理。
真黑科技?認識ARKit
大家知道AR是虛擬現實混合技術,ARKit則是蘋果為AR技術在iOS設備上應用推出的開發框架,類似微軟的HoloLens和谷歌的Tango。不過和這兩者不同的是,ARkit不需要專門的外部設備,現役的許多iOS設備(如iPhone 6s及以上機型)就足夠展現出比過去更好的AR效果了。比如在基于ARKit開發的星巴克廣告視頻中,用戶可以通過iPhone手機看到一杯虛擬的星巴克咖啡,同時旁邊還漂浮著一個廣告板,上面標示著一些優惠信息,而圖片看上去就像是真實的咖啡杯和廣告板(圖1)。
而微軟的HoloLens則需要有專門的景深傳感器,谷歌的Tango則需要手機配備專門的3D傳感器。如Tango手機Lenovo Phab 2就配備主攝像頭、景深記錄鏡頭和運動追蹤鏡頭,普通Android手機是無法借助Tango做出AR特效的(圖2)。

任何場景變演示中心——照片懸浮背后的秘密
如上所示,ARKit是一個AR技術開發框架,開發者借助ARKit可以在手機上開發出各種APP,實現很多有趣而實用的AR特效。其中的Float0可以讓手機拍攝的一系列照片靜止漂浮在空中,那么這個是怎么實現的呢?
首先我們要來了解一下AR是怎么實現的。ARKit框架是基于3D場景(SceneKit)實現的增強現實,通過蘋果的游戲引擎框架(3D引擎SceneKit)實現AR效果,它可以在iPhone相機捕捉到的現實世界的圖像中顯示一個虛擬的3D模型,這樣借助手機攝像頭我們就可以看到逼真的3D虛擬效果。AR技術的核心是可以將虛擬的物體無縫地和當前實際物理環境結合在一起,主要包括3D渲染和空間定位。

以上面介紹的Float0應用為例,首先APP會對用戶拍攝的照片進行3D渲染,使得照片在攝像頭是以3D模式顯示(而不像常規的平面顯示)。接著利用ARKit的“Insideout”追蹤技術進行空間的定位,也就是說3D照片可以結合不同的物理環境實時顯示在用戶的攝像頭中,它可以通過對攝像頭圖像中的特征點識別和跟蹤,快速重建出場景的3D模型。比如在房間展示,攝像頭追蹤到房間物理環境后,可以將這些3D照片以懸浮的方式排列在墻壁上,讓你的房間瞬間變成一個3D照片館(圖3)。
因為ARKit使用“Inside-out”追蹤技術,因此如果你變換了環境,比如到了戶外,那么它可以快速完成環境的追蹤,讓你的照片以懸浮方式排列在門口或者草坪上,甚至大街上,讓任意一個環境都可以成為照片展示場所(圖4)。
其他基于ARKit開發的應用原理大同小異,總之借助3D渲染和追蹤技術,開發者可以將很多好玩、有趣的東西虛擬化,并且和實際環境無縫地結合在一起,給你極度真實的AR感受。比如為了展示泰坦尼克號出航的AR Demo,開發者在湖邊虛擬一艘出航的泰坦尼克號(圖5)。為了驗證ARKit的渲染效果,一位開發者則用ARKit做出的虛擬椅子放在辦公室,虛擬椅子幾乎能達到以假亂真的程度(圖6)。

不僅僅是好玩 AR技術可以給我們帶來更多
上面介紹Float0的APP可以實現照片在空中的懸浮,看上去是不是很有趣?不過AR技術在手機上的應用可不僅僅是好玩,它還可以給我們的生活帶來更多的便利。比如基于該技術開發的AR導航,當用戶確立好目的地之后,手機會自動開啟攝像頭并提供AR實景導航。這和傳統的平面地圖導航不同的是,在手機上顯示的是當前環境實時3D實景,我們只需要跟著屏幕上的箭頭指示行走即可到達目的地,即使是路盲也很容易找到目的地(圖7)。
當然AR還可以應用在很多場景中,比如使用類似技術開發的虛擬購物。網購用戶可以預先將需要購買的沙發、床鋪等實物轉換為同樣比例的虛擬物品,然后在手機上將它們擺放在自己房間的任意位置并可以隨時移動(圖8)。
當然,AR技術還可以廣泛用于教育、旅游、游戲等領域,幫助學生或者游客、玩家更直觀地了解事物或景觀等,讓我們獲得前所未有的虛擬現實感受。

