張建偉,周亞同,史寶軍,何 昊,王 文
(1.河北工業大學電子信息工程學院,天津 300401;2.河北工業大學機械工程學院,天津 300401)
目前,數字儀器表被廣泛地應用在各行各業的測量系統中。但是,由于某些儀器表只是通過LED數碼管顯示數值,沒有提供數據傳輸接口,很難實現數據的自動采集以及保證數據的實時性和準確性。隨著科學技術的不斷進步,測量系統的數據讀取由人工監管方式逐漸向自動管理方式轉變。
傳統的字符識別方法[1 - 3]一般首先采取圖像預處理技術,如去噪、增強和矯正傾斜等,提升圖像質量,減少噪聲對后續識別的影響;然后采用圖像分割技術,如顏色聚類、二值化等,提取出目標前景;再采用先驗知識對字符進行分割,如基于輪廓的分割方法[4]和基于細化的分割方法[5,6]等,將單個字符從采集圖像中分離出來,減少粘連性,便于后續識別;最后采用模式匹配[7]、支持向量機SVM(Support Vector Machine)[8]等分類方法對單個字符進行識別。基于深度學習的字符識別方法首先利用目標檢測技術提取出目標前景,然后使用光學字符識別技術對文本區域進行識別。相比于傳統方法,基于深度學習的方法處理流程簡單,檢測效率高,泛化性強,更能滿足自動化作業的需求。圖1是字符識別方法流程圖,其中,圖1a是傳統方法,圖1b是基于深度學習的方法。
近年來,隨著AlexNet[9]在2012年的Image- Net圖像分類比賽中的成功,深度學習技術便引發了廣泛關注,尤其是卷積神經網絡CNN(Convolutional Neural Network)憑借其強大的非線性處理能力和共享參數的優勢,在目標檢測領域得到了廣泛的應用。Girshick等人[10]率先將CNN用于目標檢測,提出了R-CNN算法,提供了二階段檢測算法的示例,使用選擇性搜索SS(Selective Search)[11]算法生成稀疏的候選目標區域,利用深度卷積網絡對其進行特征提取,然后將特征送到SVM分類器中,完成候選區域中目標的分類。He等人[12]在R-CNN算法基礎上提出了SPP-Net,使用空間金字塔池化層SPP(Spatial Pyramid Pooling)替代候選區域的裁剪和逐區域特征提取,提升了檢測效率。Fast R-CNN[13]將特征提取,候選區域回歸與分類放進統一的卷積神經網絡中,完成端到端的訓練。Faster R-CNN[14]解決了SS算法生成候選區域耗時長的問題,使用區域提議網絡RPN(Region Proposal Network)回歸錨框(Anchor Box)生成候選區域,至此,二階段檢測算法步入全卷積網絡FCN(Fully Convolutional Network)[15]時代。萬吉林等人[16]使用Faster R-CNN算法成功檢測到變電站指針式儀表的表盤,為后續的讀數識別提供了目標區域。
Howard等人[26]提出的輕量化網絡MobileNetv1使用深度可分離卷積(Depthwise Separable Convolution)代替標準卷積,大大提升了計算效率和輕量化性能。MobileNetv2[27]網絡提出線性瓶頸模塊(Linear Bottleneck Module)和倒殘差模塊(Inverted Residuals Module),在減少網絡運算量的同時提升了特征表達能力。Zhang等人[28]提出了ShuffleNet網絡,使用逐點分組卷積(Pointwise Group Convolution)降低逐點卷積(Pointwise Convolution)操作運算量,隨后緊跟通道混洗(Channel Shuffle)操作加強組間信息交流。ShuffleNet V2[29]網絡使用分支并行操作替代分組卷積,進一步提升了運算效率。
本文工作主要包括以下2個方面:
(1)提出了一種基于真實框分布構建錨框的流程,設計能量化表達錨框匹配程度的指標——匹配率,促進構建更匹配且錨框數量更少的錨框方案,在減少內存的同時提升了檢測精度。
(2)使用深度可分離卷積替代標準卷積重新構建特征提取網絡,大幅減少了網絡參數量,加快了檢測速度,并提高了檢測精度。
SSD算法是基于前饋卷積神經網絡的檢測算法,其網絡結構分為特征提取網絡和回歸與分類子網絡。SSD算法使用VGG16(Visual Geometry Group with 16 weight layers)[30]作為特征提取網絡,在此基礎上添加額外的卷積層和池化層等結構,以獲得更富有語義信息的特征,然后回歸與分類子網絡利用提取的特征對錨框進行回歸與分類。SSD算法框架如圖2所示。Conv4_3、Conv7、Conv8_2、Conv9_2、Conv10_2和Conv11_2作為用于預測的特征圖,它們具有不同的分辨率和感受野,其分辨率分別是38*38,19*19,10*10,5*5,3*3和1*1。其中,高分辨率的淺層特征保留了豐富的細節信息,主要用于檢測小目標,而低分辨率的深層特征具有語義性較強的抽象信息,主要用于檢測中等及大目標。SSD算法生成一組特定數量的預測框和框中存在類別的得分,其數量與檢測類別數(Classes)相關,然后進行非極大值抑制NMS(Non-Maximum Suppression)操作,得到最終的檢測結果。

Figure 2 Framework of SSD 圖2 SSD算法框架圖
錨框是預先設定的一組多長寬比的邊界框,規則地排列在特征圖組的每一層上,小尺度錨框排列在淺層特征圖上,大尺度錨框排列在深層特征圖上。在每個特征點上,預測結果為相對于錨框的坐標偏移量和類別得分。
圖3為錨框的匹配示例,其中圖3a為含有真實框的輸入圖像,圖3b~圖3d分別對應Conv7層、Conv8_2層和Conv9_2層特征圖匹配示例。在進行預測時,特征圖上的每個點都需要產生k個不同長寬比的錨框,3*3的卷積核應用在特征圖的每個點上,為每一個錨框生成坐標偏移量和預測p個類別的得分,分別用loc(·)和conf(·)表示。
本研究以魯迅小說《離婚》的五個英譯本為研究素材。《離婚》是魯迅以現實生活為題材所寫的最后一篇小說。它運用對話的形式展開故事情節,介紹人物。這種文學創作形式在當時的文壇是一種創新。也許正是因為其獨特的創作手法吸引了譯者們對該小說翻譯的興趣。

Figure 3 Anchor box for matching of SSD圖3 SSD算法錨框匹配示例
SSD算法的損失函數是由定位損失和分類損失的加權和組成,具體計算如式(1)所示:
(1)
式中,Nm為與真實框匹配的錨框個數,Lconf為分類損失函數,Lloc為定位損失函數,α為兩者的權重因子,x為輸入圖像,c為目標類別,l為預測框,g為真實框。
SSD算法是基于錨框驅動的檢測算法,通過設計合理的錨框分布以預測真實框。錨框設計具有開放性,需要針對不同的任務場景來制定。本文提出了一種錨框方案的設計流程,并提出能量化表達錨框匹配程度的指標——匹配率,促進構建更匹配且錨框更少的錨框方案。雖然直接回歸與分類錨框的做法有著很高的檢測效率,但原始特征提取網絡VGG16前饋速度慢,參數量大。本文設計新穎的輕量化特征提取網絡替代VGG16,提升了特征表達能力,同時減少了時間消耗和參數量,能夠在CPU環境下滿足實時性需求。
本文提出一種根據真實框分布設計錨框的流程,首先需要分析特定任務場景下真實框的尺度分布,了解待檢測目標的形狀和大小范圍;然后根據真實框分布擬設計錨框方案;最后使用匹配率量化檢驗該錨框方案是否適合此項檢測任務。
圖4是真實框的尺度分布,其中圖4a和圖4b分別是真實框的長寬比和大小的分布統計。儀器表盤中的文本區域長寬比集中在1.0~3.0,大小集中在30~120像素,所以本文將錨框的長寬比設定為1.0,2.0和3.0共3種比例,大小設定為45,75和105共3種尺寸。

Figure 4 Ground truth box scale distribution(300*300)圖4 真實框尺度分布(圖像分辨率為300*300)
在錨框分配過程中,SSD算法計算真實框和每一個錨框的交并比IoU(Intersection over Union)。當IoU大于某一閾值時(默認是0.5),該錨框被視為正樣本,負責預測該真實框,參與到分類損失和定位損失的計算中。算法是通過正樣本來學習前景特征的,所以希望構建合理的錨框分布以匹配每一個真實框。本文設計了一個能量化表達錨框匹配程度的指標——匹配率,首先計算數據樣本中,真實框與每一個錨框的交并比,判斷該真實框能否匹配高質量的錨框(IoU≥0.5),然后統計被匹配的真實框所占的比例。該指標在一定程度上刻畫了錨框分布與真實框分布的相近程度,可量化表達錨框的匹配程度。圖5是匹配率計算示例,其中圖5a和圖5b分別表示真實框被匹配和未被匹配的示例。在圖5a中,真實框附近區域存在著與真實框尺度相近的錨框,這些錨框被視為正樣本,負責預測該真實框,并參與到分類損失和定位損失的計算中;而圖5b中真實框未能匹配高質量的錨框,則會影響算法對前景特征的學習,進而降低了檢測性能。

Figure 5 Examples of matching rate calculation圖5 匹配率計算示例

Figure 6 Depth-wise conv module圖6 深度可分離卷積模塊

Figure 7 Lightweight feature extraction network圖7 輕量化特征提取網絡
深度可分離卷積有著不遜于普通卷積的特征提取能力,并且計算速度快,參數量少,目前被廣泛應用在輕量化網絡中。圖6是深度可分離卷積的計算示意圖。深度可分離卷積首先將輸入特征圖按照通道數分為m片,對每一片單獨進行卷積運算,然后緊跟逐點卷積操作,加強通道間信息交流,其與普通卷積的計算量之比為1/n+1/d2,式中n是輸出特征圖通道數,d是卷積核大小。本文以深度可分離卷積模塊為核心構建了輕量化的特征提取網絡,其結構如圖7所示。該網絡采用類似VGG16的模塊化設計,除第2個模塊使用4個深度可分離卷積外,其余模塊均使用3個深度可分離卷積。在每個模塊中,首先使用步幅為2(S2)的深度可分離卷積對特征圖進行下采樣,同時將通道數加倍,學習更加抽象的語義表達;然后堆疊多個步幅為1(S1)的深度可分離卷積,學習更多的非線性關系。該網絡與VGG16相比,結構設計簡單,前饋速度快,且參數量遠遠小于后者,可輕松部署在CPU端實現實時處理。
本文實驗開展在實際工業項目上,實驗數據在實際的工作場景中采集得到,采集工作分別在正常光、強光和暗光3種光照條件下進行,并輔以動態采集,從動態視頻中抽取單幀圖像,獲取較大姿態的目標。數據分布如表1所示,共計11 157幅圖像,原始圖像分辨率為640*480,按照4∶1的比例劃分出訓練集和測試集。

Table 1 Data distribution表1 實驗數據分布
使用標注軟件LabelImg對采集的圖像進行矩形框區域標注,該軟件記錄矩形框的左上角坐標和寬高信息,并將標注信息保存為xml文件。標注框范圍要緊貼文本區域,范圍不能過大,以防留有過多的背景信息,更不能過小,以避免損失文本信息。圖8是實驗數據集的樣本示例,其中圖8a~圖8c分別對應正常光、強光和暗光3種光照條件下的圖像,圖8d為標注示例。

Figure 8 Images under different lighting conditions and marked sample圖8 不同光照條件下的圖像和標注樣本
本文研究面向實際應用,除了采用目前廣泛使用的目標檢測性能評估指標平均預測率AP(Average Precision)[31]和每秒處理幀數FPS(Frames Per Second)外,還增加了2個衡量算法輕量化性能的指標:參數量和浮點運算次數FLOPs。
AP表示預測率p(precision)和召回率r(recall)曲線與橫坐標軸圍成的曲線面積,其計算如式(2)所示:

(2)
其中,預測率和召回率的定義分別如式(3)和式(4)所示:
(3)
(4)
其中,TP為真正例,FP為假正例,FN為假反例。
FPS表示每秒檢測的圖像數量,反映了算法的檢測速度;參數量表示算法含有的參數數量,反映了算法的空間復雜度,FLOPs為浮點運算量。
本文實驗的硬件環境為Intel(R)Xeon(R)CPU E5-2640 v4@ 2.40 GHz,GPU為一塊顯存為11 GB的NVIDIA GTX 1080Ti。軟件環境為Ubuntu16.04,PyTorch1.5.1,OpenCV4.3.0,CUDA10.2,CUDnn7.6.5。使用隨機梯度下降(minibatch-SGD)對網絡進行訓練,迭代的批次大小為120,初始學習率為7.5e-2,動量因子為0.9,權重衰減系數為5e-4。共訓練100個輪次,分別在第50,70和90個輪次衰減0.1倍。
錨框分布除了錨框尺度外,還與映射在哪一層的特征圖有關,因為特征圖的下采樣倍數決定了錨框排列的密度,并且特征圖需要為錨框提供豐富的有效感受野[32]。將3.1節中確定的錨框方案(大小:45,75,105;長寬比比例:1.0,2.0,3.0)分別映射到不同的特征圖上,計算不同方案下的匹配率,確定最適合的錨框分布;為了比較不同的特征提取網絡對檢測算法性能的影響,將本文所提輕量化特征提取網絡與公開的網絡進行比較,驗證本文所提輕量化特征提取網絡的有效性。
表2中,Pi指將錨框映射在下采樣倍數為2i的特征圖上。錨框方案Ⅰ將最小尺寸的錨框映射在下采樣倍數為4的特征圖上,雖然有著較高的匹配程度,但是特征圖提供的感受野不足以支撐錨框尺度(P2層感受野為41,而錨框尺寸為45),大幅度損害了檢測性能。錨框方案Ⅱ將最小尺寸的錨框映射在下采樣倍數為8的特征圖上,獲得了最高的匹配率和檢測精度。相比方案Ⅰ,其錨框分布較為稀疏,卻能獲得相同的匹配率,減少內存消耗的同時加快了檢測速率。方案Ⅲ將最小尺寸的錨框映射在下采樣倍數為16的特征圖上,生成的錨框太過稀疏,不能覆蓋到所有的真實框,有10.6%的真實框不能匹配到高質量的錨框,進而損害了檢測性能。本文提出的匹配率只計算了被匹配的真實框所占的比例,沒有對與真實框匹配的錨框數量和質量做進一步探討。
為了更好地評估本文所設計特征提取網絡的性能,本文還訓練了多種經典網絡并與之對比,結果如表3所示。本文提出的檢測算法需要精確地定位到文本區域上,故將匹配閾值設為0.9。從檢測精度上看,基于本文設計網絡的檢測算法的檢測精度達到了90.2%,與基于VGG16[30]的檢測算法相比只落后0.3%,與基于MobileNet V2[27]的檢測算法相比提高了10.1%,與基于ShuffleNet V2[29]的檢測算法相比提高了2.3%;從檢測速度上看,本文所設計網絡受益于深度可分離卷積模塊和直通式設計,檢測速度在CPU平臺上FPS達到了27.8,是基于VGG16檢測算法的5倍,與基于MobileNetv2[27]和ShuffleNet V2[29]的檢測算法相比FPS分別提高了6.5和6.7;在輕量化上看,本文所設計的網絡參數量只有0.39×106,遠遠少于其他網絡的參數量。

Table 2 Comparison of experimental results under different anchor schemes表2 不同錨框方案下的實驗結果對比

Table 3 Comparison of experimental results under different backbones表3 不同特征提取網絡的實驗結果對比
從4.4節可知,本文所提算法對數字儀器表盤的檢測精度優于其他算法的,本節展示了不同特征提取網絡下SSD算法的檢測效果,檢測對比結果如圖9所示。從圖9中可見,基于VGG16[30]檢測算法的檢測框較為緊湊,第4幅圖像略微丟失了文本信息;基于MobileNetv2[27]的檢測算法對第3幅圖像存在檢測出多個重復框的現象,并且對第4幅圖像定位不夠精準,丟失了文本信息,而本文所提的算法沒有出現誤檢和丟失文本信息的情況;基于ShuffleNet V2[29]的檢測算法普遍存在預測框不精準,留有過多背景信息的現象;而本文所提算法能準確檢測文本區域,說明本文所提輕量化網絡在數字儀器表盤檢測任務上能收獲與深度網絡VGG16[30]相同的精度,同時優于其他對比輕量化網絡。

Figure 9 Comparison of detection results圖9 檢測結果對比
本文提出了一種輕量化的數字儀器表盤檢測算法。該算法設計了輕量化的特征提取網絡,與經典的網絡相比,在精度和輕量化性能上均有較大提升;提出了一種基于真實框分布構建錨框方案的流程,同時引入了可量化錨框方案好壞的指標——匹配率,以促進構建分布合理且錨框量更少的錨框方案。對比實驗分析結果表明:(1)基于真實框分布可快速擬建立錨框方案,隨后使用匹配率量化表達錨框分布與真實框分布的匹配程度,有助于選擇最合適的錨框方案;(2)本文所提輕量化網絡結構設計簡單,參數量少,前饋速度快,可在CPU環境下滿足實時檢測需求,且與經典網絡相比,有著更高的檢測精度和效率,當匹配閾值為0.9時,本文所提輕量化特征提取網絡收獲了與VGG16[30]相同的精度,速度卻提升了5倍,與MobileNetv2[27]和ShuffleNet V2[29]相比,檢測精度分別提高了10.1%和2.3%,速度FPS最高提升6.7;(3)從檢測效果上看,本文所提輕量化特征提取網絡相比其他網絡,對表盤中的文本區域檢測效果更好,沒有誤檢和損失文本信息的情況。