RealSense技术在SR300摄像头上的应用
RealSense技術在SR300攝像頭上的應用
一、??????????實感攝像頭
1、 RealSense技術
在計算機的發展過程中我們始終沒有拋棄鍵盤和鼠標,前幾年win8和觸屏的配合形成
了一種新的電腦使用模式,但是依然沒有打破傳統的單向互動的使用習慣。直到RealSense技術的出現,計算機開始擁有了感知能力,并且帶來全新的人機交互體驗。
英特爾RealSense(實感)技術前身為英特爾Perceptual Computing(感知計算)技術,在2012年就已經著重開始研發,并且設重獎舉辦英特爾感知技術挑戰賽。隨著技術日趨成熟,2014年初更名為RealSense。在2015年IDF大會中,RealSense技術大放異彩,英特爾CEO科再奇現場演示了RealSense實感技術在不同設備上的表現,包括刷臉解鎖PC屏幕等一系列動作,實現了從虛擬到現實的無縫銜接。
簡單的說,RealSense技術相當于給電腦加了一雙眼睛,技術本身是軟件和硬件結合的體現。RealSense3D是一套感知計算解決的方案,通過一系列非常小的3D攝像頭,加入紅外傳感組件以及實感圖像處理芯片,通過傳感技術實現深度感知、3D 圖像、內部映射和特色跟蹤,使得電腦能夠精確識別人的手勢動作、面部特征、前景和背景,讓電腦理解人的動作和情感,在虛擬現實領域打造新一代互動體驗,人類與計算機之間的交互變得更為自然。借助英特爾實感技術,人們手中的電腦、平板電腦等計算設備可實現手勢控制、頭部控制、人臉識別、3D掃描、景深識別、語音控制等功能。
2、 SR300結構詳解
英特爾3D攝像頭分為兩種,一種是用于近距離,精度較高的前置3D攝像頭,另一種是可用于較遠距離,精度稍低的后置3D攝像頭。英特爾?實感?攝像頭SR300(Intel ?RealSense ? Camera?SR300,后面簡稱SR300)是英特爾公司推出的第二代前置攝像頭。作為英特爾實感技術的重要產品,英特爾實感3D攝像頭集成了3D深度和2D鏡頭模塊的設備,能夠賦予設備以類似于人眼的視覺深度,攝像頭通過感知景深和跟蹤人體運動將計算機的用戶界面提升到一個新的水準。
SR300設備擁有三個鏡頭,分別是傳統攝像頭、紅外攝像頭和紅外激光鏡頭。這三種鏡頭相互合作,通過探測擋在前面的物體所反射的紅外線推斷景深。這些視覺數據與英特爾RealSense技術動作跟蹤軟件相結合,便造就了可響應手部、手臂和頭部運動以及面部表情的免觸控界面。
圖1:Intel ?RealSense ? Camera?SR300官方示意圖解
圖2:實驗室SR300展示
3、 SR300工作原理
SR300設備的紅外線發射器(IR Laser Projector)發射的“結構光”,經物體反射后會被紅外線傳感器(IR Camera Lens)接收。由于紅外線到反射物體表面的距離不同,紅外傳感器捕到的“結構光”圖案的位置和形狀會發生變化,根據這些由實感圖像處理芯片就能計算出物體表面的空間信息,再用三角測距原理進行“深度”計算,進而重現3D場景。
圖3:典型“結構光”圖案
二、??? 開發與應用
1、????DCM與SDK
DCM即景深攝像頭管理器,可以為來自于實感攝像頭的流視頻提供接口,包括顏色和景深數據流,將其提供給SDK進行處理。這是一種攝像頭服務,并且支持多個SDK應用同時訪問來自攝像頭的數據,不會相互妨礙。如果沒有這一應用,每次就只能一個SDK訪問來自攝像頭的數據,才能確保收到正確的數據。DCM將英特爾實感攝像頭和SDK客戶端之間進行連接,給客戶端系統提供所有擴展的2D和3D攝像頭功能,并且允許用戶直接使用這些功能。它還管理著攝像頭控制、訪問策略,負責多個SDK同時訪問時的電源管理等。
圖4:搭載了多個SDK的客戶端系統
SDK(SoftwareDevelopment Kit)即軟件開發工具包,目前英特爾針對SR300攝像頭在官網中提供了五種功能的SDK下載,分別是游標模式、3D掃描、用戶背景分段、面部跟蹤和識別、全手跟蹤和手勢識別。
游標模式:SR300攝像頭上最為突出的一個特點,該模式在手上返回單個點,確保能夠實現準確和響應迅捷的3D光標點跟蹤,適用于在高穩定性手勢充足情況下進行更快、更輕、更精確的手部追蹤。光標模式包含手部追蹤動作和點擊手勢,相比于全手模式,它可將范圍和速度提高兩倍,范圍擴大至85厘米,手部追蹤速度高達2米/秒,同時不會產生延遲,且能耗非常低。
圖5:游標模式
3D掃描:根據各種觀察角度拍攝的一系列圖像重建靜態物體的形狀和外觀。 使用分段和跟蹤技術,將圖像序列轉換成 3D 三角網格,用于模擬、編輯打印或分析。可掃描用戶的面部,也可以掃描小型的物體,3D掃描塊可以集成至游戲中,捕獲用戶的面部掃描圖,并將其用于游戲人物。
用戶背景分段:生成每一幀的分段圖像,用于剔除或替換用戶頭部和肩部后面的圖像部分(背景)。利用深度數據更加準確地理解場景,從而實現十分精確的增強現實。 移除圖像背景以創建一個沒有屏幕的綠屏。
面部跟蹤和識別:辨認照相機范圍內存在的面孔或者每一張面孔的臉部特征。通過對78個標志點進行數據記錄從而提高準確性,真正的3D面部識別,以及面部三個維度的旋轉。可將當前面部圖像與已記錄的用戶數據庫對比,識別用戶身份。
全手跟蹤和手勢識別:適用于要求多種手勢(例如豎起大拇指)而不需要精確手部運動跟蹤的游戲和應用程序。空中操作界面元素,該SDK可追蹤每只手的 22 個點,以實現準確的免觸控手勢識別。
?
圖6:手勢識別
英特爾實感SDK還在持續更新中,并具備多項出色的新特性:自動范圍切換、高動態范圍(HDR)模式和置信圖。
自由范圍切換:可提高圖像質量,可以控制近距離范圍的激光增益和遠距離范圍的曝光。
高動態范圍(HDR)模式:是一種用來擴大圖像動態范圍的技巧。動態范圍是圖像中的明暗比率。HDR 模式非常適用于弱光或背光條件,并支持幀速率變化較大的應用。HDR 模式啟用后,圖像可反映更多有關普通頭發和帶強光效果的頭發細節。
? ??
圖7:改進帶強光效果的頭發
2、????主要參數和工作環境
在客戶端系統中需要安裝已經通電的USB3.0端口,SR300攝像頭要求Windows1064位操作系統和第六代智能英特爾? 酷睿? 處理器或更高版本。SR300 目標用途總的來說有八個,分別是全手骨骼追蹤和手勢識別,光標模式,頭部追蹤,3D 分割和背景移除,景深增強型增強現實,語音命令與控制,3D 掃描面部和小型物體,面部識別等。
表1:SR300主要參數詳情
| SR300 攝像頭 | |
| 范圍 | 0.2 - 1.2 米,室內和間接陽光照射; |
| 景深/IR | 640x480 分辨率 (60 FPS) |
| 彩色攝像頭 | 高達 1080p (30 FPS),720p (60 FPS) |
| 景深攝像頭 | 高達 640x480 60 FPS(快速 VGA,VGA),HVGA 110 FPS |
| IR 攝像頭 | 高達 640x480 200 FPS |
| 主板接口 | USB 3.0, 5V, GND |
| 開發人員套件尺寸 | 110 毫米 x 12.6 毫米 x 3.8–4.1 毫米 |
| 重量 | 9.4 克 |
| 所需操作系統 | Microsoft Windows* 10 64 位 RTM |
| 語言 | C++, C#, Visual Basic*, Java*, JavaScript* |
?
3、????SDK面部掃描映射為3D頭部模型
用戶使用攝像頭掃描面部,將其投影至可定制頭部網格然后添加后續處理效果,最終所得到可以適用于各種應用的結果。開發人員將這些工具集成到應用程序之中,支持用戶對面部特征進行定制,還可以用于生產游戲角色內容等。
圖8:從左至右:(a)SDK 掃描模塊所返回的面部網格;(b)映射至完整頭部模型;(c)進行形態目標調整后的頭部模型幾何體;(d) 經過調整并著色后的頭部
在用戶掃描完成或加載現有的掃描后,可以通過開發人員所推出的UI進行五種類型的定制,分別是
·????????面部掃描:調整偏航、傾斜、旋轉和z位移,以調整面部掃描的方向和位置;
·????????頭部塑形:使用提供的滑塊改變頭部模型的形狀,使創建的頭部與掃描人物的頭部相符;
·????????混合:使用色彩控制選擇兩種最適合膚色的顏色,第一種為基礎色,第二種用于調整色調;
·????????后期頭部塑形:映射流程結束后,可對頭部外形進行調整。可以改變體質指數、放大雙眼等等。
·????????后期混合:映射完成后,選擇任意色彩效果并將其運用于整個頭部,這些色彩效果不會影響嘴唇或眼睛,可以通過這個去調整頭部的色調/飽和度/亮度。
通過這五種操作對原生對象進行處理后可以導出成.OBJ類型文件,也便于之后加載到其他應用進行使用。在這整個面部映射的過程中,可以分成四個階段去理解頭部模型的變化。第一個階段為位移和色彩圖階段,在該階段中,根據掃描面部網格生成位移貼圖和顏色貼圖。 攝像頭對面部的掃描特征位置就投影到這些貼圖上,這些貼圖的用處就是通過使用正交投影矩陣渲染面部網格生成,并在下一個幾何體階段中用于投影至頭部網絡。
圖9:位移圖階段創建的色彩和位移圖
接下來就是幾何體階段,這一階段主要是調整基礎頭部網格外形,并將位移圖印在頭上。將基礎頭部網格投射到特征網格,這一步驟關聯頭部頂點和特征網格上的單個三角形、重心坐標以及沿該三角形法線的偏移。需要創建位移和色彩圖投影矩陣,其中矩陣就包括了投影中的比例變換、平移變換以及旋轉變換。
圖10:生成的顏色貼圖以正交的方式投影至頭部模型,可通過調整是兩眼之間的錨點對齊
圖11:含有明顯特征的面部色彩圖和包含明顯頭部特征的基礎頭部網格
圖12:重新投影并置換頂點位置后包含特征網格的頭部重疊
投影后進行渲染著色,著色又分為頂點著色器和像素著色器兩步,由頂點著色器將位移貼圖中的UV坐標傳遞至像素著色器,然后像素著色器針對每一像素進行著色。在這個混合面部掃描色彩數據的過程中,即稱為混合階段。混合階段可由美術師進行一定程度上的創作,所有的混合操作均在GPU上完成。最后是頭發幾何體階段,掃描面部不能提供頭發信息,因此需要在應用上給模型提供頭發才能創建完整的頭部。應用上示例頭發模型較少,無法提供完整的解決方案,可通過隨頭部外形的變化以編程的方式調整頭發形狀。該編程方式較為復雜,在此并不概述。在此階段完成以后,則可以導出完整的OBJ文件保存。
??? 最終得到的OBJ文件,可以將其導入到Unity3D軟件中進行游戲創作了。
三、??? 發展前景
RealSense技術作為一項新興的技術,有著非常亮眼的表現,使得人們對于未來VR領域中人機交互方式產生了更多的期待。應用領域也非常寬廣,在游戲、電影、物聯網、智能設備以及物流醫療等行業都可以做出非常巨大的改變。物流方面已經和京東進行了合作,可以利用3D掃描和尺寸識別去大規模處理物件,減輕人力成本和時間成本。也可以和無人機結合,使得無人機能夠更快捷的識別周邊物體,迅速做出反應而穿過障礙物。
圖13:搭載了六臺RealSense技術攝像頭的無人機
雖然RealSense技術所實現的功能非常讓人矚目,但是發展到目前為止還是存在需要改進的地方,也期待著在VR領域中有著更大的突破。
1、????應用范圍局限
RealSense的所收集到的特征數據沒法單獨提取出來,只能按照既定的模式進行存儲,這就限制了技術本身的應用范圍。如果要把所有人臉特征都整合起來存儲在云端,然后做海量人臉搜索,依靠RealSense技術無法實現,它的應用范圍限制在單機產品中。攝像頭目前所捕捉的圖像像素最高為1080P,滿足不了人們對高清圖像的需求。應用到游戲領域時,用戶體驗上比Leap Motion、Kinet2等同款產品體現不出明顯的優勢。
2、????運行環境要求高
??? 攝像頭本身價格并不昂貴,但是對于運行的環境要求非常嚴格。必須是中高端的Intel CPU上才能運行,而且系統環境也要求是win10,和AMD顯卡不兼容,這不利于產品的大范圍普及。
注:部分圖片來自于英特爾開發論壇,侵刪。
總結
以上是生活随笔為你收集整理的RealSense技术在SR300摄像头上的应用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Bootstrap 按钮的使用
- 下一篇: GPGPU