基於字典的超分辨率實現的各種方法

文章來源:https://www.cnblogs.com/wxl845235800/p/7738953.html

 

簡介

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

基本原理

預處理

     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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章