• 
    

    
    

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

      基于SOC架構(gòu)的智能圖像處理和外設(shè)控制系統(tǒng)設(shè)計

      2021-05-07 07:54:10王升哲唐中和劉書信劉云峰張承果
      計算機(jī)測量與控制 2021年4期
      關(guān)鍵詞:外設(shè)寄存器圖像處理

      王升哲,唐中和,郭 航,2,劉書信,3,劉云峰,4,張承果,張 梟,鄭 杰

      (1.北方激光研究院有限公司 控制與制導(dǎo)研究所, 成都 610011;2.四川大學(xué) 計算機(jī)學(xué)院,成都 610065; 3.重慶大學(xué) 光電工程學(xué)院, 重慶 400040;4.火箭軍裝備部駐成都地區(qū)第四軍事代表室, 成都 610052)

      0 引言

      隨著人工智能的崛起,對深度學(xué)習(xí)、大數(shù)據(jù)、神經(jīng)網(wǎng)絡(luò)芯片等相關(guān)技術(shù)成果的集成應(yīng)用,人工智能的智能化水平進(jìn)一步提升,對未來戰(zhàn)爭將產(chǎn)生全方位、顛覆性的影響[1]。彈載計算機(jī)SoC處理芯片作為制導(dǎo)武器的重要組成部分,采用高精度制導(dǎo)與控制系統(tǒng),利用人工智能的訓(xùn)練和推理,通過對各種傳感器獲取的目標(biāo)信息,以及對信息分析和處理后實(shí)時修正、控制導(dǎo)彈的飛行軌跡,完成對目標(biāo)的有效攻擊[2]。

      目前,以卷積神經(jīng)網(wǎng)絡(luò)為代表的深度學(xué)習(xí)算法在形式上模擬了人腦的學(xué)習(xí)過程,也就是重復(fù)訓(xùn)練強(qiáng)化其智能思維,大大提升了人工智能系統(tǒng)的運(yùn)行效率[3]。然而,深度學(xué)習(xí)算法需要專用硬件平臺才能發(fā)揮其性能[4]?,F(xiàn)有的人工智能芯片的技術(shù)路線大致可以分為三類:1)通用型的CPU及GPU芯片;CPU的架構(gòu)和指令對神經(jīng)網(wǎng)絡(luò)計算的兼容度不夠,性價比與運(yùn)算效率偏低;2)FPGA芯片;具有可定制、可編程的特點(diǎn),且并行效率適應(yīng)神經(jīng)網(wǎng)絡(luò)運(yùn)算。3)專用ASIC芯片;對特定計算的運(yùn)行效率極高,不具備編程過程。

      目前主流的方法是以FPGA和DSP作為智能圖像處理和外設(shè)控制的器件,即由FPGA實(shí)現(xiàn)圖像預(yù)處理功能,DSP實(shí)現(xiàn)圖像處理算法和外設(shè)控制。由于圖像數(shù)據(jù)量比較大,F(xiàn)PGA與DSP之間數(shù)據(jù)交互往往需要SRIO這種高速接口,這種高速接口對電路板設(shè)計要求高,而且DSP串行工作方式,導(dǎo)致對DSP性能要求比較高,從而成本高功耗大發(fā)熱嚴(yán)重[5]。本文提出了一種基于SOC架構(gòu)的智能圖像處理和外設(shè)控制系統(tǒng),所有圖像運(yùn)算和外設(shè)控制都在FPGA內(nèi)部實(shí)現(xiàn),進(jìn)而成本降低,而且不需要高速的通信接口,而FPGA并行特性可以使整個系統(tǒng)的工作頻率降低,從而發(fā)熱少。

      1 系統(tǒng)結(jié)構(gòu)設(shè)計

      1.1 系統(tǒng)結(jié)構(gòu)及原理

      實(shí)時圖像處理和外設(shè)控制系統(tǒng)包括5部分,即圖像輸入模塊、圖像輸出模塊、圖像存儲模塊、圖像運(yùn)算模塊和外設(shè)控制模塊。各個主要模塊的功能如下:

      1)圖像輸入模塊:將前級器件輸人的圖像數(shù)據(jù)按照協(xié)議進(jìn)行解析產(chǎn)生內(nèi)部可以處理的圖像時序和格式。

      2)圖像輸出模塊:對處理后的數(shù)字圖像進(jìn)行字符疊加,按照ITU-R BT.656協(xié)議顯示在屏幕上。

      3)圖像存儲模塊:對圖像數(shù)據(jù)進(jìn)行存儲,方便圖像的運(yùn)算。

      4)圖像運(yùn)算模塊:對解析后的圖像進(jìn)行預(yù)處理,并對目標(biāo)檢測、識別和跟蹤等圖像處理運(yùn)算,產(chǎn)生參數(shù)。

      5)外設(shè)控制模塊:對外部器件進(jìn)行初始化和控制,同時根據(jù)圖像運(yùn)算模塊產(chǎn)生的參數(shù)對外設(shè)進(jìn)行視野控制。

      實(shí)時圖像處理和控制系統(tǒng)微結(jié)構(gòu)如圖1所示。

      圖1 實(shí)時圖像處理和控制系統(tǒng)微結(jié)構(gòu)圖

      1.2 工作流程

      如圖2所示,程序分為BOOT系統(tǒng)引導(dǎo)程序和APP應(yīng)用程序兩種。上電以后根據(jù)模式選擇管腳跳到BOOT還是APP應(yīng)用程序。BOOT分為兩級BOOT,當(dāng)其中一級出現(xiàn)損壞時,會引起標(biāo)志寄存器變化,從而能夠根據(jù)標(biāo)志寄存器跳到另一級BOOT,保證在任何情況下都存在與主機(jī)通信的通道。當(dāng)需要對APP程序升級時,跳轉(zhuǎn)到BOOT程序,對FLASH中APP應(yīng)用程序的數(shù)據(jù)空間進(jìn)行改寫。所有程序都存儲在同一塊FLASH上面,使用地址映射的方法實(shí)現(xiàn)不同地址的程序跳轉(zhuǎn)[6]。

      圖2 工作流程圖

      2 實(shí)現(xiàn)方案

      本部分主要介紹各部分的具體作用、工作方式和部件之間的配合,使得系統(tǒng)能夠正常工作,同時根據(jù)軟件配置滿足各種場景。

      2.1 圖像輸入模塊

      前級器件每隔一段時間產(chǎn)生一個數(shù)據(jù)包,該數(shù)據(jù)包協(xié)議符合CML協(xié)議[6]。圖像輸入模塊可以對多路視頻數(shù)據(jù)進(jìn)行選擇解析,產(chǎn)生幀頭、行有效、圖像數(shù)據(jù)。CML協(xié)議如圖3所示。

      圖3 CML協(xié)議輸入時序

      CML協(xié)議的數(shù)據(jù)包分為包頭和包數(shù)據(jù)兩部分。根據(jù)有效信號的上升沿來判斷包頭起始,當(dāng)HEAD_0、HEAD_1、HEAD_2都匹配時,該數(shù)據(jù)包有效,可以進(jìn)行解析,狀態(tài)機(jī)如圖4所示。

      圖4 CML協(xié)議解析狀態(tài)機(jī)

      數(shù)據(jù)包有效后,包頭里面ATTR的屬性來識別不同種類的包數(shù)據(jù),包數(shù)據(jù)主要分為標(biāo)識和圖像兩種。軟件首先根據(jù)上報的標(biāo)識信息,來配置不同的寄存器對圖像進(jìn)行解析。比如有多路視頻輸入,可以根據(jù)軟件回讀的標(biāo)識來配置寄存器選擇混合包解析方式還是純種數(shù)據(jù)包解析方式。

      2.2 圖像輸出模塊

      圖像輸出模塊會根據(jù)軟件配置值產(chǎn)生字符標(biāo)識,該標(biāo)識與圖像處理后的圖像數(shù)據(jù)合成形成PAL格式的視頻信號輸出到顯示器[7]。

      OSD是字符標(biāo)識疊加模塊,能夠可以軟件配置適應(yīng)于不同的產(chǎn)品需求,如波門、虛十字等等。該模塊根據(jù)場景分為四大功能部分:圖形不變位置變化、圖形變化位置變化、圖形變化位置不變和圖形不變位置不變。該電路總體結(jié)構(gòu)如圖5所示(深藍(lán)色加粗為主數(shù)據(jù)通路)。

      圖5 OSD總體結(jié)構(gòu)

      上電以后,圖像不變位置變化功能塊和圖形不變位置不變功能塊圖形都只需配置一次即可,而圖形變化位置不變功能塊需要配置字符庫。計算開始以后,圖像不變位置變化功能塊根據(jù)軟件配置相應(yīng)的坐標(biāo)即可完成功能,圖像變化位置不變功能塊需要根據(jù)軟件配置的讀取字符庫的地址即可,圖像變化位置變化功能塊只需要給出坐標(biāo),邏輯即可計算出固定圖形[8]。

      PAL_SND作為視頻信號輸出端,由于PAL制式視頻采用了隔行掃描方式,每幀圖像由奇場和偶場合成。對于偶場,有效數(shù)據(jù)行就是一幀圖像的所有偶數(shù)行,而對于奇場,有效數(shù)據(jù)行就是一幀圖像的所有奇數(shù)行[9]。在FPGA上實(shí)現(xiàn)時,內(nèi)部需要兩個雙口RAM,一個用來存儲奇場有效數(shù)據(jù),一個用來存儲偶場有效數(shù)據(jù)。等寫入一幀完畢以后,再根據(jù)ITU-R BT.656協(xié)議通過計數(shù)器選擇發(fā)送消影數(shù)據(jù)、奇場有效數(shù)據(jù)和偶場有效數(shù)據(jù),合成為一幀完整的圖像。該電路總體結(jié)構(gòu)如圖6所示。

      圖6 PAL_SND總體結(jié)構(gòu)

      2.3 圖像存儲模塊

      由于目前需要計算圖像數(shù)據(jù)使用FPGA片內(nèi)的Block RAM即可滿足,暫時沒有用到FPGA片外的存儲單元(比如DDR RAM或者SDR RAM)[10],而且使用FPGA片內(nèi)的存儲器可以減少存儲器管理控制邏輯和電路板布線。

      在FPGA設(shè)計中,開發(fā)了基于綜合屬性的CBB(common building block)[11]。通過例化模板,改變參數(shù)即可實(shí)現(xiàn)初始化、不同位寬和深度的Block RAM,可以極大節(jié)約時間。以SP RAM為例,其模板如下所示:

      module FPGA_SPRAM_1000

      (

      prarameter RAM_INIT = 0,

      parameter BIN_NAME ="spram_ini.bin”,

      parameter ADDR_WIDTH = 4,

      rarameter DATA_WIDTH = 16

      )(

      Input clk,

      Input ram_en,

      Input wh_rl,

      Input [ADDR_WIDTH-1;0] addr,

      Input [DATA_WIDTH-1;0] din,

      output reg [DATA_RIDTH-1:0] dout

      );

      reg [DATA_WIDTH-1:0] ram_mem[2**ADDR_WIDTH-1:0]

      /*synthesis syn_ramstyle= “block_ram"**/;

      Initial begin

      if(RAM_INIT==0) begin

      end

      else begin

      readmemh(BIN_NANME,ram_mem);

      end

      end

      always @(posedge.clk).begin

      if(ram_en=1,b1) begin

      if(wh_rl = 1’b1) begin

      ram_mem[addr] <=din;

      end

      end

      end

      always @(posedge.clk)begir

      if(ram_en=I’b1 begin

      if(wh_rl=1'b0) begin

      dout <=ram_meml[addr]:

      end

      end

      end

      end module

      綜合屬性格式是,syn_ramstyle屬于attribute,后面value可以是register、block_ram、select_ram。綜合工具根據(jù)這三種value選擇不同的存儲單元綜合電路。其中register用寄存器搭成存儲陣列,block_ram使用18Kbit或者36Kbit的塊RAM,select_ram使用32bit或者64bit的分散式RAM。有一點(diǎn)值得注意的是,不同工具的綜合屬性是不一樣的,需要查看工具手冊用以區(qū)分。

      在FPGA中,readmemh函數(shù)能夠?qū)AM初始化。將軟件產(chǎn)生或者自己編寫的bin導(dǎo)入到FPGA電路中,對RAM進(jìn)行初始化,上電以后RAM存在預(yù)期值,從而直接進(jìn)行讀取RAM,而不需要先寫值再讀取[12]。

      2.4 圖像運(yùn)算模塊

      由于圖像預(yù)處理以及目標(biāo)檢測、識別和追蹤大部分用verilog實(shí)現(xiàn),而不是用C語言,所以在FPGA形成電路以后,工作頻率低,不必使用高性能的DSP,使用性能稍差的DSP軟核便可完成相應(yīng)的計算功能。軟件可以根據(jù)場景改變圖像運(yùn)算模塊的參數(shù)配置值,同時也能夠選擇數(shù)據(jù)通路的路徑和各子模塊的工作狀態(tài)。由于這部分內(nèi)容復(fù)雜就不展開討論,本節(jié)僅僅以中值濾波的verilog實(shí)現(xiàn)為例[13]。

      中值濾波是一種非線性數(shù)字濾波器,是圖像處理中一個常用的步驟,能夠有效地去除斑點(diǎn)噪聲和椒鹽噪聲,而且不模糊圖像的邊緣,保持圖像的清晰度。

      中值濾波器算法需要對3×3方形窗的9個像素灰度值進(jìn)行排序,然后找到中間值替換原始像素。本系統(tǒng)采用一種快速中值濾波的方法,采用二分法進(jìn)行比較,逐級交叉二分比較,利用并行和流水線的處理方法,完成一次中值濾波器需要36次比較,經(jīng)過9次比較后便可得出結(jié)果,大大加快了中值濾波的計算速度??梢愿鶕?jù)FPGA的時序,選擇插入寄存器的級數(shù),從而實(shí)現(xiàn)不同的運(yùn)算速率[13]。

      假設(shè)A>B>C>D>E>F>G>H>I,要求按照從左到有進(jìn)行由小到大排序,考慮最惡劣場景即為A、B、C、D、E、F、G、H、I,先進(jìn)行兩兩比較,最后得出計算結(jié)果。計算原理如圖7所示。

      圖7 中值濾波器比較算法

      2.5 外設(shè)控制模塊

      上電時,F(xiàn)PGA對外設(shè)器件需要進(jìn)行初始化,而且在正常工作時也需要與周邊器件交互獲取信息檢測狀態(tài),所以需要設(shè)計CPU作為主控,I2C、UART、SPI等作為外設(shè)接口。

      CPU作為主控單元,使用軟核在FPGA內(nèi)部實(shí)現(xiàn)。UART模塊能夠用于與PC機(jī)通信,執(zhí)行參數(shù)寫入以及向上位機(jī)發(fā)送數(shù)據(jù)等功能,能夠?qū)崿F(xiàn)對系統(tǒng)的FLASH程序升級、程序調(diào)試、數(shù)據(jù)回讀。I2C總線是器件互聯(lián)中常用到的一種總線,用于對外設(shè)器件如視頻編解碼芯片進(jìn)行初始化。SPI可以實(shí)現(xiàn)對符合SPI器件的讀寫控制,用于對SPI FLASH數(shù)據(jù)的改寫和讀取等[14]。

      VIC(vector interrupter controller)是中斷向量控制器,是管理多個中斷請求的模塊,能實(shí)現(xiàn)每個中斷源優(yōu)先級調(diào)整、使能和屏蔽等功能[15]。處理器配置這些中斷請求的優(yōu)先級,VIC確認(rèn)當(dāng)前中斷請求的最高優(yōu)先級,將其中最高的中斷請求提交處理器。當(dāng)處理器響應(yīng)此中斷請求以后,保護(hù)當(dāng)前程序或者中斷的現(xiàn)場,進(jìn)入其相應(yīng)的中斷服務(wù)程序,在中斷服務(wù)程序運(yùn)行結(jié)束以后,恢復(fù)現(xiàn)場。中斷向量控制器主要由中斷請求寄存器、中斷使能寄存器、中斷屏蔽寄存器、中斷服務(wù)寄存器以及控制邏輯組成,其結(jié)構(gòu)如圖8所示。

      圖8 VIC中斷框圖

      PWM_CTRL是脈沖寬度調(diào)制的控制器,能夠根據(jù)圖像處理傳來的參數(shù),利用PID算法計算出PWM的周期和脈寬,然后將該值傳遞給PWM模塊,從而PWM模塊產(chǎn)生PWM波對外部進(jìn)行控制。

      3 實(shí)驗(yàn)結(jié)果與分析

      3.1 實(shí)驗(yàn)?zāi)康?/h3>

      為了驗(yàn)證本文基于SOC架構(gòu)的智能圖像處理和外設(shè)控制系統(tǒng)的設(shè)計效果,本章將利用該平臺實(shí)現(xiàn)大尺度卷積運(yùn)算,并對其資源消耗進(jìn)行分析。同時,本文設(shè)計的硬件平臺的計算性能也將與DSP的計算性能進(jìn)行比較。

      3.2 大尺度卷積運(yùn)算的性能分析

      卷積運(yùn)算是圖像處理領(lǐng)域中非常常見的低層次處理算法。由于卷積操作在遍歷時非常耗時,這就使得嵌入式運(yùn)算時卷積核的尺寸不易過大。然而,以卷積神經(jīng)網(wǎng)絡(luò)為代表的深度學(xué)習(xí)含有大量的卷積操作。本實(shí)驗(yàn)將在SOC平臺基礎(chǔ)上設(shè)計一種大尺度的二維卷積硬件模塊并對其性能進(jìn)行分析。

      二維卷積運(yùn)算如式(1)所示。雖然原理很簡單,但二維卷積計算并不容易。對于M×N卷積核,單個點(diǎn)的卷積輸出不僅需要M×N次輸入數(shù)據(jù)的讀取,還需要M×N次乘法與M×N-1次加法。這意味著3×3卷積核需要超過1.35 GOP/S的吞吐量才能對1 280×720的圖像實(shí)時處理。隨著內(nèi)核尺寸的增加,卷積操作的計算負(fù)載和內(nèi)存訪問的復(fù)雜度呈指數(shù)增長。FPGA內(nèi)部結(jié)構(gòu)使其非常適合處理低層次像素級并行卷積操作。

      (1)

      目前,基于FPGA的卷積操作都是經(jīng)過裁剪的快速卷積。為了便于相同運(yùn)算流程下硬件平臺的性能分析,本實(shí)驗(yàn)采用文獻(xiàn)[16]提出的快速卷積運(yùn)算進(jìn)行編碼。快速卷積的表達(dá)式允許估計配置所需的最大資源并評估每個參數(shù)的影響,但占用率結(jié)果最終取決于優(yōu)化程度。根據(jù)這些性能評估值,就可以在設(shè)計的SOC平臺上對數(shù)據(jù)路徑進(jìn)行配置,并且綜合和布局布線工具可以修剪不必要的邏輯。

      表1展示了不同配置的占用資源平均值和最小時鐘周期。Post-place和Route計時結(jié)果表明,該方案具有較高的吞吐量。例如,30×30大小的8 bits卷積運(yùn)算中每個像素的計算時間是14.65 ns,這意味著每秒產(chǎn)生超過1.15億的輸出數(shù)據(jù);對于15×15的卷積核,計算一個數(shù)據(jù)只需要14.01 ns。這意味著在連續(xù)數(shù)據(jù)流和輸入數(shù)據(jù)帶寬沒有限制的情況下,并行性和流水線使得卷積核的大小對運(yùn)算時間的影響不是比例增加,但代價是需要更高的資源。

      表1 不同卷積尺寸下的資源配置

      本文設(shè)計的實(shí)時SOC架構(gòu)能夠?qū)崟r處理大尺度二維卷積運(yùn)算。由于在不同層次上設(shè)計并行運(yùn)算,該平臺可以在低時鐘頻率下實(shí)現(xiàn)高性能。同時,該設(shè)計能夠?qū)崿F(xiàn)分布式算法,即便采用FPGA通用資源也能實(shí)現(xiàn)復(fù)雜運(yùn)算。由于采用模塊化卷積操作以及系數(shù)獨(dú)立,因此該平臺設(shè)計的卷積模塊可以實(shí)現(xiàn)任何內(nèi)核大小的卷積操作。通過調(diào)整流水線深度和并行度,還可以在特定應(yīng)用程序的處理數(shù)據(jù)速率和特定FPGA器件的可用資源之間達(dá)到平衡。

      表2展示了不同卷積尺寸下DSP卷積運(yùn)算與FPGA卷積運(yùn)算的性能對比,其中DSP的芯片型號是TMS320C6678遍歷執(zhí)行執(zhí)行卷積操作,SOC架構(gòu)下的卷積操作采用傳統(tǒng)的卷積運(yùn)算,并不是采用文獻(xiàn)[16]的快速算法,便于性能比較算法一致性??梢钥闯觯捎帽疚脑O(shè)計的SOC平臺可以將計算時間鎖定在微秒范圍內(nèi),具有非常高的實(shí)時性,而DSP運(yùn)算即便開優(yōu)化也在毫秒級的計算時間。時序分析結(jié)果也表明,該架構(gòu)具有很高的吞吐量,能夠?qū)崟r處理高清圖像。通過對不同尺寸的卷積處理結(jié)果也表明內(nèi)核大小和數(shù)據(jù)分辨率的增加都不會影響處理性能。

      表2 不同平臺下卷積運(yùn)算性能對比

      4 結(jié)束語

      本文設(shè)計了基于SOC架構(gòu)的智能圖像處理和外設(shè)控制系統(tǒng),該系統(tǒng)可以在一片F(xiàn)PGA上實(shí)現(xiàn),結(jié)構(gòu)比較簡單,外設(shè)模塊功能清晰明了,而且可以根據(jù)需求的變化進(jìn)行調(diào)整,同時在片上集成實(shí)現(xiàn)了圖像處理算法使得對DSP依賴程度下降成為可能。電路設(shè)計結(jié)構(gòu)精簡,模塊化和參數(shù)化高,能夠根據(jù)場景配置不同的算法通路和參數(shù),可推廣諸多圖像處理領(lǐng)域。通過對大尺寸卷積運(yùn)算的驗(yàn)證試驗(yàn)結(jié)果表明本文設(shè)計的SOC架構(gòu)具有通用性好、可靠性高、處理速度快和控制精準(zhǔn)的特點(diǎn),能夠完全適應(yīng)高復(fù)雜的卷積運(yùn)算。

      猜你喜歡
      外設(shè)寄存器圖像處理
      Lite寄存器模型的設(shè)計與實(shí)現(xiàn)
      機(jī)器學(xué)習(xí)在圖像處理中的應(yīng)用
      電子制作(2018年18期)2018-11-14 01:48:20
      模糊圖像處理,刑事偵查利器
      圖像處理技術(shù)的實(shí)戰(zhàn)應(yīng)用
      分簇結(jié)構(gòu)向量寄存器分配策略研究*
      Photo Shop通道在圖像處理中的應(yīng)用
      河南科技(2014年1期)2014-02-27 14:04:06
      Microchip推出具備雙ADC外設(shè)的全新器件,擴(kuò)展其低成本8位PIC?單片機(jī)產(chǎn)品線
      高速數(shù)模轉(zhuǎn)換器AD9779/AD9788的應(yīng)用
      一種可重構(gòu)線性反饋移位寄存器設(shè)計
      貼身呵護(hù) 必不可少的PSP外設(shè)
      共和县| 邓州市| 晋州市| 肃宁县| 临沭县| 霍城县| 兰坪| 乌恰县| 泊头市| 尚志市| 乌海市| 临澧县| 大姚县| 紫阳县| 西安市| 大余县| 崇仁县| 儋州市| 黄梅县| 泸水县| 常德市| 呼和浩特市| 龙南县| 双鸭山市| 阳原县| 沙坪坝区| 江陵县| 灵石县| 泸水县| 津市市| 堆龙德庆县| 二手房| 来凤县| 柳林县| 眉山市| 施甸县| 灵璧县| 南开区| 黔江区| 红原县| 阜南县|