Wie wir persönliche Schutzausrüstung erkennen

Wahrscheinlich haben Sie sich Ihr ganzes Leben lang gefragt, wie Sie ein neuronales Netzwerk trainieren können, um Menschen in Helmen und orangefarbenen Westen zu erkennen! Nein? Aber wir werden es dir trotzdem sagen.

Unser Name ist Tatyana Voronova und Elvira Dyaminova. Wir beschäftigen uns mit Datenanalysen im Unternehmen Center 2M und arbeiten viel mit den realsten Fabriken und Unternehmen zusammen. Aufgrund von Sicherheitsverletzungen erleiden sie Verluste in Höhe von mehreren Millionen Dollar, Mitarbeiter werden verletzt, daher wäre es schön, solche Verstöße systematisch und so früh wie möglich erkennen zu können. Das Beste von allem - automatisch. Wir haben also Probleme mit der Erkennung persönlicher Schutzausrüstung (PSA) auf Video und der Identifizierung von Personen oder Ausrüstungen in der Gefahrenzone.

Bild

Zum größten Teil erhalten wir Aufträge zur Bestimmung von Helmen (genauer gesagt deren Abwesenheit) und Arbeitskleidung. Wir haben bereits Erfahrungen mit der Ausführung solcher Aufgaben gesammelt und können nun die aufgetretenen Probleme und deren Lösung beschreiben.

Da wir im Rahmen der Zusammenarbeit nicht das Recht haben, Filmmaterial von den Objekten des Kunden zu veröffentlichen, werden wir den Artikel mit Bildern aus dem Internet illustrieren, auf denen Menschen in Helmen oft lächeln und gut aussehen. Leider finden Sie im öffentlichen Bereich nicht für alle Merkmale der Aufgaben, denen wir in der Realität gegenüberstehen, gute Beispiele. Insbesondere im Leben lächeln Menschen in Helmen seltener, und das Problem der Glatzköpfigen (wir werden etwas später darüber sprechen) im Internet wurde nicht wirklich aufgedeckt!

Bild aus dem Internet (Größe 1920x1280):

Bild

Die Erkennung von PSA kann auf eines von zwei klassischen Problemen des Computer-Sehens reduziert werden: Klassifizierung von Bildern und Erkennung von Objekten. In der Praxis stellte sich heraus, dass es besser war, keinen dieser Ansätze zu verwenden, sondern den für den jeweiligen Fall am besten geeigneten auszuwählen und flexibel zu kombinieren. Zum Beispiel können wir zuerst bestimmen, wo sich Personen auf dem Bild befinden, dann die durch die Silhouette geschnittenen Bilder in Klassen „in Arbeitskleidung“ und „ohne“ klassifizieren und das Vorhandensein eines Helms beim zweiten Durchgang erkennen.

Bei vorgeschnittenen Personenfiguren sieht die Klassifizierung des Vorhandenseins von Helmen und Overalls folgendermaßen aus (Ansicht des Originalbildes):

Das Ergebnis der Arbeit der Modelle zur Klassifizierung von Overalls und Helmen

Bild

Auf den gleichen zuvor ausgewählten menschlichen Figuren erfolgt diesmal die Anwendung des Ansatzes mit Erkennung für Helme.

Das Ergebnis des Modells zur Klassifizierung von Arbeitskleidung und eines Modells zur Erkennung von Helmen:

Bild

Stufe eins: menschliche Entdeckung


Die Qualität der Definition kleiner Objekte (Helme / Brillen / Handschuhe) auf großen Rahmen ist mittelmäßig. Für einen Computer wie eine Person ist es viel einfacher, zuerst zu verstehen, wo sich Menschen befinden, und erst dann herauszufinden, was sie tragen. Alles beginnt also mit der Identifizierung der Personen im Rahmen.

Als Ergebnis der Experimente haben wir herausgefunden, dass das schnellere neuronale R-CNN-Netzwerk mit Inception v2 als Merkmalsextraktion gut zur Erkennung von Personen geeignet ist. TensorFlow verfügt bereits über vorab trainierte neuronale Netze zur Erkennung von Objekten.

Für uns ist Faster R-CNN Inception v2 (trainiert im COCO-Datensatz) die grundlegende Methode, die wir zuerst versuchen, um solche Probleme zu lösen.

Zunächst erkennen wir Personen auf dem Rahmen (und dann auf den gefundenen Personen, die wir PSA finden):

Bild

Beachten Sie, dass wir den Begrenzungsrahmen „mit einer Person“ entlang der y-Achse vergrößert haben :

Bild

Auf diesem Foto wurde der Arbeiter in gutem Licht und vor einem kontrastierenden Hintergrund aufgenommen (bei Bildern im Internet passiert dies ständig). Daher war der Begrenzungsrahmen mit der Person gut gebaut. In unserer Praxis gibt es jedoch häufig Fälle (insbesondere bei unzureichender Sicht), in denen das Erkennungsmodell einen Helm bei einer Person abschneidet. Danach ist es sinnlos, auf einem beschnittenen Bild danach zu suchen. In dieser Hinsicht erhöhen wir entlang der y-Achse den vorhergesagten Begrenzungsrahmen um 15%, bevor wir zur zweiten Stufe übergehen.

Beim Erkennen von Personen stoßen wir auf kleine unangenehme Probleme. Erstens, wenn zwei Personen hintereinander gehen oder stehen, werden sie häufig als eine Person erkannt. Zweitens tritt ein statisches Objekt in das Sichtfeld der Kamera ein, in dem das Modell eine Person wie einen Hydranten erkennen kann. Diese Probleme können auf verschiedene Arten gelöst werden. Zum Beispiel, wie wir es gemacht haben: Versöhnen und akzeptieren Sie sie, da das Modell im Allgemeinen in Bezug auf Produktivität und Qualität für uns geeignet ist.

Ein grundlegenderes Problem ist, dass Industrieräume, in denen es eine „Gefahrenzone“ gibt, oft riesig sind und dementsprechend die Personen in den Rahmen sehr klein sind. Unsere auf Faster R-CNN Inception v2 basierende Basismethode zeigte in solchen Fällen schlechte Ergebnisse, und am Ende haben wir es versuchtSchneller R-CNN Nas . Die Ergebnisse waren beeindruckend, die Leute waren auch in der Ferne gut bekannt, aber die Geschwindigkeit war viel niedriger als beim Basismodell. Mit ausreichenden Ressourcen und der Notwendigkeit einer hohen Genauigkeit können Sie Faster R-CNN Nas verwenden .

Zweite Stufe: Ermittlung böswilliger Verstöße


Je nach Aufgabe werden häufig folgende verwendet:

  • Bildklassifizierungsmodell - Inception v3
  • Objekterkennungsmodell - Schnellerer R-CNN-Beginn v2

Klassifizierung von Arbeitskleidung und Helmen


Wir haben verschiedene neuronale Netzwerkarchitekturen getestet, um Bilder zu klassifizieren, und uns schließlich für Inception v3 entschieden, um die Tatsache zu nutzen, dass es für die Arbeit mit variablen Bildgrößen ausgelegt ist. Wir hatten bereits viele ausgeschnittene Bilder mit Menschen, und es war nicht schwierig, die Medianwerte für Höhe und Breite zu berechnen. So kamen wir zu dem Schluss, dass für das Training von Klassifikatoren begonnen wurde, Bilder auf eine Größe von 150x400 zu bringen.

Um das Netzwerk für die Erkennung von PSA zu schulen, muss zunächst ein Datensatz aus beschrifteten Beispielen gesammelt werden. In diesem Prozess gibt es Feinheiten, deren Verwirklichung mit Erfahrung einhergeht. Zum Beispiel ist es besser, Personen, die über den Hüften geschnitten sind, aus dem Datensatz zu entfernen. Dadurch wird der Datensatz den tatsächlichen Bedingungen näher gebracht, da die meisten Personen auf Video von Überwachungskameras in voller Höhe gesehen werden. Natürlich kommt es auch zu Überlappungsfällen, aber vollständige Silhouetten für die Zielprobe sind viel charakteristischer.

Beispiele aus unserem Workwear-Datensatz:

Bild

Wir haben nichts Spezifisches als Metrik erfunden, wir verwenden Rückruf und Präzision.

Modell zur Klassifizierung des Vorhandenseins / Nichtvorhandenseins von Arbeitskleidung:

Ergebnisse einer Validierungsstichprobe

Bild

PSA-Erkennung


Das Klassifizierungsmodell arbeitet schneller als das Modell zum Erkennen von Objekten. Aufgrund der Tatsache, dass Schutzbrillen und Handschuhe im Bild klein sind, ist es schwierig, einen guten Klassifizierer für eine solche PSA zu erstellen. Daher haben wir das schnellere neuronale R-CNN-Netzwerk auf einem Datensatz mit sechs Klassen trainiert:

  • Gläser / not_glasses
  • Handschuhe / not_gloves
  • Helm / nicht_Helm

Bild

Datenerfassung und Markup


Die Hauptprobleme betrafen den Helmdatensatz. Es war ein faszinierender Weg: Wir gingen durch Glatzköpfige, Menschen mit Helmen in den Händen und sogar durch Glatzköpfige mit Helmen in den Händen.

Da wir zu Beginn der Reise nicht viele Bilder unter realen Bedingungen hatten, haben wir den Datensatz so gut wie möglich gesammelt: uns selbst gefilmt, Bilder aus dem Internet oder von Baustellen aufgenommen. Wenig später erhielten wir viele Videos von verschiedenen Unternehmen, sodass wir den Datensatz nur mit Frames realer Bedingungen anreicherten. Irgendwann überschritt die Anzahl der mit Tags versehenen Bilder 5 KB, und die Qualität durch Hinzufügen neuer Beispiele verbesserte sich nicht mehr. In dieser Hinsicht haben wir den Ansatz für das Markup überarbeitet.

Wir werden die Phasen der Verbesserung des Helmdatensatzes am Beispiel von Bildern aus dem Internet beschreiben, sodass Winkel und Qualität nicht ganz mit denen übereinstimmen, die wir hatten.

Zusätzlich zu dem obigen Bild, das über den Hüften zugeschnitten ist, haben wir Bilder entfernt, in denen die Helme mehr als zur Hälfte zugeschnitten sind, um Verwechslungen mit Kappen zu vermeiden.

Bild

Wir haben uns auch der Tatsache gestellt, dass wenn eine Person einen Helm in der Hand hat, das Modell oft keine Verstöße sah: Gibt es einen Helm? Es gibt. Daher haben wir alle Rahmen aus dem Trainingsdatensatz entfernt, in denen eine Person einen Helm mit der Hand hält, auch wenn sich der Helm gerade auf dem Kopf befindet.

Im Allgemeinen haben wir versucht, Bilder mit beleuchtetem Hintergrund oder in dunklen Räumen zu entfernen, und dann haben wir die Anzahl der von uns aufgenommenen Fotos minimiert, wobei hauptsächlich Filmmaterial aus der Produktion übrig blieb. Infolgedessen haben wir den Datensatz um die Hälfte reduziert.

Zusätzlich haben wir den Datensatz mit Glatzköpfigen angereichert, ansonsten sind sie immer in Helmen, auch wenn dies nicht der Fall ist, und mit Blondinen mit Quadraten, für die der Detektor mit einem bestimmten Winkel auch den Helm bestimmt.

Nachdem wir ungeeignete Bilder entfernt hatten, gingen wir direkt zum Markup (zum Erkennen von Objekten). Es stellte sich heraus, dass es nicht so einfach war. Es stellt sich heraus, dass die Qualität des Enddetektors weitgehend davon abhängt, was genau der Bereich im Bild als "Helm" oder "Handschuhe" markiert ist. Zunächst verteilten wir Helme und Schutzbrillen, ohne die Gesichter zu greifen, und Handschuhe mit den Händen. Mit der Erfahrung haben wir unseren Ansatz jedoch schrittweise verbessert, indem wir uns Fehler der ersten und zweiten Art angesehen haben, bei denen Menschen Helme in den Händen halten und etwas Rundes an etwas Langem sich als „Handschuh“ herausstellt. Beim Markieren von Helmen und Brillen versuchen wir nun, das Gesicht bis zur Nasenspitze zu greifen, und beim Markieren von Handschuhen beschränken wir uns im Gegenteil auf einen Pinsel.

Bild

Als Ergebnis unserer Manipulationen am Datensatz haben wir die folgenden Ergebnisse erhalten.

Modell zum Erkennen des Vorhandenseins / Nichtvorhandenseins von PSA am Beispiel von Helmen:
Ergebnisse einer Validierungsprobe vor Beginn der „globalen Arbeit“ am Datensatz

Bild


Endergebnisse der Validierungsprobe

Bild

Die Vollständigkeit der Erkennung von Helmen ließ leicht nach, gleichzeitig verbesserten sich die Metriken zur Erkennung von Verstößen, und dies wollten wir erreichen.

Modell zur Klassifizierung des Vorhandenseins / Nichtvorhandenseins von Helmen:
Ergebnisse einer Validierungsstichprobe vor Beginn der „globalen Arbeit“ am Datensatz

Bild

Endergebnisse der Validierungsprobe

Bild

Es sollte beachtet werden, dass wir keine Unterteilung in Schutzbrillen und Brillen für das Sehen haben, sie fallen unter das gleiche Etikett „Brille“ und Handschuhe mit hellen Farbtönen können als bloßer Pinsel wahrgenommen werden. Wir haben versucht, den Farbumfang von Helmen und Arbeitskleidung in unseren Datensätzen zu maximieren. Aus Gründen der Zuverlässigkeit haben wir dies jedoch mit der einfachsten und zuverlässigsten Technik ergänzt: Um Handschuhe zu erkennen, teilen wir unseren Kunden bei Bedarf mit, dass helle Farben zur Erhöhung der Genauigkeit beitragen.

Im Moment haben wir universelle Modelle, die wir für die erste Show für den Kunden verwenden. Es versteht sich jedoch, dass es unmöglich ist, ein universelles Modell für alle zu erstellen. Es ist notwendig, sich an jeden Kunden anzupassen, neue Nuancen zu identifizieren und zu berücksichtigen, Datensätze anzureichern oder neu zu erstellen, um bestimmte Anforderungen zu erfüllen.

Bild

Bonus


In der Regel möchten Kunden so viele Kameras wie möglich mit möglichst wenigen Ressourcen verarbeiten. Butch ist natürlich eine gute Sache, aber zusätzliche Tricks zur Optimierung des Prozesses sind nicht verboten.

Zum Beispiel hatten meine Kollegen und ich vom Moskauer IBM-Kundencenter die Hypothese, dass das Zusammenfügen mehrerer Personen zur weiteren Erkennung von Helmen die Anzahl der Kameras pro Server mit einem prinzipienlosen Genauigkeitsverlust erhöhen würde.

Als Grundlage haben wir beschlossen, die Größe von 1000 x 600 für die Leinwand zu verwenden, auf die Personen "angewendet" werden. Zunächst wurden zwei Layoutoptionen in Betracht gezogen:

  • Feste Breite und Höhe (200x600), bei diesem Ansatz befinden sich 5 Personen auf dem Rahmen.
  • Feste Breite und Höhe (125x600), 8 Personen.

Diese Entscheidung beruhte auf der Tatsache, dass wir mit festen Daten genau die Anzahl der Personen auf dem Foto kennen, was uns eine Prognose der Belastung gibt. Während der Entwicklung haben wir jedoch eine solche Option in Betracht gezogen:
  • Feste Höhe und proportionale Breite (*** x600), unterschiedliche Anzahl von Personen.

Es wurde angenommen, dass mit zunehmender Größe und Beibehaltung der Proportionen die Ergebnisse im Vergleich zu anderen Layoutoptionen besser sind. Die Anzahl der Personen lag zwischen 3 und 5 (+/–).

Als Ergebnis haben wir festgestellt, dass die Option mit einer festen Breite und Höhe (200 x 600) die beste unter den in Betracht gezogenen ist. Natürlich ist diese Methode nicht zum Erkennen von Brillen und Handschuhen geeignet, da die Objekte klein sind, aber zum Erkennen von Helmen / fehlenden Helmen zeigte diese Methode gute Ergebnisse.

Zum Beispiel in einem Validierungsbeispiel:

Bild

Bild

: (tvoronova), (elviraa)

All Articles