摘 ?要:近幾年來,卷積神經(jīng)網(wǎng)絡(luò)被廣泛應(yīng)用于圖像處理和目標(biāo)檢測(cè)等領(lǐng)域,并且取得了很多突破性的研究成果。本文介紹了卷積神經(jīng)網(wǎng)絡(luò)的基本原理和計(jì)算機(jī)中圖像的存儲(chǔ),并介紹了卷積神經(jīng)網(wǎng)絡(luò)在黑白圖像上進(jìn)行模糊、銳化、邊緣檢測(cè)、浮雕效果、漸變效果等處理的應(yīng)用。采用不同的卷積核對(duì)圖像處理會(huì)有不同的影響,這對(duì)研究圖像處理和識(shí)別有很重要的意義。
關(guān)鍵詞:卷積神經(jīng)網(wǎng)絡(luò);圖像處理;卷積核
中圖分類號(hào):TP311 ? ? 文獻(xiàn)標(biāo)識(shí)碼:A
Abstract:In recent years,Convolutional Neural Network (CNN) has been widely applied in image processing,target detection,etc.,with a series of breakthrough research results.This paper expounds the basic principle of CNN and the storage of images in computer.It introduces the application of CNN on black-and-white image processing such as blurring,sharpening,edge detection,embossing effect and gradient effect.It is shown that different convolution kernels have different effects on image processing,which is very important for studying image processing and recognition.
Keywords:Convolutional Neural Network (CNN);image processing;convolution kernel
1 ? 引言(Introduction)
隨著計(jì)算機(jī)性能的不斷提高,卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)在圖像處理和圖像識(shí)別方面取得了突破[1-3]。傳統(tǒng)的多層神經(jīng)網(wǎng)絡(luò)由輸入層、多個(gè)隱藏層和輸出層組成。在圖像處理問題中,一個(gè)像素的灰度值可以由輸入層的每個(gè)神經(jīng)元來表示。但是使用傳統(tǒng)的多層神經(jīng)網(wǎng)絡(luò)會(huì)存在兩個(gè)問題,一是相鄰兩層的神經(jīng)元是全相連,訓(xùn)練速度會(huì)因?yàn)閰?shù)太多而受到限制。二是忽略圖像的空間結(jié)構(gòu),將會(huì)使識(shí)別性能受到限制[4]。鑒于以上問題,卷積神經(jīng)網(wǎng)絡(luò)使用了特殊結(jié)構(gòu)來快速對(duì)圖像進(jìn)行訓(xùn)練。使多層神經(jīng)網(wǎng)絡(luò)易于使用,多層結(jié)構(gòu)可以很大的提高識(shí)別準(zhǔn)確率[5]。
2 ? ?圖像處理基礎(chǔ)(Fundamentals of image processing)
2.1 ? 圖像的存儲(chǔ)
圖像中的每一個(gè)點(diǎn)都有一種顏色。坐標(biāo)(x,y)表示一個(gè)點(diǎn)的位置。每個(gè)點(diǎn)的位置(x,y)和這個(gè)點(diǎn)的顏色有一定的對(duì)應(yīng)關(guān)系,由函數(shù)f表示。所以保存圖像就相當(dāng)于將這個(gè)函數(shù)f在計(jì)算機(jī)里表示出來。若把圖像里所有的點(diǎn)的顏色保存下來,會(huì)遇到以下兩個(gè)困難:首先,圖像中有無數(shù)點(diǎn),因此需要將無數(shù)點(diǎn)的顏色全部保存。第二,顏色有無數(shù)種,所以要以整數(shù)形式表示一個(gè)顏色,需要無窮多的數(shù)字。為了解決上述問題,需要對(duì)圖像進(jìn)行數(shù)字化處理,包括掃描、采樣和量化[6]。掃描是按特定順序遍歷圖像的過程。下面分別對(duì)采樣和量化進(jìn)行介紹。
2.2 ? 采樣
采樣的目的是對(duì)圖像空間坐標(biāo)進(jìn)行離散化處理。也即把空間上連續(xù)的圖像通過一系列操作轉(zhuǎn)換為離散點(diǎn)集的過程,這些點(diǎn)集可用像素表示。圖像的空間分辨率可由采樣決定。在采樣時(shí),將連續(xù)圖像在空間上劃分為M×N個(gè)網(wǎng)格,然后對(duì)每個(gè)小格區(qū)域上相應(yīng)模擬圖像的亮度進(jìn)行平均處理,作為該小方格中點(diǎn)的值;或者,將與方格交點(diǎn)處的模擬圖像對(duì)應(yīng)的亮度值作為該小方格交點(diǎn)處的值[6]。采樣點(diǎn)的數(shù)量與圖像質(zhì)量正相關(guān)。它們的關(guān)系如圖1所示。
2.3 ? 量化
量化的目的是對(duì)像素的明暗信息進(jìn)行離散化處理。也即將采樣后得到的各像素的模擬量灰度值轉(zhuǎn)為離散量。量化值一般用整數(shù)來表示。量化級(jí)數(shù)和圖像質(zhì)量也是正相關(guān)。圖像質(zhì)量會(huì)隨著量化級(jí)數(shù)的增多而變好。同理,量化等級(jí)變小時(shí),灰度分辨率會(huì)降低,甚至出現(xiàn)假輪廓現(xiàn)象。量化級(jí)數(shù)和圖像質(zhì)量的關(guān)系如圖2所示。
3 ?卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network, ? ? CNN)
卷積神經(jīng)網(wǎng)絡(luò)一開始是根據(jù)人類視覺系統(tǒng)提出的[7],并且不斷修正,逐漸成為一個(gè)非常適合識(shí)別和處理圖像的多層神經(jīng)網(wǎng)絡(luò)。卷積神經(jīng)網(wǎng)絡(luò)是深度學(xué)習(xí)中的一個(gè)重要算法,主要由輸入層、卷積層、池化層、全連接層和輸出層組成[8]。
如圖3所示,第一層是輸入層,可以是輸入多個(gè)矩陣,之后是卷積層。在卷積層后面是池化層。卷積層+池化層的組合可以多次出現(xiàn),在圖3中出現(xiàn)了兩次??梢愿鶕?jù)實(shí)際模型靈活地使用卷積層和池化層的組合,并且在構(gòu)建模型時(shí)不限制這些組合。但是若干個(gè)卷積層+池化層的組合在卷積神經(jīng)網(wǎng)絡(luò)中最為常見。之后是全連接層,全連接層也是深度神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),只是全連接層可以對(duì)輸入進(jìn)行加權(quán)求和處理,之后通過激活函數(shù)進(jìn)行輸出。
3.1 ? 卷積層
在卷積神經(jīng)網(wǎng)絡(luò)中,二維的卷積可以由以下公式表示。
其中,X是輸入,W是卷積核。n_in為輸入矩陣的個(gè)數(shù)。Xk代表第k個(gè)輸入矩陣。Wk是指第k個(gè)卷積核矩陣。
卷積核與輸入圖像一樣,一般也是由二維矩陣表示,并且矩陣中的每個(gè)數(shù)被稱為權(quán)重。卷積計(jì)算時(shí)將卷積核矩陣與圖像矩陣左上角對(duì)齊,然后把卷積核向右平移一個(gè)像素,每個(gè)權(quán)重乘以對(duì)應(yīng)圖像的像素,再把這些乘積加起來作為卷積的結(jié)果。卷積層一般會(huì)通過ReLU=max(0,x)激活函數(shù)再進(jìn)行輸出。
3.2 ? 池化層
可以將卷積層中提取到的特征進(jìn)行訓(xùn)練,來輸出分類的結(jié)果。但是,如果應(yīng)用提取到的全部特征進(jìn)行訓(xùn)練,計(jì)算開銷會(huì)非常大。由于圖像的不同局部區(qū)域中的特征可能是相同的,所以可以對(duì)圖像某個(gè)局部區(qū)域中不同位置的特征進(jìn)行統(tǒng)計(jì)和聚合,這就是池化。池化主要包括最大池化和平均池化。最大池化是指求出指定區(qū)域中某個(gè)卷積特征的最大值,同樣,平均池化則需要求出指定區(qū)域中某個(gè)卷積特征的平均值。舉例采用取最大值的池化方法如下。采用2×2的池化,步幅為2。首先從灰色2×2區(qū)域容易看出,最大值為5,那么合并灰色區(qū)域,對(duì)應(yīng)的池化輸出位置的值為5。以同樣的方式,可以獲得其他區(qū)域的輸出值。最終,我們可以用2×2的矩陣表示4×4的矩陣。在池化后圖像進(jìn)行了壓縮。最大池化如圖4所示。
4 ? 圖像處理(Image processing)
本文用黑白lena圖像作為輸入圖像,使用python語(yǔ)言進(jìn)行圖像的讀取和處理,并使用3*3的卷積核進(jìn)行卷積處理。
4.1 ? 圖像模糊處理
本實(shí)驗(yàn)使用不同的卷積核模糊處理黑白lena圖像。首先對(duì)圖像進(jìn)行離散化處理。當(dāng)卷積核分別為W=和W=時(shí),模糊圖像如圖5所示。
4.2 ? 圖像銳化處理
本實(shí)驗(yàn)使用不同的卷積核銳化處理黑白lena圖像。首先讀取圖像并將其離散化,之后卷積核分別取W=和W=,銳化圖像如圖6所示。
4.3 ? ?圖像邊緣檢測(cè)
本實(shí)驗(yàn)使用不同的卷積核對(duì)lena圖像進(jìn)行邊緣檢測(cè)。當(dāng)卷積核分別為W=和W=時(shí),圖像邊緣檢測(cè)結(jié)果有很大不同。如圖7所示。
4.4 ? 圖像浮雕處理
本實(shí)驗(yàn)使用不同的卷積核對(duì)lena圖像進(jìn)行浮雕處理。當(dāng)卷積核分別為W=和W=時(shí),圖像浮雕效果如圖8所示。
4.5 ? 圖像漸變效果
以下實(shí)驗(yàn)將使用不同的卷積核對(duì)lena圖像進(jìn)行漸變處理。分別實(shí)現(xiàn)圖像的垂直漸變和水平漸變。當(dāng)卷積核分別為W=和W=時(shí),圖像漸變效果如圖9所示。
5 ? 結(jié)論(Conclusion)
卷積神經(jīng)網(wǎng)絡(luò)作為深度學(xué)習(xí)中的一個(gè)重要算法,在圖像處理方面有很大的優(yōu)勢(shì)。卷積核由神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)而得到,它可以提取圖像復(fù)雜的特征。本文介紹了卷積神經(jīng)網(wǎng)絡(luò)在圖像處理方面的具體應(yīng)用,通過不同的卷積核對(duì)圖像進(jìn)行了不同的豐富操作,包括圖像的模糊、銳化、邊緣檢測(cè)、浮雕效果、漸變效果等,對(duì)圖像處理和識(shí)別有很重要的意義。
參考文獻(xiàn)(References)
[1] Kim Y H,Kim H,Kim S W.Illumination normalization using convolutional neural network with application to face recognition[J].Electronics Letters,2017,53(6):399-401.
[2] Igor Sevo,AleksejAvramovic.Convolutional neural network based automatic object detection on aerial images[J].IEEE Geoscience and Remote Sensing Letters,2016,13(5):740-744.
[3] He K,ZhangX,RenS,et al.Spatial pyramid pooling in deep convolutional networks for visual recognition[J].IEEE Transactions on Pattern Analysis and Machine Intelligence, ? ? ? 2015,37(9):1904-1916.
[4] 李彥冬,郝宗波,雷航.卷積神經(jīng)網(wǎng)絡(luò)研究綜述[J].計(jì)算機(jī)應(yīng)用,2016,36(9):2508-2515.
[5]常亮,鄧小明,周明全,等.圖像理解中的卷積神經(jīng)網(wǎng)絡(luò)[J].自動(dòng)化學(xué)報(bào),2016,42(9):1300-1312.
[6] 朱志剛,林學(xué)訚,石定機(jī).數(shù)字圖像處理[M].北京:電子工業(yè)出版社,2007:1-12.
[7] 王振,高茂庭.基于卷積神經(jīng)網(wǎng)絡(luò)的圖像識(shí)別算法設(shè)計(jì)與實(shí)現(xiàn)[J].現(xiàn)代計(jì)算機(jī)(專業(yè)版),2015,7(20):61-65.
[8] 孫志軍,薛磊,許陽(yáng)明,等.深度學(xué)習(xí)研究綜述[J].計(jì)算機(jī)應(yīng)用研究,2012,29(8):2806-2810.
作者簡(jiǎn)介:
邢珍珍(1987-),女,碩士,講師.研究領(lǐng)域:計(jì)算機(jī)應(yīng)用.