陳國良,龐裕雙
(武漢理工大學(xué)機電工程學(xué)院,湖北 武漢 430070)
微操作是在微小空間范圍內(nèi)對微尺度元件或者物體進行操作,微操作空間下的目標(biāo)對象尺度很小,通常是亞毫米(mm)級或者微米(μm)級。為了完成微操作工作任務(wù),系統(tǒng)的視覺處理裝置需要獲取目標(biāo)的類別和位置。而在微操作空間下,待檢測目標(biāo)存在著尺度變化的情況。傳統(tǒng)的目標(biāo)檢測方法由于區(qū)域選擇策略沒有針對性[1]、手工設(shè)計的特征魯棒性較差[2]等問題,在微操作空間下的檢測效果并不太理想。
近年來,卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)因為其優(yōu)異的特征提取能力被應(yīng)用到圖像識別的任務(wù)之中,F(xiàn)aster RCNN[3]、YOLO[4]、SSD[5]等基于深度學(xué)習(xí)的目標(biāo)檢測算法也被提出,在眾多領(lǐng)域得到使用并取得突破。研究人員也將深度學(xué)習(xí)的相關(guān)方法遷移到微操作空間下的目標(biāo)檢測任務(wù)之中。彭剛等人[6]提出了一種將深度殘差網(wǎng)絡(luò)和在線困難樣本挖掘策略相結(jié)合的微操作系統(tǒng)檢測方法,但這種方法對目標(biāo)尺度較小時的檢測效果較差。張彤彤等人[7]則將知識蒸餾融合到目標(biāo)檢測網(wǎng)絡(luò)模型之中,提高了檢測的速率,但同時檢測的準(zhǔn)確率也降低了。王莉等人[8]提出一種結(jié)合跨越式特征融合和線性離散先驗框的目標(biāo)檢測方法,但這種網(wǎng)絡(luò)模型的可遷移性較差。黃開啟等人[9]通過引入聚類算法和優(yōu)化特征提取網(wǎng)絡(luò),降低了小目標(biāo)的漏檢率,但當(dāng)目標(biāo)圖像存在尺度變化時檢測效果較差。
基于以上情況,本文對Faster RCNN目標(biāo)檢測算法進行改進,提出了一種基于改進Faster RCNN的微操作空間目標(biāo)檢測算法。首先,使用ResNet50代替原來的VGG16作為骨干網(wǎng)絡(luò);然后,引入了遞歸特征金字塔網(wǎng)絡(luò)(recursive feature pyramid network,RFPN),對不同深度的圖像特征進行融合;接著,優(yōu)化區(qū)域建議網(wǎng)絡(luò)(region proposal network,RPN)的采樣策略,改善原有算法在錨框匹配時對小尺度目標(biāo)樣本提取質(zhì)量較差的情況;再優(yōu)化模型的損失函數(shù),進一步提高檢測精度,并加快網(wǎng)絡(luò)模型的收斂速率。最后通過實驗驗證了改進算法的可行性和有效性。
特征金字塔網(wǎng)絡(luò)(feature pyramid network,F(xiàn)PN)主要用來處理目標(biāo)檢測中的多尺度問題,其通過改進網(wǎng)絡(luò)的連接結(jié)構(gòu),改善多尺度目標(biāo)檢測的性能[10]。但FPN存在只對相鄰特征進行融合,忽略了底層和頂層的特征融合的不足。RFPN在普通FPN的基礎(chǔ)上,增加了一個反饋結(jié)構(gòu),通過這種反饋連接能夠使得網(wǎng)絡(luò)的誤差信息能夠更加充分地調(diào)整主干網(wǎng)絡(luò)的參數(shù),提高檢測的性能[11]。
改進的特征提取網(wǎng)絡(luò)結(jié)構(gòu)如圖1 所示。特征的融合分為2個階段,第1階段的融合跟FPN相同,設(shè)bi(i=2,3,4,5)為ResNet50的第i級操作,Bi為ResNet50的第i級輸出,fi為FPN的第i級操作,F(xiàn)i為FPN 的第i級輸出。輸入和輸出的關(guān)系可表示為
圖1 ResNet50 +RFPN特征提取網(wǎng)絡(luò)結(jié)構(gòu)
第2階段的融合通過反饋連接,將第1 階段的輸出Fi與第2階段的Bi聯(lián)系起來。首先,將第1階段的輸出Fi調(diào)整其通道數(shù)為Bi大小,并與Bi相加得到B′i;然后,繼續(xù)第1階段融合的操作;最后,可以得到RFPN的最終輸出F′5,F(xiàn)′4,F(xiàn)′3,F(xiàn)′2。設(shè)Ri為將Fi和B′i結(jié)合的操作,輸入和輸出的關(guān)系可表示為
式中 當(dāng)i=2時,有Bi=B2,為b2(R(F2,B2))。
Faster RCNN 采用RPN 進行感興趣區(qū)域(region of interest,ROI)的提取,通過預(yù)先設(shè)定錨框的尺寸、長寬比例和正負(fù)樣本交并比(intersection over union,IOU)[12]閾值等參數(shù),在原圖像上生成眾多錨框,并使其與真實樣本的實際邊界框進行匹配,得到錨框與真實邊界框的IOU,再根據(jù)閾值進行采樣,選擇出一定數(shù)量的正樣本和負(fù)樣本用于網(wǎng)絡(luò)的訓(xùn)練。在微操作空間中,隨著視野范圍的調(diào)整,會存在許多小尺度目標(biāo)。而在提取小尺寸目標(biāo)的樣本時,其對應(yīng)的正樣本錨框的IOU低于其他目標(biāo),且正負(fù)樣本的IOU接近,導(dǎo)致提取出的訓(xùn)練樣本質(zhì)量不高,造成各類樣本不均衡的現(xiàn)象。
針對原有的采樣策略不適用于微操作空間下的目標(biāo)的情況,將原來對所有目標(biāo)都使用統(tǒng)一的正負(fù)樣本閾值改為使用自適應(yīng)閥值。當(dāng)某個圖像目標(biāo)的實際邊界框與錨框的IOU普遍低時,則認(rèn)為這個目標(biāo)為匹配困難目標(biāo),對目標(biāo)的最大IOU值進行計算,得到自適應(yīng)的正樣本閾值,從而提高正樣本的比重,并增大正負(fù)樣本之間的距離,達到困難樣本挖掘的效果。具體步驟如下:
1)輸入目標(biāo)圖像,設(shè)定好錨框的尺寸、步長及長寬比,在目標(biāo)圖像上獲得所有錨框;
2)計算所有錨框與真實目標(biāo)邊界框的IOU;
3)將與真實目標(biāo)邊界框匹配得到最大IOU值的錨框列為候選正樣本,并利用該錨框計算標(biāo)準(zhǔn)IOU;
4)將IOU 大于標(biāo)準(zhǔn)IOU 的錨框列為候選正樣本,將IOU大小是標(biāo)準(zhǔn)IOU的0.7~1倍的錨框列為忽略樣本;
5)在步驟(4)的基礎(chǔ)上,在剩余的錨框中,將IOU值大于0.7的錨框列為候選正樣本,IOU值小于0.3的列為候選負(fù)樣本,其他的列為忽略樣本;
6)得到候選正負(fù)樣本后,再從中按比例選取最終用于訓(xùn)練RPN參數(shù)的正負(fù)樣本。
標(biāo)準(zhǔn)IOU的計算表達式如下
式中 IOUmax為錨框與真實邊界框匹配得到的最大值,IOUstandard為標(biāo)準(zhǔn)IOU,Relax 為標(biāo)準(zhǔn)IOU 的系數(shù),IOUp為預(yù)先設(shè)定的正樣本閾值。
圖2為IOUp為0.7時RPN采樣策略和改進RPN采樣策略的IOUstandard對比,如圖所示,改進的RPN 采樣策略為低IOU小尺度目標(biāo)提供了自適應(yīng)的寬松閾值,增加了匹配困難的目標(biāo)樣本選擇為正樣本的概率。
圖2 RPN與改進RPN采樣的標(biāo)準(zhǔn)IOU系數(shù)對比
不同于Faster RCNN在RPN和檢測網(wǎng)絡(luò)部分訓(xùn)練時均使用同樣的回歸損失函數(shù),改進算法將采用不同的損失函數(shù)分別作用于RPN和檢測網(wǎng)絡(luò),以此來加快網(wǎng)絡(luò)模型收斂的速度,提高檢測精度。RPN的損失函數(shù)為
式中Lcls為分類損失函數(shù),Lreg為回邊框歸損失函數(shù),Ncls為用于訓(xùn)練分類網(wǎng)絡(luò)的樣本數(shù),Nreg為用于訓(xùn)練回歸網(wǎng)絡(luò)的樣本數(shù),pi為第i個候選區(qū)域目標(biāo)的預(yù)測概率,為第i個建議候選區(qū)域的判斷值(當(dāng)樣本是正樣本時,=1;而當(dāng)樣本是負(fù)樣本時=0),ti為第i個預(yù)測邊框的坐標(biāo),為第i個真實邊框的坐標(biāo),λ為平衡因子。
Smooth函數(shù)是在假設(shè)4個邊框點相互獨立的前提下計算回歸損失,而實際這4 個邊框點之間并不是獨立無聯(lián)系的,這就導(dǎo)致最終的回歸并不準(zhǔn)確。在檢測網(wǎng)絡(luò)使用CIOU Loss[13]損失函數(shù),其表達式為
式(9)中,α為權(quán)重參數(shù),p為歐氏距離,b為預(yù)測邊界框框的中心,bgt為真實邊界框框的中心,d為預(yù)測邊界框和真實邊界框最小包圍的對角線長度,v用于衡量長寬比相似性。式(11)中,w′和l′分別為真實邊界框的寬度和長度,wgt和lgt為分別為預(yù)測邊界框的寬度和長度。
LCIOU的優(yōu)點是能夠?qū)χ行狞c距離、檢測框的面積和長寬比3個方面進行調(diào)整,加快網(wǎng)絡(luò)模型的收斂,提高網(wǎng)絡(luò)模型的檢測準(zhǔn)確率。
本文采用的實驗對象為亞毫米級的微電阻,微電容和微發(fā)光二極管,如圖3所示,在顯微視覺裝置下獲取大尺度圖像,中尺度圖像和小尺度圖像。
圖3 實驗對象
為了防止由于數(shù)據(jù)集較小帶來的過擬合問題,本文通過旋轉(zhuǎn)、縮放、顏色變換、加噪等方法對樣本進行擴充最終得到1 500幅目標(biāo)圖像樣本,之后按照8∶1∶1的比例隨機劃分訓(xùn)練集、驗證集和測試集。全部模型在TensorFlow2.2 框架下編程實現(xiàn),模型訓(xùn)練在NVIDIA Geforce GTX 1060(顯存5GB)GPU、CUDA10.1和cuDNN 7.6的實驗環(huán)境下完成,操作系統(tǒng)為Windows10。
網(wǎng)絡(luò)訓(xùn)練過程中的損失函數(shù)值變化如圖4 所示。其中,loss為訓(xùn)練集損失值,val_loss為驗證損失值。在訓(xùn)練開始時,loss 和val_loss 的值都比較大,隨著迭代的增加,loss和val_loss的值都開始下降并趨于平緩。
圖4 訓(xùn)練過程中的損失函數(shù)變化曲線
精確率(Precision)反映真正例與全部預(yù)測正例之間的比例。召回率(Recall)反映真正例與全部真實正例之間的比例。表達式分別為
在Faster RCNN目標(biāo)檢測算法的基礎(chǔ)上進行改進,得到如表1所示的幾組算法,算法1 為Faster RCNN 原算法,算法2為主干網(wǎng)絡(luò)替換成ResNet50 的Faster RCNN,在算法2的基礎(chǔ)上融合RFPN得到算法3,算法4是在算法3 的基礎(chǔ)上改進RPN采樣策略,算法5 是在算法4 的基礎(chǔ)上使用雙損失函數(shù)優(yōu)化,算法5即為所提出的算法。
表1 算法配置
將表1所示的5 種不同的算法在1 500 張圖像構(gòu)成的數(shù)據(jù)集上進行訓(xùn)練與測試,在測試集中得到表2 所示的實驗結(jié)果。由表2 可知,ResNet50 的特征提取效果明顯果比VGG16更好,這是因為殘差網(wǎng)絡(luò)能夠有效處理深度網(wǎng)絡(luò)梯度彌散的問題。由算法3檢測結(jié)果可以得知,RFPN對3 種目標(biāo)的檢測效果提升較大。算法5相比算法4,在采用雙損失函數(shù)的情況下,在提高檢測精度的同時,也減少了網(wǎng)絡(luò)訓(xùn)練的時間。所提出的算法5 與算法1 即Faster RCNN 的原始檢測算法相比,微電容,微電阻,微發(fā)光二極管的檢測精度分別提高了6. 03 %,6. 06 %,6. 14 %,平均精度均值(mAP)提高了6.07%。
表2 算法性能比較
比較本文提出的算法5 和Faster RCNN算法對測試集圖像的檢測結(jié)果,分析改進的算法在微操作空間下的目標(biāo)檢測性能。圖5 為本文提出的算法5(左側(cè))和Faster RCNN(右側(cè))在多尺度目標(biāo)圖像上的檢測結(jié)果,前2 幅圖中的目標(biāo)尺度較大,后2幅圖中地目標(biāo)尺度適中。由圖可知,前2幅圖的檢測結(jié)果相差不大,即在顯微放大倍數(shù)較大時,2種算法的檢測效果相當(dāng),而在后2 幅圖中,本文提出的算法檢驗框的位置更加精確,檢測效果明顯更好。
圖5 多尺度目標(biāo)圖像檢測示例
圖6 為本文提出的算法5(左側(cè))和Faster RCNN 算法(右側(cè))在小尺度目標(biāo)圖像上的檢測結(jié)果。由圖可知:Faster RCNN算法在顯微鏡放大倍數(shù)較小時,目標(biāo)圖像的檢測效果較差,且存在一定程度的漏檢;而本文提出的算法則明顯改善了這種情況,同時對于目標(biāo)的定位準(zhǔn)確性有明顯的提升。
圖6 小尺度目標(biāo)圖像檢測示例
本文將Faster RCNN的主干網(wǎng)絡(luò)換成特征提取效果更好的深度殘差網(wǎng)絡(luò),并采用特征融合策略,引入RFPN,對不同深度的特征進行融合,提升了網(wǎng)絡(luò)對不同尺度大小圖像目標(biāo)的檢測性能,接著,改進了RPN的采樣策略,改善了原有算法在先驗框匹配時對小尺度目標(biāo)圖像的正樣本提取不足、負(fù)樣本質(zhì)量差的情況。優(yōu)化了網(wǎng)絡(luò)的損失函數(shù),采用雙損失函數(shù),在提高檢測精度的同時,也加快了網(wǎng)絡(luò)的收斂。實驗表明:將改進后的算法運用到微操作空間下對目標(biāo)進行檢測,可以準(zhǔn)確、穩(wěn)定地檢測目標(biāo),相比于Faster RCNN算法,平均檢測精度提高了6.06%。