文章來源: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