1.提取单张图片的特征向量
import os.path
import torch
import torch.nn as nn
from torchvision import models, transforms
from torch.autograd import Variable
import numpy as np
from PIL import Image
features_dir = './features' # 存放特征的文件夹路径
img_path = "FullFrame1/images0001.png" # 图片路径
file_name = img_path.split('/')[-1] # 图片路径的最后一个/后面的名字
feature_path = os.path.join(features_dir, file_name + '.txt') # /后面的名字加txt
transform1 = transforms.Compose([ # 串联多个图片变换的操作
transforms.Scale(256), # 缩放
transforms.CenterCrop(224), # 中心裁剪
transforms.ToTensor()] # 转换成Tensor
)
img = Image.open(img_path) # 打开图片
img1 = transform1(img) # 对图片进行transform1的各种操作
# resnet18 = models.resnet18(pretrained = True)
resnet50_feature_extractor = models.resnet50(pretrained=True) # 导入ResNet50的预训练模型
resnet50_feature_extractor.fc = nn.Linear(2048, 2048)