王立 杜培明 周芳 王兵
摘要:卷積運算作為圖像空間域分析的重要工具,在《數(shù)字圖像處理》課程的本科教學(xué)中占有重要地位。近年來隨著深度學(xué)習(xí)架構(gòu)的飛速發(fā)展,卷積運算成為深度學(xué)習(xí)技術(shù)的重要組成部分,并在圖像工程和機器視覺領(lǐng)域得到廣泛應(yīng)用。課程教學(xué)中,應(yīng)與時俱進,探索在圖像空間域的傳統(tǒng)卷積應(yīng)用基礎(chǔ)上,結(jié)合深度學(xué)習(xí)框架,介紹卷積的各種變體及應(yīng)用場景,將圖像處理課程教學(xué)與人工智能機器學(xué)習(xí)大背景有機融合,使學(xué)生更加深入透徹的理解卷積算法并能夠在實際場景中應(yīng)用深度卷積網(wǎng)絡(luò),以適應(yīng)大數(shù)據(jù)、云計算背景下的新工科教育。
關(guān)鍵詞:圖像工程;卷積;卷積神經(jīng)網(wǎng)絡(luò);機器學(xué)習(xí)
中圖分類號:TP399 文獻標(biāo)識碼:A
文章編號:1009-3044(2020)10-0145-03
《數(shù)字圖像處理》課程內(nèi)容與計算機視覺、機器學(xué)習(xí)和人工智能都有交叉融合的部分,是一門綜合性課程,根據(jù)研究內(nèi)容和方法的不同可分為三個層次:圖像處理、圖像分析和圖像理解。而卷積運算作為一種重要的時域處理工具,無論是在像素級的圖像處理上(如平滑去噪)還是在抽象層次上的圖像分析(如基于邊緣提取的圖像分割),甚至是最高級別的圖像理解上(如特征提取和目標(biāo)和識別)都發(fā)揮著重要作用。
隨著大數(shù)據(jù)和智能計算時代的來臨,數(shù)據(jù)量和計算能力及圖像工程的各個領(lǐng)域也發(fā)生了質(zhì)的變化。無論是圖像工程的哪個層次都更注重模型的建立和數(shù)據(jù)的訓(xùn)練計算。傳統(tǒng)的《數(shù)字圖像處理》教學(xué)也應(yīng)結(jié)合當(dāng)前的技術(shù)趨勢在內(nèi)容上進行拓展,實現(xiàn)人工智能時代的新工科教育。以卷積運算為例,作為一種基元的特征提取工具和一種特殊的數(shù)據(jù)壓縮工具,在機器學(xué)習(xí)和深度學(xué)習(xí)模型的建立上同樣發(fā)揮著重要的作用,如卷積神經(jīng)網(wǎng)絡(luò)(CNN)便是一個典型的代表,無論是在像素級的圖像處理還是更高層次的圖像分析和圖像理解都能夠應(yīng)用并取得很好的效果。因此,在教學(xué)中,不應(yīng)拘泥于傳統(tǒng)方法的講述,更應(yīng)該結(jié)合當(dāng)下技術(shù)的發(fā)展,賦予傳統(tǒng)方法新的內(nèi)涵,更加洞悉方法的本質(zhì)。學(xué)生不僅是學(xué)習(xí)方法,更是拓寬思維。培養(yǎng)學(xué)生建立起智能計算時代應(yīng)該具備的分析解決問題的思維模式。本文主要通過三個部分對卷積運算進行教學(xué)拓展:首先是闡述卷積的定義和性質(zhì),其次是介紹卷積運算在新的應(yīng)用中可能出現(xiàn)的變體形式,最后論述了卷積在圖像工程中的各種應(yīng)用,包括傳統(tǒng)經(jīng)典的應(yīng)用和新技術(shù)新框架的應(yīng)用并得出結(jié)論。
1卷積在二維圖像處理中的使用
通常來說,卷積運算是具有可交換性的,需要將核相對于輸入進行翻轉(zhuǎn)。而互相關(guān)函數(shù)和卷積運算幾乎一樣,但是并沒有對核進行翻轉(zhuǎn)。許多機器學(xué)習(xí)的庫實現(xiàn)的是一個相關(guān)函數(shù)但稱之為卷積,卷積是核特征的復(fù)制查找。因此,在教學(xué)中須對這里進行說明,以去除學(xué)生在編程應(yīng)用中疑惑。二維卷積的實現(xiàn)方法如下圖所示:
圖像與模板的卷積從本質(zhì)上就是求取圖像與某一函數(shù)的相似性。舉例來說,圖像與高斯拉普拉斯函數(shù)的卷積就是獲取圖像與高斯拉普拉斯函數(shù)的相似性。當(dāng)圖像中存在區(qū)域與高斯拉普拉斯函數(shù)的曲線形狀相似時,圖像的卷積響應(yīng)達到最大。因此通過各種各樣的卷級模板可以捕捉圖像中各種特征。
在傳統(tǒng)意義上的圖像處理課程教學(xué)中,關(guān)于卷積的概念,通常是在空間域的圖像增強部分講解,它以掩模的形式,作為空間域濾波的基礎(chǔ),與頻率域的濾波器相對應(yīng),可以進行平滑與銳化的操作。銳化作用在圖像分割部分可進一步延伸為邊緣提取,作為分割的重要方法。而隨著CNN的出現(xiàn),卷積的內(nèi)涵進一步拓展,拓展至基礎(chǔ)特征提取、拓展至網(wǎng)絡(luò)模型的連接方式,通過對卷積的延伸講解,使學(xué)生從新的角度認(rèn)識理解卷積的重要作用,如特征基元的提取和連接方法的優(yōu)化。首先可以從卷積運算的性質(zhì)作為切入點并展開拓展,通過應(yīng)用操作使學(xué)生對卷積的本質(zhì)加深理解。而將卷積加入神經(jīng)網(wǎng)絡(luò)之中所形成的卷積神經(jīng)網(wǎng)絡(luò)就可以將特征提取和識別集中到一個學(xué)習(xí)機當(dāng)中。下面就從卷積的性質(zhì)和變形應(yīng)用兩方面,讓學(xué)生理解卷積操作作為連接方式的可能性,將像素級的圖像處理與機器學(xué)習(xí)模型有機地結(jié)合起來。
2卷積的性質(zhì)及其變體
2.1卷積的性質(zhì)及其應(yīng)用于機器學(xué)習(xí)的動機
卷積運算不但能夠在空間域?qū)D像進行增強運算,同時還由于它的某些性質(zhì)成為其能夠應(yīng)用于機器學(xué)習(xí)的動機,主要體現(xiàn)在:稀疏交互,參數(shù)共享和等變表示三個方面。使學(xué)生了解到,這些性質(zhì)使卷積能夠應(yīng)用于神經(jīng)網(wǎng)絡(luò)的連接部分,極大改善應(yīng)用于機器視覺的神經(jīng)網(wǎng)絡(luò)的調(diào)參和訓(xùn)練。
a)權(quán)值連接的稀疏交互性質(zhì)
傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)是通過使用全連接參數(shù)構(gòu)成的矩陣乘法建立輸入與輸出的連接關(guān)系,即每一層的每個神經(jīng)元都與相鄰層的所有神經(jīng)元建立連接。而加入卷積模塊的網(wǎng)絡(luò)的連接則相對稀疏,由于通常卷積核的大小遠(yuǎn)遠(yuǎn)小于輸入的大小,因此當(dāng)卷積核在圖像上滑動遍歷時使用的相同的權(quán)值,這將大大減少權(quán)值的數(shù)量。兩種連接方式的比較如圖2所示。這樣不僅減少了模型對參數(shù)空間的儲存要求,還提高了它們的運算效率。比如有m個輸入和n個輸出,那么需要調(diào)整m×n個參數(shù),相應(yīng)調(diào)參算法的時間復(fù)雜度為O(m×n)。而卷積模塊的稀疏連接使得輸入的數(shù)量大幅度減小,從而減少調(diào)參計算量,提高計算效率。在課程講述中,可對比講解神經(jīng)網(wǎng)絡(luò)的普通架構(gòu)以加強學(xué)生的理解。在實際應(yīng)用中,只要k比n小幾個數(shù)量級,就能在機器學(xué)習(xí)中取得好的表現(xiàn)。稀疏交互的圖形化解釋如圖2所示。
b)參數(shù)共享性質(zhì)
參數(shù)共享指的是在同一個模型中的多個函數(shù)運算中使用相同的參數(shù)。在帶有卷積層的網(wǎng)絡(luò)中,由于卷積運算在整個圖像上遍歷滑動,卷積核的每一個元素都作用在輸入的每一個位置上,因此卷積運算中的權(quán)值參數(shù)是共享的。這種共享保證了整個輸入只需要學(xué)習(xí)一個參數(shù)集合,即卷積模板權(quán)值,它可以顯著地把模型的存儲降低至k個參數(shù),并且k通常比m小很多個數(shù)量級。由于m和n大小大致相同,而k在實際中相對于m×n是很小的,因此卷積在存儲空間和計算效率方面都大幅度的優(yōu)于單一的密集的矩陣乘法的運算。講解時可通過程序代碼進一步說明。
c)等變表示性質(zhì)
等變表示有些類似于信號與系統(tǒng)中的線性時不變系統(tǒng),線性時不變系統(tǒng)的不變指的是輸入在時間軸上的移動會帶來輸出在時間軸上發(fā)生相同的移動,而等邊表示的不變則是指在空間上輸入與輸出的等變移動。例如,在用卷積模板來提取圖像的局部特性時,如果輸入中的特征對象發(fā)生移動,卷積運算產(chǎn)生的特征表示也會在輸出中移動同樣的量。在卷積神經(jīng)網(wǎng)絡(luò)的首層通常是卷積層,卷積層包含了各種各樣的卷積模板,這些卷積模板得到的各種局部灰度、色彩發(fā)生變化的局部特征,而這些局部特征會在圖像的各個區(qū)域反復(fù)出現(xiàn),不同的局部特征排列組合又構(gòu)成不同的高階特征。因此,卷積層的參數(shù)共享和等變表示極大地減少計算量,提高模型的調(diào)參效率。
卷積運算除了通過稀疏交互、參數(shù)共享和等變表示這三個方面的性質(zhì)來改進機器學(xué)習(xí)模型的應(yīng)用外,還提供了一種處理大小可變的輸入的方法。這樣輸入的圖像可以不必把分辨率調(diào)整到統(tǒng)一模式。因此,在機器學(xué)習(xí)領(lǐng)域產(chǎn)生了一種重要的網(wǎng)絡(luò)架構(gòu):卷積神經(jīng)網(wǎng)絡(luò)(CNN)。這種架構(gòu)極大地改善了機器視覺中的檢測和識別工作,甚至是在圖像分割、去噪等圖像分析和處理領(lǐng)域也取得了很好的效果。
2.2基本卷積核的變體
在卷積的某些應(yīng)用場合,特別是在機器學(xué)習(xí)的網(wǎng)絡(luò)架構(gòu)中用的卷積層時,通常不是指那種標(biāo)準(zhǔn)的離散卷積運算,而是對卷積的形式進行某種改變以期達到更好的學(xué)習(xí)效果。通過介紹空洞卷積和平鋪卷積這兩種卷積變體在深度模型架構(gòu)中的應(yīng)用,使學(xué)生對卷積的理解不止停留在基本的掩模運算。
2.2.1空洞卷積或擴張卷積(dilated convolution)
一般的卷積神經(jīng)網(wǎng)絡(luò)是通過卷積層和池化層的交替使用來達到特征提取和降維的作用。而空洞卷積(擴張卷積)則是通過在卷積模板中增加空洞,即權(quán)值為O的元素來達到感受野面積不變,但可以一步達到需要的降維輸出。特別是在FCN,即全連接卷積神經(jīng)網(wǎng)絡(luò)中,由于其需要不斷通過池化和上采樣的反復(fù)操作來實現(xiàn)語義分割,用傳統(tǒng)的卷積模板會造成特征信息的丟失。如果采用空洞卷積的方式,則可以在感受野面積不變的情況下一步實現(xiàn)特征提取和反卷積的同時,特征信息減少丟失。空洞卷積的示意圖如下圖3所示:
其中(a)圖為3x3的一般卷積模板;(b)圖對應(yīng)(a)圖的2倍擴張卷積模板,可以看到對于7x7的區(qū)域,只有9個標(biāo)記為紅色的點和卷積核進行卷積操作,其余點權(quán)值為0。因此雖然卷積核大小只有3x3,但是這個卷積所覆蓋的感受野卻達到了7x7;(c)圖是4倍空洞卷積操作,同理可推斷其能達到15x15的感受野。相比之下,空洞卷積的感受野在權(quán)值連接數(shù)不變的情況下是呈指數(shù)級的增長。因此,空洞卷積的優(yōu)點是在沒有進行池化損失信息的前提下,較大得擴大了感受野,使每個卷積的特征輸出都包含了較大范圍的信息。
2.2.2平鋪卷積
平鋪卷積是對卷積層和局部連接層進行了折中,它并不是對每一個空間位置的權(quán)重集合進行學(xué)習(xí),而是學(xué)習(xí)一組核使得當(dāng)對象在空間移動時卷積模板可以循環(huán)利用。這意味著在緊鄰的位置上擁有不同的過濾器,就像局部連接層一樣,但是對于這些參數(shù)的存儲需求僅僅會增長常數(shù)倍,這個常數(shù)就是核的集合大小,而不是整個輸出的特征映射大小。具體的卷積運算方式如圖4所示:
假設(shè)平鋪卷積有t個不同的核,上圖表現(xiàn)的是t=2的情況。其中一個核具有標(biāo)記為“a”和“b”的邊,而另一個具有標(biāo)記為“c”和“d”的邊。如果輸出右移一個像素,則使用一個不同的核,即輸出中的相鄰單元具有不同的參數(shù),在遍歷所有可用的t個核之后,循環(huán)回到第一個核。如果兩個輸出單元間隔t個步長的倍數(shù),則它們共享參數(shù)。由于權(quán)值的近處無關(guān),遠(yuǎn)處相關(guān),平鋪卷積可以學(xué)習(xí)到更加復(fù)雜的不變性。
3卷積的應(yīng)用
3.1卷積核在傳統(tǒng)的圖像增強領(lǐng)域的應(yīng)用:
卷積運算在傳統(tǒng)圖像處理領(lǐng)域主要應(yīng)用在圖像增強f如平滑,銳化)和邊緣提取等方面。卷積核通過局部的簡單差分運算實現(xiàn)圖像空間域上的微分運算,如一階、二階微分算子,通過這些微分算子的卷積運算實現(xiàn)噪聲的平滑和邊緣的提取。常用的算子有一階的Prewitt算子,Sobel算子等是通過對中心像素的系數(shù)加權(quán)形成不同的卷積模板;Carmy算子則是在一階算子的基礎(chǔ)之上,增加了非最大值抑制和雙閾值兩項改進提高了檢測的精確度;二階算子,如LOG算子,Laplacian算子等,可進行更加細(xì)致的邊緣檢測;卷積窗口就是一個濾波模板,通過微小窗口的代數(shù)加權(quán)運算實現(xiàn)對圖像局部特征的提取抽象,所謂特征提取即是對圖像特征的抽象表示,是對圖像數(shù)據(jù)的抽象壓縮。卷積模板是在二維空間中的數(shù)據(jù)抽象,高階的特征抽象是由低階的局部細(xì)小特征進一步抽象所得到的,因此卷積模板作為局部特征的提取基本運算有著十分重要的作用。
3.2卷積運算在深度卷積網(wǎng)絡(luò)中的應(yīng)用:
傳統(tǒng)的圖像特征提取方法,如邊緣檢測、SIFT、SURF、Haar特征等都是基于圖像局部的一階二階微分計算得來。伴隨著計算能力的大幅度提升,在深度學(xué)習(xí)技術(shù)快速發(fā)展的當(dāng)下,把卷積模板應(yīng)用到神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)機當(dāng)中,如卷積神經(jīng)網(wǎng)絡(luò)(CNN),可以統(tǒng)一有效地將特征提取的過程用卷積層和池化層來實現(xiàn)。CNN實質(zhì)上是將SIFT算子等方法全方位融合到一個模型之中,并擴大了規(guī)模和細(xì)節(jié)。而卷積網(wǎng)絡(luò)由于卷積的稀疏交互,參數(shù)共享和等變表示這三個方面的優(yōu)勢得到了巨大的發(fā)展和廣泛的應(yīng)用。通過介紹CNN的基本結(jié)構(gòu)對之前講解的卷積性質(zhì)可以更加充分的理解。
卷積網(wǎng)絡(luò)在本質(zhì)上是一種輸入到輸出的非線性函數(shù)映射,它是一種數(shù)據(jù)驅(qū)動的模型訓(xùn)練,只要用已知的模式和大量的樣本數(shù)據(jù)對卷積網(wǎng)絡(luò)加以訓(xùn)練,網(wǎng)絡(luò)就具有輸入輸出對之間的函數(shù)映射能力。通過對卷積神經(jīng)網(wǎng)絡(luò)的介紹,讓學(xué)生理解卷積不但可以作為空間域的二維掩模運算工具,還可以作為高效的權(quán)值連接模塊來實現(xiàn)數(shù)據(jù)的抽象和壓縮。通過對基本結(jié)構(gòu)示意圖的講解,啟發(fā)學(xué)生,卷積模板提取局部特征的本質(zhì)并沒有改變,每一個卷積層實質(zhì)上都是一次抽象特征的提取,隨著層數(shù)的增加,抽象的程度也逐步提升,輸入數(shù)據(jù)的壓縮為全連接層的訓(xùn)練提供便利。
卷積神經(jīng)網(wǎng)絡(luò)CNN主要用來識別二維圖像。CNN的卷積層是通過數(shù)以百計的卷積模板構(gòu)成,這些卷積模板的權(quán)值并不是通過人工設(shè)計的,而是通過大量的樣本數(shù)據(jù)訓(xùn)練產(chǎn)生,這樣就避免了人為的主觀局限性;同時,卷積網(wǎng)絡(luò)由于它的參數(shù)共享、稀疏連接等特殊性質(zhì),可以在模型的訓(xùn)練中進行并行學(xué)習(xí),GPU等硬件的發(fā)展使得這種并行學(xué)習(xí)在硬件層面上得到了解決方案,訓(xùn)練運算效率大幅提升。
卷積神經(jīng)網(wǎng)絡(luò)模型的連接結(jié)構(gòu)更接近于實際的生物神經(jīng)網(wǎng)絡(luò),并且權(quán)值共享降低了網(wǎng)絡(luò)的復(fù)雜性,具有高維輸入向量的圖像可以直接輸入網(wǎng)絡(luò),一次性解決特征提取,特征選擇和特征分類這些步驟,避免了人工設(shè)計特征提取方法和分類過程中人的主觀判斷和多個模型計算的復(fù)雜度。成為計算機視覺中的各種模型和解決方案的基石。
目前,卷積神經(jīng)網(wǎng)絡(luò)已經(jīng)廣泛應(yīng)用于機器視覺,圖像目標(biāo)檢測識別,語音識別等方面并取得了巨大的發(fā)展,日臻成熟完善。隨著GPU等并行計算的硬件廣泛應(yīng)用,卷積網(wǎng)絡(luò)的深度也進一步提高,應(yīng)用效果不斷提高。當(dāng)然,卷積網(wǎng)絡(luò)也由于其模型參數(shù)巨大(數(shù)以萬計)而在訓(xùn)練中存在諸多瓶頸,模型對噪聲的敏感度較高,對方向及位置關(guān)系的表述能力較差,這些缺點還有待研究改善。但是無論模型怎樣改進,卷積層作為基元特征提取的主要部分是要予以保留的。
在深度卷積網(wǎng)絡(luò)的應(yīng)用中,還可以進一步通過卷積運算的變體來改進卷積網(wǎng)絡(luò),使其應(yīng)用的環(huán)境更加廣泛。如使用全連接卷積網(wǎng)絡(luò)(FCN)可以實現(xiàn)基于像素的語義分割,結(jié)合前面所述的卷積變體,將全連接卷積網(wǎng)絡(luò)的卷積部分改進為空洞卷積則能夠?qū)崿F(xiàn)半監(jiān)督或弱監(jiān)督的圖像語義分割,減少由于圖像像素級標(biāo)注帶來的困難和麻煩。將這些改進的卷積網(wǎng)絡(luò)應(yīng)用于圖像分割的效果如圖5所示,這些模型更適合復(fù)雜場景的分割,分割的結(jié)果也更符合人類認(rèn)知。而平鋪卷積作為局部連接和傳統(tǒng)卷積的折中改進,能夠改善深層卷積網(wǎng)絡(luò)的訓(xùn)練速度和訓(xùn)練效果。因此學(xué)生可以體會到卷積運算及其變體正在以前所未有的速度廣泛應(yīng)用于人工智能和機器學(xué)習(xí)技術(shù)的方方面面。課程教學(xué)中可適當(dāng)應(yīng)用深度學(xué)習(xí)框架演示上述算法的應(yīng)用(如YOLO、SSD等),展示其強大的功能。
4結(jié)論
本文通過論述在《數(shù)字圖像處理》本科教學(xué)中卷積運算的講解內(nèi)容拓展,表明在智能學(xué)習(xí)的大背景下,傳統(tǒng)的運算方法有著新的內(nèi)涵和應(yīng)用。從基本概念的講述到其變體在圖像工程中的應(yīng)用演示,使學(xué)生理解卷積運算不但能夠進行邊緣提取、圖像平滑、銳化等基本操作,還可以應(yīng)用于深度卷積網(wǎng)絡(luò),完成目標(biāo)檢測分割等圖像工程的高級階段。在教學(xué)中,應(yīng)拓展傳統(tǒng)方法的講解,結(jié)合當(dāng)下技術(shù)發(fā)展的前沿領(lǐng)域,綜合論述傳統(tǒng)方法所賦予的新含義和新應(yīng)用,并結(jié)合具體的應(yīng)用場景對這些方法和模型進行演示,舉例說明。使學(xué)生對一些經(jīng)典方法有更深更透徹的理解,能夠?qū)σ恍┗旧疃染矸e模型進行應(yīng)用。學(xué)生通過課程的學(xué)習(xí)對機器學(xué)習(xí)和人工智能行業(yè)也有了一定的了解和認(rèn)識,能夠更好地體現(xiàn)新工科時代的專業(yè)教育。