鄧杰航,郭文權(quán),陳漢杰,顧國生*,劉景建,杜宇坤,劉超,康曉東,趙建
(1.廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院,廣州 510006;2.廣東工業(yè)大學(xué)自動(dòng)化學(xué)院,廣州 510006;3.法醫(yī)病理學(xué)公安部重點(diǎn)實(shí)驗(yàn)室(廣州市刑事科學(xué)技術(shù)研究所),廣州 510442)
硅藻是一類很重要的浮游植物,硅藻檢測是溺水診斷中常用的一種重要診斷方法[1]。當(dāng)法醫(yī)診斷從水中打撈起來的尸體是屬于溺水而亡還是死后拋尸時(shí),法醫(yī)需要借助硅藻在尸體器官內(nèi)的含量和種類進(jìn)行輔助判斷。在人體溺水的過程中,硅藻會(huì)隨著水流被人體吸入肺中,并通過血液循環(huán)流到其他器官,如大腦和骨髓[2]。而當(dāng)人體是死后被拋入水中時(shí),人體停止了呼吸和血液循環(huán),僅有少量的硅藻流入人體內(nèi)。另外,硅藻的種類和數(shù)量會(huì)受到水質(zhì)環(huán)境的影響,即不同的水質(zhì)環(huán)境存在不同種類和數(shù)量的硅藻,法醫(yī)可以根據(jù)這個(gè)關(guān)系推斷出尸體的落水點(diǎn)。因此,硅藻檢測為診斷溺水案件提供可靠的診斷依據(jù)。
硅藻檢測一直以來都是一個(gè)具有挑戰(zhàn)性的任務(wù)。傳統(tǒng)的硅藻檢測方法是由人工透過顯微鏡觀察硅藻細(xì)胞并計(jì)數(shù),不僅耗時(shí)耗力,還需要熟悉硅藻細(xì)胞的專家來執(zhí)行,因?yàn)榇蟛糠值姆ㄡt(yī)不具備硅藻分類的專業(yè)知識(shí)。為了提高法醫(yī)對(duì)溺水診斷的速度,亟須一種使用計(jì)算機(jī)代替人工對(duì)硅藻進(jìn)行識(shí)別與分類的方法。
隨著卷積神經(jīng)網(wǎng)絡(luò)(Convolution Neural Network,CNN)的快速發(fā)展,圖像分類和目標(biāo)檢測任務(wù)的性能得到了飛速提升。借助于CNN 強(qiáng)大的特征提取能力,Pedraza 等[3]把CNN應(yīng)用到硅藻分類任務(wù)中并取得很好的分類效果。Zhou 等[4]為了充分利用人工智能和傳統(tǒng)硅藻檢測方法的優(yōu)點(diǎn),設(shè)計(jì)了一個(gè)結(jié)合傳統(tǒng)硅藻檢測方法的人工智能系統(tǒng)對(duì)硅藻進(jìn)行識(shí)別,該系統(tǒng)的識(shí)別性能與5 位具有豐富硅藻檢測經(jīng)驗(yàn)的法醫(yī)學(xué)家的識(shí)別效果相媲美[5]。應(yīng)用目標(biāo)檢測模型Faster R-CNN(Faster Regional CNN)[6]對(duì)硅藻進(jìn)行識(shí)別與定位,相較于傳統(tǒng)的識(shí)別方法大幅提高了識(shí)別準(zhǔn)確率。為了設(shè)計(jì)一種用于硅藻統(tǒng)計(jì)的工具,Krause 等[7]應(yīng)用全卷積神經(jīng)網(wǎng)絡(luò)(Fully Convolutional Neural network,F(xiàn)CN)[8]對(duì)硅藻進(jìn)行計(jì)數(shù);Yu等[9]使用RetinaNet[10]對(duì)硅藻進(jìn)行自動(dòng)搜索。這些方法雖然從不同方面對(duì)硅藻檢測進(jìn)行了研究,但它們都需要大量的訓(xùn)練樣本。然而,由于溺水案件涉及倫理問題且實(shí)際上殘留在尸體器官內(nèi)的硅藻數(shù)量不多,硅藻圖像的獲取相當(dāng)困難。即使能夠獲得大量的硅藻圖像數(shù)據(jù),圖像標(biāo)注工作也需要專家花費(fèi)大量的時(shí)間完成。因此,提出面向小樣本的硅藻檢測。
小樣本目標(biāo)檢測方法可以分為四類,分別是元學(xué)習(xí)、度量學(xué)習(xí)、遷移學(xué)習(xí)和微調(diào)方法?;谠獙W(xué)習(xí)的方法[11-13]通過設(shè)計(jì)大量的相同視覺任務(wù),使檢測模型學(xué)習(xí)如何學(xué)習(xí)檢測的能力。Kang 等[11]提出了一個(gè)元模型,該模型可以對(duì)從已標(biāo)注的輸入圖像提取的特征進(jìn)行重新加權(quán)。模型預(yù)測器可根據(jù)重新加權(quán)的特征有效地對(duì)只有少量樣本的類別進(jìn)行分類和定位?;诙攘繉W(xué)習(xí)的方法[14-15]利用待預(yù)測圖像與參考圖像之間的距離,判斷待預(yù)測圖像的種類。Karlinsky 等[15]提出了一個(gè)度量學(xué)習(xí)模塊,該模塊評(píng)估每個(gè)預(yù)測框里的特征與從少量標(biāo)記圖像中提取的特征的相似度,并用這個(gè)度量學(xué)習(xí)模塊取代了Faster R-CNN 的分類分支?;谶w移學(xué)習(xí)的方法[16-17]將從源域中學(xué)習(xí)到的預(yù)訓(xùn)練權(quán)重泛化到目標(biāo)域,其中,源域具有大量的訓(xùn)練樣本,目標(biāo)域僅有少量可用的訓(xùn)練樣本。Chen 等[17]提出了遷移知識(shí)正則化和背景抑制正則化以解決直接在少量標(biāo)記圖像上訓(xùn)練時(shí)的過擬合問題。基于微調(diào)的方法[18-19]主要關(guān)注模型對(duì)小樣本訓(xùn)練集的微調(diào)過程。微調(diào)技術(shù)實(shí)現(xiàn)簡單,且通過對(duì)模型進(jìn)行簡單微調(diào)即可在Pascal VOC(Visual Object Classes)2007 數(shù)據(jù)集[20]的小樣本設(shè)置上顯著提高檢測精度,并且優(yōu)于基于元學(xué)習(xí)的方法。因此,本文選擇基于微調(diào)的方法作為小樣本硅藻檢測的基線模型。
TFA(Two-stage Fine-tuning Approach)[18]是一個(gè)基于微調(diào)方法的兩階段模型,只需微調(diào)模型的最后一層且模型的訓(xùn)練策略簡單,在Pascal VOC[20]數(shù)據(jù)集和MS COCO(Common Objects in COntext)[21]數(shù)據(jù)集上的檢測性能都比基于元學(xué)習(xí)的方法[11-13]好。因此,本文基于TFA 提出一種融合多尺度多頭自注意力(Multi-scale Multi-head Self-attention,MMS)和在線難例挖掘策略(Online Hard Example Mining,OHEM)[22]的小樣本硅藻檢測(MMS and OHEM based Few-shot Diatom Detection,MMSOFDD)模型。該模型針對(duì)小樣本的硅藻識(shí)別問題,將基于CNN 的ResNet-101[23]的最后三個(gè)空間3 × 3 卷積替換為多頭自注意力,形成一個(gè)基于Transformer[24]的特征提取網(wǎng)絡(luò) BoTNet-101(Bottleneck Transformer Network-101)[25]。通過改進(jìn)其中的多頭自注意力為多尺度多頭自注意力,稱之為多尺度BoTNet-101。由多尺度BoTNet-101 生成的特征圖經(jīng)過池化等處理后,在嵌入OHEM的模型預(yù)測器中進(jìn)行預(yù)測。采用從高清電鏡下采集的復(fù)雜背景硅藻圖像進(jìn)行實(shí)驗(yàn),驗(yàn)證了本文模型對(duì)小樣本硅藻檢測的有效性。
在本文中,為了實(shí)現(xiàn)小樣本硅藻目標(biāo)檢測,在少量硅藻訓(xùn)練樣本的情況下,基于TFA 模型提出了融合多尺度多頭自注意力和OHEM 的小樣本硅藻檢測模型MMSOFDD。該模型的總體架構(gòu)如圖1 所示。
圖1 MMSOFDD的總體架構(gòu)Fig.1 Overall architecture of MMSOFDD
從圖1 中可以看出,MMSOFDD 模型的總體架構(gòu)采用Faster R-CNN[6]的架構(gòu),主要的組成部分包括特征提取器、區(qū)域生成網(wǎng)絡(luò)RPN(Region Proposal Network)、RoI(Region of Interest)池化、全連接層和預(yù)測器。在MMSOFDD 中,特征提取器是一個(gè)基于Transformer 的多尺度BoTNet-101,其內(nèi)部結(jié)構(gòu)如圖2 所示。區(qū)域生成網(wǎng)絡(luò)RPN 的作用主要是通過卷積運(yùn)算對(duì)圖像錨框進(jìn)行前景和背景的分類及對(duì)錨框位置的粗調(diào)整。預(yù)測器分為目標(biāo)分類器和邊界框回歸器。在目標(biāo)分類器中,使用余弦相似度計(jì)算預(yù)測值與目標(biāo)值之間的距離,使用交叉熵?fù)p失函數(shù)計(jì)算分類損失。交叉熵?fù)p失函數(shù)的定義如下:
其中:C為類別數(shù);gi為真實(shí)標(biāo)簽,表示當(dāng)前的真實(shí)類別為第i類;pi為模型輸出的預(yù)測值,表示預(yù)測為類別i的概率。
邊界框回歸器對(duì)錨框的位置進(jìn)行細(xì)調(diào)整,使錨框更加準(zhǔn)確地把圖像目標(biāo)標(biāo)記出來,使用SmoothL1損失函數(shù)計(jì)算回歸損失,定義如下:
其中:x表示預(yù)測邊界框的坐標(biāo)向量與真實(shí)邊界框的坐標(biāo)向量的差,坐標(biāo)向量包含邊界框的中心坐標(biāo)、寬度和高度。
圖1 中的圓角虛線框表示本文的主要改進(jìn)工作,分別是多尺度BoTNet-101 和嵌入OHEM 的預(yù)測器。
BoTNet-101 是一個(gè)基于Transformer 的新型骨干網(wǎng)絡(luò),通過把圖2(a)ResNet-101 結(jié)構(gòu)的Block 5 的3 × 3 卷積替換成圖2(b)中Block 5 的多頭自注意力(Multi-Head Self-Attention,MHSA)而形成,該模型架構(gòu)簡單但功能強(qiáng)大。將圖2(b)BoTNet-101 的多頭自注意力改進(jìn)為多尺度多頭自注意力,即可得到多尺度BoTNet-101,如圖2(c)所示。在多尺度BoTNet-101 中,同時(shí)使用CNN 和多頭自注意力機(jī)制提取圖像特征,能夠有效地結(jié)合圖像的局部特征和全局特征。其中:Block 1、Block 2、Block 3 和Block 4 使用CNN 處理大尺度圖像并提取局部特征信息,生成低分辨率的特征圖;Block 5 則基于多頭自注意力對(duì)低分辨率特征圖的全局信息進(jìn)行聚合。多尺度BoTNet-101 把CNN 和Transformer 的優(yōu)勢(shì)結(jié)合起來,提升骨干網(wǎng)絡(luò)的特征提取能力。多頭自注意力的運(yùn)算過程如圖3 所示,其中,⊕表示逐元素相加,?表示矩陣乘法。
圖2 特征提取網(wǎng)絡(luò)的結(jié)構(gòu)變化Fig.2 Structure change of feature extraction network
在圖3 中,輸入特征圖與1 × 1 卷積核WQ、WK、WV相乘分別得到特征圖q、k、v。Rh和Rw分別是使用二維相對(duì)位置自注意力[26-27]計(jì)算得到的垂直和水平方向上的相對(duì)位置信息,將Rh和Rw調(diào)整大小并相加融合得到位置編碼r。通過計(jì)算qkT+qrT得到空間敏感的相似性特征,讓多頭自注意力機(jī)制關(guān)注合適區(qū)域,其中T 表示矩陣的轉(zhuǎn)置運(yùn)算。注意力得分由空間敏感的相似性特征經(jīng)過Softmax 運(yùn)算得到,并與v相乘作為多頭自注意力的輸出。
圖3 多尺度多頭自注意力的運(yùn)算過程Fig.3 Multi-scale multi-head self-attention calculation process
在多頭自注意力機(jī)制中,要求輸入固定尺寸的特征圖。因此,訓(xùn)練樣本在輸入后需要縮放到固定的尺寸。檢測模型基于該縮放尺度生成相應(yīng)的預(yù)測框,當(dāng)這些預(yù)測框在原始圖像上標(biāo)定目標(biāo)時(shí),預(yù)測框的位置和大小會(huì)出現(xiàn)偏差。另外,由于骨干網(wǎng)絡(luò)對(duì)單尺度圖像提取到的特征信息不夠豐富,模型容易出現(xiàn)對(duì)圖像目標(biāo)的誤檢和漏檢的情況,導(dǎo)致模型的檢測精度下降。因此,本文根據(jù)硅藻圖像的特性,設(shè)計(jì)并收集硅藻圖像采集的所有尺寸,在模型訓(xùn)練的過程中,根據(jù)當(dāng)前的圖像大小選擇對(duì)應(yīng)的多頭自注意力層,即多尺度多頭自注意力。多尺度多頭自注意力可以兼容CNN 對(duì)不同尺寸的輸入圖像生成的特征圖,使特征提取網(wǎng)絡(luò)能夠提取更加豐富的圖像特征。
在小樣本目標(biāo)檢測中,可用的訓(xùn)練資料有限,檢測模型不能利用大量的訓(xùn)練樣本逐步更新模型參數(shù),所以每一次的參數(shù)更新都至關(guān)重要。在小樣本硅藻檢測中,硅藻目標(biāo)與背景存在類別不平衡,為了讓少量的硅藻訓(xùn)練樣本得到高效利用,在模型預(yù)測器中嵌入OHEM。通過挖掘難以識(shí)別的目標(biāo)區(qū)域并基于此更新參數(shù),模型的檢測性能可以得到有效提升。
OHEM 是一種能夠自動(dòng)選擇難以識(shí)別的樣本進(jìn)行訓(xùn)練的方法,可用于解決簡單樣本和難識(shí)別樣本之間的類別不平衡問題。OHEM 的基本結(jié)構(gòu)如圖4 所示,由特征提取器和RPN 運(yùn)算輸出的N個(gè)感興趣區(qū)域RoIs 作為輸入,分別經(jīng)過分類損失計(jì)算和邊界框損失計(jì)算,得到每個(gè)RoI 的分類損失值和回歸損失值。將分類損失值與回歸損失值之和從大到小排序,損失值之和大的為難識(shí)別樣本。由于位置上相鄰的RoI 會(huì)輸出相近的損失值,其表示的實(shí)際上是同一個(gè)目標(biāo)實(shí)例。因此,OHEM 使用非極大值抑制(Non-Maximum Suppression,NMS)算法[28]移除交并比(Intersection over Union,IoU)大于一定閾值的RoI。最后選擇B個(gè)損失值最大的RoI 作為難例樣本,剩下的RoI 則作為非難例樣本。難例樣本將用于反向傳播進(jìn)行參數(shù)更新。
圖4 OHEM結(jié)構(gòu)Fig.4 Structure of OHEM
2.1.1 Pascal VOC數(shù)據(jù)集
為了讓模型學(xué)習(xí)類不可知的特征,使用Pascal VOC 2007+2012 的train/val 數(shù)據(jù)集中的15 個(gè)類別作為基礎(chǔ)訓(xùn)練階段的訓(xùn)練集,其中包含aeroplane、bicycle、boat、bottle、car、cat、chair、diningtable、dog、horse、person、pottedplant、sheep、train、tvmonitor。每一個(gè)類別的圖像數(shù)量以及實(shí)例個(gè)數(shù)如表1所示。
表1 Pascal VOC數(shù)據(jù)集的15類分類明細(xì)Tab.1 Classification details of 15 classes in Pascal VOC dataset
2.1.2 硅藻數(shù)據(jù)集
為了有效評(píng)估本文模型在僅用少量訓(xùn)練樣本的條件下,對(duì)硅藻進(jìn)行識(shí)別與定位的性能,通過高分辨率掃描電子顯微鏡對(duì)硅藻進(jìn)行成像并構(gòu)建了一個(gè)硅藻數(shù)據(jù)集。數(shù)據(jù)集包含的硅藻種類及其對(duì)應(yīng)的數(shù)量如表2 所示。其中,硅藻圖像的種類分別有小環(huán)藻、舟形藻、菱形藻、針桿藻、異極藻、橋彎藻、卵形藻和直鏈藻,總量為2 606 張。小環(huán)藻、舟形藻、菱形藻和直鏈藻各有400 張,針桿藻有280 張,異極藻有220 張,橋彎藻有346 張,卵形藻有160 張。實(shí)例表示硅藻目標(biāo),一張硅藻圖像中可存在多個(gè)實(shí)例。在本文所構(gòu)建的硅藻數(shù)據(jù)集中,硅藻實(shí)例的總量為2 652 個(gè),其中小環(huán)藻有417 個(gè),舟形藻有404 個(gè),菱形藻有407 個(gè),針桿藻有283 個(gè),異極藻有222個(gè),橋彎藻有347 個(gè),卵形藻有161 個(gè),直鏈藻有411 個(gè)。各類硅藻圖像如圖5 所示。
圖5 硅藻樣本圖像Fig.5 Diatom sample images
表2 硅藻數(shù)據(jù)集統(tǒng)計(jì)信息Tab.2 Diatom dataset statistics
本文研究的是10-shot 硅藻檢測,即從每一類硅藻圖像中選擇10 個(gè)硅藻實(shí)例作為訓(xùn)練樣本。通過設(shè)置固定的隨機(jī)種子,在每一類硅藻圖像中隨機(jī)選擇10 個(gè)硅藻實(shí)例,共80個(gè),小樣本硅藻訓(xùn)練集數(shù)據(jù)分布如表3 所示。測試集是由除訓(xùn)練集以外的所有硅藻實(shí)例組成,具體分布如表4 所示。
表3 小樣本硅藻訓(xùn)練集Tab.3 Few-shot diatom training set
表4 硅藻測試集Tab.4 Diatom test set
在本文中,硅藻小樣本目標(biāo)檢測的實(shí)驗(yàn)設(shè)置遵循由Wang 等[18]所提TFA 的實(shí)驗(yàn)設(shè)置。在小樣本目標(biāo)檢測中,數(shù)據(jù)集可以分為基類Cb和新類Cn。基類是具有大量可用訓(xùn)練樣本的類別,一般用于預(yù)訓(xùn)練目標(biāo)檢測模型。新類,也稱為未知類,指在基類預(yù)訓(xùn)練中沒有參與訓(xùn)練的類別,即Cb∩Cn=?,而且新類中每一類只有K(K一般小于等于10)個(gè)可用標(biāo)注樣本。小樣本目標(biāo)檢測的目標(biāo)是把模型從大量的基類中學(xué)習(xí)到的知識(shí)泛化到新類,使新類在少量訓(xùn)練樣本的條件下能夠獲得一個(gè)檢測性能良好的目標(biāo)檢測模型。因此,本文的基類設(shè)置采用TFA 中使用的Pascal VOC 數(shù)據(jù)集的15 個(gè)類別,新類設(shè)置為8 類硅藻。
原始TFA 的訓(xùn)練策略分為兩個(gè)階段:1)基礎(chǔ)訓(xùn)練階段,使用大量的訓(xùn)練數(shù)據(jù)訓(xùn)練整個(gè)模型并輸出預(yù)訓(xùn)練權(quán)重用于小樣本微調(diào)階段的初始化;2)小樣本微調(diào)階段,固定特征提取器,使其不進(jìn)行參數(shù)更新,只微調(diào)模型的最后一層。在基類為Pascal VOC 數(shù)據(jù)集的15 個(gè)類別、新類為8 類常見硅藻的設(shè)置下,將原始TFA 的訓(xùn)練策略應(yīng)用到小樣本硅藻檢測中,得到的平均精度均值(mean Average Precision,mAP)約為27.60%。導(dǎo)致硅藻類別的檢測精度低的原因是硅藻圖像與Pascal VOC 數(shù)據(jù)集的圖像存在較大的差異,在特征提取器固定的情況下,檢測模型無法學(xué)習(xí)硅藻目標(biāo)的特征表示,從而出現(xiàn)使用舊的知識(shí)難以預(yù)測新的類別的情況。因此,本文模型對(duì)原始TFA 模型的訓(xùn)練策略進(jìn)行改進(jìn)。通過開啟骨干網(wǎng)絡(luò)和RPN 的參數(shù)更新,特征提取網(wǎng)絡(luò)能夠在模型訓(xùn)練的過程中學(xué)習(xí)硅藻的特征表示,從而使檢測模型在預(yù)測的過程中能夠準(zhǔn)確地識(shí)別硅藻,提高檢測模型對(duì)硅藻的檢測精度。
模型的訓(xùn)練過程分為兩個(gè)階段:1)模型基礎(chǔ)訓(xùn)練階段,該階段涉及的網(wǎng)絡(luò)模塊如圖6 灰色模塊所示;2)模型微調(diào)訓(xùn)練階段,該階段涉及的網(wǎng)絡(luò)模塊為圖6 中的所有模塊。在圖6 中,灰色模塊參與了模型基礎(chǔ)訓(xùn)練。整個(gè)網(wǎng)絡(luò)參與了模型的微調(diào)訓(xùn)練。
1)為了使模型學(xué)習(xí)類不可知的特征,即與類別不相關(guān)的特征,在模型基礎(chǔ)訓(xùn)練階段,使用大型圖像數(shù)據(jù)集Pascal VOC 的15 個(gè)類別共20 335 張圖像,34 084 個(gè)目標(biāo)實(shí)例作為訓(xùn)練集。該階段使用的檢測模型是Faster R-CNN,其組成部分有骨干網(wǎng)ResNet-101、區(qū)域提議網(wǎng)絡(luò)RPN、RoI 池化、全連接層以及由分類器和邊界框回歸器構(gòu)成的預(yù)測器。其中ResNet-101 由5 個(gè)Block 組成,每個(gè)Block 各有1、9、12、69、9層卷積層,共100 層。在模型預(yù)測器中,分類器網(wǎng)絡(luò)由全連接層和分類函數(shù)組成,邊界框回歸網(wǎng)絡(luò)由全連接層和回歸函數(shù)組成。通過大型圖像數(shù)據(jù)集Pascal VOC 對(duì)整個(gè)模型進(jìn)行訓(xùn)練,圖6 中灰色模塊的參數(shù)基本固定,即圖像的類不可知特征。對(duì)于預(yù)測器學(xué)習(xí)到的參數(shù),在模型微調(diào)階段將會(huì)被隨機(jī)初始化。
2)為了充分利用硅藻圖像的局部和全局信息以及解決簡單樣本和難識(shí)別樣本之間的類別不平衡問題,在模型微調(diào)訓(xùn)練階段,把圖6 骨干網(wǎng)的Block5 的3 × 3 卷積層替換為多尺度多頭自注意力機(jī)制,以及在模型預(yù)測器中引入OHEM 策略,形成MMSOFDD 模型。在此階段,訓(xùn)練集更改為8 類硅藻圖像數(shù)據(jù)集,其中每一類硅藻只有10 個(gè)實(shí)例用于訓(xùn)練,共80個(gè)。在微調(diào)模型進(jìn)行訓(xùn)練之前,為了保留基礎(chǔ)訓(xùn)練得到的與目標(biāo)類別不相關(guān)的特征,將基礎(chǔ)訓(xùn)練階段的結(jié)果對(duì)MMSOFDD 模型進(jìn)行初始化,即保持圖6 灰色模塊的卷積層參數(shù)不變。為了避免基礎(chǔ)訓(xùn)練的Pascal VOC 的15 個(gè)類別分類特征對(duì)微調(diào)訓(xùn)練8 類硅藻類別特征造成負(fù)面影響,隨機(jī)初始化分類器與回歸器的參數(shù)權(quán)值,同時(shí)調(diào)整學(xué)習(xí)率、迭代次數(shù)等超參數(shù)。由于硅藻圖像的目標(biāo)與背景的概貌和細(xì)節(jié)與Pascal VOC 數(shù)據(jù)集的圖像之間相差巨大,因此,在微調(diào)階段,網(wǎng)絡(luò)所有的參數(shù)都需要更新。模型微調(diào)階段開始訓(xùn)練,硅藻圖像經(jīng)過放縮后,多尺度BotNet-101 對(duì)其進(jìn)行特征提取。首先,通過多尺度BotNet-101 的Block1、Block2、Block3 和Block4 的卷積層獲取硅藻目標(biāo)的局部特征信息并生成低分辨率的特征圖;其次,通過Block5 的多尺度多頭自注意力提取該低分辨率的特征圖的全局特征信息得到特征圖;然后,通過RPN 和RoI 池化處理后,得到包含硅藻目標(biāo)信息的RoI;分別計(jì)算這些RoI 的分類損失值與邊界框回歸損失值的和,采用OHEM 策略,選擇損失值和最大的若干個(gè)RoI 進(jìn)行參數(shù)更新;最后,確定MMSOFDD 模型的參數(shù)。
圖6 網(wǎng)絡(luò)訓(xùn)練結(jié)構(gòu)Fig.6 Structure of network training
本文實(shí)驗(yàn)基于64 位操作系統(tǒng)Ubuntu 18.04 和PyTorch 框架完成,處理器型號(hào)為Intel Core i9-10900X,16 GB 內(nèi)存。顯卡型號(hào)為Nvidia GeForce GTX 3090,24 GB 內(nèi)存,采用Nvidia CUDA 11.0 加速工具箱。
在訓(xùn)練過程中,輸入數(shù)據(jù)的批大小設(shè)置為8,使用隨機(jī)梯度下降優(yōu)化器(Stochastic Gradient Descent,SGD)進(jìn)行訓(xùn)練,其中,權(quán)重衰減為0.000 1,動(dòng)量參數(shù)為0.9;學(xué)習(xí)率策略為step,其中基礎(chǔ)學(xué)習(xí)率是0.000 5,學(xué)習(xí)率調(diào)整倍數(shù)γ 是0.1,學(xué)習(xí)率變化步長為18 000,最大迭代次數(shù)為20 000,當(dāng)訓(xùn)練迭代次數(shù)小于18 000 時(shí),學(xué)習(xí)率為0.000 5,訓(xùn)練迭代次數(shù)大于等于18 000 時(shí),學(xué)習(xí)率為0.000 05。
為了驗(yàn)證本文實(shí)驗(yàn)的有效性,本文采用Pascal VOC 標(biāo)準(zhǔn)的平均精度(Average Precision,AP)、平均精度均值(mAP)和8 類常見硅藻的檢測精度的標(biāo)準(zhǔn)差作為小樣本硅藻檢測實(shí)驗(yàn)的評(píng)價(jià)指標(biāo)。
為了驗(yàn)證新增模塊在MMSOFDD 模型中具有提升模型檢測性能的作用,分別獨(dú)立引入多尺度多頭自注意力和嵌入OHEM 進(jìn)行實(shí)驗(yàn),并結(jié)合兩個(gè)模塊進(jìn)行實(shí)驗(yàn)以探索兩者之間的相互作用。實(shí)驗(yàn)定性結(jié)果如圖7 所示,其中:改進(jìn)方法1 表示只引入多尺度多頭自注意力而沒有嵌入OHEM;改進(jìn)方法2 表示只嵌入OHEM 而不引入多尺度多頭自注意力;MMSOFDD 表示同時(shí)引入多尺度多頭自注意力和嵌入OHEM,紅色矩形框表示識(shí)別錯(cuò)誤,綠色矩形框表示識(shí)別正確。以下實(shí)驗(yàn)均在調(diào)整訓(xùn)練策略后進(jìn)行。
在圖7 的例圖1 中,圖像背景非常粗糙,存在很多大小不一且不同形狀的干擾,這些干擾的分布隨機(jī),亮度變化沒有規(guī)律。其中有一個(gè)小環(huán)藻在中央,小環(huán)藻的部分邊緣被遮擋導(dǎo)致部分紋理缺失。從圖7 可以看出:改進(jìn)方法1 能夠充分提取圖像的特征提高TFA 的識(shí)別能力,從而正確識(shí)別硅藻。雖然改進(jìn)方法2 漏檢了圖7 中例圖1 的硅藻,但當(dāng)改進(jìn)方法1和改進(jìn)方法2 結(jié)合在一起時(shí),MMSOFDD 既能夠正確檢測也能夠提高識(shí)別準(zhǔn)確率。在圖7 的例圖2 中,菱形藻的形狀比較扁,內(nèi)部紋理非常模糊且圖像背景復(fù)雜。TFA 算法和改進(jìn)方法1 把菱形藻誤識(shí)別為舟形藻,改進(jìn)方法2 和MMSOFDD則檢測正確且MMSOFDD 的識(shí)別準(zhǔn)確率更高,說明嵌入OHEM 既能夠正確識(shí)別TFA 中難識(shí)別的硅藻目標(biāo),也能夠與多尺度多頭自注意力相互作用,提高識(shí)別準(zhǔn)確率。圖7 中的例圖3 的硅藻目標(biāo)清晰度低且紋理丟失,與背景十分相似且圖像左上角有大面積的白色干擾,圖7 中的例圖4 硅藻目標(biāo)雖然形狀完整,但背景十分復(fù)雜,亮度分布不均勻。TFA 方法對(duì)圖7 中的例圖3 和例圖4 中的硅藻都識(shí)別錯(cuò)誤,改進(jìn)方法1 和改進(jìn)方法2 對(duì)其都識(shí)別正確,而MMSOFDD 對(duì)硅藻識(shí)別正確且準(zhǔn)確率比改進(jìn)方法1 和改進(jìn)方法2 都高。因此,改進(jìn)方法1 和改進(jìn)方法2 都能夠有效提高TFA 的檢測精度,結(jié)合兩者能夠起到相互增益的作用,互補(bǔ)雙方的檢測能力,MMSOFDD 可以獲得更高的檢測性能。
圖7 不同模塊在消融實(shí)驗(yàn)中定性結(jié)果Fig.7 Qualitative results of different modules in ablation experiment
實(shí)驗(yàn)定量結(jié)果如表5 所示。
表5 不同模塊的mAP比較Tab.5 Comparison of mAP of different modules
為了進(jìn)一步定量地檢驗(yàn)?zāi)P偷男阅埽y(tǒng)計(jì)了不同模塊的mAP 值,如表5 所示。從表5 中可以看出,引入多尺度多頭自注意力后,圖像的局部信息和全局信息得到有效利用,改進(jìn)方法1 的mAP 比TFA 提升了1.47 個(gè)百分點(diǎn),精度達(dá)到65.18%。改進(jìn)方法2 基于ResNet-101 提取圖像特征,在預(yù)測器中嵌入OHEM 解決前景目標(biāo)和背景之間的不平衡問題,檢測精度達(dá)到66.83%,比TFA 提升了3.12 個(gè)百分點(diǎn)。從改進(jìn)方法1 和改進(jìn)方法2 中可以看出,多尺度多頭自注意力和OHEM 都對(duì)模型的檢測精度有所提升,因此,MMSOFDD 把多尺度多頭自注意力和OHEM 結(jié)合起來進(jìn)行實(shí)驗(yàn),得到檢測精度69.60%。與TFA、改進(jìn)方法1 和改進(jìn)方法2 相比,MMSOFDD 分別提升了5.89、4.42 和2.77 個(gè)百分點(diǎn),證明結(jié)合多尺度多頭自注意力與OHEM 對(duì)模型的檢測效果的提升有相互增益的作用。上述實(shí)驗(yàn)結(jié)果表明,本文提出的MMSOFDD 能夠在少量訓(xùn)練樣本的條件下有效提升硅藻的檢測精度。
為了進(jìn)一步驗(yàn)證MMSOFDD 能夠在訓(xùn)練樣本量少的條件下獲得較高檢測精度,將其與FSRW(Few-Shot Re-Weighting)[11]、Meta R-CNN[13]、FSIW(Few-Shot In Wild)[12]、Context-Transformer[16]、MPSR(Multi-scale Positive Sample Refinement)[29]、DeFRCN(Decoupled Faster R-CNN)[30]、FSCE(Few-Shot object detection via Contrastive proposals Encoding)[19]小樣本目標(biāo)檢測模型在10-shot 的訓(xùn)練集設(shè)置下進(jìn)行比較分析。實(shí)驗(yàn)結(jié)果如表6 所示。
從表6 可以看出:
1)在8 類硅藻中,小環(huán)藻、針桿藻、卵形藻和直鏈藻在所有模型上的精度都比較高,而舟形藻、菱形藻、異極藻和橋彎藻的精度都比較低。因此,保證小環(huán)藻、針桿藻、卵形藻和直鏈藻的檢測精度的同時(shí)提升舟形藻、菱形藻、異極藻和橋彎藻的檢測精度是關(guān)鍵。MMSOFDD 對(duì)舟形藻、菱形藻和異極藻的檢測精度分別是55.37%、59.1%和62.60%,是所有模型中最高的,對(duì)比其他模型都有大幅度的提升。橋彎藻的檢測精度相較于Meta R-CNN、FSIW、Context-Transformer 和MPSR 也有較大的提升。從評(píng)價(jià)指標(biāo)平均精度均值mAP 來看,MMSOFDD 達(dá)到69.60%,相較于FSRW、Meta R-CNN、FSIW、Context-Transformer、MPSR、DeFRCN 和FSCE,分別提高了2.71、8.00、8.70、56.02、8.69、4.96 和8.34 個(gè)百分點(diǎn),說明MMSOFDD 對(duì)硅藻檢測的綜合性能更高。
2)從算法的魯棒性上看,魯棒性越好的模型,對(duì)不同硅藻的識(shí)別率AP 的標(biāo)準(zhǔn)差越接近零。表6 中統(tǒng)計(jì)了不同模型對(duì)不同硅藻的識(shí)別率AP 的標(biāo)準(zhǔn)差。雖然Context-Transformer模型獲得AP 的標(biāo)準(zhǔn)差達(dá)到4.42,但其各類硅藻的檢測精度較低,mAP 只有13.58%,不宜用于硅藻檢測。MMSOFDD 的標(biāo)準(zhǔn)差為14.67,低于除Context-Transformer 以外的所有對(duì)比模型,說明MMSOFDD 模型對(duì)8 類硅藻的檢測精度更為平衡,模型的魯棒性更好,在實(shí)際應(yīng)用中的應(yīng)用范圍更加廣泛。
表6 不同模型對(duì)8類硅藻的AP、mAP和AP標(biāo)準(zhǔn)差的比較Tab.6 Comparison of AP,mAP and standard deviation of AP among different models for 8 species of diatoms
因此,在法醫(yī)診斷溺水案件中,即使硅藻圖像的獲取和標(biāo)注困難,MMSOFDD 能夠利用少量的硅藻樣本訓(xùn)練得到一個(gè)精度較高的硅藻檢測器,有助于提高法醫(yī)的診斷速度。
把小樣本目標(biāo)檢測應(yīng)用到硅藻檢測中,能夠有效解決硅藻樣本獲取困難的問題,有助于提高法醫(yī)診斷溺水案件的速度,但目前小樣本目標(biāo)檢測仍然是一個(gè)挑戰(zhàn)。本文基于兩階段微調(diào)方法TFA 進(jìn)行改進(jìn),引入基于Transformer 的特征提取網(wǎng)絡(luò)BoTNet 并將其改進(jìn)為多尺度BoTNet-101,在預(yù)測器中嵌入OHEM 提出一個(gè)融合多尺度多頭自注意力和OHEM 的小樣本硅藻檢測模型MMSOFDD。實(shí)驗(yàn)結(jié)果表明,多尺度BoTNet-101 結(jié)合了CNN 和Transformer 的優(yōu)勢(shì),同時(shí)使用圖像的局部特征和全局特征,在訓(xùn)練樣本量少的條件下能夠充分地利用訓(xùn)練樣本。同時(shí),多尺度BoTNet-101 中的多尺度多頭自注意力能夠處理CNN 輸出的不同尺寸的特征圖,從而提取更加豐富的信息。在預(yù)測器中加入OHEM 可以自動(dòng)選擇出難識(shí)別的樣本并針對(duì)其進(jìn)行訓(xùn)練,有效解決前景目標(biāo)與背景之間的類別不平衡問題。通過與其他小樣本目標(biāo)檢測模型進(jìn)行對(duì)比實(shí)驗(yàn)驗(yàn)證了MMSOFDD 有效地提高對(duì)硅藻的檢測能力,在10-shot 的條件下能夠達(dá)到較好的檢測效果,未來可以基于MMSOFDD 繼續(xù)提高對(duì)其他硅藻的檢測精度。