-
Gebiet der Erfindung
-
Die vorliegende Erfindung bezieht sich auf ein Erkennen von Objekten in Bildern und/oder Videos.
-
HINTERGRUND DER ERFINDUNG
-
Verschiedene praktische Anwendungen wie z.B. eine automatische Analyse medizinischer Bilder und eine Sicherheit auf Grundlage einer Bilderkennung erkennen Objekte (d.h. Instanzen bekannter Objektklassen) in Bildern und/oder Videos. In jüngster Zeit profitierte die Objekterkennung in Bildern und/oder Videos in erheblichem Maße von Entwicklungen bei neuronalen Netzwerken. Wie hier verwendet, ist der Begriff „Objekterkenner“ eine kürzere Form von „neuronale(r) Netzwerk-Objekterkenner“. Ein neuronaler Netzwerk-Objekterkenner ist im Wesentlichen ein Modell, das durch einen Satz von Parametern charakterisiert wird. Objekterkennung enthält ein Ermitteln des Orts und der Art bzw. Klasse von Objekten in Bildern und/oder Videos. Herkömmliche Objekterkenner verwenden einstufige oder zweistufige Objekterkenner. Einstufige Objekterkenner wie zum Beispiel You-Only-Look-Once, YOLO und Single-Shot-Detection (SSD) ermitteln gleichzeitig, wo und welche Objekte vorhanden sind, indem eine feste Anzahl von Objektvorhersagen auf Rastergrundlage getroffen werden. Zweistufige Objekterkenner schlagen getrennt Regionen vor, in denen sich bekannte Objekte vermutlich befinden, und weisen den vorgeschlagenen Regionen dann spezifische Objektvorhersagen (z.B. Wahrscheinlichkeiten) zu.
-
Allerdings sind neuronale Netzwerke sehr anfällig für ein katastrophales Vergessen, d.h. für den Verlust einer Fähigkeit zum Erkennen einer ersten Klasse von Objekten, wenn ein inkrementelles Lernen verwendet wird, um einen bestimmten Objekterkenner neu zu trainieren, eine bestimmte Klasse von Objekten zu erkennen, was ein inkrementelles Lernen unvereinbar mit einer lebenslangen Erkennung macht. Versuche zur Vermeidung eines katastrophalen Vergessens enthalten ein Ausführen eines neuen Objekterkenners, der den neuen Klassen gewidmet ist, parallel zu dem Objekterkenner zum Erkennen der zuvor gelernten Klassen, was die notwendigen Rechenressourcen (Arbeitsspeicher- und Ausführungskapazität) verdoppelt. Ein weiterer Ansatz trainiert den Objekterkenner mit Bildern, die eine Kombination von Objekten enthalten, welche sowohl zu den neuen als auch zu den früher gelernten Klassen gehören, wobei solche kombinierten Datensätze unter Umständen jedoch nicht verfügbar sind. Das Training des Objekterkenners mit einem großen Datensatz, der sowohl Objektbilder neuer Klassen als auch zuvor gelernter Klassen enthält, führt zudem zu einem drastisch höheren Bedarf an Rechenressourcen.
-
Eine Fast-R-CNN-Architektur (Region Convolutional Neural Network), die vorab berechnete Objektvorschläge verwendet und daher langsam ausgeführt wird, wurde von K. Shmelkov in „Incremental Learning of Object Detectors without Catastrophic Forgetting“, International Conference on Computer Vision (2017), vorgeschlagen. Dieser Artikel erörtert eine Verwendung einer Wissensdestillation, um neue Klassen zu Regionsklassifikatoren hinzuzufügen, wobei dies allerdings problematisch ist, da das oben erwähnte Verfahren auf fortschrittlichere Architekturen wie Faster-RCNN nicht direkt angewendet werden kann.
-
Objekterkennungsmodelle auf Grundlage von neuronalen Netzwerken werden herkömmlicherweise mit Objekterkennungsdatensätzen wie PASCAL VOC und COCO trainiert, die über 20 bzw. 80 Kategorien verfügen. Die Objektklassen, die erkannt werden können, werden durch den Datensatz bestimmt, der zum Trainieren des Modells verwendet wird. Sobald das Modell trainiert wurde, können die Objektklassen nicht geändert werden, ohne das gesamte Netzwerk mit gekennzeichneten Daten für alle relevanten Klassen neu zu trainieren.
-
Wenn einem Benutzer keine Trainingsdaten (Bilder) für ein vorhandenes Modell zur Verfügung stehen (z.B. weil die betreffenden Websites langsam oder nicht verfügbar sind) oder wenn der Benutzer keine Berechtigung zum Zugreifen auf die ursprünglichen Daten hat, kann der Benutzer das Modell nicht aktualisieren, indem er neue Objektklassen hinzufügt, die für den Benutzer relevant geworden sind.
-
Aus diesem Grund sind neuronale Netzwerk-Objekterkenner (d.h. Verfahren und Einheiten) wünschenswert, die in der Lage sind, ein katastrophales Vergessen von zuvor gelernten Objektklassen zu vermeiden, wenn sie trainiert werden, Objekte zu erkennen, die zu neuen Objektklassen gehören. Benötigt wird ein fortschrittlicheres Objekterkennungssystem, das ad hoc angepasst werden kann, wenn der Benutzer neue Objektklassen hinzufügen möchte, und das Objekterkennungsmodelle nach Bedarf aktualisieren kann.
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
Beispielhafte Ausführungsformen sind auf Verfahren zum inkrementellen Lernen neuer Objektklassen (d.h. zum Trainieren eines Objekterkenners, Objekte zu erkennen, die zu den neuen Klassen gehören) gerichtet, ohne dass es zu einem katastrophalen Vergessen kommt, Objekte zu erkennen, die zu zuvor gelernten Klassen gehören. Der Objekterkenner wird unter Verwendung eines Gesamtverlusts aktualisiert, der es ermöglicht, eine Fähigkeit zum Erkennen von Objekten neuer Klassen mit einer Fähigkeit zum Erkennen von Objekten zuvor gelernter Klassen zu verbinden, ohne einen Zugriff auf Bilder zu benötigen, die zuvor verwendet wurden, um den Objekterkenner zu trainieren. Der trainierte und aktualisierte Objekterkenner behält die Fähigkeit zum Erkennen von Objekten bei, die zu zuvor gelernten Objektklassen gehören, und dehnt seine Erkennungsfähigkeit zugleich auf Objekte aus, die zu den neuen Objektklassen gehören.
-
Andere beispielhafte Ausführungsformen sind auf Systeme gerichtet, die bekannte Objektklassen erkennen, mit einem Benutzer (z.B. mittels natürlicher Sprache) interagieren, Anforderungen zum Hinzufügen neuer Objektklassen von dem Benutzer empfangen, notwendige Trainingsdaten autonom sammeln und den Objekterkenner zum Finden und Identifizieren von Objekten neu trainieren, die zu neuen Klassen gehören, ohne dass es zu einer drastischen Einbuße der Fähigkeit zum Erkennen von Objekten kommt, die zu zuvor gelernten Objektklassen gehören. Bei einer Ausführungsform stellt das System dem Benutzer Empfehlungen und Anforderungen für neue Objektklassen bereit.
-
Beispielhafte Ausführungsformen sind auf Verfahren zum inkrementellen Lernen für eine Objekterkennung in Bildern ohne ein katastrophales Vergessen von zuvor gelernten Objektklassen gerichtet. Die Verfahren enthalten ein Trainieren eines vorhandenen zweistufigen neuronalen Netzwerk-Objekterkenners zum Finden und Identifizieren von Objekten, die zu mindestens einer zusätzlichen Objektklasse in Bildern gehören, indem der zweistufige neuronale Netzwerk-Objekterkenner iterativ so lange aktualisiert wird, bis ein Kriterium für die Gesamt-Erkennungsgenauigkeit erfüllt ist. Das Aktualisieren wird durchgeführt, um einen Ausgleich zwischen einem Minimieren eines Verlusts einer anfänglichen Fähigkeit zum Finden und Erkennen von Objekten, die zu der einen oder den mehreren zuvor gelernten Objektklassen gehören, und einem Maximieren einer Fähigkeit zum Finden und Identifizieren der Objekte herzustellen, die zu der zusätzlichen Objektklasse gehören.
-
Eine weitere beispielhafte Ausführungsform ist auf Verfahren zum inkrementellen Lernen für eine Objekterkennung ohne ein katastrophales Vergessen von zuvor gelernten Objektklassen gerichtet, das ein Empfangen von Trainingsbildern wie z.B. Objekten enthält, die zu einer Objektklasse gehören, die einer anfänglichen Version eines zweistufigen neuronalen Netzwerk-Objekterkenners unbekannt ist, die in der Lage ist, Objekte zu erkennen, die zu mindestens einer zuvor gelernten Objektklasse gehören. Das Verfahren enthält des Weiteren ein Trainieren des zweistufigen neuronalen Netzwerk-Objekterkenners zum Erkennen der Objekte der anfänglich unbekannten Objektklasse, indem Bild für Bild mehrere Bilder aus den Trainingsbildern so lange verwendet werden, bis eine vorgegebene Bedingung erfüllt ist. Das Training enthält (1) ein Eingeben eines Bilds der mehreren Bilder in die anfängliche Version des zweistufigen neuronalen Netzwerk-Objekterkenners, um einen ersten Regionsvorschlag und eine erste Objektvorhersage für die mindestens eine zuvor gelernte Objektklasse zu erhalten, (2) ein Eingeben des einen Bilds in eine aktuelle Version des zweistufigen neuronalen Netzwerk-Objekterkenners, um einen zweiten Regionsvorschlag und eine zweite Objektvorhersage für die mindestens eine zuvor gelernte Objektklasse und die anfänglich unbekannte Objektklasse zu erhalten, (3) ein Vergleichen des ersten Regionsvorschlags mit dem zweiten Regionsvorschlag, um einen Regionsvorschlags-Destillationsverlust zu schätzen, der eine Abnahme einer Fähigkeit zum Finden von Objekten der mindestens einen zuvor gelernten Objektklasse quantifiziert, (4) ein Vergleichen der ersten Objektvorhersage mit der zweiten Objektvorhersage, um einen Objektidentifizierungs-Destillationsverlust zu schätzen, der eine Abnahme einer Fähigkeit zum Identifizieren der Objekte der mindestens einen zuvor gelernten Objektklasse quantifiziert, (5) ein Vergleichen des zweiten Regionsvorschlags mit Grundwissensetiketten des einen Bilds, um einen Regionsvorschlags-Netzwerkverlust für die anfänglich unbekannte Objektklasse zu schätzen, (6) ein Vergleichen der zweiten Objektvorhersage mit den Grundwissensetiketten, um einen Objektidentifizierungsverlust für die anfänglich unbekannte Objektklasse zu schätzen, (7) ein Berechnen eines Gesamtverlusts, der den Regionsvorschlags-Destillationsverlust, den Objektidentifizierungs-Destillationsverlust, den Regionsvorschlags-Netzwerkverlust und den Objektidentifizierungsverlust kombiniert, und (8) ein Aktualisieren des aktuellen zweistufigen neuronalen Netzwerk-Objekterkenners, um den Gesamtverlust zu minimieren. Die vorgegebene Bedingung ist erfüllt, wenn die Anzahl von Trainingsiterationen eine vorgegebene Anzahl erreicht oder wenn eine Gesamtverlust-Abnahmerate unter einem vorgegebenen Schwellenwert liegt.
-
Beispielhafte Ausführungsformen sind auf computerlesbare Medien gerichtet, die einen computerlesbaren Code enthalten, der, wenn er durch einen Computer gelesen wird, den Computer veranlasst, Verfahren zum inkrementellen Lernen für eine Objekterkennung in Bildern ohne ein katastrophales Vergessen von zuvor gelernten einen oder mehreren Objektklassen durchzuführen. Die Verfahren enthalten ein Trainieren eines zweistufigen neuronalen Netzwerk-Objekterkenners zum Finden und Identifizieren von Objekten, die zu einer zusätzlichen Objektklasse gehören, indem der zweistufige neuronale Netzwerk-Objekterkenner iterativ so lange aktualisiert wird, bis ein Kriterium für die Gesamt-Erkennungsgenauigkeit erfüllt ist. Das Aktualisieren wird durchgeführt, um einen Ausgleich zwischen einem Minimieren eines Verlusts einer anfänglichen Fähigkeit zum Finden und Erkennen von Objekten, die zu der einen oder den mehreren zuvor gelernten Objektklassen gehören, und einem Maximieren einer Fähigkeit zum Finden und Identifizieren der Objekte herzustellen, die zu der zusätzlichen Objektklasse gehören.
-
Weitere beispielhafte Ausführungsformen sind auf Systeme zum inkrementellen Lernen für eine Objekterkennung ohne ein katastrophales Vergessen von zuvor gelernten Objektklassen gerichtet. Die Systeme enthalten jeweils eine Datenverarbeitungseinheit, die konfiguriert wird, um Bilder zu empfangen, einen zweistufigen neuronalen Netzwerk-Objekterkenner zum Finden und Identifizieren von Objekten zu verwenden und mit einem Cloud-Server Daten auszutauschen, sowie den Cloud-Server. Dieser Cloud-Server wird konfiguriert, um Trainingsbilder zu sammeln, eine anfängliche Version des zweistufigen neuronalen Netzwerk-Objekterkenners zu speichern, die eine oder mehrere Objektklassen findet und identifiziert, und mit der Datenverarbeitungseinheit und dem Internet Daten auszutauschen. Mindestens eines der Datenverarbeitungseinheit und des Cloud-Servers wird konfiguriert, um den zweistufigen neuronalen Netzwerk-Objekterkenner zum Finden und Identifizieren von Objekten zu trainieren, die zu einer zusätzlichen Objektklasse gehören, indem der zweistufige neuronale Netzwerk-Objekterkenner, der anfänglich in der Lage ist, Objekte zu finden und zu identifizieren, die zu einer oder mehreren Objektklassen gehören, iterativ so lange aktualisiert wird, bis ein Kriterium für die Gesamt-Erkennungsgenauigkeit erfüllt ist, wobei das Aktualisieren durchgeführt wird, um einen Ausgleich zwischen einem Minimieren eines Verlusts einer anfänglichen Fähigkeit des zweistufigen neuronalen Netzwerk-Objekterkenners zum Finden und Identifizieren von Objekten, die zu der einen oder den mehreren Objektklassen gehören, und einem Maximieren einer Fähigkeit des zweistufigen neuronalen Netzwerk-Objekterkenners zum Finden und Identifizieren von Objekten herzustellen, die zu der zusätzlichen Objektklasse gehören.
-
Figurenliste
-
Mit Blick auf die beigefügten Zeichnungen werden nun Ausführungsformen der Erfindung beschrieben, die lediglich beispielhaft zu verstehen sind und bei denen:
- 1 eine schematische Darstellung eines inkrementellen Lernens für eine Objekterkennung ohne ein katastrophales Vergessen gemäß einer Ausführungsform ist;
- 2 ein Ablaufplan eines Verfahrens zum inkrementellen Lernen für eine Objekterkennung in Bildern ohne ein katastrophales Vergessen von zuvor gelernten einen oder mehreren Objektklassen gemäß einer Ausführungsform ist;
- 3 Ausgaben einer anfänglichen Version eines Objekterkenners und einer trainierten Version des Objekterkenners veranschaulicht, wobei dasselbe Bild als Eingabe verwendet wird;
- 4 ein Objekterkennungssystem gemäß einer Ausführungsform veranschaulicht;
- 5 eine Cloud-Computing-Umgebung gemäß einer Ausführungsform der vorliegenden Erfindung darstellt;
- 6 Abstraktionsmodellschichten gemäß einer Ausführungsform der vorliegenden Erfindung darstellt;
- 7 ein Ablaufplan ist, der eine Objekterkennung gemäß einer Ausführungsform veranschaulicht;
- 8 ein Ablaufplan eines Verfahrens zum Hinzufügen einer neuen Klasse gemäß einer Ausführungsform ist;
- 9 ein Ablaufplan ist, der eine genauigkeitssensitive Modellverbesserung gemäß einer Ausführungsform veranschaulicht; und
- 10 ein Ablaufplan ist, der ein Hinzufügen neuer Objektklassen zu einem Objekterkennungsmodell gemäß einer Ausführungsform veranschaulicht, wenn eine Benutzeranforderung empfangen wird.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Ablaufpläne und Blockschaubilder, die in den folgenden Beschreibungen in Figuren verwendet werden, veranschaulichen die Architektur, die Funktionalität und den Betrieb möglicher Ausführungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in den Ablaufplänen oder Blockschaubildern ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, die eine oder mehrere ausführbare Anweisungen zur Ausführung der bestimmten logischen Funktion(en) aufweisen. In einigen alternativen Ausführungen können die in dem Block angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt stattfinden. Zwei nacheinander gezeigte Blöcke können zum Beispiel in Wirklichkeit im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können manchmal je nach entsprechender Funktionalität in umgekehrter Reihenfolge ausgeführt werden. Es ist ferner anzumerken, dass jeder Block der Blockschaubilder und/oder der Ablaufpläne sowie Kombinationen aus Blöcken in den Blockschaubildern und/oder den Ablaufplänen durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, welche die festgelegten Funktionen oder Schritte durchführen, oder Kombinationen aus Spezial-Hardware und Computeranweisungen ausführen.
-
Im Folgenden beschriebene beispielhafte Ausführungsformen sind auf ein inkrementelles Lernen zum Erkennen von Objekten gerichtet, die zu neuen Klassen gehören, ohne dass es zu einem katastrophalen Vergessen kommt, Objekte zu erkennen, die zu zuvor gelernten Klassen gehören. Das Trainieren eines Objekterkenners zielt darauf ab: (A) den Erkenner in die Lage zu versetzen, Objekte, die zu neuen Klassen gehören, unabhängig davon zu erkennen (d.h. zu finden und zu identifizieren), wo sich solche Objekte befinden und welche anderen Objekte in einem Bild auftreten; (B) eine gute Leistung für ein Erkennen von Objekten aufrechtzuerhalten, die zu zuvor gelernten Klassen gehören; (C) eine angemessene Anzahl von Modellparametern zu verwenden und akzeptable Arbeitsspeicheranforderungen zum Verwenden des Modells aufzuweisen; und (D) einen Ende-zu-Ende-Lernmechanismus bereitzustellen, der den Klassifikator zum Identifizieren der neuen Objektklasse und die Merkmalsrepräsentation zum Finden eines Objekts, das zu der neuen Objektklasse gehört, gemeinsam aktualisiert.
-
1 stellt ein inkrementelles Lernen für eine Objekterkennung in Bildern ohne ein katastrophales Vergessen von zuvor gelernten Objektklassen gemäß einer Ausführungsform schematisch dar. Eine anfängliche Version eines zweistufigen, als „Lehrernetzwerk“ (Teacher Network, T) bezeichneten Objekterkenners ist in der Lage, Objekte zu erkennen (d.h. zu finden und zu identifizieren), die zu den zuvor gelernten Objektklassen gehören. Eine aktuelle, als „Schülernetzwerk“ (Student Network, S) bezeichnete Version des zweistufigen neuronalen Netzwerk-Objekterkenners wird trainiert, Objekte zu erkennen, die zu einer neuen Objektklasse gehören. Die folgende Beschreibung bezieht sich auf eine einzige neue Objektklasse, wobei jedoch auch mehrere Objektklassen nacheinander oder gleichzeitig hinzugefügt werden können. Das Schülernetzwerk beginnt mit den Parametern des Lehrernetzwerks, wobei die Ausgabe des Schülernetzwerks jedoch darauf ausgedehnt wird, Objekte zu erkennen, die zu der neuen Objektklasse gehören.
-
Trainingsbilder 100 enthalten Objekte, die zu der neuen Objektklasse gehören, können jedoch auch Objekte enthalten, die zu den zuvor gelernten Objektklassen gehören. Diese Trainingsbilder werden Bild für Bild oder Partie für Partie in das Lehrernetzwerk 110 und das Schülernetzwerk 120 eingegeben (d.h. parallel in beide Netzwerke und seriell in Form der Trainingsbilder). Für jedes Eingabebild erzeugt das Lehrernetzwerk 110 einen Lehrer-Regionsvorschlag (Teacher Region Proposal, RPN(T)) 111, der dazu verwendet wird, einen Merkmalsvektor 112 und eine Lehrer-Objektvorhersage 113 zu extrahieren, die eine der zuvor gelernten Objektklassen als einem Objekt in jeder Region des Lehrer-RPN entsprechend identifizieren. Ebenso erzeugt das Schülernetzwerk 120 für jedes Eingabebild einen Schüler-Regionsvorschlag (Student Region Proposal, RPN(S)) 121, der dazu verwendet wird, einen Merkmalsvektor 122 und eine Schüler-Objektvorhersage 123 zu extrahieren, die eine der zuvor gelernten Objektklassen oder die neue Objektklasse als einem Objekt in jeder Region des RPN(S) entsprechend identifizieren.
-
Die Erkennungsgenauigkeit kann auf Grundlage der Ausgaben des Lehrernetzwerks und des Schülernetzwerks geschätzt werden. Ein Regionsvorschlags-Netzwerkdestillationsverlust 131, der eine Abnahme der Fähigkeit des Schülernetzwerks quantifiziert, Objekte der zuvor gelernten Objektklassen zu finden, beruht auf einem Vergleichen des Lehrer-Regionsvorschlags 111 mit dem Schüler-Regionsvorschlag 121. Ein Objektidentifizierungs-Destillationsverlust 132, der eine Abnahme der Fähigkeit des Schülernetzwerks quantifiziert, Objekte der zuvor gelernten Objektklassen zu identifizieren, beruht auf einem Vergleichen der Lehrer-Objektvorhersage 112 mit der Schüler-Objektvorhersage 122.
-
Des Weiteren ermöglicht ein Vergleichen der Ausgaben des Schülernetzwerks mit Grundwissensetiketten, die dem Trainingsbild zugehörig sind, ein Schätzen eines Regionsvorschlagsverlusts 141 des Schülernetzwerks, der sich auf ein Finden von Objekten bezieht, die zu der neuen Objektklasse gehören, und eines Objektidentifizierungsverlusts 142 des Schülernetzwerks, der sich auf ein Identifizieren von Objekten bezieht, die zu der neuen Objektklasse gehören. Beim maschinellen Lernen bezieht sich der Begriff „Grundwissen“ auf ein Klassifizierungsetikett des Trainingssatzes oder - einfacher ausgedrückt - auf die Objekte an dem realen Ort und in der realen Identität der Trainingsbilder.
-
Bei einer Ausführungsform wird ein Gesamtverlust definiert, indem der Regionsvorschlags-Netzwerkdestillationsverlust, der Objektidentifizierungs-Destillationsverlust, der Regionsvorschlags-Netzwerkverlust und der Objektidentifizierungsverlust kombiniert werden. Das Schülernetzwerk kann daraufhin aktualisiert werden, um den Gesamtverlust zu minimieren. Die Kombination kann eine einfache Summierung von relativen Messwerten dieser Verluste oder eine gewichtete Summierung hiervon sein. Mathematisch ausgedrückt, gilt:
wobei L
total der Gesamtverlust ist,
der Regionsvorschlags-Netzwerkdestillationsverlust ist,
der Objektidentifizierungs-Destillationsverlust ist,
der Regionsvorschlags-Netzwerkverlust ist und
der Objektidentifizierungsverlust ist sowie λ
1 ... λ
4 die entsprechenden Gewichtungen sind.
-
Die Verwendung des Gesamtverlusts beim Aktualisieren des Objekterkenners ist eine Möglichkeit, einen Ausgleich zwischen einem Minimieren seines Verlusts einer Fähigkeit zum Erkennen von Objekten, die zu zuvor gelernten Objektklassen gehören, und einem Maximieren seiner Fähigkeit zum Erkennen von Objekten herzustellen, die zu der neu hinzugefügten Objektklasse gehören. Dieser Ausgleich lässt sich allerdings auch auf andere Art und Weise erreichen; zum Beispiel kann ein vordefinierter Grenzwert für einen Verlust einer Fähigkeit zum Erkennen von Objekten, die zu beliebigen einzelnen, zuvor gelernten Objektklassen gehören, für einen durchschnittlichen Verlust einer Fähigkeit und/oder für die Fähigkeit zum Erkennen von Objekten vorhanden sein, die zu der hinzugefügten Objektklasse gehören (in diesem Fall ist der vordefinierte Grenzwert ein Schwellenwert, der überschritten werden muss), usw.
-
2 ist ein Ablaufplan eines Verfahrens 200 zum inkrementellen Lernen für eine Objekterkennung ohne ein katastrophales Vergessen gemäß einer Ausführungsform. In 210 werden Trainingsbilder wie z.B. Objekte empfangen, die zu einer Objektklasse gehören, die einer anfänglichen Version eines zweistufigen neuronalen Netzwerk-Objekterkenners unbekannt ist, der in der Lage ist, Objekte zu erkennen, die zu mindestens einer zuvor gelernten Objektklasse gehören. Trainingsbilder weisen zugehörige Grundwissensetiketten auf, die Orte (z.B. Regionen, bei denen es sich um Felder handeln kann) bzw. Objektklassen der darin enthaltenen Objekte angeben.
-
In 220 wird der zweistufige neuronale Netzwerk-Objekterkenner trainiert, die Objekte der anfänglich unbekannten Objektklasse zu erkennen, indem die Trainingsbilder Bild für Bild oder Partie für Partie so lange verwendet werden, bis eine vorgegebene Bedingung erfüllt ist. Die vorgegebene Bedingung kann darin bestehen, dass eine vorgegebene Anzahl von Iterationen durchgeführt wird, dass ein Genauigkeitsschwellenwert erreicht wird oder dass Verluste nicht weiter verringert werden können. Ein Trainieren des zweistufigen neuronalen Netzwerk-Objekterkenners enthält ein Durchführen der folgenden Operationen für jedes Bild der mehreren Bilder:
- (1) Eingeben des Bilds in die anfängliche Version des zweistufigen neuronalen Netzwerk-Objekterkenners (z.B. dem Lehrernetzwerk), um einen ersten Regionsvorschlag und eine erste Objektvorhersage für die zuvor gelernten Objektklassen zu erhalten,
- (2) Eingeben des Bilds in eine aktuelle Version des zweistufigen neuronalen Netzwerk-Objekterkenners (z.B. dem Schülernetzwerk), um einen zweiten Regionsvorschlag und eine zweite Objektvorhersage für die zuvor gelernten Objektklassen und die neue Objektklasse zu erhalten,
- (3) Vergleichen des ersten Regionsvorschlags mit dem zweiten Regionsvorschlag, um einen Regionsvorschlags-Destillationsverlust zu schätzen, der eine Abnahme einer Fähigkeit zum Finden von Objekten quantifiziert, die zu den zuvor gelernten Objektklassen gehören,
- (4) Vergleichen der ersten Objektvorhersage mit der zweiten Objektvorhersage, um einen Objektidentifizierungs-Destillationsverlust zu schätzen, der eine Abnahme einer Fähigkeit zum Identifizieren der Objekte der zuvor gelernten Objektklassen quantifiziert,
- (5) Vergleichen des zweiten Regionsvorschlags mit den Grundwissensetiketten des Bilds, um einen Regionsvorschlags-Netzwerkverlust für die neue Objektklasse zu schätzen,
- (6) Vergleichen der zweiten Objektvorhersage mit den Grundwissensetiketten, um einen Objektidentifizierungsverlust für die neue Objektklasse zu schätzen,
- (7) Berechnen eines Gesamtverlusts, indem der Regionsvorschlags-Destillationsverlust, der Objektidentifizierungs-Destillationsverlust, der Regionsvorschlags-Netzwerkverlust und der Objektidentifizierungsverlust kombiniert werden, und
- (8) Aktualisieren der aktuellen Version des zweistufigen neuronalen Netzwerk-Objekterkenners, um den Gesamtverlust zu minimieren. Das Aktualisieren kann die Parameter des neuronalen Netzwerks unter Verwendung beliebiger verschiedener bekannter Verfahren anpassen (z.B. indem ein stochastisches Gradientenabstiegsverfahren auf den Gesamtverlust angewendet wird).
-
Allgemeiner ausgedrückt führt ein Verfahren zum inkrementellen Lernen für eine Objekterkennung in Bildern ohne ein katastrophales Vergessen von zuvor gelernten Objektklassen ein Trainieren eines zweistufigen neuronalen Netzwerk-Objekterkenners durch, um Objekte, die zu einer zusätzlichen Objektklasse gehören, so lange zu finden und zu identifizieren, bis ein Kriterium für die Gesamt-Erkennungsgenauigkeit erfüllt ist. Die Gesamt-Erkennungsgenauigkeit beschreibt die Fähigkeit des trainierten Objekterkenners, zuvor gelernte Objektklassen und die zusätzliche Objektklasse zu erkennen. Zum Beispiel muss eine Summe von als Wahrscheinlichkeiten ausgedrückten Vorhersagen einen Genauigkeitsschwellenwert übersteigen, oder eine Vorhersagewahrscheinlichkeit für jedes der Objekte muss einen unteren Genauigkeitsschwellenwert übersteigen.
-
Der zweistufige neuronale Netzwerk-Objekterkenner wird iterativ aktualisiert, um einen Ausgleich zwischen einem Minimieren eines Verlusts seiner anfänglichen Fähigkeit zum Finden und Erkennen von Objekten, die zu den zuvor gelernten Objektklassen gehören, und einem Maximieren seiner Fähigkeit zum zusätzlichen Finden und Identifizieren der Objekte herzustellen, die zu der zusätzlichen Objektklasse gehören. Eine Fähigkeit kann nach einem Prozentsatz von korrekten Erkennungen aus allen Erkennungen, einem Durchschnitt von Vorhersagewahrscheinlichkeiten kombiniert mit einer Anzahl von falsch positiven Erkennungen oder falsch negativen Erkennungen usw. gemessen werden. Der Verlust einer Fähigkeit zum Finden und Identifizieren von Objekten, die zu zuvor gelernten Klassen gehören, kann eine Summe (oder eine gewichtete Summe) von Destillationsverlusten sein. Ein solcher Verlust wird ermittelt, indem Ausgaben der anfänglichen (nicht trainierten) Version des Objekterkenners mit den Ausgaben der trainierten (aktuellen) Version des Objekterkenners verglichen werden.
-
Das Kriterium für die Gesamt-Erkennungsgenauigkeit kann beurteilt werden, indem ein Regionsvorschlags-Destillationsverlust und ein Objektidentifizierungs-Destillationsverlust ermittelt werden. „Destillationsverlust“ bezeichnet die Abnahme der betreffenden Fähigkeit aufgrund des Hinzufügens der neuen Objektklasse. Der Regionsvorschlags-Destillationsverlust beruht auf einem Vergleichen einer Regionsvorschlagsausgabe durch eine anfängliche Version des zweistufigen neuronalen Netzwerk-Objekterkenners mit einer aktuellen Regionsvorschlagsausgabe durch eine aktuelle Version des zweistufigen neuronalen Netzwerk-Objekterkenners für dasselbe Eingabetrainingsbild.
-
Der Objektidentifizierungs-Destillationsverlust beruht auf einem Vergleichen einer zuvor gelernten Objektvorhersageausgabe durch die anfängliche Version des zweistufigen neuronalen Netzwerk-Objekterkenners mit einer aktuellen Objektvorhersageausgabe durch die aktuelle Version des zweistufigen neuronalen Netzwerk-Objekterkenners für dasselbe Eingabetrainingsbild. Die Vergleiche zum Ermitteln von Destillationsverlusten werden aus Perspektive der zuvor gelernten Objektklassen durchgeführt. Der zweistufige neuronale Netzwerk-Objekterkenner wird aktualisiert, um den Regionsvorschlags-Destillationsverlust und den Objektidentifizierungs-Destillationsverlust zu minimieren.
-
3 veranschaulicht beispielhaft eine Objekterkennung (d.h. ein Finden in einem Feld und eine Objektidentifizierung) von zwei Objekten (einem Stuhl und einer Banane) in einem linken Bild 310 durch eine anfängliche Version des Objekterkenners, die für 19 Objektklassen trainiert wird, sowie eine Objekterkennung der beiden Objekte und eines zusätzlichen Objekts (d.h. des Laptops) in einem rechten Bild 320 durch eine Version des zweistufigen neuronalen Netzwerk-Objekterkenners, die für 20 Objektklassen (d.h. auch für ein Erkennen des Laptops) trainiert wird. Der Regionsvorschlag besteht aus rechteckigen Feldern 312, 314 bzw. 322 bis 326. Die Objektvorhersage kann als eine spezifische Objektwahrscheinlichkeit ausgedrückt werden, mit 0,98 für „Stuhl“ und 0,95 für „Banane“ als die alten Klassen und 0,99 für „Laptop“ als die neue Klasse (danach: Stuhl 0,96, Banane 0,95), und den Text entsprechend aktualisieren.
-
Für das linke Bild beträgt die Wahrscheinlichkeit für den Stuhl in Feld 312 0,98 (wobei 1 für sicher steht), und die Wahrscheinlichkeit für die Banane in Feld 314 beträgt 0,99. Für das rechte Bild beträgt die Wahrscheinlichkeit für den Stuhl in Feld 322 0,96, die Wahrscheinlichkeit für die Banane in Feld 324 beträgt 0,95, und die Wahrscheinlichkeit für den Laptop in Feld 328 beträgt 0,99.
-
4 veranschaulicht ein Objekterkennungssystem 400 gemäß einer Ausführungsform. Das Objekterkennungssystem enthält eine Datenverarbeitungseinheit 410 und eine Cloud-Einheit 420 (z.B. einen Server). Die Datenverarbeitungseinheit ist in der Lage, eine Bild-/Videoeingabe von einer Kamera 402 zu empfangen und eine Bild-/Videoausgabe an einen Bildschirm 408 zu übertragen. Die Datenverarbeitungseinheit ist ebenfalls in der Lage, eine Audioeingabe von einem Mikrofon 404 zu empfangen und eine Audioausgabe an einen Lautsprecher 406 zu übertragen.
-
Die Kamera 402, die der Datenverarbeitungseinheit die Bild-/Videoeingabe bereitstellt, kann in ein Smartphone oder in Smartglasses integriert werden, oder sie kann eine eigenständige Kamera sein. Mit dem Mikrofon 404 können der Computereinheit Benutzeranforderungen, die durch den Benutzer formuliert werden, als Audioeingabe bereitgestellt werden.
-
Die Datenverarbeitungseinheit 410 wird konfiguriert, um Audio- und Videoeingaben und -ausgaben zu verarbeiten, eine Objekterkennung durchzuführen und mit der Cloud/dem Server 420 Daten auszutauschen. Die Cloud/der Server 420 wird konfiguriert, um eine Objekterkennung durchzuführen, die von der Datenverarbeitungseinheit empfangene Anforderung des Benutzers zu verarbeiten, Trainingsbilder aus dem Web 430 zu sammeln und die anfängliche Version des Objekterkenners zu speichern.
-
Mindestens eines der Datenverarbeitungseinheit 410 und der Cloud/des Servers 420 wird konfiguriert, um ein Verfahren zum inkrementellen Lernen für eine Objekterkennung in Bildern ohne ein katastrophales Vergessen von zuvor gelernten Objektklassen (z.B. wie oben beschrieben) durchzuführen. Wenn ein inkrementelles Lernen durch die Cloud/den Server durchgeführt wird, wird der Objekterkenner, der zum Erkennen von Objekten trainiert wird, die zu einer zusätzlichen Objektklasse gehören, an die Datenverarbeitungseinheit gesendet. Wenn das Verfahren durch die Datenverarbeitungseinheit durchgeführt wird, stellt die Cloud/der Server der Datenverarbeitungseinheit die Trainingsbilder und die anfängliche Version des Objekterkenners bereit.
-
Es sei klargestellt, dass die Realisierung der hier bereitgestellten Lehren nicht auf eine Cloud-Computing-Umgebung beschränkt ist, obwohl eine ausführliche Beschreibung von Cloud Computing bereitgestellt wird. Vielmehr können Ausführungsformen der vorliegenden Erfindung gemeinsam mit jeder beliebigen Art von jetzt bekannter oder später entwickelter Datenverarbeitungsumgebung umgesetzt werden. Cloud Computing ist ein Dienstbereitstellungsmodell zum Ermöglichen eines problemlosen bedarfsgesteuerten Netzwerkzugriffs auf einen gemeinsam genutzten Pool von konfigurierbaren Datenverarbeitungsressourcen, z.B. Netzwerke, Netzwerkbandbreite, Server, Verarbeitung, Hauptspeicher, Speicher, Anwendungen, virtuelle Maschinen und Dienste, die mit minimalem Verwaltungsaufwand bzw. minimaler Interaktion mit einem Anbieter des Dienstes schnell bereitgestellt und freigegeben werden können.
-
Dieses Cloud-Modell kann mindestens fünf Eigenschaften, mindestens drei Dienstmodelle und mindestens vier Implementierungsmodelle enthalten. Die fünf Eigenschaften sind On-Demand Self-Service, Broad Network Access, Resource Pooling, Rapid Elasticity und Measured Service. Beim On-Demand Self-Service kann sich ein Cloud-Benutzer einseitig, automatisch und nach Bedarf Datenverarbeitungsfähigkeiten wie Serverzeit und Netzwerkspeicher bereitstellen, ohne dass eine menschliche Interaktion mit dem Anbieter des Dienstes erforderlich ist. Broad Network Access bezieht sich auf Fähigkeiten, die über ein Netzwerk verfügbar sind und auf die durch Standardmechanismen zugegriffen wird, welche die Verwendung durch heterogene Thin- oder Thick-Client-Plattformen wie z.B. Mobiltelefone, Laptops und PDAs unterstützen. Für das Resource-Pooling werden die Datenverarbeitungsressourcen des Anbieters zusammengeschlossen, um mehreren Benutzern unter Verwendung eines Multi-Tenant-Modells zu dienen, wobei verschiedene physische und virtuelle Ressourcen dynamisch nach Bedarf zugewiesen und neu zugewiesen werden. Dabei gibt es eine gefühlte Standortunabhängigkeit, da der Benutzer im Allgemeinen keine Kontrolle bzw. Kenntnis über den genauen Standort der bereitgestellten Ressourcen hat, aber in der Lage sein kann, einen Standort auf einer höheren Abstraktionsebene festzulegen, z.B. Land, Staat oder Rechenzentrum. Rapid Elasticity bezieht sich auf Fähigkeiten, die für ein schnelles Scale-Out schnell und elastisch - in einigen Fällen auch automatisch - bereitgestellt werden können und für ein schnelles Scale-In schnell freigegeben werden. Für den Benutzer erscheinen die für das Bereitstellen verfügbaren Fähigkeiten häufig unbegrenzt, und sie können jederzeit in jeder beliebigen Menge gekauft werden. Für einen Measured Service steuern und optimieren Cloud-Systeme die Verwendung von Ressourcen automatisch, indem sie eine Messfunktion auf einer gewissen Abstraktionsebene nutzen, die für die Art von Dienst geeignet ist, z.B. Speicher, Verarbeitung, Bandbreite sowie aktive Benutzerkonten. Der Ressourcenverbrauch kann überwacht, gesteuert und gemeldet werden, wodurch sowohl für den Anbieter als auch für den Benutzer des verwendeten Dienstes Transparenz geschaffen wird.
-
Die drei Dienstmodelle lauten Software as a Service (SaaS), Platform as a Service (PaaS) oder Infrastructure as a Service (laaS). Software as a Service stellt dem Benutzer die Fähigkeit bereit, die in einer Cloud-Infrastruktur laufenden Anwendungen des Anbieters zu verwenden. Die Anwendungen sind über eine Thin-Client-Schnittstelle wie einen Web-Browser, z.B. eine auf dem Web beruhende eMail, von verschiedenen Client-Einheiten her zugänglich. Der Benutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, darunter das Netzwerk, Server, Betriebssysteme, Speicher bzw. sogar einzelne Anwendungsfunktionen, mit Ausnahme von eingeschränkten benutzerspezifischen Einstellungen der Anwendungskonfiguration. Platform as a Service stellt dem Benutzer die Fähigkeit bereit, durch einen Benutzer erstellte bzw. erhaltene Anwendungen, die unter Verwendung von durch den Anbieter unterstützten Programmiersprachen und Tools erstellt wurden, in der Cloud-Infrastruktur einzusetzen. Der Benutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, darunter Netzwerke, Server, Betriebssysteme bzw. Speicher, hat aber die Kontrolle über die eingesetzten Anwendungen und möglicherweise über Konfigurationen der Hosting-Umgebung für die Anwendungen. Infrastructure as a Service stellt dem Benutzer die Fähigkeit bereit, das Verarbeiten, Speicher, Netzwerke und andere grundlegende Datenverarbeitungsressourcen bereitzustellen, wobei der Benutzer in der Lage ist, beliebige Software einzusetzen und auszuführen, zu der Betriebssysteme und Anwendungen gehören können. Der Benutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, hat aber die Kontrolle über Betriebssysteme, Speicher, eingesetzte Anwendungen und möglicherweise eine eingeschränkte Kontrolle über ausgewählte Netzwerkkomponenten, z.B. Host-Firewalls.
-
Die Implementierungsmodelle lauten Private Cloud, Community Cloud, Public Cloud und Hybrid Cloud. Die Private-Cloud-Infrastruktur wird einzig und allein für eine Organisation betrieben. Sie kann durch die Organisation oder einen Dritten verwaltet werden und kann sich in den eigenen Räumen oder in fremden Räumen befinden. Die Community-Cloud-Infrastruktur wird von mehreren Organisationen gemeinsam genutzt und unterstützt eine spezielle Benutzergemeinschaft, die gemeinsame Anliegen hat, z.B. Zielsetzung, Sicherheitsanforderungen, Richtlinien sowie Überlegungen bezüglich der Einhaltung von Vorschriften. Sie kann durch die Organisationen oder einen Dritten verwaltet werden und sich in den eigenen Räumen oder in fremden Räumen befinden. Die Public-Cloud-Infrastruktur wird der allgemeinen Öffentlichkeit oder einer großen Industriegruppe zur Verfügung gestellt und befindet sich im Besitz einer Organisation, die Cloud-Dienste verkauft. Die Hybrid-Cloud-Infrastruktur ist eine Zusammensetzung aus zwei oder mehreren Clouds (Private, Community oder Public), die zwar einzelne Einheiten bleiben, aber durch eine standardisierte oder proprietäre Technologie miteinander verbunden sind, die Daten- und Anwendungsportierbarkeit ermöglicht, z.B. Cloud-Zielgruppenverteilung für den Lastenausgleich zwischen Clouds.
-
Eine Cloud-Computing-Umgebung ist dienstorientiert mit Fokus auf Statusunabhängigkeit, geringer Kopplung, Modularität und semantischer Interoperabilität. Im Mittelpunkt des Cloud Computing steht eine Infrastruktur, die ein Netzwerk aus zusammengeschalteten Knoten enthält. Mit Blick auf 5 wird eine veranschaulichende Cloud-Computing-Umgebung 500 dargestellt. Wie gezeigt, enthält die Cloud-Computing-Umgebung 500 einen oder mehrere Cloud-Computing-Knoten 510, mit denen von Cloud-Benutzern verwendete lokale Datenverarbeitungseinheiten wie ein elektronischer Assistent (PDA, Personal Digital Assistant) oder ein Mobiltelefon 520, ein Desktop Computer 530, ein Laptop Computer 540 und/oder ein Automobil-Computer-System 550 Daten austauschen können. Die Knoten 510 können miteinander Daten austauschen. Sie können physisch oder virtuell in einem oder mehreren Netzwerken wie Private, Community, Public oder Hybrid Clouds zusammengefasst werden (nicht gezeigt), wie vorstehend beschrieben wurde, oder aber in eine Kombination daraus. Dies ermöglicht es der Cloud-Computing-Umgebung 500, Infrastruktur, Plattformen und/oder Software als Dienst anzubieten, für die ein Cloud-Benutzer keine Ressourcen auf einer lokalen Datenverarbeitungseinheit vorhalten muss. Es sei darauf hingewiesen, dass die Arten der in 5 gezeigten Datenverarbeitungseinheiten 520 bis 550 lediglich veranschaulichend sein sollen und dass die Datenverarbeitungsknoten 510 und die Cloud-Computing-Umgebung 500 über eine beliebige Art von Netzwerk und/oder über eine beliebige Art von über ein Netzwerk aufrufbarer Verbindung, z.B. unter Verwendung eines Web-Browsers) mit einer beliebigen Art von computergestützter Einheit Daten austauschen können.
-
Unter Bezugnahme auf 6 wird ein Satz von funktionalen Abstraktionsschichten gezeigt, die durch die Cloud-Computing-Umgebung 500 bereitgestellt werden. Es sollte von vornherein klar sein, dass die in 1, 2 und 4 gezeigten Komponenten, Schichten und Funktionen lediglich veranschaulichend sein sollen und Ausführungsformen der Erfindung nicht darauf beschränkt sind. Wie dargestellt, werden die folgenden Schichten und entsprechenden Funktionen bereitgestellt. Eine Hardware- und Software-Schicht 660 enthält Hardware- und Software-Komponenten. Zu Beispielen für Hardware-Komponenten gehören: Mainframe Computer 661, auf der RISC(Reduced Instruction Set Computer)-Architektur beruhende Server 662, Server 663, Blade-Server 664, Speichereinheiten 665 und Netzwerke sowie Netzwerkkomponenten 666. In einigen Ausführungsformen enthalten Software-Komponenten eine Netzwerk-Anwendungsserver-Software 667 und eine Datenbank-Software 668.
-
Eine Virtualisierungsschicht 670 ist eine Abstraktionsschicht, die eine oder mehrere virtuelle Einheiten enthält wie: virtuelle Server 671, virtuellen Speicher 672, virtuelle Netzwerke 673 (wobei es sich um virtuelle private Netzwerke handeln kann), virtuelle Anwendungen und Betriebssysteme 674 und virtuelle Clients 675
-
In einem Beispiel kann eine Verwaltungsschicht 680 die nachfolgend beschriebenen Funktionen bereitstellen. Eine Ressourcen-Bereitstellung 681 stellt die dynamische Beschaffung von Datenverarbeitungsressourcen sowie anderen Ressourcen bereit, die zum Durchführen von Aufgaben innerhalb der Cloud-Computing-Umgebung verwendet werden. Ein Messen und eine Preisfindung 682 stellen die Kostenverfolgung beim Verwenden von Ressourcen innerhalb der Cloud-Computing-Umgebung sowie die Abrechnung oder Rechnungsstellung für die Nutzung dieser Ressourcen bereit. In einem Beispiel können diese Ressourcen Anwendungs-Software-Lizenzen aufweisen. Eine Sicherheit stellt die Identitätsüberprüfung für Cloud-Nutzer und Aufgaben sowie Schutz für Daten und andere Ressourcen bereit. Ein Benutzerportal 683 stellt Benutzern und Systemadministratoren einen Zugriff auf die Cloud-Computing-Umgebung bereit. Eine Service-Level(Dienstgüte)-Verwaltung 684 stellt die Zuordnung und Verwaltung von Cloud-Computing-Ressourcen bereit, sodass die benötigten Service-Levels erreicht werden. Eine Planung und Erfüllung 685 einer Service Level Agreement (SLA) (Dienstgütevereinbarung) stellt die Vorausplanung und Beschaffung von Cloud-Computing-Ressourcen, für die eine zukünftige Anforderung vorausgesehen wird, gemäß einer SLA bereit.
-
Eine Arbeitslastenschicht 690 stellt Beispiele für die Funktionalität bereit, für welche die Cloud-Computing-Umgebung verwendet werden kann. Zu Beispielen für Arbeitslasten und Funktionen, die von dieser Schicht bereitgestellt werden können, gehören: Abbildung und Navigation 691, Software-Entwicklung und Lebenszyklusverwaltung 692, Bereitstellung von Ausbildung in virtuellen Klassenzimmern 693, Datenanalytikverarbeitung 694, Transaktionsverarbeitung 695 und inkrementelles Lernen für eine Objekterkennung 696.
-
Die 7 bis 10 sind Ablaufpläne von Verfahren, die durch das System 400 ausgeführt werden können, wie in 4 veranschaulicht. Diese Ablaufpläne zeigen Schritte, die durch die Datenverarbeitungseinheit 410 oder die Cloud/den Server 420 durchgeführt werden. Der Objekterkenner kann durch die Datenverarbeitungseinheit 410 oder durch die Cloud/den Server 420 ausgeführt werden. 7 ist ein Ablaufplan, der eine Objekterkennung veranschaulicht, die eine lokale oder in der Cloud stattfindende Objekterkennung umfasst. In 710 empfängt die Datenverarbeitungseinheit ein bzw. mehrere Bilder von einer Kamera (z.B. 402). Wenn die Objekterkennung lokal durchgeführt wird (d.h. Verzweigung „Ja“ in Block 720), wird der Objekterkenner in 730 in der lokalen Datenverarbeitungseinheit ausgeführt. Wenn die Objekterkennung in der Cloud durchgeführt wird (d.h. Verzweigung „Nein“ in Block 720), sendet die Datenverarbeitungseinheit das bzw. die empfangenen Bilder in 760 an die Cloud/den Server, sodass der Objekterkenner in 770 in der Cloud/auf dem Server ausgeführt werden kann. Die Erkennungsergebnisse werden dann an den Benutzer ausgegeben: in 740 gezeigt (z.B. auf dem Bildschirm 408) und/oder in 750 hörbar ausgegeben (z.B. unter Verwendung des Lautsprechers 406). Wenn die Objekterkennung fortfährt (d.h. Verzweigung „Nein“ in Block 780), ist die Datenverarbeitungseinheit bereit, in 710 ein bzw. mehrere weitere Bilder zu verarbeiten. Die Erkennung kann zum Beispiel fortfahren, wenn ein Videodatenstrom in Form von Partien von Bildern empfangen wird.
-
8 ist ein Ablaufplan eines Verfahrens zum Hinzufügen einer neuen Klasse von Objekten, die als Klasse A bezeichnet wird, zu einem vorhandenen Objekterkenner wie z.B. dem in 7 verwendeten Erkenner. Dieses Verfahren veranschaulicht ein Erhalten von Trainingsdatensätzen, die für ein inkrementelles Training verwendet werden können, und beruht darauf, was in der Eingabe (Bild oder Name) bereitgestellt wird, auf der Fähigkeit, vorhandene Trainingsdatensätze zu erhalten, oder der Notwendigkeit, einen neuen Trainingsdatensatz zu erzeugen.
-
In 810 empfängt eine Datenverarbeitungseinheit eine Benutzeranforderung zum Hinzufügen von Klasse A als Audioeingabe zu den zuvor gelernten Objektklassen des Objekterkenners. In 820 extrahiert die Datenverarbeitungseinheit den Namen der Klasse A aus der Benutzeranforderung, die als natürliche Sprache von dem Mikrofon empfangen wird, oder erhält ein repräsentatives Bild für Objektklasse A, das durch die Kamera bereitgestellt wird. Im ersten Fall sendet die Datenverarbeitungseinheit den Namen der Klasse A in 830 an die Cloud/den Server. Andernfalls sendet die Datenverarbeitungseinheit das repräsentative Bild an die Cloud/den Server.
-
Wenn der Name der Klasse A empfangen wird, durchsucht die Cloud/der Server das Web in 840 nach vorhandenen Bildern, welche die angeforderte Klasse A enthalten. Wenn in 850 ermittelt wird, dass solche Bilder nicht verfügbar sind, wird der Benutzer in 860 aufgefordert, ein Beispielbild für ein Objekt der Klasse A bereitzustellen. Wenn derartige Bilder verfügbar sind, werden sie mittels inkrementellem Lernen gesammelt, um in 870 einen Satz von Trainingsbildern zu bilden und den Objekterkenner so zu aktualisieren, dass er in der Lage ist, Objekte zu erkennen, die zu Klasse A gehören. In 880 wird der aktualisierte Objekterkenner der Datenverarbeitungseinheit bereitgestellt, die dem Benutzer dann in 890 ein Audio- oder Videofeedback bereitstellen kann, das sich auf die Fähigkeit zur Erkennung von Klasse A bezieht.
-
Wenn die Datenverarbeitungseinheit mit erneutem Bezug auf 820 ein repräsentatives Bild für Objektklasse A erhält, bereitet die Datenverarbeitungseinheit in 825 ein bzw. mehrere Fotos von einem bzw. mehreren Objekten der Klasse A vor und sendet es bzw. sie in 835 an die Cloud/den Server. Wenn das bzw. die Fotos oder Beispielbilder von dem Benutzer empfangen werden, durchsucht die Cloud/der Server in 845 das Web nach Bildern, wobei visuelle Merkmale verwendet werden, die ähnlich dem bzw. den empfangenen Fotos oder Beispielbildern oder dem Klassennamen sind. Die Cloud/der Server erzeugt in 855 einen Satz von Trainingsbildern für Klasse A, wobei die Trainingsbilder zum Aktualisieren des Objekterkenners in 970 verwendet werden.
-
9 ist ein Ablaufplan, der ein genauigkeitssensitives Modelltraining veranschaulicht. Dieses Verfahren veranschaulicht Optionen, die für den Fall bereitgestellt werden können, dass das Hinzufügen der neuen Klasse nicht reibungslos verläuft. Beginnend in 910 mit einem Erkennungsmodell D_n+m, das in der Lage ist, Objekte zu erkennen, die zu einem ursprünglichen Satz von n Objektklassen und zu einem hinzugefügten Satz von m Klassen gehören, empfängt die Computereinheit in 920 eine Benutzeranforderung zum Hinzufügen einer neuen Kategorie c. In 930 sendet die Computereinheit den Namen der Klasse c oder ein repräsentatives Bild hiervon an die Cloud/den Server. Die Cloud/der Server aktualisiert in 940 das Erkennungsmodell, um Objektklasse c zu den m+n Objektklassen hinzuzufügen, die der Objekterkenner bereits zu erkennen in der Lage war. In 950 prüft die Computereinheit daraufhin die Abnahme der Erkennungsgenauigkeit für die (auch als Kategorien bezeichneten) m+n Objektklassen infolge des Trainings (d.h. eine Differenz zwischen einer Erkennungsgenauigkeit von D_n+m und einer Erkennungsgenauigkeit von D_m+n+c). Wenn die Erkennungsgenauigkeit für eine beliebige Kategorie signifikant abgenommen hat (Verzweigung „Ja“ in Block 960), kehrt das System in 970 zu dem Modell D_n+m zurück, erzeugt in 980 ein neues Erkennungsmodell D_n+c und verwendet in 990 parallel D_n+m und D_n+c. Andernfalls (Verzweigung „Nein“ in Block 960) verwendet die Datenverarbeitungseinheit in 965 das Modell D_n+m+c für die Objekterkennung.
-
10 ist ein Ablaufplan, der ein Hinzufügen eines neuen Objekts zu einem Objekterkennungsmodell veranschaulicht, wenn eine Benutzeranforderung empfangen wird. In 1010 empfängt die Datenverarbeitungseinheit eine Audioeingabe wie z.B. eine Benutzeranforderung zum Hinzufügen eines neuen Objekts zu einem vorhandenen Objekterkennungsmodell. In 1020 empfängt die Datenverarbeitungseinheit Bilder des neuen Objekts (z.B. Fotos eines solchen neuen Objekts, die verschiedene Blickwinkel zeigen). In 1030 sendet die Datenverarbeitungseinheit die Bilder (Fotos) an die Cloud/den Server. In 1040 aktualisiert der Server das vorhandene Erkennungsmodell, sodass es die neue Objektklasse enthält, und sendet das aktualisierte Modell in 1050 an die Datenverarbeitungseinheit.
-
Verfahren und Systeme gemäß beispielhaften Ausführungsformen der vorliegenden Erfindung können in Gestalt einer vollständig aus Hardware bestehenden Ausführungsform, einer vollständig aus Software bestehenden Ausführungsform oder einer Ausführungsform vorliegen, die sowohl Hardware- als auch Software-Elemente enthält. Bei einer bevorzugten Ausführungsform wird die Erfindung in Software realisiert, wie beispielsweise Firmware, speicherresidente Software und Mikrocode, ohne jedoch darauf beschränkt zu sein. Beispielhafte Verfahren und Systeme können zusätzlich in Gestalt eines Computerprogrammprodukts vorliegen, auf das über ein computernutzbares oder computerlesbares Medium zugegriffen werden kann, das Programmcode bereitstellt, der durch oder in Verbindung mit einem Computer, einer Logikverarbeitungseinheit oder einem beliebigen anderen System zur Befehlsausführung verwendet werden kann. Zum Zwecke dieser Beschreibung kann ein computernutzbares oder computerlesbares Medium jedwede Vorrichtung sein, die das Programm, das durch oder in Verbindung mit dem Befehlsausführungssystem, der Befehlsausführungsvorrichtung oder -einheit verwendet wird, enthalten, speichern, austauschen, verteilen oder übertragen kann. Geeignete computernutzbare oder computerlesbare Medien können zum Beispiel elektronische, magnetische, optische, elektromagnetische, Infrarot- oder Halbleitersysteme (oder Vorrichtungen bzw. Einheiten) oder Verbreitungsmedien sein, ohne auf diese beschränkt zu sein. Beispiele für ein computerlesbares Medium enthalten einen Halbleiter- oder Solid-State-Speicher, Magnetband, eine wechselbare Computerdiskette, einen Direktzugriffsspeicher (Random Access Memory, RAM), einen Nur-Lese-Speicher (Read-Only Memory, ROM), eine magnetische Festplatte und eine optische Platte. Gegenwärtige Beispiele für optische Platten enthalten einen Kompaktspeicherplatte-Nur-Lese-Speicher (Compact Disk Read Only Memory, CD-ROM), einen Kompaktspeicherplatte-Lese/Schreib-Speicher (Compact Disk Read/Write, CD-R/W) und DVD.
-
Geeignete Datenverarbeitungssysteme zum Speichern und/oder Ausführen von Programmcode enthalten mindestens einen Prozessor, der direkt oder indirekt über einen Systembus mit Arbeitsspeicherelementen verbunden wird, ohne jedoch darauf beschränkt zu sein. Die Arbeitsspeicherelemente enthalten einen lokalen Arbeitsspeicher, der während der tatsächlichen Ausführung des Programmcodes verwendet wird, einen Massenspeicher und Cache-Arbeitsspeicher, die eine vorübergehende Speicherung von mindestens einigem Programmcode bereitstellen, um die Häufigkeit zu verringern, mit welcher der Code während der Ausführung aus dem Massenspeicher abgerufen werden muss. Eingabe/Ausgabe- bzw. E/A-Einheiten wie z.B., ohne darauf beschränkt zu sein, Tastaturen, Anzeigen und Zeigeeinheiten können entweder direkt oder über dazwischen geschaltete E/A-Steuereinheiten mit dem System verbunden werden. Beispielhafte Ausführungsformen der Verfahren und Systeme gemäß der vorliegenden Erfindung enthalten außerdem Netzwerkadapter, die mit dem System verbunden werden, um die Verbindung des Datenverarbeitungssystems mit anderen Datenverarbeitungssystemen oder mit entfernt angeordneten Druckern oder Speichereinheiten über dazwischengeschaltete private oder öffentliche Netzwerke zu ermöglichen. Geeignete, gegenwärtig verfügbare Arten von Netzwerkadaptern enthalten Modems, Kabelmodems, DSL-Modems, Ethernet-Karten und Kombinationen hiervon, ohne jedoch darauf beschränkt zu sein.
-
Bei einer Ausführungsformen ist die vorliegende Erfindung auf ein maschinenlesbares oder computerlesbares Medium gerichtet, das einen maschinenausführbaren oder computerausführbaren Code enthält, der, wenn er durch eine Maschine oder einen Computer gelesen wird, die Maschine oder den Computer veranlasst, ein Verfahren zum inkrementellen Lernen für eine Objekterkennung in Bildern ohne ein katastrophales Vergessen von zuvor gelernten Objektklassen durchzuführen. Der maschinenlesbare oder computerlesbare Code kann eine beliebige Art von Code oder Sprache sein, die durch die Maschine oder den Computer gelesen und ausgeführt werden kann, und kann in jeder geeigneten Sprache oder Syntax ausgedrückt werden, die nach dem Stand der Technik bekannt oder verfügbar ist, wie beispielsweise Maschinensprachen, Assembler-Sprachen, höhere Sprachen, objektorientierte Sprachen und Script-Sprachen. Der computerausführbare Code kann in jedem geeigneten Speichermedium oder jeder geeigneten Datenbank gespeichert werden, z.B. Datenbanken, die innerhalb von Computernetzwerken angeordnet sind, mit Computernetzwerken Daten austauschen und durch sie zugänglich sind, die durch Systeme gemäß der vorliegenden Erfindung verwendet werden, und können auf jeder geeigneten Hardware-Plattform ausgeführt werden, die nach dem Stand der Technik bekannt und verfügbar ist, wie z.B. den Steuerungssystemen, die dazu verwendet werden, die Präsentation der vorliegenden Erfindung zu steuern.
-
Obschon offensichtlich ist, dass die hier offenbarten veranschaulichenden Ausführungsformen der Erfindung die Zielsetzungen der vorliegenden Erfindung erfüllen, dürfte klar sein, dass für Fachleute zahlreiche Modifizierungen und andere Ausführungsformen denkbar sind. Darüber hinaus können ein bzw. mehrere Merkmale und/oder Elemente einer jeden Ausführungsform einzeln oder in Kombination mit einer bzw. mehreren anderen Ausführungsformen und Schritten oder Elementen aus Verfahren gemäß der vorliegenden Erfindung in einer beliebigen geeigneten Reihenfolge ausgeführt oder durchgeführt werden. Somit wird darauf verwiesen, dass die beigefügten Ansprüche alle derartigen Modifizierungen und Ausführungsformen abdecken sollen, die innerhalb des gedanklichen Wesensgehalts und inhaltlichen Umfangs der vorliegenden Erfindung liegen.