王榆鋒,李大海
江西理工大學(xué) 信息工程學(xué)院,江西 贛州 341000
血細(xì)胞檢測(cè)是一種通過(guò)專(zhuān)業(yè)儀器對(duì)血液中細(xì)胞成分進(jìn)行分析的技術(shù)。在醫(yī)學(xué)上將在血液中循環(huán)的細(xì)胞分為三類(lèi):即白細(xì)胞、紅細(xì)胞和血小板[1]。當(dāng)這三類(lèi)細(xì)胞計(jì)數(shù)結(jié)果出現(xiàn)異常提高或降低時(shí),人體可能已經(jīng)罹患某些疾病。對(duì)于這三類(lèi)細(xì)胞的準(zhǔn)確高效的識(shí)別可以提供病人總體健康狀況的概覽[2],因此血細(xì)胞檢測(cè)已經(jīng)成為醫(yī)學(xué)領(lǐng)域中最為常見(jiàn)的血液檢驗(yàn)項(xiàng)目之一。目前血細(xì)胞檢測(cè)主要分為兩類(lèi):早期主要通過(guò)傳統(tǒng)的圖像處理技術(shù),最經(jīng)典的莫過(guò)于先手工制片染色,再通過(guò)顯微鏡進(jìn)行人工觀(guān)察分類(lèi)[3],該方法要求檢驗(yàn)人員具備關(guān)于細(xì)胞形態(tài)學(xué)大量的基礎(chǔ)知識(shí),并通過(guò)不斷學(xué)習(xí)和反復(fù)鍛煉,熟練掌握對(duì)形態(tài)的觀(guān)察和辨別能力。由于顯微圖像數(shù)據(jù)量巨大并且血細(xì)胞形態(tài)的多樣性,導(dǎo)致傳統(tǒng)的血細(xì)胞檢測(cè)方法越來(lái)越無(wú)法滿(mǎn)足檢測(cè)人員在血細(xì)胞分析中遇到的各種復(fù)雜問(wèn)題。近年來(lái),隨著諸多基于深度學(xué)習(xí)的高效目標(biāo)檢測(cè)算法被陸續(xù)提出,其也被廣泛地應(yīng)用于血細(xì)胞檢測(cè)任務(wù)。目前基于深度學(xué)習(xí)的目標(biāo)檢測(cè)算法大致可分為兩大類(lèi)。一是使用候選區(qū)域網(wǎng)絡(luò)(RPN)來(lái)提取候選目標(biāo)信息的二階段(two-stage)檢測(cè)算法如R-CNN[4]、Faster-R-CNN[5]、Mask-R-CNN[6]等。另一類(lèi)是YOLO系列[7-9]、SSD[10]和RetinaNet[11]等單階段(one-stage)目標(biāo)檢測(cè)算法。
二階段目標(biāo)檢測(cè)算法主要包含骨干網(wǎng)、區(qū)域建議網(wǎng)絡(luò)和檢測(cè)頭三部分[12]。其中區(qū)域建議網(wǎng)絡(luò)用于生成包含感興趣對(duì)象的大量候選區(qū)域建議,并判斷屬于前景或背景,接著使用邊界框回歸函數(shù)修正錨點(diǎn)位置以獲得精確的區(qū)域建議。最接近上述技術(shù)中,劉樹(shù)杰等[13]提出使用Faster R-CNN對(duì)紅細(xì)胞進(jìn)行檢測(cè)和計(jì)數(shù),該方法可以對(duì)孤立的紅細(xì)胞進(jìn)行有效的識(shí)別和精準(zhǔn)定位。但由于Faster R-CNN使用區(qū)域候選網(wǎng)絡(luò)(RPN)來(lái)提取感興趣目標(biāo)的信息,導(dǎo)致檢測(cè)器需要消耗大量計(jì)算資源,檢測(cè)速率低下。同時(shí),該方法對(duì)圖像中出現(xiàn)重疊度及密度較高的區(qū)域的漏檢率極高,使整體的平均檢測(cè)準(zhǔn)確率不高。
單階段(one-stage)目標(biāo)檢測(cè)算法能夠通過(guò)對(duì)輸入圖像進(jìn)行直接應(yīng)用,并獲取相對(duì)于預(yù)定錨點(diǎn)框的輸出類(lèi)別和相應(yīng)的邊界框定位,直接將目標(biāo)檢測(cè)視作回歸問(wèn)題求解。而YOLO系列作為近幾年實(shí)用性較強(qiáng)的單階段算法,主要由用于特征提取的骨干網(wǎng)絡(luò)(Backbone)、用于特征融合的頸部(Neck)和進(jìn)行分類(lèi)和回歸操作的檢測(cè)頭(Head)三部分組成[14]。其中YOLOv4[15]作為代表性單階段算法,其在YOLOv3的基礎(chǔ)上,在骨干網(wǎng)絡(luò)中融合CSPNet[16]算法,提高檢測(cè)速率的同時(shí)保證檢測(cè)精度,在其頸部改用路徑聚合網(wǎng)絡(luò)PANet[17]改善淺層特征信息丟失的問(wèn)題。最接近上述技術(shù)中,張冬冬等[18]提出一種基于YOLOv3和密度估計(jì)的細(xì)胞計(jì)數(shù)法,通過(guò)對(duì)YOLOv3的骨干網(wǎng)絡(luò)進(jìn)行修改,使用單個(gè)網(wǎng)絡(luò)完成整個(gè)檢測(cè)的方法。然而上述現(xiàn)有的YOLO系列算法雖能有效提高目標(biāo)檢測(cè)的速率,但整體網(wǎng)絡(luò)層次簡(jiǎn)單,骨干網(wǎng)絡(luò)(Backbone)部分仍存在特征提取能力不足;另外頸部(Neck)均采用卷積與上采樣的方式結(jié)合,不能有效融合高質(zhì)量上下文特征信息,導(dǎo)致整體的檢測(cè)準(zhǔn)確率不高。
為解決上述各類(lèi)目標(biāo)檢測(cè)方法應(yīng)用于血細(xì)胞檢測(cè)的實(shí)時(shí)性不足和精度偏低的問(wèn)題,本文提出一種基于YOLO框架的高效血細(xì)胞檢測(cè)算法,在傳統(tǒng)的YOLO算法“Backbone+Neck+Head”框架結(jié)構(gòu)的基礎(chǔ)上,本文所提方法的創(chuàng)新點(diǎn)在于:
(1)為骨干網(wǎng)絡(luò)Backbone部分構(gòu)建多尺度殘差模塊(MRM),用于提高對(duì)網(wǎng)絡(luò)的特征信息利用率,同時(shí)解決骨干網(wǎng)絡(luò)中較深層網(wǎng)絡(luò)丟失淺層存在的邊緣與細(xì)節(jié)信息的問(wèn)題。
(2)為頸部Neck設(shè)計(jì)了一種名為Attention Reseau的注意力結(jié)構(gòu)嵌入模型,用于融合更多高質(zhì)量的上下層語(yǔ)義特征信息,以大幅度提高檢測(cè)準(zhǔn)確率。
(3)針對(duì)小目標(biāo)檢測(cè)能力的不足,采用了focal-loss損失函數(shù)代替YOLO系列中原有的損失交叉熵函數(shù),通過(guò)給正負(fù)樣本加上權(quán)重值,用于控制正負(fù)樣本對(duì)總損失函數(shù)值的共享權(quán)重,使得模型在訓(xùn)練過(guò)程中更專(zhuān)注于難分的樣本,進(jìn)而解決樣本類(lèi)別不均衡的問(wèn)題。
空間金字塔模塊是一種融合深淺層特征信息做復(fù)雜任務(wù)的有效模塊,其利用空間金字塔池化捕獲多尺度語(yǔ)義信息。目前,各類(lèi)基于空間金字塔的改進(jìn)模塊已被廣泛應(yīng)用于如目標(biāo)檢測(cè)、語(yǔ)義分割等各類(lèi)計(jì)算機(jī)視覺(jué)任務(wù)[19]。Zhao等人[20]提出PSPNet網(wǎng)絡(luò),運(yùn)用空間金字塔池化代替簡(jiǎn)單卷積層堆積的策略,通過(guò)聚合不同區(qū)域的上下文語(yǔ)義信息,來(lái)提高獲取不同子區(qū)域全局信息的能力。Chen等人[21]基于DeepLab網(wǎng)絡(luò)提出DeepLab-V2,采用擴(kuò)張卷積與空間金字塔池化相結(jié)合的方式,在不增加參數(shù)的同時(shí)擴(kuò)大了感受野。由于金字塔池化作為一種下采樣操作仍存在一定缺陷,容易丟失小型目標(biāo)的特征信息,因此文獻(xiàn)[22]提出DeepLab-V3網(wǎng)絡(luò),舍棄池化操作,以并行的方式將4個(gè)不同擴(kuò)張率的擴(kuò)張卷積并聯(lián),可以有效獲取多尺度上下文圖像信息,提高模型性能。但DeepLab-V3使用的擴(kuò)張卷積的擴(kuò)張率過(guò)大,直接遷移應(yīng)用容易導(dǎo)致卷積嚴(yán)重稀疏化,提取到的特征缺少邊緣與細(xì)節(jié)信息?;谝陨戏治?,本文設(shè)計(jì)一種多尺度殘差模塊(MRM)嵌入YOLO框架的骨干網(wǎng)絡(luò)中,該模塊將多尺度擴(kuò)張卷積與殘差塊相加混合,先通過(guò)并聯(lián)多個(gè)合適擴(kuò)張率的擴(kuò)張卷積,用于獲取上下文信息的同時(shí)減小擴(kuò)張卷積稀疏化,再與殘差模塊相加融合,避免丟失淺層網(wǎng)絡(luò)的細(xì)節(jié)信息。
注意力門(mén)控機(jī)制通常用于圖像分析、機(jī)器翻譯等分類(lèi)任務(wù)。最初注意力門(mén)控機(jī)制的工作是通過(guò)輸入圖像的梯度來(lái)解釋輸出類(lèi)的權(quán)重分布進(jìn)而探索注意力圖。目前,可訓(xùn)練的注意力模塊分為硬注意力和軟注意力。其中某些硬注意力機(jī)制[23]包括了迭代區(qū)域建議和剪切區(qū)域,通常是不可微的,并依賴(lài)使用強(qiáng)化學(xué)習(xí)方法進(jìn)行參數(shù)更新,這導(dǎo)致這類(lèi)模型訓(xùn)練非常困難。相反,軟注意力是概率性的,使用的是標(biāo)準(zhǔn)的反向傳播方法進(jìn)行參數(shù)更新。最近嵌入了軟注意力模塊的網(wǎng)絡(luò)模型,通常用于目標(biāo)檢測(cè)與圖像分類(lèi)。如Hu等人[24]提出SE-Net網(wǎng)絡(luò),以通道強(qiáng)調(diào)方式聚集更多重要特征維度信息,該方法在2017年的ILSVRC圖像分類(lèi)挑戰(zhàn)中獲得了最佳表現(xiàn)。Jetley等人[25]提出自我注意力(self-attention)技術(shù)用來(lái)消除對(duì)外部門(mén)控信息的依賴(lài),進(jìn)而通過(guò)類(lèi)專(zhuān)用池化,使得圖像分類(lèi)性能更加準(zhǔn)確,同時(shí)提高魯棒性。蔣镕圻等人[14]通過(guò)研究注意力模塊嵌入位置,證明了在目標(biāo)檢測(cè)任務(wù),嵌入注意力模塊同樣能取得良好的性能提升。本文以文獻(xiàn)[25]的自我注意力結(jié)構(gòu)為基礎(chǔ)對(duì)注意力門(mén)控結(jié)構(gòu)進(jìn)行改進(jìn),添加了一種網(wǎng)格技術(shù)(Reseau)進(jìn)一步加強(qiáng)模型自適應(yīng)特征學(xué)習(xí)的能力。
本文提出了一種基于YOLO框架的新網(wǎng)絡(luò)結(jié)構(gòu)(命名為YOLO-Att),結(jié)構(gòu)如圖1所示。該網(wǎng)絡(luò)的Backbone采用Darknet-53[26]+MRM,圖中Res1、Res2、Res8、Res8和Res4是Darknet-53里面的5個(gè)殘差網(wǎng)絡(luò)塊,但一系列的殘差模塊中的多次卷積操作可能導(dǎo)致深層網(wǎng)絡(luò)的目標(biāo)細(xì)節(jié)與邊緣信息消失,進(jìn)而影響目標(biāo)定位,因此本文為后三個(gè)殘差模塊增加多尺度殘差模塊(MRM),能夠加強(qiáng)特征的多尺度表達(dá),提高網(wǎng)絡(luò)對(duì)血細(xì)胞的檢測(cè)敏感度;再者,在頸部(Neck)上設(shè)計(jì)Attention Reseau結(jié)構(gòu)用于獲取更多上下層高效的語(yǔ)義特征信息,以提高目標(biāo)檢測(cè)算法的準(zhǔn)確率。同時(shí)采用Focal loss損失函數(shù)改進(jìn)原有的損失函數(shù),通過(guò)提高正負(fù)樣本的權(quán)重值,解決樣本類(lèi)別不均衡的同時(shí)加快模型收斂。模型最終獲得三種不同尺度的檢測(cè)輸出,分別為y1(13×13×255)、y2(26×26×255)、y3(52×52×255)。
圖1 YOLO-Att結(jié)構(gòu)圖Fig.1 YOLO-Att structure
在目標(biāo)識(shí)別領(lǐng)域中,識(shí)別物體存在大小多樣性,若使用單一尺寸卷積進(jìn)行圖像特征提取,隨著網(wǎng)絡(luò)層數(shù)增加,可能導(dǎo)致高層網(wǎng)絡(luò)中的小尺寸物體或不顯著物體的特征數(shù)量極少,語(yǔ)義信息不夠豐富,進(jìn)而影響整體識(shí)別精度??臻g金字塔結(jié)構(gòu)通過(guò)多個(gè)不同感受野大小的擴(kuò)張卷積將任意尺寸的特征映射進(jìn)行多個(gè)尺度的卷積操作,再拼接成一個(gè)固定大小的特征向量,進(jìn)而識(shí)別不同大小的物體。
基于以上分析,本文設(shè)計(jì)一種多尺度殘差模塊嵌入Backbone部分,該模塊通過(guò)將三個(gè)不同擴(kuò)張率的擴(kuò)張卷積添加到殘差模塊后以獲得更多有效的特征信息,結(jié)構(gòu)如圖2所示。輸入特征先將1×1的普通卷積與三個(gè)不同擴(kuò)張率(2,3,6)的擴(kuò)張卷積并聯(lián),其中普通卷積主要用于提取小尺寸細(xì)胞的特征信息,擴(kuò)張卷積負(fù)責(zé)提取大型與中型尺寸細(xì)胞的特征信息。接著將經(jīng)所有卷積操作輸出的特征映射進(jìn)行拼接處理,以獲取多尺度特征信息,所有拼接操作的卷積運(yùn)算必須保證通道數(shù)相同。最后在與殘差模塊進(jìn)行融合,用于提升語(yǔ)義表達(dá)能力的同時(shí)加速梯度反向傳播[19]。圖3為普通卷積與不同尺度擴(kuò)張卷積用于捕獲圖片中的不同尺寸細(xì)胞的特征信息,可以看出不同卷積操作能夠有效提取圖像中不同尺寸的細(xì)胞,并將提取的多尺度特征信息聚合。與此同時(shí),該模塊在聚合多尺度信息時(shí)不容易喪失分辨率,保證檢測(cè)速度的同時(shí)提高對(duì)各個(gè)尺度細(xì)胞的檢測(cè)精度,尤其是小尺寸血小板的檢測(cè)精度。
圖2 多尺度殘差模塊(MRM)Fig.2 Multi-scale residuals module(MRM)
圖3 不同卷積率效果圖Fig.3 Renderings of different convolution rates
YOLO系列的頸部(Neck)通過(guò)采用簡(jiǎn)單卷積與上采樣操作結(jié)合,用于捕獲足夠大的接受域,進(jìn)而獲得語(yǔ)義上下文信息[27]。然而,對(duì)圖像中顯示出形狀變化的細(xì)胞,簡(jiǎn)單卷積與上采樣操作不能有效減少其假陽(yáng)性預(yù)測(cè),導(dǎo)致整體檢測(cè)準(zhǔn)確率不高。本文設(shè)計(jì)了一種嵌入式注意力門(mén)控機(jī)制(命名為Attention Reseau)來(lái)提高目標(biāo)檢測(cè)的準(zhǔn)確率。該注意力門(mén)控機(jī)制能通過(guò)自適應(yīng)特征學(xué)習(xí)提高獲取上下文語(yǔ)義信息的質(zhì)量,對(duì)相關(guān)特征屬性進(jìn)行強(qiáng)調(diào),同時(shí)能夠逐步抑制無(wú)關(guān)背景區(qū)域的特征響應(yīng),進(jìn)而提高檢測(cè)準(zhǔn)確性[27]。Attention Reseau的結(jié)構(gòu)如圖4所示。
圖4 Attention Reseau結(jié)構(gòu)圖Fig.4 Structure of Attention Reseau
Attention Reseau模塊的輸入為上層特征映射xl∈RFl(其中Fl表示對(duì)應(yīng)于第l層特征映射的數(shù)量)與下層特征映射gj∈RFg,輸出為輸入的特征映射與注意力系數(shù)的元素級(jí)乘法Xl=xl?aj,其中特征注意力系數(shù)ai∈[0,1],用于識(shí)別顯著的圖像區(qū)域和特征響應(yīng),只保留與特定任務(wù)相關(guān)的激活特征,如圖中特征映射被染色部分所示。受文獻(xiàn)[28]啟發(fā),在多個(gè)語(yǔ)義類(lèi)的情況下,本文使用多維注意系數(shù)來(lái)設(shè)計(jì)學(xué)習(xí)模塊,使得整個(gè)Attention Reseau學(xué)會(huì)了專(zhuān)注于目標(biāo)結(jié)構(gòu)的某個(gè)子集。下層特征映射gj用于每個(gè)像素點(diǎn)i來(lái)確定焦點(diǎn)區(qū)域,該特征映射包含大量上下文信息用于修剪較低級(jí)別的特征響應(yīng),進(jìn)而使Attention Reseau在圖像分類(lèi)中取得良好的表現(xiàn)。完整的注意力公式如下:
傳統(tǒng)的YOLO系列應(yīng)用的損失函數(shù)是由位置損失、置信度損失以及分類(lèi)損失三個(gè)函數(shù)相加而成,其中分類(lèi)和置信度預(yù)測(cè)中,采用二元交叉熵?fù)p失函數(shù)進(jìn)行分類(lèi)和置信度的預(yù)測(cè),同時(shí)使用獨(dú)立logistic替換softmax分類(lèi)[30]。在目標(biāo)檢測(cè)任務(wù)中,一張圖片會(huì)生成大量的候選區(qū)域,但是通常只有很少的部分是包含檢測(cè)目標(biāo),此種現(xiàn)象容易導(dǎo)致樣本類(lèi)別不均衡,即負(fù)樣本數(shù)量過(guò)多,占總的損失值的大部分,而且這些樣本大多都是屬于易分類(lèi)的,因此造成模型的優(yōu)化方向偏離。Focal loss損失函數(shù)[31]是基于標(biāo)準(zhǔn)交叉熵?fù)p失函數(shù)改進(jìn)得到的,該損失函數(shù)通過(guò)降低易分類(lèi)樣本的權(quán)重,使模型在訓(xùn)練時(shí)更專(zhuān)注于難分類(lèi)的樣本。因此本文采用Focal loss損失函數(shù)代替原損失函數(shù)中分類(lèi)與置信度的二元交叉熵?fù)p失函數(shù)。二元交叉熵?fù)p失函數(shù)如式(4)所示:
其中,Pt為預(yù)測(cè)樣本屬于true的概率,y表示label取值為(+1,-1)。而Focal loss是在標(biāo)準(zhǔn)交叉熵中添加一種調(diào)制系數(shù)(1-Pt)r,這么做既能調(diào)整正負(fù)樣本權(quán)重值,同時(shí)減少易分類(lèi)樣本的權(quán)重,從而使得模型在訓(xùn)練中更加專(zhuān)注于難分類(lèi)的樣本。Focal loss損失函數(shù)如式(5)所示:
當(dāng)某個(gè)樣本錯(cuò)誤分類(lèi)時(shí)(即Pt很小),那么調(diào)制因子(1-Pt)趨近于1,損失不受影響;而當(dāng)Pt趨于1時(shí),因子(1-Pt)接近0,則劃分好的樣本權(quán)重值被降低了,對(duì)于總loss值的貢獻(xiàn)非常小。另一方面當(dāng)r=0,α=1時(shí),F(xiàn)ocal loss就轉(zhuǎn)化為傳統(tǒng)的交叉熵函數(shù),當(dāng)r增加時(shí),調(diào)制系數(shù)(1-Pt)r也會(huì)增加,參數(shù)r可用于調(diào)節(jié)易分類(lèi)樣本權(quán)重的比值。在文獻(xiàn)[31]中通過(guò)實(shí)驗(yàn)證明當(dāng)α=0.25,r=2時(shí)Focal loss對(duì)于模型訓(xùn)練的效果最佳,在該數(shù)值下,一個(gè)易分類(lèi)樣本(假設(shè)Pt>0.9)loss降為標(biāo)準(zhǔn)交叉熵loss的1/100,但對(duì)于難分類(lèi)樣本(假設(shè)Pt<0.5),其loss最多降為標(biāo)準(zhǔn)交叉熵的1/4。這就使得難分類(lèi)樣本的權(quán)重值相對(duì)提升了很多,也就增加了那些錯(cuò)誤分類(lèi)樣本的重要性。因此改進(jìn)后的損失函數(shù)如下所示:
Lxywh為中心點(diǎn)坐標(biāo)與寬高誤差之和,其中λcoord為坐標(biāo)系數(shù)。Lconf為有物體與無(wú)物體的置信度誤差之和,c?i表示真實(shí)值,取值為是否為預(yù)測(cè)對(duì)象,若是,那么c?i=1,否則c?i=0。Lclass表示目標(biāo)分類(lèi)損失函數(shù),Iobjij為第i個(gè)網(wǎng)格的第j個(gè)錨框的匹配情況。圖5是在血細(xì)胞數(shù)據(jù)集BCCD上采用原損失函數(shù)與改進(jìn)的損失函數(shù)在相同模型YOLOv-Att下?lián)p失值變化的對(duì)比效果圖。藍(lán)色表示采用原損失值變化情況,橙色表示采用改進(jìn)損失值變化情況,橫坐標(biāo)是訓(xùn)練次數(shù)Epoch,縱坐標(biāo)表總損失值Loss,可以看出,采用改進(jìn)損失函數(shù),其初始損失值明顯小于采用原損失函數(shù)的初始損失值;在訓(xùn)練次數(shù)達(dá)到100次后采用改進(jìn)損失函數(shù)的模型開(kāi)始收斂,而采用原損失函數(shù)的模型當(dāng)epoch達(dá)到120次左右時(shí)才開(kāi)始收斂,最終訓(xùn)練達(dá)到150次后,采用原損失函數(shù)的模型,其損失值收斂至116,而采用改進(jìn)損失函數(shù)的模型的損失值可收斂至53左右。綜上所述,當(dāng)模型采用改進(jìn)的損失函數(shù)時(shí),獲得的總Loss值更小,收斂更快。
圖5 不同損失函數(shù)曲線(xiàn)對(duì)比圖Fig.5 Comparison of different loss function curves
本文的實(shí)驗(yàn)環(huán)境是在CPUi7-9750H,2.60 GHz;內(nèi)存16 GB;顯卡NVIDIA GTX 1660Ti;OS Window10,64位操作系統(tǒng);開(kāi)發(fā)環(huán)境Python3.6下進(jìn)行,使用深度學(xué)習(xí)框架keras;底層Tensorflow2.0.0。GPU加速軟件CUDA10.0和CUDNN7.6。
本文使用血細(xì)胞檢測(cè)的公開(kāi)數(shù)據(jù)集BCCD,該數(shù)據(jù)集共有364幅帶注釋的血細(xì)胞圖片,但它存在一定的缺陷。數(shù)據(jù)集中有一個(gè)注釋文件不包含任何紅細(xì)胞(RBC),但圖像卻有RBC。此外,還有三個(gè)注釋文件顯示遠(yuǎn)低于實(shí)際數(shù)量的紅細(xì)胞(RBC),因此對(duì)數(shù)據(jù)進(jìn)行重新篩選并刪除這4張標(biāo)簽和特征不對(duì)應(yīng)的圖片,最終數(shù)據(jù)集包括360張圖像,每幅分辨率大小為640×480。根據(jù)血細(xì)胞類(lèi)型將數(shù)據(jù)標(biāo)注為3類(lèi):白細(xì)胞(WBC)、紅細(xì)胞(RBC)、血小板(Platelets),其中血小板(Platelets)作為小目標(biāo)檢測(cè)具有一定的挑戰(zhàn)性。
實(shí)驗(yàn)前先對(duì)血細(xì)胞數(shù)據(jù)集進(jìn)行處理,對(duì)數(shù)據(jù)圖像進(jìn)行統(tǒng)一的編號(hào)使用Python腳本將標(biāo)注好的數(shù)據(jù)集編寫(xiě)為適合YOLO網(wǎng)絡(luò)的TXT文件格式。隨機(jī)抽取300張圖片作為訓(xùn)練集與驗(yàn)證集,剩余的60張圖片作為測(cè)試集,訓(xùn)練集與測(cè)試集之比為5∶1;仿照PASCAL VOC格式將標(biāo)注好的信息進(jìn)行歸一化處理。
實(shí)驗(yàn)采用Keras深度學(xué)習(xí)框架搭建算法模型。在訓(xùn)練圖像輸入模型前,圖像尺寸都被縮放為416×416,并對(duì)其進(jìn)行隨機(jī)數(shù)據(jù)增強(qiáng),由于BCCD屬于小型數(shù)據(jù)集,因此本文采用Mosaic數(shù)據(jù)增強(qiáng),即隨機(jī)讀取3張圖片,進(jìn)行圖像翻轉(zhuǎn)、扭曲、旋轉(zhuǎn)等操作后,按一定比例組合成一張全新圖片,不僅加大了訓(xùn)練數(shù)量,還能有效降低模型對(duì)識(shí)別物體的位置依賴(lài),進(jìn)而提高模型的泛化能力。在訓(xùn)練時(shí),應(yīng)用遷移學(xué)習(xí)的方法來(lái)加速訓(xùn)練,將在Imagenet數(shù)據(jù)集中訓(xùn)練好的Darknet-53的前35層卷積層權(quán)重導(dǎo)入模型。首先凍結(jié)前35層,訓(xùn)練35層之后的網(wǎng)絡(luò),初始學(xué)習(xí)率設(shè)置為0.001,每50次epochs學(xué)習(xí)率衰減為原來(lái)的0.1倍,動(dòng)量為0.9,衰減系數(shù)為0.000 5,批量大小為8。在迭代50次之后解除凍結(jié),接著訓(xùn)練,該階段初始學(xué)習(xí)率設(shè)置為0.000 1,進(jìn)行同樣學(xué)習(xí)率衰減策略,批量大小設(shè)置為4。最終訓(xùn)練至150次epochs損失收斂停止訓(xùn)練。
本實(shí)驗(yàn)采用準(zhǔn)確率(precision,P)、召回率(recall,R)與mAP(mean average precision,即平均AP值)作為評(píng)價(jià)指標(biāo)來(lái)評(píng)估網(wǎng)絡(luò)的性能[32]。其中平均精度均值(mAP)是目標(biāo)檢測(cè)中最常用的評(píng)估識(shí)別準(zhǔn)確率的指標(biāo)之一。具體公式分別表示為:
式中,TP、FP、FN分別表示每個(gè)測(cè)試集場(chǎng)景中的正確檢測(cè)出、錯(cuò)誤檢測(cè)出以及沒(méi)有檢測(cè)出的目標(biāo)總數(shù);n表示分類(lèi)數(shù),AP為單個(gè)目標(biāo)類(lèi)別的平均精度,近似等于P/R曲線(xiàn)下面積(area under curve,AUC),定義為:另外本文還計(jì)算了測(cè)試實(shí)驗(yàn)的時(shí)間,用于比較模型的檢測(cè)速度。
3.4.1 錨框優(yōu)化實(shí)驗(yàn)
在one-stage目標(biāo)檢測(cè)網(wǎng)絡(luò)中,錨框設(shè)置的合理性對(duì)于最終模型的性能至關(guān)重要,如果錨框的尺寸與檢測(cè)物體的尺寸差距過(guò)大,那么錨框的正樣本數(shù)會(huì)非常少,導(dǎo)致大量的錯(cuò)漏現(xiàn)象。與常見(jiàn)的檢測(cè)目標(biāo)不同,血細(xì)胞的真實(shí)邊界框縱橫比接近1∶1,通用的錨點(diǎn)框參數(shù)并不適用于該數(shù)據(jù)集。因此,本文采用K-means++聚類(lèi)算法在BCCD訓(xùn)練集上生成更適合的錨點(diǎn)框,同時(shí)與使用通用的錨點(diǎn)框進(jìn)行對(duì)比實(shí)驗(yàn)。分別在YOLO-Att對(duì)數(shù)據(jù)集訓(xùn)練150個(gè)epoch,而后對(duì)測(cè)試集進(jìn)行對(duì)應(yīng)的mAP值計(jì)算。實(shí)驗(yàn)結(jié)果如表1所示。
表1 錨框?qū)Ρ葘?shí)驗(yàn)Table 1 Anchor frame contrast experiment
通過(guò)K-means++聚類(lèi)算法得到錨框的寬高分別是(25,24)、(54,56)、(70,47)、(64,61)、(55,75)、(78,63)、(69,72)、(85,80)、(140,127)??梢詮木垲?lèi)后的錨框尺寸直觀(guān)看出,縱橫比約為1∶1的居多,符合血細(xì)胞的標(biāo)注框特征。另外聚類(lèi)預(yù)測(cè)出的檢測(cè)框和真實(shí)標(biāo)注框的平均IoU(AveIoU)的精度相比通用錨框得出的AveIoU提高了22.92個(gè)百分點(diǎn),對(duì)應(yīng)的mAP也提高了2.97個(gè)百分點(diǎn)。
3.4.2 對(duì)比分析實(shí)驗(yàn)
本文將YOLO-Att模型與現(xiàn)有的目標(biāo)檢測(cè)模型Faster-RCNN、SSD、YOLOv3、RetinaNet[11]及YOLOv4在數(shù)據(jù)集BCCD上進(jìn)行對(duì)比分析,通過(guò)對(duì)比數(shù)據(jù)集中各個(gè)細(xì)胞的AP指標(biāo)以及平均檢測(cè)精度(mAP)、檢測(cè)速率(speed time),驗(yàn)證YOLO-Att的高效性。實(shí)驗(yàn)結(jié)果如表2所示,YOLO-Att模型的平均檢測(cè)精度達(dá)到了66.32%,相比Faster-RCNN、YOLOv3、SDD以及YOLOv4分別提高了5.93、9.14、10.98、5.09個(gè)百分點(diǎn)。另外與采用Focal loss損失函數(shù)的RetinaNet網(wǎng)絡(luò)相比檢測(cè)精度提高約7個(gè)百分點(diǎn)。同時(shí)YOLO-Att在小型細(xì)胞(Platelets)的檢測(cè)精度上相比其他算法均有較為明顯的提高,進(jìn)一步驗(yàn)證了YOLO-Att在小型目標(biāo)的檢測(cè)中有一定的優(yōu)勢(shì)。為體現(xiàn)YOLO-Att模型的效率,表2中還比較了在NVIDIA GTX 1660Ti顯卡上測(cè)試的處理速度。如表中結(jié)果所示,YOLO-Att不僅在處理速度上匹配了one stage類(lèi)算法,處理一張測(cè)試圖片僅需85.4 ms,還大幅提高了檢測(cè)精度,這在實(shí)際應(yīng)用中更符合業(yè)界對(duì)血細(xì)胞檢測(cè)算法的實(shí)時(shí)性要求。
表2 對(duì)比分析實(shí)驗(yàn)Table 2 Comparative analysis experiment
3.4.3 消融實(shí)驗(yàn)
本文通過(guò)消融實(shí)驗(yàn)對(duì)比分析,進(jìn)一步驗(yàn)證各個(gè)改進(jìn)點(diǎn)的優(yōu)化效果,實(shí)驗(yàn)對(duì)比結(jié)果如表3所示,對(duì)基礎(chǔ)網(wǎng)絡(luò)YOLO框架結(jié)構(gòu)嵌入多尺度殘差增強(qiáng)模塊、Attention Reseau模塊以及對(duì)原Loss進(jìn)行優(yōu)化,該消融實(shí)驗(yàn)均采用K-means++聚類(lèi)得到后錨框,從表3中數(shù)據(jù)可知,傳統(tǒng)YOLO框架的平均分割精度mAP只有57.18%,當(dāng)引入多尺度殘差模塊后,加強(qiáng)了骨干網(wǎng)絡(luò)的細(xì)節(jié)特征信息提取能力,將平均分割精度提高了1.39個(gè)百分點(diǎn);而嵌入Attention Reseau模塊后,可將平均分割精度大幅度提高至61.12%;最后改進(jìn)優(yōu)化損失函數(shù),雖然平均分割精度不如優(yōu)化模型2,但是加快了模型收斂速度。綜合上述三種改進(jìn)點(diǎn)后,相對(duì)于YOLO,本文提出的優(yōu)化模型YOLO-Att不僅保持了原有的檢測(cè)速率,還有效地將分割精度提高了9.14個(gè)百分點(diǎn),說(shuō)明了改進(jìn)算法YOLOAtt的實(shí)用性。
表3 消融實(shí)驗(yàn)Table 3 Ablation experiments
3.4.4 圖片對(duì)比效果
隨機(jī)選取測(cè)試集圖的圖片進(jìn)行檢測(cè)結(jié)果對(duì)比分析,對(duì)Faster-RCNN、YOLOv3、YOLOv4以及YOLO-Att進(jìn)行對(duì)比,結(jié)果如圖6所示,圖6(a)為人工標(biāo)注圖片,圖6(b)為Faster-RCNN測(cè)試結(jié)果圖,圖6(c)為YOLOv3測(cè)試結(jié)果圖,圖6(d)為YOLOv4測(cè)試結(jié)果圖,圖6(e)為YOLO-Att測(cè)試結(jié)果圖。從第一行的對(duì)比分析中可看出,當(dāng)只存在白細(xì)胞與紅細(xì)胞時(shí),采用Faster-RCNN算法標(biāo)注后的血細(xì)胞存在1個(gè)錯(cuò)檢與3個(gè)漏檢,運(yùn)用YOLOv3算法標(biāo)注后的血細(xì)胞存在1個(gè)錯(cuò)檢與2個(gè)漏檢,YOLOv4算法標(biāo)注的存在1個(gè)錯(cuò)檢與1個(gè)漏檢,而采用YOLO-att算法標(biāo)注后的血細(xì)胞沒(méi)有錯(cuò)檢與漏檢。而當(dāng)存在小型細(xì)胞血小板(Platelets)時(shí),如第三、四、五行的對(duì)比分析圖所示,F(xiàn)aster-RCNN并不能有效地識(shí)別并標(biāo)記出血小板(Platelets),而采用YOLOv3、YOLOv4與YOLO-Att算法則可以高效地檢測(cè)出來(lái)(圖中紅色框標(biāo)注);另一方面,對(duì)比采用YOLOv3、YOLOv4以及YOLO-Att算法的所有效果圖可知,采用YOLO系列算法進(jìn)行血細(xì)胞檢測(cè)時(shí),標(biāo)注的紅細(xì)胞(RBC)存在大量的錯(cuò)檢與漏檢問(wèn)題,另外白細(xì)胞(WBC)雖能準(zhǔn)確識(shí)別,但其標(biāo)注框的大小與位置卻不夠精準(zhǔn)。綜合圖片檢測(cè)結(jié)果可知,YOLO-Att對(duì)白細(xì)胞(WBC)、孤立的紅細(xì)胞(RBC)與血小板(Platelets)都有非常高的檢測(cè)準(zhǔn)確率,雖然當(dāng)紅細(xì)胞(RBC)存在重疊與粘連部分時(shí),YOLOAtt也存在部分漏檢與錯(cuò)檢問(wèn)題,但相比于其他算法,YOLO-Att大幅提升了檢測(cè)準(zhǔn)確率,并且保持了良好的檢測(cè)速率,進(jìn)一步說(shuō)明了YOLO-Att的高效性。
圖6 可視化對(duì)比圖Fig.6 Visual comparison diagram
本文提出一種面向BCCD血細(xì)胞檢測(cè)的YOLO-Att網(wǎng)絡(luò)模型??紤]精度與效率兩方面,YOLO-Att首先在原YOLO框架的Bockbone中嵌入多尺度殘差模塊,其次為頸部(Neck)設(shè)計(jì)一種注意力門(mén)控結(jié)構(gòu)Attention Reseaus來(lái)提高挖掘上下文語(yǔ)義特征的能力,最后運(yùn)用Focal loss代替原損失函數(shù)中的交叉熵函數(shù),進(jìn)一步提高分割精度。通過(guò)在BCCD數(shù)據(jù)集上的消融實(shí)驗(yàn)驗(yàn)證了YOLO-Att中的各個(gè)嵌入模塊與設(shè)計(jì)的注意力門(mén)控結(jié)構(gòu)的有效性,并且與現(xiàn)有目標(biāo)檢測(cè)網(wǎng)絡(luò)相比,YOLO-Att在網(wǎng)絡(luò)參數(shù)、運(yùn)行速度、識(shí)別精度等方面均取得了更優(yōu)異的結(jié)果。
下一步工作是繼續(xù)優(yōu)化模型結(jié)構(gòu)與損失函數(shù),并研究如何提升分割模型的精度與實(shí)用性,希望能有效解決紅細(xì)胞(RBC)重疊、粘連的情況。