Inhaltsverzeichnis:
Video: OpenCV-Bildklassifikatoren mit Python erstellen - Gunook
2025 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2025-01-13 06:56
Haarklassifikatoren in Python und Opencv sind eine ziemlich knifflige, aber einfache Aufgabe.
Wir stehen oft vor den Problemen bei der Bilderkennung und -klassifizierung. Die beste Lösung ist, einen eigenen Klassifikator zu erstellen. Hier lernen wir, mit wenigen Befehlen und langen, aber einfachen Python-Programmen eigene Bildklassifikatoren zu erstellen
Die Klassifizierung erfordert eine große Anzahl von Negativ- und Positivbildern, wobei Negative das gewünschte Objekt nicht enthalten, während die Positiven diejenigen sind, die das zu detektierende Objekt enthalten.
Etwa 2000 Negative und Positive sind erforderlich. Das Python-Programm wandelt das Bild in Graustufen und eine geeignete Größe um, damit Klassifizierer die optimale Zeit zum Erstellen benötigen.
Schritt 1: Erforderliche Software
Für die Erstellung Ihres eigenen Klassifikators benötigen Sie folgende Software
1) OpenCV: Die von mir verwendete Version ist 3.4.2. die Version ist leicht im Internet verfügbar.
2) Python: Die verwendete Version ist 3.6.2. Kann von python.org heruntergeladen werden
Außerdem benötigen Sie (natürlich) eine Webcam.
Schritt 2: Herunterladen der Bilder
Der erste Schritt besteht darin, sich ein klares Bild von dem zu klassifizierenden Objekt zu machen.
Die Größe sollte nicht sehr groß sein, da die Verarbeitung durch den Computer länger dauert. Ich habe die Größe 50 mal 50 genommen.
Als nächstes laden wir die negativen und positiven Bilder herunter. Sie können sie online finden. Aber wir verwenden den Python-Code, um Bilder von 'https://image-net.org' herunterzuladen.
Als nächstes konvertieren wir die Bilder in Graustufen und in eine normale Größe. Dies ist auch im Code implementiert. Der Code entfernt auch alle fehlerhaften Bilder
Ihr Verzeichnis sollte jetzt das Objektbild enthalten, z. B. watch5050-j.webp
Wenn kein Datenordner erstellt wird, tun Sie dies manuell
Der Python-Code wird in der.py-Datei bereitgestellt
Schritt 3: Erstellen von positiven Proben in OpenCV
Gehen Sie nun in das Verzeichnis opencv_createsamples und fügen Sie alle oben genannten Inhalte hinzu
Gehen Sie in der Eingabeaufforderung zur Eingabeaufforderung zu C:\opencv342\build\x64\vc14\bin, um die Apps opencv_createsamples und opencv_traincascade zu finden
Führe nun die folgenden Befehle aus
opencv_createsamples -img watch5050-j.webp
Dieser Befehl dient zum Erstellen der Positivmuster des Objekts 1950 um genau zu sein Und die Beschreibungsdatei info.lst der Positivbilder sollte die Beschreibung so sein 0001_0014_0045_0028_0028-j.webp
Jetzt enthält der Ordner
info
Ordner mit negativen Bildern
bg.txt-Datei
Datenordner leeren
Schritt 4: Erstellen einer positiven Vektordatei
Erstellen Sie nun die positive Vektordatei, die den Pfad zu den positiven Bildern bereitstellt, die Beschreibungsdatei
Verwenden Sie den folgenden Befehl
opencv_createsamples -info info/info.lst -num 1950 -w 20 -h 20 -vec positives.vec
Der Inhalt des Verzeichnisses muss nun wie folgt aussehen:
--neg
----negimages.jpg
--opencv
--die Info
--Daten
--positives.vec
--bg.txt
--watch5050-j.webp
Schritt 5: Klassifikator trainieren
Jetzt können wir die Haarkaskade trainieren und die XML-Datei erstellen
Verwenden Sie den folgenden Befehl
opencv_traincascade -data data -vec positives.vec -bg bg.txt -numPos 1800 -numNeg 900 -numStages 10 -w 20 -h 20
Stufen sind 10 Das Erhöhen der Stufen erfordert mehr Verarbeitung, aber der Klassifikator ist viel effizienter.
Jetzt ist haarcascade erstellt Es dauert ungefähr zwei Stunden, bis es abgeschlossen ist Öffnen Sie den Datenordner dort finden Sie cascade.xml Dies ist der Klassifikator, der erstellt wurde
Schritt 6: Testen des Klassifikators
Der Datenordner enthält die Dateien wie in der Abbildung oben gezeigt.
Nach der Erstellung des Klassifikators sehen wir, ob der Klassifikator funktioniert oder nicht, indem wir das Programm object_detect.py ausführen. Vergessen Sie nicht, die Datei classifier.xml im Python-Verzeichnis zu platzieren.
Schritt 7: Besonderer Dank
Ich möchte hier Sentdex danken, der ein großartiger Python-Programmierer ist.
Er hat einen Youtube-Namen mit dem oben genannten Namen und das Video, das mir sehr geholfen hat, hat diesen Link
Der größte Teil des Codes wurde von senddex kopiert. Obwohl ich viel Hilfe von sentdex erhielt, hatte ich immer noch viele Probleme. Ich wollte nur meine Erfahrungen teilen.
Ich hoffe, diese intrustable hat Ihnen geholfen !!! Bleib dran für mehr.
BR
Tahir Ul Haq