如何使用预训练的 CNN 以 4 通道图像作为输入进行特征提取?

问题描述 投票:0回答:1

我有一个包含 4 通道多模态图像(视觉 + 红外,或 RGB-IR)的数据集。我想使用预训练的 CNN 进行特征提取。然后,我将使用提取的特征进行下游处理 - 降维和聚类。

问题是,对于所有模型,我发现权重都是通过在包含 RGB 图像的 ImageNet 数据集上训练获得的。我无法使用这些模型之一进行特征提取,因为它们的输入层需要形状为 (batch_size, height, width, 3) 或 (64, 224, 224, 3) 的输入。就我而言,我的输入是 (64, 224, 224, 4)。

有什么方法可以使用预训练的 CNN 模型之一吗?

我考虑过修改基础模型第一层的权重。我还考虑过将图像分成 3 通道 (RGB) 和 1 通道 (IR),并分别对它们执行特征提取 [像处理灰度图像一样处理 1 通道 IR],然后连接提取的图像特征。这些方法是否正确?有更好的办法解决这个问题吗?

python tensorflow image-processing deep-learning computer-vision
1个回答
0
投票

我以ResNet-18为例。

现在我们首先看到 Pytorch 中 ResNet 的架构。

第一层输入层,输入通道=3。

因此,我们可以先加载预训练的CNN mdoel,然后修改输入层,输入通道= 4。

model = torchvision.models.resnet18(pretrained=true)
model.conv1 = nn.Conv2d(4, 64, kernel_size=7, stride=2, padding=3, bias=False)
© www.soinside.com 2019 - 2024. All rights reserved.