• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于FPGA的快速櫻桃缺陷檢測(cè)與識(shí)別系統(tǒng)設(shè)計(jì)

      2020-09-18 06:15:54裴悅琨連明月
      食品與機(jī)械 2020年8期
      關(guān)鍵詞:櫻桃指令卷積

      裴悅琨 - 谷 宇 連明月 -

      (1. 大連大學(xué)遼寧省北斗高精度位置服務(wù)技術(shù)工程實(shí)驗(yàn)室,遼寧 大連 116622;2. 大連大學(xué)大連市環(huán)境感知與智能控制重點(diǎn)實(shí)驗(yàn)室,遼寧 大連 116622)

      卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural networks,CNN)是目前性能較好的深度學(xué)習(xí)算法之一。通過(guò)其網(wǎng)絡(luò)模型和足夠的訓(xùn)練數(shù)據(jù)集,CNN可以為某些任務(wù)生成復(fù)雜的功能,勝過(guò)傳統(tǒng)的人工算法。目前,CNN已成功應(yīng)用于手寫體數(shù)字識(shí)別及交通標(biāo)志識(shí)別[1-2]等,并且取得了較好的效果。

      基于CNN的水果品質(zhì)檢測(cè)大多是在軟件平臺(tái)上實(shí)現(xiàn)。劉云等[3]基于CNN對(duì)蘋果進(jìn)行分塊缺陷檢測(cè),并且在軟件平臺(tái)上進(jìn)行訓(xùn)練和測(cè)試,檢測(cè)速度達(dá)到5個(gè)/s,且正確率高達(dá)97.3%;裴悅琨等[4]對(duì)櫻桃的缺陷進(jìn)行檢測(cè)和識(shí)別,利用CNN對(duì)采集的櫻桃圖片進(jìn)行測(cè)試,基于CPU的軟件平臺(tái)上識(shí)別速度可達(dá)25個(gè)/s;伍錫如等[5]構(gòu)建一個(gè)多層卷積神經(jīng)網(wǎng)絡(luò),在英特爾i5平臺(tái)上對(duì)水果采摘機(jī)器人視覺(jué)識(shí)別系統(tǒng)進(jìn)行測(cè)試,單張水果圖像的識(shí)別速度只需0.2 s。這些軟件平臺(tái)都是基于通用的處理器,然而CNN具有很高的并行度,通用處理器主要用來(lái)控制指令調(diào)度、執(zhí)行和邏輯判斷,并不適合用來(lái)大量的并行計(jì)算[6]。因此基于軟件方式的CNN在實(shí)時(shí)性和能耗方面都不能適應(yīng)實(shí)際水果檢測(cè)中場(chǎng)外作業(yè)的需求。目前大部分對(duì)于CNN的研究主要還是采用GPU,但是對(duì)于GPU功耗大的問(wèn)題一直存在,所以在需要電池供電的嵌入式設(shè)備中也是很難得到應(yīng)用。

      現(xiàn)場(chǎng)可編程門陣列(field programmable gate array,F(xiàn)PGA)具有強(qiáng)大的并行處理能力、靈活的可配置特性和超低功耗,使其成為CNN實(shí)現(xiàn)平臺(tái)的理想選擇。王巍等[7]充分利用CNN的并行計(jì)算特征,進(jìn)行了CNN算法的FPGA并行結(jié)構(gòu)設(shè)計(jì),提高了資源利用率且計(jì)算效率也得到大幅提升;Ma等[8]使用RTL編譯器完成CNN網(wǎng)絡(luò)的硬件加速,使用FPGA在100 MHz的工作頻率下得到2倍的性能提升,然而上述基于硬件描述語(yǔ)言(HDL)或者邏輯圖的設(shè)計(jì)方法難度較大,周期較長(zhǎng)并且在數(shù)學(xué)運(yùn)算上存在許多弊端,極大地阻礙了FPGA中進(jìn)行人工智能的快速開(kāi)發(fā)[9]。Danopoulos等[10]的研究充分地展現(xiàn)了FPGA快速開(kāi)發(fā)的優(yōu)勢(shì),將網(wǎng)絡(luò)框架移植到FPGA的ARM(基于Zynq-7000)處理器中,在Xilinx的SDSoC開(kāi)發(fā)環(huán)境中設(shè)計(jì)硬件加速器,并利用硬件加速器顯著提高神經(jīng)網(wǎng)絡(luò)執(zhí)行速度。

      試驗(yàn)擬采用美國(guó)Xilinx公司發(fā)布的SDSoC開(kāi)發(fā)環(huán)境,通過(guò)使用C/C++在目標(biāo)平臺(tái)上完成完整的硬件/軟件系統(tǒng)的編譯、實(shí)現(xiàn)、調(diào)試執(zhí)行等全過(guò)程[11]。利用卷積網(wǎng)絡(luò)并行結(jié)構(gòu)的特點(diǎn),采用高級(jí)語(yǔ)言映射卷積神經(jīng)網(wǎng)絡(luò)模型并進(jìn)行優(yōu)化設(shè)計(jì),通過(guò)處理器系統(tǒng)(Processing System,PS)和可編程邏輯(Programmable Logic,PL)的協(xié)同處理實(shí)現(xiàn)一個(gè)完整的軟硬件系統(tǒng),為櫻桃的快速、準(zhǔn)確地檢測(cè)分級(jí)提供新的方法和策略。

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

      相比普通的圖像處理算法,卷積神經(jīng)網(wǎng)絡(luò)僅需少量的預(yù)處理,識(shí)別范圍廣,能容許圖像的畸變,對(duì)幾何變形具有很好的魯棒性,其經(jīng)典網(wǎng)絡(luò)模型包含卷積層、池化層、全連接層等結(jié)構(gòu)。其中卷積層即特征提取,針對(duì)圖像上存在的特征進(jìn)行局部感知,緊接著進(jìn)行多層卷積獲取全局信息。

      池化層也叫下采樣層。主要用作降低特征維度,減小過(guò)擬合的發(fā)生,同時(shí)增強(qiáng)系統(tǒng)的容錯(cuò)性。

      全連接層即輸出層,主要對(duì)數(shù)據(jù)進(jìn)行歸一化處理,避免數(shù)據(jù)值大的節(jié)點(diǎn)對(duì)分類造成影響,最終進(jìn)行正確的圖片分類。

      卷積過(guò)程如圖1所示:輸入層的圖像首先通過(guò)多個(gè)卷積層、修正線性單元(rectified linear unit,ReLU)以及最大池化層運(yùn)算,之后進(jìn)入全連接層,最后通過(guò)輸出層得到最終的分類結(jié)果。

      圖1 卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)

      針對(duì)櫻桃缺陷的特點(diǎn),設(shè)計(jì)CNN模型。該模型包括卷積層、修正線性單元、最大池化層以及全連接層。模型設(shè)計(jì)如表1所示。

      表1 CNN模型設(shè)計(jì)

      2 櫻桃缺陷檢測(cè)與識(shí)別系統(tǒng)結(jié)構(gòu)設(shè)計(jì)

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

      櫻桃缺陷檢測(cè)與識(shí)別系統(tǒng)的結(jié)構(gòu)設(shè)計(jì)如圖2所示。主要包括圖像采集、HDMI接口、SD卡數(shù)據(jù)讀取、圖像預(yù)處理、PL端加速和終端顯示等模塊。其中系統(tǒng)全局控制在ARM處理器完成,主要負(fù)責(zé)HDMI接口調(diào)用、數(shù)據(jù)傳輸,對(duì)圖像進(jìn)行預(yù)處理,并完成加速函數(shù)對(duì)PL端的寫入工作,最終PS端將分類結(jié)果顯示在終端顯示器上。

      圖2 系統(tǒng)結(jié)構(gòu)設(shè)計(jì)框圖

      由于卷積模塊和硬件接口模塊計(jì)算密集且模塊化較強(qiáng),因此將其模塊放入FPGA的PL端實(shí)現(xiàn)。該系統(tǒng)優(yōu)點(diǎn)是在Xilinx的SDSoC開(kāi)發(fā)環(huán)境中采用軟硬件結(jié)合的形式,復(fù)用卷積模塊以及使用優(yōu)化指令對(duì)卷積層和數(shù)據(jù)傳輸進(jìn)行優(yōu)化,節(jié)省資源,提高識(shí)別效率。

      2.2 網(wǎng)絡(luò)映射

      整個(gè)網(wǎng)絡(luò)模型移植到Zynq 7020 SoC以便在ARM內(nèi)核上運(yùn)行。為了使網(wǎng)絡(luò)在Zynq上運(yùn)行,必須使用SDSoC環(huán)境中包含的ARM交叉編譯器對(duì)整個(gè)模型進(jìn)行交叉編譯。SDSoC是Xilinx提供的基于IDE的框架,該框架允許為Zynq平臺(tái)開(kāi)發(fā)硬件/軟件嵌入式系統(tǒng)。該平臺(tái)提供了定義,集成和驗(yàn)證硬件加速器的能力,該硬件加速器將加速特定功能,稍后將對(duì)其進(jìn)行描述,生成ARM軟件和FPGA比特流,同時(shí)生成SD映像,以便脫機(jī)進(jìn)行SD卡讀取[12]。SDSoC網(wǎng)絡(luò)映射開(kāi)發(fā)流程如圖3所示。

      圖3 SDSoC網(wǎng)絡(luò)映射開(kāi)發(fā)流程

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

      該系統(tǒng)通過(guò)HDMI接收、輸出圖片,采用輸入輸出級(jí)優(yōu)化、通用矩陣乘法函數(shù)復(fù)用優(yōu)化以及卷積操作并行化設(shè)計(jì),實(shí)現(xiàn)對(duì)輸入輸出級(jí)設(shè)計(jì)和CNN計(jì)算密集的卷積層加速。

      對(duì)于HDMI接收設(shè)計(jì),可調(diào)用相關(guān)IP進(jìn)行驅(qū)動(dòng)。因此硬件設(shè)計(jì)的重點(diǎn)即數(shù)據(jù)傳輸優(yōu)化、通用矩陣乘法函數(shù)復(fù)用和卷積操作并行化設(shè)計(jì)和優(yōu)化。

      2.3.1 數(shù)據(jù)傳輸優(yōu)化 數(shù)據(jù)傳輸優(yōu)化主要包括PS和PL接口優(yōu)化和數(shù)據(jù)傳輸方式優(yōu)化。如圖4所示,PortA和PortB接口分別為PS端和PL端接口,Data Mover為PS和PL之間進(jìn)行數(shù)據(jù)傳輸?shù)姆绞?。因此,?shù)據(jù)傳輸優(yōu)化即對(duì)PortA、PortB和Data Mover進(jìn)行優(yōu)化設(shè)計(jì)。

      圖4 數(shù)據(jù)傳輸接口

      通常大部分的權(quán)重參數(shù)和算法模型存在DDR中,PS和PL則通過(guò)AXI標(biāo)準(zhǔn)總線接口進(jìn)行數(shù)據(jù)的交互,AXI接口包括通用AXI接口(AXI_GP)、加速器一致性接口(AXI_ACP)和高性能接口(AXI_HP)[13]。

      鑒于訪問(wèn)DDR延遲會(huì)導(dǎo)致讀寫速度緩慢,在PS端與PL端對(duì)數(shù)據(jù)的傳輸進(jìn)行優(yōu)化。傳輸接口及傳輸方式的相關(guān)優(yōu)化指令:

      //system port

      #pragma SDS datasys_port(input:AXI_HP,output:AXI_HP)

      //data mover

      #pragma SDS datamem_attribute(input:PHYSICAL_CONTIGUOUS|

      NON_CACHEABLE,output: PHYSICAL_CONTIGUOUS|NON_CACHEABLE)

      #pragma SDS data copy(input[0:WIDTH*HEIGHT],output[0:WIDTH*HEIGHT])

      //accelerator

      #pragma SDS dataaccess_pattern(input:SEQUENTIAL,output:SEQUENTIAL)

      SDS datasys_port指令用于直接約束PS端總線接口類型,試驗(yàn)選擇HP類型。AXI_HP接口具有高性能和高帶寬的特性,其內(nèi)部配置異步FIFO作為高速數(shù)據(jù)讀寫的緩沖。相反AXI_GP則是沒(méi)有配置緩沖的中低速接口,AXI_ACP主要實(shí)現(xiàn)PS中cache和PL單元之間的一致性接口,因此都不適合。

      SDS data mem_attribute用于約束矩陣數(shù)據(jù)存放地址的連續(xù)性。硬件綜合時(shí),SDSoC平臺(tái)會(huì)選擇傳輸連續(xù)內(nèi)存更快的AXI_DMA_Simple,而不是AXI_DMA_SG。

      SDS data copy指令約束內(nèi)存大小,意味著SDSoC會(huì)將硬件加速器的接口通過(guò)AXI總線直接連接到PS的存儲(chǔ)器,對(duì)其進(jìn)行一定內(nèi)存大小的數(shù)據(jù)傳輸。

      SDS dataaccess_pattern指令約束訪問(wèn)數(shù)據(jù)的方式,在CNN中都是按照?qǐng)D像每行像素的順序進(jìn)行卷積操作,所以將SEQUENTIAL設(shè)置為數(shù)據(jù)訪問(wèn)的方式,那么綜合時(shí)自動(dòng)生成順序訪問(wèn)的接口協(xié)議(例如ap_fifo),而不是生成隨機(jī)訪問(wèn)的接口,大大提高了數(shù)據(jù)訪問(wèn)速度。

      采用綜上4條優(yōu)化指令,可以在連續(xù)的物理空間中按照數(shù)據(jù)流的方式訪問(wèn)數(shù)據(jù),降低數(shù)據(jù)傳輸延遲,增大數(shù)據(jù)吞吐率。試驗(yàn)中,傳輸圖像及權(quán)重偏置信息均采用此方式加載。

      2.3.2 通用矩陣乘法函數(shù)復(fù)用 CNN中最為密集的計(jì)算是卷積,每個(gè)卷積層都要進(jìn)行線性矩陣乘法和加法運(yùn)算即通用矩陣乘法(GEMM)函數(shù),利用FPGA來(lái)實(shí)現(xiàn)可以有效地提高卷積計(jì)算效率,并降低功耗,區(qū)別在于特征圖的尺寸不同。對(duì)于這一結(jié)構(gòu)上的差異,應(yīng)將其同構(gòu)化達(dá)到復(fù)用的目的。

      在不造成卷積運(yùn)算誤差的前提下,對(duì)所要進(jìn)行卷積操作的特征圖進(jìn)行補(bǔ)零。如圖5所示,除了輸入特征圖,之后的卷積操作的特征圖的寬和高均小于輸入特征圖尺寸,因此對(duì)其進(jìn)行填補(bǔ)零值,使其尺寸與輸入特征圖尺寸相同。因此,與權(quán)重的矩陣乘法操作使每一層的卷積運(yùn)算具有了同構(gòu)性。在SDSoC中可以專門定義通用矩陣乘法(GEMM)函數(shù)并且每一次卷積都可以調(diào)用該函數(shù),卷積運(yùn)算可以復(fù)用相同的控制電路,從而節(jié)省硬件資源的開(kāi)銷。

      圖5 特征圖同構(gòu)化

      2.3.3 卷積操作并行化

      (1) 矩陣分塊優(yōu)化:對(duì)于卷積層中較大的數(shù)組拆分為多個(gè)較小的數(shù)組,用于增加數(shù)據(jù)訪問(wèn)的并行性。通過(guò)使用ARRAY _PARTITION指令對(duì)數(shù)組進(jìn)行分塊。在文中優(yōu)化卷積操作使用下述代碼結(jié)構(gòu)。對(duì)二維數(shù)組進(jìn)行降維,將二維數(shù)組分解為若干個(gè)小寄存器,提高并行度。相關(guān)指令:

      #pragma HLSarray_partition variable=in_Bcomplete dim=2

      (2) 流水線優(yōu)化:流水線優(yōu)化能夠?qū)⒁粋€(gè)延時(shí)較大的操作切割成多個(gè)小操作并行執(zhí)行,這樣就大大增加了總體的運(yùn)行速度。采用PIPELINING約束指令來(lái)使結(jié)構(gòu)執(zhí)行流水線操作。為了不消耗太多的硬件資源并且不浪費(fèi)太多的數(shù)據(jù)延遲,綜合考慮選擇在第2層循環(huán)內(nèi)添加優(yōu)化命令,可以使得工作頻率提高將近1倍。流水線優(yōu)化使用PIPELINING指令:

      for(index_a = 0; index_a< A_NROWS; index_a++){

      for(index_b = 0; index_b< A_NCOLS; index_b++){

      #pragma HLS PIPELINE

      //next operations

      }}

      (3) 循環(huán)展開(kāi)優(yōu)化:默認(rèn)情況下,卷積的所有嵌套循環(huán)都是按順序執(zhí)行的。循環(huán)展開(kāi)優(yōu)化可以提高循環(huán)迭代之間的并行性,增加FPGA計(jì)算資源的利用率。如圖6所示,將特征圖和權(quán)重通過(guò)移位寄存器分別展開(kāi),并且進(jìn)行并行乘加運(yùn)算。

      圖6 循環(huán)展開(kāi)優(yōu)化

      在卷積過(guò)程中,通過(guò)使用UNROLL優(yōu)化指令對(duì)for循環(huán)進(jìn)行展開(kāi)。展開(kāi)最內(nèi)層for循環(huán),每一層權(quán)重的乘積作為一個(gè)獨(dú)立的處理單元(PE),使得PE核最小化。將第3層for循環(huán)展開(kāi)作為PE的并行數(shù)量,用來(lái)一次獲得多個(gè)輸出層的部分和,部分代碼:

      //multiply accumulate broken into individual operators

      #pragma HLS UNROLL

      for(index_d = 0; index_d< B_NCOLS; index_d++){

      floatresult + = weights[index_c][index_d]*input_fm[index_c+i][index_d+j];

      }

      output_fm[i* A_NROWS +j]=result;

      (4) 函數(shù)內(nèi)聯(lián)優(yōu)化:此外,試驗(yàn)還使用了函數(shù)內(nèi)聯(lián)優(yōu)化指令I(lǐng)NLINE,去除子函數(shù)層次結(jié)構(gòu),通過(guò)減少函數(shù)調(diào)用開(kāi)銷來(lái)改善延遲。指令:

      #pragma HLS INLINE self

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

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

      在硬件設(shè)備上,基于Xilinx Zynq7020開(kāi)發(fā)板實(shí)現(xiàn)網(wǎng)絡(luò)的加速,開(kāi)發(fā)板為異構(gòu)芯片,該芯片有2個(gè)ARM A9處理器作為處理系統(tǒng)(PS),還有一個(gè)可編程邏輯(PL)XC7Z020用于硬件加速,開(kāi)發(fā)板如圖7所示;此外,開(kāi)發(fā)板通過(guò)SONY IMX222 CMOS相機(jī)對(duì)采集的櫻桃圖片進(jìn)行測(cè)試,試驗(yàn)還配有一臺(tái)顯示器用于測(cè)試結(jié)果的終端顯示,如圖8所示。

      1. SONY IMX222 CMOS相機(jī) 2. 圓頂光源 3. 櫻桃樣本 4. Xilinx Zynq7020開(kāi)發(fā)板 5. 終端顯示器

      圖7 Xilinx Zynq7020開(kāi)發(fā)板結(jié)構(gòu)圖

      在硬件模塊化設(shè)計(jì)上,試驗(yàn)基于Xilinx Vivado 2016.4軟件,將數(shù)據(jù)傳輸模塊,通用矩陣乘法模塊以及接口模塊分別生成各個(gè)硬件IP,完成硬件模塊化設(shè)計(jì)。數(shù)據(jù)的內(nèi)部傳輸采用AXI Interconnect模塊,即AXI互聯(lián)矩陣,能夠?qū)崿F(xiàn)將主設(shè)備和從設(shè)備的互聯(lián);外部數(shù)據(jù)傳輸采用 HDMI模塊實(shí)現(xiàn)圖像數(shù)據(jù)傳輸,并利用異步FIFO模塊作為幀緩沖區(qū),緩存數(shù)據(jù)。內(nèi)部PS模塊包含一個(gè)Zynq處理器硬核,實(shí)現(xiàn)各IP初始化與配置。定義的Mmult模塊實(shí)現(xiàn)卷積操作,其內(nèi)部通用矩陣乘法IP在卷積層進(jìn)行復(fù)用。

      分別在PC機(jī)、純ARM軟件和試驗(yàn)加速器3種平臺(tái)進(jìn)行試驗(yàn),結(jié)果如表2所示。

      表2 PC機(jī)、純ARM和試驗(yàn)加速器3種平臺(tái)比較

      3.2 制作并訓(xùn)練數(shù)據(jù)集

      在制作數(shù)據(jù)集的過(guò)程中,在實(shí)驗(yàn)室的環(huán)境下對(duì)采摘來(lái)的櫻桃進(jìn)行圖像采集。為了能覆蓋每個(gè)櫻桃的完整表面,試驗(yàn)使用Basler acA2000-50gc工業(yè)相機(jī)對(duì)櫻桃的6個(gè)不同角度進(jìn)行采集;利用Matlab對(duì)圖像進(jìn)行裁剪、旋轉(zhuǎn)、縮放等操作來(lái)擴(kuò)大樣本數(shù)據(jù);最后將所有的待訓(xùn)練圖像統(tǒng)一成32×32規(guī)格大小。部分樣本示例如圖9所示。

      訓(xùn)練在Caffe平臺(tái)下進(jìn)行,操作系統(tǒng)為Ubuntu16.04,使用Python搭建CNN模型,采用監(jiān)督式學(xué)習(xí)的方法對(duì)櫻桃樣本進(jìn)行訓(xùn)練。最后的全連接層的輸出通道即分類數(shù),將櫻桃分為3類,分別為:裂口、完好和畸形。用于訓(xùn)練的櫻桃圖片18 000張,采用人工標(biāo)記的方法對(duì)訓(xùn)練樣本進(jìn)行標(biāo)記。

      4 結(jié)果與分析

      4.1 數(shù)據(jù)集測(cè)試

      試驗(yàn)選取600張櫻桃原圖進(jìn)行測(cè)試,每個(gè)分類各200張,將裂口和畸形的櫻桃歸為缺陷櫻桃。試驗(yàn)先在PC機(jī)上利用Python進(jìn)行測(cè)試,再將測(cè)試圖片放入FPGA進(jìn)行測(cè)試,如表3所示,可以發(fā)現(xiàn)在FPGA上,準(zhǔn)確率幾乎沒(méi)有下降。

      4.2 實(shí)際圖片測(cè)試

      工程編譯完成之后,.BIN文件會(huì)自動(dòng)在release目錄下的sd_card文件夾下生成。將.BIN文件拷貝到SD卡中,設(shè)置開(kāi)發(fā)板為SD卡啟動(dòng)模式。連接好終端顯示器,顯示器左上角為識(shí)別出櫻桃結(jié)果的黃色標(biāo)簽,試驗(yàn)運(yùn)行結(jié)果部分展示如圖10所示。

      圖10 試驗(yàn)運(yùn)行結(jié)果部分展示

      Zynq XC7Z020資源包括:18 K大小的Block RAM 140個(gè),查找表(LUT) 53 200個(gè),觸發(fā)器(FF)106 400個(gè)和數(shù)字信號(hào)處理器(DSP)220個(gè),文中2個(gè)硬件加速函數(shù)在硬件中的資源占用使用情況和運(yùn)行時(shí)長(zhǎng)如表4所示。

      表4 硬件加速函數(shù)資源占用和運(yùn)行時(shí)長(zhǎng)

      輸入同樣尺寸大小的圖片在不同平臺(tái)下分別進(jìn)行測(cè)試,如表5所示。結(jié)果表明在純ARM軟件中對(duì)單張櫻桃圖片檢測(cè)處理需要57.89 ms,而在硬件平臺(tái)上需26.42 ms,其檢測(cè)處理速度是純ARM軟件的2.19 倍。

      表5 純ARM軟件與試驗(yàn)加速器對(duì)櫻桃圖片處理時(shí)長(zhǎng)比較

      裴悅琨等[4]選用CPU型號(hào)為intel(R)Core(TM) i5-6500 CPU @ 3.20GHzHP LV2011的PC機(jī)對(duì)櫻桃進(jìn)行檢測(cè),測(cè)試實(shí)際圖片時(shí)在網(wǎng)絡(luò)中將輸入圖片的尺寸縮放為64×64,因此將FPGA中網(wǎng)絡(luò)的縮放尺寸改為64×64,并與文獻(xiàn)[4]的處理時(shí)間進(jìn)行比較,如表6所示。

      表6 CPU平臺(tái)與試驗(yàn)加速器對(duì)櫻桃圖片處理時(shí)長(zhǎng)比較

      由表6可以看出,當(dāng)輸入圖像尺寸擴(kuò)大一倍時(shí),一幅圖片的處理時(shí)長(zhǎng)為42.59 ms,對(duì)比原來(lái)圖像尺寸延長(zhǎng)了16.17 ms,與文獻(xiàn)[4]的CPU平臺(tái)處理時(shí)長(zhǎng)相當(dāng),但是試驗(yàn)系統(tǒng)所使用的時(shí)鐘頻率與CPU平臺(tái)相差甚遠(yuǎn),若使用性能更好的FPGA,速度應(yīng)超過(guò)CPU平臺(tái)。而且試驗(yàn)系統(tǒng)具有小型化、手持化的特點(diǎn),與CPU平臺(tái)相比具有很強(qiáng)的實(shí)際應(yīng)用價(jià)值。

      5 結(jié)論

      試驗(yàn)利用SDSoC快速開(kāi)發(fā)平臺(tái),協(xié)同處理PS端與PL端,實(shí)現(xiàn)一個(gè)快速櫻桃檢測(cè)的軟硬件系統(tǒng)。通過(guò)對(duì)系統(tǒng)硬件設(shè)計(jì)及優(yōu)化,大大提高了系統(tǒng)的計(jì)算性能,與純ARM軟件和CPU實(shí)現(xiàn)的算法相比,使用軟硬件協(xié)同處理對(duì)算法的加速效果明顯,滿足實(shí)時(shí)性與低成本的要求。試驗(yàn)系統(tǒng)可以不使用PC機(jī),便攜性大大提高,同時(shí)可拓展性好,具有很大的市場(chǎng)空間。

      試驗(yàn)系統(tǒng)還有進(jìn)一步優(yōu)化的空間,比如增加學(xué)習(xí)樣本種類、建立合理的分類分級(jí)邏輯和改進(jìn)神經(jīng)網(wǎng)絡(luò)模型結(jié)構(gòu)等。同時(shí)筆者正在嘗試其他水果數(shù)據(jù)應(yīng)用于此系統(tǒng),以使其能檢測(cè)更多水果缺陷,最終形成一個(gè)實(shí)用的快速自動(dòng)水果缺陷檢測(cè)與識(shí)別系統(tǒng)。

      猜你喜歡
      櫻桃指令卷積
      聽(tīng)我指令:大催眠術(shù)
      櫻桃肉,讓年味飄香
      金橋(2022年2期)2022-03-02 05:43:04
      基于3D-Winograd的快速卷積算法設(shè)計(jì)及FPGA實(shí)現(xiàn)
      從濾波器理解卷積
      電子制作(2019年11期)2019-07-04 00:34:38
      ARINC661顯控指令快速驗(yàn)證方法
      LED照明產(chǎn)品歐盟ErP指令要求解讀
      一樹櫻桃?guī)в昙t
      基于傅里葉域卷積表示的目標(biāo)跟蹤算法
      吃不到的櫻桃
      喜劇世界(2017年13期)2017-07-24 15:43:42
      失蹤的櫻桃
      家居| 姜堰市| 武城县| 新丰县| 临洮县| 商洛市| 九龙县| 峨眉山市| 海口市| 仁寿县| 合江县| 沅江市| 竹溪县| 中牟县| 福州市| 临湘市| 新乡市| 太湖县| 五寨县| 台中市| 青神县| 英超| 百色市| 渑池县| 台安县| 环江| 鲁山县| 丽江市| 永年县| 珠海市| 龙海市| 麻城市| 铜鼓县| 恩施市| 贵阳市| 吉木萨尔县| 鸡泽县| 绥德县| 吉隆县| 澄城县| 措美县|