喬一涵
本文創(chuàng)新設(shè)計(jì)實(shí)現(xiàn)了基于安卓系統(tǒng)和視覺智能分析的自主視力檢測系統(tǒng),讓使用者自己可以獨(dú)立完成視力檢測,不再需要他人協(xié)助。視力測試過程中的指向方式遵循現(xiàn)行的視力檢測方法,采用標(biāo)準(zhǔn)的E字母視力表。該系統(tǒng)具有成本低、易攜帶、方便操作、檢測準(zhǔn)確性高、可記錄歷史測試曲線等特點(diǎn)。其功能實(shí)現(xiàn)的核心技術(shù)為視覺智能,主要包括人臉檢測、手勢檢測和標(biāo)記物檢測。
系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
系統(tǒng)功能模塊
基于圖像分析的智能視力檢測系統(tǒng),主要包括以下5個(gè)模塊。
圖像采集模塊:通過安卓設(shè)備實(shí)現(xiàn)實(shí)時(shí)圖像的采集。
人臉檢測模塊:通過在采集到的圖像中進(jìn)行人臉檢測判斷是否有使用者,并根據(jù)人臉的位置確定使用者的站位是否合適,同時(shí)標(biāo)定手勢檢測的有效范圍。
手勢識(shí)別模塊:在標(biāo)定的手勢范圍內(nèi),通過膚色檢測得到手的輪廓并分析得到使用者當(dāng)前的指向。
視力表顯示模塊:該模塊與手勢識(shí)別模塊同時(shí)工作,在判斷到有使用者后,根據(jù)視力檢測算法,在安卓設(shè)備屏幕上顯示相應(yīng)的E對(duì)使用者進(jìn)行測試,同時(shí)根據(jù)手勢識(shí)別模塊的結(jié)果更新顯示的內(nèi)容。
結(jié)果顯示模塊:接收視力表顯示模塊的期望指向和手勢識(shí)別模塊輸出的實(shí)際指向,對(duì)比得出測試結(jié)果,對(duì)使用者每一次的指向結(jié)果和最終的測試結(jié)果進(jìn)行屏幕顯示。
系統(tǒng)關(guān)鍵技術(shù)
人臉檢測方法。系統(tǒng)中使用Haar特征與AdaBoost分類器的組合實(shí)現(xiàn)人臉的初步檢測。Haar特征是一種經(jīng)典的常用于人臉檢測的圖像特征。提取出Haar特征向量后使用AdaBoost分類器就可以進(jìn)行分類,判斷一張圖是否為人臉。初步得到人臉檢測結(jié)果后,再根據(jù)檢測結(jié)果框的大小及長寬比排除干擾結(jié)果,最后計(jì)算檢測結(jié)果框中膚色區(qū)域的比例,到達(dá)一定的比例值則認(rèn)為檢測到一張人臉,進(jìn)而可以進(jìn)行之后的流程。
人手指向判斷算法。首先根據(jù)人臉位置,從采集到的圖片中將標(biāo)定的手勢檢測識(shí)別范圍切割出來。之后通過膚色檢測的方法獲得膚色塊的輪廓,遍歷找出最大輪廓,即為疑似手勢輪廓。通過計(jì)算疑似輪廓的大小及長寬比判斷是否為干擾。
判斷為手勢輪廓而不是干擾后,遍歷手勢輪廓上的所有點(diǎn),輪廓上最突出的點(diǎn),即對(duì)應(yīng)使用者指向某一方向時(shí)的指尖點(diǎn)。將指尖點(diǎn)逆時(shí)針方向的一小段輪廓擬合成直線,計(jì)算直線與橫軸的夾角,夾角小于分界角度(例如60°)則認(rèn)為使用者指向橫向(左右方向),否則認(rèn)為指向豎向(上下方向)。
判斷為橫向后,檢查輪廓重心的橫向相對(duì)位置,其相對(duì)位置與指向相反,即重心在右半部分說明指向左,反向同理。判斷為豎向后,檢查輪廓重心的豎向相對(duì)位置,其相對(duì)位置也與指向相反,即重心在下半部分說明指向上,反向同理。
標(biāo)記物指向判斷算法。首先通過顏色識(shí)別標(biāo)記物的輪廓。得到標(biāo)記物輪廓后,通過長寬比我們就可以判斷是指向橫向還是豎向。之后再進(jìn)行膚色識(shí)別,目標(biāo)是識(shí)別持有標(biāo)記物的手,通過手與標(biāo)記物的相對(duì)位置就可以確定指向。例如根據(jù)長寬比判斷為豎向后,若手在標(biāo)記物下方則明顯是指向上。
安卓系統(tǒng)的應(yīng)用開發(fā)。本系統(tǒng)是基于安卓平臺(tái)使用Java開發(fā)予以實(shí)現(xiàn)的。首先安裝Java環(huán)境及JDK(Java SE Development Kit)開發(fā)工具;之后安裝Eclipse作為Java開發(fā)的編程環(huán)境。再安裝Eclipse的Android SDK與ADT(Android Development Tools)插件,使其能夠支持安卓平臺(tái)程序。最后準(zhǔn)備OpenCv的Android SDK庫用于實(shí)現(xiàn)圖像相關(guān)的操作,至此完成系統(tǒng)主要程序部分開發(fā)的準(zhǔn)備工作。
設(shè)計(jì)視力檢測標(biāo)識(shí)更新
在實(shí)現(xiàn)過程中參考現(xiàn)行的視力檢測設(shè)計(jì)了視力檢測標(biāo)識(shí)更新方法,主要步驟如下。
標(biāo)準(zhǔn)E視力表共14行,第1次調(diào)用顯示的E大小對(duì)應(yīng)第8行,方向由1個(gè)1到4的隨機(jī)數(shù)決定(對(duì)應(yīng)上下左右),此后每次更新顯示,方向均由新的隨機(jī)數(shù)決定,之后不再說明方向,僅用行數(shù)說明大小。
循環(huán)地根據(jù)圖像處理的結(jié)果判斷指向是否正確。
連續(xù)2次正確則測試行數(shù)加1變?yōu)?,進(jìn)入下降模式;連續(xù)2次錯(cuò)誤則測試行數(shù)減1變?yōu)?,進(jìn)入上升模式,否則繼續(xù)顯示當(dāng)前行數(shù)8對(duì)應(yīng)大小的E。
下降模式中,連續(xù)2次正確,若已經(jīng)到達(dá)第14行,則測試結(jié)束返回14,否則測試行數(shù)加1繼續(xù)下降,連續(xù)錯(cuò)誤2次測試結(jié)束,返回當(dāng)前行數(shù)減1,否則繼續(xù)顯示當(dāng)前行數(shù)大小的E。
上升模式中,連續(xù)2次錯(cuò)誤,若已經(jīng)到達(dá)第1行,則測試結(jié)束返回1,否則測試行數(shù)減1繼續(xù)上升,連續(xù)正確2次測試結(jié)束,返回當(dāng)前行數(shù),否則繼續(xù)顯示當(dāng)前行數(shù)大小的E。
根據(jù)返回的行數(shù)就得到了對(duì)應(yīng)的視力測試結(jié)果。
創(chuàng)新點(diǎn)
本項(xiàng)目基于安卓平臺(tái)進(jìn)行相應(yīng)的軟件開發(fā),任何具備安裝安卓系統(tǒng)的設(shè)備都可以安裝,實(shí)現(xiàn)起來較為簡單方便,易于普及。
智能化操作平臺(tái)。可以自動(dòng)檢測被測試者;可以自動(dòng)識(shí)別手勢和標(biāo)記物;可以及時(shí)聲音播報(bào)視力檢測結(jié)果。
使用者可以隨時(shí)隨地獨(dú)立檢測,即時(shí)顯示測試結(jié)果。
具有歷史檢測結(jié)果記錄檔案的功能。
申請了一項(xiàng)發(fā)明專利——“基于圖像分析的智能視力檢測儀(201611140016.8)”。
未來研究方向
通過云計(jì)算平臺(tái)形成大數(shù)據(jù),可以對(duì)大量測試者進(jìn)行數(shù)據(jù)分析,對(duì)測試者視力進(jìn)行預(yù)測。對(duì)于測試者群體尤其是青少年群體,可以通過歷史記錄曲線、云計(jì)算,對(duì)青少年整體視力情況進(jìn)行評(píng)價(jià)分析,督導(dǎo)青少年群體的視力改善。同時(shí),可以與專業(yè)的醫(yī)療機(jī)構(gòu)合作,長期跟蹤,提醒測試者改善視力,提出診治方法。對(duì)于個(gè)體測試者可以即時(shí)提供專業(yè)視力保護(hù)、診治的服務(wù),加強(qiáng)測試者與專業(yè)機(jī)構(gòu)互動(dòng),完善用眼問題的預(yù)防和介入。
該項(xiàng)目獲得第32屆全國青少年科技創(chuàng)新大賽創(chuàng)新成果競賽項(xiàng)目中學(xué)組工程學(xué)一等獎(jiǎng)
專家評(píng)語
本項(xiàng)目利用視力模型、距離檢測模型、手機(jī)的人臉檢測和手勢識(shí)別技術(shù),實(shí)現(xiàn)視力的自我快速測量。建議結(jié)合云計(jì)算、大數(shù)據(jù)等方法,擴(kuò)展提升功能。