聲明算法
以前雖然聽過壓縮感知和稀疏表示,實際上前兩天才正式着手開始瞭解,純屬新手,若有錯誤,敬請指出,共同進步。數據庫
主要學習資料是 Coursera 上 Duke 大學的公開課——Image and video processing, by Pro.Guillermo Sapiro 第 9 課。api
因爲對圖像處理的瞭解也來自與該課程,沒正經兒看過幾本圖像方面的書籍,有些術語只能用視頻中的英文來表達,見諒哈!app
圖片尺寸有大有小,在 DCT 變換中,咱們通常取 8×8 的方塊做爲一組 64 維的變換信號,在稀疏表示中,咱們一樣也不能把整張圖片做爲 X^T 矩陣,而是在大圖片中取必定尺寸的 patch (假設是 8×8 的方塊)做爲一個 signal。對於圖片中的全部的 patch (假設 ij 是 patch 的左上角座標)組成的信號,已知字典 D 和噪聲圖片 y ,估計公式以下:ide
y: 帶有噪音的圖片—— the whole image
x: 要恢復的 clear image
Rij x: 以 i,j 爲左上角座標的 patch, Rij 是從 x 中提取 patch 的 0-1 矩陣
D: 字典 for all the overlapping patches學習
字典 D 從哪裏學習?第一種選擇是基於圖片的數據庫,第二種是直接使用要降噪的圖片進行訓練。還有一種可能性是:首先基於圖片的數據庫獲得字典 D (off-line),接着來了一張要降噪的圖片,咱們的作法是新建一個以 D 爲初始化的字典,在要處理的圖片上再進行迭代(on-line),獲得新字典,這個新字典更適合降噪,代價是多一些計算。優化
在上一小節中,咱們提出的可能性是 D 也須要根據要降噪的圖片進行再適應,因此,圖片降噪的公式多了一參數:ui
有三個變量,處理方法是先固定其中兩個,優化一個,而後迭代。從總體上來講,先用 K-SVD 算法獲得字典矩陣 D 和係數編碼 alpha,保持它們不動,再優化 x:編碼
x 的最優解實際上就是全部包含 x 像素點的 patch 的平均值,好比 patch 的大小是 8×8, 那麼包含圖片中某一個像素點的 patch 就有 64 個,這個像素點最優解就是取這 64 個patch 對應位置的平均值。固然,你也能夠用權重來調節不一樣位置的 patch 對 pixel 的影響,好比 pixel 在中間的 patch,權重大,pixel 在 patch 邊邊角角的地方,權重小。spa
前面咱們探討了 sparse represent 的等式,這裏主要講 compressed sensing 的概念,即在稀疏表示的等號兩邊同時乘以矩陣 Q:
就變成了:
用公式能夠表達爲:
能夠看到,變換後的信號被大大壓縮了。在一直 x波浪 和 D波浪 的狀況下求 alpha 這個問題和前面 sparse coding 很是相似。一個關鍵問題是:在什麼條件下由已知信號 x波浪 的狀況下恢復稀疏表示 alpha?顯然,這個問題與矩陣 Q,字典 D 和 alpha 的 sparse level 有關,背後涉及不少數學理論。
待續...
待續...