亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,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)鍵詞:設(shè)計(jì)

        訾 晶, 張旭欣, 金 婕

        (上海工程技術(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ì),利用有限的硬件資源,通過(guò)部分重構(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ù)的相互依賴性,緩解過(guò)擬合;此外,最大池化層,壓縮了卷積后的特征面,提取主要特征,進(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)通過(guò)高清多媒體接口(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來(lái)驅(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來(lái)實(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語(yǔ)言進(jìn)行RTL(register transfer level)級(jí)設(shè)計(jì),效率更高,但對(duì)于網(wǎng)絡(luò)和FPGA器件來(lái)說(shuō),由于考慮到后期調(diào)整結(jié)構(gòu)和充分發(fā)揮FPGA器件的靈活性需要,本文利用Xilinx Vivado HLS 2017.3軟件,采用高層次綜合(high-level synthesis,HLS)工具和C++作為設(shè)計(jì)語(yǔ)言,通過(guò)綜合自動(dòng)產(chǎn)生RTL級(jí)電路,并生成IP,減少重復(fù)設(shè)計(jì)工作量并提高設(shè)計(jì)效率。

        默認(rèn)情況下,卷積的所有嵌套循環(huán)都是按順序執(zhí)行的,在卷積過(guò)程中,Vivado HLS提供了不同的編譯指令(pragma)來(lái)影響循環(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)邏輯,通過(guò)加載幾個(gè)比特流(bitstream)中的一個(gè)來(lái)修改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ù)處理主要包括車牌定位及字符分割,這一部分通過(guò)軟件來(lái)設(shè)計(jì)。

        首先,從HDMI幀緩沖區(qū)提取接收的圖片,調(diào)用OpenCV的圖像處理庫(kù)進(jìn)行預(yù)處理,根據(jù)顏色先定位車牌的大致區(qū)域,在處理顏色信息時(shí),須變換通道,車牌圖片是3通道的RGB圖,經(jīng)過(guò)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)過(guò)程是可替換的,卷積IP每次替換后都需要復(fù)位,這里通過(guò)一個(gè)簡(jiǎn)單的通用輸入/輸出(GPIO)IP來(lái)實(shí)現(xiàn)重構(gòu)復(fù)位。此外,輸入到卷積IP的數(shù)據(jù)通過(guò)一個(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ì),重組通道順序,通過(guò)顏色鎖定車牌的大致區(qū)域。之后利用C++調(diào)用Opencv圖像處理庫(kù),對(duì)圖片灰度化、去噪等處理,調(diào)用輪廓提取函數(shù),提取檢測(cè)到的所有可能輪廓,經(jīng)過(guò)篩選、定位,由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格式來(lái)制作字符數(shù)據(jù)集,字符統(tǒng)一采用39×39的二值圖。通過(guò)實(shí)地拍攝大量車牌,并對(duì)車牌字符分割、分類,最后取3類漢字(滬、浙、蘇)、10類數(shù)字以及24類字母的圖片來(lái)制作,每類字符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所示,車牌被成功定位,并通過(guò)HDMI輸出顯示,字符也成功分割并二值化,說(shuō)明軟件的預(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倍以上,通過(guò)軟硬件聯(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í)行速度,通過(guò)FPGA加速,有效解決了傳統(tǒng)網(wǎng)絡(luò)精度與速度不可兼顧的問(wèn)題。

        5 結(jié)束語(yǔ)

        本文充分利用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],未來(lái),將本系統(tǒng)與微型機(jī)器人相結(jié)合,可以實(shí)現(xiàn)對(duì)高速公路、住宅區(qū)或停車場(chǎng)車輛的靈活管理。

        猜你喜歡
        設(shè)計(jì)
        二十四節(jié)氣在平面廣告設(shè)計(jì)中的應(yīng)用
        何為設(shè)計(jì)的守護(hù)之道?
        《豐收的喜悅展示設(shè)計(jì)》
        流行色(2020年1期)2020-04-28 11:16:38
        基于PWM的伺服控制系統(tǒng)設(shè)計(jì)
        電子制作(2019年19期)2019-11-23 08:41:36
        基于89C52的32只三色LED搖搖棒設(shè)計(jì)
        電子制作(2019年15期)2019-08-27 01:11:50
        基于ICL8038的波形發(fā)生器仿真設(shè)計(jì)
        電子制作(2019年7期)2019-04-25 13:18:16
        瞞天過(guò)?!律O(shè)計(jì)萌到家
        設(shè)計(jì)秀
        海峽姐妹(2017年7期)2017-07-31 19:08:17
        有種設(shè)計(jì)叫而專
        Coco薇(2017年5期)2017-06-05 08:53:16
        從平面設(shè)計(jì)到“設(shè)計(jì)健康”
        商周刊(2017年26期)2017-04-25 08:13:04
        久久综合九色综合97婷婷| 国产精品福利小视频| 久久亚洲一级av一片| 国产精品久久久黄色片| 成人麻豆日韩在无码视频| 黄色一区二区三区大全观看| 一本加勒比hezyo无码专区| 欧美孕妇xxxx做受欧美88| 熟女人妻丰满熟妇啪啪| 亚洲综合有码中文字幕| 国产丝袜美腿一区二区三区| www夜片内射视频在观看视频| 中文字幕精品一区二区2021年| 一级片麻豆| 日韩av一区二区在线观看| 精品人妻av一区二区三区| 精品少妇人妻av一区二区| chinese国产在线视频| 国产女主播一区二区三区在线观看 | 国产成+人+综合+亚洲欧美丁香花 欧美真人性野外做爰 | 国产熟女av一区二区三区四季| 国产精品一区二区久久久av | 日本一区二区三区亚洲| 粗大的内捧猛烈进出视频| 亚洲影院丰满少妇中文字幕无码| 亚洲黄色官网在线观看| 亚洲美女av一区二区在线| 亚洲av无码国产精品色午夜字幕 | 夜夜春亚洲嫩草影院| 人人妻人人澡av天堂香蕉| 激情综合网缴情五月天| 亚洲国产精品久久婷婷| 国产精品美女久久久久久| 国产精品无码无片在线观看3D| 国产一区二区杨幂在线观看性色 | 揄拍成人国产精品视频| 亚洲视频观看一区二区| 亚洲国产av无码精品| 后入内射欧美99二区视频| 亚洲av永久无码精品成人| 91三级在线观看免费|