劉乾宇
(1.北京郵電大學(xué) 軟件學(xué)院,北京 100876;2.北京郵電大學(xué)可信分布式計(jì)算與服務(wù)教育部重點(diǎn)實(shí)驗(yàn)室,北京 100876)
瘧疾是由瘧原蟲屬寄生蟲所致,自2000年以來,世界在減少瘧疾病例和死亡總數(shù)方面取得了顯著進(jìn)展。但瘧疾患病及死亡人數(shù)仍然居高不下,每兩分鐘就有一名兒童死于這種可防治的疾病。每年報(bào)告的新發(fā)病例超過2億。據(jù)世界衛(wèi)生組織頒發(fā)的《2018年世界瘧疾報(bào)告》,2017年,估計(jì)在87個(gè)國家有2.19億瘧疾病例。2015年至2017年期間沒有在減少瘧疾病例方面取得明顯進(jìn)步。全球瘧疾應(yīng)對工作面臨眾多挑戰(zhàn),及時(shí)診斷和治療是防止瘧疾輕癥發(fā)展為嚴(yán)重疾病和死亡的最有效手段。寄生于人體的瘧原蟲有四種,即間日瘧原蟲、三日瘧原蟲、惡性瘧原蟲和卵形瘧原蟲。其中惡性瘧原蟲和間日瘧原蟲危害最大。瘧原蟲的生命周期很復(fù)雜,包括環(huán)狀體(rings)、滋養(yǎng)體(trophozoites)、裂殖體(schizonts)和配子體(gametocytes)。瘧疾血涂片鏡檢法是檢測瘧原蟲和瘧疾病例診斷依據(jù)的最直接和最重要的方法,是由世界衛(wèi)生組織推薦用于瘧疾檢測的金標(biāo)準(zhǔn)[1]。由于近些年國內(nèi)瘧疾的防治和減少,基層醫(yī)院與疾病控制機(jī)構(gòu)不再重視瘧疾血涂片的鏡檢,從而導(dǎo)致瘧疾血涂片鏡檢水平不斷下降[2-4],產(chǎn)生瘧疾的漏診和誤診[5]。因此使用計(jì)算機(jī)輔助診斷方法自動識別細(xì)胞并識別其疾病種類,進(jìn)而實(shí)現(xiàn)自動細(xì)胞分類和計(jì)數(shù),由于其相較人工更快更準(zhǔn)確的定量結(jié)果,將對瘧疾疾病的檢測帶來重要意義。
針對瘧疾血涂片細(xì)胞分類以及計(jì)數(shù)問題存在的不足與經(jīng)驗(yàn),該文提出了一種基于Faster R-CNN模型的瘧疾細(xì)胞檢測算法,對網(wǎng)絡(luò)結(jié)構(gòu)做出優(yōu)化和修改,增加卷積濾波器層,并對特征提取網(wǎng)絡(luò)進(jìn)行優(yōu)化從而提高瘧疾圖像的檢測效果。
隨著計(jì)算機(jī)視覺技術(shù)的發(fā)展,深度學(xué)習(xí)在學(xué)術(shù)界受到了廣泛的關(guān)注,也對醫(yī)療影像檢測領(lǐng)域產(chǎn)生了巨大的影響。基于機(jī)器學(xué)習(xí)的SVM等算法解決大規(guī)模訓(xùn)練樣本的圖像分類尤其是多分類問題較為困難?;谏疃葘W(xué)習(xí)的算法,尤其以卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)[6]為基礎(chǔ)的算法在物體檢測任務(wù)中被廣泛應(yīng)用。Girshick等[7]提出R-CNN解決了圖像目標(biāo)檢測問題,該算法首先對圖片中的物體畫框,再判斷框出的物體類別。R-CNN采用選擇性搜索(selective search)方法生成大約2 000個(gè)方框,用已訓(xùn)練好的CNN對每一個(gè)方框內(nèi)的圖片提取出特征,再放入SVM進(jìn)行分類,同時(shí)將特征放入回歸器中得到更精確的候選框。由于R-CNN太多的候選框存在重疊的問題,需要大量重復(fù)計(jì)算,隨后Fast R-CNN[8]合并了R-CNN中用CNN提取特征、SVM分類、回歸這三個(gè)過程,形成端到端整體的模型,并且引入感興趣區(qū)域池化層(ROI pooling)共享特征,速度和準(zhǔn)確率都得到了提升。但Fast R-CNN采用的選擇性搜索方法進(jìn)行特征提取仍然非常耗時(shí),而Faster R-CNN[9]在Fast R-CNN基礎(chǔ)上引入了RPN(region proposal network)改善了這一問題,進(jìn)一步提高了檢測速度,并在檢測精度和速度上達(dá)到了較好的平衡,實(shí)現(xiàn)了端到端網(wǎng)絡(luò)結(jié)構(gòu)[10]。除了上述以R-CNN為代表的基于區(qū)域提案(region proposal)的目標(biāo)檢測算法,還有一類基于回歸的目標(biāo)檢測算法,如YOLO[11]把目標(biāo)檢測問題轉(zhuǎn)化為回歸,采用一個(gè)完整的端到端網(wǎng)絡(luò),由輸入的原始圖像直接輸出目標(biāo)位置和分類的檢測結(jié)果,網(wǎng)絡(luò)更輕訓(xùn)練速度更快。但YOLO對小樣本群體檢測效果不好,泛化能力偏弱。為了解決這些缺點(diǎn),SSD[12]整合了YOLO中的回歸思想和Faster R-CNN中的anchor思想,在不同尺度的特征圖進(jìn)行目標(biāo)位置和類別的訓(xùn)練和預(yù)測,從而達(dá)到多尺度檢測的目的,提高了模型的泛化能力,同時(shí)保證了檢測速度。
近年來,人工智能技術(shù)與醫(yī)療健康領(lǐng)域的融合不斷加深,人工智能逐漸成為影響醫(yī)療行業(yè)發(fā)展,提升醫(yī)療服務(wù)水平的重要因素。醫(yī)療影像輔助診斷是一個(gè)熱點(diǎn)內(nèi)容。過去已經(jīng)進(jìn)行了許多關(guān)于使用自動化方法進(jìn)行瘧疾血涂片檢測的研究。常用的方法是數(shù)字圖像處理技術(shù)。一些研究者開發(fā)了輔助診斷工具,例如使用粒度分析法來估計(jì)細(xì)胞大小[13],或使用基于形態(tài)學(xué)算子的自動閾值檢測來分析感染的血細(xì)胞圖像[14],但是由于使用了體外培養(yǎng)標(biāo)本而不是實(shí)際的外周血,未從根本解決瘧疾檢測的任務(wù)。Raviraja等人[15]提出了一種從感染的血液圖像中自動分離出寄生蟲(滋養(yǎng)體,裂殖體和配子體細(xì)胞)的方法。使用顏色、形狀和大小的信息,然后通過縮放,整形以重建圖像,將圖像與受感染的圖像進(jìn)行比較。對返回的圖像進(jìn)行統(tǒng)計(jì)分析并進(jìn)行比較,此外還評估了寄生蟲細(xì)胞核的大小和形狀。Savkare等人[16]開發(fā)了一種系統(tǒng),該系統(tǒng)可根據(jù)感染者血液中的瘧原蟲顏色和形態(tài)特征快速準(zhǔn)確地診斷人類血液介質(zhì)中的瘧疾紅細(xì)胞。Snehal Suryawanshi等人[17]提出了用于瘧疾寄生蟲檢測的增強(qiáng)技術(shù),其中細(xì)胞分割包括多個(gè)步驟,例如使用基于泊松分布的最小誤差閾值對圖像進(jìn)行二值化,然后在形態(tài)學(xué)上進(jìn)行細(xì)化,最后使用支持向量機(jī)(SVM)作為分類器進(jìn)行分類,與基于歐氏距離分類器的精度相比更高。雖然研究者們使用圖像處理的技術(shù)對瘧疾檢測進(jìn)行了廣泛研究,但是受瘧疾感染血液的顯微鏡圖像在顯微鏡照明強(qiáng)度、細(xì)胞形狀、密度和顏色由于樣品制作的過程的細(xì)微差異而不同,并且其中個(gè)別類別即使是專家也很難識別。另外有學(xué)者嘗試自動化識別并量化瘧疾[18-20]的過程使用一組預(yù)定的測量(強(qiáng)度、形狀和紋理)中的要素,使用復(fù)雜的工作流進(jìn)行圖像處理和機(jī)器學(xué)習(xí)分類。然而,由于缺乏通用性,這些方法都沒有獲得很大反響。因此,該文嘗試針對圖像預(yù)處理進(jìn)行改進(jìn),增強(qiáng)瘧原蟲的可檢測性,提高算法模型的可靠性。
Faster R-CNN在Fast R-CNN的基礎(chǔ)上引入?yún)^(qū)域候選網(wǎng)絡(luò),用RPN來提取預(yù)測框,使得RPN和Fast R-CNN模型能夠共享卷積后的特征。這樣特征圖同時(shí)作為RPN和Fast R-CNN的輸入,提高了性能。Faster R-CNN模型結(jié)構(gòu)如圖1所示。首先Faster R-CNN使用卷積層提取特征,該特征圖被共享用于后續(xù)RPN層和全連接層,RPN用于生成區(qū)域候選框,并且通過對錨點(diǎn)(anchors)分類以及邊界框回歸(bounding box regression)修正anchors以獲得精確的區(qū)域候選框。隨后傳入感興趣區(qū)域池化層(regions of interest pooling,RoI Pooling),進(jìn)一步提取特征,進(jìn)入全連接層判定目標(biāo)類別,同時(shí)再次通過邊界框回歸以獲得檢測框最終的精確位置。
圖1 Faster R-CNN基本結(jié)構(gòu)
相對于傳統(tǒng)的滑動窗口和選擇性搜索算法,F(xiàn)aster R-CNN采用RPN生成目標(biāo)區(qū)域候選框提高了候選框的生成速度,用于對目標(biāo)識別、分類以及邊界框回歸。回歸層用于估計(jì)目標(biāo)原始的位置,分類層用于對目標(biāo)區(qū)域進(jìn)行分類,得出目標(biāo)屬于某類的概率。每一個(gè)滑動窗口,同時(shí)預(yù)測9個(gè)候選框,一般由3種面積128×128、256×256、512×512,3種比例1∶1、1∶2、2∶1組成,最終輸出為多個(gè)候選框和該候選框被判斷為目標(biāo)的得分。
感興趣區(qū)域池化層是對空間金字塔池化層(spatial pyramid pooling,SPP)的改進(jìn)。由于全連接層中圖像維度的約束,SPP層使用金字塔結(jié)構(gòu)處理圖像尺寸不同的問題,RoI Pooling通過下采樣、上采樣的方法,將非均勻尺寸的輸入,即不同候選區(qū)域的特征圖執(zhí)行最大池化,轉(zhuǎn)換成固定大小的特征圖。此處固定大小的選擇是由該網(wǎng)絡(luò)的超參數(shù)預(yù)定義的。主要目的是為了加快訓(xùn)練與測試時(shí)間,優(yōu)化性能,采用端到端聯(lián)合的方式訓(xùn)練整個(gè)系統(tǒng)。
2.2.1 卷積濾波器
濾波是對于圖像的每一個(gè)像素點(diǎn),計(jì)算它的鄰域像素和濾波器矩陣的對應(yīng)元素的乘積,然后加起來,作為該像素位置的值。而基于核的濾波器被稱為卷積濾波器,核也成為卷積矩陣,其有奇數(shù)行、奇數(shù)列,中心的元素對應(yīng)于感興趣的像素,其他的元素對應(yīng)于這個(gè)像素周圍的鄰近像素,每個(gè)元素都有一個(gè)整數(shù)或浮點(diǎn)數(shù)的值,這些值是應(yīng)用在像素上的權(quán)重。
針對瘧疾血涂片細(xì)胞的特點(diǎn),細(xì)胞數(shù)量多且細(xì)胞邊緣與內(nèi)部細(xì)節(jié)不夠清晰,故在Faster R-CNN共享卷積層之前加入卷積濾波器層,該層的網(wǎng)絡(luò)結(jié)構(gòu)為自定義的一個(gè)3×3和一個(gè)5×5的核,分別為H1、H2。首先使用H1對圖像進(jìn)行平滑處理,再使用H2增強(qiáng)圖像的細(xì)節(jié),得到較原圖更為清晰的圖片。
如圖2所示,經(jīng)卷積濾波器層處理過的圖像輸入到Fast R-CNN網(wǎng)絡(luò)中進(jìn)行進(jìn)一步的特征提取。
圖2 文中模型基本結(jié)構(gòu)
2.2.2 殘差網(wǎng)絡(luò)
原始的Faster R-CNN采用了VGG16[21]作為特征提取網(wǎng)絡(luò)。VGG16采用堆積的小卷積核,其網(wǎng)絡(luò)架構(gòu)如圖3所示。
圖3 VGG16網(wǎng)絡(luò)結(jié)構(gòu)
VGG16前幾層使用3×3卷積核,通過最大池化(max pooling)層減少神經(jīng)元數(shù)量,最后增加2個(gè)全連接層和1個(gè)歸一化指數(shù)函數(shù)(softmax)層。而隨著網(wǎng)絡(luò)深度的增加,網(wǎng)絡(luò)的準(zhǔn)確度應(yīng)該同步增加,但增加網(wǎng)絡(luò)深度后,梯度反向傳播過程中會逐漸減小,造成梯度消失,導(dǎo)致網(wǎng)絡(luò)退化。
該文引入殘差網(wǎng)絡(luò)(ResNet)[22]以優(yōu)化上述問題。ResNet通過引入殘差學(xué)習(xí)單元,允許前面輸入的信息直接傳到后面的層中,使新添加的層只需要學(xué)習(xí)上一個(gè)網(wǎng)絡(luò)輸出的殘差,可以使網(wǎng)絡(luò)在深度增加的情況下不退化,訓(xùn)練效果更好。
圖4 ResNet中殘差學(xué)習(xí)單元
如圖4所示,殘差學(xué)習(xí)單元除了正常的卷積層輸出外,還有一個(gè)分支把輸入直接連到輸出上,該輸出和卷積的輸出做算術(shù)相加得到最終的輸出,用公式表達(dá)就是H(x)=F(x)+x,其中x是輸入,F(xiàn)(x)是卷積分支的輸出,H(x)是整個(gè)結(jié)構(gòu)的輸出。對于一個(gè)堆積層結(jié)構(gòu),當(dāng)輸入為x時(shí)其學(xué)習(xí)到的特征記為H(x),若想學(xué)習(xí)到殘差F(x)=H(x)-x,則原始的學(xué)習(xí)特征是F(x)+x。相比原始特征,殘差學(xué)習(xí)更加容易。當(dāng)殘差為0時(shí),此時(shí)堆積層僅僅做了恒等映射(identity mapping),網(wǎng)絡(luò)性能至少和淺層網(wǎng)絡(luò)性能一樣,且殘差不會為0,使得堆積層在輸入特征基礎(chǔ)上學(xué)習(xí)到新的特征,從而擁有更好的性能,有效緩解網(wǎng)絡(luò)退化問題。
該文采用的數(shù)據(jù)集為間日瘧原蟲(瘧疾)感染人血凃片數(shù)據(jù)集[23],圖像為PNG和JPG格式,由1 364張圖像組成,總計(jì)約80 000個(gè)細(xì)胞,用Giemsa試劑染色。該數(shù)據(jù)集由兩類未感染細(xì)胞即紅細(xì)胞(red blood cells)和白細(xì)胞(leukocytes)和四類感染細(xì)胞即配子體(gametocytes)、環(huán)狀體(rings)、滋養(yǎng)體(trophozoites)和裂殖體(schizonts)組成。數(shù)據(jù)集的標(biāo)注信息包括以上全部類別,其中一些識別困難的細(xì)胞被標(biāo)注為困難(trouble)類型。每張圖片分辨率為1 600×1 200,在人工標(biāo)注的細(xì)胞中,Ground Truth框的面積(分辨率)大小多為100×100左右。
實(shí)驗(yàn)基于TensorFlow框架,采用的系統(tǒng)為Linux,GPU為Tesla P100。數(shù)據(jù)集中,訓(xùn)練驗(yàn)證集占80%,測試集占20%。訓(xùn)練驗(yàn)證集中訓(xùn)練集占80%,驗(yàn)證集占20%。其中標(biāo)注為困難的類型不參與訓(xùn)練。
在瘧疾血涂片細(xì)胞數(shù)據(jù)中,針對單個(gè)類別,使用平均精度(average precision,AP)作為評價(jià)指標(biāo),對于各個(gè)類別,分別計(jì)算AP,取所有類別的AP平均值為mAP(mean average precision),用來衡量文中模型在所有類別上識別效果的好壞。
深度卷積神經(jīng)網(wǎng)絡(luò)的參數(shù)數(shù)量巨大,需要數(shù)量足夠多的數(shù)據(jù)才能滿足訓(xùn)練要求,而文中采用的數(shù)據(jù)集相對來說非常有限。為了能夠增加訓(xùn)練的數(shù)據(jù)量,以提高神經(jīng)網(wǎng)絡(luò)模型的泛化能力,文中采用對訓(xùn)練集圖像進(jìn)行垂直翻轉(zhuǎn)、水平翻轉(zhuǎn)以及逆時(shí)針旋轉(zhuǎn)90度的方法,對現(xiàn)有的數(shù)據(jù)集進(jìn)行擴(kuò)充。
實(shí)驗(yàn)部分采用三組對比實(shí)驗(yàn),實(shí)驗(yàn)一僅加入卷積濾波器層,而不采用ResNet特征提取網(wǎng)絡(luò)和修改的錨點(diǎn)框尺度比;同理,實(shí)驗(yàn)二僅采用ResNet進(jìn)行特征提取,實(shí)驗(yàn)三僅采用修改的錨點(diǎn)框尺度比;最后綜合實(shí)驗(yàn)一、二、三的改進(jìn),得出一個(gè)綜合的輸出結(jié)果。
圖5 卷積濾波器層輸出特征圖
圖5為瘧疾血涂片數(shù)據(jù)集中的圖像經(jīng)過卷積濾波器層的輸出結(jié)果。對比圖5(a)與圖5(b)不難看出圖5(b)中細(xì)胞的結(jié)構(gòu)與邊緣更加明顯,圖像更清晰,該層的輸出特征圖作為Faster R-CNN的輸入數(shù)據(jù)。
實(shí)驗(yàn)結(jié)果表明,經(jīng)過數(shù)據(jù)擴(kuò)充的訓(xùn)練集在添加了卷積濾波器層并且優(yōu)化過的Faster R-CNN模型訓(xùn)練后,測試集的mAP為79.56%,能夠達(dá)到輔助檢測的效果,而對于原始Faster R-CNN模型的測試結(jié)果,測試集的mAP為70.72%,實(shí)驗(yàn)一只加入卷積濾波器層提高了1.64%,實(shí)驗(yàn)二采用ResNet進(jìn)行特征提取mAP提高了4.57%,實(shí)驗(yàn)三通過修改錨點(diǎn)框尺寸使mAP提高了2.72%,綜合所有改進(jìn)的模型實(shí)驗(yàn)結(jié)果使mAP提高了8.84%(見表1)。文中綜合方法部分測試圖像效果如圖6所示,其中圖6(a)、圖6(c)為在原始Faster R-CNN模型下的測試結(jié)果,圖6(b)、圖6(d)為在文中方法下的測試結(jié)果,相同血涂片檢測結(jié)果中圖6(b)相對于圖6(a)多檢測出了滋養(yǎng)體類型的細(xì)胞,圖6(d)相對于圖6(c)在檢驗(yàn)細(xì)胞數(shù)量和準(zhǔn)確率均得到了提高,文中方法在瘧疾血涂片細(xì)胞檢測中的效果更好。
表1 實(shí)驗(yàn)結(jié)果mAP對比
圖6 原始Faster R-CNN與文中模型實(shí)驗(yàn)結(jié)果對比
將深度學(xué)習(xí)應(yīng)用于生物醫(yī)學(xué)領(lǐng)域有廣闊的前景,在原始Faster R-CNN的基礎(chǔ)上提出了一種改進(jìn)的Faster R-CNN瘧疾血涂片細(xì)胞的檢測與識別算法。通過試驗(yàn),相比于原始Faster R-CNN模型,文中方法結(jié)合ResNet殘差網(wǎng)絡(luò)解決了網(wǎng)絡(luò)退化問題,并通過添加卷積濾波器層等方式在間日瘧原蟲(瘧疾)感染人血凃片數(shù)據(jù)集的檢測中提升了檢測效果。采用文中方法,在檢測人員的鏡檢水平參差不齊的環(huán)境下,可以大大提高識別率,同時(shí)降低了對原始圖像的質(zhì)量要求,以及訓(xùn)練樣本數(shù)量的要求,在醫(yī)學(xué)領(lǐng)域尤其是醫(yī)療診斷方面具有重要意義。在未來的研究中,將繼續(xù)優(yōu)化模型,用來幫助研究人員對視野圖像中的細(xì)胞進(jìn)行自動分類和分階段,并識別和區(qū)分受感染階段的特征。另外需要測試不同來源的瘧疾血涂片樣本來測試算法,以拓展此算法的應(yīng)用場景。