Étape 6: Former des images à l’aide de fonctions de la bibliothèque OpenCV
À la dernière étape, nous allons recevoir un tableau de trois éléments, à savoir, des images, des étiquettes et des personnes.
Maintenant, dans cette étape nous allons utiliser images et étiquettes en tant que paramètres pour former un modèle faceRecognizer. Fondamentalement, ce modèle est une fonction d’OpenCV et nous demandons à cette fonction pour retenir et apprendre à faire une corrélation entre les images et étiquettes. Ainsi, après la formation, nous pouvons demander la fonction pour prédire l’étiquette en donnant une image comme entrée et il retourne une étiquette prévue.
Cette partie du code prend une entrée :
1. chemin-le chemin d’accès au dossier images.
Et deux sorties de retours :
1. eigen_model-le modèle formé après avoir analysé toutes les images est retourné.
2. personnes-un tableau qui contient les noms de nos amis. (les noms de nos sous-dossiers)
Cet extrait de code est la partie cruciale dans notre code entier. Cette partie du code peut prendre un certain temps à remplir si vous avez beaucoup d’images de former. J’ai un total de 200 images et il a fallu près de 7 secondes sur mon ordinateur portable Dell avec Intel 3e génération i5 processeur 1,8 GHz Vitesse sous Ubuntu.
Ainsi, nous avons terminé la formation d’un modèle à l’aide des fonctions OpenCV et nous pouvons aller de l’avant sur les prochaines étapes.
Code
Remarque :
Ce code est une petite partie du code terminé et ne fonctionne pas individuellement. J’ai utilisé ici pour expliquer le code.
def train_model(path):<br> ''' Takes path to images and train a face recognition model Returns trained model and people ''' [images, labels, people]= get_images(sys.argv[1], (256, 256)) #print([images, labels]) labels= np.asarray(labels, dtype= np.int32) # initializing eigen_model and training print("Initializing eigen FaceRecognizer and training...") sttime= time.clock() eigen_model= cv2.createEigenFaceRecognizer() eigen_model.train(images, labels) print("\tSuccessfully completed training in "+ str(time.clock()- sttime)+ " Secs!") return [eigen_model, people]