Локализация объектов Керас | Предсказывает все изображение - PullRequest
0 голосов
/ 09 января 2019

В настоящее время я пытаюсь предсказать положение объекта в изображении, используя простую сверточную нейронную сеть, но данный прогноз всегда является полным изображением.

  • Набор данных представляет собой набор данных Stanford Cars, который содержит около 8144 изображений автомобилей.

  • Я не пытаюсь предсказать, какой это тип автомобиля, только его позиция

  • Объектами являются изображения в оттенках серого 200x200, масштаб которых изменяется между [0,1]

  • Надписи: LeftX, TopY, Ширина, Высота. Также масштабируется между [0,1]

Вот модель:

model = Sequential()

model.add(Conv2D(64,(3,3),input_shape = (200,200,1)))
model.add(Activation("relu"))
model.add(MaxPooling2D(pool_size=2))

model.add(Conv2D(64,(3,3)))
model.add(Activation("relu"))
model.add(MaxPooling2D(pool_size=2))

model.add(Flatten())
model.add(Dense(4))
model.add(Activation("sigmoid"))

model.compile(loss="mean_squared_error",optimizer="Adam",metrics=[])
model.fit(X,y,batch_size=32, validation_split=0,epochs=30,verbose=2)

Предсказания модели в основном всегда: [0,0,1,1].

1 Ответ

0 голосов
/ 09 января 2019

Вы можете попробовать это, я использовал предварительно обученную сеть Xception, чтобы функционировать в качестве экстрактора функций. Вы можете поэкспериментировать с другими моделями Imagenet, такими как inception, resnet50 и т. Д. Использование предварительно обученной сети может помочь вам получить хорошие результаты даже при небольшом объеме данных. подробнее о трансферном обучении

from tensorflow.python.keras.layers import GlobalAveragePooling2D, Dense, Input
from tensorflow.python.keras.applications.xception import Xception  

inp = Input(shape=(299, 299, 3))
base_model = Xception(include_top=False, input_tensor=inp, weights='imagenet')
y = base_model.layers[-1].output
y = GlobalAveragePooling2D()(y)
y = Dense(4, activation='sigmoid')(y)
model = Model(inputs=inp, outputs=y)

форма вывода [Нет, 4], что означает, что каждая метка состоит из 4 чисел

  • x - x координата центра ограничительной рамки
  • y - y координата центра ограничительной рамки
  • w - ширина ограничительной рамки
  • ч - высота ограничительной рамки

Метки масштабируются до значений от 0 до 1. (масштабируются по размерам изображения)

образец ограничительной рамки для изображения cat

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