
Hallo, mein Name ist Roman Lapin, ich bin ein Student im zweiten Jahr an der Fakultät der Hochschule für Allgemeine und Angewandte Physik der UNN. Dieses Jahr habe ich es geschafft, durch die Auswahl zu kommen und an der Arbeit der Intel Summer School in Nischni Nowgorod teilzunehmen. Meine Aufgabe war es, die Farbe des Autos mithilfe der Tensorflow-Bibliothek zu bestimmen, an der ich mit meinem Mentor und Ingenieur des ICV-Teams Alexei Sidnev zusammengearbeitet habe.
Und das habe ich bekommen.
Diese Aufgabe hat mehrere Aspekte:
- Das Auto kann wie beim KDPV in mehreren Farben lackiert werden. Und in einem der Datensätze hatten wir zum Beispiel ein getarntes Auto.
- Abhängig von der Beleuchtung und der Kamera, die Bilder von den Ereignissen auf der Straße macht, sehen Autos derselben Farbe sehr unterschiedlich aus. Die "beleuchteten" Autos können einen sehr kleinen Teil haben, der der "wahren" Farbe des Autos entspricht.
Autofarberkennung
Die Farbe des Autos ist eine ziemlich seltsame Substanz. Der Hersteller hat ein klares Verständnis dafür, welche Farbe das Auto hat, das er produziert, zum Beispiel: Phantom, Eis, schwarze Perle, Pluto, Limette, Krypton, Angkor, Karneol, Platin, Blau. Die Verkehrspolizei hat eine Meinung zu den Farben von Autos eher konservativ und sehr begrenzt. Jede einzelne Person hat eine subjektive Wahrnehmung von Farbe (Sie können sich an die beliebte Geschichte über die Farbe des Kleides erinnern). Daher haben wir uns entschlossen, wie folgt zu markieren.
Auf jedem Bild wurden die Koordinaten der Eckpunkte der angrenzenden Rechtecke um die Autos herum markiert (im Folgenden werde ich die englische Version verwenden -
Auto-Begrenzungsrahmen ) und in ihnen befinden sich die Bereiche, die die Farbe der Fahrzeuge am besten beschreiben (
Farbkasten ). Die Anzahl der letzteren entspricht der Farbe des Autos (
n x
Farbfeld - n-farbiges Auto).
Im Folgenden werden die Autonummern für die Möglichkeit der Veröffentlichung von Fotos im öffentlichen Bereich verwischt.
Kennzeichnung des FahrzeugdatensatzesIn Zukunft haben wir mit zwei Farbräumen - RGB und LAB - mit den Klassen 8 bzw. 810/81 gearbeitet. Um die Ergebnisse verschiedener Ansätze zu vergleichen, haben wir 8 Klassen in RGB verwendet, um die Farbe zu bestimmen, die durch Teilen des BGR-Würfels in 8 gleiche kleine Würfel erhalten werden. Sie können leicht als gebräuchliche Namen bezeichnet werden: weiß, schwarz, rot, grün, blau, pink, gelb, cyan. Um den Fehler einer Methode zu bewerten, haben wir bereits den LAB-Farbraum verwendet, in dem der
Abstand zwischen den Farben bestimmt wird.
Es gibt zwei intuitive Möglichkeiten, die Farbe anhand des
Farbfelds zu bestimmen: mittlere oder mittlere Farbe. Da sich im
Farbfeld jedoch Pixel in verschiedenen Farben befinden, wollte ich wissen, wie genau jeder dieser beiden Ansätze funktioniert.
Für 8 RGB-Farben für jedes
Farbfeld jeder Maschine im Datensatz haben wir die durchschnittliche Pixelfarbe und den Median ermittelt. Die Ergebnisse sind in den folgenden Abbildungen dargestellt. Die „wahren“ Farben sind in den Linien markiert, dh die Farben, die in den Spalten als Durchschnitt bzw. als Median definiert sind - Farben, die im Prinzip gefunden werden. Beim Hinzufügen einer Maschine zur Tabelle wurde die Anzahl der Pixel jeder Farbe auf ihre Anzahl normalisiert, d. H. Die Summe aller der Zeile hinzugefügten Werte war gleich eins.
Untersuchung der Genauigkeit der Bestimmung der Farbe einer Maschine als durchschnittliche Farbe der Pixelfarbe 'abox. Durchschnittliche Genauigkeit: 75%Untersuchung der Genauigkeit der Bestimmung der Farbe einer Maschine als Medianfarbe von Pixeln in einem Farbfeld. Durchschnittliche Genauigkeit: 76%Wie Sie sehen können, gibt es keinen besonderen Unterschied zwischen den Methoden, was auf ein gutes Markup hinweist. In Zukunft haben wir den Median verwendet, weil er das beste Ergebnis zeigte.
Die Farbe des Fahrzeugs wird anhand des Bereichs innerhalb des
Begrenzungsrahmens des
Fahrzeugs bestimmt .
Benötigen Sie Netzwerke?
Die Frage ist unvermeidlich: Werden neuronale Netze wirklich benötigt, um eine intuitiv einfache Aufgabe zu lösen? Vielleicht können Sie die mittlere oder mittlere Farbe von Pixeln in einem
Auto-Begrenzungsrahmen auf die gleiche Weise nehmen? Die folgenden Abbildungen zeigen das Ergebnis dieses Ansatzes. Wie später gezeigt wird, ist es schlechter als das Verfahren unter Verwendung neuronaler Netze.
Die Verteilung des Anteils von Fahrzeugen mit dem L2-Fehlerwert im LAB-Bereich zwischen der als Durchschnitt definierten Farbfeldfarbe und der Fahrzeugbegrenzungsfeldfarbe des Wertes dieses FehlersVerteilung des Anteils von Fahrzeugen mit dem L2-Fehlerwert im LAB-Raum zwischen dem als Median definierten Farbfeld und der Farbe des Fahrzeugbegrenzungsrahmens aus dem Wert dieses FehlersBeschreibung der Herangehensweise an die Aufgabe
In unserer Arbeit haben wir die Resnet-10-Architektur verwendet, um Funktionen hervorzuheben. Um ein Label- und Multilabel-Problem zu lösen, wurden die Aktivierungsfunktionen von
Softmax bzw.
Sigmoid ausgewählt.
Ein wichtiges Thema war die Wahl der Metrik, anhand derer wir unsere Ergebnisse vergleichen konnten. Bei Aufgaben mit einem Label können Sie die Klasse auswählen, die der
maximalen Antwort entspricht . Eine solche Lösung funktioniert jedoch offensichtlich nicht bei Maschinen mit mehreren Etiketten / Farben, da argmax eine wahrscheinlichste Farbe erzeugt. Die Metrik
L1 hängt von der Anzahl der Klassen ab und kann daher auch nicht zum Vergleich aller Ergebnisse verwendet werden. Daher wurde beschlossen, die Flächenmetrik unter der
ROC-Kurve (ROC AUC - Fläche unter der Kurve) als universell und allgemein anerkannt zu betrachten.
Wir haben in zwei Farbräumen gearbeitet. Das erste ist Standard-
RGB , in dem wir 8 Klassen ausgewählt haben: Wir haben den RGB-Würfel in 8 identische Subwürfel unterteilt: Weiß, Schwarz, Rot, Grün, Blau, Rosa, Gelb, Cyan. Eine solche Aufteilung ist sehr grob, aber einfach.
Teilen Sie den RGB-Farbraum in 8 Bereiche aufDarüber hinaus haben wir Studien mit dem LAB-Farbraum durchgeführt, bei denen die Partition in 810 Klassen unterteilt wurde. Warum so viel? LAB wurde eingeführt, nachdem der amerikanische Wissenschaftler
David MacAdam festgestellt hatte, dass es
Farbbereiche gibt, die für das menschliche Auge nicht sichtbar sind (
MacAdam-Ellipsen ). LAB wurde so gebaut, dass diese Ellipsen darin das Aussehen von Kreisen hatten (im Abschnitt konstanter L - Helligkeit).
MacAdam-Ellipsen und LAB-Farbraum ( Quelle )Insgesamt gibt es 81 Kreise im Abschnitt solcher Kreise. Wir haben Schritt 10 in Bezug auf den Parameter L (von 0 bis 100) ausgeführt und 810 Klassen erhalten. Zusätzlich führten wir ein Experiment mit einer Konstanten L und entsprechend 81 Klassen durch.
RGB und LAB
Die folgenden Ergebnisse wurden für das 8-Klassen-Problem und den RGB-Raum erhalten:
Aktivierungsfunktion | Multilabel-Aufgabe | ROC AUC |
---|
Softmax | - - | 0,97 |
Sigmoid | ✓ | 0,88 |
Farberkennungsergebnistabelle für Maschinen in einem 8-Klassen-ProblemEs scheint, dass das Ergebnis für die Multilabel-Aufgabe bereits recht gut ist. Um diese Annahme zu überprüfen, haben wir eine Fehlermatrix erstellt, die 0,55 als Schwellenwert für die Wahrscheinlichkeit verwendet. Das heißt, Wenn dieser Wert in der Wahrscheinlichkeit für die entsprechende Farbe überschritten wird, gehen wir davon aus, dass die Maschine in dieser Farbe lackiert ist. Trotz der Tatsache, dass der Schwellenwert niedrig genug gewählt wird, können typische Fehler bei der Bestimmung der Farbe des Autos gesehen und Schlussfolgerungen gezogen werden.
Farberkennungsergebnistabelle für Autos im Problem der 8. KlasseSchauen Sie sich einfach die Linien an, die den Farben Grün oder Rosa entsprechen, um sicherzustellen, dass das Modell alles andere als perfekt ist. Auf die Frage, warum mit einem großen metrischen Wert ein so seltsames erfolgloses Ergebnis erzielt wird, werden wir zurückkommen und sofort darauf hinweisen: Wenn nur 8 Klassen betrachtet werden, fällt eine große Anzahl von Farben in die Klassen „Weiß“ und „Schwarz“, daher ein solches Ergebnis .
Deshalb werden wir uns dem LAB-Farbraum zuwenden und dort forschen.
Aktivierungsfunktion | Multilabel-Aufgabe | ROC AUC |
---|
Softmax | - - | 0,915 |
Sigmoid | ✓ | 0,846 |
Maschinelle Farberkennungsergebnistabelle im Problem der 810-KlasseDas Ergebnis ist geringer, was logisch ist, da die Anzahl der Klassen um zwei Größenordnungen gestiegen ist. Ausgehend vom Sigmoid-Ergebnis haben wir versucht, unser Modell zu verbessern.
LAB: Experimente mit unterschiedlichen Gewichten
Zuvor wurden alle Versuche mit Einheitsgewichten in der Verlustfunktion (
Verlust ) durchgeführt:
Hier ist GT Grundwahrheit, W ist Gewicht.
Sie können eine
Entfernung in den LAB-Farbraum eingeben. Nehmen wir an, wir haben eine Einheit in GT. Dann entspricht es einem rechteckigen Parallelepiped im LAB-Farbraum. Dieses Parallelepiped (genauer gesagt sein Zentrum) wird in einem anderen Abstand von allen anderen Parallelepipeds (wiederum deren Zentren) entfernt. Abhängig von dieser Entfernung können Sie mit den folgenden Skalen experimentieren:
a) Null anstelle einer Einheit in GT, und wenn sie sich von ihr entfernt - eine Gewichtszunahme;
b) Umgekehrt ist es anstelle einer Einheit in GT eine Einheit, wenn sie entfernt wird, ist es ein Gewichtsverlust;
c) Option a) plus ein kleines Gaußsches Additiv mit einer Amplitude von ½ anstelle einer Einheit in GT;
d) Option a) plus ein kleines Gaußsches Additiv mit einer Amplitude von 1 anstelle einer Einheit in GT;
e) Option b) mit einem kleinen Additiv bei maximalem Abstand von der Einheit in GT.
Die letzte Version der Skalen, mit denen wir Experimente durchgeführt haben, ist, wie wir es nannten, dreifaches Gauß, nämlich drei Normalverteilungen mit Zentren anstelle von Einheiten im GT sowie in größter Entfernung von ihnen.
Drei Normalverteilungen konzentrierten sich auf die Einheiten im GT und in größter Entfernung von ihnenEs muss genauer erklärt werden. Sie können die beiden am weitesten entfernten Parallelepipeds und damit die Klassen auswählen und sie in der Entfernung vom Original vergleichen. Für die Klasse, die der fernen entspricht, wird die Verteilungsamplitude auf 0,8 gesetzt, und für die zweite Klasse ist sie m-mal kleiner, wobei m das Verhältnis der Entfernung von der Quelle zur fernen Ferne zur Entfernung zwischen der Quelle und der nahen ist.
Die Ergebnisse sind in der Tabelle aufgeführt. Aufgrund der Tatsache, dass es in den Skalen von Option a) keine Gewichte gab - nur für Einheiten in GT war das Ergebnis noch schlechter als der Startpunkt, da das Netzwerk erfolgreiche Farbdefinitionen nicht berücksichtigte und schlechter lernte. Die Varianten der Gewichte b) und e) stimmten praktisch überein, daher stimmte das Ergebnis auf ihnen überein. Der größte Anstieg der Prozentpunkte gegenüber dem ursprünglichen Ergebnis wurde durch die Variante der Gewichte f) - Dreifachgauß gezeigt.
Aktivierungsfunktion | Anzahl der Klassen | Gewichtetyp | ROC AUC |
---|
Sigmoid | 810 | a) | 0,844 |
b), e) | 0,848 |
c) | 0,888 |
d) | 0,879 |
f) | 0,909 |
Farberkennungsergebnisse von Maschinen der Klasse 810 mit unterschiedlichen GewichtsoptionenLAB: Experimentieren mit neuen Labels
Also haben wir Experimente mit unterschiedlichen Gewichtsgewichten durchgeführt. Dann haben wir uns entschlossen, die Gewichte als eins zu belassen und die Beschriftungen zu ändern, die auf die Verlustfunktion übertragen werden und zur Optimierung des Netzwerks verwendet werden. Wenn vorher die Bezeichnungen mit GT übereinstimmten, entschieden sie sich jetzt, wieder Gaußsche Verteilungen mit Zentren an der Stelle von Einheiten in GT zu verwenden:
Die Motivation für diese Entscheidung ist wie folgt. Tatsache ist, dass mit normalen Etiketten alle Autos in Datensätzen in eine feste Anzahl von Klassen fallen, weniger als 810, sodass das Netzwerk lernt, die Farbe von Autos nur dieser Klassen zu bestimmen. Mit neuen Etiketten fallen Werte ungleich Null in alle Klassen, und wir können eine Erhöhung der Genauigkeit bei der Bestimmung der Farbe des Autos erwarten. Wir haben mit zwei Sigma (Standardabweichungen) für die obigen Gaußschen Verteilungen experimentiert: 41,9 und 20,9. Warum so? Das erste Sigma wird wie folgt gewählt: Der Mindestabstand zwischen den Klassen (28) wird genommen und das Sigma wird aus der Bedingung bestimmt, dass die Verteilung in der Klasse neben dem GT'noye zweimal abnimmt. Und das zweite Sigma ist nur zweimal kleiner als das erste.
Verteilung von Autos mit Trainingsdatensätzen nach Klassen mit unterschiedlichen VerlustbezeichnungenIn der Tat war es möglich, das Ergebnis mit einem solchen Trick weiter zu verbessern, wie in der Tabelle gezeigt. Als Ergebnis erreichte die Bestimmungsgenauigkeit 0,955!
Aktivierungsfunktion | Anzahl der Klassen | Etikettentyp | Gewichtetyp | ROC AUC |
---|
Sigmoid | 810 | üblich | diejenigen | 0,846 |
üblich | drei Gauß | 0,909 |
neu, σ 1 | drei Gauß | 0,955 |
neu, σ 2 | 0,946 |
Farberkennungsergebnisse für Maschinen der Klasse 810: mit normalen Etiketten und Einheitsgewichten, mit normalen Etiketten und Gewichten in Form von dreifachem Gauß, mit neuen Etiketten und EinheitsgewichtenLAB: 81
Wenn wir über erfolglose Experimente sprechen, müssen wir den Versuch erwähnen, ein Netzwerk mit 81 Klassen und einem konstanten Parameter L zu trainieren. Bei früheren Experimenten haben wir festgestellt, dass die Helligkeit vom Netzwerk ziemlich genau bestimmt wird, und wir haben beschlossen, nur die Parameter a und b zu trainieren (so) nannte die anderen beiden Koordinaten in LAB). Leider war die Idee, den Parameter L am Ausgang des Netzwerks als Durchschnitt für den
Begrenzungsrahmen des
Autos festzulegen, abgestürzt, und die tatsächliche Farbe und damit die definierte Farbe waren sehr unterschiedlich, obwohl das Netzwerk in der Lage war, perfekt im Flugzeug zu trainieren und einen größeren Wert in Bezug auf die Metrik zu zeigen.
Vergleich mit der Lösung eines Problems ohne Verwendung neuronaler Netze
Kehren wir jetzt zum Anfang zurück und vergleichen wir, was mit uns passiert ist, mit der Erkennung der Farbe des Autos ohne Verwendung neuronaler Netze.
Die Ergebnisse sind in den folgenden Abbildungen dargestellt. Es ist zu sehen, dass der Peak dreimal so hoch geworden ist und die Anzahl der Autos mit einem großen Fehler zwischen der wahren und einer bestimmten Farbe erheblich abgenommen hat.
Die Verteilung des Anteils von Fahrzeugen mit dem L2-Fehlerwert im LAB-Raum zwischen dem als Median definierten Farbfarbbegrenzungsrahmen und der Fahrzeugbegrenzungsrahmenfarbe des Wertes dieses FehlersVerteilung des Anteils von Fahrzeugen mit dem L2-Fehlerwert im LAB-Raum zwischen der Farbe am Ausgang des neuronalen Netzes und der Farbe des Fahrzeugbegrenzungsrahmens des Werts dieses FehlersBeispiele
Das Folgende sind Beispiele für die Erkennung von Fahrzeugfarben. Das erste ist, dass die schwarze Maschine (ein typischer Fall) als schwarz erkannt wird und der Abstand im LAB-Raum zwischen der wahren Farbe und der spezifischen (18.16) geringer ist als der Mindestabstand zwischen den Klassen (28). In der zweiten Abbildung konnte das Netzwerk nicht nur feststellen, dass das Auto beleuchtet war (es besteht eine hohe Wahrscheinlichkeit, dass es einer der Klassen weißer Farben entspricht), sondern auch seine tatsächliche Farbe (Silber). Die ebenfalls beleuchtete Maschine aus der folgenden Abbildung wurde vom Netzwerk jedoch nicht als rot erkannt. Das Netzwerk konnte die Farbe des in der folgenden Abbildung gezeigten Autos nicht bestimmen, was sich aus der Tatsache ergibt, dass die Wahrscheinlichkeiten für alle Farben zu klein sind.
In vielerlei Hinsicht war die Aufgabe auf die Notwendigkeit zurückzuführen, mehrfarbige Autos zu erkennen. Die letzte Abbildung zeigt ein zweifarbiges schwarz-gelbes Auto. Das Netzwerk erkannte am wahrscheinlichsten die schwarze Farbe, was wahrscheinlich auf das Überwiegen von Maschinen dieser und ähnlicher Farben im Trainingsdatensatz zurückzuführen ist, und die gelbe Farbe, die nahezu wahr ist, stieg in die Top 3 ein.
ROC-Kurve: Visualisierung und Probleme
Am Ausgang haben wir also ein ziemlich hohes metrisches Ergebnis erhalten. Die folgende Abbildung zeigt ROC-Kurven zum Lösen eines Problems mit 8 Klassen und für ein Problem mit 810 Klassen sowie Lösungen ohne Verwendung neuronaler Netze. Es ist ersichtlich, dass das Ergebnis geringfügig von dem zuvor ausgeschriebenen abweicht. Die vorherigen Ergebnisse wurden mit TensorFlow erhalten, die folgenden Grafiken wurden mit dem Scikit-Learn-Paket erhalten.
ROC-Kurve für verschiedene Optionen zur Lösung des Problems. Rechts ist die obere linke Ecke des linken DiagrammsSie können beliebige feste Zahlen als Schwellenwerte verwenden (z. B. nimmt Tensorflow, wenn Sie den entsprechenden Parameter auf 50 setzen, in gleichen Intervallen die gleiche Anzahl von Schwellenwerten von 0 bis 1 an), Sie können die Werte am Ausgang des Netzwerks verwenden oder sie von unten einschränken, um sie nicht zu berücksichtigen zum Beispiel Werte in der Größenordnung von 10
-4 . Das Ergebnis des letzteren Ansatzes ist in der folgenden Abbildung dargestellt.
ROC-Kurve für mehrere Optionen zur Lösung des Problems mit einem Schwellenwert von 10 -4Es ist ersichtlich, dass alle Kurven, die der Lösung des Problems unter Verwendung neuronaler Netze entsprechen, charakteristischerweise besser (höher) sind als die Lösung des Problems ohne sie, aber Sie können nicht die definitiv beste Kurve zwischen den ersten wählen. Je nachdem, welchen Schwellenwert der Benutzer wählt, entsprechen unterschiedliche Kurven unterschiedlichen optimalen Lösungen für das Problem. Daher haben wir einerseits einen Ansatz gefunden, der es uns ermöglicht, die Farbe der Maschine genau zu bestimmen und eine hohe Metrik zu zeigen, andererseits haben wir gezeigt, dass die Grenze noch nicht erreicht wurde und die Metrik der Fläche unter der ROC-Kurve ihre Nachteile hat.
Bereit, Fragen zu beantworten und Kommentare in den Kommentaren anzuhören.