基於FPGA的卷積層並行加速方案

2020-11-29 電子產品世界

作者 / 肖昱 姚天堯 顧嘉盼 張延軍 北京理工大學 信息與電子學院(北京 100081)

本文引用地址:http://www.eepw.com.cn/article/201802/375426.htm

*第一屆(2016-2017)全國大學生集成電路創新創業大賽全國總決賽FPGA設計方向獲獎作品

  卷積神經網絡(Convolutional Neural Networks)是一種主要應用於圖像處理領域的人工智慧算法。尤其是在計算機視覺領域,CNN在包括識別(recognition)、檢測(detection)、分割(segmentation)等很多任務中佔主流地位。

  卷積神經網絡的基本元素:卷積層(convolutional layer)、池化層(pooling)、激活函數(activation)、全連接層(fully-connected layer)。卷積神經網絡(例如LeNet[3])對於神經網絡(Neural Networks)最大的創新在於卷積層。卷積層在整幅圖像上使用相對很小的卷積核(convolutional kernel)進行特徵檢測,實現了將原始圖像直接輸入神經網絡而不會引發維數災難。克服了之前基於手工特徵和分類器的系統需要分別訓練的缺點,使得圖像分類任務實現了端到端(end-to-end)。

  想要將卷積神經網絡投入實際應用,例如在移動端利用伺服器訓練好的卷積核參數進行實時的物體或者人臉識別,需要對CNN進行許多改進。其中,卷積層運算需要消耗大量計算資源,使用串行計算方式速度不快。因此,提高CNN卷積層的計算速度是CNN進行實際應用時需要解決的一個重要問題。

  1設計標準與約束

  1.1設計問題

  「將上述算法在硬體平臺上實現並優化,主要考慮總線帶寬,內部緩存,Pipeline設計,計算單元等因素,給出不同緩存下,總線帶寬計算公式和典型案例下的數據。」

  由賽題分析,本設計方案主要分為兩部分:實現方案、優化方案。實現方案涉及系統架構的設計、計算單元的設計等;優化方案涉及總線帶寬和片上緩存在不同情況下的設計等。

  1.2設計標準

  競賽題目中提到的標準:

  1)運算速率:100GMAC,每秒100G次乘加運算;

  2)輸入圖像數量:1024 channel,1024個輸入feature map

  3)卷積核數量:1024,1024個輸出feature map

  4)輸入輸出圖像解析度:150*150

  我們對細節進行的假設:

  1)數據寬度:8位,像素點取值範圍(0~255)

  2)卷積核尺寸:3*3

  1.3約束條件

  本設計方案基於Altera公司的Stratix IV EP4SGX230KF40C2,其有兩項硬體資源約束:

  1)硬體乘法器;

  2)片上RAM;

  本設計方案在設計時對不同DDR在不同數據總線帶寬下給出相應的緩存方案,在實現中使用DDR2 SRAM。實現中的DDR2數據總線帶寬通過實驗測出,其他類型的DDR數據帶寬通過查閱資料進行估算。圖一列出了Micron公司不同DDR在FPGA平臺上的參數,我們將根據這些數據進行隨後的計算。

  圖0 不同DDR SRAM參數(Micron)

  2設計總體架構

  2.1硬體架構

  我們會使用如下圖中的總體架構:數據開始存放在DDR中;由DDR讀寫IP核將數據從DDR中讀出;數據由DDR讀寫IP通過FIFO進行跨時鐘域操作送給片上RAM緩存;再將數據由RAM中讀出送給並行計算單元陣列進行卷積運算,得到運算結果;運算結果暫存在片上RAM中;再從RAM中將運算結果讀出,通過FIFO送給DDR讀寫IP寫回DDR中。

  圖1 系統架構設計

  在設計的過程中,我們將在計算單元和緩存中採取兩種不同層次的數據復用策略,以降低系統對於帶寬資源的需求。

  2.2優化問題的數學模型

  我們認為,對卷積運算進行加速的關鍵在於:在充分利用讀寫帶寬的前提下,通過使用片上緩存和並行策略,儘量提高系統的並行度以達到設計標準。

  顯然地,系統對於DDR的讀寫速度將遠慢於並行運算的速度,所以最大化地利用讀寫帶寬將是不可避免的。根據查詢到的資料,以任何現有內存設備的讀寫速度,都是不能支持100GMAC的串行卷積運算的。因此,並行地進行卷積運算也將是不可避免的。此時,帶寬資源還有可能不足,可以使用片上RAM緩存對已讀取的數據進行復用以進一步減小對於帶寬的需求。

  總而言之,我們希望最大化地利用帶寬資源,並使用並行設計和RAM緩存使系統達到100GMAC的設計標準。

  考慮到片上RAM成本較高,目前的FPGA普遍不具備很大的片上RAM容量,所以在設計中我們希望使用儘可能少的片上RAM資源。由此,可以用數學語言描述本次設計中的優化問題:

  (定義復用率X:若一次讀取的一個輸入圖像與若干數量的卷積核進行卷積運算,則此卷積核的數量佔全部卷積核數量的比例為X。)

  從以上問題中可以分析得出,RAM資源需求是復用率X的線性函數;運算速率與X無關;數據速率是X的反比例函數。因此本優化問題是關於變量X的非線性優化問題。

  3設計細節分析

  3.1計算單元設計:串行輸入,並行計算

  3.1.1計算單元設計的目標:數據復用

  在卷積運算的計算單元中,我們希望對數據進行復用,

  並行計算的可能性根植於卷積層的設計中。在全連接的神經網絡的每一層中,每一個輸入和每一個輸出之間都有一個權重(w),每一個輸出都與全部輸入的信息相關;而在卷積神經網絡中,存在著卷積核的共用(shared-weight),這使得每個輸出圖像都包含著一個卷積核對於所有輸入圖像中特徵提取的信息。具體而言,每個卷積核會對所有輸入圖像的各個區域進行運算處理。於是這種卷積核在卷積計算過程中的重複使用,為並行計算提供了可能。如果我們能夠由這種重複使用的性質,儘量減少對於卷積核數據的讀取次數,那麼卷積運算的時間將大大減少。

  輸入圖像在每一個點上的數據參與卷積運算的次數(乘法)是卷積核的尺寸(3×3),不僅卷積核的數據在串行計算的過程中被反覆讀取,輸入圖像的數據也在被反覆讀取。在串行計算中,卷積計算的滑動窗口(sliding window)在讀取端,每一個點都被反覆讀取了相應的次數。我們希望把通過設置一些寄存器,將滑動窗從數據的讀取端移動到計算端,實現對輸入圖像的每一個點進行一次數據讀取就完成其在滑動窗中所需進行的所有乘法運算(9次)。也就是說,我們希望能夠串行得從內存中讀取數據,每一個點僅進行一次讀取就足以完成其在卷積運算的滑動窗中所要進行的9次乘法。

  3.1.2計算單元的設計

  現在,我們暫且假設從內存中讀取來的數據是均勻的流(每個時鐘周期讀取一個像素點的數據);我們也暫且假設卷積核是不更換的,也就是指僅有一個卷積核的情形。本節中,我們對於數據是均勻的流以及只有一個卷積核的情況,設計一個高效的並行計算單元。

  在計算端設置一些緩存以實現卷積核數據和輸入圖像數據的復用是通過圖2和圖3中的設計實現的。

  圖2 計算單元(processing element)的設計

  圖3 計算子(processing unit)的設計

  3.1.3計算單元的工作原理

  卷積核的值直接被保存在計算子的寄存器中,而輸入圖像從由SRAM構成的移存器一端輸入(同時送給第三行的寄存器)。由SRAM移存輸出的圖像數據也分別送向第一行和第二行的寄存器。每行的計算子的寄存器之間也被設計為移存關係,數據由第三列送向第二列,再送向第一列。

  在這種設計下,每一次計算單元在一個時鐘周期可以完成9次乘加運算。由此,可以根據設計標準,在合理的時鐘頻率下得到系統所需要達到的並行度。經過綜合考慮,並行度n為64時可以保證時鐘周期的合理且達到100GMAC的運算速率。可以求得所需的時鐘周期:

  3.2優化緩存和帶寬

  3.2.1使用緩存實現進一步數據復用

  在100GMAC的計算速度下,通過簡單的計算可以得知,如果不對已讀取的輸入圖像數據與多個卷積核進行運算,則不可滿足帶寬資源的需求。根據公式②和圖像和卷積核的尺寸以及運算速率得出這種情況下系統所需的最小數據速率:

  以上這個大約11G的帶寬需求是難以滿足的。因此,必須降低系統對於帶寬的需求,片上RAM提供了一種合理的途徑。

  通過RAM降低帶寬需求的想法如下:卷積核的尺寸遠小於輸入圖像的尺寸,將大量的卷積核數據儲存在片上的代價並不大。如果在讀取完一個輸入圖像後,將其與若干個不同的卷積核進行運算,相當於將同樣的數據復用了若干次,使得DDR讀寫IP有更多時間進行下一幅輸入圖像數據的讀取。這樣就降低了系統對於帶寬的要求。需要注意的是,同一幅輸入圖像與不同的卷積核進行運算的結果需要分別儲存在片上,這就造成了對於片上RAM的需求。

  3.2.2不同復用率下的緩存和帶寬需求

  正如之前所述,如何在帶寬資源需求和片上RAM資源需求之間取捨是本次設計的重點。

  下面根據查詢到的數據大致計算不同的復用策略下所需的最小片上RAM容量。

  表1 不同復用率下的緩存和帶寬需求

  (*第一列表示不同的並行策略,X表示每次讀入一幅輸入圖像,與其進行卷積運算的卷積核數量佔全部卷積核數量(1024)的比例;第二列表示不同並行策略下所需的最小片上RAM空間;第三列表示不同策略下的最小數據讀取速率)

  3.2.3不同數據帶寬下的最小緩存需求

  下面根據DDR產品(以Micron公司為例)的用戶說明中的數據對於四種DDR在不同運行設置下的數據帶寬進行計算,並估計最大復用率時所需的片上RAM容量:

  表2 不同DDR的最低緩存需求

  (*各列交替表示不同類型的DDR的讀寫速度和相應的最小片上RAM容量;各行表示各類DDR在不同工作狀態下的不同情況:Long Max(16位寬數據總線,最大數據速率),Long Avr(16位寬數據總線,平均數據速率),Short Max(8位數據總線,最大數據速率),Short Avr(8位寬數據總線,平均數據速率))

  4實現結構

  4.1 DDR2的接口設計和測試

  「我是誰?我從哪裡來?我要到哪裡去?」這是哲學三大終極問題。對於數字系統架構設計,亦是如此:我們不能僅僅關注數據的固有性質和系統的運算方式,更不能忽視數據的讀寫速度和系統的存儲結構。

  在本系統中,輸入圖像、卷積核和運算結果都存儲在DDR中,而且輸入圖像的規模和數據帶寬是比較大的,因此DDR的傳輸速率勢必會對整個系統的效率產生非常大的影響。所以設計DDR接口與系統總線並測試其傳輸速率是非常有必要的。

  在Altera FPGA中,使用Avalon總線接口可以簡單高效的組件系統,Avalon總線接口適用於高速數據流,讀寫寄存器,存儲器,以及控制片外設備。這些標準接口在Qsys中有效地設計到組件中,其架構示意圖如圖4所示。

  圖4 Avalon總線示意圖

  在此圖中,NIOS II處理器使用Avalon-MM接口存取片內組件的控制寄存器和狀態寄存器。分散集中DMA使用Avalon-ST接口發送和接收數據。四個組件包括利用軟體運行在NIOS II處理器上的中斷接口服務程序。PLL通過Avalon clock sink接口接受一個時鐘,並提供兩個時鐘源。兩個組件包括Avalon-TC接口存取片外存儲器。最後,DDR控制器使用Avalon conduit接口存取外部DDR3存儲器。

  DDR-SDRAM存儲體採用突發傳輸模式[2]。在此模式下,把多個傳遞作為一個單元執行,不是獨立地處理每個字。突發可提高從器件埠在一個時間處理多個字時達到較大效率的能力。突發中的純粹作用是為了突發的持續而鎖定仲裁。支持讀寫突發的Avalon-MM接口,必須都支持讀寫突發。其讀寫時序規則如圖5和圖6所示。

  圖5 Avalon Burst模式 讀時序

  時序圖中的序號,表示隨後的變化:

  1. 在CLK上升沿之後,主器件斷言address(A0),burstcount,和read。從器件斷言waitrequest,引起除beginbursttransfer之外的所有輸入直到另一個時鐘周期保持不變。

  2. 在CLK上升沿從器件捕獲A0和burstcount。在下一個周期可啟動新的傳遞。

  3. 主器件B驅動address(A1),burstcount和read。從器件斷言waitrequest,引起除beginbursttransfer之外的所有輸入保持不變。此時,從器件最早從第一個讀請求返回讀數據。

  4. 從器件傳送有效的readdata和斷言readdatavalid,給主器件A傳遞數據的第一個字。

  5. 給主器件A的第二個字已經傳遞。從器件解除readdatavalid暫停讀突發。從器件埠可保持解除readdatavalid任意時鐘周期數。

  6. 給主器件B的第一個字已經返回。

  圖6 Avalon Burst模式 寫時序

  時序圖中的序號,表示隨後的變化:

  1. 主器件斷言address,burstcount,write,並驅動writedata的第一個單元。從器件立即斷言waitrequest,表示其沒有準備好進行傳遞。

  2. waitrequest為低電平。從器件捕獲addr1,burstcount和writedata的第一個單元。在傳遞隨後的周期,address和burstcount都被忽略。

  3. 在CLK時鐘上升沿從器件捕獲數據的第二個單元。

  4. 突發被暫停直到write被解除。

  5. 在CLK時鐘上升沿從器件捕獲數據的第三個單元。

  6. 從器件斷言waitrequest。在響應中,所有輸出直到另一個時鐘周期都保持不變。

  7. 在CLK時鐘上升沿從器件捕獲數據的最後一個單元。從器件寫突髮結束。

  按照以上規範設計DDR2接口[3],仿真結果如圖7所示。

  圖7 DDR讀取的ModelSim-Altera仿真波形

  在圖7中,可以看到讀取6個Bank的64位數據需要16個時鐘周期的時間,因此可以計算DDR的讀取速率為

  4.2系統實現設計結構圖

  圖7 系統實現設計結構

  (*IP READ/IP WRITE分別為讀端和寫端控制DDR IP的狀態機,均通過AVALON標準總線與DDR IP相連;FIFO用於跨時鐘域傳輸數據,DDR接口部分與卷積運算部分使用不同的時鐘。)

  5實驗

  5.1 MATLAB算法驗證

  我們實現對於卷積算法進行了MATLAB驗證,並使用隨機生成的卷積核對灰度圖像進行了卷積運算,結果如圖5所示。

  圖8 卷積算法的MATLAB驗證

  5.2計算單元設計的MATLAB驗證

  為了證實卷積計算單元設計的可行性,我們在MATLAB上編寫了計算單元的代碼,並使用MNIST數據集中的圖片和隨機生成的卷積核進行了實驗。實驗結果如圖6所示。

  圖9 計算單元設計的MATLAB驗證

  參考文獻:

  [1]中星微電子集團:深度學習——卷積神經網絡(CNN)優化

  [2]Chen Zhang, Peng Li, Guangyu Sun, Yijin Guan, Bingjun Xiao, Jason Cong. Optimizing FPGA-based Accelerator Design for Deep Convolutional Neural Networks.

  [3] Y. Lecun, L. Bottou, Y. Bengio, and P. Haffner. Gradient-based learning applied to document recognition. Processing of the IEEE, 86(11):2278-2324, 1998.

  [4] Xilinx/Micron: Micron DRAM Memory Support for Xilinx Platforms

  附錄

  附錄A:卷積算法MATLAB驗證代碼:

 %small scale test for convolutional unit

  %fixed size: 224*300, image: 'bbtest.jpg', fixed number of channels: in:3, out:3

  %read image

  im = imread('bbtest.jpg');

  im_input = permute(im, [3, 1, 2]); %exchanging dimension

  %initialize kernel

  kernels = rand(3, 3, 3, 3) .* 0.005 %kernel size: 3*3, range: 1~0.005

  %initialize output figure

  output_fm = zeros(3, 300, 224);

  %image processing

  R = 300, C = 224, M = 3, N = 3, S = 1; %size of input image and input, output channels

  for row = 1:R-3

  for col = 1:C-3

  for to = 1:M

  for ti = 1:N

  for i = 1:3

  for j = 1:3

  output_fm(to, row, col) = output_fm(to, row, col)...

  + kernels(to, ti, i, j) * im_input(ti, S * row + i, S * col + j);

  end

  end

  end

  end

  end

  end

  %show the images

  output_fm;

  output_show = permute(output_fm, [2, 3, 1]);

  imshow(output_show);

  附錄B:計算單元設計MATLAB驗證代碼:

  % testing the processing element

  % time: 13:40; 3.16.2017

  % initializing buffers

  procwin = zeros(3, 3);

  kernel = rand(3, 3) * 0.005;

  buffer1 = zeros(25);

  buffer2 = zeros(25);

  R_pixel = zeros(1,784); % cauculating result for single pixels

  % loading data

  data = ones(784);

  im = imread('test.jpg');

  data = reshape(im,1,784);

  % initializing data

  procwin(1, :) = data(1: 3);

  buffer1 = data(4: 28);

  procwin(2, :) = data(29: 31);

  buffer2 = data(32: 56);

  procwin(3, :) = data(57: 59);

  %cauculating

  for i = 60:784

  % cauculating pixel level result

  for m = 1:3

  for n = 1:3

  R_pixel(i-59) = R_pixel(i-59) + procwin(m,n) * kernel(m,n);

  end

  end

  % moving data in processing window

  reg2 = procwin(2, 1); % preserve for moving into ram

  reg3 = procwin(3, 1); % preserve for moving inro ram

  for j = 1:2

  procwin(:, j) = procwin(:, j+1);

  end

  procwin(1, 3) = buffer1(1);

  procwin(2, 3) = buffer2(1);

  procwin(3, 3) = data(i);

  % moving data in ram

  for j = 1:24

  buffer1(j) = buffer2(j+1);

  buffer2(j) = buffer2(j+1);

  end

  buffer1(25) = reg2;

  buffer2(25) = reg3;

  end

  im_output = reshape(R_pixel,28,28);

  imshow(im_output);

相關焦點

  • 基於FPGA的高速卷積硬體設計及實現
    根據式(9),給出了一種基於快速傅立葉變換(FFT)的卷積的實現方法,如圖1所示。2 基於FPGA的高速卷積的實現隨著電子技術的發展,現階段FFT硬體實現的方法主要有ASIC,DSP和FPGA這3類。專用FFT處理晶片ASIC,例如PDSPl6510,這類晶片的主要特點是技術簡單。
  • 深度卷積神經網絡CNNs的多GPU並行框架 及其在圖像識別的應用
    Deep CNNs的單機多GPU模型並行和數據並行框架是騰訊深度學習平臺的一部分,騰訊深度學習平臺技術團隊實現了模型並行和數據並行技術加速Deep CNNs訓練,證實模型拆分對減少單GPU上顯存佔用有效,並且在加速比指標上得到顯著收益,同時可以以較快速度訓練更大的深度卷積神經網絡,提升模型準確率。
  • 清華大學的存算一體化架構和並行加速方法專利
    基於這種情況,清華大學團隊於2019年11月7日提出一項名為「基於憶阻器的神經網絡的並行加速方法及處理器、裝置」的發明專利(申請號:201911082236.3),申請人為清華大學。此專利針對複雜神經網絡的運算,提供了一種基於憶阻器的存算一體化架構和並行加速方法,並在該系統架構上高效運行了卷積神經網絡。
  • 深度卷積神經網絡CNNs的多GPU並行框架及其應用
    5.CNNs網絡的模型劃分 5.1.基本模型劃分方法模型並行的來源是Deep CNNs網絡只在特定層(如輸入層、全連接層)與其他層有全面的連接,而其他較為獨立的直線連接關係即可作為模型的可並行部分。
  • Nature重磅:用「光」加速AI,基於光的並行卷積神經網絡有望徹底...
    研究結果首次證明,這些設備可以快速並行處理信息,而這種能力是現有電子晶片無法做到的。 研究人員表示,通過這種利用光的獨特屬性來加速 AI 處理的方式,可能會加速光學計算領域的變革。
  • 基於FPGA的並行掃頻DDS的實現
    為使用並行處理,首先需要對程序進行並行化處理,也就是說將工作各部分分配到不同處理機中。而主要問題是並行是一個相互依靠性問題,而不能自動實現。此外,並行也不能保證加速。但是一個在 n 個處理機上執行的程序速度可能會是在單一處理機上執行的速度的 n 倍。
  • 基於FPGA IP核的FFT實現
    這裡從Altera IP核出發,建立了基4算法的512點FFT工程,對不同參數設置造成的誤差問題進行分析,並在EP2C70F896C8器件上進行基於Quartus II的綜合仿真,得到利用FFT IP核的FFT算法高效實現,最後利用Matlab進行的計算機仿真分析證明了工程結果的正確性。
  • 基於FPGA的實時中值濾波器硬體實現
    文獻[3]、[4]提出了鄰域圖像幀存的存儲結構,該結構充分利用了圖像幀存的數據結構轉換特性,並行高速提供鄰域圖像數據,配以FPGA作為並行處理器,高速實時地實現了中值濾波。但是以上研究都是基於標清圖像的中值濾波器,處理的圖像大小一般為256×256、512×512的灰度圖等,很少有實現高清圖像的中值濾波器。
  • 科學家開發基於光的並行卷積神經網絡有望徹底「變革」AI硬體
    (來源:Nature)據論文描述,研究人員開發了一種新的方法和架構,通過使用基於光的處理器或光子處理器,將處理和數據存儲結合到單個晶片上。研究結果首次證明,這些設備可以快速並行處理信息,而這種能力是現有電子晶片無法做到的。研究人員表示,通過這種利用光的獨特屬性來加速 AI 處理的方式,可能會加速光學計算領域的變革。
  • 基於FPGA的複數浮點協方差矩陣實現
    此時,基於複數運算的協方差矩陣的實現就成為一種必然。 因此,在充分應用FPGA並行處理能力的同時,為了擴展數據處理的動態範圍,減少數據溢出機率,避免數據截斷所產生的誤差,提高協方差矩陣的運算精度以及擴展該運算的通用性。本文以空間譜估計作為研究背景,研究了複數據運算和浮點運算的特點,提出了一種適用於任何陣列流型、任意陣元的基於複數浮點運算的協方差矩陣的FPGA實現方案。
  • FPGA加速N粒子重力並行模擬實現和仿真案例
    FPGA加速N粒子重力並行模擬實現和仿真案例 Pynq 發表於 2020-12-03 15:18:33 通過使用以200 MHz運行的8個並行浮點加速器,展示小型ZU3EG
  • 基於FPGA的結構光圖像中心線提取
    利用現場可編程門陣列器件(FPGA)的流水線技術以及並行技術的硬體設計來完成運算,保證了光條紋中心點的實時準確提取。實驗表明採用FPGA 實現圖像處理的專用算法能滿足圖像數據進行實時準確提取的要求。利用現場可編程門陣列器件(FPGA)的流水線技術以及並行技術的硬體設計來完成運算,保證了光條紋中心點的實時準確提取。實驗表明採用FPGA 實現圖像處理的專用算法能滿足圖像數據進行實時準確提取的要求。
  • 基於FPGA的RCN226絕對式編碼器通信接口設計
    絕對式編碼器廠家大多為其編碼器配套了接收晶片,實現串行編碼到並行編碼的轉換,便於控制器的讀取操作。但是此類晶片通常價格比較昂貴,大約佔絕對式編碼器價格的四分之一。目前國內外高端交流伺服系統中普遍採用FPGA+DSP結構。
  • 基於FPGA的無損圖像壓縮系統設計
    編者按:  摘要:本文簡要介紹了圖像壓縮的重要性和常用的無損圖像壓縮算法,分析了快速高效無損圖像壓縮算法(FELICS)的優勢,隨後詳細分析了該算法的編碼步驟和硬體實現方案,最後公布了基於該方案的FPGA性能指標。
  • 基於DSP和FPGA的機器人聲控系統設計與實現
    系統硬體分為語音信號的採集和播放,基於dsp的語音識別,fpga動作指令控制、步進電機及其驅動、dsp外接快閃記憶體晶片,jtag口仿真調試和鍵盤控制幾個部分。語音信號特徵向量採用mel頻率倒譜係數mfcc(mel frequency cepstrum coeficient的提取,mfcc參數是基於人的聽覺特性的,他利用人聽覺的臨界帶效應[3],採用mel倒譜分析技術對語音信號處理得到mel倒譜係數矢量序列,用mel倒譜係數表示輸入語音的頻譜。
  • 從全卷積網絡到大型卷積核:深度學習的語義分割全指南
    >  修改Imagenet預訓練網絡並應用於語義分割領域  使用解卷積層進行上採樣  使用跳躍連接,改善上採樣的粒度程度  相關解釋:  本論文的關鍵點是分類網絡中的全連接層可視為使用卷積核覆蓋整個輸入區域的卷積操作。
  • 一種基於FPGA的實時紅外圖像預處理方法
    針對這一問題,提出一種基於FPGA的實時紅外圖像預處理方法。該方法採用了流水線技術來並行完成非均勻校正、空間濾波、直方圖統計等多個紅外圖像預處理算法,對系統結構進行了改進和優化。經過實驗測試驗證,該方法合理可行,能夠實時高效地完成紅外圖像預處理任務。與DSP圖像預處理系統相比可以節約將近50%的處理時間。
  • 賽靈思推出Spartan-6 FPGA系列
    鑑於此,全球可編程邏輯解決方案領導廠商賽靈思公司(Xilinx, Inc. (NASDAQ: XLNX))日前推出新一代低成本Spartan® 現場可編程門陣列(FPGA)系列產品,可幫助設計小組實現這一目標。 新推出的Spartan-6 FPGA系列樣品現在即可提供。
  • 基於fpga二維小波變換核的實時可重構電路
    項目背景及可行性分析本文引用地址:http://www.eepw.com.cn/article/266432.htm  2.1 項目名稱及摘要:  基於fpga二維小波變換核的實時可重構電路  現場可編程門陣列為可進化設計提供了一個理想的模板
  • 基於完全卷積神經網絡的多模態嬰兒腦圖分割技術
    現有的等強度組織分割方法通常在單一 T1、T2 或部分各向異性(FA)模態或其簡單疊加組合上採用基於 patch 的稀疏標記,此類方法並沒有充分挖掘多模態信息。為了解決這一難題,在本文中,我們提出使用全連接卷積網絡(FCNs)來分割等強度相位的腦磁振造影圖像。我們不是簡單地將三種模式疊加在一起,而是針對每幅圖像訓練一個網絡,然後將它們的高層特徵融合在一起進行最終的分割。具體來說。