曹 徐,張 季,周 燁,王松瀾
(南京中醫(yī)藥大學(xué) 人工智能與信息技術(shù)學(xué)院,江蘇 南京210023)
經(jīng)濟(jì)高速發(fā)展促進(jìn)人們生活水平的日益提高,在享受優(yōu)厚物質(zhì)條件的同時,部分人群也承受著快節(jié)奏帶來的亞健康問題。中醫(yī)養(yǎng)生保健在改善亞健康問題方面有著得天獨(dú)厚的優(yōu)勢。研究發(fā)現(xiàn),多種身體的內(nèi)在(如內(nèi)臟、經(jīng)絡(luò))的病變可以外表于皮膚上,尤其是面部皮膚,具有單位面積上所包含的經(jīng)絡(luò)、腧穴點(diǎn)最多的特點(diǎn)。而如何運(yùn)用現(xiàn)代信息技術(shù)實(shí)現(xiàn)便捷的中醫(yī)養(yǎng)生保健,是中醫(yī)現(xiàn)代化發(fā)展的研究熱點(diǎn)之一,也是普及中醫(yī)保健知識的有效途徑。
經(jīng)絡(luò)是氣血之運(yùn)行、臟腑和體表及全身各部分之聯(lián)系的通道,是人體功能的調(diào)控系統(tǒng)。經(jīng)絡(luò)腧穴養(yǎng)生法是以中醫(yī)腧穴理論為基礎(chǔ),運(yùn)用針灸、按摩等方法,刺激經(jīng)絡(luò)腧穴,以激發(fā)精氣,實(shí)現(xiàn)調(diào)和氣血、美容養(yǎng)顏[1]、防病保健等目的的一種養(yǎng)生方法。眾多經(jīng)脈由人體體表、體內(nèi)直接或間接地運(yùn)行到頭面部,臟腑氣血通過經(jīng)脈上行,于是由面部色澤可初步了解氣血充盈程度,再結(jié)合面部形態(tài),進(jìn)而可以反映全身的狀況,因此面部是人體重要的反射區(qū)[2]。面部腧穴養(yǎng)生法正確實(shí)施的前提是需要精確定位腧穴,以便于開展下一步的操作。傳統(tǒng)尋穴的方法主要分三種:解剖標(biāo)志定位法、“骨度”折量定位法、指寸定位法[3]。
解剖標(biāo)志定位法,即自然標(biāo)志定位法,根據(jù)人體解剖學(xué)的體表標(biāo)志來確定腧穴位置。
“骨度”折量定位法,用分寸長度來確定腧穴位置,以骨節(jié)為長度區(qū)分標(biāo)志,根據(jù)兩骨節(jié)之間的長度來定義分寸,最后依據(jù)這個分寸來確定腧穴之間的相對位置。如今所采用的骨度分寸法大部分都是以《靈樞骨度》中所規(guī)定的人體各部的分寸為基礎(chǔ),結(jié)合折量分寸來確定的。
指寸定位法,又稱“指寸法”,以人體手指為尺寸折量標(biāo)準(zhǔn),量取穴位相當(dāng)位置。
上述傳統(tǒng)尋穴方法,在方法的實(shí)際操作過程中,往往依賴于醫(yī)生的主觀經(jīng)驗(yàn),其精確度難以保證;同時不夠便捷靈活,對于不同病人,醫(yī)生需要重復(fù)操作。因此,部分專家學(xué)者針對腧穴定位開展了一系列研究工作,如:董曉峰[4]啟用二維高頻超聲,將超聲儀的高頻線陣探頭分別以橫切或縱切的方式查掃骨骼為參照標(biāo)志的穴位定位方法,并且根據(jù)肌肉紋理走行不同的原理,對肌肉類的穴位進(jìn)行精確定位;朱道成等人通過分析熱敏規(guī)律,傳承并發(fā)展阿是之法[5],提出熱敏灸探感定位,以艾熱為刺激源來探查人體不同部位的灸感,詢問患者的感覺,從而確定熱敏化腧穴作為施灸部位,即以6種熱敏灸感的出現(xiàn)部位為最佳部位。這些研究在很大程度上提升了腧穴定位的準(zhǔn)確性,但仍然無法脫離醫(yī)生或患者的主觀判定。為了彌補(bǔ)這些不足,本養(yǎng)生軟件創(chuàng)造性地以骨度法為理論基礎(chǔ),利用AR技術(shù)與OpenCV計算機(jī)視覺庫,根據(jù)不同用戶的不同臉型和五官分布等情況進(jìn)行動態(tài)檢測后,準(zhǔn)確定位人體面部的腧穴位置(如圖1所示),這一應(yīng)用可在確保腧穴定位的準(zhǔn)確性的基礎(chǔ)上,大大提升了腧穴定位的靈活性,為經(jīng)絡(luò)腧穴保健的普及化發(fā)展開拓新思路。

圖1
本系統(tǒng)作為養(yǎng)生軟件,其適用的用戶群是以中老年人為主的全階段年齡人群,因此需要弱化使用者對軟件操作的學(xué)習(xí)要求。系統(tǒng)可通過設(shè)計簡單的界面提示和點(diǎn)選操作,就能讓用戶獲取到相應(yīng)的腧穴信息以及養(yǎng)生方案。此外,現(xiàn)階段互聯(lián)網(wǎng)和移動終端正在飛速地走進(jìn)人們的生活中,人們更傾向于通過手機(jī)獲取信息,因此本軟件將立足于移動端,采用相關(guān)信息技術(shù)實(shí)現(xiàn)腧穴養(yǎng)生保健的目標(biāo)。
2.1.1 Unity技術(shù)
Unity3D是3D開發(fā)平臺的先驅(qū),有免費(fèi)版同時支持眾多第三方插件,采用C#編程,易于開發(fā)。人體面部3D腧穴模型首次將普遍運(yùn)用于游戲制作的Unity3D開發(fā)工具[6],應(yīng)用于制作面部腧穴定位與操作軟件的開發(fā),充分利用了Unity3D的三維可視化及其簡單易操作的優(yōu)勢。除Unity3D之外,能夠?qū)崿F(xiàn)制作三維視頻游戲、建筑可視化、實(shí)時三維動畫等互動內(nèi)容的綜合開發(fā)平臺還有Virtools、Director、VegaPrime等。這些技術(shù)雖然功能強(qiáng)大但缺少功能完善、開發(fā)便捷的AR的SDK,因此Unity技術(shù)是實(shí)現(xiàn)本系統(tǒng)的首選方案。
2.1.2 AR技術(shù)
AR技術(shù)即增強(qiáng)現(xiàn)實(shí)技術(shù),是一種通過實(shí)時實(shí)景地計算攝影機(jī)捕捉到的影像的位置和角度,加上相應(yīng)的圖像、視頻、3D模型等要素,將虛擬與現(xiàn)實(shí)融合的技術(shù)。目前可以實(shí)現(xiàn)AR腧穴定位技術(shù)解決方案的方法主要有HiAR、Metaio、EasyAR、APToolkit以及Vuforia,各項(xiàng)技術(shù)主要特征對比如表1所示。
通過技術(shù)方案特征的對比分析,結(jié)合本系統(tǒng)的功能設(shè)計需求,可選擇Vuforia技術(shù),用于移動平臺的開發(fā)。
2.1.3 OpenCV技術(shù)
OpenCV是一個開源的跨平臺計算機(jī)視覺和機(jī)器學(xué)習(xí)軟件庫,由C語言函數(shù)以及部分C++類構(gòu)成,提供了圖像處理和計算機(jī)視覺方面的大量通用算法,使用該算法庫可很大程度上簡化人臉檢測識別的實(shí)現(xiàn)。在人臉檢測識別中,以級聯(lián)分類器為基礎(chǔ)實(shí)現(xiàn)相關(guān)操作:級聯(lián)分類器是指以級聯(lián)的方式,從簡單到復(fù)雜逐步串聯(lián)分類器。采用Haar特征和LBP特征為算子提取特征描述圖像和分類器,且不同的面部特征代表不同的分類器,即有了弱分類器。再使用Adaboost算法,根據(jù)特征的表現(xiàn),在訓(xùn)練和迭代的過程中選出錯誤率最低的弱分類器賦予較高的權(quán)值,級聯(lián)形成強(qiáng)分類器;多個強(qiáng)分類器再次訓(xùn)練,形成級聯(lián)分類器。隨著級聯(lián)復(fù)雜程度地加深,分類器的檢測精度逐漸提高,訓(xùn)練時間也將變長。
2.2.1 人臉檢測
人臉檢測的依據(jù)是人的臉部特征信息,用攝像頭捕捉含人臉的圖像或視頻流,自動檢測和追蹤人臉,后續(xù)對已檢測到人臉的灰度圖進(jìn)行一系列操作。用戶端的主要操作流程如圖2所示。
對于功能設(shè)計而言,用戶打開相機(jī),攝像頭捕捉到實(shí)時場景,自動保存場景圖像,當(dāng)OpenCV的級聯(lián)分類器在圖像上檢測到人臉以及對應(yīng)的五官之后,將其轉(zhuǎn)換成一張灰度圖,并存儲在矩陣?yán)铮缓蟾鶕?jù)坐標(biāo)之間的變換來確定每個穴位具體的位置,最終在界面中顯示并反饋給用戶。在此過程中,使用CascadeClassifier類來檢測視頻流中的物體,其中一個基于C++的關(guān)鍵方法,即進(jìn)行圖像的 多 尺 度 檢 測:void CascadeClassifier::detectMultiScale(const Mat&image,vector
2.2.2 虛實(shí)場景結(jié)合及場景渲染
虛擬場景指計算機(jī)勾勒的圖像、三維模型,真實(shí)場景指攝像頭捕捉到的實(shí)時畫面,通過Vuforia利用移動終端,將虛擬對象和現(xiàn)實(shí)畫面結(jié)合并顯示出來,實(shí)現(xiàn)對現(xiàn)實(shí)世界增強(qiáng)虛擬信息的作用。場景渲染主要實(shí)現(xiàn)圖形用戶交互,通過一些常用控件的簡單交互,由用戶選擇,然后得到對應(yīng)的輸出信息。整個軟件以用戶獲取信息為主要目的,不需要過于繁雜的交互,選擇NGUI(下一代用戶工具包),僅通過簡單設(shè)置和調(diào)節(jié)已有的功能組件,即能夠配合事件實(shí)現(xiàn)交互。
2.2.3 膚質(zhì)分析
膚質(zhì)分析功能將針對用戶面部皮膚狀態(tài)(如有無眼袋、眼部細(xì)紋、痤瘡和皮膚油性等等)進(jìn)行評測,得出結(jié)果并給出科學(xué)合理的保養(yǎng)建議。本軟件采用face++提供的膚質(zhì)檢測API接口,用交互的方式獲得用戶五官無遮擋、清晰的面部圖像,將其轉(zhuǎn)換成字節(jié)流上傳至face++的服務(wù)器。服務(wù)器響應(yīng)后將數(shù)據(jù)返回本地,與數(shù)據(jù)庫進(jìn)行比對、分析,得出膚質(zhì)分析的結(jié)果并輸出保養(yǎng)建議。
如圖3所示,本養(yǎng)生軟件的設(shè)計方案由以下幾個模塊組成:

圖3 面部腧穴養(yǎng)生軟件的設(shè)計方案
前期數(shù)據(jù)準(zhǔn)備:通過研究《針灸學(xué)講義》等文獻(xiàn),以中醫(yī)論壇網(wǎng)站、中醫(yī)專家咨詢、艾灸推拿[7]等相關(guān)書籍為信息采集源,橫向了解腧穴與病癥的對應(yīng)關(guān)系(例如:失眠時可對百會穴、失眠穴、四神聰進(jìn)行持續(xù)點(diǎn)揉按摩方法)、縱向收集每個具體腧穴的詳細(xì)信息(包括腧穴名稱、位置、按摩或艾灸及針灸手法等等);并整理市場前期調(diào)研結(jié)果,廣泛分析普遍人群的養(yǎng)生需求,制定對癥的艾灸、按摩等康復(fù)方案。
軟件核心技術(shù)實(shí)現(xiàn):OpenCV人臉訓(xùn)練器與Vuforia引擎的結(jié)合能夠準(zhǔn)確檢測到人臉,再根據(jù)算法確定每個面部腧穴的位置,并且通過虛擬模型與真實(shí)場景的疊加,在手機(jī)移動端軟件中顯示人面部腧穴的模型。最后通過UI與用戶的交互,以文字方式輸出養(yǎng)生方案,以動態(tài)實(shí)時變化的點(diǎn)的方式提示軟件用戶腧穴位置。
數(shù)據(jù)分析與存儲:為了提取出有用的腧穴信息并且形成準(zhǔn)確的養(yǎng)生方案,首先廣泛收集大眾人群的養(yǎng)生需求,分析出養(yǎng)生建議;同時收集常見的膚質(zhì)狀況(包括毛孔、水油平衡、痤瘡等等)的評測結(jié)果,以及個人日常的美容護(hù)理需求。對于用戶而言,服務(wù)器返回的數(shù)據(jù)并不能直觀地反映皮膚狀況和存在的問題,因此本軟件通過綜合分析各項(xiàng)指標(biāo),建立了膚質(zhì)評價表,并與腧穴功效相結(jié)合,形成針對該用戶的美容護(hù)理建議。如針對血管型黑眼圈可用食指、中指及無名指,輕輕從內(nèi)眼角到眼尾至太陽穴,然后雙手搓熱手掌按壓眼部,掌根按壓下眼瞼數(shù)秒,最后食指按壓迎香穴,重復(fù)三至五次。將腧穴名、具體位置、主要功效、對應(yīng)病癥、按摩方案、膚質(zhì)問題、美容建議等信息按照結(jié)論分類,刪去冗余信息后形成最終養(yǎng)生美容方案。匯總后導(dǎo)入數(shù)據(jù)庫,用于后期數(shù)據(jù)的傳輸和調(diào)用。
系統(tǒng)開發(fā)需要的數(shù)據(jù)主要包括:三維面部腧穴點(diǎn)模型數(shù)據(jù)及面部腧穴相關(guān)信息數(shù)據(jù)。
3.2.1 三維面部腧穴點(diǎn)模型的構(gòu)建
面部腧穴點(diǎn)模型是用戶從系統(tǒng)中能夠直接獲取到的信息,要求設(shè)計得直觀明了,可以讓用戶快速定位并了解相關(guān)信息。線框模型的構(gòu)圖圖素是點(diǎn)、線、圓弧等,并以棱線的形式代表形體,即只能提供一個線組成的框架,并不能達(dá)到理想中的用多個獨(dú)立的圓點(diǎn)來模擬腧穴的樣式,因而線框模型的建模方式并不合適腧穴點(diǎn)模型的構(gòu)建;實(shí)體模型的構(gòu)造需要完成對體素的定義和描述以及體素間的布爾運(yùn)算,基于移動端軟件來獲取每個用戶對象的質(zhì)量、體積、重心等物理特性是不現(xiàn)實(shí)的,因此腧穴點(diǎn)模型的構(gòu)建也不適合使用實(shí)體模型的理論思想;表面模型通常用于構(gòu)造復(fù)雜的曲面物體,能夠?qū)崿F(xiàn)模型的消隱、著色等功能,可滿足用戶需要實(shí)時觀察到自己的面部及腧穴位置的需求,因此選擇表面模型的構(gòu)建方式實(shí)現(xiàn)腧穴點(diǎn)模型的建立。利用3D建模軟件[8],同時借鑒中醫(yī)學(xué)的經(jīng)驗(yàn)與方法,將腧穴位置在二維坐標(biāo)系中進(jìn)行標(biāo)準(zhǔn)二維描述,并重構(gòu)三維定位方法對應(yīng)不同區(qū)域的穴位,最后結(jié)合人體頭部三維醫(yī)學(xué)影像,對腧穴進(jìn)行定位,并建立三維模型。
3.2.2 面部腧穴信息數(shù)據(jù)結(jié)構(gòu)
系統(tǒng)使用的腧穴數(shù)據(jù)實(shí)體關(guān)系模型如圖4所示。

圖4 面部腧穴數(shù)據(jù)實(shí)體關(guān)系模型
在實(shí)體關(guān)系模型面部腧穴(腧穴代號、腧穴名稱、定位描述、主治病癥、針灸方案、按摩方案、膚質(zhì)問題、美容建議、注意事項(xiàng))的基礎(chǔ)上,利用SQLite數(shù)據(jù)庫進(jìn)行存儲與管理,設(shè)計其存儲結(jié)構(gòu)如表2所示。

表2 面部腧穴信息結(jié)構(gòu)表
基于Unity3D/Vuforia增強(qiáng)現(xiàn)實(shí)技術(shù)的人體面部腧穴養(yǎng)生軟件是中醫(yī)腧穴理論與增強(qiáng)現(xiàn)實(shí)技術(shù)相結(jié)合的實(shí)踐應(yīng)用,能夠隨時隨地在移動手機(jī)終端獲取面部腧穴信息并通過交互的方式輸出相應(yīng)方案。軟件彌補(bǔ)了原圖解模式的不準(zhǔn)確與不方便的不足,為中醫(yī)腧穴可視化定位提供新思路新方法,其直觀性、便捷性符合現(xiàn)代中醫(yī)發(fā)展的理念,同時利用現(xiàn)代互聯(lián)網(wǎng)的普及,促進(jìn)了腧穴養(yǎng)生與現(xiàn)代中醫(yī)針灸推拿技術(shù)的推廣與發(fā)展。