劉津銘 蔡躍新 曾俊波 唐小武 區(qū)永康 葉偉杰 葉鴻生 熊彬彬 黃 棟
(1.華南農(nóng)業(yè)大學(xué)數(shù)學(xué)與信息學(xué)院 廣州 510642)(2.中山大學(xué)孫逸仙紀(jì)念醫(yī)院 廣州 510120)(3.珠海市中西醫(yī)結(jié)合醫(yī)院 珠海 519020)
眼動研究是醫(yī)學(xué)、心理學(xué)等領(lǐng)域的一個重要研究方向,通過觀察眼動可以很好地解釋某種病癥或人類豐富且雜亂的神經(jīng)心理學(xué)過程[1]。目前大多數(shù)研究是在某個特定任務(wù)下(例如瀏覽圖像、閱讀文本、視覺搜索等)追蹤眼球運動或借助人眼的注視點等信息對人類行為進行分析。在醫(yī)學(xué)領(lǐng)域的眼動研究多用于疾病診斷,良性陣發(fā)性位置性眩暈(Benign Paroxysmal Positional Vertigo,BPPV)[2]又稱為耳石癥,患者發(fā)病時會產(chǎn)生頭暈癥狀并伴有眼震,醫(yī)生可以通過觀察患者的眼動情況來進行診斷。
由于在眼動視頻上進行直接觀測與診斷容易對眼震特征不明顯的患者造成漏診或誤診,而當(dāng)前對眼動軌跡的自動分析研究仍然非常匱乏,對BP?PV 診斷的相關(guān)研究工作缺少利用眼動軌跡潛在信息。對此,本文提出了一種基于時序軌跡的BPPV診斷模型,將基于深度學(xué)習(xí)的目標(biāo)檢測器和基于時序軌跡分析的分類器相結(jié)合,對眼動視頻進行檢測并提取眼動軌跡做分類與診斷,同時針對類別不平衡問題,結(jié)合數(shù)據(jù)增強對其進行應(yīng)對,并在500 個病例數(shù)據(jù)的實驗中對診斷結(jié)果進行了評估。實驗表明,所提出的模型可以有效應(yīng)對各種復(fù)雜情況下的人眼檢測,并在保證檢測精度的同時提升BPPV診斷的準(zhǔn)確度。
通用目標(biāo)檢測算法是在給定圖像中識別出目標(biāo)的位置(object localization)的同時預(yù)測出類別(object classification),并用標(biāo)有置信度的矩形邊界框?qū)z測目標(biāo)進行標(biāo)記[3]。目前通用目標(biāo)檢測算法主要可以分為兩種類型。一種是兩階段(two-stage)檢測算法,首先通過卷積網(wǎng)絡(luò)得到候選區(qū)域,然后再對每個候選區(qū)域進行分類來得到預(yù)測的目標(biāo)類別。另一種是單階段(one-stage)檢測算法,將目標(biāo)檢測轉(zhuǎn)換成一個回歸或分類任務(wù),可以不預(yù)先單獨得到候選區(qū)域,而是采用統(tǒng)一的框架直接確定邊界框位置和目標(biāo)類別,因此檢測速度較快。典型的單階段檢測算法包括YOLO[4~5]和SSD[6]等。
本文采用YOLOv4[7]模型對眼動視頻中的眼球虹膜進行目標(biāo)檢測。與YOLOv3[8]算法相比,YO?LOv4 的主干特征提取網(wǎng)絡(luò)將帶有跨階段局部網(wǎng)絡(luò)(CSPNet)[9]的Darknet53網(wǎng)絡(luò)代替原來的Darknet53網(wǎng)絡(luò),同時也將Mish 激活函數(shù)代替原來的Leakey ReLU 函數(shù)。頸部網(wǎng)絡(luò)不僅采用了多尺度特征融合的SPP(Spatial Pyramid Pooling)[10]以利用數(shù)據(jù)上下文特征,還在三個有效特征層的尾部添加PANet(path aggregation network)[11]用于特征的反復(fù)提取,頭部預(yù)測部分的分類回歸層繼續(xù)沿用YOLOv3 的頭部。實驗表明,所訓(xùn)練模型可檢測出多種人眼狀態(tài),在半遮擋情況下也能捕捉到虹膜區(qū)域,檢測效果示例如圖1 所示。值得注意的是,本文的目標(biāo)在于捕捉眼球運動軌跡,由于YOLOv4 已經(jīng)可以提供非常準(zhǔn)確的眼球虹膜目標(biāo)檢測效果,采用更復(fù)雜目標(biāo)檢測模型的必要性較為有限。
圖1 在眼動視頻中的目標(biāo)檢測效果
本文在進行目標(biāo)檢測的同時,提取其眼動軌跡的時間序列。眼動軌跡的提取基于圖像中的檢測到的人眼區(qū)域,以檢測框的中心作為虹膜中心,計算并記錄視頻每幀圖像下左右眼檢測框的中心值,由此得到雙眼的眼動時序軌跡(如圖2 所示)。由于眼震是眼球震顫,眼震的頻率、幅度、方向、程度不同會導(dǎo)致眼球的移動位置在短時間內(nèi)出現(xiàn)的變化不同,可能是細(xì)微的也可能是明顯的。隨時間變化的眼動軌跡可視化效果見圖3。
圖2 以矩形邊界框的中心作為虹膜中心提取軌跡
圖3 眼動軌跡可視化
時間序列由根據(jù)時間順序測量和排列的數(shù)值組成[12],時序數(shù)據(jù)復(fù)雜且包含大量與時間屬性相關(guān)的隱藏信息,即數(shù)據(jù)內(nèi)部相鄰時刻的信息通常情況下具有某種相關(guān)性,屬于流數(shù)據(jù),對時序數(shù)據(jù)的分析和挖掘已經(jīng)成為大數(shù)據(jù)分析領(lǐng)域的熱點。時間序列分類和預(yù)測應(yīng)用在智能交通、智慧金融、智慧醫(yī)療等領(lǐng)域,意義重大,影響深遠(yuǎn)。對于時間序列分類(TSC)[13],相似性度量是其關(guān)鍵。相比于常規(guī)數(shù)據(jù),時序數(shù)據(jù)往往存在長度不等的問題,傳統(tǒng)的歐氏距離往往不能適用。對此,本文采用基于動態(tài)時間歸整(Dynamic Time Warping,DTW)的時間序列相似性度量[13]。
值得注意的是,在基于DTW 的時間相似性度量下,傳統(tǒng)支持向量機(Support Vector Machine,SVM)[14]、深 度 神 經(jīng) 網(wǎng) 絡(luò)(Deep Neural Network,DNN)[15]等分類器因缺少相同長度的向量化特征而無法適用。對此,因其能夠以樣本相似度作為算法輸 入,本 文 將 采 用k 近 鄰(k-Nearest Neighbor,k-NN)[16]作為眼動時序數(shù)據(jù)的分類器。k-NN 算法可基于相似性度量,在訓(xùn)練集中找到若干個與給定的測試樣本最相近的訓(xùn)練樣本,然后使用“投票法”進行預(yù)測,預(yù)測的類別在k 個樣本中類別標(biāo)記出現(xiàn)最多[17]。眼動軌跡記錄了依時間為序排列的眼球移動位置,且由于眼動視頻時長不等長導(dǎo)致時間序列不等長,本文分類器選擇基于DTW 相似性度量的k-NN分類器進行訓(xùn)練和預(yù)測。
在上一節(jié)的處理中,每段視頻可分別提取出左眼和右眼的眼動軌跡。因此,在眼動軌跡分析過程中,可對三種情況進行分析(亦將進行對比實驗),分別是:僅用左眼軌跡進行測試診斷,若測試樣本被預(yù)測為眼動異常,則判定這是個患有BPPV 的患者;僅用右眼軌跡進行測試診斷,若測試樣本被預(yù)測為眼動異常,則判定這是個患有BPPV 的患者;使用雙眼軌跡進行測試診斷,若測試樣本的左右眼兩條軌跡同時被預(yù)測為眼動異常,則判定這是個患有BPPV的患者。
在本節(jié)中,本文將在“眼動視頻”數(shù)據(jù)集上進行實驗,在進行目標(biāo)檢測的同時提取眼動軌跡,并進行數(shù)據(jù)增強操作,最后對診斷結(jié)果進行對比與分析。
本文實驗采用的操作系統(tǒng)為Linux 系統(tǒng),顯卡是用24GB 顯存的英偉達(dá)3090,深度學(xué)習(xí)框架為Pytorch,Torch 版 本 為1.7.0,Cuda 版 本 為11.0,Cudnn 版本為v8.0.5。
在訓(xùn)練檢測模型之前隨機選取了10 個眼動視頻,并從每個被選出的視頻中每隔10 幀獲取一張圖片作為一個檢測數(shù)據(jù),最終手動標(biāo)注了608 張圖片,并按照8:1:1 的比例劃分訓(xùn)練集:驗證集以及測試集。令初始學(xué)習(xí)率為0.001,Epoch 為150,Minibatch size 為32。在本文實驗中,主要的檢測類型分為兩類:cross(十字形記號)、eye(眼睛),依據(jù)eye 類別的矩形邊界框提取軌跡。
在訓(xùn)練分類模型之前,從眼動軌跡數(shù)據(jù)集的兩種類別中分別隨機選取80%作為訓(xùn)練集,剩下的20%作為測試集,將被選中作為訓(xùn)練集的訓(xùn)練樣本的左右眼軌跡一起輸入分類模型中訓(xùn)練,并只對訓(xùn)練數(shù)據(jù)做數(shù)據(jù)增強操作。在第3.7 節(jié)中,本文將進一步進行實驗測試所用的診斷模型在不同k 值下的性能(見表5)。
表5 不同k值的性能影響(%)(最高得分以粗體表示)
本文實驗將在“眼動視頻”數(shù)據(jù)集上進行,數(shù)據(jù)集包含兩種類別,分別是眼動正常(normal)和眼動異常(abnormal)。這些初始數(shù)據(jù)均為視頻格式,各類數(shù)據(jù)的具體情況如表1所示。
表1 實驗數(shù)據(jù)表
為對比在類別不平衡情況下數(shù)據(jù)增強的性能,本文采用了三種常用的評價指標(biāo),分別是精確率(precision)、召回率(recall)和準(zhǔn)確率(accuracy)[18]。本文實驗的精確率、召回率針對患者類別進行計算。
類別不平衡(class-imbalance)[19]是指在分類問題中某些類別的訓(xùn)練樣本顯著多于其他類別的情況。針對類別不平衡問題以及時序數(shù)據(jù)的特點,本文運用了三種數(shù)據(jù)增強[20]方法對眼動軌跡進行擴充,但只針對訓(xùn)練集進行,分別是翻轉(zhuǎn)(flip),剪切(crop)和抖動(jitter),以達(dá)到增加訓(xùn)練樣本和提高診斷準(zhǔn)確率的目的。我們在圖4 中舉例說明了時間序列進行數(shù)據(jù)增強后的變化。
圖4 時間序列數(shù)據(jù)增強圖示
翻轉(zhuǎn)(flip)是通過首尾翻轉(zhuǎn)原始的時間序列x1,…,xS得到新的時間序列,其 中。在本文實驗中,首尾翻轉(zhuǎn)后新序列的標(biāo)簽與原始的時間序列保持一致。
剪切(crop)[21]是一種提取子樣本的方法,原理是從原始時間序列中隨機裁剪片段,可設(shè)置片段的長度,一般不與原始時間序列等長,片段的標(biāo)簽與原始時間序列保持一致。
抖動(jitter)是指軌跡的理想時序與實際時序之間的偏差。在本文實驗中,通過對原始樣本做輕微的小幅度數(shù)值調(diào)整得到新序列,達(dá)到擴充數(shù)據(jù)的效果,新序列樣本的標(biāo)簽仍然與原始的時間序列保持一致。
本節(jié)實驗在k=1 的情況下對非平衡類別在不同數(shù)據(jù)增強次數(shù)下進行性能對比(使用雙眼軌跡進行測試)。實驗對比包括:(A1)正常樣本無增強,異常樣本無增強;(A2)正常樣本剪切增強4 次,異常樣本無增強;(A3)正常樣本剪切增強4 次,異常樣本翻轉(zhuǎn)增強1 次;(A4)正常樣本剪切增強5 次,異常樣本翻轉(zhuǎn)增強1次。其中(A3)為對照組。
如表2 所示,并非增強次數(shù)越多模型的診斷性能越好。當(dāng)只對正常樣本剪切增廣4 次時,效果不佳。而當(dāng)正常樣本剪切增強5 次,異常樣本翻轉(zhuǎn)增強1 次時,準(zhǔn)確率和對患者診斷的精確率和召回率都不如(A3)。當(dāng)正常樣本剪切增強4次,異常樣本翻轉(zhuǎn)增強1 次時,模型在不降低準(zhǔn)確率的前提下對患者診斷的精確率提高到了92.5%,召回率不低于90%,因此(A3)的增強組合優(yōu)于其他增強次數(shù)的組合,能得到較高的精確率和召回率。
表2 在k=1的情況下非平衡類別在不同數(shù)據(jù)增強次數(shù)下的性能表現(xiàn)(%)(最高得分以粗體表示)((A1)無增強;(A2)Crop4次+Flip0次;(A3)Crop4次+Flip1次;(A4)Crop5次+Flip1次)
在本節(jié)實驗中,本文將在k=1 的情況下對比眼動軌跡時間序列在不同增強方法下的性能(使用雙眼軌跡進行測試)。實驗對比包括:(B1)正常樣本剪切增強4 次,異常樣本翻轉(zhuǎn)增強1 次;(B2)正常樣本翻轉(zhuǎn)增強4 次,異常樣本翻轉(zhuǎn)增強1 次;(B3)正常樣本剪切增強4 次,異常樣本剪切增強1 次;(B4)正常樣本抖動增強4 次,異常樣本抖動增強1次。(B5)正常樣本增強4 次,異常樣本增強1 次,每次增強從抖動和剪切兩種增強方法中隨機二選一;(B6)正常樣本增強4 次,異常樣本增強1 次,每次增強從抖動和翻轉(zhuǎn)兩種增強方法中隨機二選一;(B7)正常樣本增強4 次,異常樣本增強1 次,每次增強從剪切和翻轉(zhuǎn)兩種增強方法中隨機二選一。
表3 給出了時間序列在不同增強方法下的精確度(%)、召回率(%)和準(zhǔn)確率(%)得分。如表所示,無論是單獨使用一種增強方法還是每次增強隨機選擇增強方法,準(zhǔn)確率以及對患者診斷的精確率不如(B1)。因此(B1)的增強組合優(yōu)于其他增強類別的組合,能得到較高的精確率和召回率。
表3 在k=1的情況下數(shù)據(jù)增強類別的性能影響(%)(最高得分以粗體表示)((B1)Crop4次+Flip1次;(B2)Flip4次+Flip1次;(B3)Crop4次+Crop1次;(B4)Jitter4次+Jitter1次;(B5)每次Jitter、Crop二選一;(B6)每次Jitter、Flip二選一;(B7)每次Crop、Flip二選一)
在本節(jié)實驗中,本文將對正常樣本剪切增強4次與異常樣本翻轉(zhuǎn)增強1 次后在k=1 的情況下對比單眼軌跡與雙眼軌跡的性能。如表4 所示,使用雙眼軌跡對患者診斷的精確率優(yōu)于僅使用單眼軌跡,精確率和召回率越高,漏診或誤診的情況越少。
表4 在k=1的情況下使用單眼軌跡與雙眼軌跡的性能影響(%)(最高得分以粗體表示)((C1)使用雙眼軌跡;(C2)僅使用左眼軌跡;(C3)僅使用右眼軌跡)
在k-NN 算法中,k 值的大小會直接影響模型的性能。如表5 所示,給出了對正常樣本剪切增強4 次與異常樣本翻轉(zhuǎn)增強1 次后在k=1、k=3、k=5 和k=7 情況下使用雙眼軌跡測試的性能對比。值得一提的是,將k=1 和動態(tài)時間規(guī)整距離結(jié)合起來可以得到較優(yōu)的診斷性能。當(dāng)k=1 時,對患者診斷的的精確率和召回率都優(yōu)于其他k 取值,這表明在眼動軌跡的分類時最近鄰可以給出較為可靠的信息。因此,對正常樣本剪切增強4 次與異常樣本翻轉(zhuǎn)增強1次、使用k=1進行訓(xùn)練,使用雙眼軌跡進行診斷能(在測試集上)得到最佳的診斷性能。
本文在BPPV 的診斷問題上,提出了一種基于眼動時序軌跡分析的BPPV 診斷模型。本文利用基于深度學(xué)習(xí)的目標(biāo)檢測器和基于時序軌跡分析的分類器相結(jié)合的方法,對捕捉到眼震特性的眼動軌跡進行數(shù)據(jù)增強和分類,實驗證明其在對BPPV的診斷上取得了較佳診斷性能,可以輔助醫(yī)學(xué)診斷,增加診斷效率,減少只用裸眼觀察造成的漏診或誤診。在未來研究工作中,本文的眼動軌跡分類模塊一方面可以探索更多針對時間序列的數(shù)據(jù)增強方法,另一方面也可將其他處理時間序列的深度或非深度模型應(yīng)用到該任務(wù)上,以進一步提升BP?PV診斷的準(zhǔn)確性。