Как передать маску сегментации предварительно подготовленной модели керас (imagenet) для извлечения признаков? - PullRequest
0 голосов
/ 07 мая 2019

Я пытаюсь использовать предварительно обученную модель Keras ('imagenet') для извлечения функций из набора изображений, которые затем я хочу кластеризовать на основе сходства этих функций.

У меня есть все для работы (как видно из фрагмента кода), но я изо всех сил пытаюсь найти документацию или примеры того, как добавить данные сегментации: т.е. я хочу извлечь функции только из сегментированной части изображения ,

Я использовал предварительно обученную модель 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 значениями для вещей, не входящих в маску сегментации), а выходные данные будут функциями сегментированной части изображения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...