狄恩彪,徐光輝
(陸軍工程大學研究生院,江蘇 南京 210007)
圖像的存儲格式種類繁多,其中JPEG 格式的圖像因其壓縮質(zhì)量高,在圖像傳輸和存儲中具有重要地位。離散余弦變換(Discrete Cosine Transform,DCT)[1]常用于圖像信息域轉(zhuǎn)換,是JPEG 壓縮技術(shù)的核心技術(shù)之一,并有快速算法支持。
當前的人工智能算法包括深度學習算法,其輸入大都為灰度圖像或者彩色圖像。若圖像資料為JPEG 格式或者其他壓縮格式,則需要先解碼還原圖像,而后進行訓練。若輸入端為灰度圖像,還需要將還原的彩色圖進行灰度化。若可以直接利用DCT 的性質(zhì)不需要完全解碼,從JPEG 圖像中提取DCT 后的YCbCr 通道信息,輸入神經(jīng)網(wǎng)絡中進行訓練,既可以節(jié)約反向DCT 的時間,又可以利用DCT 提取的特征進行訓練,相當于一層特征提取層,從而壓縮神經(jīng)網(wǎng)絡的深度,提高訓練效率。同時,在硬件上進行邊緣計算時同樣具有高效率的優(yōu)勢。
近年來,國內(nèi)外在基于DCT 域的卷積神經(jīng)網(wǎng)絡研究上取得較好成果[2-6],同時在基于JPEG 域的卷積神經(jīng)網(wǎng)絡研究方面也有一定進展[7-9]。通過完善基于DCT 域的目標識別網(wǎng)絡,從而為高效的智能識別系統(tǒng)提供可參考的方案。
在JPEG 圖像壓縮算法中,基于DCT 的圖像壓縮編碼過程為基本順序過程,能使圖像壓縮獲得較高的壓縮比。DCT 是最小均方誤差條件下的最佳正交變換。不同于傅里葉變換,DCT 的對象在實數(shù)域上,在圖像信息處理中有一定優(yōu)勢。DCT 是傅里葉變換的特例,即傅里葉變換中無正弦項時,則退化為DCT。因此,DCT 同樣具有實際物理意義,可用于簡化傅里葉變換。它與傅里葉變換一樣有快速算法,在圖像壓縮中應用廣泛。二維DCT 的正變換公式為:
其中u=0,1,…,M-1,v=1,2,…,N-1,還有:
可以看到,變換后的每一個點與所有像素點有關,可以將其看作神經(jīng)網(wǎng)絡,以單通道圖像為輸入層,以DCT 后的信息為輸出層,連接方式為全連接,權(quán)重均為余弦函數(shù),每一點均可以看作原圖像的一個特征值。DCT 可以表示為矩陣相乘的形式:
通過DCT 的矩陣形式,可以將變換分為行變換和列變換。DCT 后低頻分量主要集中在矩陣左上角,高頻分量集中在右下角。高頻分量代表的是圖像的細節(jié),值偏小,往往接近0,是次要信息,而低頻分量是圖像的輪廓信息。因此,DCT 用于圖像壓縮,主要是舍棄高頻分量,保留低頻分量,從而達到壓縮目的。雖然是有損壓縮,但在清晰度要求不高的情形下,這種壓縮的質(zhì)量和效率完全滿足要求。
生活中人眼分辨事物時對圖像清晰度要求不高,可以利用部分DCT 的結(jié)果作為卷積神經(jīng)網(wǎng)絡學習的對象,如圖像FM×NDCT 后只取左上角Tm×n的值作為特征輸入。通常卷積神經(jīng)網(wǎng)絡輸入為方陣,如果是非方陣的數(shù)據(jù)則通常補齊后再做DCT,重構(gòu)后可以去掉補齊的部分,得到原始的圖像信息。因此,令m=n,其部分DCT 公式為:
通過縮減變換矩陣的尺寸,對不必要計算的高頻分量直接放棄計算,從而提高信息提取的效率。DCT 提取圖像特征具有可逆性,完全DCT 后可以進行逆DCT 還原圖像。部分DCT 進行逆變換可以得到原圖像的模糊圖像,DCT 核尺寸N越大,還原后的圖像越清晰,越容易識別,見圖1。
圖1 不同尺寸DCT 核的圖像復原能力
圖像DCT 后的特征具有層次性,從DCT 后的矩陣中提取左上角任意尺寸的信息均能還原部分圖像信息,只是清晰度受尺寸影響。因此,越靠近左上角的信息,特征越重要。例如,最左上角的值代表圖像的均值,是圖像重要的特征之一。從圖1 可以看出,DCT 核為40%尺寸的部分DCT 后還原的圖像,與原圖相比損失84%的高頻信息,圖像清晰度仍與原圖幾乎無異。
經(jīng)典的卷積神經(jīng)網(wǎng)絡通常由輸入層、卷積層、池化層、輸出層組成,卷積核通常為3×3、5×5等大小不等,池化通常為2×2。通過卷積層和池化層交替進行特征提取,由于網(wǎng)絡深度較大,訓練時間往往較長。為了提高訓練效率和邊緣計算效率,當前有各種硬件加速方案。經(jīng)典的神經(jīng)網(wǎng)絡在提高精度和效率的同時也加大了對硬件加速的依賴,對于如小型無人機等平臺無法搭載額外過重的硬件,又對精度和實時性有一定要求,則必須降低網(wǎng)絡深度,減少卷積次數(shù)。當前硬件前端拍攝的圖片往往采用通過硬件轉(zhuǎn)換成JPEG 流的方式進行存儲和傳輸。充分利用JPEG 的優(yōu)點,從中提取DCT 信息,既可提高傳輸效率,又可提高邊緣計算效率,可以部分緩解硬件限制帶來的困難。
固定尺寸的圖片,它的DCT 矩陣是一致的,可以根據(jù)DCT 的特性設計成2 層神經(jīng)網(wǎng)絡結(jié)構(gòu),分別為DCT 行變換層和DCT 列變換層,網(wǎng)絡結(jié)構(gòu)見圖2。
圖2 前置部分DCT 神經(jīng)網(wǎng)絡結(jié)構(gòu)
非JPEG 格式的圖像均需輸入前置的部分DCT神經(jīng)網(wǎng)絡,而JPEG 格式的圖像或者數(shù)據(jù)流則直接繞過DCT,但需要部分解碼,包括哈夫曼解碼、反量化等步驟。由于DCT 可以極大地壓縮數(shù)據(jù),圖像進行部分DCT 后節(jié)點減少數(shù)倍,可以減少卷積神經(jīng)網(wǎng)絡深度。同時,由于DCT 后圖像特征并不是均勻分布,并不合適進行池化,因此以卷積層為主。網(wǎng)絡結(jié)構(gòu)見圖3。
圖3 基于DCT 的CNN 網(wǎng)絡設計
以數(shù)據(jù)集MNIST 作為實驗對象,探索不同尺寸的DCT 核對訓練時間和精度的影響。網(wǎng)絡中只設置了一層卷積層,卷積核為5×5,取6 個卷積核,學習率為1,分組大小為20,重復訓練次數(shù)為10。通過仿真得到不同尺寸的DCT 核對網(wǎng)絡收斂效率、模型精度和訓練時間的影響,見圖4 和圖5。
圖4 DCT 核尺寸對網(wǎng)絡收斂的影響
圖4 中,DCT 核的尺寸越大,模型在訓練集上的誤差越小,但收斂速度偏慢。主要原因是,在卷積核尺寸一定的情況下,DCT 核越大,則卷積后得到的特征圖尺寸也越大。卷積層與輸出層為全連接,因此需要調(diào)節(jié)的參數(shù)也越多,收斂偏慢,但更多的參數(shù)可以使誤差更小??傮w來看,重復訓練4~5次后誤差趨于穩(wěn)定,重復訓練帶來的收益越來越少,可以考慮用earlystopping 提前結(jié)束訓練,提高訓練效率和緩解過擬合問題。
圖5 中,DCT 核的尺寸越大,模型在測試集上的誤差越小,泛化能力越強,同時訓練時間增加,因此精度和效率需要折中選擇。根據(jù)仿真結(jié)果,尺寸過小的DCT 核會導致誤差太大,不予考慮;尺寸過大的DCT 核則訓練時間偏長,收斂速度偏慢,也不予考慮。以MNIST 數(shù)據(jù)集為例,單張圖像尺寸為28×28,DCT 核尺寸大于10 后,錯誤率在3%左右;DCT 核尺寸大于12 時,誤差收斂速度較快,在1 次訓練后訓練誤差均能降到10%以內(nèi)。綜合考慮,以尺寸為11 的DCT 核為優(yōu)先考慮,即原圖形尺寸的40%左右為佳。
圖5 DCT 核尺寸對精度和訓練時間的影響
以經(jīng)典的CNN 網(wǎng)絡為對照對象,選取尺寸為11 的DCT 核進行比較,分組大小都為20,重復訓練次數(shù)均為10 次,卷積核均為5×5。其中,經(jīng)典的CNN 網(wǎng)絡采用GitHub 上的CNN 網(wǎng)絡,2 層卷積層和2 層池化層。PC 硬件配置采用主頻3.40 GHz 的Inter 處理器,64 位win10 操作系統(tǒng),通過Matlab軟件仿真得到結(jié)果,見表1。
通過比較,精度與經(jīng)典CNN 相當,基于部分DCT 的CNN 在訓練時間上具有明顯優(yōu)勢,只有經(jīng)典CNN 訓練時間的1/16 左右,極大地提高了訓練效率。
表1 經(jīng)典CNN 與基于部分DCT 的CNN 的性能比較
測試集上的測試時間可以視作邊緣計算的時間,測試時間的長短決定了單位時間內(nèi)可以處理的圖像數(shù)。測試時間越短,單位時間可以處理的圖像數(shù)越多,模型的實時性也越好。通過比較,基于部分DCT 的CNN 其邊緣計算效率是經(jīng)典CNN 的20倍左右,相當于經(jīng)典CNN 識別1 張圖像的同時,基于部分DCT 的CNN 可以識別20 張圖像。對于當前越來越大的數(shù)據(jù)量,高效的邊緣計算非常重要。在精度要求相對寬松的場景下,基于部分DCT 的CNN 具有一定的應用場景。
DCT 算法和CNN 的結(jié)合是新舊算法的碰撞,合理運用DCT 的特性,可以為CNN 性能的改善提供可行的方案。通過仿真實驗,可以證明DCT 與CNN 結(jié)合的可行性,同時通過部分DCT 的方法兼顧算法效率和準確率,以圖像尺寸的40%左右為較優(yōu)DCT 核尺寸。建立以部分DCT 為前置網(wǎng)絡的CNN,通過對比經(jīng)典CNN,在準確率相當?shù)那疤嵯?,極大地提高了訓練效率和邊緣計算效率。以40%圖像尺寸的DCT 核為例,訓練效率提高16 倍左右,邊緣計算效率提高20 倍左右。
當前有多種標準如JPEG、MPEG、H.263 等均采用DCT 算法,通過直接提取DCT 后的系數(shù)用于CNN,或可提供不同的目標識別與檢測方案。