利用预训练卷积神经网络进行特征提取与存储
在计算机视觉领域,利用预训练的卷积神经网络(CNN)进行特征提取是一种非常有效的技术。它可以帮助我们在不从头训练网络的情况下,对新的图像数据集进行分类。下面将详细介绍如何使用预训练的VGG16网络进行特征提取,并将提取的特征存储到HDF5数据集中。
1. 预训练CNN作为特征提取器
传统上,我们将卷积神经网络视为端到端的图像分类器,其流程如下:
1. 将图像输入到网络中。
2. 图像在网络中进行前向传播。
3. 从网络的输出端获得最终的分类概率。
然而,我们并不一定要让图像在整个网络中进行前向传播。我们可以在任意层(如激活层或池化层)停止传播,提取该层的数值,并将其用作特征向量。
以VGG16网络为例,原始的VGG16网络会输出1000个ImageNet类标签的概率。当我们将其作为特征提取器时,通常会去掉全连接层(FC),返回最后一个池化层的输出。最后一个池化层的输出形状为7×7×512,这意味着有512个大小为7×7的滤波器。将这些值展开后,我们可以得到一个长度为25,088的特征向量,用于量化图像的内容。
如果我们对整个图像数据集(包括VGG16未训练过的数据集)重复这个过程,就会得到一个包含N个图像的设计矩阵,每个图像有25,088列,用于量化其内容。利用这些特征向量,我们可以训练一个现成的机器学习模型,如线性支持向量机(Linear SVM)、逻辑回归分类器或随机森林,以识别新的图像类别。
需要注意的是,CNN本身并不能识别这些新类别,我们只是将其作为中间特征提取器。下游的机器学习分类器将负责学习从CNN提取的特征的潜在模式。
<
基于VGG16的图像特征提取
超级会员免费看
订阅专栏 解锁全文
11万+

被折叠的 条评论
为什么被折叠?



