Table des matières:
- Étape 1: logiciels requis
- Étape 2: Téléchargement des images
- Étape 3: Création d'échantillons positifs dans OpenCV
- Étape 4: Création d'un fichier vectoriel positif
- Étape 5: Formation du classificateur
- Étape 6: Tester le classificateur
- Étape 7: Remerciements spéciaux
Vidéo: Créer des classificateurs d'images OpenCV à l'aide de Python : 7 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:09
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
Conseillé:
Comment créer des cartes stylisées personnalisées à l'aide d'OpenStreetMap : 7 étapes (avec des images)
Comment créer des cartes stylisées personnalisées à l'aide d'OpenStreetMap : Dans cette instructable, je vais décrire un processus par lequel vous pouvez générer vos propres cartes stylisées sur mesure. Une carte stylisée est une carte où l'utilisateur peut spécifier quelles couches de données sont visualisées, ainsi que définir le style avec lequel chaque couche est v
Comment démonter un ordinateur avec des étapes et des images faciles : 13 étapes (avec des images)
Comment démonter un ordinateur avec des étapes et des images faciles : Il s'agit d'instructions sur la façon de démonter un PC. La plupart des composants de base sont modulaires et facilement démontables. Cependant, il est important que vous soyez organisé à ce sujet. Cela vous aidera à éviter de perdre des pièces, et aussi à faire le remontage ea
Comment créer un Spike Buster ou une carte de commutation télécommandé à l'aide d'Atmega328P autonome : 6 étapes (avec des images)
Comment faire un Spike Buster ou un Switch Board télécommandé à l'aide d'un Atmega328P autonome : Dans ce projet, je montrerai comment construire un Spike Buster ou un Switch Board télécommandé à l'aide d'un Atmega328P autonome. Ce projet est construit sur une carte PCB personnalisée avec très peu de composants. Si vous préférez regarder la vidéo, j'ai intégré le même ou
Scannez des objets à proximité pour créer un modèle 3D à l'aide d'ARDUINO : 5 étapes (avec des images)
Scannez des objets à proximité pour créer un modèle 3D à l'aide d'ARDUINO : ce projet est spécifique en utilisant le capteur à ultrasons HC-SR04 pour rechercher des objets à proximité. Pour créer un modèle 3D, vous devez balayer le capteur dans la direction perpendiculaire. Vous pouvez programmer l'Arduino pour déclencher une alarme lorsque le capteur détecte un objet avec
Créer des images graphiques stéréo dans Excel : 8 étapes (avec des images)
Créer des images graphiques stéréo dans Excel : les images graphiques stéréo peuvent ajouter de la profondeur aux tracés 3D