Taula de continguts:
Vídeo: Creeu classificadors d'imatges OpenCV amb Python: 7 passos
2025 Autora: John Day | [email protected]. Última modificació: 2025-01-13 06:57
Els classificadors Haar en python i opencv són una tasca bastant complicada però fàcil.
Sovint ens enfrontem als problemes de detecció i classificació d’imatges. el millor solució és crear el vostre propi classificador. Aquí aprenem a fer els nostres propis classificadors d’imatges amb algunes ordres i programes Python llargs però senzills
La classificació requereix un gran nombre d'imatges negatives i positives. Els negatius no contenen l'objecte requerit, mentre que els positius són els que contenen l'objecte a detectar.
Es requereixen uns 2000 negatius i positius. El programa Python converteix la imatge en escala de grisos i una mida adequada de manera que els classificadors triguen el temps òptim a crear-se.
Pas 1: cal programes
Necessiteu els següents programes per a la creació del vostre propi classificador
1) OpenCV: la versió que he fet servir és 3.4.2. la versió està fàcilment disponible a Internet.
2) Python: s'utilitza la versió 3.6.2. Es pot descarregar des de python.org
A més, necessiteu una càmera web (per descomptat).
Pas 2: descàrrega de les imatges
El primer pas és fer una imatge clara de l’objecte a classificar.
La mida no hauria de ser molt gran, ja que triga més temps a processar l’ordinador. Vaig agafar una mida de 50 per 50.
A continuació, descarreguem les imatges negatives i positives. Els podeu trobar en línia. Però fem servir el codi python per descarregar imatges de "https://image-net.org"
A continuació, convertim les imatges a escala de grisos i a una mida normal. Això ja està implementat al codi. El codi també elimina qualsevol imatge defectuosa
A hores d’ara el vostre directori hauria de contenir la imatge de l’objecte, per exemple, watch5050-j.webp
Si no es crea la carpeta de dades, feu-ho manualment
El codi python es proporciona al fitxer.py
Pas 3: Creació de mostres positives a OpenCV
Ara aneu al directori opencv_createsamples i afegiu tot el contingut esmentat anteriorment
a la comanda, aneu a C: / opencv342 / build / x64 / vc14 / bin per trobar opencv_createsamples i opencv_traincascade
ara executeu les ordres següents
opencv_createsamples -img watch5050-j.webp
Aquesta ordre serveix per crear exactament les mostres positives de l'objecte 1950 i el fitxer de descripció info.lst de les imatges positives la descripció hauria de ser així 0001_0014_0045_0028_0028-j.webp
Ara la carpeta conté
informació
carpeta d'imatges neg
fitxer bg.txt
carpeta de dades buida
Pas 4: creació d'un fitxer vectorial positiu
Ara creeu el fitxer vectorial positiu que proporciona el camí cap a les imatges positives del fitxer de descripció
Utilitzeu l'ordre següent
opencv_createsamples -info info / info.lst -num 1950 -w 20 -h 20 -vec positives.vec
A hores d'ara, el contingut del directori ha de ser el següent:
--neg
---- negimages.jpg
--opencv
--informació
--dades
--positives.vec
--bg.txt
--watch5050-j.webp
Pas 5: entrenar el classificador
Ara permet entrenar la cascada haar i crear el fitxer xml
Utilitzeu l'ordre següent
opencv_traincascade -dades de dades -vec positives.vec -bg bg.txt -numPos 1800 -numNeg 900 -numEtapes 10 -w 20 -h 20
les etapes són 10 L'augment de les etapes requereix més processament, però el classificador és molt més eficient.
Ara es crea haarcascade. Triga aproximadament dues hores a completar-se. Obriu la carpeta de dades allà, trobareu cascade.xml Aquest és el classificador que s'ha creat
Pas 6: provar el classificador
La carpeta de dades conté els fitxers tal com es mostra a la imatge superior.
Després de la creació del classificador, veiem si el classificador funciona o no executant el programa object_detect.py. No oblideu col·locar el fitxer classifier.xml al directori python.
Pas 7: gràcies especials
M'agradaria donar les gràcies aquí a Sentdex, que és un gran programador de python.
Té un nom de youtube amb el nom esmentat anteriorment i el vídeo que em va ajudar molt té aquest enllaç
La major part del codi s'ha copiat de sentdex. Tot i que vaig rebre molta ajuda de sentdex, encara em vaig enfrontar a molts problemes. Només volia compartir la meva experiència.
Espero que aquest intructable us hagi ajudat !!! Estigueu atents a més.
BR
Tahir Ul Haq