模型结构
1、首先,将多光谱遥感图像的波段分为可见光和不可见光两组,然后进行分组同步特征提取;
代码
先看总体结构,主代码
__init__定义了声明MSNet模型有哪些类,MSNet的forward方法规定数据如何在层之间流动。
1、首先是获得图片的输入尺寸input_size = (rgbnnd.size()[2], rgbnnd.size()[3])
rgbnnd.size()==[batch_size, channel_num, height, weight]
2、分离可见光与不可见光rgb = rgbnnd[:, :3] nnn = rgbnnd[:, 3:]
rgbnnd是一个[2,4,512,512]的四维数组
第二维是通道排列为RGB-NIR
rgb = rgbnnd[:, :3]得到的是RGB
nnn = rgbnnd[:, 3:]得到的是近红外NIR
(注意数据集的通道顺序,需要调整)
3、可见光的特征提取rgb_dec1, rgb_dec2, rgb_dec3, rgb_dec4 = self.rgb(rgb)
其中可见波段部分为传统数字图像的RGB,主要用于提取颜色特征、纹理特征、形状特征和空间关系特征;
4、不可见光(近红外)部分的特征提取
返回所有四个特征图的原因可能是为了在需要使用多个层的特征的下游任务中提供更大的灵活性。
5、将可见光与不可见光各自生成的特征图两两连接在一起<