iPhone X 的TrueDepth Camera — 體感時代來臨?

Ray Ho
6 min readNov 9, 2017

--

在iPhone X發表後,Face ID這個新機能狠狠抓住了大家的眼球,而True-Depth Camera正式出現在日常生活中,那什麼是True-Depth Camera,為什麼這麼神,他是怎麼運作的?

買不起.jpg

True-Depth Camera 的組成元件

True-Depth Camera 的基本元件主要有彩色攝影機( RGB Camera )、紅外線攝影機( IR Camera )及遠紅外線投射器(Dot Projector)

彩色攝影機( RGB Camera )

彩色攝影機你可以想像這是真實世界發生的事情,也就是你所在的世界( 其實就是普通的攝影機 )

紅外線攝影機( IR Camera )

相較於彩色攝影機,紅外線攝影機可以就是一個異世界,這個世界只有紅外線存在,像素的數值也只有 0 ~ 255。

IR Camera 看到的畫面

遠紅外線投射器(Dot Projector)

紅外線投射器是計算深度(距離)最重要的元件之一,它會將很多點點射到你臉上(?),然後根據這些點的大小、形狀,來估計物體跟攝影機的真實距離,所以當你啟動Face ID 你的臉上應該是這樣的畫面。

Dot Projector

等等,那不是跟Kinect一樣嗎…?

我在看iPhone X 發表時,我的第一個想法也是:阿不就是Kinect ?

Kinect 1

不意外,因為當 Apple 把 PrimeSense 買下來了,PrimeSense 就是 Kinect 1 的主要開發者,在 Kinect 1 上也有著相同的運作模式, 在 iPhone X,IR projector 投射超過 30,000 個點的結構光到你的臉上,然後 IR Camera 擷取到這些點之後,透過驗算法分離出前後景,然後跟 RGB Camera 做 Mapping ,標示出人臉的實際位置。

等等,結構光?

3D機器視覺領域,大部分採用三種主流測量方法,包括TOF(飛行時間)、結構光和多角立體成像,簡易比較如下:

三種 3D 視覺測量方法 來源 : Google 圖片

TOF(例如Kinect 2代)

ime of flight的簡寫,直譯為飛行時間的意思。即飛行時間法3D成像,是通過給目標連續發送光脈衝,然後用傳感器接收從物體返回的光,通過探測光脈衝的飛行、往返時間來得到目標物距離,屬於雙向測距技術,類似昆蟲複眼。成本高,室外可以使用。

ToF示意圖 來源 : Google 圖片

結構光(例如Kinect 1代)

三角定位原理,通過發射特定圖形的散斑或者點陣的雷射紅外圖案,當被測物體反射這些圖案,通過攝像頭捕捉到這些反射回來的圖案,計算上面散斑或者點的大小,跟原始散斑或者點的尺寸做對比,從而測算出被測物體到攝像頭之間的距離。成本中,室外不能用。

結構光效果 來源 : Google 圖片

多角立體成像(例如Leep Motion )

主動照明或被動照明,IR或可見光皆可,使用兩個或者兩個以上的攝像頭同時採集圖像,通過比對這些不同攝像頭在同一時刻獲得的圖像的差別,使用算法來計算深度信息,從而多角三維成像。成本低,室外可以使用。

多角立體成像示意圖 來源 : Google 圖片

TrueDepth Camera 可攜化之後…

這是 iPhone X 發表後,如果 Apple 願意開放調用的話,App的可能性將會爆炸性的成長,就我想到的可能應用有以下:

擴增實境 (AR)

目前流行的基於人臉辨識的APP,例如B6125 之類,在 TrueDepth Camera 開放後貼圖的準確率會大幅提升,可容許的人臉角度也會變大。

物件 3D 成像

以現在前鏡頭的功率來說,可以用來取 3D 表面模型的物件應該不算大,但是小型物件對於現在的 3D 列印技術可能可以很好的配合,如果有人破解結構光弄出一個高功率的投射器或是 Apple直接出一個外掛套件,物件 3D 成像的物件類型就有很多可能性了。

體感互動

目前有些基於人臉辨識的體感遊戲,例如:FaceDanceChallenge,是利用人臉表情的組合來做到體感互動, TrueDepth Camera 開放後一樣可以得到準確度的提升,遊戲裡的人物模型如果可以連動 TrueDepth Camera 得到的人臉表情也是挺有趣的應用。

話說回來,結構光沒有缺點的嗎?

就體積小、準確度高、價位中等這些基本上無懈可擊的優點,就我之前開發相關互動的經驗,在結構光技術遇到的地雷如下:

戶外環境太陽光強烈時

太陽大人的紅外線會蓋過結構光的散斑,導致偵測失敗,有些人對於 Apple 的技術力有這很大的信心,但是這種自然界的影響我覺得不是用技術力可以輕易克服的,目前看到一堆有關Face ID的測試也沒有這種情況下使用的測試,這個情況我個人是挺好奇Face ID的表現是如何。

會反射或吸收紅外線的材質

以前做 Kinect 互動時,有時候會有怎麼樣都沒辦法辨識的狀況,但是測試卻可以,Code 也都沒有問題,最後發現的問題是與衣服的材質有關。

人類毛髮會阻礙辨識

以前有想要用 Kinect 來做一個綠幕去背的效果,但是在頭髮的部分一直無法很好的取出形狀,原因是人類毛髮也會吸收遠紅外線,大鬍子應該也會造成無法判斷的結果,最近很多這種測試很有趣,可以去 Youtube 找來看。

總結

TrueDepth Camera 整合到手持裝置上著實掀起了一場革命,其他各手機大廠想要跟上應該是用不了結構光了,畢盡 Apple 已經幾乎把所有結構光廠商都買下來了,其中還包含結構光技術的霸主,Apple 已經有相關的SDK釋出https://developer.apple.com/arkit/,期待各種創意出現了。

--

--