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

?

基于FPGA動(dòng)態(tài)重構(gòu)的快速車牌識(shí)別系統(tǒng)*

2019-12-24 09:21:34張旭欣
傳感器與微系統(tǒng) 2019年12期
關(guān)鍵詞:車牌字符預(yù)處理

訾 晶, 張旭欣, 金 婕

(上海工程技術(shù)大學(xué) 電子電氣工程學(xué)院,上海 201600)

0 引 言

在卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)出現(xiàn)之前,視頻圖像處理任務(wù)效果都不盡如人意,很難實(shí)現(xiàn)大規(guī)模的商業(yè)應(yīng)用,直到2012年,Krizhevsky A等人提出了一種新的深度神經(jīng)網(wǎng)絡(luò)模型AlexNet CNN[1],此后,更大更深的CNN模型被陸續(xù)提出,如GoogLeNet[2]。

CNN在計(jì)算機(jī)視覺領(lǐng)域的應(yīng)用大都是在軟件平臺(tái)實(shí)現(xiàn)的,隨著硬件設(shè)備的更新迭代,計(jì)算能力的提升,使得在硬件平臺(tái)開發(fā)CNN成為了可能,尤其是現(xiàn)場(chǎng)可編程門陣列(field programmable gate array,FPGA)的快速發(fā)展[3]。

硬件加速網(wǎng)絡(luò)的設(shè)計(jì)側(cè)重于網(wǎng)絡(luò)并行化的實(shí)現(xiàn),快速算法的應(yīng)用等方面,但針對(duì)FPGA自身重構(gòu)特性的研究較少。Kaestner F等人的研究[4]充分展現(xiàn)了FPGA部分重構(gòu)的優(yōu)勢(shì),利用有限的硬件資源,通過部分重構(gòu)實(shí)現(xiàn)卷積,采用軟硬件結(jié)合的實(shí)現(xiàn)形式,有效提高神經(jīng)網(wǎng)絡(luò)執(zhí)行速度。

本文將采用FPGA動(dòng)態(tài)部分重構(gòu)技術(shù)和高層次綜合工具,完成快速車牌識(shí)別的系統(tǒng)設(shè)計(jì)。設(shè)計(jì)CNN模型,利用Caffe深度學(xué)習(xí)框架訓(xùn)練相關(guān)數(shù)據(jù)[5];按照動(dòng)態(tài)部分重構(gòu)(dynamic partial reconfiguration,DPR)實(shí)現(xiàn)流程[6],生成完整及部分比特流,完成CNN的兩種軟硬件方案設(shè)計(jì);基于PYNQ-Z1開發(fā)板,完成車牌識(shí)別系統(tǒng)設(shè)計(jì)。

1 卷積神經(jīng)網(wǎng)絡(luò)

針對(duì)車牌字符的特點(diǎn),設(shè)計(jì)CNN模型。該網(wǎng)絡(luò)包含卷積層,修正線性單元(rectified linear unit,ReLU),最大池化層以及全連接層。結(jié)構(gòu)信息如表1所示。

表1 CNN結(jié)構(gòu)信息

卷積后加ReLU作為激活函數(shù),一方面減少反向傳播(back propagation,BP)求誤差梯度的計(jì)算量,另一方面稀疏網(wǎng)絡(luò),減少參數(shù)的相互依賴性,緩解過擬合;此外,最大池化層,壓縮了卷積后的特征面,提取主要特征,進(jìn)一步簡(jiǎn)化網(wǎng)絡(luò)計(jì)算復(fù)雜度。

2 車牌識(shí)別系統(tǒng)結(jié)構(gòu)設(shè)計(jì)

2.1 系統(tǒng)結(jié)構(gòu)

車牌識(shí)別系統(tǒng)的結(jié)構(gòu)設(shè)計(jì)如圖1所示。在Xilinx PYNQ-Z1上實(shí)現(xiàn)FPGA的部分重構(gòu),開發(fā)板包含一個(gè)ZC7020芯片,該芯片有一個(gè)雙核ARM A9處理器,配備各種外圍設(shè)備,作為一個(gè)處理系統(tǒng)(processing system,PS);此外,還有一個(gè)可編程邏輯(programmable logic,PL)XC7Z020。異構(gòu)FPGA本身內(nèi)嵌了處理器,因此使得軟硬件設(shè)計(jì)更加靈活。

計(jì)算密集型且模塊化較強(qiáng)的部分,利用FPGA的PL實(shí)現(xiàn),即所有硬件接口和部分卷積神經(jīng)網(wǎng)絡(luò)模塊;圖片的預(yù)處理由PS實(shí)現(xiàn)。該系統(tǒng)優(yōu)點(diǎn)是采用軟硬件結(jié)合的形式,以及FPGA的部分重構(gòu)特性,對(duì)硬件資源重復(fù)利用,節(jié)省資源,提高識(shí)別效率。

2.2 硬件設(shè)計(jì)

該系統(tǒng)通過高清多媒體接口(high definition multimedia interface,HDMI)接收、輸出圖片,利用動(dòng)態(tài)局部重配置(dynamic partial reconfiguration,DPR)技術(shù),實(shí)現(xiàn)對(duì)CNN計(jì)算密集的卷積層重構(gòu),因此硬件設(shè)計(jì)主要包括HDMI接口調(diào)用以及卷積的重構(gòu)。

HDMI是PYNQ-Z1上的外設(shè),可以直接調(diào)用相關(guān)IP(即Overlay)和接口IP來驅(qū)動(dòng)HDMI。所以硬件設(shè)計(jì)的重點(diǎn)即實(shí)現(xiàn)卷積的重構(gòu),包括卷積IP設(shè)計(jì)與優(yōu)化。

2.2.1 卷積IP設(shè)計(jì)

CNN中最為密集的計(jì)算是卷積,利用FPGA來實(shí)現(xiàn)可以有效地提高卷積計(jì)算效率,并降低功耗。在FPGA上實(shí)現(xiàn)卷積,首先設(shè)計(jì)實(shí)現(xiàn)卷積的硬件電路并生成相應(yīng)的IP,在片上系統(tǒng)(system on chip,SoC)設(shè)計(jì)時(shí)進(jìn)行調(diào)用。

盡管使用Verilog語言進(jìn)行RTL(register transfer level)級(jí)設(shè)計(jì),效率更高,但對(duì)于網(wǎng)絡(luò)和FPGA器件來說,由于考慮到后期調(diào)整結(jié)構(gòu)和充分發(fā)揮FPGA器件的靈活性需要,本文利用Xilinx Vivado HLS 2017.3軟件,采用高層次綜合(high-level synthesis,HLS)工具和C++作為設(shè)計(jì)語言,通過綜合自動(dòng)產(chǎn)生RTL級(jí)電路,并生成IP,減少重復(fù)設(shè)計(jì)工作量并提高設(shè)計(jì)效率。

默認(rèn)情況下,卷積的所有嵌套循環(huán)都是按順序執(zhí)行的,在卷積過程中,Vivado HLS提供了不同的編譯指令(pragma)來影響循環(huán)調(diào)度和FPGA資源分配。用于優(yōu)化的兩個(gè)最重要的指令是unrolling和pipelining[7],因此,根據(jù)每一層卷積的特點(diǎn),以并行或流水線方式處理嵌套循環(huán),優(yōu)化IP。卷積的嵌套循環(huán)在整個(gè)輸入深度、高度和寬度上進(jìn)行,還要考慮卷積的輸出深度以及卷積核,整個(gè)卷積有6層嵌套循環(huán),可以對(duì)這些循環(huán)進(jìn)行優(yōu)化,然而性能的線性增長(zhǎng)取決于硬件資源利用率,所以要在每個(gè)卷積層的資源利用和性能之間找到最佳的平衡點(diǎn)。

圖1 車牌識(shí)別系統(tǒng)模塊框圖

2.2.2 部分重構(gòu)流程

FPGA的部分重構(gòu),在FPGA上開辟一塊可重構(gòu)分區(qū)(reconfigurable partition,RP),重構(gòu)RP邏輯,如圖2所示。

圖2 部分重構(gòu)

FPGA設(shè)計(jì)中的邏輯分為可重構(gòu)邏輯和靜態(tài)邏輯,圖2中FPGA的灰色區(qū)域表示靜態(tài)邏輯,RP部分表示可重構(gòu)邏輯,通過加載幾個(gè)比特流(bitstream)中的一個(gè)來修改RP中的功能,完成部分重構(gòu),而靜態(tài)邏輯保持運(yùn)行,不受部分比特流加載的影響。

本文針對(duì)4層卷積實(shí)現(xiàn)重構(gòu),因此要進(jìn)行4次重構(gòu)循環(huán),生成4組可用的完整及部分比特流。

第一次循環(huán),綜合后畫出RP,并設(shè)置重構(gòu)屬性,優(yōu)化、布局、布線后保存可共享靜態(tài)邏輯,供后續(xù)循環(huán)調(diào)用,同時(shí)第一次生成比特流;后續(xù)循環(huán),替換卷積IP,綜合后只要將卷積部分的設(shè)計(jì)檢查點(diǎn)(design check point,DCP)加載到共享靜態(tài)邏輯,同樣優(yōu)化、布局、布線后直接生成比特流。

2.3 軟件設(shè)計(jì)

軟件的設(shè)計(jì)主要是實(shí)現(xiàn)圖片的預(yù)處理,根據(jù)圖1所示,圖片預(yù)處理主要包括車牌定位及字符分割,這一部分通過軟件來設(shè)計(jì)。

首先,從HDMI幀緩沖區(qū)提取接收的圖片,調(diào)用OpenCV的圖像處理庫進(jìn)行預(yù)處理,根據(jù)顏色先定位車牌的大致區(qū)域,在處理顏色信息時(shí),須變換通道,車牌圖片是3通道的RGB圖,經(jīng)過HDMI輸入FPGA后,變成GBR通道,而Opencv是BGR通道。之后,調(diào)用Opencv的輪廓提取函數(shù),提取所有檢測(cè)到的輪廓,根據(jù)輪廓的長(zhǎng)寬比及大小,篩選掉干擾輪廓。字符分割也利用輪廓提取的方式。

3 實(shí) 現(xiàn)

3.1 硬件實(shí)現(xiàn)

在Xilinx Vivado 2017.3軟件上,利用卷積IP以及其他一些必要IP和接口IP,完成SoC的塊設(shè)計(jì)(block design),即原理圖設(shè)計(jì)。主要包括1個(gè)AXI Interconnect IP和3個(gè)功能模塊:AXI Interconnect IP實(shí)現(xiàn)將一個(gè)或多個(gè)AXI(advanced extensible interface)存儲(chǔ)器映射的主器件連接到一個(gè)或多個(gè)存儲(chǔ)器映射的從器件;hdmi模塊實(shí)現(xiàn)圖片接收與輸出,并用VDMA(video direct memory access)IP作為幀緩沖區(qū),緩存數(shù)據(jù);proc模塊實(shí)現(xiàn)卷積操作;ps模塊包含兩個(gè)ARM A9的硬核,實(shí)現(xiàn)各IP初始化與配置。

Proc模塊中的卷積IP,在部分重構(gòu)過程是可替換的,卷積IP每次替換后都需要復(fù)位,這里通過一個(gè)簡(jiǎn)單的通用輸入/輸出(GPIO)IP來實(shí)現(xiàn)重構(gòu)復(fù)位。此外,輸入到卷積IP的數(shù)據(jù)通過一個(gè)簡(jiǎn)單的DMA(direct memory access)IP連接。

由于FPGA可重構(gòu)區(qū)域的有限性,分配RP時(shí)要考慮最大區(qū)域限制和時(shí)序要求,RP區(qū)最多占用29 %BRAM,37 %DSP48E,36 %FF以及36 % LUT。RP和各卷積層的資源占用如表2。

表2 卷積資源占用

當(dāng)FPGA的可編程邏輯資源和存儲(chǔ)資源較少時(shí),FPGA不能同時(shí)實(shí)現(xiàn)所有的卷積層,所以本設(shè)計(jì)采用部分重構(gòu),以及軟硬件結(jié)合的方式。采用軟硬件組合的方案,實(shí)現(xiàn)4層卷積,如表3。

表3 軟硬件組合方案

3.2 軟件實(shí)現(xiàn)

在Xilinx SDK 2017.3軟件上,借助開發(fā)板HDMI接口,獲取外部圖片,首先處理顏色信息,調(diào)用C++圖像類Mat中的通道函數(shù)channels分離圖片的3個(gè)通道,根據(jù)2.3節(jié)中的設(shè)計(jì),重組通道順序,通過顏色鎖定車牌的大致區(qū)域。之后利用C++調(diào)用Opencv圖像處理庫,對(duì)圖片灰度化、去噪等處理,調(diào)用輪廓提取函數(shù),提取檢測(cè)到的所有可能輪廓,經(jīng)過篩選、定位,由HDMI輸出到顯示器。然后分割車牌字符,將字符處理成39×39的二值圖,完成圖片的預(yù)處理。預(yù)處理效果如圖3所示。

圖3 系統(tǒng)預(yù)處理

3.3 數(shù)據(jù)訓(xùn)練

利用Caffe深度學(xué)習(xí)框架,搭建CNN模型,網(wǎng)絡(luò)訓(xùn)練主要針對(duì)車牌字符。眾所周知國(guó)內(nèi)的家用車車牌大部分是藍(lán)底白字,有3類字符,31個(gè)漢字(不包括港澳臺(tái))、24個(gè)大寫英文字母(不包括I和O)以及10個(gè)阿拉伯?dāng)?shù)字。

考慮到已有MNIST手寫數(shù)字?jǐn)?shù)據(jù)集,所以嘗試以MNIST格式來制作字符數(shù)據(jù)集,字符統(tǒng)一采用39×39的二值圖。通過實(shí)地拍攝大量車牌,并對(duì)車牌字符分割、分類,最后取3類漢字(滬、浙、蘇)、10類數(shù)字以及24類字母的圖片來制作,每類字符2 500張,每類再取250張用于測(cè)試。

根據(jù)不同的數(shù)據(jù)集,相應(yīng)改變表1中最后的全連接層的輸出通道即分類數(shù),結(jié)果為MNIST和自制數(shù)據(jù)集的分類數(shù)分別為10和37,準(zhǔn)確率分別為99.08 %和99.45 %。

4 結(jié) 果

在Ubuntu16.04操作系統(tǒng)下,系統(tǒng)的軟件開發(fā)基于 Xilinx SDK 2017.3軟件,硬件開發(fā)基于系統(tǒng)開發(fā)板PYNQ—Z1。數(shù)據(jù)訓(xùn)練利用NVIDIA Quadro P2000 GPU實(shí)現(xiàn)加速。

系統(tǒng)預(yù)處理部分實(shí)現(xiàn)結(jié)果如圖3所示,車牌被成功定位,并通過HDMI輸出顯示,字符也成功分割并二值化,說明軟件的預(yù)處理設(shè)計(jì)可行。由于FPGA的重配置需要耗費(fèi)一定的時(shí)間,因此重構(gòu)的次數(shù)不是越多越好。為了比較表3所列2種方案的優(yōu)劣,本文進(jìn)行了10次測(cè)試,并與純軟件執(zhí)行方式進(jìn)行比較,結(jié)果如表4。

表4 10次實(shí)驗(yàn)的執(zhí)行時(shí)間 s

方案1和方案2的執(zhí)行速度均比純軟件的方式快,速度都提高了3倍以上,通過軟硬件聯(lián)合的方式,有效提高了速度,方案1執(zhí)行速度最大提升了3.51倍。

實(shí)驗(yàn)中為了驗(yàn)證所設(shè)計(jì)的系統(tǒng)對(duì)車牌識(shí)別的效果,隨機(jī)取5張車牌,最終識(shí)別結(jié)果在開發(fā)板的終端顯示,如圖4。

對(duì)比輸入圖片,隨機(jī)的5張車牌字符都能被正確識(shí)別,字符識(shí)別率與訓(xùn)練結(jié)果相當(dāng),證明所設(shè)計(jì)的車牌識(shí)別系統(tǒng)可行。

本設(shè)計(jì)的實(shí)現(xiàn)方法不僅能得到99 %以上的字符識(shí)別精度,同時(shí)相比純軟件方式,提高了執(zhí)行速度,通過FPGA加速,有效解決了傳統(tǒng)網(wǎng)絡(luò)精度與速度不可兼顧的問題。

5 結(jié)束語

本文充分利用FPGA動(dòng)態(tài)部分重構(gòu)技術(shù)和HLS工具,實(shí)現(xiàn)了快速車牌識(shí)別。但還有進(jìn)一步優(yōu)化的空間,比如改進(jìn)神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)和字符二值化后的降噪,改進(jìn)預(yù)處理方法,減少預(yù)處理時(shí)間等。神經(jīng)網(wǎng)絡(luò)的應(yīng)用有很多,如目標(biāo)追蹤、車輛檢測(cè)等[8],未來,將本系統(tǒng)與微型機(jī)器人相結(jié)合,可以實(shí)現(xiàn)對(duì)高速公路、住宅區(qū)或停車場(chǎng)車輛的靈活管理。

猜你喜歡
車牌字符預(yù)處理
尋找更強(qiáng)的字符映射管理器
字符代表幾
一種USB接口字符液晶控制器設(shè)計(jì)
電子制作(2019年19期)2019-11-23 08:41:50
數(shù)字圖像處理技術(shù)在車牌識(shí)別系統(tǒng)中的應(yīng)用
電子制作(2019年12期)2019-07-16 08:45:16
消失的殖民村莊和神秘字符
基于預(yù)處理MUSIC算法的分布式陣列DOA估計(jì)
第一張車牌
基于MATLAB 的車牌識(shí)別系統(tǒng)研究
電子制作(2017年22期)2017-02-02 07:10:11
淺談PLC在預(yù)處理生產(chǎn)線自動(dòng)化改造中的應(yīng)用
絡(luò)合萃取法預(yù)處理H酸廢水
永清县| 连城县| 南华县| 东平县| 油尖旺区| 元阳县| 福安市| 白玉县| 教育| 修水县| 射洪县| 恭城| 延津县| 无棣县| 平潭县| 松江区| 辽中县| 新乐市| 大港区| 道真| 弥勒县| 辉县市| 突泉县| 班戈县| 临朐县| 乐亭县| 德阳市| 绥滨县| 林甸县| 西畴县| 土默特左旗| 岳普湖县| 灌南县| 资兴市| 永川市| 英超| 二连浩特市| 双牌县| 林州市| 上虞市| 玉龙|