張建偉,周亞同,史寶軍,何 昊,王 文
(1.河北工業(yè)大學(xué)電子信息工程學(xué)院,天津 300401;2.河北工業(yè)大學(xué)機(jī)械工程學(xué)院,天津 300401)
目前,數(shù)字儀器表被廣泛地應(yīng)用在各行各業(yè)的測量系統(tǒng)中。但是,由于某些儀器表只是通過LED數(shù)碼管顯示數(shù)值,沒有提供數(shù)據(jù)傳輸接口,很難實(shí)現(xiàn)數(shù)據(jù)的自動(dòng)采集以及保證數(shù)據(jù)的實(shí)時(shí)性和準(zhǔn)確性。隨著科學(xué)技術(shù)的不斷進(jìn)步,測量系統(tǒng)的數(shù)據(jù)讀取由人工監(jiān)管方式逐漸向自動(dòng)管理方式轉(zhuǎn)變。
傳統(tǒng)的字符識別方法[1 - 3]一般首先采取圖像預(yù)處理技術(shù),如去噪、增強(qiáng)和矯正傾斜等,提升圖像質(zhì)量,減少噪聲對后續(xù)識別的影響;然后采用圖像分割技術(shù),如顏色聚類、二值化等,提取出目標(biāo)前景;再采用先驗(yàn)知識對字符進(jìn)行分割,如基于輪廓的分割方法[4]和基于細(xì)化的分割方法[5,6]等,將單個(gè)字符從采集圖像中分離出來,減少粘連性,便于后續(xù)識別;最后采用模式匹配[7]、支持向量機(jī)SVM(Support Vector Machine)[8]等分類方法對單個(gè)字符進(jìn)行識別。基于深度學(xué)習(xí)的字符識別方法首先利用目標(biāo)檢測技術(shù)提取出目標(biāo)前景,然后使用光學(xué)字符識別技術(shù)對文本區(qū)域進(jìn)行識別。相比于傳統(tǒng)方法,基于深度學(xué)習(xí)的方法處理流程簡單,檢測效率高,泛化性強(qiáng),更能滿足自動(dòng)化作業(yè)的需求。圖1是字符識別方法流程圖,其中,圖1a是傳統(tǒng)方法,圖1b是基于深度學(xué)習(xí)的方法。
近年來,隨著AlexNet[9]在2012年的Image- Net圖像分類比賽中的成功,深度學(xué)習(xí)技術(shù)便引發(fā)了廣泛關(guān)注,尤其是卷積神經(jīng)網(wǎng)絡(luò)CNN(Convolutional Neural Network)憑借其強(qiáng)大的非線性處理能力和共享參數(shù)的優(yōu)勢,在目標(biāo)檢測領(lǐng)域得到了廣泛的應(yīng)用。Girshick等人[10]率先將CNN用于目標(biāo)檢測,提出了R-CNN算法,提供了二階段檢測算法的示例,使用選擇性搜索SS(Selective Search)[11]算法生成稀疏的候選目標(biāo)區(qū)域,利用深度卷積網(wǎng)絡(luò)對其進(jìn)行特征提取,然后將特征送到SVM分類器中,完成候選區(qū)域中目標(biāo)的分類。He等人[12]在R-CNN算法基礎(chǔ)上提出了SPP-Net,使用空間金字塔池化層SPP(Spatial Pyramid Pooling)替代候選區(qū)域的裁剪和逐區(qū)域特征提取,提升了檢測效率。Fast R-CNN[13]將特征提取,候選區(qū)域回歸與分類放進(jìn)統(tǒng)一的卷積神經(jīng)網(wǎng)絡(luò)中,完成端到端的訓(xùn)練。Faster R-CNN[14]解決了SS算法生成候選區(qū)域耗時(shí)長的問題,使用區(qū)域提議網(wǎng)絡(luò)RPN(Region Proposal Network)回歸錨框(Anchor Box)生成候選區(qū)域,至此,二階段檢測算法步入全卷積網(wǎng)絡(luò)FCN(Fully Convolutional Network)[15]時(shí)代。萬吉林等人[16]使用Faster R-CNN算法成功檢測到變電站指針式儀表的表盤,為后續(xù)的讀數(shù)識別提供了目標(biāo)區(qū)域。
Howard等人[26]提出的輕量化網(wǎng)絡(luò)MobileNetv1使用深度可分離卷積(Depthwise Separable Convolution)代替標(biāo)準(zhǔn)卷積,大大提升了計(jì)算效率和輕量化性能。MobileNetv2[27]網(wǎng)絡(luò)提出線性瓶頸模塊(Linear Bottleneck Module)和倒殘差模塊(Inverted Residuals Module),在減少網(wǎng)絡(luò)運(yùn)算量的同時(shí)提升了特征表達(dá)能力。Zhang等人[28]提出了ShuffleNet網(wǎng)絡(luò),使用逐點(diǎn)分組卷積(Pointwise Group Convolution)降低逐點(diǎn)卷積(Pointwise Convolution)操作運(yùn)算量,隨后緊跟通道混洗(Channel Shuffle)操作加強(qiáng)組間信息交流。ShuffleNet V2[29]網(wǎng)絡(luò)使用分支并行操作替代分組卷積,進(jìn)一步提升了運(yùn)算效率。
本文工作主要包括以下2個(gè)方面:
(1)提出了一種基于真實(shí)框分布構(gòu)建錨框的流程,設(shè)計(jì)能量化表達(dá)錨框匹配程度的指標(biāo)——匹配率,促進(jìn)構(gòu)建更匹配且錨框數(shù)量更少的錨框方案,在減少內(nèi)存的同時(shí)提升了檢測精度。
(2)使用深度可分離卷積替代標(biāo)準(zhǔn)卷積重新構(gòu)建特征提取網(wǎng)絡(luò),大幅減少了網(wǎng)絡(luò)參數(shù)量,加快了檢測速度,并提高了檢測精度。
SSD算法是基于前饋卷積神經(jīng)網(wǎng)絡(luò)的檢測算法,其網(wǎng)絡(luò)結(jié)構(gòu)分為特征提取網(wǎng)絡(luò)和回歸與分類子網(wǎng)絡(luò)。SSD算法使用VGG16(Visual Geometry Group with 16 weight layers)[30]作為特征提取網(wǎng)絡(luò),在此基礎(chǔ)上添加額外的卷積層和池化層等結(jié)構(gòu),以獲得更富有語義信息的特征,然后回歸與分類子網(wǎng)絡(luò)利用提取的特征對錨框進(jìn)行回歸與分類。SSD算法框架如圖2所示。Conv4_3、Conv7、Conv8_2、Conv9_2、Conv10_2和Conv11_2作為用于預(yù)測的特征圖,它們具有不同的分辨率和感受野,其分辨率分別是38*38,19*19,10*10,5*5,3*3和1*1。其中,高分辨率的淺層特征保留了豐富的細(xì)節(jié)信息,主要用于檢測小目標(biāo),而低分辨率的深層特征具有語義性較強(qiáng)的抽象信息,主要用于檢測中等及大目標(biāo)。SSD算法生成一組特定數(shù)量的預(yù)測框和框中存在類別的得分,其數(shù)量與檢測類別數(shù)(Classes)相關(guān),然后進(jìn)行非極大值抑制NMS(Non-Maximum Suppression)操作,得到最終的檢測結(jié)果。
Figure 2 Framework of SSD 圖2 SSD算法框架圖
錨框是預(yù)先設(shè)定的一組多長寬比的邊界框,規(guī)則地排列在特征圖組的每一層上,小尺度錨框排列在淺層特征圖上,大尺度錨框排列在深層特征圖上。在每個(gè)特征點(diǎn)上,預(yù)測結(jié)果為相對于錨框的坐標(biāo)偏移量和類別得分。
圖3為錨框的匹配示例,其中圖3a為含有真實(shí)框的輸入圖像,圖3b~圖3d分別對應(yīng)Conv7層、Conv8_2層和Conv9_2層特征圖匹配示例。在進(jìn)行預(yù)測時(shí),特征圖上的每個(gè)點(diǎn)都需要產(chǎn)生k個(gè)不同長寬比的錨框,3*3的卷積核應(yīng)用在特征圖的每個(gè)點(diǎn)上,為每一個(gè)錨框生成坐標(biāo)偏移量和預(yù)測p個(gè)類別的得分,分別用loc(·)和conf(·)表示。
本研究以魯迅小說《離婚》的五個(gè)英譯本為研究素材。《離婚》是魯迅以現(xiàn)實(shí)生活為題材所寫的最后一篇小說。它運(yùn)用對話的形式展開故事情節(jié),介紹人物。這種文學(xué)創(chuàng)作形式在當(dāng)時(shí)的文壇是一種創(chuàng)新。也許正是因?yàn)槠洫?dú)特的創(chuàng)作手法吸引了譯者們對該小說翻譯的興趣。
Figure 3 Anchor box for matching of SSD圖3 SSD算法錨框匹配示例
SSD算法的損失函數(shù)是由定位損失和分類損失的加權(quán)和組成,具體計(jì)算如式(1)所示:
(1)
式中,Nm為與真實(shí)框匹配的錨框個(gè)數(shù),Lconf為分類損失函數(shù),Lloc為定位損失函數(shù),α為兩者的權(quán)重因子,x為輸入圖像,c為目標(biāo)類別,l為預(yù)測框,g為真實(shí)框。
SSD算法是基于錨框驅(qū)動(dòng)的檢測算法,通過設(shè)計(jì)合理的錨框分布以預(yù)測真實(shí)框。錨框設(shè)計(jì)具有開放性,需要針對不同的任務(wù)場景來制定。本文提出了一種錨框方案的設(shè)計(jì)流程,并提出能量化表達(dá)錨框匹配程度的指標(biāo)——匹配率,促進(jìn)構(gòu)建更匹配且錨框更少的錨框方案。雖然直接回歸與分類錨框的做法有著很高的檢測效率,但原始特征提取網(wǎng)絡(luò)VGG16前饋速度慢,參數(shù)量大。本文設(shè)計(jì)新穎的輕量化特征提取網(wǎng)絡(luò)替代VGG16,提升了特征表達(dá)能力,同時(shí)減少了時(shí)間消耗和參數(shù)量,能夠在CPU環(huán)境下滿足實(shí)時(shí)性需求。
本文提出一種根據(jù)真實(shí)框分布設(shè)計(jì)錨框的流程,首先需要分析特定任務(wù)場景下真實(shí)框的尺度分布,了解待檢測目標(biāo)的形狀和大小范圍;然后根據(jù)真實(shí)框分布擬設(shè)計(jì)錨框方案;最后使用匹配率量化檢驗(yàn)該錨框方案是否適合此項(xiàng)檢測任務(wù)。
圖4是真實(shí)框的尺度分布,其中圖4a和圖4b分別是真實(shí)框的長寬比和大小的分布統(tǒng)計(jì)。儀器表盤中的文本區(qū)域長寬比集中在1.0~3.0,大小集中在30~120像素,所以本文將錨框的長寬比設(shè)定為1.0,2.0和3.0共3種比例,大小設(shè)定為45,75和105共3種尺寸。
Figure 4 Ground truth box scale distribution(300*300)圖4 真實(shí)框尺度分布(圖像分辨率為300*300)
在錨框分配過程中,SSD算法計(jì)算真實(shí)框和每一個(gè)錨框的交并比IoU(Intersection over Union)。當(dāng)IoU大于某一閾值時(shí)(默認(rèn)是0.5),該錨框被視為正樣本,負(fù)責(zé)預(yù)測該真實(shí)框,參與到分類損失和定位損失的計(jì)算中。算法是通過正樣本來學(xué)習(xí)前景特征的,所以希望構(gòu)建合理的錨框分布以匹配每一個(gè)真實(shí)框。本文設(shè)計(jì)了一個(gè)能量化表達(dá)錨框匹配程度的指標(biāo)——匹配率,首先計(jì)算數(shù)據(jù)樣本中,真實(shí)框與每一個(gè)錨框的交并比,判斷該真實(shí)框能否匹配高質(zhì)量的錨框(IoU≥0.5),然后統(tǒng)計(jì)被匹配的真實(shí)框所占的比例。該指標(biāo)在一定程度上刻畫了錨框分布與真實(shí)框分布的相近程度,可量化表達(dá)錨框的匹配程度。圖5是匹配率計(jì)算示例,其中圖5a和圖5b分別表示真實(shí)框被匹配和未被匹配的示例。在圖5a中,真實(shí)框附近區(qū)域存在著與真實(shí)框尺度相近的錨框,這些錨框被視為正樣本,負(fù)責(zé)預(yù)測該真實(shí)框,并參與到分類損失和定位損失的計(jì)算中;而圖5b中真實(shí)框未能匹配高質(zhì)量的錨框,則會影響算法對前景特征的學(xué)習(xí),進(jìn)而降低了檢測性能。
Figure 5 Examples of matching rate calculation圖5 匹配率計(jì)算示例
Figure 6 Depth-wise conv module圖6 深度可分離卷積模塊
Figure 7 Lightweight feature extraction network圖7 輕量化特征提取網(wǎng)絡(luò)
深度可分離卷積有著不遜于普通卷積的特征提取能力,并且計(jì)算速度快,參數(shù)量少,目前被廣泛應(yīng)用在輕量化網(wǎng)絡(luò)中。圖6是深度可分離卷積的計(jì)算示意圖。深度可分離卷積首先將輸入特征圖按照通道數(shù)分為m片,對每一片單獨(dú)進(jìn)行卷積運(yùn)算,然后緊跟逐點(diǎn)卷積操作,加強(qiáng)通道間信息交流,其與普通卷積的計(jì)算量之比為1/n+1/d2,式中n是輸出特征圖通道數(shù),d是卷積核大小。本文以深度可分離卷積模塊為核心構(gòu)建了輕量化的特征提取網(wǎng)絡(luò),其結(jié)構(gòu)如圖7所示。該網(wǎng)絡(luò)采用類似VGG16的模塊化設(shè)計(jì),除第2個(gè)模塊使用4個(gè)深度可分離卷積外,其余模塊均使用3個(gè)深度可分離卷積。在每個(gè)模塊中,首先使用步幅為2(S2)的深度可分離卷積對特征圖進(jìn)行下采樣,同時(shí)將通道數(shù)加倍,學(xué)習(xí)更加抽象的語義表達(dá);然后堆疊多個(gè)步幅為1(S1)的深度可分離卷積,學(xué)習(xí)更多的非線性關(guān)系。該網(wǎng)絡(luò)與VGG16相比,結(jié)構(gòu)設(shè)計(jì)簡單,前饋速度快,且參數(shù)量遠(yuǎn)遠(yuǎn)小于后者,可輕松部署在CPU端實(shí)現(xiàn)實(shí)時(shí)處理。
本文實(shí)驗(yàn)開展在實(shí)際工業(yè)項(xiàng)目上,實(shí)驗(yàn)數(shù)據(jù)在實(shí)際的工作場景中采集得到,采集工作分別在正常光、強(qiáng)光和暗光3種光照條件下進(jìn)行,并輔以動(dòng)態(tài)采集,從動(dòng)態(tài)視頻中抽取單幀圖像,獲取較大姿態(tài)的目標(biāo)。數(shù)據(jù)分布如表1所示,共計(jì)11 157幅圖像,原始圖像分辨率為640*480,按照4∶1的比例劃分出訓(xùn)練集和測試集。
Table 1 Data distribution表1 實(shí)驗(yàn)數(shù)據(jù)分布
使用標(biāo)注軟件LabelImg對采集的圖像進(jìn)行矩形框區(qū)域標(biāo)注,該軟件記錄矩形框的左上角坐標(biāo)和寬高信息,并將標(biāo)注信息保存為xml文件。標(biāo)注框范圍要緊貼文本區(qū)域,范圍不能過大,以防留有過多的背景信息,更不能過小,以避免損失文本信息。圖8是實(shí)驗(yàn)數(shù)據(jù)集的樣本示例,其中圖8a~圖8c分別對應(yīng)正常光、強(qiáng)光和暗光3種光照條件下的圖像,圖8d為標(biāo)注示例。
Figure 8 Images under different lighting conditions and marked sample圖8 不同光照條件下的圖像和標(biāo)注樣本
本文研究面向?qū)嶋H應(yīng)用,除了采用目前廣泛使用的目標(biāo)檢測性能評估指標(biāo)平均預(yù)測率AP(Average Precision)[31]和每秒處理幀數(shù)FPS(Frames Per Second)外,還增加了2個(gè)衡量算法輕量化性能的指標(biāo):參數(shù)量和浮點(diǎn)運(yùn)算次數(shù)FLOPs。
AP表示預(yù)測率p(precision)和召回率r(recall)曲線與橫坐標(biāo)軸圍成的曲線面積,其計(jì)算如式(2)所示:
(2)
其中,預(yù)測率和召回率的定義分別如式(3)和式(4)所示:
(3)
(4)
其中,TP為真正例,F(xiàn)P為假正例,F(xiàn)N為假反例。
FPS表示每秒檢測的圖像數(shù)量,反映了算法的檢測速度;參數(shù)量表示算法含有的參數(shù)數(shù)量,反映了算法的空間復(fù)雜度,F(xiàn)LOPs為浮點(diǎn)運(yùn)算量。
本文實(shí)驗(yàn)的硬件環(huán)境為Intel(R)Xeon(R)CPU E5-2640 v4@ 2.40 GHz,GPU為一塊顯存為11 GB的NVIDIA GTX 1080Ti。軟件環(huán)境為Ubuntu16.04,PyTorch1.5.1,OpenCV4.3.0,CUDA10.2,CUDnn7.6.5。使用隨機(jī)梯度下降(minibatch-SGD)對網(wǎng)絡(luò)進(jìn)行訓(xùn)練,迭代的批次大小為120,初始學(xué)習(xí)率為7.5e-2,動(dòng)量因子為0.9,權(quán)重衰減系數(shù)為5e-4。共訓(xùn)練100個(gè)輪次,分別在第50,70和90個(gè)輪次衰減0.1倍。
錨框分布除了錨框尺度外,還與映射在哪一層的特征圖有關(guān),因?yàn)樘卣鲌D的下采樣倍數(shù)決定了錨框排列的密度,并且特征圖需要為錨框提供豐富的有效感受野[32]。將3.1節(jié)中確定的錨框方案(大小:45,75,105;長寬比比例:1.0,2.0,3.0)分別映射到不同的特征圖上,計(jì)算不同方案下的匹配率,確定最適合的錨框分布;為了比較不同的特征提取網(wǎng)絡(luò)對檢測算法性能的影響,將本文所提輕量化特征提取網(wǎng)絡(luò)與公開的網(wǎng)絡(luò)進(jìn)行比較,驗(yàn)證本文所提輕量化特征提取網(wǎng)絡(luò)的有效性。
表2中,Pi指將錨框映射在下采樣倍數(shù)為2i的特征圖上。錨框方案Ⅰ將最小尺寸的錨框映射在下采樣倍數(shù)為4的特征圖上,雖然有著較高的匹配程度,但是特征圖提供的感受野不足以支撐錨框尺度(P2層感受野為41,而錨框尺寸為45),大幅度損害了檢測性能。錨框方案Ⅱ?qū)⒆钚〕叽绲腻^框映射在下采樣倍數(shù)為8的特征圖上,獲得了最高的匹配率和檢測精度。相比方案Ⅰ,其錨框分布較為稀疏,卻能獲得相同的匹配率,減少內(nèi)存消耗的同時(shí)加快了檢測速率。方案Ⅲ將最小尺寸的錨框映射在下采樣倍數(shù)為16的特征圖上,生成的錨框太過稀疏,不能覆蓋到所有的真實(shí)框,有10.6%的真實(shí)框不能匹配到高質(zhì)量的錨框,進(jìn)而損害了檢測性能。本文提出的匹配率只計(jì)算了被匹配的真實(shí)框所占的比例,沒有對與真實(shí)框匹配的錨框數(shù)量和質(zhì)量做進(jìn)一步探討。
為了更好地評估本文所設(shè)計(jì)特征提取網(wǎng)絡(luò)的性能,本文還訓(xùn)練了多種經(jīng)典網(wǎng)絡(luò)并與之對比,結(jié)果如表3所示。本文提出的檢測算法需要精確地定位到文本區(qū)域上,故將匹配閾值設(shè)為0.9。從檢測精度上看,基于本文設(shè)計(jì)網(wǎng)絡(luò)的檢測算法的檢測精度達(dá)到了90.2%,與基于VGG16[30]的檢測算法相比只落后0.3%,與基于MobileNet V2[27]的檢測算法相比提高了10.1%,與基于ShuffleNet V2[29]的檢測算法相比提高了2.3%;從檢測速度上看,本文所設(shè)計(jì)網(wǎng)絡(luò)受益于深度可分離卷積模塊和直通式設(shè)計(jì),檢測速度在CPU平臺上FPS達(dá)到了27.8,是基于VGG16檢測算法的5倍,與基于MobileNetv2[27]和ShuffleNet V2[29]的檢測算法相比FPS分別提高了6.5和6.7;在輕量化上看,本文所設(shè)計(jì)的網(wǎng)絡(luò)參數(shù)量只有0.39×106,遠(yuǎn)遠(yuǎn)少于其他網(wǎng)絡(luò)的參數(shù)量。
Table 2 Comparison of experimental results under different anchor schemes表2 不同錨框方案下的實(shí)驗(yàn)結(jié)果對比
Table 3 Comparison of experimental results under different backbones表3 不同特征提取網(wǎng)絡(luò)的實(shí)驗(yàn)結(jié)果對比
從4.4節(jié)可知,本文所提算法對數(shù)字儀器表盤的檢測精度優(yōu)于其他算法的,本節(jié)展示了不同特征提取網(wǎng)絡(luò)下SSD算法的檢測效果,檢測對比結(jié)果如圖9所示。從圖9中可見,基于VGG16[30]檢測算法的檢測框較為緊湊,第4幅圖像略微丟失了文本信息;基于MobileNetv2[27]的檢測算法對第3幅圖像存在檢測出多個(gè)重復(fù)框的現(xiàn)象,并且對第4幅圖像定位不夠精準(zhǔn),丟失了文本信息,而本文所提的算法沒有出現(xiàn)誤檢和丟失文本信息的情況;基于ShuffleNet V2[29]的檢測算法普遍存在預(yù)測框不精準(zhǔn),留有過多背景信息的現(xiàn)象;而本文所提算法能準(zhǔn)確檢測文本區(qū)域,說明本文所提輕量化網(wǎng)絡(luò)在數(shù)字儀器表盤檢測任務(wù)上能收獲與深度網(wǎng)絡(luò)VGG16[30]相同的精度,同時(shí)優(yōu)于其他對比輕量化網(wǎng)絡(luò)。
Figure 9 Comparison of detection results圖9 檢測結(jié)果對比
本文提出了一種輕量化的數(shù)字儀器表盤檢測算法。該算法設(shè)計(jì)了輕量化的特征提取網(wǎng)絡(luò),與經(jīng)典的網(wǎng)絡(luò)相比,在精度和輕量化性能上均有較大提升;提出了一種基于真實(shí)框分布構(gòu)建錨框方案的流程,同時(shí)引入了可量化錨框方案好壞的指標(biāo)——匹配率,以促進(jìn)構(gòu)建分布合理且錨框量更少的錨框方案。對比實(shí)驗(yàn)分析結(jié)果表明:(1)基于真實(shí)框分布可快速擬建立錨框方案,隨后使用匹配率量化表達(dá)錨框分布與真實(shí)框分布的匹配程度,有助于選擇最合適的錨框方案;(2)本文所提輕量化網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì)簡單,參數(shù)量少,前饋速度快,可在CPU環(huán)境下滿足實(shí)時(shí)檢測需求,且與經(jīng)典網(wǎng)絡(luò)相比,有著更高的檢測精度和效率,當(dāng)匹配閾值為0.9時(shí),本文所提輕量化特征提取網(wǎng)絡(luò)收獲了與VGG16[30]相同的精度,速度卻提升了5倍,與MobileNetv2[27]和ShuffleNet V2[29]相比,檢測精度分別提高了10.1%和2.3%,速度FPS最高提升6.7;(3)從檢測效果上看,本文所提輕量化特征提取網(wǎng)絡(luò)相比其他網(wǎng)絡(luò),對表盤中的文本區(qū)域檢測效果更好,沒有誤檢和損失文本信息的情況。