王立 杜培明 周芳 王兵



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