基於字典SR各種方法【稀疏編碼多種方法】


基於字典的圖像超分辨率實現 - CSDN博客 http://blog.csdn.net/u011630458/article/details/65635155

簡介

  這段時間在看基於字典的單幀圖像超分辨率重建,本篇主要是對這塊做個筆記記錄。

基本原理

預處理

     1、准備好用於字典訓練的低分辨率圖像LR及與之對應的高分辨率圖片HR。
     2、將低分辨率圖像雙線性或者三次方插值到高分辨率圖像相同大小,得到MR。
     3、將MR圖像分成若干個3x3或者5x5之類的小塊,小塊之間有1x1或者2x2之類的重疊區域,對應的高分辨率圖像同樣對應坐標位置,分成這個多塊。
     4、對MR的圖像塊做特征提取操作,可以是每個塊減去該塊平均值、或者是每個塊做梯度散度提取。

非稀疏字典處理

方法一

     1、MR特征塊集合作為低分辨率字典,對應的高分辨率塊集合作為高分辨率字典。
     2、輸入待處理的低分辨率圖像,並用和字典訓練一樣的塊大小做分割。
     3、所有低分辨率圖像分割塊做特征提取。
     4、每個特征塊X,在低分辨率字典中找到最接近的K個塊。
     5、通過這K個塊,擬合得到最接近該特征塊的權重系數A。
     6、找到高分辨率字典上對應的該K個塊,乘上權重系數A,得到低分辨率塊X對應的高分辨率圖像塊Y。
     7、循環計算,直到所有低分辨率塊都得到對應高分辨率塊。
     8、所有高分辨率塊,根據之前分割坐標,反向貼合(塊與塊之間重合區域,直接平均),得到結果的高分辨率圖像。
     參考論文:Super-Resolution Through Neighbor Embedding

方法二

     1、MR特征塊集合作為低分辨率字典,對應的高分辨率塊集合作為高分辨率字典。
     2、將所有低分辨率塊和高分辨率塊集合,通過歐式距離,分成1024或者4096個類。
     3、每個類中,使用最小二程法之類,計算對應所屬的低分辨率塊到高分辨率塊之間的投影矩陣。
     4、輸入待處理的低分辨率圖像,並用和字典訓練一樣的塊大小做分割。
     5、所有低分辨率圖像分割塊做特征提取。
     6、找到每個低分辨率特征塊X與字典中哪個類最接近,直接使用該類所屬的投影矩陣,得到對應高分辨率塊Y。
     7、循環計算,直到所有低分辨率塊都得到對應高分辨率塊。
     8、所有高分辨率塊,根據之前分割坐標,反向貼合(塊與塊之間重合區域,直接平均),得到結果的高分辨率圖像。
     參考論文:Fast Direct Super-Resolution by Simple Functions

稀疏字典處理

   常規稀疏字典訓練:
     1、首先通過DCT之內算法,得到一個初始字典。
     2、預處理得到的低分辨率特征塊,在初始字典中找到最相關原子。
     3、該塊和原子相減,得到殘差,繼續在字典中找到和該殘差最接近的原子,繼續相減,不斷循環,直到殘差對於設置閥值或者循環次數超過一定范圍,所有對應原子位置,存入稀疏矩陣A中。
     4、循環處理,直到計算出所有塊的稀疏矩陣A。
     5、保持所有稀疏矩陣A不變,迭代更新字典,每次更新之后保證所有稀疏矩陣A和字典生成的塊與原始低分辨率特征塊,誤差更小。
     6、當誤差小於某個閥值之后,便得到對應低分辨率訓練字典。
     注意:用來去噪之類的字典可以這么訓練,但是超分辨率重建需要高低分辨率字典聯合訓練,分別得到低分辨率字典和高分辨率字典,在這基礎上,更復雜一點。
     參考論文:On Single Image Scale-Up Using Sparse-Representations.
   方法一:
     1、輸入待處理的低分辨率圖像,並用和字典訓練一樣的塊大小做分割。
     2、所有低分辨率圖像分割塊做特征提取。
     3、每個特征塊,在低分辨率字典中找到最接近原子。
     4、該塊和原子相減,得到殘差,繼續在字典中找到和該殘差最接近的原子,繼續相減,不斷循環,直到殘差對於設置閥值或者循環次數超過一定范圍,所有對應原子位置,存入稀疏矩陣A中。
     5、對應高分辨率字典和稀疏矩形A相乘,得到高分辨率圖像塊。
     6、循環計算,直到所有低分辨率塊都得到對應高分辨率塊。
     7、所有高分辨率塊,根據之前分割坐標,反向貼合(塊與塊之間重合區域,直接平均),得到結果的高分辨率圖像。
     參考論文:1、Image super-resolution as sparse representation of raw image patches.
               2、On Single Image Scale-Up Using Sparse-Representations.
   方法二:
     1、在低分辨率字典中,每個原子找到若干個和它最接近的原子;高分辨率字典中,同樣取出對應的這些原子。
     2、使用最小二程法之類,計算這些低分辨率塊、高分辨率原子之間的投影矩陣。
     3、遍歷完整個字典原子,最終每個原子,對應都有一團鄰居原子及投影矩陣。
     4、輸入待處理的低分辨率圖像,並用和字典訓練一樣的塊大小做分割。
     5、所有低分辨率圖像分割塊做特征提取。
     6、找到每個低分辨率特征塊X與字典中哪個類最接近,直接使用該類所屬的投影矩陣,得到對應高分辨率塊Y。
     7、循環計算,直到所有低分辨率塊都得到對應高分辨率塊。
     8、所有高分辨率塊,根據之前分割坐標,反向貼合(塊與塊之間重合區域,直接平均),得到結果的高分辨率圖像。
     參考論文:Anchored Neighborhood Regression for Fast Example-Based Super Resolution.
   方法三:
     與方法二類似,區別在於:計算投影矩陣時候,每個原子尋找鄰居不是找其他原子,而是在訓練用的低分辨率、高分辨率塊中找,論文中建議是2048個。
   如此,計算出來的投影矩陣,得到的高分辨率圖像,比方法二效果更好。
    參考論文:A+: Adjusted Anchored Neighborhood Regression for Fast Super-Resolution

效果演示

    4倍插值效果比較(左邊為opencv雙線性插值效果, 右邊為低配版方法三效果)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM