盧成業,高志遠,徐江濤(天津大學電子信息工程學院,天津 300072)
?
用于特征提取的小尺寸事件型卷積處理器*
盧成業,高志遠*,徐江濤
(天津大學電子信息工程學院,天津 300072)
設計了一款用于動態視覺傳感器數據特征提取的小尺寸事件型卷積處理器,該卷積處理器包含了32×32的累加陣列、用于存儲卷積核的RAM陣列、左/右移位模塊、控制模塊和異步的事件讀出模塊。為了減小面積,設計了2 bit的32×32的RAM陣列來存儲所需的卷積核;在累加陣列中,采用7 bit的二進制計數器代替傳統的加法器來實現卷積核的累加操作,在0.18 μm CMOS工藝下,每個卷積單元的面積為37.5 μm×40 μm,對于每個事件輸入輸出的最小延時為17 ns,能夠處理的最大事件率為12.5 Meps。基于該卷積處理器搭建了一個識別系統,利用16個卷積處理器來提取特征,利用脈沖神經網絡實現了分類識別。實驗結果表明,使用2 bit卷積核的小尺寸卷積處理器能夠準確完成對輸入事件的卷積操作,而且基于該卷積處理器所搭建的識別系統對MNIST數據庫的識別效率可以達到90.57%。
動態視覺傳感器,地址事件表示,小尺寸芯片,卷積芯片,MNIST,脈沖神經網絡
在傳統的人工視覺處理系統中,卷積運算被廣泛用于邊緣檢測、特征提取以及目標識別等領域。近些年,隨著人工神經計算的發展,卷積神經網絡成為當前圖像領域的研究熱點之一,得到了廣泛的應用[1-2]。由于卷積運算的計算量大,運算時間長,硬件開銷大,因此傳統的卷積運算并不能很好滿足對圖像實時處理的要求[3]。
1991年,Caltech實驗室首次提出地址-事件表達(AER)方式[4],AER 是一種仿生的圖像采集、處理模式,現在被廣泛應用于圖像傳感器領域[5-6]。AER圖像傳感器是一種特殊的圖像傳感器,與傳統的幀掃描式圖像獲取機制不同。在AER圖像傳感器中,各個像素之間獨立工作,當某個像素單元檢測到光強變化超過設定閾值后,就會觸發事件響應,分別用ON事件和OFF事件來代表光強的增強和減弱。如果有多個像素單元同時觸發事件響應,就通過仲裁模塊依次輸出事件脈沖。AER圖像傳感器的輸出只包含了事件發生的地址(x,y)和屬性(ON/OFF),從而具有低冗余、低延時、高實時性等優點[7]。因此,研究與AER圖像傳感器相適應的處理模塊就可以對輸出事件進行實時處理,擺脫“幀”的束縛,可以實現更高的處理速度。
1997年,瑞士的 Venier 團隊首次硬件實現了基于事件的卷積處理[8]。2006年塞維利亞大學的Rafael Serrano-Gotarredona等人提出了基于AER的數模混合神經形態卷積芯片[9]。2011年,Luis Camuas-Mesa等人研究設計出了32×32像素陣列的全數字的卷積芯片[10],設計了6bit的RAM來存儲卷積核,18 bit的累加器,該芯片中單個像素單元的面積為95.6 μm×101.3 μm。2012年,塞維利亞大學的Luis Camuas-Mesa小組設計出了64像素×64像素陣列的事件卷積芯片,使用純數字電路設計,且其卷積核的形狀和尺寸可以改變[11]。在該芯片的設計中,采用了4 bit的RAM和6 bit的累加器,單個像素單元的面積為58 μm×53.8 μm。在卷積芯片的設計中,用來存儲卷積核的RAM和實現累加運算的累加器占據了芯片的大部分面積。因此,在保證卷積效果的同時使用盡量少的卷積核RAM可以有效縮減事件型卷積處理器的芯片面積。
卷積芯片的一個重要作用是用來提取特征,提取的特征經過一定的學習算法可以實現目標的分類識別等。脈沖神經網絡作為第3代神經元模型,相比傳統的神經元模型具有更高的計算效率。脈沖神經網絡應用精確定時的脈沖序列對神經信息進行編碼和處理,非常適用于AER事件的處理識別。此外,脈沖神經網絡也易于硬件實現,已經報道了很多脈沖神經網絡的硬件實現平臺,比如IFAT(Integrate and Fire Array Transceiver)[12]和Hierarchical AER-IFAT[13]。本文設計了一個32×32的事件卷積處理器,設計了2 bit的RAM來存儲卷積核,7 bit的計數器來實現累加功能,并對該結構的卷積效果進行了仿真驗證。此外,為驗證該卷積處理器在特征提取方面的特性,本文利用脈沖神經網絡搭建了一個識別系統,對經過卷積后的特征進行了分類識別。經過仿真驗證,在該識別系統中,本文設計的卷積處理器可以以較低的存儲器深度實現相類似的識別效率,在滿足提取特征的要求的前提下,縮減了芯片面積。
在圖像處理中,卷積計算是一種廣泛應用的計算方式。基于事件的卷積計算是通過在卷積陣列中實現卷積核權值的不斷累加實現的。AER圖像傳感器產生的每個事件都包含了事件的地址信息和屬性,當對該事件進行卷積操作時,就以該事件的地址為中心,將卷積核累加到卷積陣列中。
圖1顯示了傳統的卷積算法與基于事件的卷積算法的不同,圖1(a)是傳統的基于幀的卷積計算過程,圖中輸入圖像是5×5的矩陣,卷積核是一個3×3的矩陣,卷積結果如圖所示,計算過程包含了乘法和加法運算,計算過程較為復雜。圖1(b)顯示了基于事件的卷積過程,當(2,2)地址處的事件到來時,就以(2,2)地址為中心將卷積核累加到卷積陣列中,(3,3)和(4,4)地址的事件到來時也完成相應的累加過程。基于事件的卷積過程只包含了累加運算,相比傳統的基于幀的卷積算法,計算更為簡單,更加易于硬件實現。

圖1 卷積算法對比

圖2 卷積處理器結構
基于事件卷積算法的基本原理,本文設計的事件卷積處理器的結構如圖2所示,處理器包含了一個32×32的卷積像素陣列、行列仲裁、一塊用于存儲卷積核的RAM陣列、控制模塊、左/右移位模塊和異步的事件讀出模塊。初始狀態下,卷積像素陣列處于復位狀態,卷積核存儲在RAM陣列中,當卷積芯片接收到輸入事件時,控制模塊讀取RAM中存儲的卷積核,同時控制模塊也會根據輸入事件的地址信息,產生像素陣列的行選信號,通過判斷卷積核左移或者右移的位數,卷積核被移位模塊移動到對應的數據總線上,在時鐘驅動下在卷積陣列中逐行完成卷積核的累加。由于卷積核的尺度的不同,完成累加操作需要的時鐘周期也不相同,在本文的設計中完成一個輸入事件的卷積操作,共需要2+Nk個時鐘周期,Nk為卷積核的行數。當卷積陣列中某像素點累加的值超過預先設定的閾值時,該像素點就會發出輸出請求,經過仲裁模塊的運算和選通,最后通過異步事件讀出模塊產生事件輸出,同時卷積陣列中該位置被置零,等待重新開始新的累加過程。

圖3 像素單元結構和AER_out電路結構
2.1 像素陣列設計
為了減小芯片的面積,本文設計中采用了2 bit的RAM來存儲卷積核,設計了7 bit計數器來代替累加器實現累加操作。像素單元的結構如圖3(a)所示,共包含了開關模塊(witch block)計數器(OUNTER)閾值比較模塊和AER輸出接口電路。
控制模塊根據輸入事件的地址信息,產生相應的行選信號Enable,卷積核的權值才能進入被選通行的像素中,通過計數器完成累加功能。圖中閾值比較模塊實現閾值的比較,采用兩個異或門(XOR),通過最高位與選取數據位的異或操作,來判定達到正閾值或負閾值,通過SEL信號端和多路選擇器(MUX)來選擇輸出。累加單元達到選定的閾值時,通過AER輸出接口電路向外圍的仲裁電路發出請求,在收到確認信息后,輸出像素信息并將此像素復位。由于本文的設計中采用2 bit的卷積核,其中最高位為符號位,因此設計二進制的可逆計數器就能夠滿足功能的需求,AER輸出接口由一個D鎖存器(D_latch)和異步接口(AER_out)構成。圖3(b)顯示了AER_out模塊的電路結構,該模塊采用了文獻[11]的類似結構,當閾值比較模塊有脈沖產生時,會觸發AER_out模塊產生行輸出請求,此時Rqst被拉至高電平,外圍電路接受請求后會產生響應信號Ack(低電平),此時根據卷積核的符號位,將Pulse-或者Pulse+拉至低電平,產生列請求信號。

圖4 RAM存儲單元結構
2.2 卷積核RAM和移位模塊設計
卷積核被預先存儲起來,當有事件到來時,通過控制模塊來選擇讀取相應的卷積核到總線上并累加到像素陣列中,因此通過設計靜態RAM即可滿足功能要求。在事件卷積處理器設計中,SRAM 的寫入速度并不重要,但對于高速產生的事件,SRAM讀取的速度就顯得比較重要,因此需要設計具有較高讀取速度的SRAM[14]。本文設計了2 bit的RAM來存儲卷積核,單個存儲單元的結構如圖4所示,該結構中包含了兩個反向器,一個“弱”反向器和一個“強”反向器,構成了鎖存器結構。本文利用如圖4所示的存儲單元,搭建了一個32×32的存儲陣列,該存儲陣列能夠存儲多種卷積核,通過控制模塊的控制信號,可以選擇讀取不同的卷積核。
由于卷積核在RAM中存儲的位置與輸入事件的地址會有一定的偏移,因此需要設計移位模塊來實現移位功能。移位模塊可以根據輸入事件的地址實現卷積核的左移或者右移,將卷積核移動到相應的坐標處。移位模塊的結構如圖5所示,該結構可以保證選定的卷積核在一個時鐘周期即可完成多條總線的移動,實現卷積處理的高速進行。在該移位模塊中,每列卷積核RAM的總線在豎直、向左或向右45°方向上進行延伸,互連矩陣中每個總線交叉結點都包含了兩個三態門來控制信號通路的流通方向。兩個三態門分別連接兩個水平方向輸入的移位信號,分別控制左移和右移。

圖5 移位選擇模塊

圖6 仲裁單元結構框圖和仲裁樹結構
2.3 裁單元設計
本設計中的仲裁模塊采用優先級可切換的“仲裁樹”結構[15]。每個仲裁單元由四部分構成,如圖6(a)所示,優先選擇單元,仲裁單元,響應單元及請求傳遞單元。在樹狀結構中,每經過一層,請求信號就會被屏蔽掉一半,然后經過層與層之間的傳遞,最后交給頂層仲裁單元進行匯總。頂層單元匯總請求信息,不會再產生請求信號,產生應答信號,向下層逐層反饋,最終到達請求信號發生的初始節點。
由于本文設計了一個32×32的卷積陣列,因此設計32輸入的仲裁樹結構,就能夠滿足仲裁的需求,圖6(b)顯示了該仲裁樹結構。
AER卷積處理器的一個重要的應用是實現特征提取,構建目標識別系統。本文利用上述卷積處理器構建了一個基于事件的識別系統。該識別系統由兩部分構成,特征提取部分和識別部分,如圖7所示。

圖7 識別系統結構圖
特征提取層主要實現特征的提取,數據流可以概括為:輸入事件→S1層→C1層。
S1層為卷積層,對輸入事件進行卷積操作,使用本文所設計的卷積處理器模型。S1層采用Gabor函數計算的卷積核來提取特征,計算公式如(1)所示:
(1)式中:μ和υ分別代表像素中水平方向和垂直方向的坐標,λ為波長,θ參數指定了Gabor函數的方向,它的取值為0到360°,γ為長寬比空間縱橫比,決定了Gabor函數形狀,σ為有效的帶寬。在特征提取層中共包含16個卷積模塊,分別選取了3×3,5×5,7×7和9×9共4種尺度的卷積核,每種尺度下又分別選取了4種角度0°,45°,90°和135°。
C1層主要完成MAX操作,在傳統的圖像處理中,MAX算法常用來實現子采樣的過程,在事件卷積過程中采用MAX操作也可以實現類似的“子采樣”過程。這種操作是一種非線性的過程,每個卷積陣列都被劃分成相鄰的不重疊的區域,在該區域只有最大值會被保留下來。MAX操作進一步壓縮了數據量,將更加顯著的特征信息提取出來。
識別層主要包括了兩個模塊,TFS(Time-to-FirstSpike)轉換模塊和脈沖神經網絡模塊SNN(SpikingNeuralnetworks)。TFS模塊可以將模擬量轉化為脈沖發放的時間,在本文TFS編碼策略中,刺激越強產生的脈沖越早,產生的脈沖較晚就表明刺激較弱。
脈沖神經網絡模塊來實現分類識別,脈沖神經網絡把時間信息的影響也考慮在內,以脈沖序列的方式對輸入數據進行處理,特別適用于AER事件的處理。本文采用簡化的LIF神經元模型確保每個輸出脈沖只能由興奮性輸入脈沖觸發,而不會由亞閾值膜電勢觸發。當一個脈沖輸入到達神經元時,該神經元的膜電勢只能由上次更新后的時間和上次更新后的狀態決定,因此只需要更新收到脈沖的神經元的電勢。神經元可以組成多層的網絡,當一個神經元收到前一層神經元來的脈沖時,該神經元的更新方式如下所示[16]:

圖8 “189”樣本卷積結果對比
如果ti-tlastspike (2) 當Vmi≥Vthresh時Vmi←0,tlastspike←ti產生新的脈沖輸出,同時該神經元的膜電勢被復位到預設狀態,式(2)中是ti第i個脈沖到達神經元的時間,tlastspike是當前神經元產生上一個脈沖的時間,trefr是神經元的不應期,Vmi是第i個脈沖輸入后該神經元的膜電勢,Il是漏電流,Cm是膜電容,ωi是突觸權值,Vthresh是當前神經元的閾值電壓。Tempotron學習算法是一種脈沖神經網絡監督學習算法,該算法只需要調整較少的參數,就可以達到理想的訓練識別效果,具有高效性。在本文提出的識別系統中,采用Tempotron學習算法來訓練權值,并參照文獻[17]來設置相關參數。 本文設計的事件卷積結構中采用了32×32 2bit的RAM陣列來存儲卷積核,設計了7bit的計數器來實現累加,可以有效減小芯片的面積,在0.18μmCMOS工藝下每個像素單元的面積為37.5μm×40.0μm,卷積處理器于每個事件輸入輸出的最小的延時為 17ns,最大事件率為 12.5Meps。 為了分析其卷積效果,本文還對卷積效果進行了仿真驗證。為了模擬AER圖像傳感器產生的事件序列,本文采用了頻率編碼(Rate-Coding)的方式將灰度圖像轉成AER事件序列,然后將每個事件編碼成15bit的二進制數據,包括12bit的事件地址(x,y),2bit的卷積核選取標志位,一共可以選取4種卷積核,還有1bit代表事件的屬性,“0”代表輸入為正事件(ON),“1”代表輸入為負事件(OFF)。 本文實驗使用MNIST數據庫進行驗證。MNIST是一個手寫數字樣本集,該樣本集包含10組數字的灰度圖像,從數字0到9,每個圖像的分辨率為28×28,共70 000幅圖像。隨機選取了第189個樣本,采用頻率編碼方式,將其轉成事件序列,產生了117個事件,然后將產生的事件轉化成15bit的二進制數據,輸入到本文設計的卷積處理器中。圖8(a)顯示了第189個樣本的灰度圖像,卷積核A用來提取垂直特征信息,經過卷積核A的卷積操作,圖8(b)為該樣本在Matlab上仿真的理想卷積結果,圖8(c)顯示了經過本文設計的卷積處理器處理的仿真結果。通過實驗結果對比可得,本文設計的卷積結構對輸入事件能夠實現比較理想的卷積結果,如圖8(c)所示很好的提取出了垂直特征。圖9(a)顯示了第200個樣本的灰度圖像,經過卷積核B的卷積操作,卷積核B用來提取水平方向特征信息,圖9(b)和圖9(c)分別顯示了理想的卷積結果和本文的仿真結果。 圖9 “200”樣本卷積結果對比 最后,利用搭建的識別系統,分析了利用2bit的卷積核來提取特征時,系統的識別率。將原始樣本被劃分為訓練樣本和測試樣本,將訓練樣本輸入到該系統中,經過卷積層16個卷積模塊的卷積操作,提取特征,利用Tempotron學習算法對脈沖神經網絡的權值進行更新,最后利用測試樣本,測試系統的識別準確率。本文通過實驗分析了為卷積模塊配置不同的卷積核精度時,該系統的識別率的變化,實驗結果如表1所示。 表1 別率和面積對比 根據表1中的實驗結果,本文采用2 bit的卷積核精度實現了90.57%的識別率。對比文獻[10-11]中設計的卷積核精度,對于該識別系統,采用本文2 bit的卷積核的卷積處理器不僅能夠獲得與高位數相似的識別效果,而且卷積單元的面積遠小于高位數結構。 本文根據事件型卷積處理器的工作特點,搭建了一個用于特征提取的小尺寸事件型卷積處理器。在該卷積處理器中包含了一個32×32的卷積像素陣列和一塊2 bit的32×32卷積核RAM。本文提出的卷積處理器不僅使用低至2 bit的卷積核,還使用計數器替代了原有的加法器結構,芯片面積大幅縮減。經過仿真驗證,該卷積結構可以根據輸入事件的地址,將卷積核準確累加到卷積陣列中,實現特征提取。最后,本文搭建了一個識別系統,在該識別系統中配置了16個卷積模塊來提取特征,使用脈沖神經網絡來進行識別,并利用該識別系統驗證了本文工作與傳統卷積處理器使用的卷積核精度對該系統識別率的影響,實驗結果表明本文提出的采用2 bit卷積核的小尺寸的卷積處理器可以有效完成特征提取。 [1] Lecun Y,Bottou L,Bengio Y. Gradient-Based Learning Applied to Document Recognition[J]. Proceedings of the IEEE,1998,86(11):2278-2324. [2] Garcia C,Delakis M. Convolutional Face Finder:A Neural Architecture for Fast and Robust Face Detection[J]. IEEE Tran Pattern Anal Mach Intell,2004,26(11):1408-1423. [4] Sivilotti M. Wiring Considerations in Analog VLSI Systems with Application to Field-Programmable Networks[D]. California Institute of Technology,Pasadena CA,1991. [5] Zamarreno R C,Linares B A,Serrano G T,et al. Multicasting Mesh AER:A Scalable Assembly Approach for Reconfigurable Neuromorphic Structured AER Systems[J]. IEEE Transactions on Biomedical Circuits and Systems,2013,7(1):82-102. [6] Zamarreno R C,Kulkarni R,Silvamartinez J,et al. A 1.5 ns OFF/ON Switching-Time Voltage-Mode lvds Driver/Receiver Pair for Asynchronous AER bit-Serial Chip Grid Links with up to 40 Times Event-Rate Dependent Power Savings[J]. IEEE Transactions on Biomedical Circuits and Systems,2013,7(5):722-731. [7] 閆石,徐江濤,高志遠. 基于地址-事件表示的高速二值連通域標記方法[J]. 傳感技術學報,2016,29(3):362-367. [8] Venier P,Mortara A,Arreguit X. An Integrated Cortical Layer for Orientation Enhancement[J]. IEEE Journal of Solid-State Circuits,1997(32):177-186. [9] Serrano-Gotarredona R,Serrano-Gotarredona T,Acosta-Jimenez A,et al. A Neuromorphic Cortical-Layer Microchip for Spike-Based Event Processing Vision Systems[J]. IEEE Trans Circuits SystI,Reg Papers,2006,53(12):2548-2566. [10] Camunas-Mesa L,Acosta-Jimenez A,Zamarrefio-Ramos C,et al. A 32×32 Pixel Convolution Processor Chip for Address Event Vision Sensors with 155 ns Event Latency and 20 Meps Throughput[J]. IEEE Trans Circuits Syst I,Reg Papers,2011,58(4):777-790. [11] Camunas-Mesa L,Zamarreno-Ramos C,,et al. An Event-Driven Multi-Kernel Convolution Processor Module for Event-Driven Vision Sensors[J]. IEEE Journal of Solid-State Circuits,2012,47(2):504-517. [12] Goldberg D H,Cauwenberghs G,Andreou A G. Probabilistic Synaptic Weighting in a Reconfigurable Network of VLSI Integrate-and-Fire Neurons[J]. Neural Netw,2001,14(6):781-793. [13] Park J,Yu T,Maier C. Live Demonstration:Hierarchical Address-Event Routing Architecture for Reconfigurable Large Scale Neuromorphic Systems[C]//IEEE International Symposium on Circuits and Systems,2011. [14] Serrano-Gotarredona R,Serrano-Gotarredona T,Acosta-Jimenez A,et al. On Real-Time AER 2-D Convolutions Hardware for Neuromorphic Spike-Based Cortical Processing[J]. IEEE Trans Neural Netw,2008,19(7):1196-1219. [15] Aung Myat Thu L,Do Anh T,Chen S. Adaptive Priority Toggle Asynchronous Tree Arbiter for AER-Based Image Sensor[C]//IEEE 19th International Conference on VLSI and System-on-Chip,2011:66-71. [16] Orchard G,Meyer C,Etienne-Cummings R,et al. HFirst:A Temporal Approach to Object Recognition[J]. IEEE Trans Pattern Anal Mach Intell,2015,37(10):2028-2040. [17] Zhao B,Ding R,Chen S. Feedforward Categorization on AER Motion Events Using Cortex-Like Features in a Spiking Neural Network[J]. IEEE Trans Neural Netw Learn Syst,2014,26(9):24-31. 盧成業(1989-),男,天津大學碩士研究生,主要從事視覺傳感器研究,tju_lcx@tju.edu.cn; 高志遠(1987-),男,博士后,主要從事CMOS圖像傳感器、視覺傳感器研究,本篇論文通訊作者,gaozhiyuan@tju.edu.cn; 徐江濤(1979-),男,副教授,碩士生導師,主要從事 CMOS圖像傳感器和圖像處理芯片研究,在相關領域主持國家自然科學基金、教育部博士點基金等項目。 A small Size Event-Based Convolution Processor for Feature Extraction* LU Chengye,GAO Zhiyuan*,XU Jiangtao This paper presents a small size event-based convolution processor for feature extraction of the data generated by dynamic vision sensors(DVS). It consists of a 32 pixel×32 pixel array,a RAM array that stores the convolution kernel,a left/right shift block,a control block,and an asynchronous event readout block. In order to reduce the area of convolution chip,a kernel RAM of 32×32 2 bit word is implemented to store the kernels. In each pixel unit,a 7bit counter is used to accomplish the accumulation instead of a traditional accumulator for smaller pixel size. In the 0.18 μm CMOS technology,each convolution unit occupies 37.5 μm×40 μm. The minimum latency between input and output event flows can be nearly 17 ns. Input event throughput can reach 12.5 Meps. Furthermore,a categorization system is established based on this convolution module,which consists of 16 assembled convolution modules for feature extraction and a spiking neural networks(SNN)for recognition. The experimental results show that the proposed convolution processor can achieve ideal convolution results. With the recognition system,the experimental results of MNIST show that the convolution module configured with 2 bit kernel weights resolution can also complete the feature extraction which achieves a recognition rate of 90.57%. dynamic vision sensors,address event representation,small chip size,convolution chip;MNIST;spiking neural networks 項目來源:國家自然科學基金項目(61604107,61434004) 2016-10-17 修改日期:2016-11-20 TN47 A 1004-1699(2017)04-0535-07 C:7230 10.3969/j.issn.1004-1699.2017.04.0094 實驗結果分析


5 總結



(School of Electronic and Information Engineering,Tianjin University,Tianjin 30072,China)