如何将分割蒙版传递给keras预训练模型(imagenet)以进行特征提取?

时间:2019-05-07 08:55:31

标签: python machine-learning keras label

我正在尝试使用预先训练的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),并且输出将成为图像的分割部分的特征。

0 个答案:

没有答案