教你在真實圖像數據上應用線性濾波器

2021-01-10 雷鋒網

雷鋒網按:本文為AI研習社編譯的技術博客,原標題 Learning to perform linear filtering using natural image data,作者為 Josef Taher 。

翻譯 | 張澤坤 王霏 校對 | 餘杭 整理 | MY

卷積神經網絡通常從訓練數據中學習有用的特徵。第一個卷積層學習到的特徵往往是視任務而定的一些訓練數據的基本元素。例如,在圖像數據中,學習到的特徵可以體現邊緣和斑點。在後續的網絡層中,這些學習到的特徵可以表現更加抽象,更高級的特點。

將學習到的特徵以及它們隨時間的變化可視化,可以提供一些關於網絡如何學習的有效信息。實際上,網絡結構遠遠不僅是幾層網絡那麼簡單,大量的卷積核使得直觀解釋和分析學習到的特徵變得十分困難。

然而,我們可以通過對照實驗證明卷積核的權重是如何隨著網絡的學習而實時發展。由於網絡應該學習到的特點已經被提前知道,即產生數據的過程和參數是被完全定義並且完全在我們的掌控之中,學習任務可以很容易的被確定。我們可以通過構建一個非常簡單的單層卷積網絡並訓練它利用多種核進行線性濾波來實現上述過程。

在接下來的實驗中,我們在數據集上運用一種圖像處理和計算機視覺中常用的傳統邊緣檢測方式——Sobel 邊緣濾波,並訓練我們的模型進行類似的線性映射。我們也嘗試著利用比 Sobel 濾波器更大一些的核去學習一些形式更為普通和任意的濾波器。

這些可以幫我們感受神經網絡中的卷積層如何對輸入數據進行操作,卷積核的權重在訓練中如何變化以及神經網絡的訓練是如何被視為最小化問題的。

首先,我們必須用線性濾波器去處理圖像數據 X 來獲取原始圖像濾波後的結果 Y。線性濾波器操作可以被總結為如下形式:

對任何一組參數 (卷積核) 或我們所能想到的輸入數據,線性濾波器都具有良好定義的操作。

我們現在可以構造一個單層,單核的近似線性濾波的卷積神經網絡。在線性濾波器和卷積神經網絡這兩種方式中發生的計算除了我們要從數據中學習到的卷積核參數外是完全一樣的。

我們可以畫出如下的線性濾波器與卷積神經網絡間的聯繫:

學習任務可以被轉化為最小化線性濾波器的輸出與卷積神經網絡的輸出的均方誤差的最小化問題:

處理圖像數據的線性濾波器的參數被稱為卷積核。我們的實驗採用稱為 Sobel 算子的 3 x 3 的卷積核來對圖像數據進行濾波,操作順序為先沿 x 方向再沿 y 方向。Sobel 算子為:

我們使用基於 TensorFlow 的 Keras 框架實現這些實驗。

x 方向上的 Sobel 濾波器

首先,我們需要定義一組輔助函數來對圖像進行預處理。數據集被加載後,圖像被轉換成灰度形式,圖像強度範圍被歸一化然後對數據集中的每個圖像進行線性濾波。

城市和自然景觀類的數據來作為訓練和測試數據 - 數據集(Oliva, A. & Torralba, A. (2001).Modeling the Shape of the Scene: A Holistic Representation of the Spatial Envelope)由麻省理工學院麻省理工學院計算視覺認知實驗室收集整理。

原始的數據集包括八個類別的自然景觀的彩色圖像(解析度: 256 x 256)。我們從中選取街道,城市中心以及高層建築三個類別進行使用。這樣,我們就獲得了充足的固定大小的訓練集和測試集(764 個訓練集樣本和 192 個測試集樣本),因此訓練不會發生過擬合併且可以在更加合適的硬體和時間框架中完成。選定的三個分類是自然景觀(大量的人類建築物)中具有明顯邊緣的代表,便於我們比較結果。

接下來,我們可以可視化的觀察數據集中原始圖像、經過灰度轉換後的圖像以及 Sobel 濾波後的圖像:

原始圖像(左),灰度圖像(中間)以及在 x 方向上進行 Sobel 濾波後的圖像(右)。

我們僅對單通道圖像使用線性濾波器。實際上,這意味著模型被訓練成將灰度轉換後的圖像到 Sobel 過濾後的圖像的映射。

接下來,我們定義一個模型:單層,單核的線性激活的卷積網絡。例如採用 identity 激活函數。卷積核的大小設定為 3 x 3,以便於與 Sobel 濾波器的尺寸兼容。

利用使用 Nesterov 動量的隨機梯度下降的優化器模型進行 100 輪的訓練。在每一輪中,卷積層的權重都被保存以便進一步的可視化。

在訓練結束後,我們可以畫出訓練和驗證的損失值來觀察訓練是否過擬合。

訓練過程中的訓練損失和驗證損失是平穩的,模型看上去似乎是收斂的。

每個輪次保存的權重以數值矩陣的方式呈現出來,矩陣中的數值代表了像素的灰度值。聲明了用於進行可視化的函數,並為每個輪次創建了可視化功能。

現在我們可以可視化每一個輪次,能夠為每一個輪次創建一個動圖,觀察權重是如何下降的。

模型的卷積層權重被訓練後,權重值收斂到接近 x 方向上的 Sobel 算子。

在模型的學習過程中,通過動圖可以清晰的看到卷積核權重值組建收斂至 x 方向上的 Sobel 濾波器。前 10 到 15 個輪次的收斂很快,這之後,收斂率很快穩定下來。如果我們在本次實驗中使用了比線性濾波器更加複雜的學習任務,我們仍然能看到類似的行為。卷積核的值會收斂到最優的參數值從而能夠從數據中學習到有用的特徵。在本次實驗中,有用的特徵是由 Sobel 操作器提供的圖像 x 方向上的邊緣信息。我們能夠找到幾乎精準的,由第一手訓練數據產生的卷積核參數,大部分原因是因為我們設置的問題非常簡單。但是在現實問題中,這是極少可能發生的,因為訓練數據不是典型的從輸入到輸出的線性映射。

為了測試模型,我們可以對比模型的預測結果與 x 方向上的 Sobel 濾波器。

左邊是模型的輸出,右邊是同一幅圖像上,x 方向的 Sobel 濾波器的結果。

在圖的上方,我們可以同時觀察到模型的輸出和 x 方向上 Sobel 算子的結果。通過觀察可以發現兩幅圖像看上去很相似。事實上,兩幅圖像在像素灰度值上僅能發現很細微的差異,因為訓練過的卷積核參數已經收斂到接近原始 Sobel 算子的值了。

y 方向上的 Sobel 操作器

同樣的代碼也可以被用到與 y 方向的 Sobel 算子進行線性濾波。我們要做的就是改變圖像濾波函數用 y 方向上的濾波取代 x 方向,再次加載和濾波訓練數據,同時用新數據訓練模型。

在下方圖中,我們可以觀察到,Sobel 濾波器現在更加強調圖像在豎直方向上的圖像灰度邊緣。

原始圖像(左側),灰度圖像(中間)和 y 方向上的 Sobel 濾波圖像(右側)

我們能夠再一次的觀察到卷積核的權重逐步趨向 y 方向的 Sobel 濾波器,隨著網絡不斷的從訓練數據中學習。這個收斂行為與之前 x 方向的 Sobel 算子非常接近。

模型訓練卷積層權重的過程,權重值收斂到接近於 y 方向上的 Sobel 算子。

相類似的,下方的圖是在同一測試圖像上模型的輸出結果和 Sobel 濾波器的版本,有著相同的形狀。從人眼角度,不可能區分這兩個圖像的差別。

模型的輸出(左邊)和相同圖像 y 方向 Sobel 濾波器的結果(右邊)

笑臉濾波器

之前學習的 Sobel 濾波器非常的簡單,僅需要學習非常少量的參數。現在我們看一下我們能不能學習一個有著更大卷積核的濾波器。

......

想要繼續閱讀,請移步至我們的AI研習社社區:https://club.leiphone.com/page/TextTranslation/710

更多精彩內容盡在 AI 研習社。

不同領域包括計算機視覺,語音語義,區塊鏈,自動駕駛,數據挖掘,智能控制,程式語言等每日更新。

雷鋒網雷鋒網

雷鋒網雷鋒

相關焦點

  • 自適應濾波器的作用、原理以及相關應用
    ,自適應濾波器用來提供一個在某種意義上能夠最好擬合未知裝置的線性模型。其它的變量同上。從上面的描述可以看出單次迭代運算量在O[N2]量級,比LMS的計算量要大。   自適應濾波器的應用   自適應濾波處理技術可以用來檢測平穩的和非平穩的隨機信號。自適應數字系統具有很強的自學習、自跟蹤能力和算法的簡單易實現性。
  • 大數據分析為什麼要學習R中的線性建模
    對於大數據分析師來說,能夠建立線性模型是絕對必要的,但是數據分析人員甚至業餘愛好者也可以從線性建模的功能中受益匪淺。R中的線性建模,這是大數據分析師中的新課程,它將從頭開始教你此技能。你準備好動手開始建模嗎?
  • 光電理論技術:光學信息處理中的「線性處理」
    光學透鏡將不同的光學圖像變換成不同的空間頻譜,可用光電探測元件接收各個部分的空間頻譜來進行分析,或運用空間光調製器對輸入信號的空間頻譜進行各種處理。近代採用的光電結合的空間頻譜分析儀就是根據上面介紹的原理製成的,它可應用到各種圖像處理的各個領域,包括遙感圖像、醫學圖像分析等方面。  典型的線性光學信息處理系統,即4f系統。
  • MATLAB中的圖像變換之線性空間濾波
    凡是使用空間模板進行的圖像處理,我們就定義為空間濾波,模板本身被稱為空間濾波器。圖像的空域線性濾波和非線性濾波在空域對圖像進行濾波處理無非兩種情況:線性濾波和非線性濾波。濾波的意思就是對原圖像的每個像素周圍一定範圍內的像素進行運算,運算的範圍就稱為掩膜或領域。
  • FIR,IIR濾波器分別是什麼?它們又有什麼區別?
    什麼是FIR濾波器?   FIR(Finite Impulse Response)濾波器:有限長單位衝激響應濾波器,又稱為非遞歸型濾波器,是數位訊號處理系統中最基本的元件,它可以在保證任意幅頻特性的同時具有嚴格的線性相頻特性,同時其單位抽樣響應是有限長的,因而濾波器是穩定的系統。因此,FIR濾波器在通信、圖像處理、模式識別等領域都有著廣泛的應用。
  • MATLAB應用在基於噪聲檢測的圖像均值去噪法
    研究表明,人類獲取的視覺圖像信息在人類接受的信息中的比重達到75%,「百聞不如一見」便是非常形象的例子之一。在高度信息化條件下的今天,數字圖像越來越得到普及和應用。  然而,人們在獲取和傳輸數字圖像的同時,難免於圖像數據被外界噪聲所汙染,妨礙了人們對圖像信息的理解。由此,圖像去噪技術應運而生。圖像去噪,即在儘可能地不損失原圖像細節的前提下,去除圖像中無關的噪點。
  • 【數字圖像處理系列五】圖像濾波之空間濾波:圖像平滑降噪和圖像銳化
    】基本概念:亮度、對比度、飽和度、銳化、解析度【數字圖像處理系列二】圖像增強:線性、 分段線性、 對數、 反對數、 冪律(伽馬)變換、直方圖均衡【數字圖像處理系列三】圖像數據集增強方式總結和實現而濾波器的類型也取決於鄰域上操作的類型,如果鄰域操作是線性操作,則濾波器稱為線性空間濾波器;反之如果鄰域操作是非線性操作,則濾波器稱為非線性空間濾波器。
  • IIR與FIR濾波器的比較和區別
    1.3、藉助成熟的模擬濾波器的成果IIR數字濾波器在設計上可以藉助成熟的模擬濾波器的成果,如巴特沃斯、契比雪夫和橢圓濾波器等,有現成的設計數據或圖表可查,其設計工作量比較小,對計算工具的要求不高。在設計一個IIR數字濾波器時,我們根據指標先寫出模擬濾波器的公式,然後通過一定的變換,將模擬濾波器的公式轉換成數字濾波器的公式。
  • 基於FPGA的高效FIR濾波器設計與實現
    本文引用地址:http://www.eepw.com.cn/article/191285.htm  0 引言  數字濾波器在語音與圖像處理、模式識別、雷達信號處理、頻譜分析等應用中都具有重要作用。它能避免模擬濾波器所無法克服的溫漂和噪聲等問題, 同時比模擬濾波器精度高、穩定性好、體積小、更加靈活, 因而得到廣泛應用。
  • 為什麼叫「卡爾曼」,卡爾曼濾波器算法介紹
    我們現在要學習的卡爾曼濾波器,正是源於他的博士論文和1960年發表的論文《A New Approach to Linear Filtering and Prediction Problems》(線性濾波與預測問題的新方法)。  簡單來說,卡爾曼濾波器是一個「optimal recursive data processing algorithm(最優化自回歸數據處理算法)」。
  • 詳解低通濾波器的設計
    對於FIR濾波器,衝激響應在有限時間內衰減為零,其輸出僅取決於當前和過去的輸入信號值。對於IIR濾波器,衝激響應理論上應會無限持續,其輸出不僅取決於當前和過去的輸入信號值,也取決於過去的信號輸出值。 2.FIR:有限脈衝響應濾波器。有限說明其脈衝響應是有限的。與IIR相比,它具有線性相位、容易設計的優點。這也就說明,IIR濾波器具有相位不線性,不容易設計的缺點。
  • 基於模擬退火神經網絡的I型FIR數字濾波器設計
    由於線性相位FIR數字濾波器的幅頻特性是有限項的傅立葉級數,因此構造了一個三層餘弦基神經網絡模型,並用模擬退火算法進行了優化,然後給出了高階濾波器優化設計的實例。仿真表明經優化設計後的濾波器具有更好的性能和更穩定的效果。
  • 使用卡爾曼濾波器和路標實現機器人定位
    Robby(紅色大圓圈)和2個地標(紅色小圓圈) 這個文章的目的是教你用地標檢測和擴展卡爾曼濾波器一步一步實現機器人定位。Surprisingly few software… 第二部分-擴展卡爾曼濾波器 擴展卡爾曼濾波器(如名字所示)是「標準」卡爾曼濾波器的擴展。在上節內容我沒有告訴你的一個隱含的假設:當使用卡爾曼濾波器時,狀態轉移和測量必須是線性模型。
  • 高斯濾波器的原理和實現
    高斯濾波器是一種線性濾波器,能夠有效的抑制噪聲,平滑圖像。其作用原理和均值濾波器類似,都是取濾波器窗口內的像素的均值作為輸出。其窗口模板的係數和均值濾波器不同,均值濾波器的模板係數都是相同的為1;而高斯濾波器的模板係數,則隨著距離模板中心的增大而係數減小。所以,高斯濾波器相比於均值濾波器對圖像個模糊程度較小。
  • 什麼是fir數字濾波器 什麼叫FIR濾波器
    Part 2: Properties2.1 線性相位2.1.1 FIR濾波器和線性相位之間有什麼關係?大多數的FIR濾波器是線性相位濾波器. 當需要設計線性相位濾波器時, 通常使用FIR濾波器.2.1.2 什麼是線性相位濾波器?
  • 用MATLAB設計FIR濾波器的方法
    介紹了利用MATLAB信號處理工具箱進行FIR濾波器設計的三種方法:程序設計法、FDATool設計法和SPTool設計法,給出了詳細的設計步驟,並將設計的濾波器應用到一個混和正弦波信號,以驗證濾波器的性能。
  • 卡爾曼濾波器算法介紹
    我們現在要學習的卡爾曼濾波器,正是源於他的博士論文和1960年發表的論文《A New Approach to Linear Filtering and Prediction Problems》(線性濾波與預測問題的新方法)。簡單來說,卡爾曼濾波器是一個「最優化自回歸數據處理算法」。
  • 定義圖上的各向異性、動態、頻譜和多尺度濾波器
    這些問題有助於防止數據擴展到具有大型可變結構的圖的數據集中。為了解決第一個問題,Bruna等人根據頻譜理論,提出了在頻譜域中滑動濾波器的方法,使濾波器在空間域上更具有局部性。其主題思想就是,你可以將公式(3)中的濾波器W_頻譜表示為?
  • 開發者說 | 手把手教你寫卡爾曼濾波器
    這些信號的組合,表示了無人車當前時刻的環境信息。由於傳感器本身的特性,任何測量結果都是有誤差的。以障礙物檢測為例,如果直接使用傳感器的測量結果,在車輛顛簸時,可能會造成障礙物測量結果的突變,這對無人車的感知來說是不可接受的。
  • 高斯濾波器詳解
    本文主要介紹了高斯濾波器的原理及其實現過程高斯濾波器是一種線性濾波器,能夠有效的抑制噪聲,平滑圖像。