国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

實時車牌識別邊緣系統(tǒng)設(shè)計及FPGA實現(xiàn)

2023-05-31 03:23湯諾輝林志堅陳平平郭里婷
關(guān)鍵詞:車牌卷積神經(jīng)網(wǎng)絡(luò)

湯諾輝,林志堅,陳平平,郭里婷

(福州大學(xué)物理與信息工程學(xué)院,福建 福州 350108)

0 引言

隨著國民汽車普及率升高,城市交通與汽車管理問題日益突出,智能交通應(yīng)運而生.其中,車牌識別是智能交通的重要一環(huán).近年來,研究者一直致力于提升車牌識別精度、速率及場景適應(yīng)性,一方面通過卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練的車牌識別模型提取出更深層次的特征[1],有效解決車牌識別的精度問題.另一方面,研究者認為將檢測和識別功能相結(jié)合有利于整個識別過程的效率和準確度,文獻[2]提出的端到端神經(jīng)網(wǎng)絡(luò)和文獻[3]提出的路邊停車網(wǎng)絡(luò)可在單一網(wǎng)絡(luò)中同時實現(xiàn)檢測和識別功能.為了進一步提高精度和場景適應(yīng)性,文獻[4]在卷積神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)上添加空間轉(zhuǎn)換網(wǎng)絡(luò)模塊應(yīng)對輸入圖像形變;文獻[5-6]用數(shù)據(jù)增強獲取更加豐富的訓(xùn)練集以提升神經(jīng)網(wǎng)絡(luò)識別精度;上述采用功能模塊和數(shù)據(jù)增強的方法為本研究優(yōu)化神經(jīng)網(wǎng)絡(luò)提供了新思路.

受網(wǎng)絡(luò)傳輸影響,遠端服務(wù)器端的車牌識別方案在時延方面難以滿足實時性要求,在考慮成本和便捷性方面服務(wù)器并不適合部署于邊緣側(cè).為解決時延問題,現(xiàn)場可編程邏輯門陣列(field programmable gate array,FPGA)憑借其擁有低功耗、強可靠性、小體積和適合高并行度計算等優(yōu)勢,在邊緣設(shè)備實現(xiàn)卷積神經(jīng)網(wǎng)絡(luò)中備受關(guān)注.隨著FPGA搭載神經(jīng)網(wǎng)絡(luò)的需求不斷擴大,為加速神經(jīng)網(wǎng)絡(luò)的快速部署,賽靈思公司于2019年推出深度學(xué)習處理單元(deep-learning process unit,DPU)軟核,此舉可縮短用戶搭建硬件邏輯的開發(fā)周期,加速深度學(xué)習推理算法方案部署,從而促進深度學(xué)習網(wǎng)絡(luò)在FPGA端快速實現(xiàn)和應(yīng)用.目前,研究者僅利用DPU進行網(wǎng)絡(luò)加速[7],或?qū)①愳`思公司發(fā)布部署于DPU的神經(jīng)網(wǎng)絡(luò)進行功能實現(xiàn)[8],而賽靈思公司推出的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)過于復(fù)雜冗余,推理速度慢,不能發(fā)揮DPU在車牌識別方面的優(yōu)勢.

為此,本研究采用輕量級車牌識別神經(jīng)網(wǎng)絡(luò)(license plate recognition network,LPRNet),并根據(jù)DPU的要求對LPRNet進行重新設(shè)計并優(yōu)化成SE-LPRNet神經(jīng)網(wǎng)絡(luò),首次將LPRNet神經(jīng)網(wǎng)絡(luò)通過DPU部署于FPGA器件,設(shè)計出邊緣設(shè)備FPGA端車牌識別系統(tǒng).

1 車牌識別系統(tǒng)設(shè)計方案

1.1 車牌識別系統(tǒng)架構(gòu)

車牌識別系統(tǒng)硬件架構(gòu)包括視頻傳輸和神經(jīng)網(wǎng)絡(luò)兩個部分.視頻傳輸實現(xiàn)視頻采集、視頻預(yù)處理(車牌檢測、圖像裁剪)、視頻輸出功能;神經(jīng)網(wǎng)絡(luò)實現(xiàn)車牌識別功能.通過自定義插件,實現(xiàn)視頻傳輸與神經(jīng)網(wǎng)絡(luò)信息交互.

整個車牌識別系統(tǒng)工作流程為: 1) 利用硬件板上的高清多媒體接口實現(xiàn)視頻的輸入,從輸入源捕捉視頻幀緩存,在可編程邏輯側(cè)使用視頻接收軟核完成對視頻流的提取.2)利用視頻處理軟核與中央處理單元協(xié)同合作對視頻進行灰度化和濾波等圖像處理,實現(xiàn)可裁剪矩形車牌輪廓的功能;再對裁剪后的車牌進行色彩空間轉(zhuǎn)換、視頻格式轉(zhuǎn)換和分辨率的縮放等預(yù)處理;最后將視頻寫入內(nèi)存.3) DPU讀取內(nèi)存中預(yù)處理后的輸入視頻,創(chuàng)建識別任務(wù),利用部署在DPU的神經(jīng)網(wǎng)絡(luò)模型對視頻幀數(shù)據(jù)進行識別.將感興趣區(qū)坐標、識別信息輸出至內(nèi)存中.4)自定義插件通過幀緩存讀取軟核和讀取內(nèi)存中的視頻幀數(shù)據(jù),獲取感興趣區(qū)坐標和識別結(jié)果.基于感興趣區(qū)域和識別結(jié)果,繪制車牌定位框并打印結(jié)果.5)通過視頻發(fā)送軟核輸出視頻幀緩存,在顯示器上顯示識別后的視頻.

1.2 車牌識別算法選取

目前,車牌檢測主流算法性能已滿足應(yīng)用至城市交通的需求,如Faster-RCNN和YOLO算法在車牌檢測中可達到93.56%和97.8%的平均準確率[9].車牌識別算法因天氣、角度等多種原因無法達到應(yīng)用至實際場所的效果,故本研究重心在于識別網(wǎng)絡(luò)上.經(jīng)過比較,選取車牌識別算法,如表1所示.Resnet101模型在圖像識別模型中識別率最佳,但是模型推理過程的計算量相較于SqueezeNet、LPRnet沒有優(yōu)勢,而SqueezeNet模型雖計算量較小,但是模型識別率并不出眾;基于Pytorch框架的LPRNet模型體積只有1.7 MB,計算量也適中,搭載于FPGA的推理速度較快,并且識別率也并不遜色于目前較為主流的ResNet、AlexNet等機器學(xué)習圖像識別模型.因此,選擇由英特爾推出的輕量級神經(jīng)網(wǎng)絡(luò)LPRNet算法作為運行于DPU的神經(jīng)網(wǎng)絡(luò)模型進行車牌識別.而經(jīng)優(yōu)化后SE-LPRNet模型參數(shù)也僅僅只有3.6 MB,計算量遠小于目前大部分主流的模型,運行在FPGA上的推理速度仍然可以滿足現(xiàn)實需求,識別率卻大幅提高.

表1 機器學(xué)習分類算法模型體積對比

隨著國內(nèi)對新能源汽車的重視,具有8位數(shù)車牌號的新能源汽車的數(shù)量急劇上升,為滿足實際需要,車牌識別算法需要同時具備識別兩種車牌號的功能.而大部分的車牌識別僅限于對7位數(shù)車牌進行識別,且都采用7位字符分割思想.因此,其所采用的損失函數(shù)并不適合8位數(shù)字符車牌識別.基于此考慮,本研究選取聯(lián)結(jié)主義時間分類損失函數(shù)(connectionist temporal classification loss,CTC LOSS)和貪婪算法以滿足可同時識別兩種類型的車牌的需求[15].CTC LOSS主要是解決神經(jīng)網(wǎng)絡(luò)標簽和輸出不對齊的問題,其優(yōu)點是不用強制對齊標簽且標簽可變長,僅需輸入序列和監(jiān)督標簽序列即可進行訓(xùn)練,其應(yīng)用場景還適用于文字識別、驗證碼識別、手寫數(shù)字識別、語音識別等領(lǐng)域.

CTC LOSS函數(shù)需要對模型可識別的所有字符進行計算,現(xiàn)定義含空白符號的字符集合L′,即

L′=L∪{blank}

(1)

式中:L為神經(jīng)網(wǎng)絡(luò)需要進行識別的字符集合.經(jīng)過B變換,將加入空白符長度為T的字符集合L′經(jīng)過B變換得到原始L,即

B:L′T→L≤T

(2)

顯然對于L的最大長度,有|L|≤T.

通過下式計算輸出的條件概率,

(3)

其中:π∈B-1(l)表示經(jīng)過B變換結(jié)果為l的路徑π.條件概率的范圍在0到1之間,越接近1代表準確率越高.

與大多數(shù)監(jiān)督學(xué)習相同,CTC 使用最大似然標準進行訓(xùn)練,故CTC損失函數(shù)表達式可歸納為

CTC(x)=-ln(p(l|x))

(4)

本研究設(shè)置神經(jīng)網(wǎng)絡(luò)輸出矩陣為(18,69),矩陣每行69位數(shù)值對應(yīng)著68個包含省份字母數(shù)字和空白字符的置信度,從中選取置信度最高的字符,選取出18位字符,通過貪婪算法將空白符和重復(fù)字符舍去,最終即可得到識別結(jié)果.

1.3 車牌識別算法優(yōu)化

相較于傳統(tǒng)硬件邏輯設(shè)計思路,部署DPU運行神經(jīng)網(wǎng)絡(luò)具有易修改,易移植和搭建效率高等優(yōu)點,然而,目前DPU僅支持卷積和池化等基本操作,不支持乘除運算和全連接層,且對卷積核和池化參數(shù)大小有限制.因此,需要將現(xiàn)有神經(jīng)網(wǎng)絡(luò)部署于FPGA進行浮點數(shù)的定點量化和結(jié)構(gòu)裁剪以適配DPU特性,但與此同時會帶來識別精度的損失.

為兼顧識別精度和實時性,本研究將壓縮與激勵(squeeze and excitation,SE)模塊[16]加入LPRNet神經(jīng)網(wǎng)絡(luò)中,提出改進型SE-LPRNet網(wǎng)絡(luò)模型.SE模塊分為壓縮和激勵兩個操作,通過學(xué)習通道間的依賴性,在通道方向增加注意力機制.該模塊通過壓縮全局空間信息提取全局上下文信息.為了得到通道間的依賴信息進行激勵操作,而激勵操作需要滿足兩個條件: 1) 靈活提取通道間的非線性信息;2) 學(xué)習非互斥關(guān)系.為此,激勵操作選用具有門控機制的sigmoid函數(shù)得到權(quán)重.為了降低模型的復(fù)雜程度并增加泛化能力,在激勵操作中增加2個全連接層.第1個全連接層起到降維作用,降維系數(shù)為1個超參數(shù),可用于控制中間層個數(shù),保持網(wǎng)絡(luò)精確度和復(fù)雜度之間的平衡;第2個全連接層用于恢復(fù)原來維度.最后SE模塊將權(quán)重乘上原始特征得到不同激活值達到提升有用特征和抑制無用特征的效果.

在適配DPU方面,DPU不支持SE模塊中的全連接層,利用內(nèi)核為1×1的卷積層替換全連接層以達到同樣效果.SE模塊有多種集成策略,文獻[16]將最初設(shè)計的集成策略作為SE標準策略,后根據(jù)SE模塊在神經(jīng)網(wǎng)絡(luò)中的位置特征,共提出如圖1所示的4種集成設(shè)計方案.由于DPU會將SE模塊中的求和操作移入到中央處理單元上運行,只能在神經(jīng)網(wǎng)絡(luò)末端插入,即只能選擇SE標準策略和SE后置策略,根據(jù)其性能比較得出SE標準策略可更大程度提高神經(jīng)網(wǎng)絡(luò)性能.故本研究采用SE標準策略的集成方式插入到神經(jīng)網(wǎng)絡(luò)中,將LPRNet模塊與SE模塊集成在一塊.

基于DPU的支持特性,對LPRNet進行優(yōu)化改進.LPRNet主要由卷積層、失活層,以及包含上下采樣的基礎(chǔ)模塊構(gòu)成.一方面,針對識別算法中卷積核、池化參數(shù)過大問題,對神經(jīng)網(wǎng)絡(luò)卷積核進行重新計算,舍去失活層,通過對數(shù)據(jù)集及訓(xùn)練方式的改善替代失活層的作用,防止神經(jīng)網(wǎng)絡(luò)過擬合現(xiàn)象.對于DPU不支持的除操作和平均操作,則移出DPU,在DPU輸出參數(shù)進入中央處理單元處理后,利用中央處理單元進行除操作和平均處理,得到與未優(yōu)化的LPRNet性能相近且適配于DPU的LPRNet神經(jīng)網(wǎng)絡(luò).另一方面,在上述改進的基礎(chǔ)上,將SE模塊以SE標準策略方式嵌入神經(jīng)網(wǎng)絡(luò)中提升神經(jīng)網(wǎng)絡(luò)識別性能,提出如圖2所示改進型SE-LPRNet神經(jīng)網(wǎng)絡(luò)模型.

圖1 SE模塊集成設(shè)計Fig.1 SE module integration design

圖2 LPRNet與SE-LPRNet網(wǎng)絡(luò)結(jié)構(gòu)對比圖Fig.2 Comparison of LPRNet and SE-LPRNet network structures

2 實驗驗證與結(jié)果分析

2.1 數(shù)據(jù)集來源

模型訓(xùn)練集和測試集均采用中科大團隊建立的中國城市停車場數(shù)據(jù)集(Chinese city parking dataset,CCPD)中的基礎(chǔ)集[3],這是一個用于車牌識別的大型國內(nèi)停車場車牌數(shù)據(jù)集.按大約1∶1比例劃分訓(xùn)練集和測試集,再對圖像中的車牌位置進行裁剪處理,所得輸入圖像均為94 px × 24 px.其中訓(xùn)練集有105 769張,包含新能源車牌5 769張;測試集有105 002張,包含新能源車牌5 006張.

2.2 網(wǎng)絡(luò)訓(xùn)練

采用賽靈思Zynq UltraScale+ MPSoC ZCU106開發(fā)板作為實驗平臺.利用Vivado搭建視頻傳輸模塊,Petalinux搭建Linux環(huán)境,采用軟硬協(xié)同的方式部署DPU,Vitis編寫應(yīng)用程序,以Pytorch框架訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型,優(yōu)化器選擇RMSprop,權(quán)重衰減為2×10-5,動量為0.9,批量大小設(shè)置為64.總訓(xùn)練步長為2.0萬次,設(shè)置0~5 000次初始學(xué)習率為1×10-3,之后,學(xué)習率在5 000~10 000次調(diào)整為1×10-4,在10 000~15 000次調(diào)整為1×10-5,在15 000~20 000次調(diào)整為1×10-6,達到2.0萬次后終止訓(xùn)練.

2.3 實驗流程

本實驗所搭建的車牌識別系統(tǒng)包含邏輯電路、軟件平臺、神經(jīng)網(wǎng)絡(luò)和應(yīng)用程序4個部分.邏輯電路部分負責搭建系統(tǒng)的硬件邏輯,主要用于部署視頻接收發(fā)送軟核和視頻處理軟核,實現(xiàn)視頻傳輸和圖像處理的功能,并將DPU部署到可編程邏輯側(cè),為運行神經(jīng)網(wǎng)絡(luò)做好硬件基礎(chǔ).軟件部分設(shè)置Linux為操作系統(tǒng),為運行應(yīng)用程序提供環(huán)境.神經(jīng)網(wǎng)絡(luò)負責車牌識別功能的實現(xiàn).應(yīng)用程序負責進行軟硬件交互,控制車牌視頻或圖像輸入DPU,處理識別結(jié)果并進行輸出.

實驗步驟如圖3所示,分為4步: 1) 通過Vivado軟件搭建系統(tǒng)硬件邏輯,設(shè)計視頻圖像傳輸?shù)挠布娐?生成包含硬件描述信息的XSA文件;2) 使用Petalinux開發(fā)套件搭建Linux操作系統(tǒng),根據(jù)XSA文件導(dǎo)入硬件信息,配置設(shè)備樹等,編譯成系統(tǒng)的啟動文件、鏡像文件和根目錄;3) 采用Pytorch框架對模型進行訓(xùn)練,利用Vitis-AI開發(fā)工具包對神經(jīng)網(wǎng)絡(luò)模型進行量化和編譯,得到量化后的神經(jīng)網(wǎng)絡(luò)模型;4) 利用Vitis開發(fā)環(huán)境創(chuàng)建平臺工程,導(dǎo)入應(yīng)用程序所需要的依賴庫、支持庫、DPU驅(qū)動及配置信息,將DPU作為加速器插入到硬件平臺中,利用V++進行編譯生成配置文件,編寫應(yīng)用程序和自定義插件,通過G++進行交叉編譯,最后按照對應(yīng)分區(qū)將編譯后的文件存入SD卡中.

圖3 實驗步驟Fig.3 Experimental steps

2.4 實驗結(jié)果分析

為了能更準確地對比各模型之間性能的差異,選取同樣采用CCPD測試數(shù)據(jù)集且目前主流的車牌識別系統(tǒng)進行對比,其中YOLO9000和Faster-RCNN都加入整體卷積網(wǎng)絡(luò)(holistic convolutional neural network,HC),構(gòu)成完整的車牌識別系統(tǒng).而TE2E和RPnet本身即為端對端的車牌識別系統(tǒng),一同測試LPRNet神經(jīng)網(wǎng)絡(luò)與所提的SE-LPRNet神經(jīng)網(wǎng)絡(luò).測試集分為綜合測試集和在雨、雪、霧等天氣下獲取的車牌圖像測試集,識別效果如圖4所示,其中還包括了新能源車牌的測試效果.

圖4 車牌識別效果圖Fig.4 Renderings of license plate recognition

選用識別速率v和平均正確率(average precision,AP)為主要衡量指標.識別速率v代表每秒傳輸?shù)漠嬅鏀?shù),即畫面刷新率,用于衡量識別流暢度和效率,AP綜合了查準率和查全率,其計算式為

(5)

其中:NTP為檢測到車牌并完全識別正確的車牌個數(shù);NFN為未被檢測到的車牌個數(shù);NFP為車牌檢測位置錯誤或識別錯誤的車牌個數(shù).車牌中所有字符都被正確識別時,系統(tǒng)才可判為真正例.

所有模型采用相同衡量指標進行測試,結(jié)果如表2所示.

表2 CCPD測試集車牌識別模型性能對比

實驗結(jié)果表明:

1) 在綜合測試集中,SE-LPRNet模型在精度上比YOLO9000+HC和Faster-RCNN+HC模型高0.4%和1.3%,也比未改進的LPRNet算法高出2.5%.

2) 在識別速率上,SE-LPRNet可以達到236 Fs-1.雖然在識別精度上比TE2E和RPnet模型分別低了0.3%和1.4%,但是速率上相較于上述二者有大幅度的提升,分別高出233和175 Fs-1,更加符合邊緣設(shè)備端對車牌識別算法的時延性能要求.

3) 在天氣測試集中,SE-LPRNet模型在識別精度上明顯高于其他模型.說明在不同天氣下,SE-LPRNet算法泛化能力更強,可以更好地勝任現(xiàn)實情況的車牌識別.

4) 為了適配DPU,將LPRNet的模型結(jié)構(gòu)進行裁剪,簡化神經(jīng)網(wǎng)絡(luò)架構(gòu).雖提高86 Fs-1,但識別率也降低3.1%和5.8%.本研究優(yōu)化后得到的SE-LPRNet彌補了適配性問題造成的精度損失,而236 Fs-1的識別速率也可以滿足現(xiàn)實需求.

5) SE-LPRNet算法在測試集中還加入新能源車牌,相較于其他算法,SE-LPRNet不僅在普通車牌上表現(xiàn)優(yōu)異,同時還能在識別新能源車牌上表現(xiàn)出同樣優(yōu)秀的性能,這是目前其他算法還未能做到的.

綜合比較可得,SE-LPRNet車牌識別算法在真實情況下表現(xiàn)出較為優(yōu)越的性能.

表3 不同方法對LPRNet模型效果影響

采用不同方法對模型性能的影響至關(guān)重要.本研究通過添加SE模塊和對訓(xùn)練數(shù)據(jù)集進行數(shù)據(jù)增強,提高LPRNet的識別性能,結(jié)果如表3所示.實驗結(jié)果表明: 1) 不同的SE模塊集成策略對本算法具有不同影響.采用后置SE策略的模型識別精度降低3.3%,而采用SE標準策略模型精度提升1.4%,證明SE標準策略可幫助模型提取更多有效特征、抑制無效特征,加強了模型的魯棒性,有效提高LPRNet的性能.2) 通過添加旋轉(zhuǎn)、高斯白噪聲、動作模糊、圖像裁剪等數(shù)據(jù)增強方式讓訓(xùn)練集更加貼近真實情況,模型識別精度提高0.8%.證明可通過數(shù)據(jù)增強使模型泛化能力得到提高.3) 同時采用SE標準策略和數(shù)據(jù)增強時,模型可獲得最高的識別精度(94.1%).

3 結(jié)語

針對邊緣設(shè)備端難以嵌入車牌識別神經(jīng)網(wǎng)絡(luò)模型的問題,基于DPU設(shè)計出一種車牌識別系統(tǒng).在網(wǎng)絡(luò)結(jié)構(gòu)上,一方面對車牌識別神經(jīng)網(wǎng)絡(luò)進行適配性改造,使其可運行于DPU架構(gòu);另一方面,通過SE模塊嵌入神經(jīng)網(wǎng)絡(luò)模型中彌補了為適配DPU而進行修改池化層類型、舍去失活層等操作造成精度損失.將LPRNet搭載于DPU,并將SE模塊與LPRNet進行結(jié)合以提高識別精度.實驗結(jié)果表明,在賽靈思的ZCU106開發(fā)板上,本研究邊緣設(shè)備端的車牌識別系統(tǒng)和目前已有的車牌識別算法相比在速率上具有較優(yōu)性能,在擁有新能源車牌識別功能的情況下,識別率不遜色于其他算法,更加符合實際需求.

猜你喜歡
車牌卷積神經(jīng)網(wǎng)絡(luò)
基于3D-Winograd的快速卷積算法設(shè)計及FPGA實現(xiàn)
神經(jīng)網(wǎng)絡(luò)抑制無線通信干擾探究
數(shù)字圖像處理技術(shù)在車牌識別系統(tǒng)中的應(yīng)用
從濾波器理解卷積
基于傅里葉域卷積表示的目標跟蹤算法
第一張車牌
基于MATLAB 的車牌識別系統(tǒng)研究
基于神經(jīng)網(wǎng)絡(luò)的拉矯機控制模型建立
復(fù)數(shù)神經(jīng)網(wǎng)絡(luò)在基于WiFi的室內(nèi)LBS應(yīng)用
基于支持向量機回歸和RBF神經(jīng)網(wǎng)絡(luò)的PID整定