丁繼文
摘要:針對圖像分類中背景信息太多容易誤導分類結果的問題,提出一種篩選—識別網(wǎng)絡架構,通過剔除與分類無關的背景信息、定位要分類的感興趣區(qū)域及提高對車輛細粒度分類的準確率。用YOLOv3網(wǎng)絡快速尋找需要分類的目標物體,消除背景中無關信息對分類的誤導,將結果送入到雙線性卷積神經(jīng)網(wǎng)絡進行訓練和分類,結果在Cars196數(shù)據(jù)集中對車輛的車型、顏色和方向的分類精度為92.1%,92.7%,97.4%。利用監(jiān)控視頻自制數(shù)據(jù)集中對車型、顏色和方向的分類精度為71.3%,68%,85.6%。使用篩選—識別網(wǎng)絡架構對車輛的細粒度分類有積極作用,可以剔除大部分對分類沒有用的背景信息,更有利于網(wǎng)絡學習分類的特征信息,從而避免背景信息對分類結果的誤導,提升模型的分類精度。
關鍵詞:細粒度圖像分類;目標檢測;雙線性卷積神經(jīng)網(wǎng)絡;YOLOv3;篩選—識別網(wǎng)絡架構
中圖分類號:TP391文獻標志碼:A文章編號:1008-1739(2021)03-68-6
0引言
圖像分類[1]在計算機視覺領域是一個經(jīng)典課題,包括粗粒度圖像分類和細粒度圖像分類[2]。細粒度圖像分類是對在同一個大類別下進行更細致的分類,如區(qū)分貓狗的品種、車的品牌或車型[3-4]及鳥的種類等,在很多情況下細粒度分類才更有實際意義。細粒度分類與粗粒度的分類不同使細粒度分類往往具有細微的類間差異,加上圖像采集中存在光照、樣式、角度、遮擋及背景干擾等因素影響,與普通的圖像分類課題相比,細粒度圖像分類的研究難度更大。
在深度學習[5]興起之前,基于人工特征的細粒度圖像分類算法,一般先從圖像中提取SIFT[6]或HOG[7]等局部特征,然后利用VLAD[8]或Fisher vector[9-10]等編碼模型進行特征編碼。Berg等人[11]嘗試利用局部區(qū)域信息的特征編碼方法去提取POOF特征。但是由于人工提取特征的過程十分繁瑣,表述能力不強,所以分類效果并不理想。隨著深度學習的興起,利用卷積神經(jīng)網(wǎng)絡[12]提取特征比人工提取特征表述能力更強,分類效果更好,大量基于卷積特征算法的提出促進了細粒度圖像分類的發(fā)展。
按照模型訓練時是否需要人工標注信息,基于深度學習的細粒度圖像分類算法分為強監(jiān)督和弱監(jiān)督[13]2類。強監(jiān)督的細粒度圖像分類在模型訓練時不僅需要圖像的類別標簽,還需要圖像標注框和局部區(qū)域位置等人工標注信息,而弱監(jiān)督的細粒度圖像分類在模型訓練時僅依賴于類別標簽。然而,無論是強監(jiān)督還是弱監(jiān)督的細粒度圖像分類算法,大多數(shù)細粒度圖像分類算法的思路都是先找到前景對象和圖像中的局部區(qū)域,之后利用卷積神經(jīng)網(wǎng)絡對這些區(qū)域分別提取特征,并將提取的特征連接完成分類器的訓練和預測[14]。Zhang等人[15]提出了part-based R-CNN算法,先采用R-CNN算法對圖像進行檢測,得到局部區(qū)域,再分別對每一塊區(qū)域提取卷積特征,并將這些區(qū)域的特征連接構成一個特征向量,最后用支持向量機(SVM)訓練分類。然而,選擇性搜索算法會產(chǎn)生大量無關的候選區(qū)域,造成運算上的浪費。Lin[16]等人提出了新穎的雙線性卷積神經(jīng)網(wǎng)絡(B-CNN)的弱監(jiān)督細粒度圖像分類算法,在3個經(jīng)典數(shù)據(jù)集上達到很高的分類精度,能夠?qū)崿F(xiàn)端到端的訓練,且僅依賴類別標簽,而無需借助其他的圖像標注信息,提高了算法的實用性。
在一幅圖像中有區(qū)分度的信息所占圖像的比例越高,卷積網(wǎng)絡提取的利于分類的特征就越多,分類效果就越好,與人類區(qū)分物體聚焦的過程相似。本文提出一種基于深度學習的篩選—識別的網(wǎng)絡架構,使用YOLOv3快速找到物體,篩選圖像中有區(qū)分度的區(qū)域,剔除對分類不利的背景信息,再使用B-CNN[17]模型對有區(qū)分度的區(qū)域進行特征提取和分類,從而降低了無關背景信息對分類結果的干擾,提高了分類的精度。
1篩選—識別的網(wǎng)絡架構
1.1總體框架
利用YOLOv3算法檢測網(wǎng)絡尋找圖片的目標區(qū)域,篩選去除與分類無關的信息,然后將得到的結果(YOLOv3的輸出)輸入B-CNN中得到最后的多屬性分類結果,系統(tǒng)架構如圖1所示。
1.2基于YOLOv3的檢測方法
1.2.1基于YOLOv3的網(wǎng)絡篩選
YOLOv3算法是對YOLOv2目標檢測算法的改進,將輸入圖像劃分成×個柵格,更加細致的柵格劃分使得模型對小物體的定位更加精準。經(jīng)過YOLOv2檢測網(wǎng)絡,對每個柵格都預測個邊界框,為平衡模型的復雜度和召回率,選擇邊界框的個數(shù)為5,最終會保留與物體真實邊界框的交并比(IOU)最大的那個邊界框,即:
最后得到的邊界框形狀大多為細高型,扁平型居少。每個邊界框預測5個回歸值(,,,,),,表示邊界框的中心坐標,,表示邊界框的高度和寬度,為置信度。=×IOU,其中,的值為0或1,0表示圖像中沒有目標,1表示圖像中有目標。置信度反映了是否包含目標以及包含目標情況下預測位置的準確性。為了更好的實驗效果,設置閾值為0.3,得分小于0.3的邊界框會被全部排除,剩下的是最后的預測邊界框。
邊界框預測調(diào)整:,經(jīng)過回歸函數(shù)處理后,范圍固定在0~1,,表示柵格的坐標,比如某層的特征圖大小是10×10,那么柵格就有10×10個,比如第0行第0列的柵格的坐標是0,就是0。最后的預測為:
1.2.2篩選區(qū)域的網(wǎng)絡結構
YOLOv3算法提出了Darknet53[18]的分類網(wǎng)絡,不同于YOLOv2提出的DarkNet19分類網(wǎng)絡結構,有53個卷積層和5個最大池化層,比Darknet-19效果好很多。同時,Darknet53在效果更好的情況下,是Resnet-101效率的1.5倍,在與Resnet-152的效果幾乎相同的情況下,效率是Resnet-152的2倍,DarkNet-53網(wǎng)絡結構如圖2所示。
YOLOv3的檢測網(wǎng)絡使用數(shù)據(jù)集訓練Darknet-53,輸入圖像為416×416,然后在3種尺度上特征交互,分別是13×13,26×26,52×52,在每個尺度內(nèi),通過卷積核(3×3和1×1)的方式實現(xiàn)特征圖之間的局部特征交互,作用類似于全連接層。
最小尺度YOLO層:輸入13×13的特征圖,一共1 024個通道。經(jīng)過一系列的卷積操作,特征圖的大小不變,但是通道數(shù)最后減少為75個,結果輸出13×13大小的特征圖,75個通道。
中尺度YOLO層:輸入前面的13×13×512通道的特征圖進行卷積操作,生成13×13×256通道的特征圖,然后進行上采樣,生成26×26×256通道的特征圖,同時與61層的26×26×512通道的中尺度的特征圖合并。再進行一系列卷積操作,特征圖的大小不變,但是通道數(shù)最后減少為75個。結果輸出26×26大小的特征圖,75個通道。
大尺度的YOLO層:輸入前面的26×26×256通道的特征圖進行卷積操作,生成26×26×128通道的特征圖,然后進行上采樣生成52×52×128通道的特征圖,同時與36層的52×52×256通道的中尺度的特征圖合并。再進行一系列卷積操作,特征圖的大小不變,但是通道數(shù)最后減少為75個。結果輸出52×52大小的特征圖,75個通道,最后在3個輸出上進行分類和位置回歸。
1.3基于B-CNN的特征提取和識別
1.3.1 B-CNN模型的結構
B-CNN是Tsungyu Lin等人提出的具有優(yōu)異泛化性的B-CNN。B-CNN模型由一個四元組組成:M=( , , , ),其中,和為基于卷積神經(jīng)網(wǎng)絡A和B的特征提取函數(shù),是一個池化函數(shù),是分類函數(shù)。特征提取函數(shù)可以看成一個函數(shù)映射,將輸入圖像I與位置區(qū)域L映射為一個×維的特征。輸入圖像在某一位置I處的雙線性特征可表示為:
2實驗結果與分析
2.1數(shù)據(jù)集
為了驗證方法的效果,采用標準細粒度圖像分類數(shù)據(jù)集Cars196和利用監(jiān)控視頻截取圖片自制數(shù)據(jù)集進行測試,數(shù)據(jù)集的若干樣本如圖4所示。Cars196數(shù)據(jù)集一共有16 185幅圖像,提供196類不同品牌、年份、車型的車輛圖像,分為訓練集和測試集兩部分,大小分別為8 144幅和8 041幅。
制作數(shù)據(jù)集,首先將不同時間段的監(jiān)控視頻按1幀/秒自動截圖,獲取到樣本后再進行篩選,刪除不符合要求的圖片。采集到的圖片中車輛來自不同方向使檢測角度多樣,不能僅僅局限在某個特定方向,顏色和車型要多樣且盡量平衡,避免數(shù)據(jù)集集中在某一樣中,提高數(shù)據(jù)集質(zhì)量,共選取1 418張圖片。按照COCO數(shù)據(jù)集的圖像標注標準,將獲取到的樣本使用yolo mark進行標注,產(chǎn)生訓練所需要的xml文件。
2.2實驗結果和分析
使用YOLOv3預訓練模型從Cars196數(shù)據(jù)集和自制數(shù)據(jù)集中分別篩選具有判別性的區(qū)域,并將圖片分辨率歸一化為448×448像素。然后對改進的B-CNN進行微調(diào)整:①將分類層的類別數(shù)替換為車型、顏色和方向的類別數(shù);②對最后一層的參數(shù)初始化,且只訓練最后一層。設置較小的學習率數(shù)值為0.001,使用隨機梯度下降法通過反向傳播微調(diào)整個模型,迭代次數(shù)在50~100之間。本實驗中完成了車輛的車型、顏色以及方向的識別與分類。車型分為大客車、轎車、卡車及運動型實用、汽車等8種類別,車輛的顏色設置了黑色、白色及藍色等9種類別,車頭方向設置前和后2種類別。用準確率和召回率來評估方法的性能,準確率和召回率的定義如下:
[11] BERG T, BELHUMEUR P.Poof:Part-based One-vs-One Features for Fine-grained Categorization, Face Vereification, And Attribute Estimatioin[C]//IEEE Conference on Computer Vision and Pattern Recognition.Sydney: IEEE,2013:955-962.
[12]周飛燕,金林鵬,董軍.卷積神經(jīng)網(wǎng)絡研究綜述[J].計算機學報,2017,40(6):1229-1251.
[13] XIAO TJ,XU YC,YANG KY,et al.The Application of Two-level Attention Models in Deep Convolutional Neural Network for Fine-Grained Image Classification [C]//2015 IEEE Conference on Computer Vision and Pattern Recognition. Boston:IEEE,2015:1-10.
[14]翁雨辰,田野,路敦民,等.深度區(qū)域網(wǎng)絡方法的細粒度圖像分類[J].中國圖象圖形學報,2017,22(11):1521-1531.
[15] ZHANG N,DONAHUE J,GIRSHICK R,et al.Part-based R-CNNs for Fine-grained Category Detection[C]// Proceedings of the 13th European Conference on Computer Vision-ECCV 2014.Zurich:Springer,2014:834-849.
[16] LIN T Y, CHOWDHURY R A,MAJI S.Bilinear Convolutional Neural Networks for Fine-Grained Visual Recognition[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2018,40(6):1309-1322.
[17] LIN T Y, CHOWDHURY R A,MAJI S.Bilinear CNN Models for Fine-grained Visual Recognition[C]// 2015 IEEE International Conference on Computer Vision (ICCV). Santiago: IEEE,2015: 1449-1457.
[18] HUANG G,LIU Z,WEINBERGER K Q,et al.Densely Connected Convolutional Networks[C]//CVPR 2017.Hawaii: IEEE,2017:2261-2269.