a一级爱做片免费观看欧美,久久国产一区二区,日本一二三区免费,久草视频手机在线观看

新聞中心

EEPW首頁 > 汽車電子 > 設計應用 > 基于CNN的紅外圖像預處理系統的研究與設計

基于CNN的紅外圖像預處理系統的研究與設計

——
作者:王思睿 王暕來 楊春玲 時間:2007-08-16 來源:電子產品世界 收藏

摘要:本文設計了一個以為核心處理器實現紅外視頻圖像數字預處理的系統,利用Altera公司提供的DE2開發板,把系統大部分的功能模塊集成在一片 上,大大優化了整個系統的性能。該方案采用Altera公司推出的低成本、高密度的Cyclone Ⅱ系列,提高了系統的設計靈活性。IP核的開發,充分利用了在圖像處理方面的優勢,提高了整個系統的處理效率。實現了的一種高效數字實現方案,并且采用分布式算法可以提供更高的運行速度。

關鍵詞 ;細胞神經網絡;FPGA;

引言

紅外視頻圖像數字預處理系統是紅外焦平面陣列探測器必備的后處理電路,對成像質量有很大的影響。隨著紅外弱小目標檢測技術開始廣泛應用于制導、跟蹤、自動控制、人工智能等諸多領域,這些應用對紅外成像質量的要求越來越高。因此,研究紅外視頻圖像數字預處理系統有很大的意義[1-2]。本文從細胞神經網絡模型研究開始,將細胞神經網絡的模型、算法研究與具體的圖像處理特別是在圖像中的應用緊密結合,充分將理論和實踐聯系起來。將設計好的模板應用到圖像的中,利用FPGA的并行性特點,建立基于CNN的紅外圖像預處理系統,用于進行實時的圖像處理。

該系統硬件電路包括兩路視頻A/D,數據緩沖同步FIFO,FPGA,數據存儲、顏色空間轉換等功能模塊。系統能夠完成對IRFPA信號的正確讀出,并將讀出的視頻模擬信號經A/D轉換器轉換為數字信號,經FIFO緩沖后進入存儲器,之后經過中心數字信號處理器進行必要的處理(邊緣提取),最后輸出標準的VGA模擬視頻信號,傳送到顯示器。

1 圖像預處理實現原理分析

紅外圖像預處理的目的在于,改善圖像數據,抑制不需要的變形或者增強某些對于后續處理重要的圖像特征,為后續的目標識別與跟蹤提供方便。這里做的預處理為邊緣提取,即對處于最低抽象層次上的圖像所進行的操作,此時處理的輸入輸出為亮度圖像。這些圖像是與傳感器抓取到的原始數據同類的,通常是用圖像函數值矩陣表示的亮度圖像。整個系統的核心處理部分是由細胞神經網絡IP核實現的。

細胞神經網絡(Cellular Neural Network,CNN)是以神經網絡的聯接方式為背景,具有實時信號處理能力的大規模非線性模擬電路。從結構上講,CNN類似于細胞自動機,即細胞神經網絡中的每一個胞元僅與它的鄰近胞元相連接,相連胞元之間存在直接通信,而非鄰近胞元之間不直接聯接,但是由于連續時間下的動態傳播,可以間接影響不相鄰的胞元。理論上,可以定義任何維數的細胞神經網絡,但是因為處理圖像的需要,這里只考慮二維的情況。一個二維的 細胞神經網絡結構形式如圖1所示,用 表示第i行第j列的細胞。胞元的狀態方程為:

由上式可知,在CNN應用使用空間不變的系數的情況下,整個網絡的功能由2個 的矩陣 和 ,以及胞元偏移值I決定。矩陣A和B分別稱為反饋模版和控制模版。胞元結構見圖2所示。

圖1   3x3規模的細胞神經網絡結構

圖2  CNN結構圖

在圖像處理中,無論是灰度圖像還是二值圖像,每一個像素的值均為離散量化的,采用CNN進行圖像處理時,存在對其輸入與輸出量化的問題。在 的二維圖像中,不失一般性地設它的任意一點值為 ,通常對于二值圖像, 僅取兩個整數值,即 ;而對灰度圖像則 為灰度值,以8比特灰度圖像為例 。在CNN系統中,其輸入為 ,輸出為 ,因而在處理二值圖像時,需要使原來的 映射為 ,但必須注意這種映射為:原來的0映射為1(純黑色),原來的1映射為-1(純白色)。而處理灰度圖像時,首先要對輸入與輸出的值域 進行256級的均勻量化,然后使 映射到這個均勻量化的 中,同樣必須注意:原來的0映射為1(純黑色),原來的255映射為-1(純白色),其余灰度值均按照由小到大的順序依次映射到由1到-1這個由大到小的量化體系中[3-5]。

2 總體方案選擇

系統的工作流程如圖2所示,從CCD傳來的數字視頻信號及其控制信號首先通過圖像采集模塊,從而篩選出有效的數據,然后通過RAW2RGB模塊,利用插值算法得到每個像素點的R、G、B數據。為了便于CNN模塊進行核心處理,在進行邊緣提取操作前,把圖像數據從RGB顏色空間轉換為YCbCr顏色空間,針對Y分量進行處理。處理后的數據再經過YCbCr2RGB模塊轉換為RGB數據從而提供給VGA模塊,供LCD顯示。

圖2 紅外圖像預處理系統工作流程

整個的核心部分在于CNN模塊,在圖像邊緣提取中使用的算法主要是經典的微分算子,微分算法在硬件中很難實現,將CNN應用于灰度圖像邊緣提取的算法,是因為CNN是一種基于神經元局域連接的神經網絡并行處理器[3], 硬件上可以采用相同的電路元件陣列來設計CNN并行處理器,這種陣列同構的電路設計有利于VLSI實現。故采用粒子群算法訓練CNN的模板,進行邊緣提取。

雖然在細胞神經網絡中允許任意規模的鄰域,隨著模板尺寸的增大,硬件實現的難度也隨之增大。受限于目前的VLSI技術,胞元之間的互聯只能是局部的。本文中,規定采用3x3鄰域,即模板A、模板B都是3x3的矩陣,且它們的系數都是實系數。因為目前大多數圖像處理針對的都是灰度級圖像,所以細胞神經網絡胞元的輸入范圍被限定在[-1,+1]之間,-1代表白色像素,1代表黑色像素,其余的值代表二者之間的灰度值。這里采用定點數,因為在硬件實現中,定點數具有更高的速度和更低廉的成本,特別是在調用FPGA中的乘法底層原語時。

單個胞元的串行硬件實現結構,完成一次胞元狀態更新的運算至少需要9個時鐘周期。為了提高速度,可以在計算胞元狀態更新時采用并行結構,如圖3所示,通過采用流水線結構,完成一次胞元狀態的更新只需要1個時鐘周期。本文采用并行結構在FPGA中實現細胞神經網絡。

圖3 CNN 并行實現結構框圖

3 硬件設計

圖像數據采集模塊用于實現圖像數據的捕捉,根據圖像傳感器MT9M011輸出數據時序,當視頻捕捉開始鍵按下時,該模塊開始接收數據,在獲得有效像素數據的同時也接收了消隱期的圖像數據,所以設置了輸出數據有效信號,用以在接下來的RAW2RGB模塊把有效數據和非有效數據區分開來。

3.1 RAW2RGB模塊的設計

MT9M011采用的是Bayer型CFA(Color Filter Array,顏色濾波陣列),由于該圖像傳感器的分辨率為1280x1024,這里采用的插值算法,每四個像素合并為一個像素,像素值的變化如圖4所示,這樣經過RAW2RGB模塊后,圖像的分辨率變為原來的一半,即640x512。

該模塊的硬件實現框圖如圖5所示。其中control模塊由兩個狀態機組成,分別是ram_wr_state和ram_rd_state。ram_wr_state狀態機負責產生RAM的寫使能和寫地址。當輸入數據有效時,把輸入的像素數據依次交替存儲在2個RAM中,構成類似乒乓操作的結構。這個狀態機負責產生RAM的寫使能和寫地址。ram_rd_state的狀態機負責產生RAM的讀使能和讀地址。

圖4 顏色插值算法示意圖

圖5 RAW2RGB模塊的硬件結構框圖

這里為了便于檢驗算法的正確性,適當的對數字視頻流進行了一些簡化。由于編程時采用參數化設計,所以這并不會對系統的設計產生影響。這里假定待處理的原始數據每行只有12個像素,以兩行數據為例,經過處理后的數據(每個像素包含R、G、B三種顏色分量),每行只包含6個像素,減少了一半,同樣行數也變為原來的1/2。這樣,當等待處理的圖像分辨率為1280x1024時,經過該模塊后的圖像分辨率變為640x512。圖7為經過顏色插值后的實際輸出,與圖6經過顏色插值后的預期輸出相比較可以看出,該顏色插值模塊的設計完全達到了預期的要求。

圖6 經過顏色插值后的預期輸出

圖7 經過顏色插值后的實際輸出

3.2 顏色空間轉換模塊的硬件設計

YCbCr坐標與RGB坐標之間的關系如下:

 
                                             (1)
有三種方案實現此模塊設計,第一種方案采用Verilog語言對該轉換公式進行行為描述;第二種方案采用FPGA芯片內的RAM構造乘法器查找表,將轉換公式內所有可能的中間結果存放在存儲器中。該系統需要9個乘法器查找表,每個乘法器查找表的深度是1k,將操作數R、G、B作為地址訪問存儲器,得到的輸出數據就是乘法運算的結果。查找表乘法器的速度只局限于所使用存儲器的存取速度。第三種方案是對第一種方案進行改進,采用流水線結構實現此系統設計,大大提高了運算速度。本文采用第三種方案。流水線處理是高速設計中的一個常用設計手段。充分利用了硬件內部并行性,增加數據處理能力。這種流水線作業是在幾個步驟中執行運算的功能單元的序列。每個功能單元接受輸入,生成的輸出則是緩沖器存儲的輸出。實現流水線結構的方法很簡單,只要在每個運算部件(包括乘法器和加減法器)的輸出以及系統的輸入輸出之間加上寄存器緩存即可。利用流水線技術的顏色空間轉換實現框圖如圖8所示。一個數字系統的最高時鐘頻率受限于寄存器與寄存器之間的最大門延遲,如果不在每個運算部件的輸出后面加上寄存器緩存,則寄存器與寄存器之間的最大門延遲為輸入RGB信號到輸出YCbCr信號之間的延遲。由于輸入RGB信號到輸出YCbCr信號之間存在大規模的組合邏輯電路,因此延遲很大。采用流水線結構之后,寄存器與寄存器之間的組合邏輯電路規模變小了,因此延遲變小,從而可以提高系統時鐘。 

圖8  利用流水線技術的顏色空間轉換實現框圖

波形仿真如圖9所示。由波形圖可以看到,相比于輸入,輸出結果延遲5個時鐘周期出現,這是使用流水線結構造成的結果。例如輸入(R,G,B)=(1023,1023,1023),在5個時鐘周期后輸出(Y,Cb, Cr)=(944,514,514)。雖然輸出延遲了5個時鐘周期,但每計算一個像素顏色轉換仍只需要1個時鐘周期。

圖9  RGB2YCbCr模塊仿真輸出

同理,可以采用方案2,即FPGA芯片內的RAM構造乘法器查找表,可以實現YCbCr向RGB的顏色空間轉換。波形仿真如圖10所示。由波形圖可以看到,相比于輸入,輸出結果延遲3個時鐘周期出現,這是使用寄存器鎖存造成的結果。例如輸入(Y,Cb, Cr)=(944,514,514),在3個時鐘周期后輸出(R,G,B)=(1023,1021,1023)。雖然輸出延遲了3個時鐘周期,但每計算一個像素顏色轉換仍只需要1個時鐘周期。

圖10  YCbCr2RGB模塊仿真輸出

3.3 細胞神經網絡的IP核設計

根據CNN的理論,模板中的權數分別對應了待處理像素周圍的八個像素,所以在對某個像素進行處理之前,必須先讀入該點周圍的八個像素點,即某個像素點的結果不僅同本身像素有關,而且同鄰域點像素灰度值有關。因為采用的CMOS圖像傳感器每行640個像素。因此構造3

linux操作系統文章專題:linux操作系統詳解(linux不再難懂)


評論


相關推薦

技術專區

關閉