羅 山
(攀枝花學院交通與汽車工程學院,四川 攀枝花 617000)
經典的圖像壓縮算法如熵編碼算法,行程編碼算法,LZW壓縮算法[1],矢量量化編碼算法[2],DCT壓縮算法[3],小波壓縮算法[4]等存在某些方面的不足,無法獲得滿意的壓縮效果。人工神經網絡具有強大的模式識別和數據擬合能力,在圖像壓縮領域的應用日益廣泛[5]。它大大降低了處理大容量的交通圖像的復雜性,并且對圖像中的噪聲具有很好的容錯性,因此采用性能良好的神經網絡進行交通圖像的壓縮。
神經網絡種類繁多,其中應用最為廣泛的是BP(Back Propagation)神經網絡[6],具有非常強的非線性映射能力,結構簡單、易于實現(xiàn)。三層BP網絡的典型結構如圖1所示。
圖1 三層BP網絡模型
BP網絡的核心是誤差反向傳播算法與梯度下降算法,其基本原理是計算實際輸出與期望輸出的誤差,通過誤差反向傳播求得權值和閾值的梯度,利用梯度下降法不斷調整網絡的權值和閾值,使網絡的誤差平方和最小。BP網絡的學習分為信號正向傳播和誤差反向傳播兩個過程,信號正向傳播是輸入已知學習樣本,通過構建的網絡和前一次迭代的權值和閾值,從網絡的第一層向后逐層計算各神經元的輸出;誤差反向傳播是通過計算輸出層輸出與期望值的誤差,使誤差沿原信號路徑返回,通過梯度下降法不斷修改各層的連接權值和神經元節(jié)點閾值。訓練網絡時,這兩個過程反復交替進行,直到誤差或訓練次數滿足要求為止。
把一組輸入模式通過少量的隱含層神經元映射到一組輸出模式,并使輸出模式盡可能等于輸入模式。因此,隱含層神經元的值和相應的權值向量可以輸出一個與原輸入模式相同的向量。當隱含層的神經元個數少于輸入層神經元個數時,就意味著隱含層能用更少的數來表現(xiàn)輸入模式,即實現(xiàn)了數據壓縮。
從輸入層到隱含層的映射相當于對圖像壓縮的編碼,從隱含層到輸出層的映射相當于解碼,對壓縮后的圖像進行反變換實現(xiàn)圖像重建。輸入模式經過隱含層到達輸出層,訓練好的網絡隱含層神經元值則是圖像壓縮的結果,而輸出層神經元值則是重建的圖像。設計時輸入層和輸出層神經元個數等于原始圖像分塊后子圖像的像素數,隱含層的神經元個數比輸入層和輸出層的神經元個數少。
基于BP神經網絡的交通圖像壓縮系統(tǒng)框圖如圖2所示。
圖2 BP神經網絡交通圖像壓縮系統(tǒng)
2.2.1 圖像分塊
首先將圖像大小調整為N×N像素大小。為控制網絡的規(guī)模,將大小為N×N的圖像劃分為k×k大小的圖像塊,按行從左向右依次將每個圖像塊轉換為一個列向量,依次排列構成一個k2×(N2/k2)大小的矩陣作為輸入訓練樣本。
2.2.2 歸一化
為保證網絡性能的穩(wěn)定性,輸入訓練樣本需要進行歸一化處理。這里考慮到圖像數據的特殊性,像素灰度值為整數,且位于0~255之間,因此將灰度值除以255進行歸一化處理。
2.2.3 BP網絡壓縮
1) 構建網絡:選擇三層的BP神經網絡結構,l、n分別為輸入層與輸出層神經元個數,隱含層神經元個數決定了壓縮比的大小,可根據式(1)估計確定[7]:
(1)
式中:m為隱含層神經元個數;a為0~10之間的常數。
因為BP網絡的非線性逼近能力是通過S型激活函數體現(xiàn)出來的,所以隱含層一般采用S型激活函數,輸出層采用線性激活函數。
3) 保存壓縮結果:訓練完成后,壓縮的結果是每個輸入樣本對應的隱含層神經元向量的值,以及網絡的權值和閾值。將輸入樣本與輸入層和隱含層的連接權值矩陣相乘后加上隱含層的閾值,再用S型激活函數處理,即可得到隱含層神經元向量的值。
2.2.4 Huffman編碼及解碼
對壓縮的結果進行Huffman編碼,以進一步去除統(tǒng)計冗余。對Huffman編碼碼元進行解碼,還原壓縮結果,以便下一步進行BP網絡解碼。
2.2.5 BP網絡解碼
將Huffman解碼輸出值與隱含層和輸出層的連接權值矩陣相乘后加上輸出層的閾值即得到BP網絡解碼輸出。
2.2.6 去歸一化
將BP網絡解碼輸出數據乘以像素峰值255,并取整即可進行去歸一化。
2.2.7 圖像重建
去歸一化后的解碼矩陣與訓練樣本矩陣的大小相同,將該矩陣的每一列抽取出來,重新排列成k×k大小的矩陣,并對每個k×k矩陣按行從左向右依次排列,則可重建原圖像。
使用大小為256×256的圖像進行仿真實驗??紤]控制網絡的規(guī)模,并通過對不同大小的圖像塊進行實驗可知,將圖像劃分為4×4的子塊可獲得更好的壓縮性能。然后對訓練樣本矩陣進行歸一化處理。神經網絡參數設置為:輸入層和輸出層神經元個數均為16,隱含層神經元數目根據式(1)可取6~16間的數,通過實驗確定取7可獲得良好的壓縮性能;隱含層激活函數采用Tan-Sigmoid函數,輸出層采用線性激活函數;目標誤差最小值為0.001,最大訓練步數為1 000;分別采用自適應學習率梯度下降法[8]和BFGS擬牛頓法[9]訓練網絡。
利用設置好的神經網絡進行壓縮與重建,仿真實驗結果如圖3~5所示。
圖3 不同學習算法壓縮效果對比(一)
圖4 不同學習算法壓縮效果對比(二)
圖5 不同學習算法壓縮效果對比(三)
為進一步比較自適應學習率梯度下降法與BFGS擬牛頓法的壓縮效果,采用峰值信噪比(PSNR)和壓縮率(Rate)來客觀評價圖像壓縮質量,其定義分別為:
(2)
(3)
其中,cp為壓縮圖像文件的大小(字節(jié)數)。
得到的壓縮性能指標結果如表1所示。
表1 不同學習算法的壓縮性能比較
分別對比圖3、圖4和圖5中壓縮后的重建圖像,自適應學習率梯度下降法的重建圖像中存在方塊效應,細節(jié)較模糊,失真度大;而BFGS擬牛頓法的重建圖像中幾乎沒有方塊效應,重建圖像保真度高,細節(jié)清晰,視覺效果良好。從表1可以看出,與自適應學習率梯度下降法相比,基于BFGS擬牛頓法壓縮的Rate只有小幅度的增大,壓縮比幾乎一樣,但PSNR有很大的提高,提高了6個dB以上,壓縮性能得到極大的改善??梢姡讷@得更低壓縮率(高壓縮比)的情況下,達到了重建圖像質量好的理想壓縮性能要求。
針對傳統(tǒng)的圖像壓縮算法在某些方面的不足,采用BP神經網絡實現(xiàn)交通圖像的壓縮。構建以BP神經網絡為核心的壓縮系統(tǒng),設置網絡參數,通過實驗確定合適的隱含層神經元個數和學習算法,BFGS擬牛頓法比自適應學習率梯度下降法的訓練時間短,壓縮性能更好,重建圖像質量更高。