機器不學習:卷積神經網路CNN與影象處理方法論(1)
【導讀】傳統的肉眼識別方法是很難直接識別出 NIs (自然影象) 和 CG (計算機生成的影象)。本文中提出了一種高效的、基於卷積神經網路 (CNN) 的影象識別方法。通過大量的實驗來評估模型的效能。實驗結果表明,該方法優於現有的其他識別方法,與傳統方法中採用 CNN 模型來識別影象,此方法還能借助高階視覺化工具。
▌ 摘要
考慮到對現有的 CCNs 從頭開始訓練或微調預訓練網路都具有一定的侷限性,這個研究提出了一種更合適的想法:設計階段在 CNN 模型的底部增加了兩個級聯卷積層。該網路能夠根據不同大小的影象輸入,進行自適應地調整,同時保持固定的深度,以穩定 CNN 結構並實現良好的識別表現。對於所提出的模型,我們採用一種稱為“區域性到全域性”的策略,即 CNN 能夠獲取區域性影象的識別決策,而全域性的識別決策可通過簡單的投票方式獲得。我們通過大量的實驗來評估模型的效能。實驗結果表明,該方法優於現有的其他識別方法,且在後處理的影象上也具有較好的魯棒性。此外,相比於傳統方法中採用 CNN 模型來識別影象,我們的方法還能借助高階視覺化工具,進一步視覺化地瞭解 NIs 與 CG 之間的差異。
▌簡介
當前,對 NIs 和 CG 的影象識別研究已經得到了廣泛的關注。解決這個問題的主要挑戰在於 NIs 與 CG 有近乎相同的寫實性及影象模式。先前的研究通常都是人工設計一些可判別的特徵,來區別 NIs 和 CG。但這些方法普遍存在的問題是人為設計的特徵對於給定的影象識別問題來說,並不一定是最適合的,特別對於一些複雜的資料庫而言,該方法的識別效果更差。
相比於需要先驗知識和假設條件的傳統方法,卷積神經網路 (CNN) 能夠自動地從資料中學習目標的特徵及其抽象表徵,這使得它能夠更廣泛適用於一些複雜的資料庫。本文,我們提出一種基於 CNN 的框架來識別 NIs 和 CG。這是一種以端到端的方式進行自動特徵學習,而無需進行人為設計影象特徵的框架。我們的工作主要總結如下:
提出了一種基於 CNN 的 NIs 與 CG 的通用識別框架,通過微調它能夠自適應於不同尺寸的影象輸入塊。
對微調訓練後的 CNN 模型,我們針對性地設計了一種改進方案以改進我們的識別表現,這兩種基於 CNN 的方案都優於目前最先進的方法。
我們的方法在 Google 和 PRCG 資料庫上都表現出良好的識別效能,而且對調整影象大小和壓縮 JPEG 等後處理操作有強大的魯棒性。
利用視覺化工具,我們進一步地瞭解 CNN 模型是如何區分 NIs 和 CG。
▌資料集
我們使用的實驗資料包括 Columbia Photo-graphic 與 PRCG 資料庫。資料庫由三組影象組成:(1) 從40個 3D 圖形網站中獲取的800張 PRCGs 資料;(2) 我們所採集的800張 NIs;以及 (3) 從 Google 搜尋中獲取的795張攝影影象。
我們所採集的300張 NIs 是通過小型數碼相機拍攝的。先前研究的方法都沒有在 Google 與 PRCG 資料庫上進行過測試,這是因為 Google中的 NIs 與PRCG中的CG影象起源不同。而我們的研究不僅嘗試解決這個問題,而且還將在 Personal 與 PRCG ,以及 Personal+Google 與 PRCG 兩種不同資料庫組合條件下進行測試。
▌框架
我們將 NIs 與 CG 的影象識別問題視為是一個二元分類問題。針對此問題,提出了兩種不同的影象識別標準框架,如圖1所示:其中,f 是特徵提取器,c 代表一個分類器 (如 SVM) 。我們的框架是一個二階段模型,其核心在於特徵提取器。通常,特徵的提取過程不僅需要耗費大量的時間,且提取出來的特徵不一定是我們任務所需要的,而我們的 CNN 框架能夠以端到端的方式自動學習並提取所需特徵,這為解決特徵提取問題提供了一種思路。因此,我們提出了一種適用的 CNN 模型,並採用以下三種不同的訓練方法:(1) 遵循現有的網路結構,並從頭開始訓練 CNN 模型;(2) 微調一個預先在其他資料集或另外一個任務中訓練好的、現成的 CNN 網路;(3) 設計一個新的網路,並從頭開始訓練。

圖1 兩種不同的影象識別框架
區域性到全域性策略
考慮到模型的計算成本,圖片尺寸的多樣性以及影象識別的效能要求,我們採用一種由區域性到全域性的策略,來對區域性影象進行訓練並使用簡單的投票規則再對全域性的影象進行分類。這種由區域性到全域性的策略是一種基於資料增強的思想,也是擴充套件訓練中的常用技巧,尤其是在深度學習領域。
對於影象分類問題,區域性策略 (即高精度的區域性影象) 對於影象識別來說是非常重要的;另一方面,從 CG 上裁剪下來的影象本質仍是 CG,而對 Nis 而言也是如此。因此,我們引入資料增強的方法,也就是說,從每次訓練中選擇一些固定尺寸的影象去增強訓練資料集,並且儘可能地去獲取更高精度的影象。在實踐階段,我們使用 Maximal Poisson-disk 從每次訓練中隨機裁剪一定數量的影象來構建新的訓練資料集。在測試階段,從每個測試影象中裁剪一定數量的區域性影象,並給每張區域性影象加上特定的標籤 ( CG 屬於0,而 NI 屬於1 ),編號較高的標籤作為該影象的預測結果。
網路結構
我們所採用的網路結構由 ConvFilter 層,3個卷積層組,2層 FC 層以及1個softmax 分類層組成,模型的輸入是二進位制的圖片格式。其結構如下圖2所示:我們的輸入是一張233 *233的 RGB 影象,用綠色方塊表示;紅色方塊代表卷積核,靠近它的數字代表該卷積核的尺寸,左側的紅色方塊代表一個7 *7的卷積核;特徵圖則由陰影部分的長方體所示。

圖2 我們的網路結構
▌實驗結果
實驗設定與細節
我們使用了雙三次插值來調整所有影象的大小,調整後的圖片的較短邊畫素值為512,以此確保所有影象的大小一致性。基於原始資料集,我們以 3:1 的分離率來設定訓練集和測試集,並用 MPS 從每張訓練資料中裁剪出 200 張,以滿足區域性到全域性策略的需要並達到擴充訓練資料的目的。同樣地,從每張測試資料中裁剪出 30 張來作為測試集。在訓練時,我們採用128的批次大小,學習率設定為0.001,每 30k 次迭代學習率就除以10,直到迭代完 90k 次為止。此外,除了 60×60 和 30×30 影象塊大小的正則化設定為 5e-5 和 1e-5 外,其餘的正則化權重的預設值為 1e-4。
微調 CaffeNet 和卷積濾波器層的效能分析
微調後的 CaffeNet 的測試結果如下表 1 所示。我們可以看到,微調後網路 (C-1 到 C-7) 的測試效能要優於從頭開始訓練的網路 (C-S) 實驗結果,這可能是由於預訓練期間學習大量 NI 對模型的特徵學習是有益的。而相比於傳統方法 (準確率最高80.65%),通過微調後,我們的網路效能更佳,準確率更高。

表1 模型的分類精度,其中 C 表示 CaffeNet,”C-S” 表示從頭開始訓練網路 CaffeNet,”C-N” 表示微調 CaffeNet 後的前 N 層網路,N 從1到7。
此外,我們還對 ConvFilter 層進行了四種不同的配置: (1) 兩個級聯卷積層;(2) 刪除 convFilter 層;(3) convFilter 層之後接 ReLU 啟用層;以及(4) convFilter 層中加入高通濾波器。下表2 顯示了這四種配置相對應的模型效能,其中使用兩個級聯卷積層時模型的準確率最高。

表2 四種不同配置下的 convFilter 的分類精度
不同尺寸影象塊上的分類效能
下圖 3 展示了我們的方法與三種人工設計特徵的方法在不同尺寸影象塊上的分類精度。與其他三種方法相比較,我們的方法在任何影象塊尺寸上的準確率都更高,且隨著影象塊尺寸的縮小,網路的分類準確率會降低。

圖3 我們的方法與三種人工設計特徵的方法在不同尺寸影象塊上的分類精度表現
後處理的魯棒性分析
有效的影象識別演算法不僅能處理原始資料,還應該在後處理資料中具有良好的魯棒性。本文的研究中,我們針對影象縮放和 JPEG 壓縮這兩種典型的後處理進行魯棒性分析。下圖 4 展示了四種分類方法在五種後處理中的分類準確率表現 (實線部分)。可以看到,我們的模型對於後處理的資料具有更強的魯棒性。

圖4 不同分類方法在後處理資料上的分類精度表現
區域性到全域性策略的分析
進一步地,我們還分析了局部到全域性策略在全尺寸影象上的分類精度表現。如下表3所示,實驗結果表明在全尺寸影象上的模型精度,比在影象塊上的模型精度要高,並且採用影象塊投票的方式獲得的全尺寸分類精度要高於直接在全尺寸上影象得到的分類精度。而投票準確性對後處理操作的穩健性由上圖4中的虛線表示。

表3 區域性到全域性策略對六種方法的分類準確率的影響
▌視覺化
在計算機視覺任務中,CNN 的訓練普遍存在一種現象:即模型在第一層學習的卷積核類似於 Gabor 濾波器和 color blobs。我們在下圖 5 展示了模型的卷積視覺化結果,其中 (a) 表示我們模型的第一層卷積核的傅立葉變換 (FFT) 結果, (b) 表示預訓練的 CaffeNet 的結果,(c) 是對應於 CaffeNet 中第一層的前96個卷積核的視覺化結果,而 (d) 則對應於最後的96個結果。濾波器根據三個顏色通道 B,G 和 R 被分為3個組,而畫素越亮則代表所對應的B,G,R的值越高。

圖 5 卷積視覺化結果
▌結論
本文,我們提出了一種基於 CNN 的通用框架來區別自然影象 NIs 與計算機生成影象 CG 之間的差異,這種方法不僅能夠在 Google 和 PRCG 的資料集中進行測試,而在後處理時也表現出較好的魯棒性。這些優點對於現實生活中的影象識別任務是非常有效且重要的。
未來的工作中,我們將嘗試通過引入語義級別的 CNN 整合模型來進一步改進我們的模型效能。此外,我們還將擴充套件我們的方法,並應用於視訊資料的差異性探索。
有想學習Python的同學可以加一下學習交流扣扣群: 862672474
文件與視訊資料都已經準備好,歡迎進群一起交流學習!