Machine learning 高分辨率图像分类

Machine learning 高分辨率图像分类,machine-learning,tensorflow,pre-trained-model,Machine Learning,Tensorflow,Pre Trained Model,通常预先训练的网络,如VGG16/Inception等,其分辨率较低,如

通常预先训练的网络,如VGG16/Inception等,其分辨率较低,如<500px

是否可以在预先训练的VGG16/Inception的第一层之前添加一个(或两个)高分辨率卷积层,以使网络能够使用高分辨率图片

据我所知,第一层最难训练,训练它需要大量的数据和资源

我想知道是否有可能冻结预先训练好的网络,只训练普通GPU卡上新连接的高分辨率层和大约3000个示例?能在几个小时内完成吗

此外,如果您知道如何使用高分辨率图像进行图像分类的任何示例,请共享该链接

附言


通常的降尺度方法的问题是,在我们的例子中,微小的细节,如微小的裂缝或微小的污点非常重要,它们在较低分辨率的图像上丢失了。

你不可能冻结预训练的网络,然后在一开始就添加额外的层,因为初始层需要三个通道输入,并且设计用于在图像中发现特征

相反,您可以尝试修改网络的体系结构,以便在使用池或跨步缩小规模之前,初始层确实接收1024x1024个图像

例如,您可以尝试将Inception V3的Slim模型定义中第一个conv层的步幅调整为8,而不是2:


这将允许您读取4倍大的图像,同时保持网络的其余部分不变。不幸的是,我想你需要做一次全面的重新培训。

将受过训练的IMANET模型应用到你的问题中,你可以考虑在后端而不是正面放置新的层。ImageNet CNN模型中的第一层经过训练,可以检测“通用”的低级特征(水平/垂直/对角边缘、色斑等)。这些卷积层不需要固定的图像大小(由于图像中对象的预期比例和/或为了适应完全连接层的尺寸,通常将图像调整为公共尺寸)


因此,您可以尝试保持第一个
N
卷积层的原样,然后添加要为数据集训练的自定义层。训练自定义层后,您可以决定解冻现有ImageNet层并更新它们是否有意义。

输入图像的大小是多少?大约1024x1024