Inhaltsverzeichnis:

OpenCV-Bildklassifikatoren mit Python erstellen - Gunook
OpenCV-Bildklassifikatoren mit Python erstellen - Gunook

Video: OpenCV-Bildklassifikatoren mit Python erstellen - Gunook

Video: OpenCV-Bildklassifikatoren mit Python erstellen - Gunook
Video: Gesichtserkennung mit Python und OpenCV in 14 Zeilen 2024, Juli
Anonim
Erstellen Sie OpenCV-Bildklassifikatoren mit Python
Erstellen Sie OpenCV-Bildklassifikatoren mit Python

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

Erstellen von positiven Proben in OpenCV
Erstellen von positiven Proben in OpenCV
Erstellen von positiven Proben in OpenCV
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 einer positiven Vektordatei
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

Klassifikator trainieren
Klassifikator trainieren
Klassifikator trainieren
Klassifikator trainieren
Klassifikator trainieren
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

Empfohlen: