?

基于增強現實技術人臉穴位點識別系統設計與實現

2022-08-31 22:53鄭成龍豐艷
電腦知識與技術 2022年17期
關鍵詞:增強現實

鄭成龍 豐艷

摘要:目前人臉穴位點的取穴方法僅按照人臉靜態圖中的穴位排布來確定,實時性較差。為了幫助穴位愛好者以及醫務人員更直觀地觀察穴位點的分布情況,設計了一種基于增強現實技術實時獲取人臉穴位點排布的方法。該方法首先利用OpenFace框架獲取人臉特征點的位置,然后根據人臉特征點的坐標計算人臉穴位的位置。利用Unity 3D平臺,將有關穴位信息標注在獲取到的人臉穴位點位置上,最終通過移動端拍攝人臉實現人臉穴位實時顯示。

關鍵詞: 人臉穴位點; 增強現實; Unity3D; 人臉特征點檢測; OpenFace

中圖分類號:R245.9? ? ? 文獻標識碼:A

文章編號:1009-3044(2022)17-0089-02

隨著生活水平的不斷提高,健康成為目前備受關注的頭等大事。國家高度重視發展中醫文化,甚至把中醫上升到關乎民族復興、國家盛衰的空前高度。在這樣的大背景下,越來越多的人開始嘗試在家用拔罐[1]、艾灸[2]等傳統的中醫方式進行養生保健。

這些經典的中醫養生方式,離不開經絡與穴位的定位,但是對于非醫學專業的普通人來說,查找穴位成為最需解決的問題。

對此,本文研究并開發了一款基于增強現實(Augemented Reality,AR)技術[3]的人臉穴位自動定位系統,可以很好地實現基于手機端的面部穴位實時定位。

雖然近幾年出現了一些基于移動端的虛實疊加應用系統,但大多都是離線系統。而本文研發的實時系統,具有更好的交互性和用戶體驗。

1 研究現狀

利用系統軟件輔助查詢人臉穴位,目前國內有一定研究。其中楊旭明團隊研究并開發了一款基于Web針刺面部穴位定位虛擬仿真系統軟件[4],在靜態人臉圖片上標記穴位。該系統在一定程度上降低了穴位查詢的難度,但仍具有局限性,很難跟隨人臉的移動動態地顯示穴位。

目前獲取圖像和視頻最常見最便捷的途徑是手機拍攝。因此,開發一款基于移動端的人臉穴位實時定位系統,更能符合實際的應用需求。

2 相關技術概述

2.1 AR技術

AR技術是在虛擬現實(Virtual Reality,VR)[5]技術基礎之上發展而來。不同于VR系統完全虛擬的世界,AR技術是將計算機生成的三維虛擬物體、場景或提示信息實時疊加到真實場景圖像中,從而實現對現實場景的補充和增強。

2.2 Unity3D引擎

Unity3D[6]是一款游戲開發引擎,由丹麥Unity Technologies公司在2004年創建。用戶可以通過該引擎創造地形、光照、碰撞等仿真內容,以及實現實時人機交互。Unity3D引擎具有跨平臺性,支持Windows、Android、iOS等多個平臺,做到一次開發、多平臺部署,能夠極大縮短軟件的開發周期。Unity3D 4.6版本之后,圖形用戶界面系統(UGUI)被集成到了Unity3D的編輯器中,UGUI提供了按鈕(Button)、輸入框(InputField)等組件,可以快速、簡單、靈活地創建UI界面。

經過多年的發展,Unity3D因操作容易、性能穩定等特點,在游戲、虛擬現實、增強現實、醫學、建筑等領域得到了廣泛的應用。

2.3 人臉穴位計算

利用OpenFace[7]框架對人臉進行68個關鍵點檢測,定位后的人臉如圖1所示。

穴位在人臉的分布位置與68個特征點的關系分為三種:第一種:穴位落在68個特征點上;第二種:穴位沒有落在68個特征點上,但是穴位與兩個以上的特征點有關系;第三種:穴位沒有落在68個特征點上,但穴位僅僅與一個特征點有關系。

首先用阿拉伯數字給人臉68個特征點標號,如圖2所示。

滿足第一種情況的穴位,瞳子髎穴位于眼角位置,與特征點36號和45號對應。上廉泉穴位于下頜正下方略微凹陷處,與特征點8號位置對應。前大迎穴靠近下頜尖處,與特征點10號和6號對應。攢竹穴位于眉頭處,與特征點21號和22號對應。絲空竹穴位于眉梢,與特征點17號和26號對應。山根穴位于鼻梁根部,與特征點27號對應。魚腰穴位于眉毛正中,與特征點19號和24號對應。地倉穴位于嘴角外側,與特征點48號和54號對應。禾髎穴位于上唇中央高起處外側,與特征點53號和49號對應。頰車穴位于下頜角處,與特征點4號和12號對應。

對于第二種情況,需根據兩個特征點的位置來計算。滿足第二種情況的穴位,人中穴位于鼻唇溝上三分之一處,可由特征點33號和51號計算得出。如公式(1)所示,Y人中、X人中表示人中穴在人臉圖像上的位置。Y33和Y51分別表示特征點33號和51號到圖像上邊框的距離,X33和X51分別表示特征點33號和51號到圖像左邊框的距離。

[Y人中=Y33-Y33-Y51/3X人中=X33-X33-X51/3]? ? ? ? ? ? ? ?(1)

印堂穴位于兩個眉頭連線的中點,可由特征點21號和22號計算得出。計算如公式(2)所示,Y印堂、X印堂表示印堂穴在人臉圖像上的位置。Y21和Y22分別表示特征點21號和22號到圖像上邊框的距離,X21和X22分別表示特征點21號和22號到圖像左邊框的距離。

[Y印堂=Y21+Y22-Y21/2X印堂=X33+X22-X21/2]? ? ? ? ? ? ? (2)

球后穴在眼眶下緣,外眼側起約四分之一處,用X球后和Y球后表示球后穴的位置。用X39和X36表示39號、36號特征點距離圖像左邊框的距離。Y41表示41號特征點距離圖像上邊框的距離。球后穴的位置由公式(3)計算得出。

[X球后=X39-X36/4Y球后≈Y41]? ? ? ? ? ? ? ? ? ? ? ? (3)

第三種情況比較復雜,需要利用骨度分寸法[8]和Canny[9]邊緣檢測來輔助定位。骨度分寸法是古代的一種測量方法,以骨節為標志測量身體各部分長度,如眉心到發際的距離為3寸,兩前額角之間為9寸。

Canny算法在1986年被John F .Canny提出,是應用比較廣的邊緣檢測算法。

用X發際點表示發際點到圖像左邊框的距離,用Y發際點表示發際點到圖像上邊框的距離。X發際點比較容易得到,人臉正視鏡頭,X發際點=X眉心=X印堂。Y發際點數值的確定同樣需要人臉正視鏡頭,利用Canny檢測人臉圖片邊緣,如圖3所示。在Canny檢測所得到的邊緣點坐標中查找X=X發際點且Y值小于Y眉心的點,在滿足條件的點中,取其Y值最大的點,即為發際點(X發際點,Y發際點)。

用C表示發際線到眉心的相對大小。用M表示兩眼角45號特征點與36號特征點之間的距離。X45和X36分別表示特征點45號和36號到圖像左邊框的距離。如公式(4)所示。此時的C和M為初始值,需要在穴位點檢測之前初始化。

[C=Y發際-Y眉心M=X45-X36]? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(4)

當人臉進行前后移動時,用Mnew表示移動后兩眼角之間的距離,用X45(new)和X36(new)表示移動后兩眼角45號特征點和36號特征點距離圖片左邊框的位置,用R表示人臉縮放的比值。由公式(5)計算Mnew和R值。

[Mnew=X45(new)-X36(new)R=Mnew/M]? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (5)

陽白穴的位置在魚腰穴的上方兩寸處,用X陽白和Y陽白表示, X魚腰(左)和Y魚腰(左)表示左眼魚腰穴的位置。由公式(6)計算得。

[X陽白=R*C*2/3+X魚腰(左)Y陽白=Y魚腰(左)-R*C*2/3]? ? ? ? ? ? ? ? ? ? ? ? ?(6)

四白穴位于瞳孔正中央下約2寸處,用X四白和Y四白表示。X40表示40號特征點距離圖像左邊框的距離。Y40表示40號特征點距離圖像上邊框的距離。由公式(7)計算得。

[X四白≈X40Y四白≈R*C*2/3+Y40]? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(7)

至此,我們得到了所有穴位點的位置。

3系統的設計與實現

3.1 系統功能設計

系統具有四個功能:

1)虛擬穴位在人臉全部顯示。使用戶觀察各穴位之間的位置關系更加清晰。

2)依據用戶輸入的穴位名稱顯示單個穴位。避免其他穴位視覺上的干擾。

3)依據用戶輸入的病癥名稱,系統自動查找并顯示相應穴位。查找穴位的目的是治療疾病或養生保健,但面部穴位較多,對于非醫學專業的普通百姓而言,很難熟記各病癥與穴位的關系,因此,通過疾病名稱查找穴位,能夠更好地滿足用戶需求。

4)提供指定穴位相關知識,例如顯示穴位對應的治療病癥,以及對應的養生保健方法。

3.2 系統功能實現

該系統利用紅點和穴位名稱標注穴位的具體位置。紅點和穴位名稱通過Unity3D UGUI控件制作。

創建與穴位點數量相同的Image和Text控件。每一個Image對應一個穴位,每個Text對應一個穴位的名稱。系統運行的過程中,各Image和Text控件位置與計算出的人臉穴位位置對應。穴位的顯示效果如圖5所示。另外,通過腳本可控制Image、Text啟用與禁用,進而控制穴位的顯示與隱藏。

繼續在Unity3D 場景中添加Button、Image及InputField等UI組件[10],實現對系統功能的交互操作。穴位相關知識和疾病治療方法將以圖片的形式顯示在界面上方,如圖6所示。

為避免UI組件對人臉穴位的觀察造成遮擋,輸入框設計為半透明,且交互按鈕和輸入框均顯示在界面的底部。

4結論

本文探索性地將AR技術應用于穴位識別系統,設計并實現了一款人臉穴位動態查找軟件,使用戶查找穴位更方便快捷。

目前該面部穴位查詢系統對于用戶正視攝像頭或頭部小范圍的移動定位精確性較高,但對于大范圍的頭部移動精確性會降低。本論文的后續工作:1)提高大范圍頭部移動的精準性;2)將穴位查找范圍進一步擴大,嘗試實現人體全部穴位的動態查詢定位。

參考文獻:

[1] 王貞虎.舒筋活絡的拔罐術[J].健康生活,2018(6):28-30.

[2] 梁鳳霞,王華,王靜芝,等. 國際中醫針灸教育課程體系現狀與思考[A]. 世界針灸學會聯合會、中國中醫科學院、海南省衛生健康委員會.“中醫針灸”申遺十周年特別活動暨世界針灸學會聯合會2020國際針灸學術研討會論文集[C].世界針灸學會聯合會中國中醫科學院、海南省衛生健康委員會:中國針灸學會,2020:2.

[3] 王宇希,張鳳軍,劉越.增強現實技術研究現狀及發展趨勢[J].科技導報,2018,36(10):75-83.

[4] 楊旭明,彭昊宇,方琢,等.基于Web的針刺面部穴位定位、處方學習和虛擬仿真系統的研發[J].中華醫學圖書情報雜志,2019,28(10):51-56.

[5] 楊青,鐘書華.國外“虛擬現實技術發展及演化趨勢”研究綜述[J].自然辯證法通訊,2021,43(3):97-106.

[6] 劉春飛,張季,王嘉,等.基于Unity3D技術的移動端數字人體腧穴仿真系統的設計與實現[J].世界科學技術-中醫藥現代化,2021,23(5):1490-1499.

[7] 梁昭德.基于卷積神經網絡的駕駛人疲勞檢測算法研究[D].廣州:華南理工大學,2018.

[8] 李佳潞,黃銀蘭,喬嘉,等.骨度分寸定位法的古代文獻研究[J].山西中醫藥大學學報,2021,22(1):4-7.

[9] 李軍,鐘鵬.OpenCV的車道線檢測方法[J].華僑大學學報(自然科學版),2021,42(4):421-424.

[10] 楊旭.基于虛擬現實的注塑成型仿真系統的研究及開發[D].杭州:浙江大學,2018.

收稿日期:2022-02-10

作者簡介:鄭成龍(1996—),男,山東濱州人,碩士,虛擬現實方向;豐艷(1977—),女,山東青島人,教授,博士,碩士生導師,圖像處理、虛擬現實、多媒體技術。

猜你喜歡
增強現實
照片建模與增強現實實驗在三維軟件基礎課程中的應用
增強現實技術在職業教育中的應用
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合