文/北京師范大學附屬實驗中學 王子川
指導教師/北京理工大學光電學院 劉越;北京師范大學附屬實驗中學 馬靜
基于圖像識別和手勢跟蹤的透射式智能眼鏡(上)
文/北京師范大學附屬實驗中學 王子川
指導教師/北京理工大學光電學院 劉越;北京師范大學附屬實驗中學 馬靜
智能眼鏡正在逐漸成為可穿戴設備領域里的重要研究方向,而市場上現有的產品大多存在操作繁瑣、增強現實體驗不好等問題。在對市場及實際應用的諸多種智能眼鏡分析研究的基礎上,進一步研究增強現實體驗更好、操控更為人性化的智能眼鏡具有重要的現實意義。在輸入方面,本研究提出的基于計算機視覺的手勢跟蹤識別和透射式標定方法為智能眼鏡的輸入方式提供了一種新的解決方案,可以實現對于點擊和滑動操作的檢測;在增強現實方面,基于計算機視覺的透射式智能眼鏡的增強現實算法為智能眼鏡的增強現實應用提供了解決方法,可以實現三維物體的動態疊加。上述的跟蹤識別、標定方法以及增強現實算法和硬件一同構成了增強現實智能眼鏡系統。除此之外,本項目討論了該系統未來在消費級和企業級市場的不同應用,實驗中搭建的兩版增強現實眼鏡系統也為將來的實際應用做出了示范。整個系統的創新之處在于首次在將透射式智能眼鏡上利用標定實現基于自然特征點的三維動態增強現實與利用新的方法在智能眼鏡上實現對手指的跟蹤識別,因而相比其他的同類產品,該系統擁有操控簡便、增強現實效果好的優點。
智能眼鏡;計算機視覺;增強現實;手勢跟蹤識別;OSTHMD(光學透射式頭戴顯示器)
隨著近年來可穿戴設備漸漸進入人們的視野,基于增強現實的智能眼鏡開始成為業界研究的一個重點。增強現實是一種于20世紀90年代被Thomas P. Caudell和David W. Mizell提出的技術,其特征是將虛擬的信息疊加到現實場景中,以實現對現實的增強[1]。近年來智能眼鏡行業的發展使人們與增強現實之間的距離又近了一步,因為智能眼鏡的發展使增強現實的便利應用成為可能。在此之前,谷歌公司已經推出了一款面向智能手機平臺的增強現實應用Ingress,但是由于用戶在使用時必須手持手機,所以體驗并不是十分理想[2]。然而,智能眼鏡的出現可以使用戶在無需額外操作的情況下很自然地看到虛擬信息與現實世界的融合,具有廣泛的應用前景。
根據查閱的相關資料,目前已經有不少科技公司在研究并生產此類基于增強現實的智能眼鏡,其中以愛普生公司、Meta Lab以及Atheer Lab推出的產品最具代表性。
Moverio BT-200是由愛普生公司推出的第二代智能眼鏡,采用雙目顯示,具有960×540qHD的分辨率和23°的視場角[3]。它內置了陀螺儀、電子羅盤和加速度傳感器,可以實現頭部跟蹤功能。它還內置了一顆攝像頭,用來實現拍照及增強現實的功能。但是BT-200的操作較為繁瑣,需要有外部有線連接的觸摸板來進行操作。
Meta Pro是一款由Meta Lab推出的智能眼鏡,采用Intel? Core? i5處理器,擁有強大的計算性能和4GB超大內存,同時內置了深度傳感器,可以實現手勢的跟蹤識別,而且支持3D顯示,采用128GB SSD作為存儲器[4]。但是Meta Pro制造的成本很高,不適宜大規模量產,而且它需要配合體積相對比較大的外置小型計算機來進行使用。
Atheer One是由Atheer Labs開發的一款基于安卓手機的智能眼鏡,率先在國外知名的眾籌網站Indiegogo上發布,擁有高達65°的可視角,而且支持手勢操控,但在使用時需要把眼鏡與安卓智能手機相連,而且也并不支持透射式增強現實[5]。
在包括上述已經發布的若干款智能眼鏡產品中,大多存在增強現實體驗較差,操控不夠人性化和不能獨立使用的缺點。經過研究分析,可靠的標定算法是實現良好增強現實用戶體驗的基礎,指尖檢測算法則是手勢跟蹤交互的關鍵,然而目前在國內還沒有人做過將標定算法和指尖檢測算法用于智能眼鏡的研究。所以,采用標定算法和指尖檢測算法更好地提升增強現實體驗與人性化操控方式就成為了實驗的重點。
在研究過程中先后搭建了兩版增強現實智能眼鏡系統,第一個系統主要用于算法的調試、改進與優化,第二個系統主要用于整個系統的實用化,實現基于增強現實的應用,將整個系統移植到移動x64以及x86平臺上便于在移動端應用。
2.1 第一版
由于第一版主要是為測試、優化算法和程序而搭建的,所以采用了基于x64電腦的試驗方法。
本版采用了自由曲面棱鏡光學系統,該系統擁有對角線36°的反射視場角和對角線50°的透射視場角,以及小于3%的畸變。該棱鏡采用APEL光學塑料,尺寸為36mm×30mm×12mm,重量是14g。圖1是FFS OSTHMD光學系統的YZ平面的2維平面圖,在這個系統中,有兩個光學通道。第一個光學通道是反射系統通道,由微顯示器顯示的圖像經過放大投射后進入人的眼睛,由微顯示器上發出的光經表面4透射,再經表面2全反射,經表面3部分反射,最后通過表面2進入人眼;第二個光學通道是透射式系統通道,由真實場景中的光線通過表面5、表面3、表面2的連續透射后進入人眼。
顯示系統采用了云南北方奧雷德公司的OLED顯示器,具有最高800×600的分辨率,尺寸為12.78mm×9mm(0.6英寸)。圖2是該OLED顯示器的實物圖。
在其他硬件方面,采用了內置Intel? Core? i5-2300 CPU(主頻2.8GHz)的64位臺式電腦,擁有8GB內存。
在開發工具方面,使用了Microsoft Visual Studio 2010旗艦版,配合OpenCV 2.4.9和Intel? Perceptual Computing SDK 1.8來進行算法測試與程序調試。
深度傳感器采用了Intel公司的Intel? Realsense 3D?設備,該設備內置了3D 深度傳感器和720P的RGB攝像頭,并配有激光發射裝置[6]。圖3展示了該3D深度傳感器的結構,圖4為實物拍攝圖。
2.2 第二版
第二版的主要目的是把第一版的成果實用化、移動化,所以較第一版來說自由曲面棱鏡光學系統和顯示系統方面沒有變化,而最大的變化在于整個系統移植到了移動x64以及x86平臺上。第二版的x64型采用了Intel? Core? i7-3720QM(主頻2.6GHz)處理器,擁有NVIDIA GTX? 660M圖形處理器和8GB內存,其他方面與第一版相同。第二版的x86型采用了Intel? Atom? Z3735F(主頻1.3GHz)處理器,集成Intel? HD Graphics圖形處理器和2GB內存。操作系統采用Windows 8.1,并安裝Microsoft Visual Studio 2010旗艦版,OpenCV 2.4.9和Intel? Perceptual Computing SDK 1.8。第二版還采用了自行設計的鏡架,并進行了3D打印。圖5為模型3D渲染圖。
指尖跟蹤標定的三個關鍵環節是指尖分割、指尖識別跟蹤和透射式標定,在此基礎上實現點擊和滑動檢測。
3.1 指尖分割
在實驗中采用了基于深度值亮度分割方法。在智能眼鏡上的深度相機會實時計算每一時刻各個點的深度,并以灰度圖的形式返回給計算機。根據手掌距離深度傳感器最近的這個事實,可以對每一幀獲取的深度圖像進行直方圖分析。根據經驗可知手掌距離傳感器的最遠距離不應超過600mm,故取600mm作為閾值的一側界限,而另一側則采用動態閾值調整法。根據深度直方圖的基本特性可知手的出現在直方圖上反映為一個波的出現。因此,可以把小于600mm內出現的第一個波谷的橫坐標作為深度篩選的另一閾值界限,并可以認為這兩個界限內的深度信息即為指尖的深度信息[7]。圖6展示了該直方圖的典型情況,圖7展示了分割后所檢測出的手部位置。
3.2 指尖識別跟蹤
在掌握了指尖的深度信息之后,就可以將所有閾值內的點儲存起來,利用cv::findContours找到這些點的輪廓,再遍歷全部輪廓點的y軸坐標,從而提取出y軸坐標最大的點,記錄該點在深度圖上的(x,y)坐標以及深度值,記錄在內存中。圖8中的綠點即為識別出的指尖位置。
3.3 透射式標定
假設指尖點的世界坐標是P(xw,yw,zw),指尖點在攝像機坐標下的坐標是PC(xc,yc,zc),在跟蹤攝像機成像平面的坐標是PUV(x,y),Zc相當于是深度攝像機獲得的深

其中跟蹤攝像機坐標系與人眼坐標系之間滿足轉換關系T。


圖1 FFS OSTHMD光學系統的YZ平面的2維平面圖

圖2 OLED顯示器的實物圖
指尖在人眼坐標系下uv的坐標為:Pe_uv(xe-uv,ye-uv,1)


圖3 3D深度傳感器結構

圖4 實物拍攝圖
通過以上公式可以得到:

把人眼成想平面Pe_uv與跟蹤攝像機的轉換關系即為TP。


圖5 模型3D渲染圖

圖6 直方圖的典型情況
在標定過程中Pe_uv(xe-uv,ye-uv,1)可以通過鼠標點擊指尖獲得,點(zc·x,zc·y,zc·z)可以通過深度相機和指尖分隔直接獲得。
這樣就能得到一組點對,試驗過程中,獲得27組這樣的點對后,既可以通過最小二乘法來求解Tp完成標定[8-10]。
(未完待續)

圖7 分割后所檢測出的手部位置

圖8 識別指尖位置