李 雪,艾麗蓉,周曉京,張 凱
(1. 西北工業(yè)大學(xué) 計(jì)算機(jī)學(xué)院,陜西 西安 710072;2. 西安電子科技大學(xué) 計(jì)算機(jī)學(xué)院,陜西 西安 710071)
嬰幼兒視力檢查對(duì)嬰幼兒眼部疾病的早期發(fā)現(xiàn)和預(yù)防有著重要的作用,是提升兒童盲防治水平的關(guān)鍵.嬰幼兒具有較低的認(rèn)知能力、語言和肢體表達(dá)能力,他們的注意力不能長(zhǎng)時(shí)間地集中,醫(yī)生在進(jìn)行常規(guī)視力檢查時(shí)配合度很低.因此嬰幼兒視力檢查在臨床檢查中是一個(gè)難點(diǎn)問題.這種情況不僅僅存在于嬰幼兒視力檢查中,甚至對(duì)一些智障兒童也是如此,他們往往對(duì)上下左右的提示很不敏感.
Teller視力卡在1985年由文獻(xiàn)[1]設(shè)計(jì)完成,是使用強(qiáng)制優(yōu)先注視法,通過醫(yī)生觀察嬰幼兒對(duì)不同等級(jí)條柵的反應(yīng)來評(píng)估嬰幼兒視力水平.這種方法易于臨床操作,并且視力測(cè)評(píng)結(jié)果有很高的準(zhǔn)確性和可靠性,在國(guó)內(nèi)外的臨床中被廣泛使用.醫(yī)生評(píng)估小兒視力時(shí)對(duì)小兒的注視有很多不確定結(jié)果,并受到主觀的影響,所以Teller視力卡檢查過程需要被記錄下來,以便于多個(gè)醫(yī)生參與評(píng)估討論.
Teller視力卡檢查同步視頻系統(tǒng)[2]是一個(gè)記錄嬰幼兒視力檢查過程的系統(tǒng).該系統(tǒng)在被檢查者的前后放置了兩個(gè)攝像頭,實(shí)現(xiàn)了嬰幼兒畫面和醫(yī)生放置視力卡的畫面同步拍攝.在一個(gè)相對(duì)密閉的檢查環(huán)境里,醫(yī)生每次放置一個(gè)Teller視力卡,觀察被檢查者的注視情況,包括眼球運(yùn)動(dòng)、注視方向等.視力檢查同步視頻記錄了放置不同視力卡時(shí)嬰幼兒的注視反應(yīng),用來準(zhǔn)確地評(píng)估小兒的視力.醫(yī)生可以使用檢查視頻進(jìn)行視力評(píng)估和教學(xué)練習(xí).根據(jù)不同被檢查者的配合程度,熟練操作的醫(yī)生測(cè)每個(gè)小兒的視力需要 30~ 40 min,醫(yī)生評(píng)估每個(gè)患兒的視力水平要耗費(fèi)更多的時(shí)間,同時(shí)無法避免走神或經(jīng)驗(yàn)不足造成檢查結(jié)果的主觀誤差.
當(dāng)數(shù)字格式的醫(yī)療記錄基本完善后,醫(yī)療成像的成本將降低,計(jì)算機(jī)成為臨床診斷和治療中不可缺少的輔助手段[3].文獻(xiàn)[4]研究了基于卷積神經(jīng)網(wǎng)絡(luò)的糖尿病視網(wǎng)膜病變篩查,提出了具有4個(gè)卷積層的卷積神經(jīng)網(wǎng)絡(luò),根據(jù)是否存在糖尿病視網(wǎng)膜病變的異常對(duì)圖像進(jìn)行分類.文獻(xiàn)[5]對(duì)眼科圖像自動(dòng)診斷圖像分類方法進(jìn)行了對(duì)比分析,比較了眼部圖像的復(fù)雜性,對(duì)比了診斷眼科疾病的多種圖像分類算法的效果.文獻(xiàn)[6]選擇了 52 690 個(gè)正常黃斑圖像和 48 312 個(gè)黃斑變性圖像,訓(xùn)練深層神經(jīng)網(wǎng)絡(luò)將圖像分類為正?;螯S斑變性,分類結(jié)果峰值靈敏度和特異度分別為92.64%和93.69%.文獻(xiàn)[7]提出了一種ConvNet架構(gòu),共同執(zhí)行檢測(cè)和跟蹤,以簡(jiǎn)單有效的方式解決問題.由于視頻檢測(cè)需要大量醫(yī)生的先驗(yàn)經(jīng)驗(yàn),每種視頻的判斷規(guī)則不同,所以不能找到一個(gè)合適的現(xiàn)有視頻分類算法解決這個(gè)問題.筆者在識(shí)別視頻中重點(diǎn)目標(biāo)的基礎(chǔ)上,完全模擬醫(yī)生經(jīng)驗(yàn),分別設(shè)計(jì)了不同類別的判斷方法對(duì)小兒視力實(shí)現(xiàn)自動(dòng)評(píng)估,取得了較好的結(jié)果.
將幼兒視力評(píng)測(cè)過程分為對(duì)象定位階段和等級(jí)評(píng)估階段.通過檢測(cè)視頻的每一幀,定位每一幀中Teller視力卡、卡上的條柵、小孩的頭部、小孩的眼睛和每個(gè)眼睛的眼珠,完全模擬醫(yī)生經(jīng)驗(yàn),分析小兒注視行為,評(píng)估小孩的視力等級(jí).圖1是幼兒視力自動(dòng)評(píng)價(jià)流程圖.

圖1 幼兒視力自動(dòng)評(píng)價(jià)流程圖
在對(duì)象定位階段,建立目標(biāo)識(shí)別模型,識(shí)別并定位Teller視力卡和條柵、小孩的頭部、眼睛及眼珠.在等級(jí)評(píng)估階段,對(duì)每種視力等級(jí)的視頻都模擬醫(yī)生經(jīng)驗(yàn),針對(duì)不同視力等級(jí)的視頻特征使用了不同的評(píng)估方法,按照尋找單雙眼檢測(cè)分界幀、是否配合、視力優(yōu)于0.21、視力介于0.08到0.21之間、視力介于0.05到0.01之間的順序依次判斷.
為了分析不同視力卡下幼兒的注視反應(yīng),首先識(shí)別定位視頻每幀的感興趣區(qū)域,包括每幀中視力卡、頻率最大條柵和一般條柵、被檢查者的頭部、眼睛和眼珠.由于小孩的眼睛和眼珠很小,很難直接定位,于是先定位并分割出小孩的頭部圖像,再在將頭部圖像放大3倍的基礎(chǔ)上識(shí)別眼睛.同樣地,對(duì)眼睛做相同的處理,識(shí)別定位出眼珠的位置.
使用Faster R-CNN[8]建立模型定位識(shí)別所有目標(biāo).Faster R-CNN把區(qū)域建議網(wǎng)絡(luò)和Fast R-CNN[9]結(jié)合在一起,將區(qū)域建議網(wǎng)絡(luò)產(chǎn)生的候選集直接連接到感興趣區(qū)域的池化層.Faster R-CNN實(shí)現(xiàn)了將特征提取、候選區(qū)域選擇、分類和邊框回歸整合在一個(gè)網(wǎng)絡(luò)中,形成了端到端的目標(biāo)檢測(cè)網(wǎng)絡(luò).圖2是Faster R-CNN的網(wǎng)絡(luò)結(jié)構(gòu)圖.

圖2 Faster R-CNN網(wǎng)絡(luò)結(jié)構(gòu)圖
Faster R-CNN主要分為4個(gè)部分:
(1) 卷積層.將圖像輸入到卷積層,提取圖像的特征圖,共享于后續(xù)的區(qū)域建議網(wǎng)絡(luò)和全連接層.
(2) 區(qū)域建議網(wǎng)絡(luò).區(qū)域建議網(wǎng)絡(luò)用全卷積神經(jīng)網(wǎng)絡(luò)產(chǎn)生候選區(qū)域,采用滑動(dòng)窗口機(jī)制.該網(wǎng)絡(luò)使用 3×3 的卷積核對(duì)特征圖進(jìn)行卷積運(yùn)算,獲得特征向量.使用錨盒機(jī)制,對(duì)每個(gè)滑動(dòng)窗口的中心點(diǎn)位置預(yù)測(cè)出不同長(zhǎng)寬比的k個(gè)(一般k=9) 錨盒.為每個(gè)錨盒分配一個(gè)二進(jìn)制標(biāo)簽,將與真實(shí)框的交集和并集之比最高或大于0.7的錨盒標(biāo)為正標(biāo)簽,低于0.3的錨盒標(biāo)為負(fù)標(biāo)簽,訓(xùn)練區(qū)域建議網(wǎng)絡(luò),在所有錨盒中選擇建議區(qū)域.
(3) 感興趣區(qū)域池化層.每個(gè)感興趣區(qū)域?qū)⒃谶@一層被統(tǒng)一成固定大小的特征圖.
(4) 分類與邊框回歸.特征圖分別連接兩個(gè)全連接層,這兩個(gè)全連接層分別用于優(yōu)化分類和邊界回歸.
為了能準(zhǔn)確地評(píng)估視頻中小孩的雙眼視力,首先確定出雙眼檢測(cè)和單眼檢測(cè)的分界點(diǎn),隨后將視力評(píng)估結(jié)果分為不配合、視力盲、視力優(yōu)于0.21、視力介于0.21與0.08之間和視力介于0.01與0.08之間.具體的評(píng)估方法如下.
(1) 定位雙眼檢測(cè)和單眼檢測(cè)邊界.在視頻中雙眼檢測(cè)和單眼檢測(cè)是無縫連接的.在雙眼檢測(cè)結(jié)束后,大人使用遮擋物覆蓋小孩的一只眼睛,檢查單眼視力,所以通過檢查視頻中每一幀的眼睛的個(gè)數(shù)來判斷雙眼檢查的結(jié)束位置.筆者采用滑動(dòng)窗口的方法尋找單雙眼檢測(cè)邊界,滑動(dòng)窗口的大小為35幀,每次向前滑動(dòng)一幀,直到滑動(dòng)窗口中識(shí)別到雙眼的幀數(shù)在80%以上,則滑動(dòng)窗口的最后一幀為單雙眼檢測(cè)的邊界幀.
(2) 判斷不配合視頻.通過觀察不配合視頻,發(fā)現(xiàn)不配合的主要原因有哭鬧、頭部出鏡、閉眼、注視不集中等.因此,不配合視頻分3種情況進(jìn)行判斷: 第1種,統(tǒng)計(jì)視頻中識(shí)別到小兒頭部、雙眼、眼珠的幀數(shù),計(jì)算其占整個(gè)視頻的比例.若這個(gè)比例小于閾值,則該視頻為不配合.第2種,統(tǒng)計(jì)視頻中小孩不看條柵的幀數(shù)占識(shí)別到條柵的幀數(shù)的比例.如果大于閾值,則為不配合.第3種情況是在視頻中小孩因固定性內(nèi)斜視造成全程對(duì)眼,統(tǒng)計(jì)視頻中小兒雙眼眼珠方向不一致的幀,計(jì)算其占的比例.若大于閾值,則結(jié)果為不配合.
(3) 視力為盲.對(duì)兩類視頻評(píng)估結(jié)果判斷為視力盲: 看不到最寬條柵的視力卡和只能看到最寬條柵視力卡.對(duì)于識(shí)別到最寬條柵的視力板的幀,判斷小孩的眼珠方向.如果沒有注視到條柵,則該視頻的結(jié)果為視力盲;如果有看到條柵方向,則判斷被檢查者是否看到較細(xì)的條柵;如果沒有看到,則視力結(jié)果為盲.
(4) 視力優(yōu)于0.21.由于大于0.21的視力卡的條柵在視頻中只有視力卡而沒有條柵,在評(píng)估視頻結(jié)果優(yōu)于0.21時(shí),從視頻結(jié)尾向前選擇 1/a的幀,計(jì)算識(shí)別到視力卡而沒有識(shí)別到條柵的幀所占的比例.若大于閾值,則評(píng)估結(jié)果為視力優(yōu)于0.21;若沒有找到視力卡,則增加選擇幀的比例.
(5) 視力介于0.21與0.08之間和視力介于0.08與0.01之間的判斷.使用AlexNet網(wǎng)絡(luò)[10]對(duì)被檢查者能看到的最后一幀中放置的視力卡的條柵進(jìn)行分類.將條柵分為大于等于0.08和小于0.08兩類,從而得出該視頻的評(píng)估結(jié)果.
圖3是AlexNet網(wǎng)絡(luò)結(jié)構(gòu)圖.AlexNet網(wǎng)絡(luò)的總體架構(gòu)為5個(gè)卷積層、3個(gè)全連接層,最后輸入到一個(gè)softmax層.前7層用于從原始圖像中提取多維和高級(jí)特征,最后的softmax層用于分類.

圖3 AlexNet網(wǎng)絡(luò)結(jié)構(gòu)圖
卷積層具有兩個(gè)重要優(yōu)點(diǎn):局部感知和權(quán)重共享.每個(gè)卷積核是一個(gè)局部特征提取器,用來識(shí)別原始圖像像素間的關(guān)系,從而提取有效且合適的高級(jí)特征以增強(qiáng)模型的泛化能力.此外,權(quán)重共享可以大量減少訓(xùn)練參數(shù)的數(shù)量.AlexNet網(wǎng)絡(luò)采用重疊最大池化層,旨在通過減少特征圖的數(shù)據(jù)維度來實(shí)現(xiàn)空間不變性并增強(qiáng)抗噪聲能力.采用的函數(shù)為非飽和的線性整流(Rectified Linear Units,ReLU)函數(shù).ReLU函數(shù)的收斂明顯快于飽和函數(shù),如S形和雙曲正切.另外,激活函數(shù)可以防止過擬合,提高精度.增加樣本數(shù)量也是一個(gè)防止過擬合的有效方法.AlexNet采用兩種數(shù)據(jù)增加方法,即變換圖像和水平反射.隨機(jī)提取訓(xùn)練數(shù)據(jù)集 224× 224個(gè)原始圖像的補(bǔ)丁并進(jìn)行水平翻轉(zhuǎn),使數(shù)據(jù)量擴(kuò)大了 2 048 倍.為了進(jìn)一步解決過擬合問題,失落被采納.具體來說,在訓(xùn)練期間,隱性層的一半神經(jīng)元被隨機(jī)地選擇參與;而在測(cè)試期間,所有神經(jīng)元的輸出被計(jì)算并乘以0.5的因子.通過這種技術(shù),可以顯著地減少不同神經(jīng)元的共同適應(yīng),并且可以提高整個(gè)網(wǎng)絡(luò)的性能.文中的訓(xùn)練集為{(x(1),y(1)),…,(x(n),y(n))},輸入的特征x(i)∈Rn,標(biāo)簽y(i)∈ {1,…,P}.在網(wǎng)絡(luò)中使用softmax分類器,所以一個(gè)小批次訓(xùn)練的總損失函數(shù)L(w)定義為
(1)

文中的實(shí)驗(yàn)視頻數(shù)據(jù)是使用中山大學(xué)眼科中心的Teller視力卡檢查同步視頻系統(tǒng)獲得的檢查視頻,視頻畫面如圖4所示.為了確保獲得具有代表性和準(zhǔn)確的視頻數(shù)據(jù),由一位有豐富操作經(jīng)驗(yàn)的醫(yī)生錄制視力檢查視頻,由3個(gè)醫(yī)生討論并確認(rèn)該視頻的視力評(píng)估結(jié)果.經(jīng)過討論,排除了醫(yī)生無法給出確定結(jié)論的視頻.最終的數(shù)據(jù)集包括588個(gè)視頻,其中視力盲的視頻有56個(gè),視力介于0.01、0.05之間的視頻有80個(gè),視力在0.08~0.21的視頻有200個(gè),視力大于0.21的視頻有70個(gè),不配合的視頻有182個(gè).筆者選擇了88個(gè)數(shù)據(jù)用于調(diào)整參數(shù),500個(gè)視頻用于測(cè)試.

圖4 視力檢查同步視頻畫面
文中的相關(guān)實(shí)驗(yàn)使用圖形處理器在4塊NVIDIA TitanX 12GB的顯卡進(jìn)行訓(xùn)練和測(cè)試,實(shí)驗(yàn)在Linux 14.04系統(tǒng)上進(jìn)行.Faster R-CNN模型和AxleNet模型使用深度學(xué)習(xí)框架(caffe[11]框架)進(jìn)行訓(xùn)練和測(cè)試.Faster R-CNN網(wǎng)絡(luò)分4個(gè)模型進(jìn)行訓(xùn)練: 第1個(gè)模型的類別為視力卡、條柵、最大條柵;第2個(gè)模型類別為小孩頭部;第3個(gè)模型類別為小兒眼睛;第4個(gè)模型類別為小兒眼珠.4個(gè)模型訓(xùn)練的學(xué)習(xí)率為0.001,迭代次數(shù)為 8 000.AlexNet模型訓(xùn)練的學(xué)習(xí)率為0.01,迭代次數(shù)為 4 000.整個(gè)系統(tǒng)使用python語言實(shí)現(xiàn).
本方法中共有13個(gè)參數(shù).在調(diào)整參數(shù)的過程中,首先給每個(gè)參數(shù)一個(gè)經(jīng)驗(yàn)值,固定所有經(jīng)驗(yàn)值,依次調(diào)整每個(gè)參數(shù),最終選擇準(zhǔn)確率最高的參數(shù)值.對(duì)于每個(gè)參數(shù)的調(diào)整,從88個(gè)視頻中選擇50個(gè)視頻來進(jìn)行實(shí)驗(yàn).
為了增加目標(biāo)檢測(cè)模型的可靠性和泛化能力,將數(shù)據(jù)隨機(jī)分為k份,使用k折交叉驗(yàn)證方法來測(cè)試.Faster R-CNN提供了平均精確度(Average Precision,AP)來評(píng)價(jià)實(shí)驗(yàn)結(jié)果,得到了很好的效果.
對(duì)象定位的平均精確度如表1所示.

表1 對(duì)象檢測(cè)平均精確度
目標(biāo)檢測(cè)網(wǎng)絡(luò)識(shí)別到的條柵輸入到AlexNet網(wǎng)絡(luò)中分類.實(shí)驗(yàn)結(jié)果表明,該網(wǎng)絡(luò)能很好地分類視力卡.實(shí)驗(yàn)同樣采用k折交叉驗(yàn)證方法進(jìn)行驗(yàn)證和測(cè)試,驗(yàn)證的平均精確度為 0.98± 0.066,測(cè)試的平均精確度為 0.99± 0.041.在進(jìn)行了大量實(shí)驗(yàn)后將參數(shù)調(diào)整到最優(yōu),視頻分類方法的準(zhǔn)確率達(dá)到了70%.
筆者在分析此類視頻的基礎(chǔ)上,運(yùn)用目標(biāo)定位首先識(shí)別重點(diǎn)目標(biāo),使用神經(jīng)網(wǎng)絡(luò)分類不同等級(jí)的視力卡,再分析不同視頻的特點(diǎn),運(yùn)用不同的方法對(duì)視頻進(jìn)行判斷,最后能較好地完成視頻分類任務(wù).
目前,小兒視力自動(dòng)評(píng)估系統(tǒng)已經(jīng)在中山眼科中心投入使用,負(fù)責(zé)兒童視力檢查的醫(yī)生檢查后會(huì)使用該系統(tǒng)進(jìn)行復(fù)查以確認(rèn)結(jié)果.該系統(tǒng)運(yùn)行近1年以來效果良好.
筆者提出了一個(gè)基于機(jī)器學(xué)習(xí)的小兒視力自動(dòng)評(píng)估框架,用于對(duì)小兒視力檢查視頻進(jìn)行自動(dòng)評(píng)估.首先,使用Faster R-CNN網(wǎng)絡(luò)來檢測(cè)視頻每幀中的重點(diǎn)對(duì)象,采用AlexNet網(wǎng)絡(luò)分類視力卡.在獲得每幀對(duì)象數(shù)據(jù)的基礎(chǔ)上,重點(diǎn)分析了每一類視頻的特點(diǎn),并結(jié)合醫(yī)生的經(jīng)驗(yàn)知識(shí),針對(duì)不同類別設(shè)計(jì)了評(píng)估方法.筆者進(jìn)行了大量實(shí)驗(yàn)來調(diào)整數(shù)據(jù)以改善實(shí)驗(yàn)結(jié)果.最終,本方法滿足了嬰幼兒視力檢查結(jié)果評(píng)估困難的迫切需求,達(dá)到了客觀評(píng)價(jià)小兒視力的目的.筆者提出的方法可以糾正醫(yī)生容易犯的主觀錯(cuò)誤,為檢查小兒視力節(jié)省了大量時(shí)間,最終為實(shí)現(xiàn)全自動(dòng)小兒視力檢查做了準(zhǔn)備工作.