VGG16模型图像识别项目代码
时间: 2025-06-13 14:05:32 浏览: 3
VGG16是一种深度卷积神经网络架构,在图像分类任务上表现出色。它由牛津大学视觉几何组(Visual Geometry Group)提出,并以其简单而有效的结构著称。
### 使用Keras构建基于VGG16的图像识别项目
为了帮助您快速开始,下面是一个简单的例子,展示了如何使用预训练的VGG16模型来进行图像分类:
```python
from keras.applications.vgg16 import VGG16, preprocess_input, decode_predictions
from keras.preprocessing import image
import numpy as np
# 加载包含ImageNet数据集预训练权重的VGG16模型,默认输入尺寸为(224, 224)
model = VGG16(weights='imagenet')
def predict_image(img_path):
# 加载图片并调整大小到指定尺寸 (224x224),这是VGG16所需的输入尺寸
img = image.load_img(img_path, target_size=(224, 224))
# 将PIL.Image转换成numpy数组形式
x = image.img_to_array(img)
# 增加一个维度以匹配模型预期的输入形状 [batch_size, height, width, channels]
x = np.expand_dims(x, axis=0)
# 对像素值进行预处理操作如缩放等,使其适应VGG16的要求
x = preprocess_input(x)
# 获取预测结果;返回的是各个类别的概率分布向量
preds = model.predict(x)
print('Predicted:', decode_predictions(preds, top=3)[0])
return decode_predictions(preds, top=3)[0]
if __name__ == '__main__':
test_image = 'path/to/your/image.jpg'
predictions = predict_image(test_image)
```
此示例演示了加载一张测试图象并通过VGG16模型获取其最有可能属于哪些类别及其对应置信度的过程。
请注意,这只是一个基础框架。实际应用中可能还需要考虑更多因素,例如自定义最后几层用于特定领域的迁移学习、优化超参数设置以及增强对本地化硬件的支持等等。
阅读全文
相关推荐


















