胡旭祥 劉 俊
(武漢科技大學(xué)計算機科學(xué)與技術(shù)學(xué)院 武漢 430065)
秀麗隱桿線蟲[1]是一種生長在土壤中,以微生物為食,生命周期短(約為2 周~3 周),容易繁殖等特點。秀麗隱桿線蟲作為現(xiàn)代生物學(xué)研究和觀察的流行生物模式,有著簡單且易于研究的器官,包括口、咽、腸、性腺和膠原質(zhì)表皮。當(dāng)下,秀麗隱桿線蟲的多數(shù)生理變化都是通過研究人員的視覺評估而缺少量化標(biāo)準(zhǔn),通過圖像處理技術(shù)來取代認為評估,對秀麗隱桿線蟲各種生理變化的量化都會有很大幫助,為了實現(xiàn)利用計算機視覺自動進行量化評估,從顯微圖像中分割出秀麗隱桿線蟲就成為了首要的,也是重要的一個環(huán)節(jié)。這是本研究的目標(biāo)。
現(xiàn)如今,人類的科學(xué)技術(shù)已取得巨大進步,但是生命健康依然是大多數(shù)領(lǐng)域所探索的話題。秀麗隱桿線蟲作為該研究方向的一個研究載體,它的一些特定的基因在細胞研究的過機器學(xué)習(xí)自動分割程中起著重要作用,對將來醫(yī)學(xué)、科學(xué)的發(fā)展有著深遠的影響。因此如何利用機器學(xué)習(xí)自動分割顯微圖像具有重要意義。
傳統(tǒng)的圖像分割算法[2]由于是以像素灰度值為基礎(chǔ)對圖像進行分割,通過一個或多個閾值吧圖像中的像素點進行分類,以此實現(xiàn)對圖像的分割,但是顯微圖像中的環(huán)境比較復(fù)雜,目標(biāo)與雜質(zhì)的灰度值較為相近,因此,選擇合適的閾值完成高精度分割具有一定的難度。近些年,一些相關(guān)研究人員已經(jīng)探索出了用于微觀生物圖像研究的相關(guān)圖像處理算法。例如,如文獻[3]中提到在顯微圖像中分割了重疊的宮頸細胞,在文獻[4]提出一種用于從血細胞的顯微圖像中分割血小板的方法。文獻[5]中提出了一種包括圖像變換,閾值和形態(tài)學(xué)運算的方法分割秀麗隱桿線蟲。本文在YOLACT++的基礎(chǔ)上,引入了Attention 機制,目的是為了讓網(wǎng)絡(luò)分割模型更好地識別圖片中的特征信息,進而提高網(wǎng)分割模型的分割準(zhǔn)確度,實驗表明,該方法能有效處理原始YOLACT++對秀麗隱桿線蟲頭尾分割不精確、圖片周圍分割精度不高等問題,實現(xiàn)了網(wǎng)絡(luò)分割模型對秀麗隱桿線蟲的高精度分割。
現(xiàn)如今在目標(biāo)檢測方面主要可分為One-stage型網(wǎng)絡(luò)和Two-stage型網(wǎng)絡(luò)。這兩種網(wǎng)絡(luò)模型的側(cè)重點不太一樣,Two-stage 型網(wǎng)絡(luò)的分割精度較高,更加重視高精度的實力分割,其中Mask-RCNN[6],F(xiàn)aster-RCNN[7]等都是采用的這種目標(biāo)檢測網(wǎng)絡(luò);而One-stage 型網(wǎng)絡(luò)更加注重分割的速度,此類網(wǎng)絡(luò)直接通過主干網(wǎng)絡(luò)給出目標(biāo)物體的類別和位置信息,這樣的算法速度更快,但是分割的準(zhǔn)確性相比于Two-stage來說有所降低,比較經(jīng)典的YOLO系列[8~9],Retina-Net[10]等都是這種類型的檢測網(wǎng)絡(luò)。
YOLACT[11]是丹尼爾·波利亞、崇洲等在2019年提出的一個實時實例分割模型,此模型是一個One-stage 模型,通過兩個并行的子網(wǎng)絡(luò)來實現(xiàn)圖像分割,YOLACT 有著速度快、掩碼質(zhì)量高、普適性強等優(yōu)勢。YOLACT++在YOLACT 的基礎(chǔ)上,在保證了實時性(大于或者等于30fps)的情況下,對先前的的YOLACT做出幾點改進,為了提升各個監(jiān)測分割模型的準(zhǔn)確度,模型中把可變形的卷積由自由行使的采樣代替?zhèn)鹘y(tǒng)CNN 中使用的剛性網(wǎng)格采樣,也就是在不同的卷積層的后面再加上一個卷積層,用來學(xué)習(xí)特征圖中每個像素點的偏移情況。然后,將學(xué)習(xí)到的偏移位置信息輸入到特征圖中,之后再進行后續(xù)的卷積。為了可以檢測到不同尺寸大小的物體,YOLACT 采用了和SSD 相同的多尺度特征圖,也就是在比較大的特征圖上檢測小目標(biāo),在小的特征圖上檢測大目標(biāo)。同時,為了使得網(wǎng)絡(luò)模型學(xué)習(xí)到的特征更加豐富,從而更好地分割不同尺寸的目標(biāo),實驗的分割模型采用的是FPN 網(wǎng)絡(luò),模型輸入的圖片大小為550*550,采用的Backbone為ResNet101。
如圖1 所示,它是在經(jīng)過一個卷積層處理后,由C5 層得到的P5 層,然后再進行雙線性插值操作,使得P5 的特征圖擴大了一倍,經(jīng)過上述操作后,由C4 層得到了P4 層,由C3 層得到了P3 層,接下來就是把P5 進行卷積和下采樣操作得到了P6,對P6 進行同樣的操作得到了P7,從而搭建起了一個FPN網(wǎng)絡(luò)。
表1 ResNet結(jié)構(gòu)
圖1 秀麗隱桿線蟲檢測、分割的網(wǎng)絡(luò)框架
針對提高分割速度,可以進行實行分割,丹尼爾·波利亞、崇洲等在Retina-Net 的基礎(chǔ)上進行改進,采用了共享卷積網(wǎng)絡(luò),從而可以提高分割速度,達到實時分割的目的。在受到MASK R-CNN[12]的啟發(fā)下,因為僅僅從包圍框這個因素來評判mask的好壞不太合理,所以在模型后添加了Mask Re-Scoring 分支,直接使用全尺寸的mask 作為scoring 分支的輸入,輸出則是對應(yīng)每個類的GT-mask 的IoU,在scoring 的分支中沒有使用FC層,所以提升了網(wǎng)絡(luò)的分割速度。
損失函數(shù)(Loss function)是用來度量模型的預(yù)測值f(x)與實際值Y的差異程度,損失值越小,代表模型的魯棒性就越好,反之越差,如果所得的預(yù)測值與實際值相等,代表沒有損失,損失函數(shù)的核心部分是經(jīng)驗風(fēng)險函數(shù)也使其結(jié)構(gòu)的重要組成部分。
YOLACT++中的損失函數(shù)由三部分組成,包括分類損失(Lcls),框回歸損失(Lbox)以及掩碼損失(Lmask),其損失函數(shù)為L=Lcls+Lbox+Lmask,每一個目標(biāo)區(qū)域都會生成一個的特征層,其中特征層中的的每個值為二進制的掩碼(0 或1)。根據(jù)當(dāng)前RoI 區(qū)域預(yù)測的分類,含有K?n?n維度的輸出,K代表類別的數(shù)量,n*n是提取的ROI 圖像的大小。mask 損失值是預(yù)測值(預(yù)測mask)與實際值(group truth)的逐像素二進制交叉熵[13]。為了產(chǎn)生實例masks,通過結(jié)合原型分支和mask 系數(shù)分支的工作,使用前者和后者的線性組合作為系數(shù),然后通過一個sigmoid[14]非線性來產(chǎn)生最終的mask。使用單個矩陣乘法和sigmoid 可以有效地實現(xiàn)這些操作。逐像素二進制交叉熵的公式如式(1)所示:
其中概率分布m和n來度量信息量,yi表示label 的類別,本文的實驗中1表示線蟲的蟲體部分,0表示背景。y?i為模型的預(yù)測概率,模型在通過計算得到特征值后,根據(jù)Sigmoid 函數(shù)計算出概率。Sigmoid函數(shù)計算如式(2)。
本次實驗的實驗數(shù)據(jù)設(shè)置如下:分類損失Lmask設(shè)置為1,盒回歸損失Lbox設(shè)置為1.5,mask 損失Lmask設(shè)置為6.125。圖為訓(xùn)練狀態(tài)曲線,圖的縱坐標(biāo)為loss 的值。由圖2 可見,實驗在迭代4000 次之后達到一個相對穩(wěn)定的狀態(tài),平均損失值穩(wěn)定在0.09 左右。Lbox的定義方式與SSD 中的定義的相同,然后計算掩模損耗,取集合掩模M與地面真掩模Mgt之間像素方向的二元交叉熵Mgt:Lmask=BCE(M,Mgt)。圖2為損失下降曲線圖。
圖2 損失下降曲線圖
為了加深分割網(wǎng)絡(luò)對特征圖的理解,解決在低層特征中缺失的語義信息,存在的一些噪聲對蟲體分割造成一定的干擾,所以引入Attention機制來獲取高級語義信息,增加線蟲蟲體區(qū)域的權(quán)重信息,增加網(wǎng)絡(luò)模型對線蟲圖片的學(xué)習(xí)能力,從而提高分割模型的準(zhǔn)確率。
因為本次實驗是分割線蟲蟲體部分,Attention機制通過Attention 權(quán)重0<<β<<1 來識別線蟲蟲體的特征區(qū)域,注意力權(quán)重的計算公式為
在式(3)中,m是像素空間的大??;表示低級的特征圖,表示高級的特征圖;式(4)中的為中間值;b1和b2均為偏置項;σ1和σ2分別為Re-LU 函數(shù)和Sigmoid 函數(shù),目的是對Attention 權(quán)重進行一個歸一化的處理。Attention 機制在訓(xùn)練過程中可以自動學(xué)習(xí)目標(biāo)結(jié)構(gòu),不需要額外的監(jiān)督。
論文中所使用的數(shù)據(jù),是通過光學(xué)顯微鏡拍攝得到的纖維圖像。因為訓(xùn)練出一個比較好的分割網(wǎng)絡(luò)權(quán)重有兩個重要因素,首先是需要大量的數(shù)據(jù),其次是大量的參數(shù),且以人為的方式難以獲取大量的線蟲數(shù)據(jù),所以實驗過程中對線蟲數(shù)據(jù)有一個數(shù)據(jù)增強的過程,以致于可以擁有更多的線蟲數(shù)據(jù),來使得文章所采用的網(wǎng)絡(luò)模型有更好的分割效果,來提升網(wǎng)絡(luò)模型的魯棒性。經(jīng)過一系列數(shù)據(jù)增強的操作后,將現(xiàn)有的2500 張數(shù)據(jù),選出其中的2200 張數(shù)據(jù)作為訓(xùn)練集,剩余的300 作為測試集。數(shù)據(jù)集的制作完成后,再使用標(biāo)注軟件(本次實驗所使用的的是labelme)對數(shù)據(jù)中的蟲體部分進行標(biāo)注,標(biāo)注完成后則會得到一個對應(yīng)的json類型的文件。圖3 為本次實驗的實驗環(huán)境。Labelme 標(biāo)注如圖4所示。
圖3 實驗環(huán)境
圖4 labelme標(biāo)注數(shù)據(jù)結(jié)果
圖5 實驗效果對比
本文實驗的大致步驟如下:
1)將所得到的數(shù)據(jù)進行預(yù)處理,選取可用的數(shù)據(jù),去除重復(fù)數(shù)據(jù)。
2)對已有的數(shù)據(jù)進行標(biāo)注,完成數(shù)據(jù)集的制作。3)使用得到的模型對測試集數(shù)據(jù)進行實驗。4)對模型進行評估。
本次實驗在使用YOLACT++網(wǎng)絡(luò)分割模型是引入了Attention機制,結(jié)合改進后的模型對不同體態(tài)下的秀麗隱桿線蟲有較好的分割效果,原來的YOLACT++分割模型容易造成線蟲頭部和尾部的信息缺失,圖片的邊緣部分也有些許無法分割出來??梢钥闯觯诮?jīng)過改進后的分割模型在一定程度上的提升了分割的準(zhǔn)確性,使分割的精確度更加趨近于真實值。
本文的實驗利用AP,AP50來進行結(jié)果評估。為了檢測出一個合適的值,在此AP50代表的是IOU的值為0.5。AP 表示的IOU 的值設(shè)置在0.50~0.95之間,增量為0.05。IOU的公式為
式(5)中的P代表的是一個預(yù)測值,g代表的是一個實際值。定義IoU 這個概念是為了評價定位算法是否精確,即它衡量了兩個邊界框的重疊的相對大小。由式(5)可以看出IoU 值越大,越接近于1,表示預(yù)測的效果越好,在一般的目標(biāo)檢測過程中,若IoU的值大于0.5,則說明檢測正確。式(6)為AP的公式。
表2 實驗結(jié)果(mIOU)
在實驗過程中,從表中的數(shù)據(jù)表明,網(wǎng)絡(luò)與傳統(tǒng)分割方法相比具有巨大優(yōu)勢。與OSTU 相比,本次實驗所使用的方法的mIOU值提升了16%。
本次研究是在YOLACT++網(wǎng)絡(luò)框架的基礎(chǔ)上引入了Attention機制,在對光學(xué)顯微鏡下所拍到的秀麗隱桿線蟲的數(shù)據(jù)進行檢測分割,原始的YOLACT++在對線蟲體態(tài)進行分割時,對圖像邊緣信息會有一定程度的丟失,對線蟲的頭部和尾部的信息的處理效果也不是很理想。為了在保證分割速度的同時提高了一些網(wǎng)絡(luò)分割模型的精確性,通過引入Attention機制,結(jié)合損失函數(shù)算法等方法來提升網(wǎng)絡(luò)模型的分割效果。實驗表明,本方法在秀麗隱桿線蟲蟲體分割時提高了網(wǎng)絡(luò)分割模型的精準(zhǔn)度,證明了本文方法的有效性。