陳悅哲 孔令云 李 杰 張 儀 王許鵬
(西京學院,陜西 西安710123)
數字在數學、金融、大數據、教育等各個行業都是加快發展歷程的關鍵。由于信息時代的迅速發展,致使數字信息的長度和維度都大大增加,如何快速準確的識別出數字內容就尤為重要。
2016 年3 月份,自從Google 的圍棋人工智能程序AlphaGo以4 比1 的大比分,戰勝人類選手李世石以來,深度神經網絡就迅速發展起來,發展出了一系列的手寫數字識別的算法,例如R-CNN[1],Fast R-CNN[2],Faster R-CNN[3],和Mask RCNN[4]。這些算法的準確率雖然可以滿足基本的識別需求,但是實時性不佳。
本實驗介紹基于改進YOLOv3[5]的手寫數字識別技術,該方法對數字的識別有較高的準確率和較快的預測速度。
數據質量的高低與模型訓練的好壞有著直接的聯系,因此本實驗對原生的MNIST 數據集進行了改進和數據增強。
本實驗將單一數字為樣本的MNIST 數據集進行拼隨機拼接處理,提高模型在同一個樣本內識別多個數字的能力。
在數據預處理部分,主要有兩個核心任務。
第一,避免分散模型對數字識別的注意力。因為在數字識別的過程中,并不需要對數字的色彩和灰色度進行識別,去除一些非必要信息,所以將對樣本進行二值化。
第二,解決樣本數量問題。訓練YOLOv3 的模型需要大量的樣本,否則極易過擬合,使模型缺失泛化能力。在基礎樣本數量確定后,本實驗采取的數據增強技術有:隨機移動、隨機裁剪、隨機反轉。處理后的數據如圖1。

圖1 數據樣本
YOLOv3 相較于YOLOv2 的一個重大改進就是采用的多尺度特征的方法代替YOLOv2 采用的passthrough 層,這種多尺度特征的方法對于檢測細粒度特征有著優異的效果,三種特征尺度分別為13*13、26*26 和56*56。
但是在日常的數字識別項目中,每個數字一般只占據頁面的一小部分,過多的進行大尺度特征描述是徒勞的,同時為了避免特殊情況,將設定一個閾值為0.7 來觸發是否進行大尺度特征描述,計算公式如下:

特征圖由大到小對應的先驗框分別為(116*90),(156*198),(373*326);(30*61)(62*45)(59*119);(10*13)(16*30)(33*23)。
YOLOv3 具有對80 類甚至上百類的目標進行識別,由于數字識別的范圍是在0~9 的10 分類問題,YOLOv3 過于厚重的網絡模型會造成資源浪費和實時速度。雖然DarkNet-53 采用殘差網絡結構使得網絡的訓練難度得到降低,并使用了大量的1×1 卷積核與使用3×3 大小步長為2 的卷積核替代最大池化減少網絡總體的參數數量,但是還是沒有解決訓練復雜和識別速度慢的問題。
為了精進這一點,在保證準確率的基礎上,本實驗提出了改進版的DarkNet-53 特殊提取器IDN,改進YOLOv3 網絡結構如圖2 所示。

圖2 改進YOLOv3 網絡結構
本實驗主要任務是兩個部分:
第一個部分,通過實驗評估YOLOv3 模型與改進后的YOLOv3 模型的準確率。
第二個部分,在預測階段對比模型的響應速度。
Loss 主要分為三大部分:邊界框坐標損失,分類損失和置信度損失。使用誤差平方損失函數分別計算(x,y,w,h)的Loss 時,為了弱化邊界框尺寸對損失值的影響,增加1 個與物體框大小有關的權重。
整個模型的Loss 如下:

其中,λobj表示置信度,判斷網格內有無物體。
本實驗在準確率P(Precision)、召回率R(Recall)的基礎上,選取mAP 作為評價指標,計算公式如下:

訓練25 個epoch 的實驗結果如表1。

表1 實驗結果比對
改進YOLOv3 與原始YOLOv3 的mAP 差距并不大,甚至可以忽略,但是在實時性上有一定的提升。
本實驗對MNIST 數據集進行隨機拼接并使用多種數據增強方法,加強數據的多樣性,并且對DarkNet-53 網絡結構和YOLOv3 的多尺度識別進行改進,提出了數字的識別方法。最后實驗采用mAP 方法進行性能評估。實驗結果表明, 本實驗提出的數字識別方法相對YOLOv3 方法的mAP 差距不大,但是在預測速度上有一定的提升。