楊玲倩
(西南民族大學電子信息學院,成都 610041)
當今社會高速發(fā)展,汽車的保有量不斷增加,交通系統(tǒng)也在不斷發(fā)展。對于道路上行駛的車輛來說,其最明顯的身份標識就是車牌。在智能交通系統(tǒng)中,車牌檢測技術可以提供實用、高效的管理辦法,是其重要組成部分。它不僅能應用到收費站系統(tǒng)中進行檢測,也能應用到城市交通中各種場景的智能監(jiān)控。除了上述應用場景會產生一些固定視角的檢測圖片外,還有一些需要檢測的車牌圖像需通過無人機或手機等便攜式設備進行拍攝,但這類設備拍攝的圖像通常會出現質量低、容易模糊等缺點。正因如此,算法也需要應對更加復雜的自然場景,不僅要求算法能夠迅速檢測到圖片中的內容,達到實時檢測的效果;也要求算法能夠對不同場景的圖片進行檢測,提高其魯棒性。因此,對于自然場景下實時車牌檢測算法的研究存在很高的應用價值。
自然場景下的車牌檢測任務需要達到精度高、實時性好的要求,并且網絡應該具有較少的參數量,從而網絡可以搭建在移動端口,同時也要求網絡能夠實現高精度的檢測。因此,本文專注于在輕量級網絡構建的基礎上提高車牌檢測精度,搭建單階段的目標檢測網絡框架,通過引入輕量級的功能模塊來提高車牌的檢測精度以提高檢測的實時性。本文主要貢獻如下:
(1)設計了一種基于單階段anchor-free的輕量化目標檢測框架,網絡不再分階段提取特征,不再需要錨框計算,減少了模型參數量,提高了檢測速度。
(2)利用神經結構搜索(NAS)改進了模型中的特征金字塔關鍵部分,在不損失模型性能的前提下,提高了模型的學習能力并優(yōu)化了特征提取方式。
當前基于深度學習的自然場景文本檢測算法可以分為以下兩類:分別是基于目標檢測(object detection)和基于語義分割(semantic segmet)的自然場景文本檢測方法。
這類方法通常是建立在經典目標檢測算法的 基 礎 上,例 如R-CNN、Faster R-CNN、SSD、YOLO等,它們都擁有提取圖像特征的優(yōu)點,有著很好的檢測效果。這其中具有代表 性 的 算 法 包 括CTPN、TextBoxes、Seg-Link、TextBoxes++等。Tian等提 出 的CTPN是將文本區(qū)域看作若干組件連接構成的序列,并使用循環(huán)神經網絡(RNN)提取用于回歸預測的編碼特征,以實現對文本序列的檢測。Liao等提出的TextBoxes是文本檢測算法中較早將目標檢測技術融入文本檢測技術的模型之一,通過卷積層提取特征后,該網絡能夠有效檢測出圖像中不同大小的文本。Shi等提出的SegLink算法,通過增加組件之間的連接屬性參數預測,實現了對文本組件的連接檢測,對于各種大小的文本檢測都有很好的魯棒性。而Liao等在TextBoxes的基礎上進行改進,提出了TextBoxes++,增加了文本方向角度的預測,以實現對傾斜文本的預測。
該方法主要借鑒了經典語義分割算法的思路,利用深度卷積和上采樣的方法進行多級特征融合,對圖像中的每個像素點進行預測并分類。其中代表性的模型包括EAST、Pixel-Link、TextField等。Zhou等提出的EAST算法利用全卷積神經網絡(FCN)提取到圖像的高維特征,并直接對圖像中的每個像素點進行預測,判斷其是否屬于文本區(qū)域以及所在四邊形的頂點坐標。而對于復雜形狀的復雜區(qū)域,Deng等提出了PixelLink,該算法在圖像中像素文本與背景分類的結果上利用像素之間的連接關系劃分像素集合,進一步區(qū)分圖像中的不同文本。Xu等提出深度方向場文本檢測方法TextField,該方法通過圖像內的文本方向場來學習表示文本中的區(qū)域特性。
本節(jié)主要介紹本文提出的一種單階段的輕量級車牌檢測網絡結構,如圖1所示,并對該結構中的每個階段網絡進行了介紹。
圖1 單階段車牌檢測網絡結構
本文所使用的網絡是一種基于anchor-free的單階段目標檢測算法,因此不存在進行多次特征提取的操作以及與錨框相關的復雜運算,因此減少了一定的參數計算量。該算法可以分為以下幾部分:用于特征提取的骨干網絡、用于特征優(yōu)化的頸部網絡以及包含了三個分支(Classification、Regression、Center-ness)的頭部檢測網絡。
首先通過MobileNetV2網絡后與新的特征金字塔(NAS-FPN)網絡結合,通過對不同層的特征進行提取并融合得到特征圖(feature map);后續(xù)每層特征圖分別通過三個分支得到回歸坐標、類別以及Center-ness的向量值。回歸過程與Center-ness共同由一組4個卷積層進行計算,分類分支單獨經歷一組4個卷積層進行計算。
本文使用了輕量級網絡模型MobileNetV2,它不僅繼承了MobileNetV1的深度可分離卷積來代替?zhèn)鹘y(tǒng)卷積,還在其中加入了Linear Bottlenecks和Inverted residuals。
深度可分離卷積可以分為深度卷積(depthwise convolution)和 點 卷 積(pointwise convolution)。圖2展示了傳統(tǒng)卷積和深度可分離卷積的不同之處,其中上方為傳統(tǒng)卷積,下方為深度可分離卷積。假設兩者的輸入特征圖大小都為D×D×,輸出特征圖大小都為D×D×,那么傳統(tǒng)卷積的計算量為:
圖2 標準卷積和深度可分離卷積
而深度可分離卷積的計算量為:
由此可以得出,當網絡采用了深度可分離卷積后,減少的計算量可表示為:
MobileNetV2使 用Linear Bottlenecks是 因 為每當卷積從高維度轉向低維度時,使用ReLU激活函數可能會造成信息丟失或破壞,因此MobileNetV2沒有在第二個點卷積處使用非線性激活函數(ReLU),而使用了線性激活函數,這樣可以防止破壞過多的信息。
而當tensor的維度很低時,卷積層的計算量就會很小,但低維度的tensor不能提取到足夠多的特征信息。因此MobileNetV2提出了一個反轉殘差塊(inverted residuals)結構來解決這一問題,以圖3為例。從圖3可以看到,首先通過點卷積擴張數據使卷積升到高維度,然后使用深度卷積提取特征,最后經過點卷積壓縮數據使卷積降到低維度,實現了高維度提取特征、低維度輸出特征,降低網絡參數量的目的。
圖3 反轉殘差塊
在特征金字塔的部分,本文沒有使用傳統(tǒng)的特征金字塔FPN結構,而是使用了一種與神經結構搜索(neural architecture search,NAS)類似的方法,通過一個新的可擴展空間去搜索合適的結構以優(yōu)化特征金字塔。該過程考慮到特征金字塔中自頂向下和自底向上的所有連接組合,從而實現跨范圍的特征融合。
NAS-FPN在 特 征 金 字 塔 上 使 用 了7個basic block,而每個basic block的運算流程是從樣本層X中選擇兩層x1和x2,然后將兩個操作op1和op2分別應用于這兩層,最后使用聚集運算agg將兩個輸出合并為一個特征。最后取三個{x5,x6,x7}作為特征金字塔的{P3,P4,P5},而{P6,P7}由P5進行下采樣獲得。通過該搜索策略進行網絡搭建,最后搜索得到的最優(yōu)結構如圖4所示。
圖4 NAS-FPN結構
基于NAS的思想,優(yōu)化后的特征金字塔結構能夠進一步提高網絡的精度,使得網絡在輕量級的環(huán)境下也能夠取得較好的效果。
網絡中增加了一個新的分支用于預測位置的中心角(Center-ness),它主要用于計算該位置到其對應目標中心的歸一化距離。
對于一個隨機的位置目標(*,*,*,*),Center-ness可以定義為:
通過一個平方根的計算后,Center-ness的值被定義在0到1之間,越接近1就代表越靠近對象中心;反之,越接近0就離對象中心越遠。在訓練時,Center-ness分支會使用交叉熵損失進行訓練,而在測試過程中,會通過Centerness與對應的分類相乘得到每個像素點最終的分類分數。
本文中損失函數的計算分別來自于分類分支和回歸分支,其公式如下:
其中,表示分類分支的損失函數,采用了Focal Loss計算損失;而則表示回歸分支的損失函數,采用了GIOU Loss。Npos表示正樣本的數量,負責平衡分類分支和回歸分支的損失函數。
本文構建好單階段的網絡模型后在數據處理中還使用了以下方法提升網絡精度。
在模型訓練時,由于特征提取的過程中會生成許多特征圖,它們有些比原圖小了數十倍,因而小目標的特征可能被忽略,并且難以被網絡檢測到,同時模型的性能也會受到輸入圖片尺寸的影響。因此,通過多尺度圖像進行訓練,不僅可以提高網絡的精度,也可以提高檢測模型對物體尺寸的魯棒性。
實驗中會使用兩個固定的輸入尺度,在每個訓練批次時都會隨機選擇一個輸入尺度進行訓練。
在訓練過程中,我們使用了圖像擴充和隨機裁剪的方法。圖像擴充是將圖片長寬擴大一定比例,然后將原圖放置進去,擴大后的其他區(qū)域采用均值填充。這樣可以將大目標變成小目標,增加了小目標的樣本數量。而隨機裁剪是通過裁剪patch和bbox,這使兩者在裁剪后都具有最小的IoU,通過擴充和隨機裁剪的方法,擴大了樣本的尺度,提高了網絡對于目標尺度的魯棒性。
本文實驗基于Pytorch(1.8)框架實現;GPU計算設備型號NVIDIA GeForce GTX 2080Ti;CUDA版本為10.2;編程語言為Python3.7;使用了隨機梯度下降(SGD)訓練迭代,初始學習率設置為0.01,動量因子momentum設置為0.9,權重衰減因子設置為0.0005,使用了目標檢測工具箱MMDetection。
在數據集上使用了中科大發(fā)布的CCPDGreen數據集。由于傳統(tǒng)的車牌檢測與識別任務都是在小規(guī)模數據集上進行訓練和測試,無法勝任當前復雜多變的交通環(huán)境,因此中科大在2018年提出了CCPD數據集以解決這一困境。該數據集均拍攝于合肥的停車場,由工作人員手持Android POS機在早上7:30到晚上10:00之間隨機進行拍攝并手工標注這些照片。本文使用的是2019年提出的新能源數據集,該數據集包含了1.1萬張左右的新能源汽車車牌圖像,且每張照片中只包含一個bounding box框。
表1展示了本文提出的網絡模型與當前主流的常規(guī)檢測算法在CCPD-Green數據集上的計算量、參數量以及精度比較結果。從表1可以看出,改進后的網絡模型相較于其他網絡而言,在減少網絡參數量的同時,精度也得到了有效提升。
表1 不同模型對比
其中,@256表示FPN的輸出和Head中的卷積通道數都為256;@128-256表示FPN的輸出通道數為128,Head中的卷積通道數為256;@128表示FPN的輸出和Head中的卷積通道數都為128。
表2和表3展示了在網絡中對不同的主干網絡和特征金字塔結構分別進行訓練所得到的測試結果,從表中可以看出MobileNetV2和NASFPN結構能夠在減少參數量的情況下提高檢測精度。
表2 不同主干網絡下的模型性能和精度對比
表3 不同特征金字塔網絡下的模型性能和精度對比
表4展示了本文提出的方法在加入數據增強后的對比結果。在多尺度訓練部分,使用了(320,320)和(416,416)兩個輸入尺度進行訓練。通過多尺度訓練后,檢測精度相比于只使用了(320,320)進行訓練的模型來說,mAP提升接近1;而加入圖像擴充和隨機裁剪之后,模型mAP提升接近2。從表4可以看出,圖像擴充和隨機裁剪對模型性能的提升效果較為明顯,在加入多尺度訓練后,兩者的共同作用效果更為優(yōu)異。
表4 加入數據增強后的模型性能和精度對比
本文通過重新構建了一種基于單階段目標檢測網絡的框架,將MobileNetV2作為主干網絡,并基于NAS的思想優(yōu)化特征金字塔網絡結構。相比于傳統(tǒng)的單階段目標檢測算法,該網絡在降低網絡參數的同時,一定程度上提升了檢測精度。