IHS遙感圖像融合算法及其相關的算法

前言

在遙感圖像融合領域,說到已經投入到商業運用,並且其變種還十分多的融合算法,恐怕IHS算法要算其中之一了。對於初學者,比如我,也經常在論文中看到IHS及其變種的身影。故在此就目前自己對IHS算法的瞭解做個筆記。

IHS算法簡介

IHS即是Intensity–Hue–Saturation的縮寫,同我們熟知的RGB一樣,也是一種顏色空間。3者的意思爲,強度,色調,飽和度。通常IHS算法只對強度分量I進行操作,而無關其他2個分量。確切地說,進行IHS變換之後,強度分量I只包含圖像的結構信息而去除了其他的信息,剔除掉的信息主要是顏色信息。而IHS所屬的成分替代方法假設Pan圖所包含的結構同強度分量I是一樣的,所以實踐中能夠使用Pan圖直接替換強度分量I得到融合結果。
那麼如何計算強度分量I呢?由於IHS算法假設(assumption)強度分量I是多光譜圖像(MS)各波段的線性組合,所以我們可以使用低分辨MS(LRM)圖像各波段的線性組合得到強度分量I。雖然根據光譜響應函數來看,即使Pan圖與多光譜各波段存在某種關係,也絕對不是線性的。換句話說,假設強度分量I是多光譜各波段的線性組合是不精確的,但是由於其在建模和求解上更易實現,而且效果也不錯,所以仍不失爲一種解決問題的方法。其特點是計算效率很快,融合結果的空間分辨率好,但是光譜失真(color distortion)嚴重。部分原因可在【2006】《A New Intensity Hue-Saturation Fusion Approach to Image Fusion With a Tradeoff Parameter》一文中找到,Choi指出:IHS算法的光譜失真嚴重主要是因爲Pan和強度分量I之間差異過大,所以通過minInew{PanInew2+InewI2}min_{I_{new}}\{|Pan-I_{new}|^2+|I_{new}-I|^2\}獲得一個新的強度分量。其結果就是在光譜保持和空間細節注入方面取得權衡。當InewI_{new}更加逼近Pan時,融合結果的空間分辨率更高,當然光譜失真就愈嚴重。而當InewI_{new}更逼近I時,則融合結果的光譜保持更好,但是空間分辨率便不理想。需要注意的是,原始的IHS算法只適用於RGB3個通道的圖像,後來有很多IHS的擴展算法將其擴展到4通道乃至n通道。最一般的確定n通道MS圖像對應的強度分量的I的公式如下。I=i=1NαiMi(1)I=∑_{i=1}^{N}α_{i}M_{i} (1)
其中αiα_{i}表示各波段的係數,MiM_{i}表示上採樣的LRM,N表示MS的通道總數。通常我們都取αi=1Nα_{i}=\frac{1}{N} 。當然也有更加精確的確定I的公式,比如choi在【2006】年發表的《A new intensity-hue-saturation fusion approach to image fusion with a tradeoff parameter》中指出強度分量I等於I=13(0.3R+0.75G+0.25B+1.7NIR)I=\frac{1}{3}(0.3*R+0.75*G+0.25*B+1.7*NIR);而Tu在[2004]《A fast intensity-hue-saturation fusion technique with spectral adjustment for IKONOS imagery》[FIHS模型]一文中指出IKONOS中的強度分量I爲I=13(R+0.75G+0.25B+NIR)I=\frac{1}{3}(R+0.75*G+0.25*B+NIR);對於QuickBird衛星圖像融合,Joshi建議強度分量I應當等於I=0.2308R+0.2315G+0.1139B+0.4239NIRI=0.2308*R+0.2315*G+0.1139*B+0.4239*NIR《A model-based approach to multiresolution fusion in remotely sensed images》【2006】。當然也有使用自適應參數算法求得I=i=1NαiMiI=∑_{i=1}^{N}α_{i}M_{i}中的αiα_{i},比如在【2010】年發表的《An Adaptive IHS Pan-Sharpening Method》基於Pan儘可能逼近強度分量可減少光譜失真的假設求得αiα_{i},即Pi=1NαiMiP≈∑_{i=1}^{N}α_{i}M_{i}。然後利用這些αiα_{i}作爲權重係數求出強度分量I,最後使用由Pan圖決定的權重矩陣式(2)改進FIHS模型式(3)進行細節注入,但是光譜失真仍然存在。 h(x)=exp(λP4+ε)(2) h(x)=exp(-\frac{λ}{|▽P|^4+ε}) (2)
其中λ=109λ=10^{-9}ε=1010ε=10^{-10}
Fi=Mi+h(x)(PI)(3)F_{i} = M_{i} + h(x)(P − I) (3)
在【2014】年《An Improved Adaptive Intensity–Hue–Saturation Method for the Fusion of Remote Sensing Images》一文中,由於使用Pan圖的權重矩陣引入的權重過大,通過添加MS的權重矩陣式(4)對FIHS模型進行改進得到式(5)以決定細節注入。雖然改善了光譜失真,但是導致細節豐富的區域的結果過於平滑,圖像細節較AIHS算法略平滑。
WMi=exp(λMi4+ε)(4) W_{M_{i}}=exp(-\frac{λ}{|▽M_{i}|^4+ε}) (4)
Fi=Mi+Wi(PI)(5)F_{i} = M_{i} + W_{i}(P − I) (5)
這裏通過權衡Pan的權重矩陣和多光譜權重矩陣的影響,得到一個折中的權重矩陣以控制細節的注入。WiW_{i}的計算公式如下。
Wi=Mi1Ni=1NMi(βWP+(1β)WMi)(6)W_{i} =\frac{M_{i}}{ \frac{1}{N}∑_{i=1}^{N}M_{i}} (βW_{P}+(1-β)W_{M_{i}}) (6)
其中WPW_{P}就是前面提到的式(2),只不過在此爲了命名上的統一稱爲WPW_{P}

IHS結合變分模型

近年來對於IHS結合變分模型的算法也取得了良好的效果,在一定程度上減少了光譜失真,如《Panchromatic and Multi-spectral Image Fusion Using IHS and Variational Models》【2012】一文使用變分法求得替代成分f,不再使用Pan直接替代求得強度分量,而是將f,H,S應用在IHS逆變換中,實驗證明該方法在光譜保持上取得了一定的進步。其主要思想就是向f中注入Pan圖像的細節,並且通過逼近I來保持光譜信息。在《JOINT IHS AND VARIATIONAL METHODS FOR PAN-SHARPENING OF VERY HIGH RESOLUTION IMAGERY》【2013】Zhou提出由3項組成的能量函數來求得替代成分的最優解。他認爲應該從Pan圖提取空間信息注入到MS中以添加細節,通過使替代成分f的低分辨版本接近於強度成分I保持光譜特徵,第三項用於保證解的平滑性。在【2016】年Zhou又發表《EXTENDED GIHS FUSION FOR PAN-SHARPENING BASED ON IMAGE MODEL》實現了IHS和變分結合的模型。另外Ghahremani於2016年提出一種新的基於變分的模型NIHS(非線性的IHS)《Nonlinear IHS: A Promising Method for Pan-Sharpening》。通過引入局部合成模型使用非線性的方法近似強度分量,引入全局模型使高空間分辨率下的強度分量與其退化(即下采樣的強度分量)的強度分量協調一致。具體來說,通過將Pan圖及其下采樣版本和LRM上採樣版本及LRM分別分成對應大小的patch,然後將Pan圖及其下采樣版本的patch看做LRM上採樣版本及LRM各波段對應位置的patch的線性組合實現非線性合成方法。值得注意的是該局部合成方法同樣利用了Pan圖應當儘可能地逼近強度分量可以減輕光譜失真的假設。
在這裏插入圖片描述
其中i表示patch的序號,s(i),S(i)s^{(i)},S^{(i)}分別表示LRM的強度分量及其上採樣版本的第i個patch,Y(i)=(y1(i),....,yk(i))TY^{(i)} =( y_{1}^{(i)} , ....,y_{k}^{(i)} )^TYup(i)=(y1,up(i),....,yk,up(i))TY_{up}^{(i)} =( y_{1,up}^{(i)} , ....,y_{k,up}^{(i)} )^T分別表示LRM及其上採樣版本在波段方向的第i個patch,k表示波段序號,個人認爲這裏的L表示波段總數。
在這裏插入圖片描述
其中X(i),x(i)X^{(i)},x^{(i)}分別表示Pan及其下采樣版本的第i個patch。
然後全局模型利用局部合成方法求出的中間結果得到滿足全局重構的最終結果,即新的強度分量。全局模型使用Iup=argminIup{IMIup22+ηIupI0,up22}(10)I_{up} =argmin_{I_{up}}\{||I-MI_{up}||_{2}^2+η||I_{up}-I_{0,up}||_{2}^2\} (10)
其中IupI_{up}爲最終得到的強度分量,而II0,upI和I_{0,up}分別爲通過局部合成方法得到的強度分量及其上採樣版本。
實驗結果表明該算法在保持光譜信息方面表現優秀,空間分辨率也尚可,但是在邊緣處略有模糊會出現塊狀陰影。就普適性和客觀評價結果來看,該算法的效果相當不錯。

IHS和小波結合的模型

藉助於小波變換能夠很好地保持原始多光譜圖像的光譜信息,而IHS算法通常能夠平滑地融合色彩和空間特徵的優點。2004年,zhang在《An IHS and wavelet integrated approach to improve pan-sharpening visual quality of natural colour IKONOS and QuickBird images》一文中提出使用IHS結合小波變換模型進行多光譜圖像融合。通過對強度分量I和直方圖匹配之後的Pan圖分別進行一層的小波分解,使用強度分量I和Pan圖的低頻子圖的線性組合替換Pan的低頻子圖以保持光譜信息,然後對該中間結果實施小波重構得到一幅新的圖像當做Pan圖,最後使用新的Pan圖代替強度分量I。這裏介紹一下如何計算新的低頻子圖,LLnew=w1ILL+w2PLLLL_{new} =w_{1}*I_{LL}+w_{2}*P_{LL},其中權重係數使用下面的公式計算。
在這裏插入圖片描述
這裏a^\hat{a},b^\hat{b}分別表示a,b的均值,N表示近似圖像的像素點總數,即ILLI_{LL}PLLP_{LL}(因爲2者一樣大)的像素點總數。
算法流程圖如下。
在這裏插入圖片描述
下面就來介紹一下IHS融合算法,並使用matlab實現IHS算法。

IHS算法步驟

首先我們按照最傳統的IHS算法的講解方式來講解IHS算法,按照該思路,IHS算法可以分爲4步:1)對上採樣的MS做IHS正變換;2)對Pan圖進行直方圖匹配得到PannewPan_{new};3)使用PannewPan_{new}替代強度分量I;4)對替代之後的結果進行IHS逆變換,最終得到融合的結果。
以上就是IHS算法的全部內容了,需要思考的是,爲什麼要對Pan進行直方圖匹配?An Improved Adaptive Intensity–Hue–Saturation Method for the Fusion of Remote Sensing Images【2014】一文中指出,直方圖匹配主要是爲了消除大氣、光照和傳感器不同的影響。
接下來在數學的角度來看一看,IHS是如何實現的,依據此分析便可以實現IHS的融合算法了。

IHS算法公式形式

1)IHS變換的公式就如下所示
這裏寫圖片描述
2)直方圖匹配,你既可以使用matlab中imhist,histeq來進行,也可以使用下面的直方圖匹配公式,其中σ表示方差,μ表示均值。
這裏寫圖片描述
3)然後我們使用上面的Pan_new來替代IHS中的I
4)接着使用逆變換公式來得到融合結果
這裏寫圖片描述

Fast IHS算法

如果沒有看懂上面的IHS算法也沒有關係,實際上IHS算法可以更簡潔地實現,這得益於Tu在2004年的研究工作。使得像我這樣的渣渣對IHS算法的理解和實現都容易了許多。像上面的步驟實現IHS還是有點繁瑣,當我們使用公式求得強度分量,再將Pan圖直方圖匹配到強度分量,就可以直接使用下面的公式實現IHS算法。至於嚴苛的數學證明這裏就不再贅述。
這裏寫圖片描述
可以看到,除了Pan依舊要做直方圖匹配,IHS的逆變換可以繞過,該方法被稱爲Fast IHS算法。由Tu在2004年提出,當然該模型可以很容易擴展到n通道,公式如下:Mif=Mi+(PI)M_{i}^{f}=M_{i}+(P-I)

matlab代碼

鑑於顯示便於觀察融合效果的緣故,我們使用3通道的圖像作爲演示IHS融合算法的實例。
主函數代碼如下:

LMS = im2double(imread('LR.tif'));
MS = imresize(LMS,4);
Pan = im2double( imread('pan.tif') );
fused = IHS(MS,Pan);
figure(1);imshow(fused);title('IHS融合結果');

IHS算法代碼如下:注意MS各波段前的係數α按照最一般的設置1N\frac{1}{N}來取的,但也有通過改變該係數形成的方式來改善IHS算法的。如:An Adaptive IHS Pan-Sharpening Method【2010】,文中通過求解自適應係數α來獲取更加精確的I,使得Pan與I的差異減小,文中指出之所以IHS算法光譜失真嚴重,主要就在於Pan與I之間的差異太大,導致注入過多的空間信息。

function [fused] = IHS(MS,Pan)
% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % 
% % 輸入參數:
% %        MS:上採樣之後的多光譜圖像
% %        Pan : 全色圖
% % 輸出參數:
% %        fused: IHS融合結果
% % 
% %
% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % 
   I = zeros(size(MS));
   for n=1:3
        I = I + MS(:,:,n)/n ; 
    end
    
    P = (Pan - mean(Pan(:))) * std(I(:))/std(Pan(:)) + mean(I(:)); % 直方圖匹配
    fused = zeros(size(MS));
    
    for n=1:3
        fused(:,:,n)= MS(:,:,n) + P - I; 
    end
end

融合結果

這裏寫圖片描述
這裏寫圖片描述
今天就先寫到這,以後還有新的瞭解就再添上。

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