用python实现批量图片的特征向量提取
时间: 2023-06-18 11:03:45 浏览: 106
要实现批量图片的特征向量提取,可以使用深度学习模型中的卷积神经网络(Convolutional Neural Network,CNN)。具体实现步骤如下:
1. 导入相关库
```
import os
import numpy as np
import tensorflow as tf
from tensorflow.keras.preprocessing.image import load_img, img_to_array
from tensorflow.keras.applications.vgg16 import preprocess_input, VGG16
```
2. 定义函数提取特征向量
```
def extract_features(directory, model):
features = {}
for filename in os.listdir(directory):
path = directory + '/' + filename
image = load_img(path, target_size=(224, 224))
image = img_to_array(image)
image = np.expand_dims(image, axis=0)
image = preprocess_input(image)
feature = model.predict(image, verbose=0)
features[filename] = feature
return features
```
3. 加载预训练的VGG16模型
```
model = VGG16()
```
4. 调用函数提取特征向量
```
directory = 'path/to/image/directory'
features = extract_features(directory, model)
```
其中,`directory`表示图片所在的文件夹路径,`model`为预训练的VGG16模型,`features`为提取出的特征向量,以字典形式存储,键为图片文件名,值为特征向量。
需要注意的是,此方法提取的特征向量是针对VGG16模型的,如果需要使用其他模型,可以对应修改代码中的模型部分。
阅读全文