Erstellen Sie Ihren eigenen Bilddatensatz mit Opencv in Machine Learning

Teilen auf Facebook
Teilen auf twittern
Teilen auf verlinktin
Teilen auf Telegramm
Teilen auf WhatsApp

Inhalt

Einführung

Maschinelles Lernen und Bilder haben eine großartige Beziehung, Die Bildklassifizierung war im Laufe der Jahre eine der Hauptrollen des maschinellen Lernens. Es war während der COVID-19-Pandemie sehr nützlich, Menschen zu erkennen, die sich nicht an die Regeln wie das Tragen von Masken und das Halten von Abstand halten.

Voraussetzungen

Jedes Programm hat einige Voraussetzungen für die Lösung umweltbezogener Probleme.. Wir bauen einen Datensatz für ein Machine-Learning-Projekt, die Mindestvoraussetzung dafür ist ein Computer mit installiertem Python3 und einem OpenCV-Modul darauf.

Ich verwende Jupyter Notebook auf meinem System. Wenn Sie auch die gleichen Einstellungen verwenden möchten, Sie müssen Anaconda auf Ihrem Computer installieren und dann OpenCV installieren.

OpenCV installieren

So installieren Sie OpenCV, Öffnen Sie die Eingabeaufforderung, wenn Sie Anaconda nicht verwenden. Andererseits, Öffnen Sie die Anaconda-Eingabeaufforderung über die Windows-Suche und geben Sie den unten angegebenen Befehl ein.

pip install opencv-python=3.4.2.17

Jetzt können Sie Ihr Dataset codieren und vorbereiten.

Erforderliche Schritte

Hier werden wir alle Schritte abdecken, die zur Erstellung dieses Programms erforderlich sind.

Paso 1: Module importieren

Zuerst, wir müssen alle benötigten Module in die Programmkonsole importieren. Wir brauchen nur zwei Module, einer ist der “OpenCV” und das andere ist das Modul “Sie”. Opencv wird verwendet, um das Bild mit der Kamera des Laptops aufzunehmen und zu rendern, und das Betriebssystemmodul wird verwendet, um ein Verzeichnis zu erstellen.

76310Screenshot2072-6768107
CV2 als CV importieren
Importieren von OS

Paso 2: ein Kameraobjekt erstellen

Wie wir unseren eigenen Bilddatensatz erstellen müssen, Wir brauchen die Kamera, und OpenCV hilft uns, Kameraobjekte zu erstellen, die später für verschiedene Aktionen verwendet werden können.

30354Screenshot2076-7626402
#Streit 0 ist gegeben, um die Standardkamera des Laptops zu verwenden
Kamera = cv.VideoCapture(0)
#Überprüfen Sie nun, ob das Kameraobjekt erfolgreich erstellt wurde
wenn nicht camera.isOpened():
    drucken("Die Kamera ist nicht geöffnet....Beenden")
    Ausfahrt()

Paso 3: Tag-Ordner erstellen

Jetzt, Wir müssen zur Unterscheidung Ordner für jedes Tag erstellen. Verwenden Sie den unten angegebenen Code, um diese Ordner zu erstellen, Sie können so viele Tags hinzufügen, wie Sie möchten. Wir haben unsere Labels nach dem Spiel benannt: Stein, Papier, Schere. Wir bereiten einen Datensatz vor, der das Bild klassifizieren könnte, wenn es ein Stein ist, ein Papier, eine Schere oder nur ein Boden.

13797Screenshot2086-8710402
#Erstellen einer Liste von Labels "Sie können so viele hinzufügen, wie Sie möchten"
Etiketten = ["Hintergrund","Stein","Papier","Schere"]
#Erstellen Sie nun Ordner für jedes Etikett, um Bilder zu speichern
für Etikett in Etiketten:
    wenn nicht os.path.exists(Etikett):
        os.mkdir(Etikett)

Paso 4: letzter Schritt zum Aufnehmen von Bildern

Dies ist der letzte und wichtigste Schritt des Programms.. Online-Kommentare wurden geschrieben, um das Verständnis zu erleichtern. Hier müssen wir Bilder aufnehmen und diese Bilder gemäß dem Tag-Ordner speichern. Code gründlich lesen, Wir haben hier jede Kleinigkeit erwähnt.

für Ordner in Labels:
    #Verwenden der count-Variablen, um die Bilder im Datensatz zu benennen.
    zählen = 0
    #Eingaben nehmen, um die Aufnahme zu starten
    drucken("Drücken Sie 's', um die Datenerfassung für zu starten"+Mappe)
    Benutzereingabe = Eingabe()
    wenn Benutzereingabe != 's':
        drucken("Falsche Eingabe..........")
        Ausfahrt()
    #klick 200 Bilder pro Etikett, du könntest dich ändern wie du willst.    
    während zählen<200:
        #read gibt zwei Werte zurück, einer ist der Exit-Code und der andere der Frame
        Status, frame = camera.read()
        #Überprüfen Sie, ob wir den Rahmen bekommen oder nicht
        wenn nicht Status:
            drucken("Frame wurde nicht erfasst..Beenden...")
            brechen
        #konvertieren Sie das Bild in ein graues Format für eine schnelle Berechnung
        grau = cv.cvtColor(Rahmen, cv.COLOR_BGR2GRAY)
        #Anzeigefenster mit grauem Bild
        cv.imshow("Videofenster",grau)
        #Ändern Sie die Größe des Bildes, um es zu speichern
        grau = cv.resize(grau, (28,28))
        #Speichern Sie das Bild in einem bestimmten Etikettenordner
        cv.imwrite('C:/Benutzer/HP/Dokumente/AnacondaML/'+Ordner+'/img'+str(zählen)+'.png',grau)
        zählen=zählen+1
        #um das Anzeigefenster zu verlassen, drücken Sie 'q'
        wenn cv.waitKey(1) == ord('Q'):
            brechen
# Wenn alles fertig ist, lass die aufnahme los
Kamera.Freigabe()
cv.destroyAllWindows()

Praktische Anwendung

Jetzt, Führen Sie das Programm aus, um den Datensatz zu erstellen. Wir liefern zuerst den Hintergrund, dann der stein, das Papier und die Schere. Vor der Implementierung, Sie sollten sich immer darüber im Klaren sein, was Sie codiert haben und wie die Ausgabe Ihnen bei der Lösung der Anwendungsfallanforderung hilft. Lass es uns tun ...

Führen Sie das Programm auf einmal aus

Wir verwenden Jupyter Notebook, um dieses Programm auszuführen, Sie können jeden Python-Interpreter verwenden. Zuerst, gehe zum Zellenmenü und klicke auf “Alle ausführen”, Dadurch werden alle verfügbaren Zellen in einem Treffer ausgeführt.

41732Screenshot2077-7509171

Jetzt, eine Eingabenachricht wird generiert, drück' s’ und drücken Sie die Eingabetaste, um Bilder für den Hintergrund zu speichern.

16976Screenshot2078-2496871

Nach dem Drücken von 's', wird einfangen 200 Hintergrundbilder. Das Anzeigefenster erscheint und die Bilder werden aufgenommen., Also geh aus dem Rahmen und lass die Kamera den Hintergrund einfangen.

45916Screenshot2080-8047816

Jetzt, werde fragen’ und wird Bilder von aufnehmen “Stein”. Dann, Mach eine Faust und zeige sie der Kamera in verschiedenen Positionen.

Notiz: winken Sie einfach mit der Faust mit der Hand, Fixieren Sie Ihre Hand nicht in einer Position, um einen gut beschrifteten Datensatz zu erstellen.

38616Screenshot2081-1074408

Jetzt, Wiederholen Sie den gleichen Vorgang für die Papier- und Scherenbilder. Vergessen Sie nicht, 's zu drücken’ wenn Sie dazu aufgefordert werden, andererseits, das Sichtfenster scheint festzustecken, aber es ist nicht.

26340Screenshot2082-2724197
34776Screenshot2083-9098614

Das Programm wird automatisch geschlossen. Jetzt können Sie durch Durchsuchen überprüfen, ob der Datensatz erstellt wurde oder nicht.

Notiz: Der Bilddatensatz wird im selben Verzeichnis erstellt, in dem das Python-Programm gespeichert ist. Vier Verzeichnisse werden entsprechend dem ihnen zugewiesenen Label erstellt.

58640Screenshot2084-9478225

Jawohl, Ordner wurden erfolgreich erstellt, Überprüfen Sie nun, ob die Bilder aufgenommen und gespeichert wurden. Die Bildgröße entspricht nicht der, die Sie während des Aufnahmevorgangs angezeigt haben. Wir haben das Bild so verkleinert, dass, bei Verwendung in einem Machine-Learning-Projekt zum Trainieren des Modells, benötigen weniger Ressourcen und Zeit.

83028Screenshot2085-8597068

Viva! Wir haben einen eigenen Bilddatensatz erstellt, der, was ist mehr, kann in Machine-Learning-Projekten zur Klassifizierung verwendet werden.

Abonniere unseren Newsletter

Wir senden Ihnen keine SPAM-Mail. Wir hassen es genauso wie du.