李昌鋒,林蔚,張星,郭生挺
福建生物工程職業(yè)技術(shù)學(xué)院 (福建福州 350007)
近年來,我國兒童及青少年的近視率居高不下,且呈不斷上升的趨勢[1]。視力不良會影響學(xué)生群體的在校表現(xiàn),甚至職業(yè)選擇,更嚴(yán)重的是高度近視可誘發(fā)青光眼、白內(nèi)障等多種并發(fā)癥[2]。對兒童及青少年定期進(jìn)行視力檢測,可盡早發(fā)現(xiàn)視力變化,從而盡量防止近視的發(fā)生或發(fā)展。基于此,本研究提出了一種自助式視力檢測儀的設(shè)計與實現(xiàn)方案。
標(biāo)準(zhǔn)對數(shù)視力表檢測法最為常見,檢測時,視力受檢者在醫(yī)師的引領(lǐng)下,根據(jù)指示桿的指示依次分辨視力表上的視標(biāo),測試全程均需醫(yī)師進(jìn)行控制。受檢查條件、方式、速度等因素的影響,檢測結(jié)果可能存在偏差;同時,檢測完全依賴于醫(yī)師的水平和狀態(tài),需消耗人工成本,加之醫(yī)師長時間操作易產(chǎn)生疲勞,可能造成檢測結(jié)果有誤。
電子視力檢測設(shè)備一般由單片機、電子顯示屏、紅外遙控器等硬件組成[3]。其利用電子顯示屏代替紙質(zhì)版的視力檢測表,并由單片機主機隨機控制顯示“E”型視標(biāo),視力受檢者通過紅外遙控器作答“E”字的方向,單片機主機根據(jù)回答情況調(diào)整視標(biāo)大小,從而確定視力受檢者能夠看清楚的最小視標(biāo),達(dá)到檢查視力的目的; 但該設(shè)備無法實現(xiàn)共享式檢測,且缺乏人機交互,基本還需在醫(yī)師的指導(dǎo)下完成。
傳統(tǒng)的視力檢測方法需在醫(yī)師輔助下完成,無法實現(xiàn)單人自助式及區(qū)域共享式檢測,而且缺乏人機交互體驗。針對這些問題,本研究設(shè)計了一種基于幀差法手勢移動跟蹤技術(shù)的自助式視力檢測儀,利用高清攝像頭采集人體的動態(tài)手勢信息,代替?zhèn)鹘y(tǒng)遙控器或人工輔助的檢測方式,實現(xiàn)視力檢測的自助式操作,提高檢測效率[4]。
該自助式視力檢測儀的硬件模塊包括Windows 系統(tǒng)主機、觸控液晶顯示屏、高清攝像頭、語音播報器、超聲波傳感器、GPS 定位裝置、防盜報警裝置、4G 通信模塊等(圖1)。主機是控制整個視力檢測系統(tǒng)的核心,負(fù)責(zé)控制視力檢測的流程,包括開啟和關(guān)閉攝像頭控制圖像信息的采集,人機交互語音信息的播報,動態(tài)手勢信息的采集、處理和判斷,數(shù)據(jù)和網(wǎng)絡(luò)的通信傳輸,報警生成及位置定位。觸控液晶顯示屏的尺寸為22寸,屏幕分辨力為1 920×1 080,顯示亮度為500 cd/m2,屏幕為電容式觸控,靈敏度高。高清攝像頭用于捕捉動態(tài)手勢移動信息,像素為500萬,分辨力為1 920×1 080。語音播報器主要用于語音提示,提高人機交互的便捷性。超聲波傳感器主要用于測量人和屏幕之間的距離,以提高視力檢測的準(zhǔn)確性。GPS 定位裝置內(nèi)置于主機的控制板中,用于實現(xiàn)設(shè)備的定位。防盜報警裝置用于故障報警和防盜、防破壞報警。4G 通信模塊用于網(wǎng)絡(luò)的連接,實現(xiàn)遠(yuǎn)程數(shù)據(jù)傳送和存儲。

圖1 硬件設(shè)計
近年來,計算機視覺技術(shù)發(fā)展迅速,并被廣泛用于各個行業(yè)。利用計算機視覺處理技術(shù)代替?zhèn)鹘y(tǒng)視力檢測中依靠人工識別手勢的模式,可節(jié)省醫(yī)護(hù)人力資源,實現(xiàn)視力的自助式和共享式檢測。
軟件設(shè)計算法的核心為基于幀差法的動態(tài)手勢跟蹤技術(shù)[5-6](圖2)。當(dāng)視力受檢者看到視標(biāo)后做出手勢移動,軟件系統(tǒng)采用幀差法進(jìn)行視力檢測場景中的動態(tài)手勢移動識別,因檢測過程中的手部目標(biāo)在移動,目標(biāo)影像在不同圖像幀中的位置便不同,對時間上連續(xù)的兩幀圖像進(jìn)行差分運算,不同幀對應(yīng)的像素點相減,即可判斷灰度差的絕對值,當(dāng)絕對值超過一定閾值時,即可判斷為運動目標(biāo),實現(xiàn)目標(biāo)的移動軌跡跟蹤,進(jìn)而識別受檢者的手勢移動方向。算法定義采集圖像序列中連續(xù)兩幀圖像分別為Ik(x, y)和Ik+1(x, y),Dk(x, y)為差分后的結(jié)果,則運動目標(biāo)Mk(x, y)可表示為:

與靜態(tài)手勢識別方法比較,基于幀差法的手勢移動偵測用于視力檢測中的動態(tài)手勢跟蹤,可消除由光線變化、人臉和手部圖像重合等帶來的檢測誤差,在一定程度上提高手勢識別的準(zhǔn)確性,且該算法計算量小,能夠快速檢測出場景中目標(biāo)的運動輪廓軌跡,加快視力檢測速度,滿足實時檢測的更高要求。

圖2 基于幀差法的手勢移動方向識別算法設(shè)計流程
本視力檢測儀的硬件開發(fā)平臺是建立在Windows主機系統(tǒng)上,采用Python3.7語言進(jìn)行軟件開發(fā),IDE開發(fā)環(huán)境為Pycharm,集成OpenCV模塊,采用自主設(shè)計的動態(tài)手勢識別算法,實現(xiàn)智能自助式視力檢測。視力檢測某一過程中的軟件界面見圖3。本軟件設(shè)置的視力檢測流程如下:開始視力檢測后,液晶顯示屏上隨機跳出某一級別視力水平的一排“E”字型視標(biāo),每次出現(xiàn)在顯示屏上的視標(biāo)排序均是隨機的,可防止出現(xiàn)記憶視標(biāo)的情況;視標(biāo)下面的箭頭會隨機指向一個視標(biāo),視力受檢者根據(jù)箭頭指向的“E”字型視標(biāo)方向,做出相應(yīng)的手勢移動方向,主機會開啟攝像頭采集圖像序列,根據(jù)軟件設(shè)計的算法判斷手勢方向,從而對單次視力檢測做出正確或錯誤的判斷;重復(fù)上述檢測步驟,直至檢測出視力受檢者能夠看清楚的最小視標(biāo)。此外,本軟件設(shè)定了一套完整的模擬人工視力檢測的流程,全程均有語音提示,用戶根據(jù)語音提示操作即可完成整個視力檢測流程。
測試環(huán)境:所有的測試均選擇在正常室內(nèi),光線明亮的條件下進(jìn)行。

圖3 視力檢測過程中的軟件界面
測試方案1:從學(xué)校學(xué)生中隨機抽取250名學(xué)生做測試,未向其說明手勢移動規(guī)則,每名學(xué)生根據(jù)測試軟件要求選擇左手和右手分別采集20組手勢,即共計采集10 000組手勢,測試后,通過統(tǒng)計得到手勢識別的正確率為82.8%。由于測試前未向?qū)W生說明手勢移動規(guī)則,每名學(xué)生的手勢動作幅度和速度快慢存在差異,所以會導(dǎo)致部分手勢識別錯誤。
測試方案2:測試前,向參加測試方案1的250名同學(xué)說明手勢移動規(guī)則,在檢測過程中做手勢動作的手部一直保持舉起狀態(tài),并放置在臉部的兩側(cè)正前方,不能遮擋住人臉;當(dāng)液晶顯示屏上出現(xiàn)視標(biāo)后,在視力受檢者還未看清楚視標(biāo)時,盡量保持身體和手勢的靜止;當(dāng)看清楚視標(biāo)開始做手勢的上下左右移動時,盡量保持手勢移動路線橫平豎直、移動跨度大,并盡可能保持手勢勻速滑動;然后再按照與測試方案1同樣的方法采集10 000組手勢,測試后,通過統(tǒng)計得到手勢識別的正確率為95.8%,與測試方案1比較,正確率明顯提高。
分別使用本研究中的視力檢測儀(按照“3.1”中測試方案2的方法)及標(biāo)準(zhǔn)對數(shù)視力檢測法,采集“3.1”中250名同學(xué)的左、右眼視力數(shù)據(jù),采用Pearson相關(guān)性分析,比較本視力檢測儀的檢測結(jié)果和標(biāo)準(zhǔn)對數(shù)視力表檢測結(jié)果是否具有一致性[7]。通過計算,本次得到兩種方法測試數(shù)據(jù)的Pearson相關(guān)系數(shù)r=0.942,表明該視力檢測儀的測量結(jié)果和標(biāo)準(zhǔn)對數(shù)視力表的測量結(jié)果具有較高的一致性。
該視力檢測儀設(shè)計的關(guān)鍵在于采用基于攝像頭采集的手勢識別技術(shù)代替了傳統(tǒng)的人工檢測,因此手勢識別算法對于檢測結(jié)果的準(zhǔn)確性影響較大。從測試結(jié)果可以看出,視力檢測儀需根據(jù)自主研發(fā)的手勢識別算法配合相應(yīng)的手勢規(guī)則進(jìn)行檢測,只有在此手勢規(guī)則下完成視力檢測才具備較高的準(zhǔn)確性,所以,后續(xù)還需進(jìn)一步研究手勢識別算法,以降低因個人手勢習(xí)慣差異而導(dǎo)致的手勢識別錯誤。