稀疏表示介绍(下)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??稀疏表示介紹(下)
聲明
主要學(xué)習(xí)資料是 Coursera 上 Duke 大學(xué)的公開課——Image and video processing, by Pro.Guillermo Sapiro?第 9 課。
?
1. From Local to Global Treatment
圖片尺寸有大有小,在 DCT 變換中,我們一般取 8×8 的方塊作為一組 64 維的變換信號(hào),在稀疏表示中,我們同樣也不能把整張圖片作為 X^T 矩陣,而是在大圖片中取一定尺寸的 patch (假設(shè)是 8×8 的方塊)作為一個(gè) signal。對(duì)于圖片中的所有的 patch (假設(shè) ij 是 patch 的左上角坐標(biāo))組成的信號(hào),已知字典 D 和噪聲圖片 y ,估計(jì)公式如下:
y: 帶有噪音的圖片—— the whole image
x: 要恢復(fù)的 clear image
Rij x: 以 i,j 為左上角坐標(biāo)的 patch, Rij 是從 x 中提取 patch 的 0-1 矩陣
D: 字典 for all the overlapping patches
字典 D 從哪里學(xué)習(xí)?第一種選擇是基于圖片的數(shù)據(jù)庫,第二種是直接使用要降噪的圖片進(jìn)行訓(xùn)練。還有一種可能性是:首先基于圖片的數(shù)據(jù)庫得到字典 D (off-line),接著來了一張要降噪的圖片,我們的做法是新建一個(gè)以 D 為初始化的字典,在要處理的圖片上再進(jìn)行迭代(on-line),得到新字典,這個(gè)新字典更適合降噪,代價(jià)是多一些計(jì)算。
?
2. K-SVD Image Denoising
在上一小節(jié)中,我們提出的可能性是 D 也需要根據(jù)要降噪的圖片進(jìn)行再適應(yīng),所以,圖片降噪的公式多了一參數(shù):
有三個(gè)變量,處理方法是先固定其中兩個(gè),優(yōu)化一個(gè),然后迭代。從整體上來說,先用 K-SVD 算法得到字典矩陣 D 和系數(shù)編碼 alpha,保持它們不動(dòng),再優(yōu)化 x:
x 的最優(yōu)解實(shí)際上就是所有包含 x 像素點(diǎn)的 patch 的平均值,比如 patch 的大小是 8×8, 那么包含圖片中某一個(gè)像素點(diǎn)的 patch 就有 64 個(gè),這個(gè)像素點(diǎn)最優(yōu)解就是取這 64 個(gè)patch 對(duì)應(yīng)位置的平均值。當(dāng)然,你也可以用權(quán)重來調(diào)節(jié)不同位置的 patch 對(duì) pixel 的影響,比如 pixel 在中間的 patch,權(quán)重大,pixel 在 patch 邊邊角角的地方,權(quán)重小。
?
3. Compressed Sensing
前面我們探討了 sparse represent 的等式,這里主要講 compressed sensing 的概念,即在稀疏表示的等號(hào)兩邊同時(shí)乘以矩陣 Q:
就變成了:
用公式可以表達(dá)為:
可以看到,變換后的信號(hào)被大大壓縮了。在一直 x波浪 和 D波浪 的情況下求 alpha 這個(gè)問題和前面 sparse coding 非常類似。一個(gè)關(guān)鍵問題是:在什么條件下由已知信號(hào) x波浪 的情況下恢復(fù)稀疏表示 alpha?顯然,這個(gè)問題與矩陣 Q,字典 D 和 alpha 的 sparse level 有關(guān),背后涉及很多數(shù)學(xué)理論。
總結(jié)
- 上一篇: 稀疏表示介绍(中)
- 下一篇: 机器学习算法与Python实践之(二)k