Veröffentlicht am 14-03-2019

Maschinelles Lernen verbessern

Für unser Projekt wollten wir wissen können, ob eine Person steht oder sitzt. Während dies für einen Menschen eine leichte Aufgabe ist, ist es ziemlich schwierig, dies durch Computer Vision zu tun. Um dies zu bewältigen, werden wir ein neuronales Netzwerk schaffen, um dies zu erreichen.

Daten sammeln

Die erste Aufgabe bestand darin, Daten zu sammeln. Wir haben über 1200 Bilder gesammelt und sie beschriftet: stehend oder sitzend.

Beispiel für ein sitzendes BildBeispiel stehendes Bild

Datenvorverarbeitung

Die Sammlung von 1200 Bildern dauerte lange. Die meisten neuronalen Faltungsnetzwerke verwenden jedoch 10'000 bis 100'000 Bilder und haben immer noch Genauigkeitsprobleme. Stattdessen haben wir uns entschlossen, ein bereits bestehendes Netzwerk zu nutzen. Wir haben TF-OpenPose verwendet, um die gemeinsamen Standorte der Person zu ermitteln.

Beispielausgabe von TF-OpenPose

Durch Ausführen von TF-OpenPose auf den Trainingsbildern konnten wir die Bilder auf einen Datensatz reduzieren, der 18 gemeinsame Positionskoordinaten (x, y) und eine Punktzahl enthält, die die Genauigkeit des Ortes angibt. Diese Daten sind viel repräsentativer für unser Endziel und sollten ein viel einfacheres Netzwerk erfordern.

Entwicklung des neuronalen Netzwerks

Als erstes haben wir das Netzwerk definiert. Wir haben ein einfaches, vollständig vernetztes neuronales Netzwerk geschaffen. Es hatte 54 Eingangsgrößen, 3 verborgene Ebenen mit 25, 10 und 5 und 2 Ausgängen. Die verborgenen Ebenen verwenden die Relu-Aktivierung und die letzte Ebene verwendet Softmax. Dies ist jedoch wahrscheinlich ein zu großes Netzwerk für unsere Zwecke, da wir viele Schritte unternehmen werden, um Überanpassung zu verhindern, und der Datensatz nicht groß genug ist, um Bedenken hinsichtlich der Trainingszeit zu haben. Dies hilft, eine Unteranpassung zu verhindern.

Erste Testergebnisse

Das erste Training am Basismodell verlief gut, es wurde für 200 Epochen trainiert und hatte folgende Ergebnisse.

Trainingsgenauigkeit: 79% Testgenauigkeit: 73%

Diese Ergebnisse sind ein guter Anfang, aber das System fängt bereits an, zu gut zu passen und die Genauigkeit ist für unsere Zwecke nicht hoch genug.

Verbesserung des neuronalen Netzwerks

Die erste 12-Regularisierung wurde mit Parameter 0.01 verwendet. Als nächstes wurde Early Stopping implementiert. Dies wurde durch Überprüfen des Validierungsverlusts durchgeführt. Wenn der Validierungsverlust nicht innerhalb von 100 Epochen zunahm, würde das Modell aufhören. Das bedeutet, dass das System bis zu 100 Epochen überladen sein könnte. So wird das beste Modell nach jeder Epoche gespeichert: Model Saving.

Verbesserung der Netzwerktestergebnisse

Durch das frühe Anhalten und die Regularisierung von L2 konnte das Netzwerk viel länger trainieren. Dadurch wurde die Genauigkeit des Netzwerks erheblich verbessert.

Trainingsgenauigkeit: 93% Validierungsgenauigkeit: 91% Testgenauigkeit: 89%

Die Ergebnisse sind erheblich verbessert und für unsere Zwecke verwendbar, aber es gibt noch einen weiteren Schritt. Im Moment wiegen wir gleich sitzen und stehen. Dies kann man sehen, wenn wir die Besonderheiten des Systemausfalls betrachten.

Wie zu sehen ist, sind Falschvorhersagen und Falschsitzvorhersagen ungefähr gleich. Dies gilt jedoch nicht für unser System. Ein falsches Sitzen bedeutet, dass das System nichts tut. Ein falscher Stand bedeutet, dass sich das System bewegt, das ist schlimmer.

Letztes neuronales Netzwerk

Wir haben die Optimierungsfunktion so gewichtet, dass falsche Ergebnisse doppelt so stark bestraft werden wie falsches Sitzen.

Dies führte zu folgenden Ergebnissen:

Trainingsgenauigkeit: 93% Validierungsgenauigkeit: 92% Testgenauigkeit: 88%

Die Ergebnisse sind sehr ähnlich, die Fehler sind jedoch besser. Diese Ergebnisse reichen für unser Projekt aus.

Standing Detection, vollständig implementiert

Siehe auch

Verwalten Ihrer Firewall unter Centos 7 mit FirewalldMessaging-Ecke für Unternehmen - Süd durch SüdwestenGoogle nimmt einen neuen Look für sein Hardware-Geschäft aufDer weltweite Markt für Flüssigfiltrationsmedien wird voraussichtlich von USD 2.135,65 wachsenVerwendung der IAM-PlattformKfz-Türgriffsensoren Branchengröße, Anteil, Status, globales Wachstum, Anwendungen…