2016-06-26 2 views
0

J'essaie de détecter des balles dans une cible de tir en utilisant des réseaux de neurones convolutionnels. L'image est une cible de prise de vue standard.en utilisant un réseau neuronal convolutif pour une tâche de régression

L'ensemble de données se compose de 9216 images de taille 96x96 et il n'y a qu'une seule puce quelque part dans l'image. J'ai étiqueté chaque image avec le (x, y) du centre du trou de balle. J'ai également normalisé les images.

Le modèle ressemble à ceci:

model = Sequential() 
model.add(Convolution2D(32, 3, 3, 
        input_shape=(3,96, 96))) 
model.add(Activation('relu')) 
model.add(MaxPooling2D(pool_size=(2, 2))) 
model.add(Convolution2D(64, 2, 2)) 
model.add(Activation('relu')) 
model.add(MaxPooling2D(pool_size=(2, 2))) 
model.add(Convolution2D(128, 2, 2)) 
model.add(MaxPooling2D(pool_size=(2, 2))) 
model.add(Flatten()) 
model.add(Dense(2)) 
model.compile(loss='mean_squared_error', optimizer='rmsprop') 

Le modèle converge toujours autour du centre de l'image ..

Un conseil?

Répondre

0

Vous regroupez après chaque couche convolutionnelle. Je ne pense pas que cela lui permettrait d'apprendre des fonctionnalités raisonnables, surtout près de l'entrée. D'après certains modèles que j'ai vus, il serait préférable d'avoir quelques couches convolutives au début avant de faire une opération de pooling.