宋根龍,田 彤,陳 軒,李 毅
(溫州大學 計算機與人工智能學院,浙江 溫州 325000)
增強現實(augmented reality,AR)是一種通過運用虛擬信息補充現實世界的技術,而這些虛擬信息似乎能夠與現實世界共存[1]。同時,作為數字化技術的拓展和延伸,增強現實技術利用數字攝像頭在獲取到真實世界的信息之后,通過計算機圖形算法[2],利用計算機生成的文本、圖像、三維模型、音樂、視頻等虛擬信息來模擬現實信息并將其運用于現實世界之中[3],給人們一種仿佛置身于現實世界的真實體驗。
時代的不斷進步與發展,讓增強現實技術有了更加廣闊的應用前景,其通過多媒體、實時跟蹤和注冊、場景融合等技術已經較為廣泛地應用于教育教學[4-6]、游戲娛樂[7-8]、醫療醫學[9-10]以及軍事訓練[11]等各個領域之中。教育教學領域,通過增強現實技術將數字環境和物理環境結合,把學生所學知識三維立體化,讓學生對一些抽象概念有了不一樣的感受,從而更加有助于加深學生們對于所學知識的理解,使得學生更加快樂、更加輕松地學習;游戲娛樂領域,增強現實技術將各種游戲因素結合起來,同時在游戲中將現實世界中的物體虛擬化,并創造出更多的虛擬物體,使玩家既可以體驗真實般的仿真游戲,又可以體驗現實中不可能存在的虛擬類游戲,給玩家們帶來了更加新穎奇特的游戲體驗;醫療醫學領域,增強現實以其較好的虛實結合技術、實時交互能力等特點結合三維可視化、3D打印等技術為醫學的發展做出了一定的貢獻,成為了醫療醫學領域的新興技術;軍事訓練領域,增強現實技術廣泛應用于軍事仿真訓練領域,通過將現實世界物體的基本特征虛擬化,然后根據地理數據疊加到真實環境當中,進而構造出了一種模擬軍事訓練的超越真實的虛實結合環境。
在運用增強現實技術的過程中,首先要做的工作就是調用攝像頭,進行圖像信息的采集,也就是將現實世界中存在的真實場景在攝像機的平面上呈現出來,這個過程用到相機的幾何成像模型以及基于視覺的三維注冊技術[12]。而人臉識別技術則是利用計算機設備對包含人臉的圖像信息進行人臉特征點識別的技術。當前,在諸多增強現實技術的應用領域當中,存在著不少以用戶面部為主要增強對象的應用,即通過人臉識別技術的使用,在人的面部呈現出虛實結合的場景現象,即增強現實技術的效果呈現,例如可移動化的虛擬化妝銷售平臺、人臉修圖、人臉卡通化等[13],都很好地結合了人臉識別和增強現實技術,推動了這類技術的進一步發展。
時代的發展,競爭力的不斷增加,以及時尚在普通民眾之中的不斷深入,無論是近視眼鏡還是太陽眼鏡等的需求都在不斷加大,導致當前眼鏡的種類越來越多,而通過在眼鏡店試戴不同款的眼鏡來選擇適合自己的眼鏡的一款可能略顯不便,因此針對這一問題,基于特征點提取和匹配的增強現實技術,提出了一種增強現實的個性化眼鏡選配算法。通過對現實世界中真實的眼鏡進行模擬仿真之后,利用人臉識別技術對攝像機采集到的人臉信息進行特征點提取,并根據人臉特征點的分布,將虛擬化的眼鏡模型在人臉的特定位置顯示出來,產生融合效果,人們可以很方便地觀察到自己戴上不同款眼鏡的效果如何,從而可以決斷出哪一款眼鏡最適合自己。
設計的算法流程主要包括采集圖像信息、人臉檢測及定位、圖像特征點提取、特征點匹配、PIL圖像處理、眼鏡選配增強現實的實現,如圖1所示。

圖1 算法流程
具體流程:
首先,調用攝像頭用以采集數字圖像信息,然后通過使用ERT(ensemble of regression trees)級聯回歸,即基于梯度提高學習的回歸樹方法[14]對采集到的圖像信息進行人臉檢測,確定圖像中的人臉信息,以及圖像中人臉的位置信息;同時,對人臉進行特征點的檢測;然后對特征點檢測之后的人臉圖像進行特征點提取,將圖像中人臉的特征點呈現出來。
其次,根據確定好的特征點在人臉中的位置信息,選取適合的眼鏡素材模型進行特征點位置的匹配。此處的眼鏡素材模型,可以是由Photoshop處理生成得到的PNG格式的圖像。
然后,利用PIL圖像處理模塊,根據人臉的大小、位置進行眼鏡匹配的調整,包括眼睛模型的大小以及位置等,從而達到最佳的效果。
最后,通過終端攝像頭,在采集到的圖像信息之上,即可得到增強現實的眼鏡選配的實現效果。
1.2.1 人臉特征點標定
人臉識別技術是一種通過識別人的面部特征來確認人臉信息的技術,其可以通過多種方式來實現。該文采用的是利用dlib庫來實現人臉識別的效果。之所以選用dlib庫來實現,是因為dlib庫是一個第三方的庫,能夠很好地實現人臉的檢測和識別,其算法根據人臉特征點提取對應的HOG特征[15],結合級聯分類器,可以快速并且精確地進行圖像信息中人臉信息的標記,其中包括一些半側臉,甚至是一些模糊的臉型,都能夠很好地滿足需求。
人臉特征點的提取是人臉識別技術之中的關鍵部分。而通過dlib庫實現人臉特征點的提取的過程為:首先,通過級聯分類器(見公式1)進行人臉檢測并獲取目標人臉圖像。
(1)
其中,Ci表示第i個分類器,x表示特征向量,f表示分類得分,每個Ci會根據分類方法對x輸出一個分類結果,進而判斷檢測到的是不是人臉圖像信息。
然后,通過dlib庫提供的分類器文件,運用landmark人臉特征點提取技術對已經檢測到的圖像中的人臉信息區域進行特征點的提取操作,可以提取到人臉的68個特征點的位置信息,如圖2和圖3所示(左為原圖,右為特征點提取圖)。

圖2 正面特征點提取圖

圖3 偏移一定角度的特征點提取圖
接著,對完成了特征點提取操作的人臉圖像信息進行對齊處理,使得人臉圖像變化成特征點呈現形式的圖像,并且將其對齊到基準人臉圖像上。
最后,將特征點呈現形式的人臉圖像信息放入到通過深度學習殘差神經網絡訓練好的人臉數據集中進行遍歷對比,從而完成人臉識別[16]以及人臉特征點的標定。
1.2.2 增強現實模型位置匹配
完成上述人臉特征點的標定之后,再通過相似變換公式(見公式2和公式3)對每兩個特征點進行計算,得到它們之間的相似變換矩陣。
(2)
(3)
其中,R是旋轉矩陣,t是平移矢量,s是縮放尺度。再由此計算結果得出目標人臉圖像信息的區域rect坐標以及與所要對齊到基準人臉圖像之間的縮放系數等重要基礎數據信息,然后再使用圖像處理技術進行人臉特征點匹配個性化眼鏡的操作。
圖像處理[17-18]就是計算機等電子設備采用一定的算法,對給定的圖像進行加工處理,以達到所需要效果的技術。該文采用的是Python中的PILpython image library)圖像處理模塊對人臉識別之后的人臉特征點匹配眼鏡素材模型的效果進行實現。PIL是計算機程序設計語言Python的圖像處理標準庫[19],具有很好的圖像處理能力。同時,PIL圖像處理模塊支持圖像的存儲、顯示和處理操作,并且能夠處理的圖片格式非常齊全,可以完成對圖像的縮放、裁剪、疊加以及向圖像中添加線條、圖像和文字等操作[20]。這里通過調用PIL圖像處理中的Image模塊來進行一些具體的圖像處理操作。Image模塊是PIL中的核心模塊,或者說核心類,PIL中對圖像進行基礎操作的功能基本都包含于此模塊內。根據Image模塊,載入之前通過調用攝像頭采集并進行人臉識別之后的人臉圖像數據,同時載入眼鏡素材模型,并根據人臉識別過程中得到的區域rect坐標,確定匹配眼鏡素材模型的特征點坐標,通過公式4計算匹配眼鏡素材模型的特征點距離。
(4)
其中,(x1,y1)、(x2,y2)為兩個特征點的坐標,d為兩個特征點之間的距離。再根據公式5計算眼鏡素材模型匹配特征點距離的適合尺寸。
size=d/(width×height)
(5)
其中,size為通過計算之后的眼鏡素材模型的匹配大小,width和height為眼鏡素材模型的原始尺寸。然后通過resize方法,將眼鏡素材模型根據計算出的適合尺寸的結果進行重新調整操作,以達到與特征點匹配的最佳效果。最后利用paste方法對眼鏡素材模型與特征點進行匹配,并根據效果進行調整,使之呈現增強現實的個性化眼鏡的選配實現。
為了測試算法的普適性和有效性,采用了不同的人臉圖像數據在此算法中進行處理,得到了增強現實的個性化眼鏡選配的實驗效果。若無特別指出,涉及算法的實驗平臺如下:
軟件平臺:Windows 10,64位操作系統,PyCharm,Python+Opencv;
硬件平臺:Intel(R)Core(TM)i5-6200U CPU @ 2.30 GHz,8G內存。
在個性化眼鏡選配的實現過程中,利用人臉識別技術,對調用攝像頭采集到的圖像信息進行人臉信息的識別,并進行人臉特征點的提取操作,通過特征點的匹配,結合眼鏡素材模型,生成了具有增強現實效果的實驗結果。增強現實的個性化眼鏡選配的實驗結果與分析如圖4所示。

圖4 實驗結果圖
由圖4中的五組實驗結果以及圖5呈現的原圖與效果圖的直方圖對比可以看出,無論是在簡單背景,還是在復雜背景下,該算法對于不同種類的眼鏡以及不同類型的人臉,都能很好地呈現增強現實的個性化眼鏡選配的實驗效果,甚至可以模擬真實眼鏡的佩戴效果。

圖5 直方圖對比圖
根據測算出的該算法的平均幀率值在25~29幀/每秒,可以得出此算法滿足實時性匹配的要求。同時,經過實驗計算,可以得出此算法對于人臉的檢測準確率約為76%,在GPU和CPU上的耗時較短,約為1~2萬毫秒,如表1和圖6所示,對于不同人臉以及人臉的不同角度,均能較好地實現人臉識別效果。基于此,該算法能夠較好地實現增強現實的個性化眼鏡的實時選配需求,較好地結合了增強現實和人臉識別技術,呈現出較好的實驗結果。

表1 算法性能

圖6 人臉特征點對比圖
通過以上算法描述和結果展示,提出的增強現實的個性化眼鏡選配算法,利用人臉識別技術提取人臉特征點,通過PIL圖像處理模塊對人臉特征點與眼鏡素材模型進行匹配,使得算法能夠呈現出增強現實的個性化眼鏡的選配效果。實驗結果表明,該算法廣泛適用于不同類型眼鏡與不同臉型的匹配,同時對于實時移動的人臉圖像信息,都能產生較好的增強現實效果。然而由于此算法中應用到的眼鏡素材模型均為無兩側鏡架的眼鏡素材模型,故對于有兩側鏡架的眼鏡素材模型,不能很好地呈現出人臉佩戴眼鏡的效果,同時,人臉的角度偏差,會造成眼鏡素材模型不能很好地匹配到人臉的最佳位置。因此,在之后的研究過程中,將深入探究三維眼鏡素材模型的匹配,根據人臉角度的變換,結合人臉識別算法,使之產生更加真實的效果,實現增強現實的三維立體化眼鏡的匹配。