機器不學習:卷積神經網絡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

文檔與視頻資料都已經準備好,歡迎進羣一塊兒交流學習!

相關文章
相關標籤/搜索