高光谱图像融合现状
基于Pansharpening的高光谱图像融合方法
基于Pansharpening的高光谱图像融合方法是从多光谱图像与全色图像的融合方法迁移到高光谱图像融合方法的。它主要有以下几种方法:
成分替代
成分替代方法是对多光谱图像进行变换分离其空间部分,利用全色图像代替再进行逆变换。
多分辨率分析
多分辨率分析方法是提取全色的空间细节,对多光谱进行细节补充。 工具包链接为:
基于模型驱动的高光谱图像融合方法
工具包链接:模型驱动的高光谱图像融合工具包
基于深度学习的高光谱图像融合方法
简单利用卷积神经网络融合高光谱图像
利用卷积神经网络学习低分辨率高光谱图像和高分辨率多光谱图像到高分辨率高光谱图像的映射关系。
tensorflow代码如下(示例):
def get_cnn():
inputs = l = Input((4, 4, 31), name='inputs') #低分辨率高光谱图像块
inputs1 = l1 = Input((32, 32, 3), name='inputs1') #高分辨率多光谱图像块
l = UpSampling2D((8, 8))(l)
l = tf.concat([l, l1],3)
l3 = Conv2D(31, (5, 5), padding='same', name='conv13')(l2)
l3 = Activation('relu', name='conv13_relu')(l3)
output = l3
return inputs,inputs1, output
深度展开网络
tensorflow代码如下(示例):
def HSInet(Y,Z, iniUp3x3,iniA,upRank,outDim,HSInetL,subnetL,ratio=8):
B = tf.get_variable(
'B',
[1, 1, upRank, outDim],
tf.float32,
initializer=tf.truncated_normal_initializer(mean = 0.0, stddev = 0.1))
tranB = tf.transpose(B,perm = [0,1,3,2])
CListX = getCs('TheCsX', ratio)#inital the kernel for downsampling
downY4, downY16, _ = downSam('GetPrior',Y, CListX, 3, ratio)# getPrior for upsample
# fist stage
YA = MyconvA( 'YA1', Y, 3, outDim, [1,1,1,1], iniA) #caculating YA
_, _, downX32 = downSam('CX1',YA, CListX, outDim, ratio) # downsampling
E = downX32-Z # Z上的残差
G = UpSam('E1',E, downY4, downY16, Y, iniUp3x3, outDim, ratio) # unsampling E
G = tf.nn.conv2d(G, tranB, [1,1,1,1], padding='SAME')
HY = -G #
HY = resCNNnet(('Pri%s'%(1)),HY,1,upRank, subnetL)
HY = resCNNnetPrior(('Pri%s'%(1)),HY, Y,1,upRank,3,subnetL)
ListX = []
# 2nd to the 19th stage
for j in range(HSInetL-2):
HYB= tf.nn.conv2d(HY, B, [1,1,1,1], padding='SAME')
ListX.append(YA + HYB)
_, _, downX32 = downSam( ('CX%s'%(j+2)),ListX[int(j)],CListX,outDim, ratio)
E = downX32-Z
G = UpSam( ('E%s'%(j+2)),E, downY4, downY16, Y, iniUp3x3, outDim, ratio)
G = tf.nn.conv2d(G, tranB, [1,1,1,1], padding='SAME')
HY = HY-G
HY = resCNNnet(('Pri%s'%(j+2)),HY,j+2,upRank, subnetL)
HY = resCNNnetPrior(('Pri%s'%(j+2)),HY, Y,j+2,upRank,3,subnetL)
the final stage
HYB = tf.nn.conv2d(HY, B, [1,1,1,1], padding='SAME')
ListX.append(YA + HYB)
outX = resCNNnet('FinalAjust',ListX[int(HSInetL-2)],101,outDim, levelN = 5)
_,_,CX = downSam( ('CX%s'%(HSInetL)),ListX[int(HSInetL-2)],CListX, outDim, ratio)
E = CX-Z
return outX, ListX, YA, E, HY
无监督深度学习方法
高光谱图像融合数据(仿真的)
CAVE数据集链接:CAVE数据集 Harvard数据集链接:Harvard数据集 ICVL数据集链接:ICVL数据集
高光谱图像融合数据(真实的)
总结
|