Table des matières:
Vidéo: Créer des classificateurs d'images OpenCV à l'aide de Python : 7 étapes
2025 Auteur: John Day | [email protected]. Dernière modifié: 2025-01-13 06:57
Les classificateurs Haar en python et opencv sont une tâche plutôt délicate mais facile.
Nous sommes souvent confrontés aux problèmes de détection et de classification d'images. la meilleure solution est de créer votre propre classificateur. Ici, nous apprenons à créer nos propres classificateurs d'images avec quelques commandes et des programmes python longs mais simples
La classification nécessite un grand nombre d'images négatives et positives les négatifs ne contiennent pas l'objet recherché alors que les positifs sont ceux qui contiennent l'objet à détecter.
Environ 2000 négatifs et positifs sont nécessaires. Le programme python convertit l'image en niveaux de gris et une taille appropriée afin que les classificateurs prennent le temps optimal pour créer.
Étape 1: logiciels requis
Vous avez besoin des logiciels suivants pour la création de votre propre classificateur
1) OpenCV: la version que j'ai utilisée est la 3.4.2. la version est facilement disponible sur internet.
2) Python: La version utilisée est la 3.6.2. Peut être téléchargé sur python.org
De plus, vous avez besoin d'une webcam (bien sûr).
Étape 2: Téléchargement des images
La première étape consiste à prendre une image claire de l'objet à classer.
La taille ne doit pas être très importante car le traitement de l'ordinateur prend plus de temps. J'ai pris la taille 50 par 50.
Ensuite, nous téléchargeons les images négatives et positives. Vous pouvez les trouver en ligne. Mais nous utilisons le code python pour télécharger des images depuis 'https://image-net.org'
Ensuite, nous convertissons les images en niveaux de gris et en taille normale. Ceci est également implémenté dans le code. Le code supprime également toute image défectueuse
À présent, votre répertoire doit contenir l'image de l'objet, par exemple watch5050-j.webp
Si le dossier de données n'est pas créé, faites-le manuellement
Le code python est fourni dans le fichier.py
Étape 3: Création d'échantillons positifs dans OpenCV
Allez maintenant dans le répertoire opencv_createsamples et ajoutez tout le contenu mentionné ci-dessus
dans l'invite de commande, accédez à C:\opencv342\build\x64\vc14\bin pour trouver les applications opencv_createsamples et opencv_traincascade
exécutez maintenant les commandes suivantes
opencv_createsamples -img watch5050-j.webp
Cette commande sert à créer les échantillons positifs de l'objet 1950 pour être exact Et le fichier de description info.lst des images positives la description devrait être comme ceci 0001_0014_0045_0028_0028-j.webp
Maintenant, le dossier contient
infos
dossier d'images négatives
fichier bg.txt
dossier de données vide
Étape 4: Création d'un fichier vectoriel positif
Créez maintenant le fichier vectoriel positif qui fournit le chemin d'accès aux images positives du fichier de description
Utilisez la commande suivante
opencv_createsamples -info info/info.lst -num 1950 -w 20 -h 20 -vec positifs.vec
A présent, le contenu du répertoire doit être le suivant:
--neg
----negimages.jpg
--opencv
--Info
--Les données
--positifs.vec
--bg.txt
--watch5050-j.webp
Étape 5: Formation du classificateur
Entraînons maintenant la cascade haar et créons le fichier xml
Utilisez la commande suivante
opencv_traincascade -data data -vec positives.vec -bg bg.txt -numPos 1800 -numNeg 900 -numStages 10 -w 20 -h 20
les étapes sont 10 L'augmentation des étapes demande plus de traitement, mais le classificateur est bien plus efficace.
Maintenant, haarcascade est créé Il faut environ deux heures pour terminer Ouvrez le dossier de données, vous y trouverez cascade.xml C'est le classificateur qui a été créé
Étape 6: Tester le classificateur
Le dossier de données contient les fichiers comme indiqué dans l'image ci-dessus.
Après la création du classificateur, nous voyons si le classificateur fonctionne ou non en exécutant le programme object_detect.py. N'oubliez pas de placer le fichier classifier.xml dans le répertoire python.
Étape 7: Remerciements spéciaux
Je tiens à remercier ici Sentdex qui est un excellent programmeur python.
Il a un nom youtube avec le nom mentionné ci-dessus et la vidéo qui m'a beaucoup aidé a ce lien
La plupart du code a été copié à partir de sentdex. Bien que j'aie reçu beaucoup d'aide de sentdex, j'ai encore rencontré beaucoup de problèmes. Je voulais juste partager mon expérience.
J'espère que cet intrussable vous a aidé !!! Restez à l'écoute pour plus.
BR
Tahir Ul Haq