唐 莉
(景德鎮(zhèn)學(xué)院,江西 景德鎮(zhèn) 333000)
手部疾病不僅對(duì)個(gè)人、家庭造成醫(yī)療負(fù)擔(dān),還會(huì)增加國(guó)家在醫(yī)療方面的支出,影響經(jīng)濟(jì)發(fā)展。雖然現(xiàn)在市面上出現(xiàn)一些以分析病患手掌信息的數(shù)據(jù)手套,或是以手部觸覺為技術(shù)基礎(chǔ)的手部康復(fù)系統(tǒng),但是卻存在價(jià)格昂貴、設(shè)備重量過大、靈活性不足等問題,并不適用于大面積推廣。因此,本文將以計(jì)算機(jī)視覺角度,對(duì)于手勢(shì)識(shí)別康復(fù)系統(tǒng)做全面分析。
當(dāng)前,治療手部疾病主要有兩種智能化方案可供選擇:一是以數(shù)據(jù)手套為技術(shù)基礎(chǔ)的手部遠(yuǎn)程虛擬康復(fù)系統(tǒng)。這種治療方案需預(yù)先創(chuàng)設(shè)虛擬場(chǎng)景,由病患通過數(shù)據(jù)手套對(duì)場(chǎng)景中的小球進(jìn)行抓握,緩慢恢復(fù)手部正常功能,實(shí)現(xiàn)手部康復(fù)訓(xùn)練。但整體設(shè)備擁有一定重量,會(huì)帶給病患較大的負(fù)重感,極容易在康復(fù)訓(xùn)練中出現(xiàn)二次傷害,影響手部正常恢復(fù)。并且現(xiàn)在數(shù)據(jù)手套的一些技術(shù)尚未突破,無(wú)法實(shí)現(xiàn)批量試生產(chǎn),導(dǎo)致整個(gè)康復(fù)設(shè)備的價(jià)格偏高,并不適合大面積推廣應(yīng)用。二是以人體觸覺為基礎(chǔ)的虛擬康復(fù)系統(tǒng)。這種治療方案是在虛擬場(chǎng)景的基礎(chǔ)上增加人體觸覺系統(tǒng),從而設(shè)計(jì)用于手部康復(fù)的“3D迷宮”,病患通過舉起、放下杯子,或者對(duì)小球抓握等手部動(dòng)作,控制圖像完成迷宮任務(wù),在任務(wù)過程中進(jìn)行手部訓(xùn)練[1]。雖然這種治療方案可以提升患者對(duì)手部訓(xùn)練的積極性,但是受限于技術(shù),導(dǎo)致系統(tǒng)僅支持?jǐn)?shù)個(gè)特定動(dòng)作,病患的恢復(fù)訓(xùn)練不具備動(dòng)作的靈活性。
本文設(shè)計(jì)的手勢(shì)識(shí)別康復(fù)系統(tǒng)基本結(jié)構(gòu)見圖1。
圖1 手勢(shì)識(shí)別康復(fù)系統(tǒng)基本結(jié)構(gòu)
本系統(tǒng)應(yīng)用PyCharm編輯器,可以有效提高編程速度,控制系統(tǒng)開發(fā)時(shí)間。以Anaconda管理數(shù)據(jù)包,并以開源視覺庫(kù)OpenCV為主,卷積神經(jīng)網(wǎng)絡(luò)為輔,負(fù)責(zé)處理圖像數(shù)據(jù),sklearn用于模型訓(xùn)練,PyQt則用于界面設(shè)計(jì),實(shí)現(xiàn)數(shù)據(jù)可視化[2]。
通過PC端攝像頭實(shí)現(xiàn)采集病患的康復(fù)手勢(shì),OpenCV在接收?qǐng)D片信息后,會(huì)將其細(xì)分為許多像素點(diǎn),構(gòu)成表述圖片的像素圖,并把圖像移動(dòng)至文件夾,通過命名文件夾的方式標(biāo)記圖像內(nèi)容。
2.2.1 圖像分割
PC端攝像頭負(fù)責(zé)采集各個(gè)等級(jí)的灰度圖像,但是在許多應(yīng)用場(chǎng)景中,僅需要純黑、純白兩種類型的圖像[3]。例如卷積神經(jīng)網(wǎng)絡(luò)提取圖像特征信息時(shí),只需輸入線條、文字構(gòu)成的圖像,以此加快信息提取速度,提高模型訓(xùn)練精度。本文將應(yīng)用自適應(yīng)閾值二值化算法,對(duì)圖像做分割處理。對(duì)于攝像頭獲得的彩色圖片做灰度化處理,再通過二值化處理灰度圖像,獲得一個(gè)閾值。如果閾值小于灰度,則將該區(qū)域設(shè)置為255像素;如果閾值大于灰度,則將該區(qū)域設(shè)置為0像素。該方法是針對(duì)一些擁有較大的光影變化圖像,利用其灰度直方圖獲得契合圖像信息的二值化閾值,通過兩個(gè)合適高斯,在兩者相交的灰度值,就是應(yīng)用的閾值。圖像二值化自適應(yīng)閾值通過最大類間方差法(OTSU)獲得。閾值把圖像劃分成前景、后景兩個(gè)部分,現(xiàn)設(shè)定閾值為T,像素對(duì)應(yīng)的灰度級(jí)設(shè)定為f(x,y),通過閾值分割得到的圖像g(x,y)則被設(shè)為
式中:T為分割閾值;1為前景;0為后景;兩者共同構(gòu)成圖像二值化。
在選擇最符合應(yīng)用條件的閾值時(shí),需保證目標(biāo)和背景擁有最大化差別,可使用OTSU進(jìn)行推導(dǎo)。
圖像總平均灰度U的表達(dá)式為
前景與后景的方差S的表達(dá)式為
式中:W0為前景點(diǎn)數(shù)在圖像中的占比;U0為前景平均灰度;W1為后景點(diǎn)數(shù)在圖像中的占比;U1為后景平均灰度。
只有在S最大時(shí),才能讓前景與后景擁有最大差距,獲得的灰度即為最佳閾值。
2.2.2 圖像平滑處理
作為計(jì)算機(jī)視覺實(shí)現(xiàn)相對(duì)簡(jiǎn)單、應(yīng)用頻率高的圖像平滑處理,其主要負(fù)責(zé)降低圖像噪點(diǎn),控制分辨率。圖像如果沒有經(jīng)過處理,會(huì)攜帶例如噪音等高頻信息,直接做卷積運(yùn)算會(huì)造成運(yùn)算成本額外支出。因此,需要通過濾波器去除噪音,將圖像做模糊處理。本文將應(yīng)用均值平滑濾波的圖像做平滑處理。作為一種線性濾波算法,均值濾波是向目標(biāo)像素值提供濾波模板,這個(gè)模板擁有目標(biāo)像素附近m×n個(gè)臨近像素,即將目標(biāo)像素預(yù)先取出,以目標(biāo)像素附近的像素平均值描述目標(biāo)像素值。m×n構(gòu)成的矩陣被稱作核,利用核對(duì)像素點(diǎn)進(jìn)行處理,在去噪處理后,即可獲得結(jié)果圖像。均值濾波處理公式為
5×5矩陣即為模糊內(nèi)核,本文將采用blur()方法對(duì)圖像做平滑處理。
因?yàn)橛?jì)算機(jī)是以像素值方式識(shí)別圖片,并不是以人類視覺分辨事物、類別,因此需要以圖像分類方式對(duì)圖片做區(qū)分。本文將通過卷積神經(jīng)網(wǎng)絡(luò)圖像分類算法進(jìn)行圖像分類。使用主成分分析(Principal Components Analysis,PCA)技術(shù),對(duì)圖像特征和需要分類處理的圖像特征碼做提取操作,以特征碼獲得輸入項(xiàng),圖像標(biāo)簽當(dāng)成輸出項(xiàng)使用,并將兩項(xiàng)送入神經(jīng)網(wǎng)絡(luò)中做訓(xùn)練操作,讓神經(jīng)網(wǎng)絡(luò)對(duì)各個(gè)類別圖像特征進(jìn)行學(xué)習(xí),并在最后把待分類特征碼輸入,測(cè)試神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)效果,利用神經(jīng)網(wǎng)絡(luò)輸出項(xiàng)分析圖像的類別。
計(jì)算機(jī)是以顏色輪廓區(qū)分圖像,由三原色構(gòu)成的顏色可以利用調(diào)色方式獲得各類圖像顏色。在圖像識(shí)別中,本文應(yīng)用RGB(Red,Green,Blue)通道對(duì)圖像做識(shí)別操作。OpenCV最常見的圖像通道有單通道與三通道。使用灰度描述色彩的黑白圖像,即為單通道。比如黑色像素值為0,白色像素值為255,因此灰度范圍處于0~255范圍內(nèi)。彩色圖像需要使用RGB通道進(jìn)行描述,即為三通道,比如白色是(255,255,255),黑色是(0,0,0)。為讓本文內(nèi)容更具有應(yīng)用價(jià)值,將應(yīng)用三通道進(jìn)行圖像識(shí)別。
3.1.1 樣本采集
由病患在系統(tǒng)界面的識(shí)別方框中做出手勢(shì),通過攝像頭進(jìn)行識(shí)別,并將拍攝內(nèi)容保存于文件夾中,通過文件夾命名標(biāo)記手勢(shì)。本文在查閱大量手部疾病醫(yī)療檔案后,現(xiàn)定義幾種手勢(shì),分別為等待動(dòng)作的懸垂、鍛煉兩個(gè)手指的二指捏、運(yùn)動(dòng)手腕的擊打、四指聯(lián)動(dòng)的柱狀抓握、單個(gè)手指獲得的勾拉、手指與手腕聯(lián)動(dòng)的側(cè)捏,由此構(gòu)建康復(fù)手勢(shì)數(shù)據(jù)庫(kù)。使用cv2.VideoCapture(0)調(diào)用PC端攝像頭,對(duì)于病患的手勢(shì)進(jìn)行采集。為了讓系統(tǒng)更加具有適用性,服務(wù)更多病患,選擇10歲及以下、11歲到50歲、50歲以上3個(gè)年齡段的人群,拍攝500張手勢(shì)圖,圖片規(guī)格設(shè)定為306×306。以正午陽(yáng)光作為光源,在室內(nèi)進(jìn)行正常拍攝收集。并且采集手勢(shì)保持男女比例平衡,擴(kuò)大系統(tǒng)適用性。
3.1.2 圖片預(yù)處理
為讓手勢(shì)訓(xùn)練期間的過擬合與處理圖片計(jì)算量得到有效控制,要對(duì)圖片做預(yù)處理。使用cv2.Imread()加載圖片,并通過Numpy array()歸一化處理圖片,使模型獲得更快的收斂速度,有效提高精度,再通過LabelBinarizer()對(duì)圖片做二值化處理,把原本攝像頭采集的彩色圖像轉(zhuǎn)化為黑白圖像,此時(shí)圖像被稱為二值化灰度圖像。利用blur()實(shí)現(xiàn)平滑處理二值化灰度圖像,有效控制圖像攜帶噪聲。通過pickle dump(lb,f)把圖像的標(biāo)簽數(shù)據(jù)更改成dat文件,便于后續(xù)神經(jīng)網(wǎng)絡(luò)訓(xùn)練與模型測(cè)試。
3.1.3 神經(jīng)網(wǎng)絡(luò)訓(xùn)練
對(duì)于本文設(shè)計(jì)的手部康復(fù)系統(tǒng),在神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)中涉及5個(gè)擁有相同卷積核規(guī)格的卷積層,并使用全零填充模式,應(yīng)用Relu激活函數(shù);3個(gè)規(guī)格為2×2、步長(zhǎng)為2的池化層,要求池化操作最大化;以及2個(gè)全連接層。在設(shè)置全連接層前,本文設(shè)計(jì)的系統(tǒng)還使用Dropout模式,將50%的神經(jīng)元參數(shù)進(jìn)行隨機(jī)丟棄,通過將這些參數(shù)在現(xiàn)在的神經(jīng)網(wǎng)絡(luò)訓(xùn)練中排除,實(shí)現(xiàn)預(yù)防過擬合目標(biāo)。最后,使用Softmax函數(shù)于輸出層,實(shí)現(xiàn)分類輸出訓(xùn)練結(jié)果。
3.1.4 模型測(cè)試
確保模型使用的精度,要對(duì)模型做安全測(cè)試。先通過pickle load()對(duì)標(biāo)簽數(shù)據(jù)進(jìn)行加載,同時(shí)load_model()調(diào)動(dòng)神經(jīng)網(wǎng)絡(luò)運(yùn)行,并通過inverse_transform()把已經(jīng)標(biāo)準(zhǔn)化處理的數(shù)據(jù)轉(zhuǎn)變成原始數(shù)據(jù),通過調(diào)用cv2.VideoCapture(0),將PC端攝像頭打開,并于界面區(qū)域作出存儲(chǔ)在數(shù)據(jù)庫(kù)中的病患手勢(shì),利用cv2.putText()把手勢(shì)類型投影在屏幕上,利用識(shí)別區(qū)域做出手勢(shì),對(duì)屏幕顯示類型進(jìn)行對(duì)比,判斷模型是否擁有良好的準(zhǔn)確度。模型測(cè)試要進(jìn)行重復(fù)多次,直到模型測(cè)試對(duì)于手勢(shì)判斷擁有較高的準(zhǔn)確度,并且模型測(cè)試結(jié)果逐漸趨于穩(wěn)定時(shí),才能將該模型應(yīng)用在后續(xù)的手部康復(fù)訓(xùn)練中。
除此之外,本系統(tǒng)還提供康復(fù)歷史查詢功能,病患可根據(jù)需求查詢以往手部康復(fù)訓(xùn)練情況。
患有手部疾病的病患,在接觸本文設(shè)計(jì)的康復(fù)系統(tǒng)時(shí)需要確認(rèn)是否是首次使用,如果是,則要由病患根據(jù)康復(fù)訓(xùn)練要求,將各類手勢(shì)輸入到系統(tǒng)中;如果不是,則跳過該環(huán)節(jié)。康復(fù)系統(tǒng)會(huì)將病患輸入的各種手勢(shì)作為一組,一個(gè)療程擁有多組手勢(shì)訓(xùn)練,引導(dǎo)病患做康復(fù)訓(xùn)練。在訓(xùn)練期間,病患要以設(shè)備屏幕顯示的文字信息為準(zhǔn),于界面區(qū)域做出屏幕要求的手勢(shì),做出本療程的全部手勢(shì)后,本療程結(jié)束。在手部訓(xùn)練結(jié)束后,會(huì)將其作為數(shù)據(jù)送入數(shù)據(jù)庫(kù)儲(chǔ)存,病患可以通過歷史查詢選項(xiàng),查看數(shù)據(jù)庫(kù)對(duì)過去療程中的康復(fù)訓(xùn)練反饋信息,由系統(tǒng)分析病患在過去療程中手部訓(xùn)練完成度,并對(duì)訓(xùn)練計(jì)劃展開科學(xué)調(diào)整。在初次接觸康復(fù)訓(xùn)練系統(tǒng)時(shí),病患可以將療程的組數(shù)設(shè)置為1~3組,用于適應(yīng)性訓(xùn)練。等到病患已經(jīng)適應(yīng)當(dāng)前康復(fù)訓(xùn)練強(qiáng)度后,則通過增加單個(gè)療程訓(xùn)練組數(shù)的方式,提升訓(xùn)練難度。這種循序漸進(jìn)的康復(fù)訓(xùn)練模式,可以讓病患逐漸提升康復(fù)訓(xùn)練信心,也能利用這種難度引導(dǎo)方式,提升病患手部恢復(fù)質(zhì)量。
近些年,我國(guó)人工智能領(lǐng)域積極和其他領(lǐng)域進(jìn)行融合發(fā)展,手勢(shì)識(shí)別康復(fù)就是人工智能與醫(yī)療結(jié)合的最新產(chǎn)物。未來若想讓手勢(shì)識(shí)別康復(fù)系統(tǒng)得到更廣泛應(yīng)用,降低生產(chǎn)成本,提升康復(fù)訓(xùn)練效果,就需要積極和手部醫(yī)療相關(guān)醫(yī)院展開深度合作,將更多醫(yī)護(hù)知識(shí)應(yīng)用在系統(tǒng)中,以此實(shí)現(xiàn)優(yōu)化訓(xùn)練類型、過程設(shè)計(jì)。