我正在尝试使用预先训练的Keras模型(“图像网”)从一组图像中提取特征,然后根据这些特征的相似性对其进行聚类。
我已经可以使用所有功能(如代码片段所示),但是我一直在努力寻找文档或如何添加细分数据的示例:即,我只想提取图像分割部分的特征。
我已经使用了预先训练的imagenet模型来提取整个图像的特征。
from keras.preprocessing import image
from keras.applications import vgg16, inception_v3, resnet50, mobilenet
from keras.applications.vgg16 import preprocess_input
import numpy as np
import PIL
import urllib, cStringIO
import contextlib
import sklearn
model = resnet50.ResNet50(weights='imagenet', include_top=False)
def predict_feature(url, model):
img_path = url
with contextlib.closing(urllib.urlopen(url)) as req:
local_url = cStringIO.StringIO(req.read())
img = image.load_img(local_url, target_size=(224, 224))
img_data = image.img_to_array(img)
img_data = np.expand_dims(img_data, axis=0)
img_data = preprocess_input(img_data)
resnet50_feature = model.predict(img_data)
return np.array(resnet50_feature).flatten()
我希望输入一个URL /图像数组和一个分割蒙版数组(相同的图像,但分割蒙版之外的东西值为0),并且输出将成为图像的分割部分的特征。