一種卷積網(wǎng)絡(luò)運(yùn)算單元及可重構(gòu)卷積神經(jīng)網(wǎng)絡(luò)處理器和實(shí)現(xiàn)圖像去噪處理的方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及圖像處理領(lǐng)域,特別涉及一種卷積網(wǎng)絡(luò)運(yùn)算單元及可重構(gòu)卷積神經(jīng)網(wǎng) 絡(luò)處理器和實(shí)現(xiàn)圖像去噪處理的方法。
【背景技術(shù)】
[0002] 圖像雨滴和灰塵的去除對(duì)于圖像處理應(yīng)用有重要意義,特別是視頻監(jiān)控和導(dǎo)航系 統(tǒng)。它可用于恢復(fù)被雨滴、灰塵污染的圖像或者視頻,還可作為前處理操作為后續(xù)的圖像識(shí) 別或者分類(lèi)提供幫助。
[0003] 當(dāng)前的去除圖像噪聲的方法大都利用高斯濾波、中值濾波、雙邊濾波等方式完成, 這些方法處理效果不好,常常不能滿(mǎn)足特定圖像處理應(yīng)用的需求。因此需要一個(gè)效果更好 的方法來(lái)去除圖像噪聲,卷積神經(jīng)網(wǎng)絡(luò)的方法成為一個(gè)不錯(cuò)的選擇。
[0004] 當(dāng)前的深度學(xué)習(xí)網(wǎng)絡(luò)大都在GPU上運(yùn)行,但是GPU價(jià)格昂貴,功耗高,并不適合大規(guī) 模的廣泛應(yīng)用。而在CPU上運(yùn)行速度慢,運(yùn)行大規(guī)模的深度學(xué)習(xí)網(wǎng)絡(luò)效率低,無(wú)法滿(mǎn)足性能 需求。
[0005] 可以看出目前技術(shù)對(duì)于應(yīng)用卷積神經(jīng)網(wǎng)絡(luò),主要存在的問(wèn)題有:處理器面積大,成 本高,功耗大,性能差等問(wèn)題。因此這就需要一個(gè)低功耗、面積小、處理效果好的可重構(gòu)卷積 神經(jīng)網(wǎng)絡(luò)處理器。
【發(fā)明內(nèi)容】
[0006] 本發(fā)明的目的在于提供一種卷積網(wǎng)絡(luò)運(yùn)算單元及可重構(gòu)卷積神經(jīng)網(wǎng)絡(luò)處理器和 實(shí)現(xiàn)圖像去噪處理的方法,硬件資源消耗低、面積小,能恢復(fù)被雨滴、灰塵污染的圖像或者 視頻。
[0007] 為了實(shí)現(xiàn)上述目的,本發(fā)明采用如下技術(shù)方案:
[0008] -種卷積網(wǎng)絡(luò)運(yùn)算單元,包括2個(gè)可重構(gòu)分離卷積模塊、非線(xiàn)性激活函數(shù)單元和乘 累加器單元;
[0009] 第一個(gè)可重構(gòu)分離卷積模塊的輸出為非線(xiàn)性激活函數(shù)單元的輸入,非線(xiàn)性激活函 數(shù)單元的輸出為乘累加器單元的輸入,乘累加器單元的輸出為第二個(gè)可重構(gòu)分離卷積模塊 的輸入;
[0010]圖像信號(hào)和配置網(wǎng)絡(luò)參數(shù)信號(hào)輸入到第一個(gè)可重構(gòu)分離卷積模塊;第一個(gè)可重構(gòu) 分離卷積模塊完成16 X 16卷積運(yùn)算;非線(xiàn)性激活函數(shù)單元完成卷積神經(jīng)網(wǎng)絡(luò)中激活函數(shù)的 運(yùn)算;乘累加器單元完成卷積神經(jīng)網(wǎng)絡(luò)中的連接層的運(yùn)算;第二個(gè)可重構(gòu)分離卷積模塊同 時(shí)完成4個(gè)8X8卷積運(yùn)算;
[0011]所述乘累加器單元包括若干乘累加器和若干寄存器;其中乘累加器用于計(jì)算上一 層卷積網(wǎng)絡(luò)的輸出值與權(quán)重參數(shù)乘積的和;寄存器將上一層卷積網(wǎng)絡(luò)的結(jié)果輸入到乘累加 器中。
[0012] 進(jìn)一步的,所述可重構(gòu)分離卷積模塊包括16個(gè)4X4可重構(gòu)一維卷積模塊和第一寄 存器組;第一寄存器組將圖像信號(hào)和卷積網(wǎng)絡(luò)參數(shù)輸入到可重構(gòu)一維卷積模塊;可重構(gòu)分 離卷積模塊可完成1個(gè)16 X 16卷積或者同時(shí)完成4個(gè)8 X 8卷積運(yùn)算;4 X 4可重構(gòu)一維卷積模 塊包括4個(gè)第一選擇器、4個(gè)第一2輸入乘法器、第一4輸入加法器、4個(gè)第二2輸入乘法器和第 二4輸入加法器;4個(gè)第一選擇器的輸出端連接對(duì)應(yīng)的4個(gè)第一 2輸入乘法器的輸入端,4個(gè)第 一 2輸入乘法器的另外一個(gè)輸入端為神經(jīng)網(wǎng)絡(luò)的權(quán)重;4個(gè)第一 2輸入乘法器的輸出端連接 第一 4輸入加法器的輸入端;4個(gè)第二2輸入乘法器的輸入為第一 4輸入加法器的輸出和神經(jīng) 網(wǎng)絡(luò)的權(quán)重;第二4輸入加法器的輸入為4個(gè)第二2輸入乘法器的輸出。
[0013] 進(jìn)一步的,所述非線(xiàn)性激活函數(shù)單元包括QD產(chǎn)生器和運(yùn)算器組;其中QD產(chǎn)生器的 輸入為可重構(gòu)分離卷積的輸出,運(yùn)算器組的輸入為QD產(chǎn)生器的輸出;QD產(chǎn)生器用于產(chǎn)生激 活函數(shù)所需的參數(shù);運(yùn)算器組用于計(jì)算激活函數(shù)最終的結(jié)果值;
[0014] 所述QD產(chǎn)生器包含一個(gè)第一除法器;輸入信號(hào)輸入到第一除法器,第一除法器輸 出商Q和余數(shù)D;所述運(yùn)算器組包含移位寄存器、2個(gè)第一加法器和第二除法器;移位寄存器 輸出和為2個(gè)第一加法器的輸入;2個(gè)第一加法器的輸出為第二除法器的輸入;移位寄存 器、第一加法器和第二除法器依次連接;
[0015] 一種可重構(gòu)卷積神經(jīng)網(wǎng)絡(luò)處理器,包括總線(xiàn)接口、前處理單元、可重構(gòu)硬件控制 器、SRAM、SRAM控制模塊、輸入緩存模塊、輸出緩存模塊、存儲(chǔ)器、數(shù)據(jù)存儲(chǔ)器控制器和若干 權(quán)利要求1至3中任一項(xiàng)所述的卷積網(wǎng)絡(luò)運(yùn)算單元;總線(xiàn)接口連接前處理單元、數(shù)據(jù)存儲(chǔ)器 控制器、可重構(gòu)硬件控制器和輸入緩存、輸出緩存;存儲(chǔ)器連接數(shù)據(jù)存儲(chǔ)器控制器;輸入緩 存連接可重構(gòu)硬件控制器和SRAM控制模塊;卷積網(wǎng)絡(luò)運(yùn)算單元連接輸入緩存模塊、輸出緩 存模塊;
[0016]所述的前處理單元的輸入為圖像或者視頻信號(hào);完成白平衡、噪聲過(guò)濾等前處理 操作;
[0017] 所述的輸入緩存模塊、輸出緩存模塊分別用于緩存卷積網(wǎng)絡(luò)運(yùn)算單元的輸入和輸 出;
[0018] 所述的可重構(gòu)硬件控制器對(duì)卷積網(wǎng)絡(luò)運(yùn)算模塊進(jìn)行配置,控制其運(yùn)算過(guò)程;在運(yùn) 算過(guò)程中或者結(jié)束時(shí)發(fā)送中斷請(qǐng)求完成與外部系統(tǒng)的交互;
[0019 ]所述的SRAM控制模塊用于控制卷積網(wǎng)絡(luò)權(quán)重參數(shù)的傳輸。
[0020] 進(jìn)一步的,包括512個(gè)卷積網(wǎng)絡(luò)運(yùn)算單元,實(shí)現(xiàn)基于卷積神經(jīng)網(wǎng)絡(luò)的圖像去噪處 理。
[0021] 進(jìn)一步的,所述一種可重構(gòu)卷積神經(jīng)網(wǎng)絡(luò)處理器實(shí)現(xiàn)一個(gè)3層卷積神經(jīng)網(wǎng)絡(luò),用于 去除圖像或者視頻中附著的雨滴和灰塵;所述的卷積神經(jīng)網(wǎng)絡(luò)第一層由512個(gè)16X16卷積 構(gòu)成,第二層為神經(jīng)網(wǎng)絡(luò)連接層,第三層由512個(gè)8 X 8卷積構(gòu)成。
[0022] 一種可重構(gòu)卷積神經(jīng)網(wǎng)絡(luò)處理器實(shí)現(xiàn)圖像去噪處理的方法,包括:
[0023]在圖像去噪處理的過(guò)程中,隨機(jī)減少卷積個(gè)數(shù),減少硬件資源的消耗,提高處理速 度;
[0024] 或者,在圖像去噪處理的過(guò)程中將16X16卷積運(yùn)算單元和8X8卷積運(yùn)算單元分別 分成16個(gè)和4個(gè)4 X 4的卷積模板,對(duì)每個(gè)4 X 4的卷積采用一維卷積。
[0025]相對(duì)于現(xiàn)有技術(shù),本發(fā)明具有以下有益效果:卷積網(wǎng)絡(luò)運(yùn)算單元利用可重構(gòu)技術(shù), 可完成16X16卷積或者同時(shí)完成4個(gè)8X8卷積運(yùn)算,提高硬件性能和靈活性。本發(fā)明利用深 度學(xué)習(xí)的方法,實(shí)現(xiàn)了可去除圖像雨滴和灰塵的去噪處理,處理效果滿(mǎn)足需求。本發(fā)明在不 影響處理效果的前提下,隨機(jī)減少卷積網(wǎng)絡(luò)的模板個(gè)數(shù),而且還利用分塊一維卷積的方法, 硬件資源消耗大大減少,處理速度大大提高。此處理器可實(shí)現(xiàn)3層的卷積神經(jīng)網(wǎng)絡(luò),能夠?yàn)?后續(xù)更高層次的圖像識(shí)別、分類(lèi)提供特征。相對(duì)于GPU價(jià)格昂貴,功耗高,面積大。CPU運(yùn)行速 度慢,運(yùn)行大規(guī)模的深度學(xué)習(xí)網(wǎng)絡(luò)效率低。本發(fā)明采用可重構(gòu)技術(shù)和上述減少模板個(gè)數(shù)和 分塊一維卷積的方法,實(shí)現(xiàn)的可重構(gòu)卷積神經(jīng)網(wǎng)絡(luò)處理器的資源消耗低、易于硬件實(shí)現(xiàn),能 夠恢復(fù)被雨滴、灰塵污染的圖像或者視頻。
【附圖說(shuō)明】
[0026] 圖1是卷積網(wǎng)絡(luò)運(yùn)算單元的結(jié)構(gòu)示意圖;
[0027] 圖2是非線(xiàn)性激活函數(shù)單元的結(jié)構(gòu)示意圖;
[0028] 圖3是第一 4X4可重構(gòu)一維卷積模塊的結(jié)構(gòu)示意圖;
[0029] 圖4是可重構(gòu)分離卷積模塊的結(jié)構(gòu)示意圖;
[0030] 圖5是可重構(gòu)卷積神經(jīng)網(wǎng)絡(luò)處理器的結(jié)構(gòu)示意圖;
【具體實(shí)施方式】
[0031] 下面結(jié)合【附圖說(shuō)明】和【具體實(shí)施方式】對(duì)本發(fā)明做詳細(xì)說(shuō)明。
[0032] 參照?qǐng)D1,本發(fā)明中可重構(gòu)卷積神經(jīng)網(wǎng)絡(luò)處理器中所使用的卷積網(wǎng)絡(luò)運(yùn)算單元包 括2個(gè)可重構(gòu)分離卷積模塊、非線(xiàn)性激活函數(shù)單元和乘累加器單元;第一個(gè)可重構(gòu)分離卷積 模塊的輸出為非線(xiàn)性激活函數(shù)單元的輸入,非線(xiàn)性激活函數(shù)單元的輸出為乘累加器單元的 輸入,乘累加器單元的輸出為第二個(gè)可重構(gòu)分離卷積模塊的輸入;
[0033]圖像信號(hào)和配置網(wǎng)絡(luò)參數(shù)信號(hào)輸入到第一個(gè)可重構(gòu)分離卷積模塊;第一個(gè)可重構(gòu) 分離卷積模塊完成16 X 16卷積運(yùn)算;非線(xiàn)性激活函數(shù)單元完成卷積神經(jīng)網(wǎng)絡(luò)中激活函數(shù)的 運(yùn)算;乘累加器單元完成卷積神經(jīng)網(wǎng)絡(luò)中的連接層的運(yùn)算;第二個(gè)可重構(gòu)分離卷積模塊同 時(shí)完成4個(gè)8X8卷積運(yùn)算;
[0034] 請(qǐng)參閱圖2所示,非線(xiàn)性激活函數(shù)單元包括QD產(chǎn)生器和運(yùn)算器組;其中QD產(chǎn)生器的 輸入為可重構(gòu)分離卷積的輸出,運(yùn)算器組的輸入為QD產(chǎn)生器的輸出;QD產(chǎn)生器用于產(chǎn)生激 活函數(shù)所需的參數(shù);運(yùn)算器組用于計(jì)算激活函數(shù)最終的結(jié)果。
[0035]本發(fā)明神經(jīng)網(wǎng)絡(luò)的激活函數(shù)為雙曲正切函數(shù)
[0037]通過(guò)定義域擴(kuò)展和泰勒級(jí)數(shù)展開(kāi),得到
[0039] QD產(chǎn)生器包含一個(gè)第一除法器,輸入信號(hào)輸入到第一除法器,第一除法器除以定 值0.69,輸出商Q和余數(shù)D;所述運(yùn)算器組包含移位寄存器、2個(gè)第一加法器和第二除法器;移 位寄存器輸出和為2個(gè)第一加法器的輸入;2個(gè)第一加法器的輸出為第二除法器的輸入;移 位寄存器、第一加法器和第二除法器依次連接;
[0040] 請(qǐng)參閱圖3所示,4 X 4可重構(gòu)一維卷積模塊包括4個(gè)第一選擇器MUX,4個(gè)第一2輸入 乘法器,第一4輸入加法器,4個(gè)第二2輸入乘法器,第二4輸入加法器。第一選擇器的兩個(gè)輸 入為圖像信號(hào)和前一級(jí)結(jié)果;4個(gè)第一選擇器的輸出端連接對(duì)應(yīng)的4個(gè)第一 2輸入乘