易 星
(沈陽化工大學信息工程學院,遼寧沈陽 110142)
目標檢測是計算機視覺中較為熱門的研究方向,主要包含相關的目標定位和識別.目標檢測準確來說是在復雜背景的圖像中找到目標并進行邊框標注以及識別出目標的類別[1].檢測效果對圖像的語義理解和目標重識別有直接影響,當前目標檢測已經廣泛應用于醫(yī)學圖像分析及檢測和監(jiān)控系統(tǒng)中,因此展開目標檢測研究對科技的發(fā)展有重要意義.
小目標檢測[2]是目標檢測中的一類分支,相比于常規(guī)圖像的檢測,小目標檢測所需的技術和算法更嚴格.所謂小目標就是圖像中占比像素更少,提供的特征信息也相對較少,通常只有幾十個像素,如圖1(a)為小目標數據集,圖1(b)為檢測結果,本次實驗數據所包含的都是昆蟲標本圖像,所以研究小目標檢測是非常有意義的,尤其對目前安防、交通、救援等方面[3]有重要的應用價值.
圖1 昆蟲標本圖像
Krizhevsky等人[4]提出AlexNet是在2012年,利用ImageNet 在圖像分類上取得了突破性成果,在這之后,很多從事計算機視覺任務的研究者利用深度學習和卷積神經網絡來進行目標檢測、圖像分割等任務,并取得了不錯的效果.相較于傳統(tǒng)的目標檢測方法,深度學習的檢測方法具有更高的檢測精度以及特征提取充分等優(yōu)點.因此,深度學習方法被科研工作者應用于各個領域.當前大多數的視覺任務基本都是圍繞CNN 來開展的.但是,深度學習在小目標任務檢測上所達到的效果遠不如常規(guī)目標檢測.本文所述方法針對小目標檢測,使得檢測效果有一定提高.小目標檢測主要有以下兩個難點:
(1)目標在信息量較為復雜的情況下占比較小,所反映的信息是有限的、甚至達不到檢測效果,這就使得常規(guī)目標檢測的算法很難用于小目標檢測.在小目標檢測任務中,只有特定算法才能達到特定效果,不適用于所有的檢測任務,通用性不強.
(2)從小目標檢測任務中來看,對圖像目標的標記[5]是一個難題,在作為訓練數據時出現(xiàn)誤差對整體結果的影響很大;與此同時,數據標記需要耗費的人力、物力資源和時間成本都較大,使得所討論的數據集較小.
針對上述的問題,本文提出了基于卷積神經網絡為基礎的小目標多尺度的Faster-RCNN 檢測算法[6].該算法在結構上有相應的改變,主要是將高層和低層特征多尺度的提取特征,通過可視化技術對模型進行分析后,使得針對小目標檢測所提出的方法能較好地解決本文所提出的問題.
在2014年,F(xiàn)elzenszwalb等人[7]提出了可變形部件模型(deformable part model,DPM),隨后在目標檢測領域應用了該模型,達到了很好的效果.引入深度學習方法后,DPM的檢測效果相比于深度學習來說效果不夠顯著,因此,深度學習成為目前經常被使用的方法,尤其是在目標檢測領域成為絕大多數研究者熱衷的一個研究領域和方向.區(qū)域卷積神經網絡(Regions with Convolutional Neural Network,RCNN)系列[8]的方法在進行目標檢測時效果也非常顯著.Girshick 等人[9]提出的RCNN 結合了候選區(qū)域生成和深度學習兩方面的分類方法,RCNN 先對候選區(qū)域進行分割,再通過卷積神經網絡將區(qū)域內的特征充分提取,之后進行分類器回歸操作,但是由于候選區(qū)域難以避免的重疊部分導致該方法效率較低.在何愷明等人[10]提出空間金字塔池化網絡定義和Sermanet等人[11]提出目標定位方法后,Girshick等人[12]提出了以RCNN 為基礎的Fast-RCNN,隨之再將目標區(qū)域池化(region of interest pooling,ROI pooling)也引入其中,有利于圖像特征的歸一化,得到目標的特征圖是尺寸大小相同的.這有利于避免重復卷積特征.該方法在精度和速度上都明顯優(yōu)于RCNN.Fast-RCNN 之后,任少卿等人[13]再一次提出了Faster-RCNN 算法.這種方法的原理是利用錨點(anchor)方式生成候選區(qū)域,并將候選區(qū)域生成工作也交由網絡來完成,速度和精度相較于Fast-RCNN 有進一步提升.在此之后Redmen 等人[14]提出了比Faster-RCNN 更快的目標檢測方法YOLO(you only look once).YOLO 是將目標檢測當作回歸問題處理,不需要候選區(qū)域生成,僅需劃分回歸目標邊界框和將所屬類別定義準確.因此,YOLO 方法具有更快的檢測速度,但是同樣在小物體檢測方面效果不明顯,這兩類方法在常規(guī)目標檢測方面都有不錯的檢測效果.然而,在非常規(guī)的目標檢測、尤其是小目標檢測中,這些方法便不適用.實際上,達不到預期目標的主要原因是在深度學習提取小目標信息時,目標特征表示不出更多的有效信息,導致檢測方法對物體進行檢測時達不到要求.Takeki 等人[15]提出的小目標檢測方法結合了圖像語義分割內容,這種方法是把全卷積網絡、卷積神經網絡和支持向量機(support vector machine,SVM)[16]結合在一起,只適用于圖像信息較為簡單的場景中,檢測僅限于天空下的小鳥這樣的任務.由此可見,雖然科研人員在小目標檢測上花費了很多功夫,但是都不達到理想的效果,不具有通用性.
在卷積神經網絡中,通常低層特征能更好地將圖像紋理[17]和邊緣信息反映出來,高層特征更多的是傾向于對圖像的語義信息反映,會對圖像中比較細節(jié)的信息忽略,在目標非常小的時候,圖像中能得到的特征信息是有限的,因此需要低層特征去對細節(jié)信息進行提取和識別小目標.為此,在圖像信息進行重構[18]方面使用的是梯度上升法提取小目標的特征.如圖2所示.
圖2 實驗中所采用的昆蟲標本圖像
通常的Faster-RCNN 特征信息目標區(qū)域池化由最后一個卷積層完成的,顯然這種方法不適用于小目標檢測.高層特征對小物體檢測會因為特征提取不充分產生較大的問題,通過學習SSD 算法[19]之后利用了多尺度檢測,這就使得我們的特征提取不單單是采用最后一層特征,而是從多個尺度來進行卷積網絡提取.具體流程如圖3所示:輸入圖片首先在CNN 中實現(xiàn)特征提取,將各個層提取的特征送入RPN 生成候選區(qū)域[20],對于不同尺寸的候選區(qū)域信息,所需的anchor box 尺寸也是不同,越低層的特征所選擇需求的候選區(qū)域會占比更小.在得到生成的候選區(qū)域和feature map的映射之后通過ROI pooling 來將特征歸一化,送入分類器中,通過這種方式來充分對小目標的特征信息進行提取,從而實現(xiàn)小目標檢測.
圖3 RPN特征提取流程圖
網絡結構的改進解決了小目標檢測的瓶頸,針對小目標檢測中訓練的樣本標記較難并且樣本不易獲取,因此訓練的數據集較少.我們以昆蟲為主要的圖像進行目標特征提取,如圖4 所示.訓練、驗證和測試的圖像中昆蟲分布是不規(guī)則的,因此,數據的分布可能存在一些差異.圖4(1)為部分訓練圖像,圖4(2)為驗證圖像,圖4(3)為小目標檢測的部分測試圖像.
圖4 訓練數據中各個階段中所用的昆蟲標本圖像
我們采用T-SNE[21]的方法將圖像進行特征降維以此驗證高分辨率(high resolution,HR)和低分辨率(low resolution,LR)目標在分布上存在差別,采用的特征網絡是FPN,用低分辨率圖像來訓練模型,再用目標高分辨率圖像測試[22].對ROI pooling 層后得到的大小相同的特征同樣用TSNE方法進行降維.實驗結果顯示兩者確實存在很大差異.
實驗采用的數據集主要采用標本數據集,檢測的小目標為昆蟲.為了試驗精度和準確性,昆蟲標本采用實驗室培養(yǎng)基下的標本.圖像數據集共有217 張,采用的是ResNet50 作為backbone 選擇,使用FPN 網絡作為特征網絡進行實驗,選擇COCO 作為預訓練模型.因為檢測目標是昆蟲,所以,圖像尺寸統(tǒng)一固定在最短輸入尺寸是800、最長輸入尺寸是1333;在訓練參數設置方面,為了能更精確地得到訓練模型,迭代輪數增加到了12,學習率設置為0.00250000,warm up步數設置為84,學習率衰減輪數為[8,12],warm up的初始學習率是在0.00083333.模型訓練loss收斂情況如圖5 所示.圖中展示了隨著迭代次數的增加,loss的收斂情況以及l(fā)oss_rpn的變化等情況.可以看出,模型都在迭代1000 次時趨于收斂,隨著loss的降低,訓練的模型也達到了較高水平.
圖5 模擬訓練中l(wèi)oss收斂情況
將目標低分辨率數據集劃分成3 部分,昆蟲類別為6類,169 張用于訓練數據集模型,24 張用于驗證數據集,24 張用于測試數據集,數據集圖片如圖6 所示.
圖6 訓練數據集部分
檢測出來并進行標記的圖片如圖7所示.
圖7 檢測出來后數據集部分
在FPN特征網絡下所得的檢測結果如下表1所示.
表1 各類別目標檢測精度及召回率
從表1中可以得出兩個結論:
(1)高層特征與低層特征相互彌補和使用多尺度檢測的方法,對小目標的檢測精度都有較為明顯的提升,這說明結合深度網絡的低層和高層特征進行多尺度檢測的方法在一定程度上確實可行.
(2)檢測時需要高分辨率和低分辨率相互結合來進行訓練模型,這樣的檢測效果可以達到更好.僅使用高分辨率圖像作為訓練數據的模型檢測效果不佳,僅使用低分辨率圖像作為訓練數據的模型檢測效果相對較好,因此采用折中的方法可以達到理想的效果.將24張測試圖像的平均檢測時間作為評估計算復雜度[23]的指標,在FPN 特征網絡下所得的檢測結果如圖8所示.
圖8 檢測后圖像的標記和分類
第1 列表示模型使用的網絡結構,之后每一列第1 行表示采用哪一層的特征進行檢測,表示采用全部三個特征.VGG的conv1_2,conv2_2,conv5_3分別簡寫為conv1,conv2,conv5.
從圖9(1)(2)中可以得出兩個結論:
圖9 數據集模型訓練中相關參考數據
(1)在只利用一個特征檢測時,利用高層特征的平均檢測時間相對較少,這說明大的低層特征是適用于小目標檢測的,但會帶來較高的計算開銷.
(2)實時性較低的任務檢測可以通過多個特征增加計算開銷在可接受的范圍內進行.
從圖9還可以看出:
(1)通過下采樣的方法訓練高精度的目標檢測模型是可行的并且效果很好,這說明下采樣的方式可以減輕目標高分辨率圖像和目標低分辨率圖像數據差異帶來的影響.
(2)最大池化在這樣一個問題信息量有限,特征以及像素點不多的背景下一般比平均池化效果要好.
(3)結合采樣變換前后的目標高分辨率圖像和低分辨率圖像所訓練出的模型檢測精度偏高,這表示對目標高分辨率圖像進行采樣變換對目標高分辨率圖像和目標低分辨率圖像數據差異確實有一定影響甚至改善的效果.在小目標檢測數據難以標記、缺少訓練數據的情況下,為了提升檢測精度,可以對訓練的數據量稍微增加.
目標檢測在計算機視覺領域是相對較為熱門的,也深受科研人員的關注,但是當前常規(guī)目標檢測的方法應用在小物體上的檢測效果不太明顯.當前科研人員所研究出來檢測小目標的方法通用性太差,往往只能檢測單一小物體.因此,本文對小物體檢測進行了小目標檢測初步研究,以卷積神經網絡為起點以及對Faster-RCNN 進行有效的改進后,引入多尺度檢測,將高層與低層特征相互彌補的方式對小目標進行多尺度檢測,進而得出物體檢測結果.依照這樣方式所改變的針對性較強的算法,相較于原先Faster-RCNN 算法在檢測精度上有明顯的變化.由于計算機硬件方面的問題,本文所采用的數據集較小,訓練出來的模型精度相較于專業(yè)圖像檢測設備檢測出來的精度和準確度有很大差距,未來將從以下兩個方面進行相關研究:
(1)嘗試于其他的方法進行改進應用于小目標檢測,在改進的硬件基礎上對算法優(yōu)化調整,進一步提升檢測精度.
(2)信息表達是小目標檢測目前主要面臨的問題和瓶頸,其次諸如像素分類問題也是當前的難點,我們可以基于上述情況嘗試其他領域的研究包括圖像分割、遙感分割等.