王 靜,孫紫雲,郭 蘋,張龍妹
西安科技大學 通信與信息工程學院,西安710054
外周血白細胞在人體免疫系統中起著不可忽視的作用[1]。白細胞主要分為嗜酸性粒細胞、嗜堿性粒細胞、中性粒細胞、淋巴細胞和單核細胞五種類型[2]。其中嗜中性粒細胞占50%~70%,淋巴細胞占20%~40%,單核細胞占3%~8%,嗜酸性粒細胞占1%~5%,嗜堿性粒細胞不超過1%[3]。當人體發生炎癥或其他疾病時,醫生通過對外周血白細胞分類和計數的結果,來輔助判斷所患疾病的種類和嚴重程度。因此白細胞檢測與分類的準確性和效率對于疾病輔助診斷非常重要。
目前,傳統的白細胞檢測主要是靠人工鏡檢、流式細胞儀來完成,存在工作量大、耗時長、統計量小、結果受主觀影響等問題[4]?;谏疃葘W習的檢測方法因不受主觀因素的影響,工作量小,成為醫學圖像處理的熱門研究領域。Wang 等人[5]提出一種使用YOLO(you only look once)和SSD(single shot multibox detector)的網絡對白細胞進行檢測,平均精度為90.09%。王亞品等人[3]以ResNet 為原型結構,設計了一種適用于白細胞顯微圖像分類的深度卷積神經網絡,在自建數據集上可以達到95.7%的訓練正確率。Shahin等人[6]提出了一種基于深度卷積神經網絡(convolutional neural network,CNN)的白細胞識別系統,在三種不同的公共數據集上測試的總體準確率達到96.1%。Li等人[7]提出了一種基于改進YOLOv3 的端到端白細胞定位分類方法,在LISC 數據集上識別準確率達到96.4%。楊雪瑩等人[8]搭建了LCNet模型用于外周血白細胞的分類識別研究,在自建數據集上識別了八類白細胞,平均識別率達到92.87%。
現有的深度學習方法在白細胞檢測中取得了較好的檢測效果,但是依然存在以下幾點問題:(1)白細胞外觀復雜,類間差別小,檢測難度高;(2)白細胞屬于邊界特征模糊的小目標,識別困難;(3)公開數據集白細胞數據樣本少。
針對以上問題,本文提出一種改進YOLOv5的白細胞檢測算法YOLOv5-CHE,通過擴充白細胞檢測數據集,使設計的算法能夠學習到更多的白細胞特征,以提高算法的泛化能力。通過增大輸入圖像的尺寸、添加坐標注意力機制、增加多尺度檢測、引入多尺度融合以及改變邊框回歸損失函數等方法,提升外周血白細胞檢測的精度。改進后的YOLOv5-CHE算法在白細胞公共數據集上進行訓練和驗證,實驗結果表明,YOLOv5-CHE比YOLOv5 平均精度均值提升了3.8 個百分點,精準率提升了1.8個百分點,召回率提升了1.5個百分點。
YOLOv5算法由三部分構成,整體結構如圖1所示。第一部分為輸入端,訓練圖片輸入尺寸為608×608。第二部分為主干網絡,它使用CSPDarkNet53網絡,從輸入圖像中提取豐富的信息特征。第三部分為檢測層,該部分采用了多尺度進行檢測,在特征金字塔網絡結構(feature pyramid networks,FPN)[9]后加入一種新的自下而上的路徑聚集網絡結構(path aggregation networks,PAN),實現了不同尺度特征信息的融合,之后再對生成的三個特征圖進行預測。

圖1 YOLOv5的整體算法結構圖Fig.1 Overall algorithm structure diagram of YOLOv5
YOLOv5 算法的卷積核主要有3×3 或1×1 兩種,卷積結構包含卷積層、批標準化層(batch normalization,BN)[10]和激活函數層(SiLU)??臻g金字塔池化結構(spatial pyramid pooling,SPP)采用1×1、5×5、9×9、13×13的最大池化方式[11]進行多尺度融合。另外,YOLOv5繼續沿用了YOLOv4 多尺度檢測結構。在主干網絡提取特征后,進行兩次上采樣和三次卷積分別在19×19、38×38和76×76三個尺度上實現大中小目標類別和位置預測。YOLOv5使用自適應錨框計算,針對不同的數據集訓練數據,自適應地計算訓練集中的最佳錨框值[12]。
YOLOv5 是一種檢測精確、速度快的檢測算法,在開源數據集上有良好的效果,但是在白細胞分類識別任務上檢測性能仍需要改進。針對外周血白細胞數量少、外觀復雜、內間差別小、邊界特征不明顯、目標較小以及背景復雜等問題,本文在YOLOv5的基礎上進行改進優化,提出了一種白細胞檢測算法YOLOv5-CHE。實驗和測試的結果驗證了本文改進算法的有效性。
對于輸入圖像,白細胞只占據圖像的較小部分,其余均為背景信息,在卷積時,背景的迭代累積會形成大量冗余信息,從而淹沒部分目標,導致檢測準確率不高。為此,本文使用一種將位置信息嵌入到通道注意力的坐標注意力機制(coordinate attention,CA)[13]。此注意力機制不僅能捕獲跨通道的信息,還能捕獲方向感知和位置感知的信息,使模型更加精準地定位和識別感興趣的目標。
如圖2所示,CA主要分為兩個步驟:第一步是坐標信息的嵌入。給定輸入X,使用池化層分別沿著水平坐標和垂直坐標對每個通道進行編碼,得到一對方向感知特征圖。第二步是坐標信息特征圖的生成。首先將提取到的特征信息進行拼接,然后利用一個1×1卷積變換函數進行信息轉換,進而得到中間特征圖,并沿著空間維度分解為兩個單獨的張量,再利用兩個卷積變換為具有相同通道數的張量,最后將輸出結果進行擴展,分別作為注意力權重分配值。

圖2 CA結構Fig.2 CA structure
為了突出目標的特征,精準地識別和定位白細胞,提升白細胞檢測的準確率,本文在主干特征提取網絡CSPDarkNet53 的卷積層之間添加了注意力機制CA 模塊,將原YOLOv5 算法特征提取網絡中的10 層網絡變為13 層網絡,優化網絡結構如表1 所示,改進后的網絡能更有效地提取檢測目標的特征信息。同時,將輸入圖像的大小設定為640×640尺度,減少了網絡下采樣時小目標信息的丟失。

表1 改進后CSPDarkNet53網絡結構Table 1 Network structure of improved CSPDarkNet53
YOLOv5采用三尺度特征層進行檢測,尺度大小分別為19×19、38×38和76×76。它在目標較大的COCO數據集[14]上檢測效果較好,但對于體積小的白細胞圖像,經多次卷積后會丟失較小的目標區域信息,從而導致檢測率降低。
為了解決上述問題,本文將在YOLOv5的檢測層增加一個160×160的檢測尺度,由之前的三尺度檢測拓展為四尺度檢測,改進后的結構如圖3 所示。YOLOv5-CHE中主要的改進點為:在80×80特征層之后繼續增加卷積層和上采樣,再將二倍上采樣特征層與160×160特征層進行融合,得到第四個160×160的檢測尺度。另外20×20、40×40和80×80的三個檢測層與原算法一致。

圖3 多尺度檢測改進結構Fig.3 Improved structure of multi-scale detection
改進后的模型對五類白細胞目標進行實驗檢測,結果表明,相比于YOLOv5算法,本文提出的改進算法充分利用了淺層特征信息,減少了卷積過程中較小目標區域特征的信息丟失,且五個類別目標檢測精確率均有顯著提高。
YOLOv5中使用自適應錨定框(auto learning bounding box anchors)計算思想,采用K均值(K-Means)聚類算法,根據標注的目標框(ground truth)自動計算獲取合適的錨定框。錨定框由訓練數據自動學習獲得。
由于自定義數據集檢測目標的尺寸與公開數據集存在差異,YOLOv5 重新自動學習錨定框的尺寸。YOLOv5依據COCO數據集設置了九種錨定框,分別是(10,13),(16,30),(33,23),(30,61),(62,45),(59,119),(116,90),(156,198),(373,326)。本文針對邊界不明顯的小目標,采用添加三個檢測白細胞小目標的錨定框尺寸,分別為(5,6),(8,14),(15,11)。將錨定框按照檢測層尺度進行分配,統計的錨定框分配如表2 所示,用于檢測較小的白細胞。

表2 錨定框分配表Table 2 Anchor box allocation table
YOLOv5 的損失函數由邊框回歸損失(bounding box regression score)、置信度損失(objectness score)以及分類概率損失(class probability score)三部分組成。在邊框回歸損失中,采用完全交并比損失函數(complete intersection over union loss,CIOU Loss)[15]實現預測,如式(1)所示。


其中,b、bgt分別代表預測框和真實框的中心點,ρ代表計算兩個中心點間的歐式距離,c代表能夠同時包含預測框和真實框的最小閉包區域的對角線距離,w、wgt分別代表預測框和真實框的寬度,h、hgt分別代表預測框和真實框的寬度,IOU是預測框和真實框之間的交集和并集之比。
CIOU Loss考慮了邊界框回歸的重疊面積、中心點距離和縱橫比,但忽略了寬高分別與其置信度的真實差異,阻礙了模型優化的有效性。針對這一問題,Zhang等人[16]在CIOU Loss的基礎上將縱橫比拆開,提出了有效交并比損失函數(efficient intersection over union loss,EIOU Loss)。
EIOU Loss 的懲罰項是在CIOU Loss 的懲罰項基礎上將縱橫比的影響因子拆開分別計算目標框和錨框的長和寬。該損失函數包含重疊損失、中心距離損失和寬高損失三部分,其中寬高損失直接使目標盒與錨盒的寬度和高度之差最小。EIOU Loss如式(5)所示:

其中,cw和ch是覆蓋預測框和真實框的最小外接框的寬度和高度。
在邊框回歸損失中,EIOU Loss中的寬高損失使得收斂速度更快,精度更高,優于原網絡中的CIOU Loss,因此本文采用性能更優的EIOU Loss邊框回歸損失函數。
本文的處理器為Intel?CoreTMi9-10900X CPU@3.70 GHz,32 GB 運行內存,顯卡為NVIDIA GEFORCE RTX 2080Ti,操作系統為Windows10,64 位。整個實驗基于深度學習框架pytorch 1.7,實驗環境是python 3.8,GPU加速軟件為CUDA10.0和CUDNN7.6。
LISC 數據集[17]和BCCD 數據集[18]均是白細胞檢測領域的經典數據集。LISC 數據庫采集了8 名正常受試者的外周血中樣品,獲得242 張白細胞圖像。BCCD 數據集篩選出了352 張白細胞圖像。五種不同類型的白細胞圖像如圖4所示。

圖4 五種類型的白細胞Fig.4 Five types of white blood cell
針對數據樣本量不足的情況,本文對數據集進行了擴充。訓練數據集為兩個數據集的樣本總和,并采用平移、旋轉、加噪、鏡像和裁剪等方法對數據集進行數據擴充,擴充后的樣本數量是5 940幅圖片。
為了驗證YOLOv5-CHE 改進算法的性能,本文主要使用精確度(precision,P)、召回率(recall,R)、平均精度(average precision,AP)、平均精度均值(mean average precision,mAP)和每秒檢測幀數(frames per second,FPS)[19]等評價指標。
召回率定義為真陽性率與真陽性率及假陰性率和之比,如式(6),其中TP代表真陽性,FN代表假陰性。精確度定義為真陽性率與真陽性率及假陽性率和之比,如式(7)[19],其中FP代表假陽性。mAP 是對所有類別的平均精度(AP)求取均值后獲得,如式(8)、(9)。

在實驗中,白細胞數據集按照7∶3比例隨機劃分為訓練集和測試集。訓練集和測試集的數量分別為4 158和1 782。輸入圖像尺度為640×640,批訓練數據量為32,訓練動量為0.9,初始學習率設為0.001,權重衰減為0.000 5,訓練過程持續了100 個批次,采用隨機梯度下降(stochastic gradient descent,SGD)作為優化函數對模型進行訓練。此次實驗總共訓練6 個模型,分別是Faster RCNN、SDD、YOLOv3、YOLOv4、YOLOv5 和本文改進模型YOLOv5-CHE。
使用改進后YOLOv5-CHE模型在數據集上進行實驗。實驗得到的P-R(Precision-Recall)曲線如圖5所示,其橫軸是召回率,縱軸是精確率。由圖5 中P-R 曲線可知,曲線越靠近坐標(1,1)位置,算法的性能越好。

圖5 YOLOv5-CHE的P-R曲線Fig.5 P-R curve of YOLOv5-CHE
實驗得到的算法性能結果如表3 所示。由表3 可知,改進YOLOv5-CHE 算法的精準率、召回率和mAP分別達到99.4%、99.5%、99.3%。實驗結果證明,本文改進的算法對白細胞圖像的分類識別精度更高。

表3 改進算法YOLOv5-CHE的Precision、Recall和mAP的結果Table 3 Precision,Recall and mAP results of improved model YOLOv5-CHE %
根據設置參數對白細胞數據集進行訓練,圖6分別為訓練過程中YOLOv5算法和本文改進算法YOLOv5-CHE的邊框回歸損失、分類概率損失和置信度損失對比曲線。其中綠色線條代表本文改進算法YOLOv5-CHE曲線,紅色線條代表的是YOLOv5 原算法,橫坐標代表訓練次數,縱坐標代表Loss值。

圖6 訓練損失對比曲線Fig.6 Training loss comparison curve
由圖6(a)邊框回歸損失曲線可知,訓練批次(epochs)數量在5到10批次之間時,YOLOv5算法和改進YOLOv5-CHE算法的邊框回歸損失值比較相近,而在之后的訓練批次中,改進YOLOv5-CHE 算法的損失值一直都小于YOLOv5算法的損失值,且穩定在0.015左右。由圖6(b)分類概率損失可知,改進YOLOv5-CHE算法較YOLOv5算法快速收斂,且損失值小于YOLOv5算法。圖6(c)為置信度損失,改進YOLOv5-CHE 算法和YOLOv5 算法的置信度損失值相近,且始終小于YOLOv5算法的置信度損失值。由此可知,改進YOLOv5-CHE 算法使得最終的損失值小于原算法。
表4 為原YOLOv5 算法和各個改進點對各類白細胞的mAP 對比結果。其中改進點1 是添加注意力機制CA,改進點2 是增加檢測層,改進點3 是改變邊框回歸損失函數。

表4 各類別目標mAP對比Table 4 Comparison of target mAP by each category%
從表4可以看出,改進后算法的平均檢測精度有明顯的提升,改進點1 和改進點2 相比于YOLOv5 算法在嗜酸性粒細胞(Eosi)上分別提升了1.1 個百分點、1.2 個百分點,與其他種類細胞相比,提高的平均檢測精度最高。改進點3 比YOLOv5 算法在單核細胞(Mono)提升了0.8個百分點。整體來看,改進后的YOLOv5-CHE對嗜酸性粒細胞(Eosi)、淋巴細胞(Lymp)、單核細胞(Mono)、中性粒細胞(Neut)這四類細胞的平均檢測精度較高,特別是對于尺度較小單核細胞(Mono)的平均檢測精度提升較大,提升了1.2個百分點。
為了進一步分析每個改進點對YOLOv5-CHE算法的貢獻,本文進行了消融實驗,實驗結果如表5 所示。表5是以YOLOv5為標準算法逐步增加改進點,其中添加注意力機制、多尺度檢測改進和優化錨定框以及邊框回歸損失函數的改進分別對應改進點1、2、3。
從表5 中可知,優化算法1 在標準算法中加入注意力機制,提升了mAP,可以使算法更加精準地定位和識別白細胞;優化算法2結合多尺度檢測,提升了精確度、召回率,可以使小目標白細胞檢測的準確率升高;優化算法3 結合邊框回歸損失函數,提升了精確度、mAP 和mAP@0.5∶0.95,可以整體提高白細胞的檢測性能;將上述三類改進點同時作用于標準的YOLOv5算法時,精確度、召回率、mAP 和mAP@0.5∶0.95 都有提升。實驗結果表明注意力機制、多尺度檢測和邊框回歸損失函數的共同優化可以有效地提升白細胞檢測的效果。

表5 消融實驗Table 5 Ablation experiments %
為了更清楚展示在主干網絡卷積之間添加坐標注意力機制對原算法的影響,抽取YOLOv5 算法和改進YOLOv5-CHE算法中間層的特征圖進行比較,如圖7所示。

圖7 YOLOv5與改進YOLOv5-CHE算法的中間層特征圖比較Fig.7 Comparison of middle features maps between YOLOv5 and improved YOLOv5-CHE algorithm
在圖7中,第一列圖片為YOLOv5算法中間層特征圖,第二列圖片為改進后YOLOv5-CHE 算法中間層特征圖。圖7(a)(b)分別為輸入圖像和標注圖;圖7(c)(d)是通過卷積層后尺度大小為P/2 的中間層特征圖;圖7(e)(f)是通過卷積層后尺度大小為P/4 的中間層特征圖;圖7(g)(h)是通過卷積層后尺度大小為P/8 的中間層特征圖;圖7(i)(j)和圖7(k)(l)分別是通過卷積層后尺度大小為P/16 和P/32 的中間層特征圖。從圖7(c)(d)和圖7(e)(f)可以看出,改進后YOLOv5-CHE 算法(右側)提取了更多的淺層特征,可以大概看清細胞的輪廓;從圖7(g)(h)和圖7(i)(j)可以看出,兩種方法通過不斷地卷積,提取了語義特征,未看到細胞的具體特征;從圖7(k)(l)可以看出,添加坐標注意力機制可以清晰地辨別出細胞的具體位置,這將使最后改進算法的檢測細胞的置信度高于原算法。
同時,為了展示多尺度檢測和錨定框改進,隨機選取算法不同尺度輸出特征圖和檢測結果,結果如圖8所示。

圖8 輸出特征圖及檢測結果Fig.8 Output feature diagrams and detection results
圖8(a)~(d)分別是YOLOv5算法尺度大小76×76、38×38、19×19和檢測結果,圖8(e)~(i)分別是YOLOv5-CHE 算法尺度大小160×160、80×80、40×40、20×20 和檢測結果。從圖8(e)(f)可以看出,改進YOLOv5-CHE算法在160×160、80×80尺度下能提取清晰的細胞輪廓,使檢測結果置信度高于YOLOv5算法。
為了驗證YOLOv5-CHE 在白細胞檢測中的有效性,與現有的主流目標檢測算法進行比較,實驗以精度和FPS作為評價指標。結果如表6所示。

表6 與現有算法的對比Table 6 Comparison with existing models
由表6可知,在相同的公開數據集上,YOLOv5-CHE算法的檢測精度為99.4%,相比Faster RCNN、SSD、YOLOv3、YOLOv4 和YOLOv5 算法,精確度分別提高了3.26個百分點、10.51個百分點、3.81個百分點、1.76個百分點和1.80 個百分點。從檢測精度來看,YOLOv5-CHE算法的精度均優于其他算法。
同時,從檢測速率(FPS)來看,YOLOv5-CHE 的檢測速率優于Faster RCNN、YOLOv3 和YOLOv4 算法,YOLOv5-CHE 比Faster RCNN 檢測速率快了44.3 倍,比YOLOv3 和YOLOv4 算法分別快了1.3 倍、2.03 倍。YOLOv5-CHE 與SSD 算法相比,檢測速率只慢了4 幀,換來的是檢測精度大幅度提升,提高了10.51 個百分點。YOLOv5-CHE 與YOLOv5 算法相比,檢測速率僅慢了0.5 幀,檢測精度卻提升了1.80 個百分點。這表明本文YOLOv5-CHE 算法在檢測速率未有很大降低時,精確度有一定的提升。
從算法結構上來看,Faster RCNN算法為雙階段目標檢測代表算法,它主要分兩步:第一步先提取候選框(region proposal),判斷是前景還是背景的問題,第二步再分類。因此,Faster RCNN算法檢測速率比較慢。而YOLO系列和SSD算法為一階段目標檢測算法,直接通過回歸(regression)一次既產生坐標,又產生每種類別的概率。其中,SSD 算法主干網絡的卷積層數量小于YOLO 系列,精簡算法的數據量,使檢測速率更快。因此一階段目標檢測算法在候選框數量和網絡上的簡化,導致算法速率大幅度提升。
綜合考慮,改進后YOLOv5-CHE 算法可以達到目標檢測在速率與精度上更好的平衡。
為了展示YOLOv5-CHE算法對于白細胞的檢測效果,從測試集中隨機地選取不同種類的白細胞圖片進行測試,測試結果如圖9所示。
本文采用改進YOLOv5-CHE算法對白細胞圖像進行識別,此算法使用了多個卷積神經網絡,諸如:淺層神經網絡用來提取圖像的顏色、邊緣、紋理等特征信息,深層神經網絡用來提取圖像的語義特征。然后使用特征金字塔網絡結構和路徑聚集網絡結構實現了不同尺度特征信息的融合,最終實現對五種不同種類細胞的檢測。
本文在YOLOv5算法和改進YOLOv5-CHE算法上的檢測效果如圖9 所示。其中圖9(a)是YOLOv5 算法檢測效果圖,圖9(b)是改進算法YOLOv5-CHE 的檢測效果圖。從第五行中可以明顯看出原始YOLOv5 算法將淋巴細胞(Lymp)檢測錯誤,但改進YOLOv5-CHE 算法將此種類細胞檢測正確且提高檢測的置信度。從全部對比圖可以看出,改進YOLOv5-CHE 目標檢測算法對于白細胞檢測的整體置信度和效果均高于YOLOv5算法。結果證明改進后的模型可以準確檢測各種類型白細胞,能夠很好地實現對白細胞檢測。

圖9 不同種類細胞檢測結果Fig.9 Detection results of different types of cells
為解決白細胞外觀復雜,類間差別小,邊界特征不明顯,檢測目標小,以及白細胞數據樣本少導致的白細胞檢測精度低等問題,本文通過添加注意力機制,增大輸入尺度,采用四種尺度檢測,優化錨定框以及改變邊框回歸損失函數等措施,提出了一種改進的白細胞圖像檢測算法YOLOv5-CHE。在合并后數據集上進行大量實驗,結果表明,YOLOv5-CHE算法比YOLOv5在精確度、召回率、mAP和mAP@0.5∶0.95上分別提升了1.8個百分點、1.5個百分點、1.0個百分點和3.8個百分點。與現有網絡結構相比,本文算法對白細胞圖像分類識別的準確率最高。本文僅僅只是對白細胞中的五類進行了分類識別,但是臨床上不同時期的白細胞具有不同的狀態,還需要完善數據庫,探索更多種類白細胞的分類識別。同時也希望開發出具有完整的界面和軟硬件平臺的白細胞分類系統,更好地用于輔助醫生的診斷。