李昌鋒,林蔚,張星,郭生挺
福建生物工程職業(yè)技術(shù)學(xué)院 (福建福州 350007)
近年來,我國兒童及青少年的近視率居高不下,且呈不斷上升的趨勢[1]。視力不良會(huì)影響學(xué)生群體的在校表現(xiàn),甚至職業(yè)選擇,更嚴(yán)重的是高度近視可誘發(fā)青光眼、白內(nèi)障等多種并發(fā)癥[2]。對(duì)兒童及青少年定期進(jìn)行視力檢測,可盡早發(fā)現(xiàn)視力變化,從而盡量防止近視的發(fā)生或發(fā)展?;诖?,本研究提出了一種自助式視力檢測儀的設(shè)計(jì)與實(shí)現(xiàn)方案。
標(biāo)準(zhǔn)對(duì)數(shù)視力表檢測法最為常見,檢測時(shí),視力受檢者在醫(yī)師的引領(lǐng)下,根據(jù)指示桿的指示依次分辨視力表上的視標(biāo),測試全程均需醫(yī)師進(jìn)行控制。受檢查條件、方式、速度等因素的影響,檢測結(jié)果可能存在偏差;同時(shí),檢測完全依賴于醫(yī)師的水平和狀態(tài),需消耗人工成本,加之醫(yī)師長時(shí)間操作易產(chǎn)生疲勞,可能造成檢測結(jié)果有誤。
電子視力檢測設(shè)備一般由單片機(jī)、電子顯示屏、紅外遙控器等硬件組成[3]。其利用電子顯示屏代替紙質(zhì)版的視力檢測表,并由單片機(jī)主機(jī)隨機(jī)控制顯示“E”型視標(biāo),視力受檢者通過紅外遙控器作答“E”字的方向,單片機(jī)主機(jī)根據(jù)回答情況調(diào)整視標(biāo)大小,從而確定視力受檢者能夠看清楚的最小視標(biāo),達(dá)到檢查視力的目的; 但該設(shè)備無法實(shí)現(xiàn)共享式檢測,且缺乏人機(jī)交互,基本還需在醫(yī)師的指導(dǎo)下完成。
傳統(tǒng)的視力檢測方法需在醫(yī)師輔助下完成,無法實(shí)現(xiàn)單人自助式及區(qū)域共享式檢測,而且缺乏人機(jī)交互體驗(yàn)。針對(duì)這些問題,本研究設(shè)計(jì)了一種基于幀差法手勢移動(dòng)跟蹤技術(shù)的自助式視力檢測儀,利用高清攝像頭采集人體的動(dòng)態(tài)手勢信息,代替?zhèn)鹘y(tǒng)遙控器或人工輔助的檢測方式,實(shí)現(xiàn)視力檢測的自助式操作,提高檢測效率[4]。
該自助式視力檢測儀的硬件模塊包括Windows 系統(tǒng)主機(jī)、觸控液晶顯示屏、高清攝像頭、語音播報(bào)器、超聲波傳感器、GPS 定位裝置、防盜報(bào)警裝置、4G 通信模塊等(圖1)。主機(jī)是控制整個(gè)視力檢測系統(tǒng)的核心,負(fù)責(zé)控制視力檢測的流程,包括開啟和關(guān)閉攝像頭控制圖像信息的采集,人機(jī)交互語音信息的播報(bào),動(dòng)態(tài)手勢信息的采集、處理和判斷,數(shù)據(jù)和網(wǎng)絡(luò)的通信傳輸,報(bào)警生成及位置定位。觸控液晶顯示屏的尺寸為22寸,屏幕分辨力為1 920×1 080,顯示亮度為500 cd/m2,屏幕為電容式觸控,靈敏度高。高清攝像頭用于捕捉動(dòng)態(tài)手勢移動(dòng)信息,像素為500萬,分辨力為1 920×1 080。語音播報(bào)器主要用于語音提示,提高人機(jī)交互的便捷性。超聲波傳感器主要用于測量人和屏幕之間的距離,以提高視力檢測的準(zhǔn)確性。GPS 定位裝置內(nèi)置于主機(jī)的控制板中,用于實(shí)現(xiàn)設(shè)備的定位。防盜報(bào)警裝置用于故障報(bào)警和防盜、防破壞報(bào)警。4G 通信模塊用于網(wǎng)絡(luò)的連接,實(shí)現(xiàn)遠(yuǎn)程數(shù)據(jù)傳送和存儲(chǔ)。
圖1 硬件設(shè)計(jì)
近年來,計(jì)算機(jī)視覺技術(shù)發(fā)展迅速,并被廣泛用于各個(gè)行業(yè)。利用計(jì)算機(jī)視覺處理技術(shù)代替?zhèn)鹘y(tǒng)視力檢測中依靠人工識(shí)別手勢的模式,可節(jié)省醫(yī)護(hù)人力資源,實(shí)現(xiàn)視力的自助式和共享式檢測。
軟件設(shè)計(jì)算法的核心為基于幀差法的動(dòng)態(tài)手勢跟蹤技術(shù)[5-6](圖2)。當(dāng)視力受檢者看到視標(biāo)后做出手勢移動(dòng),軟件系統(tǒng)采用幀差法進(jìn)行視力檢測場景中的動(dòng)態(tài)手勢移動(dòng)識(shí)別,因檢測過程中的手部目標(biāo)在移動(dòng),目標(biāo)影像在不同圖像幀中的位置便不同,對(duì)時(shí)間上連續(xù)的兩幀圖像進(jìn)行差分運(yùn)算,不同幀對(duì)應(yīng)的像素點(diǎn)相減,即可判斷灰度差的絕對(duì)值,當(dāng)絕對(duì)值超過一定閾值時(shí),即可判斷為運(yùn)動(dòng)目標(biāo),實(shí)現(xiàn)目標(biāo)的移動(dòng)軌跡跟蹤,進(jìn)而識(shí)別受檢者的手勢移動(dòng)方向。算法定義采集圖像序列中連續(xù)兩幀圖像分別為Ik(x, y)和Ik+1(x, y),Dk(x, y)為差分后的結(jié)果,則運(yùn)動(dòng)目標(biāo)Mk(x, y)可表示為:
與靜態(tài)手勢識(shí)別方法比較,基于幀差法的手勢移動(dòng)偵測用于視力檢測中的動(dòng)態(tài)手勢跟蹤,可消除由光線變化、人臉和手部圖像重合等帶來的檢測誤差,在一定程度上提高手勢識(shí)別的準(zhǔn)確性,且該算法計(jì)算量小,能夠快速檢測出場景中目標(biāo)的運(yùn)動(dòng)輪廓軌跡,加快視力檢測速度,滿足實(shí)時(shí)檢測的更高要求。
圖2 基于幀差法的手勢移動(dòng)方向識(shí)別算法設(shè)計(jì)流程
本視力檢測儀的硬件開發(fā)平臺(tái)是建立在Windows主機(jī)系統(tǒng)上,采用Python3.7語言進(jìn)行軟件開發(fā),IDE開發(fā)環(huán)境為Pycharm,集成OpenCV模塊,采用自主設(shè)計(jì)的動(dòng)態(tài)手勢識(shí)別算法,實(shí)現(xiàn)智能自助式視力檢測。視力檢測某一過程中的軟件界面見圖3。本軟件設(shè)置的視力檢測流程如下:開始視力檢測后,液晶顯示屏上隨機(jī)跳出某一級(jí)別視力水平的一排“E”字型視標(biāo),每次出現(xiàn)在顯示屏上的視標(biāo)排序均是隨機(jī)的,可防止出現(xiàn)記憶視標(biāo)的情況;視標(biāo)下面的箭頭會(huì)隨機(jī)指向一個(gè)視標(biāo),視力受檢者根據(jù)箭頭指向的“E”字型視標(biāo)方向,做出相應(yīng)的手勢移動(dòng)方向,主機(jī)會(huì)開啟攝像頭采集圖像序列,根據(jù)軟件設(shè)計(jì)的算法判斷手勢方向,從而對(duì)單次視力檢測做出正確或錯(cuò)誤的判斷;重復(fù)上述檢測步驟,直至檢測出視力受檢者能夠看清楚的最小視標(biāo)。此外,本軟件設(shè)定了一套完整的模擬人工視力檢測的流程,全程均有語音提示,用戶根據(jù)語音提示操作即可完成整個(gè)視力檢測流程。
測試環(huán)境:所有的測試均選擇在正常室內(nèi),光線明亮的條件下進(jìn)行。
圖3 視力檢測過程中的軟件界面
測試方案1:從學(xué)校學(xué)生中隨機(jī)抽取250名學(xué)生做測試,未向其說明手勢移動(dòng)規(guī)則,每名學(xué)生根據(jù)測試軟件要求選擇左手和右手分別采集20組手勢,即共計(jì)采集10 000組手勢,測試后,通過統(tǒng)計(jì)得到手勢識(shí)別的正確率為82.8%。由于測試前未向?qū)W生說明手勢移動(dòng)規(guī)則,每名學(xué)生的手勢動(dòng)作幅度和速度快慢存在差異,所以會(huì)導(dǎo)致部分手勢識(shí)別錯(cuò)誤。
測試方案2:測試前,向參加測試方案1的250名同學(xué)說明手勢移動(dòng)規(guī)則,在檢測過程中做手勢動(dòng)作的手部一直保持舉起狀態(tài),并放置在臉部的兩側(cè)正前方,不能遮擋住人臉;當(dāng)液晶顯示屏上出現(xiàn)視標(biāo)后,在視力受檢者還未看清楚視標(biāo)時(shí),盡量保持身體和手勢的靜止;當(dāng)看清楚視標(biāo)開始做手勢的上下左右移動(dòng)時(shí),盡量保持手勢移動(dòng)路線橫平豎直、移動(dòng)跨度大,并盡可能保持手勢勻速滑動(dòng);然后再按照與測試方案1同樣的方法采集10 000組手勢,測試后,通過統(tǒng)計(jì)得到手勢識(shí)別的正確率為95.8%,與測試方案1比較,正確率明顯提高。
分別使用本研究中的視力檢測儀(按照“3.1”中測試方案2的方法)及標(biāo)準(zhǔn)對(duì)數(shù)視力檢測法,采集“3.1”中250名同學(xué)的左、右眼視力數(shù)據(jù),采用Pearson相關(guān)性分析,比較本視力檢測儀的檢測結(jié)果和標(biāo)準(zhǔn)對(duì)數(shù)視力表檢測結(jié)果是否具有一致性[7]。通過計(jì)算,本次得到兩種方法測試數(shù)據(jù)的Pearson相關(guān)系數(shù)r=0.942,表明該視力檢測儀的測量結(jié)果和標(biāo)準(zhǔn)對(duì)數(shù)視力表的測量結(jié)果具有較高的一致性。
該視力檢測儀設(shè)計(jì)的關(guān)鍵在于采用基于攝像頭采集的手勢識(shí)別技術(shù)代替了傳統(tǒng)的人工檢測,因此手勢識(shí)別算法對(duì)于檢測結(jié)果的準(zhǔn)確性影響較大。從測試結(jié)果可以看出,視力檢測儀需根據(jù)自主研發(fā)的手勢識(shí)別算法配合相應(yīng)的手勢規(guī)則進(jìn)行檢測,只有在此手勢規(guī)則下完成視力檢測才具備較高的準(zhǔn)確性,所以,后續(xù)還需進(jìn)一步研究手勢識(shí)別算法,以降低因個(gè)人手勢習(xí)慣差異而導(dǎo)致的手勢識(shí)別錯(cuò)誤。