韓子卓 胡天寒 吳敏
摘要:采用公開的BCCD數(shù)據(jù)集與自己標注的數(shù)據(jù)集,利用YOLOv5檢測算法,結(jié)合DenseNet模型和全卷積網(wǎng)絡(luò)模型實現(xiàn)細胞檢測計數(shù)。該方法可以更有效地提取特征解決重疊細胞的計數(shù),再將訓練好的最優(yōu)模型應(yīng)用于移動端并投入臨床使用,簡化手動血細胞識別和計數(shù)過程,從而達到提高診斷準確率及降低誤檢率。
關(guān)鍵詞:YOLOv5;血細胞識別與計數(shù);神經(jīng)網(wǎng)絡(luò);深度學習
中圖分類號:TP391? ? ? ? 文獻標識碼:A
文章編號:1009-3044(2022)34-0011-03
1 概述
進行血液檢測時通常需要對血細胞進行檢測和計數(shù),通過人體不同血細胞的個數(shù),觀察血細胞數(shù)量和形態(tài)是否發(fā)生異常,就可以初步判斷患者的疾病類型和發(fā)展程度,以便進行后續(xù)的檢查與治療。目前的細胞檢測和計數(shù)方法主要有:早期基于霍夫變換的自動細胞識別技術(shù)、距離變換的分水嶺方法算法和閾值法[1]?;陂撝导毎指钏惴ㄍǔ⒓毎指顬椴煌膮^(qū)域,易于實現(xiàn)和提高分割效率,但當血細胞圖片中含有大量的重疊細胞時,很容易導致邊界信息丟失和分割不完整。Ramoser等[2]利用K均值聚類方法從其他細胞中分離出血細胞,然后使用支持向量機進行血細胞分類。該方法需要大量樣本和較高的計算復雜度。Ghosh等[3]使用分水嶺算法對細胞進行分割,將被分割的血細胞圖像發(fā)送到一個簡單的樸素貝葉斯分類器進行分類。該方法對細胞分割精確度要求較高,但是一般正常處理后的血涂片會存在很多的血細胞粘連在一起,這樣會導致分割的結(jié)果不準確,最后影響實驗結(jié)果。
近年來,隨著深度學習算法模型不斷涌現(xiàn),模型訓練速度越來越快。將深度學習應(yīng)用于人血涂片視覺檢測的學者越來越多。Prayag等[4]基于卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network ,CNN)[5]框架使用雙階段目標檢測方法來自動對外周血細胞圖像進行分類,這種方法更準確,但檢測速度較慢。譚潤旭基于深度學習進行了細胞計數(shù)的深度學習研究,對不同網(wǎng)絡(luò)模型和架構(gòu)的細胞計數(shù)性能進行了實驗研究[6]。吳汾奇使用人工智能領(lǐng)域的主流深度學習技術(shù)和圖像處理技術(shù),研究了骨髓血細胞自動識別新技術(shù)[7]。奚昶尊研究了基于深度學習的組織病理圖像細胞計數(shù)算法[8]。YOLO是一種基于回歸的目標檢測算法,傳入一張圖像通過訓練的模型網(wǎng)絡(luò),就可以實現(xiàn)對圖像的檢測,該網(wǎng)絡(luò)模型比其他傳統(tǒng)模型輕便、快速。
本文采用目標檢測中的Yolov5模型,結(jié)合DeneseNet網(wǎng)絡(luò)模型進行了關(guān)于人血涂片數(shù)據(jù)集的訓練,以獲得對血細胞的檢測和計數(shù)的數(shù)據(jù)模型。相較于傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)模型它的體量更小、訓練速度快,適合部署于移動端。
2 數(shù)據(jù)集和模型設(shè)計
2.1 數(shù)據(jù)集的選取
論文采用公開的血細胞圖像數(shù)據(jù)集BCCD,共有364幅帶標注的血涂片圖像,網(wǎng)址為https://github.com/Shenggan/BCCD_Dataset。由于數(shù)據(jù)集圖像數(shù)量不夠多,皖南醫(yī)學院形態(tài)學實驗實訓中心為本項目提供血涂片圖像636張,最終本項目使用的數(shù)據(jù)集為1000張640×480的顯微圖像。未標注的血涂片圖像如圖1所示。在專家的指導下通過LalelImg工具對進行過醫(yī)學處理的人血涂片進行人工的細胞標注,包括三種類型細胞分別為白細胞、紅細胞和血小板細胞。將白細胞標注為WBC,將紅細胞標注為RBC,將血小板標注為Platelets。
圖2 為使用LalelImg工具進行標注的界面,選取需要標注的目標,圖2選中的目標為血小板,將其類別設(shè)置為Platelets,采用這樣的方法將所有的目標進行標注。
2.2 圖像預處理
1)? 數(shù)據(jù)增強
YOLOv5采用了Mosaic數(shù)據(jù)增強,將四幅圖像進行隨機圖像處理操作,例如縮放、剪裁,再將它們拼接在一起,極大豐富了檢測數(shù)據(jù)集,特別是在隨機縮放上可以增加許多小目標,同時也減小了GPU的計算。
2) 歸一化
在YOLOv5目標檢測算法中,由于輸入圖像分辨率的分辨率不同,通常需要將輸入圖像分辨率標準化到640×640,因此需要對人血涂片圖像進行進一步處理。
例如:導入的血涂片的圖片大小640×480,會根據(jù)640×640進行相應(yīng)的填充,上下兩列的列表分別pad = (640-480)/2 = 80,并使用像素值為(0,0,0) 黑色像素進行填充具體的操作如圖3所示:
2.3 訓練模型
2.3.1 YOLOv5模型結(jié)構(gòu)
YOLOv5模型算法將目標檢測看成回歸問題。CNN網(wǎng)絡(luò)將傳入的圖像等分成一定比例的網(wǎng)格,檢測每個網(wǎng)格內(nèi)的目標并預測邊界框。每個邊界框除了返回自己的位置外,還帶有一個代表了所預測的框中含有對象的置信度和這個框預測的準確率,其值的計算如公式(1) 所示:
2.3.2 DenseNet模型結(jié)構(gòu)
DenseNet由DenseBlock和transition layer兩部分組成,其中過渡層(transition layer)由一次卷積(convolution)與一次池化(pooling)操作組成,DenseNet的模型結(jié)構(gòu)如圖5所示:
2.3.3 訓練模型
本次試驗在YOLOv5的backbone中添加了DenseNet網(wǎng)絡(luò),DenseNet可以減少梯度的損失。為了加強圖像不同層次之間特征信息的傳輸,從圖像中提取的特征可以更有效地使用,模型使用小卷積核,能夠進一步減少計算量。引入DenseNet可以更好地識別不同類別的血細胞,YOLOv5+DenseNet模型結(jié)構(gòu)如圖6所示。
3 實驗設(shè)計與結(jié)果分析
3.1 實驗設(shè)計
為驗證YOLOv5人血涂片模型的識別能力,從1至1000張圖像的全部數(shù)據(jù)集中選出100張圖像用于測試集,其余圖像用Mosaic數(shù)據(jù)增強增加到2,500張圖像,訓練集和測試按9:1的比例劃分,其中2,250張進行了訓練集,250張用于測試集。實驗基于YOLOv5開源框架,在型號為NVIDIA GTX 2060的GPU上進行訓練。輸入YOLOv5網(wǎng)絡(luò)模型的圖片尺寸為640*640*3,訓練的輪次分別設(shè)置為200次、300次和400次,采用Adam優(yōu)化器和交叉熵損失函數(shù)(Categorical Crossentropy)。
3.2 評估標準
為了測試模型的性能,常用的目標檢測評價標準有精確度、召回率、mAP等。TP為模型預測中為正例且原圖像也為正例的細胞數(shù)量。FN為預測中為反例但在原圖像為正例的細胞數(shù)量。FP為模型預測中為正例但在原圖像為反例的細胞數(shù)量,混淆矩陣如表1所示。
1) 精確度(Precision)
精確度為在預測為正的樣本中實際為正樣本的概率,其計算公式如式(2) 所示:
2) 召回率(Recall)
召回率為在實際為正的樣本中被預測為正的概率,其計算公式如式(3) 所示:
3) mAP(mean Average Precision)
AP(Average Precision) 代表平均精度,是Precision-Recall曲線下的面積,AP的值越高表示分類的效果越好。
mAP是多個AP類型的平均值,表示在每個類別下獲得的AP的再平均。mAP的值越大表示其精度度越高。
4) 損失(loss)
損失分為兩類,一類cls_loss(Classification) ,一類是giou_loss,cls_loss是分類損失loss函數(shù),數(shù)值越小,分類越準確,giou_loss是平均GIoU損失函數(shù),數(shù)值越小,預測方框就越準確。
3.3 實驗結(jié)果與分析
模型訓練迭代次數(shù)為300次,得到訓練過程中各項性能變化如圖7所示。
根據(jù)(a)發(fā)現(xiàn)訓練300次,精確度緩緩提高,到300次時精確度大致為0.7,隨著訓練次數(shù)的增多,精確度還在上升;根據(jù)(b)發(fā)現(xiàn)150次到300次之間召回率波動不大,還需修改參數(shù)調(diào)整結(jié)果;0.5與0.95表示判定iou為正負樣本的閾值,根據(jù)(c)(d)發(fā)現(xiàn)閾值設(shè)置為0.5時,mAP值在0.95左右,效果較好;根據(jù)(e)發(fā)現(xiàn)訓練到300次時cls_loss趨近于0,表示分類結(jié)果慢慢趨于正確的值;根據(jù)(f)發(fā)現(xiàn)隨著訓練次數(shù)的增加giou_loss逐漸減小并慢慢趨于0,表示預測的方框逐漸向真實框靠攏。
YOLOv5將自動存儲最后一次訓練的模型和最佳的訓練模型,并使用最優(yōu)訓練模型預測測試集。初步的測試集預測結(jié)果如圖8所示,綠色的框為預測框,框的左上角為預測的類別,右上角為預測為這個類別的置信度得分,通過預測結(jié)果可以看到預測效果較好。
3.4 應(yīng)用于移動端
將訓練的最優(yōu)模型提取出來并部署到移動設(shè)備上,進行實時的檢測計數(shù)。具體在移動端的界面如圖9所示,通過“選擇文件”,點擊“開始檢測”,即得到檢測計數(shù)的結(jié)果。
4 總結(jié)
為了實現(xiàn)對血細胞的檢測和計數(shù),對Yolov5和DeneseNet的網(wǎng)絡(luò)模型進行了關(guān)于人血涂片數(shù)據(jù)集的訓練,達到了比較好的準確率。得到的數(shù)據(jù)模型體量小,處理速度快,精度相對較高,比較適合于部署到醫(yī)療移動設(shè)備上,進行血細胞的檢測與計數(shù)。
參考文獻:
[1] Malpica N,de Solórzano C O,Vaquero J J,et al.Applying watershed algorithms to the segmentation of clustered nuclei[J].Cytometry,1997,28(4):289-297.
[2] Ramoser H,Laurain V,Bischof H,et al.Leukocyte segmentation and classification in blood-smear images[C].Shanghai,China:2005 IEEE Engineering in Medicine and Biology 27th Annual Conference.IEEE,2005:3371-3374.
[3] Ghosh M,Das D,Mandal S,et al.Statistical pattern analysis of white blood cell nuclei morphometry[C].Kharagpur,India:2010 IEEE Students Technology Symposium (TechSym).IEEE,2010:59-66.
[4] Tiwari P.Detection of subtype blood cells using deep learning[J].Cognitive Systems Research,2018,52:1036-1044.
[5] Krizhevsky A,Sutskever I,Hinton G E.ImageNet classification with deep convolutional neural networks[J].Communications of the ACM,2017,60(6):84-90.
[6] 譚潤旭.基于深度學習的細胞計數(shù)研究[D].合肥:安徽大學,2019.
[7] 吳汾奇,呂麗麗,呂迪,等.骨髓紅粒細胞自動識別的深度學習模型[J].吉林大學學報(信息科學版),2020,38(6):729-736.
[8] 奚昶尊.基于深度學習的病理圖像細胞計數(shù)算法研究[D].西安:西安電子科技大學,2020.
【通聯(lián)編輯:唐一東】