0

Je veux évaluer si un événement se produit dans mon écran, à chaque fois qu'il se produit une boîte/image particulière apparaît dans une région d'écran avec une structure très similaire.Python - Classificateur de reconnaissance d'image

J'ai rassemblé un tas de 84x94 .pngRGB images de cette région de l'écran et je voudrais construire un classificateur pour me dire si l'événement se produit ou non.

donc mon idée était de créer un pd.DataFrame (df) contenant 2 colonnes, df['np_array'] contient chaque image comme np.array et df['is_category'] contient des valeurs booléennes indiquant si cette image est indiquant que l'événement se passe ou non.

La structure ressemble à ceci (avec = taille!):

J'ai redimensionné les images à 10x10 pour la formation et convertie en niveau de gris

df = pd.DataFrame(
    {'np_array': [np.random.random((10, 10,2)) for x in range(0,10)], 
    'is_category': [bool(random.getrandbits(1)) for x in range(0,10)] 
    }) 

Mon problème est que je ne peux pas adapter un classificateur scikit apprendre en faisant clf.fit(df['np_array'],df['is_category'])

Je n'ai jamais essayé la reconnaissance d'image auparavant, merci d'avance pour toute aide!

Répondre

1

Si son une image en niveaux de gris 10x10, vous pouvez l'aplatir:

import numpy as np 
from sklearn import ensemble 

# generate random 2d arrays 
image_data = np.random.rand(10,10, 100) 

# generate random labels 
labels = np.random.randint(0,2, 100) 

X = image_data.reshape(100, -1) 

# then use any scikit-learn classification model 
clf = ensemble.RandomForestClassifier() 
clf.fit(X, y) 

Par ailleurs, pour les images les meilleurs algorithmes les plus performants sont les réseaux de neurones convolutionnels.

+1

Merci beaucoup pour la solution et l'astuce de l'algorithme, cela a résolu mon problème! Comme je l'ai dit, les images étaient assez similaires, avec moins de 500 images, j'ai obtenu 100% de précision dans l'ensemble des tests. – EduGord