• 
    

    
    

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

      BP神經網絡圖像壓縮算法乘累加單元的FPGA設計

      2010-05-13 09:17:24雋,周詮,張敏瑞
      現代電子技術 2009年19期
      關鍵詞:神經網絡

      楊 雋,周 詮,張敏瑞

      摘 要:提出一種基于三層前饋BP神經網絡實現圖像壓縮算法的方案,該方案采用可重載IP核和VHDL代碼相結合的設計方式。對方案中重要單元-乘累加單元進行了FPGA設計,該模塊設計采用流水線處理方式,增大了數據吞吐量,減小了系統(tǒng)延時,提高了時鐘頻率,并完成了該單元的行為級功能仿真。仿真結果驗證了FPGA設計的可行性。

      關鍵詞:FPGA;神經網絡;圖像壓縮;乘累加單元

      中圖分類號:TP183文獻標識碼:A

      文章編號:1004-373X(2009)19-038-04

      FPGA Design of Multiply-accumulate Module in Image Compression

      Algorithm Based on BP Neural Network

      YANG Jun1,ZHOU Quan2,ZHANG Minrui1

      (1.School of Electronic and Information Engineering,Xi′an University of Science and Technology,Xi′an,710054,China;

      2.National Key Laboratory,China Academy of Space Technology,Xi′an,710000,China)

      Abstract:A realization scheme for image compression algorithm based on three layers Back Propagation(BP) neural network is presented,which adopts the method combining the universal IP core with the VHDL language.The FPGA design of multiply-accumulate module which is one of the important components is carried out,it is designed with pipeline,which could increase the data of processing,decrease the latency of system,raise the frequency of clock.The behavior of functional simulation for MAC is completed.The simulation results show that the design is practicable.

      Keywords:FPGA;neural network;image compression;MAC

      0 引 言

      神經網絡(Neural Networks)是人工神經網絡(Artificial Neural Networks)的簡稱,是當前的研究熱點之一。人腦在接受視覺感官傳來的大量圖像信息后,能迅速做出反應,并能在腦海中重現這些圖像信息,這不僅與人腦的海量信息存儲能力有關,還與人腦的信息處理能力,包括數據壓縮能力有關。在各種神經網絡中,多層前饋神經網絡具有很強的信息處理能力,由于其采用BP算法,因此也稱為BP神經網絡。采用BP神經網絡模型能完成圖像數據的壓縮處理。在圖像壓縮中,神經網絡的處理優(yōu)勢在于[1]:

      巨量并行性;

      信息處理和存儲單元結合在一起;

      自組織自學習功能。

      與傳統(tǒng)的數字信號處理器DSP(Digital Signal Processor)相比,現場可編程門陣列(Field Programmable Gate Array,FPGA)在神經網絡的實現上更具優(yōu)勢。DSP處理器在處理時采用指令順序執(zhí)行的方式,而且其數據位寬是固定的,因而資源的利用率不高,限制了處理器的數據吞吐量,還需要較大的存儲空間[2-4]。FPGA處理數據的方式是基于硬件的并行處理方式,即一個時鐘周期內可并行完成多次運算,特別適合于神經網絡的并行特點,而且它還可以根據設計要求配置硬件結構,例如根據實際需要,可靈活設計數據的位寬等。隨著數字集成電路技術的飛速發(fā)展,FPGA芯片的處理能力得到了極大的提升,已經完全可以承擔神經網絡數據壓縮處理的運算量和數據吞吐量。圖像壓縮是信息傳輸和存儲系統(tǒng)的關鍵技術,然而如何進行FPGA設計,以實現給定的功能已經成為神經網絡應用的關鍵[5,6]。

      基于以上原因,選擇FPGA作為三層BP神經網絡圖像壓縮算法的實現方式,提出了具體的一種實現方案,并對其中的重點單元進行了FPGA設計與仿真驗證。

      1 BP神經網絡圖像壓縮算法

      一般習慣將單隱層前饋網稱為三層前饋網,它包括輸入層、隱含層和輸出層。三層BP神經網絡結構如圖1所示,原始數據節(jié)點和重建數據節(jié)點構成節(jié)點數較大的外層(輸人層和輸出層),而中間的具有較小節(jié)點數的細腰層即構成壓縮結果。其基本思想是強迫原始數據通過細腰型網絡瓶頸,并期望在網絡的瓶頸處能獲得較為緊湊的數據表示,以達到壓縮的目的。在網絡的學習過程中,通過BP訓練算法,調整網絡的權重,使重建圖像在均方誤差意義上盡可能近似于訓練圖像。經過訓練的網絡即可用來執(zhí)行數據壓縮任務,網絡輸入層與隱含層之間的加權值相當于一個編碼器,隱含層與輸出層之間的加權相當于一個解碼器。從輸入端輸入的原始圖像數據經過神經網絡的處理,在隱含層得到的輸出數據就是原始圖像的壓縮編碼,而輸出層矢量即為解壓后重建的圖像數據[7]。

      圖1 三層前饋BP神經網絡壓縮結構

      BP神經網絡用于圖像編碼的壓縮比與輸入層和隱含層的節(jié)點數有關:

      壓縮比=輸入層節(jié)點數(n)/隱含層節(jié)點數(m)

      因此一般來說采用不同數目的隱含層神經元就可實現同一圖像的不同壓縮比。

      三層BP前饋網中輸入向量X=x(x1,x2,…,xi,…,xn)T,隱含層輸出向量Y=y(y1,y2,…,yj,…,ym)T ,輸出層輸出向量O=o(o1,o2,…,ok,…,ol)T,期望輸出向量d=d(d1,d2,…,dk,…,dl)T,輸入層到隱含層的權值向量V=v(v1,v2,…,vj,…,vm)T,其中vj為隱含層第j個神經元對應的權值向量;隱含層到輸出層的權值向量W=w(w1,w2,…,wk,…wl)T,其中wk為輸出層第k個神經元對應的權值向量;隱含層的閾值向量θ=(θ1,θ2,…,θj,…,θm)T;輸出層的閾值向量γ=(γ1,γ2,…,γk,…,γl)T。

      (1) 用小的隨機數對每一層的權值和偏差初始化,以保證網絡不被大的加權輸入飽和,并進行以下參數的設定或初始化:

      期望誤差最小值;最大循環(huán)次數;修正權值的學習速率;

      (2) 將原始圖像分為4×4或8×8大小的塊,選取其中一塊的像素值作為訓練樣本接入到輸入層,計算各層輸出:

      yj=f(netj)

      (1)

      netj=∑ni=1vijxi+θj, j=1,2,…,m;

      (2)

      ok=f(netk)

      (3)

      netk=∑mj=1wjkyj+γk, k=1,2,…,l

      (4)

      其中:f(?)為BP網絡中各層的傳輸函數。

      (3)計算網絡輸出與期望輸出之間的誤差,判斷是否小于期望誤差,是則訓練結束,否則至下一步,其中反傳誤差的計算式為:

      E=12(d-O)2=12∑lk=1(dk-ok)2

      (5)

      (4) 計算各層誤差反傳信號;

      (5) 調整各層權值和閾值;

      (6) 檢查是否對所有樣本完成一次訓練,是則返回步驟(2),否則至步驟(7);

      (7) 檢查網絡是否達到最大循環(huán)次數,是則訓練結束,否則返回步驟(2)。

      經過多次訓練,最后找出最好的一組權值和閾值,組成三層前饋神經網絡,用于該算法的FPGA設計。

      2 基于BP神經網絡的FPGA設計

      2.1 硬件設計方案

      本文提出了一種基于三層前饋BP神經網絡的圖像壓縮算法的實現方案,包括三層BP神經網絡圖像壓縮算法編碼器以及譯碼器的實現方案。

      由三層BP前饋神經網絡圖像壓縮的結構圖可以看出,其解碼器是編碼器的逆過程,在實現編碼器之后,實現解碼器非常方便,故本文重點在于解碼器的FPGA設計。

      基于三層BP前饋神經網絡圖像壓縮算法的編碼器的FPGA設計方案如圖2所示。

      圖2 三層BP神經網絡圖像壓縮算法編碼器結構圖

      其中,在數據預處理部分,首先將原始圖像分成n×n的小塊,以每一小塊為單位進行歸一化[8]。歸一化的目的,主要有以下兩點:

      (1) BP網絡的神經元均采用Sigmoid轉移函數,變換后可防止因凈輸入的絕對值過大而使神經元輸出飽和,繼而使權值調整進入誤差曲面的平坦區(qū);

      (2) Sigmoid轉移函數的輸出在-1~+1之間,作為信號的輸出數據如不進行變換處理,勢必使數值大的輸出分量絕對誤差大,數值小的輸出分量絕對誤差小。網絡訓練時只針對輸出的總誤差調整權值,其結果是在總誤差中占份額小的輸出分量相對誤差較大,對輸出量進行尺度變化后這個問題可迎刃而解。

      歸一化后得到以每小塊的灰度值為列向量組成的待壓縮矩陣,將該矩陣存儲在RAM里,然后以每一列為單位發(fā)送給先入先出寄存器FIFO(First Input First Output);由FIFO將向量x1,x2,…,xn以流水(pipeline)方式依次傳入各乘累加器MAC(Multiply-Accumulate),相乘累加求和后,送入LUT(Lookup Table)得到隱層相應的節(jié)點值,這里LUT是實現Sigmoid函數及其導函數的映射[9]。

      在整個電路的設計中,采用IP(Intellectual Property)核及VHDL代碼相結合的設計方法,可重載IP軟核,具有通用性好,便于移植等優(yōu)點,但很多是收費的,比如說一個高性能流水線設計的MAC軟核,所以基于成本考慮,使用VHDL語言完成MAC模塊的設計,而RAM和FIFO模塊則采用免費的可重載IP軟核,使整個系統(tǒng)的設計達到最佳性價比。

      在壓縮算法的實現中,乘累加單元是共同部分,也是編碼和譯碼器FPGA實現的關鍵。

      2.2 乘累加器MAC的流水線設計及其仿真

      流水線設計是指將組合邏輯延時路徑系統(tǒng)地分割,并在各個部分(分級)之間插人寄存器暫存中間數據的方法。流水線縮短了在一個時鐘周期內信號通過的組合邏輯電路延時路徑長度,從而提高時鐘頻率。對于同步電路,其速度指同步電路時鐘的頻率。同步時鐘愈快,電路處理數據的時間間隔越短,電路在單位時間內處理的數據量就愈大,即電路的吞吐量就越大。理論而言,采用流水線技術能夠提高同步電路的運行速度[10]。

      MAC電路是實現BP神經網絡的重要組成部分,在許多數字信號處理領域也有著廣泛應用,比如數字解調器、數字濾波器和均衡器,所以如何提高MAC的效率和運算速度具有極高的使用價值。

      本方案采用的MAC設計以四輸入為例。

      四輸入的MAC電路必須執(zhí)行四次乘法操作和兩次加法操作,以及最后的兩次累加操作。如果按照非流水線設計,完成一次對輸入的處理,需要這三步延遲時間的總和,這會降低一個高性能系統(tǒng)的效率。而采用流水線設計,則可以避免這種延遲,將MAC的操作安排的像一條裝配線一樣,也就是說,通過這種設計它可以使系統(tǒng)執(zhí)行的時鐘周期減小到流水線中最慢步驟所需的操作時間,而不是各步驟延遲時間之和,如圖3所示。

      圖3 基于流水線設計的四輸入MAC結構圖

      在第一個時鐘邊沿,第一對數據被存儲在輸入寄存器中。在第一個時鐘周期,乘法器對第一對數據進行乘法運算,同時系統(tǒng)為下一對數據的輸入作準備。在第二個時鐘邊沿,第一對數據的積存儲在第一個流水線寄存器,且第二對數據已經進入輸入寄存器。在第二個時鐘周期,完成對第一對數據積的兩次加法操作,而乘法器完成第二對數據的積運算,同時準備接收第三隊數據。在第三個時鐘邊沿,這些數據分別存放在第二個流水線寄存器,第一個流水線寄存器,以及輸入寄存器中。在第三個時鐘周期,完成對第一對數據和之前數據的累加求和,對第二對數據的兩次加法操作,對第一對數據的乘法運算,并準備接收第四對數據。在第四個始終邊沿,累加器中的和將被更新。

      在本設計方案中,測試仿真平臺選用的FPGA芯片為ALTERA公司Cyclone Ⅱ系列的EP2C8芯片,它采用90 nm的制造工藝,擁有8 256個邏輯單元,36個M4K隨機只讀存儲器,2個數字鎖相環(huán),以及18個硬乘法器等豐富資源。仿真工具使用業(yè)界流行的Mentor Graphics公司的仿真軟件Modelsim 6.1f。

      對設計進行驗證時,常見的方法是在模擬時施加輸入激勵信號,然后“讀”該設計的輸出信號,它的主要缺點是隨著模擬器的不同而不同。為了克服此缺點,采用的測試方法是用VHDL編寫一個測試模型發(fā)生器,稱為Testbench,它的優(yōu)點是通用性好,靈活性強,可以隨時更改輸入激勵,已得到不同的仿真結果。

      在對該MAC模塊進行測試的過程中,涉及輸入數據的轉化問題,如前所述,在本神經網絡中,輸入數據歸一化后,集中在-1~+1之間,所以處理時必須進行轉化,最后采用16位補碼形式的定點二進制表示法,由于在求和中可能會產生溢出,還必須包含一個溢出狀態(tài)信號。

      輸入數據轉換16位補碼的仿真波形如圖4所示。

      圖4 輸入數據轉換16位補碼仿真波形圖

      16位補碼轉換原輸入實數的仿真波形如圖5所示。

      圖5 16位補碼轉換為實數的仿真波形圖

      在完成了對輸入、輸出數據的轉換之后,編寫Testbench(測試臺)程序,對基于流水線設計的四輸入MAC進行行為級仿真,仿真波形如圖6所示。

      圖6 MAC行為級功能仿真圖

      綜上所述,在基于流水線的乘法設計中,雖然每一步操作后都加入了寄存器,消耗了更多的資源,但卻可以將系統(tǒng)延時降低到最慢步驟所需要的時間,極大地提高了同步電路的運算速度。

      3 結 語

      介紹了基于三層前饋BP神經網絡的圖像壓縮算法,提出了基于FPGA的實現驗證方案,詳細討論了實現該壓縮網絡組成的重要模塊MAC電路的流水線設計。在對BP神經網絡的電路設計中,對傳輸函數及其導函數的線性逼近也是近來研究的熱點之一,本文使用的壓縮查找表雖然能夠滿足設計要求,但仍然消耗了大

      量資源。該研究結果對整個壓縮解壓縮算法的實現以及多層神經網絡的相關研究工作提供了參考。

      參考文獻

      [1]董長虹.Matlab神經網絡與應用[M].2版.北京:國防工業(yè)出版社,2007.

      [2]趙宏怡.DSP技術與應用實例[M].北京:電子工業(yè)出版社,2003.

      [3]劉艷萍.DSP技術原理及應用教程[M].北京:北京航空航天大學出版社,2005.

      [4]蘇濤,藺麗華.DSP實用技術[M].西安:西安電子科技大學出版社,2005.

      [5]田華,馮勤群,胡喜飛.基于DSP和FPGA的高速圖像壓縮系統(tǒng)設計[J].電子工程師,2005,31(8):51-52.

      [6]張秀艷.基于FPGA的神經網絡硬件實現中的關鍵問題研究[J].科技情報開發(fā)與經濟,2005,15(5):273-275.

      [7]馮春麗.基于改進型BP網絡圖像壓縮方法的研究[D].錦州:遼寧工學院,2007.

      [8]張銳菊,周詮.神經網絡用于遙感圖像壓縮的一些研究結果[J].中國體視學與圖像分析,2003,8(3):183-186.

      [9]Ferreira P,Ribeiro P,Antunes A,et al.Artificial Neural Networks Processor:A Hardware Implementation Using a FPGA[A].Proceedings of the 4th International Conference on Field-Programmable Logic and Applications[C].Antwerp,2004:1 084-1 086.

      [10]Ashenden P J.The Designer′s Guide to VHDL[M].Second Edition.USA:EIsevicer Science.2002.

      猜你喜歡
      神經網絡
      神經網絡抑制無線通信干擾探究
      電子制作(2019年19期)2019-11-23 08:42:00
      基于神經網絡的拉矯機控制模型建立
      重型機械(2016年1期)2016-03-01 03:42:04
      復數神經網絡在基于WiFi的室內LBS應用
      基于支持向量機回歸和RBF神經網絡的PID整定
      基于神經網絡分數階控制的逆變電源
      基于GA-BP神經網絡的光伏陣列MPPT研究
      電測與儀表(2014年2期)2014-04-04 09:04:04
      思茅市| 乌拉特前旗| 苏尼特右旗| 江源县| 绩溪县| 吕梁市| 德化县| 延川县| 洪江市| 清苑县| 云霄县| 故城县| 双流县| 资中县| 阿巴嘎旗| 博湖县| 阿拉善左旗| 榆林市| 湘乡市| 扎囊县| 开江县| 桐庐县| 怀远县| 章丘市| 广灵县| 余江县| 昌江| 农安县| 马边| 昔阳县| 万盛区| 海安县| 馆陶县| 手游| 新蔡县| 灌南县| 梁河县| 德庆县| 新乡县| 库车县| 弋阳县|