import os
import numpy as np
import tensorflow as tf
from tensorflow.python.keras.backend import set_session
# from keras.applications.vgg16 import VGG16
# from keras.applications.vgg16 import preprocess_input
# from keras.preprocessing import image
from tensorflow.keras.applications.vgg16 import VGG16
from tensorflow.keras.applications.vgg16 import preprocess_input
from tensorflow.keras.preprocessing import image
from numpy import linalg as la
os.environ['CUDA_VISIBLE_DEVICES'] = '0'
# os.environ['KERAS_BACKEND'] = 'theano'
class VGGNet:
# 初始化
def __init__(self):
config = tf.compat.v1.ConfigProto()
config.gpu_options.per_process_gpu_memory_fraction = 0.5
set_session(tf.compat.v1.Session(config=config))
# 输入图像的大小
self.input_shape = (224, 224, 3)
# 池化方式
self.pooling = 'max'
# 使用的模型
# - weights:指定使用哪个预训练模型的权重。该参数可以是None(不使用预训练权重),
# 'imagenet' 表示使用在ImageNet数据集上预训练的权重
# - input_shape:指定输入图像的大小
# - include_top:指定是否包含模型的顶部(即全连接层),False表示不包含顶部,只包含模型的卷积部分。
self.model = VGG16(weights='imagenet',
input_shape=(self.input_shape[0],
self.input_shape[1], self.input_shape[2]), pooling=self.pooling,
include_top=False)
# 模型预测操作,预先加载模型权重,以便在后续使用该模型时能够更快地进行推理
# 具体来说,这里使用了一个全零数组作为输入,该数组的维度为(1, 224, 224, 3),
# 与VGG16模型所需的输入维度相同。使用全零数组作为输入的原因是,
# 在预测时,模型会根据输入的形状来推断其内部的参数,从而自动初始化权重。
# 这样,在后续使用该模型时,就可以避免在每次进行预测时都要重新初始化模型权重的问题,从而提高推理速度。
self.model.predict(np.zeros((1, 224, 224, 3)))
# 获取最后一层卷积输出的特征
def extract_feat(self, img_path):
# 加载指定路径的图像为PIL格式,并将其调整为指定大小
img = image.load_img(img_path, target_size=(self.input_shape[0], self.input_shape[1]))
# 将图像转换为numpy数组
img = image.img_to_array(img)
# 在第0个维度上添加一个维度,将图像转换为4D张量
img = np.expand_dims(img, axis=0)
# 对图像进行预处理,将其转换为VGG16模型可以接受的数据格式
img = preprocess_input(img)
# 使用VGG16模型对预处理后的图像进行特征提取
feat = self.model.predict(img)
# 对提取的特征进行归一化处理,即将其除以特征向量的L2范数
norm_feat = feat[0] / la.norm(feat[0])
# 返回处理后的特征向量
return norm_feat
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
- -------- 该资源内项目源码是个人的毕设,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! <项目介绍> 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 --------
资源推荐
资源详情
资源评论
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
收起资源包目录
![package](https://csdnimg.cn/release/downloadcmsfe/public/img/package.f3fc750b.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
共 14 条
- 1
资源评论
![avatar-default](https://csdnimg.cn/release/downloadcmsfe/public/img/lazyLogo2.1882d7f4.png)
![avatar](https://profile-avatar.csdnimg.cn/8aa41e1a9c6c4428a1e22f23f0c8c0da_m0_73728511.jpg!1)
机智的程序员zero
- 粉丝: 2254
- 资源: 4291
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)