-
Gebiet der Anmeldung
-
Die vorliegende Anmeldung betrifft allgemein eine Rechnersicht-Verarbeitung und insbesondere eine effiziente Klassifizierung von Bildern.
-
Hintergrund
-
Das Gebiet der Rechnersicht erfordert häufig Klassifikatoren, die trainiert sind, Objekte wie Gesichter oder Leute in der Absicht nachzuweisen, Anwendungen bereitzustellen, die mit Leuten oder Objekten der realen Welt wechselwirken. Eine Vielzahl von Klassifikatoren existiert, weil Rechner-Sehvermögenforscher durchweg nach ressourceneffizienten Verfahren zum genauen Lokalisieren und Identifizieren unterschiedlicher Objekte in Bildern streben.
-
Ein bekanntes, in 1 beschriebenes Verfahren einer Identifizierung einer besonderen Klasse von Objekten benutzt Histogramme orientierter Gradienten (HoG) in Verbindung mit Trainingsbildern und einem Lernsystem. HoG ist benutzt worden, um Menschen gegenüber einer Vielzahl von Hintergründen wie Gesichtern, Tieren, Fahrzeugen und anderen Objekten nachzuweisen. Da HoG einen relativ kompakten Referenzdeskriptor benutzt, konnte es erfolgreich in Echtzeit benutzt werden, um Objekte bei einer gleichzeitigen Übertragung und Wiedergabe (Streaming) von Videos zu klassifizieren. Es konnte auch gezeigt werden, einen robusten Nachweis in der Gegenwart von Drehungen, einer Skalierung und Variationen hinsichtlich der Beleuchtungsbedingungen zu ermöglichen.
-
1 veranschaulicht ein auf dem Gebiet zur Klassifizierung von Objekten in Bildern unter Benutzung von HoG in Verbindung mit einem Stützvektormaschinen-(SVM)-Algorithmus (Support Vector Machine-Algorithmus) bekanntes Vorgehen 100 - auf dem Gebiet passend als HoG/SVM bezeichnet. Das beschriebene Vorgehen benutzt die von Dalal und Triggs in ihrer 2005er Veröffentlichung „Histogramme orientierter Gradienten zum Nachweis von Menschen", Internationale Konferenz über Rechnervision und Mustererkennung (International Conference on Computer Vision and Pattern Recognition), Bd. 2, S. 886-893, Juni 2005, das hiermit durch Bezugnahme in seiner Gesamtheit einbezogen wird, identifizierten Parameter.
-
Zuerst werden Gradientenwerte für jedes Pixel innerhalb einer besonderen Zelle berechnet (Schritt 102 in
1). Wie in
2, die das Vorgehen veranschaulicht, gezeigt, wird ein rechteckiges HoG-Nachweisfenster 202 auf einen Teil des Bildes angewandt, das die Pixel in diskrete Zellen 204 unterteilt. Eine HoG-Zelle 204 kann zum Beispiel 8 Pixel auf jeder Seite für insgesamt 64 (8-mal-8) Pixeln pro Zelle 204 umfassen, obwohl größere oder kleinere Zellgrößen in einigen Ausführungen gewählt werden können. Für jede Zelle 204 werden eine Größe und eine Orientierung eines Gradienten berechnet. Eine Vielzahl von Filtern kann angewandt werden, um diese Werte zu berechnen. Zum Beispiel kann die Größe des Gradienten |G| gemäß den Intensitätswerten seiner angrenzenden Pixel in einer Ausführung gegeben sein:
-
Und die Orientierung Θ kann gemäß der Tangente der horizontalen x- und vertikalen y-Intensitäten gegeben sein:
-
Um das Histogramm zu erzeugen, werden die Orientierungswinkel Θ in irgendeine Anzahl von Kästen (Bins) gebrochen. In diesem Beispiel wird der Bereich von 0° bis 180° in neun Kästen, wovon jeweils 20° gebrochen. Jeder Intensitätswert |G| wird zu dem mit seinem Orientierungswinkel Θ verbundenen Kasten addiert (Schritt 104 in 1). Der resultierende HoG-Zellendeskriptor, veranschaulicht als 206 in 2, weist 9 Werte jeweils mit einem Minimum von 0 und einem Maximum von 128 mal dem maximalen Pixelintensitäts-Wert auf.
-
Jeder der Zellendeskriptoren 206 wird dann basierend auf jedem 2-mal-2 Block 208 von vier Zellen in Blockdeskriptoren 210 aggregiert (Schritt 106 in 1). Da jeder Block 208 von Zellen benutzt wird, wird eine Zelle 204 nicht an der Kante des Fensters 202 in vier unterschiedlichen Blöcken 208 erscheinen, und daher wird sein Deskriptor 206 in vier unterschiedlichen Blockdeskriptoren 212 enthalten sein.
-
Jeder Blockdeskriptor 210, enthaltend die Deskriptoren 206 von jeder der vier Zellen 204 in dem Block 208 wird gemäß den Deskriptoren in dem Block normiert (Schritt 108 in 1). Eine Vielzahl von Normierungsalgorithmen kann benutzt werden, von denen viele in der oben angegebenen 2005er Veröffentlichung von Dalal und Triggs diskutiert werden. Das Ergebnis dieses Vorgehens ist ein normierter Blockdeskriptor 202 für jeden Block 208, ein Satz von 36 Datenelemente pro Block repräsentierenden Histogrammdaten. Da die Normierung von den Werten der vier Deskriptoren 206 in einem bestimmten Blockdeskriptor 210 abhängt, können die normierten, einer bestimmten Zelle 206 verbundenen Werte in jedem normierten Blockdeskriptor 212, der die Zelle enthält, unterschiedlich sein.
-
Für ein 64-mal-128 Pixelfenster 202 umfasst der vollständige HoG-Deskriptor 214, der die normierten Blockdeskriptoren 212 repräsentiert, 105 normierte Blöcke von Histogrammdaten: insgesamt 3.780 Datenwerte. Dieser vollständige Deskriptor 214 wird in den SVM-Klassifikator eingespeist (Schritt 110 in 1), welcher zuvor Trainingsbilder gemäß den gleichen Parametern ausgewertet hat. Die Trainingsbilder können jeder geeignete Satz von Trainingsdaten für die ausgewerteten Objekte sein, wie die in der 2005er Veröffentlichung von Dalal und Triggs beschriebenen MIT- und INRIA-Bilddatensätze. Andere öffentlich verfügbare oder private Trainingsdaten können benutzt werden.
-
Die HoG-Berechnung wird durch wiederholtes Abschreiten (Stepping) eines Fensters, 64 Pixel breit mal 128 Pixel hoch in dem veranschaulichten Beispiel, über einen Quellbild-Rahmen und Berechnen des HoG-Deskriptors wie in dem vorangegangenen Abschnitt skizziert durchgeführt. Da die HoG-Berechnung keine intrinsische Wahrnehmung einer Skala enthält und Objekte in mehreren Skalen innerhalb eines Bildes auftreten können, wird die HoG-Berechnung schrittweise und über jedes Niveau einer Skalenpyramide wiederholt.
-
3 veranschaulicht ein Fenster 302, das über jedes Niveau 304 der Skalenpyramide 306 abgeschritten wird. Jedes Niveau 304 stellt eine weiter herunterskalierte Kopie des Bildes dar, das abgetastet (scanned) wird. Der Skalierungsfaktor zwischen jedem Niveau in der Skalenpyramide zwischen einem Niveau und dem nächsten ist gewöhnlich 1,05 oder 1,2. Das Bild wird wiederholt herunterskaliert, bis der skalierte Quell-Rahmen nicht weiter ein vollständiges HoG-Fenster aufnehmen kann.
-
Die geschlossene Form für die Anzahl von Pixeln in der Skalierungspyramide ist gegeben durch einen auf s basierenden Ausdruck. s ist der Skalierungsmultiplikator für die Gesamtzahl von Pixeln in der Skalenpyramide:
-
α ist der zwischen Pyramidenniveaus benutzte Skalierungsfaktor. m = log(W/H)/log(α), wobei W und H die jeweilige Breite oder Höhe des Eingabebild-/Videorahmens sind. Die Gesamtanzahl von zu betrachtenden Pixeln in der Skalierungspyramide ist daher s▪W▪H.
-
Wie man in 2 sieht und in der Berechnung oben gezeigt ist, erzeugt der HoG-Deskriptor für ein System, das 9D Histogramme für jedes der 7-mal-15 4-mal-4 Blöcke in dem Bild benutzt, einen 3,78 kB Deskriptor für jedes 64-mal-128-Fenster, das in dem aufkommenden Bild untersucht wird.
-
Die zum Trainieren derartiger Klassifikatoren benutzten Bilder sind typischerweise rechteckig als ein Nebenprodukt der zum Aufnehmen der Bilder benutzten 2D-Bildsensor-Anordnungen (Arrays). Man füge zu diesem die Einfachheit eines Abschreitens eines rechteckigen Deskriptors über ein rechteckiges Quellbild und Falten hinzu, um eine Passung nachzuweisen, und es ist einfach, zu sehen, warum sich dieses Paradigma etabliert hat. Während einige Objekte wie Möbel in der Tat quadratisch oder rechteckig sein können, sind die meisten Objekte von Interesse beim Klassifizieren nicht einfach durch einfache genetische Formen darstellbar. Daher ist ein rechteckiges Referenzbild eine schlechte Anpassung für derartige Objekte. Eine Benutzung eines rechteckigen Referenzbildes bedeutet in der Tat, dass bedeutende zusätzliche Arbeit getan werden muss, um die Pixel zu falten, die für die Anpassungsaufgabe nicht relevant sind, und diese Pixel ferner bedeuten, dass ein Teil des Hintergrunds, der das Objekt von Interesse umgibt, in dem zur Anpassung der Bilder benutzten Deskriptor abgetastet (aliased) wird, wobei somit die Genauigkeit der Anpassungsoperation durcheinandergebracht und herabgesetzt wird.
-
Die Rechenkosten jedes HoG-Datensatzes sind sehr groß. Eine Abschätzung ist von Dziri, Chevobb und Darouich in ihrer 2013-Veröffentlichung gemacht „Gestenerkennung auf einer feinen Kamera“, CEA LIST - Embedded Computing Laboratory, 2013. Um zum Beispiel ein HoG auf einen 42-mal-42-Pixelbereich von Interesse anzuwenden, sind die folgenden Operationen erforderlich: 11.664 Additionen, 1.296 Multiplikationen, 5.200 Divisionen, 16 Quadratwurzeln und 5.184 Arkustangens. Die Berechnung erfordert zahlreiche aufwendige und komplexe mathematische Operationen wie Division, Quadratwurzel und Arkustangens, was mehrere Zyklen einnimmt, um auf einem konventionellen, sequentiellen Prozessor in Software ausgeführt zu werden. Die Berechnung erfordert ebenso große Zahlen von allgemeineren mathematischen Operationen wie Addition und Multiplikation, die normalerweise in so wenig wie einem Taktzyklus ausführbar sind. Die Rechenkosten legen sich durch die Tatsache bei, dass ein Ausführen einer erschöpfenden Suche durch ein Abschreiten einer HoG-Schablone zum Vergleich über das gesamte Bild abhängig von der Auflösung des Eingangsbildes rechnerisch noch teurer ist. In Szenarios, in denen Objekte in einem Abstandsbereich gesehen werden können, ist es ferner häufig notwendig, nach Anwärterfenstern unterschiedlicher Größen zu suchen, wobei die Rechenkosten weiter ansteigen.
-
HoG/SVM ist eine sehr kostspielige Operation. Viele Optimierungen von einer Änderung des Skalierungsfaktors zur Modifizierung der Blockgröße, in welcher das HoG-Fenster über das skalierte Quell-Bild abgeschritten wird, können benutzt werden, um den Suchraum zu beschneiden und damit den Rechenaufwand zu begrenzen. Diese kombinierten Faktoren bedeuten, dass sich eine robuste Echtzeit-HoG auf Desktop-Systeme hoher Anforderung, die Rechenvorgänge an eine universelle Hochleistungsprozessoreinheit (High Performance Generell Processing Unit) (GPU) ablädt, beschränkt. Dieses treibt die Stromkosten weit hinter die Grenzen von mobilen Bauelementen wie Telefonen, Tablet-Computern und mobilen Robotern.
-
Während es möglich ist, ein Ganzbild teilabzutasten und einen Bereich von Optimierungen für mobile Plattformen auszuführen, wird damit oft ein großer Verlust hinsichtlich einer Passungsgenauigkeit erreicht, wodurch die mobile Ausführung von sehr begrenztem Nutzen erbracht wird. Nichtsdestotrotz sind weitere Optimierungen zur Begrenzung der Rechenausgaben von HoG-Prozessen erwünscht.
-
Zusammenfassung
-
Gemäß dem offenbarten Gegenstand sind Systeme und Verfahren zur Bildklassifizierung unter Benutzung einer HoG in Verbindung mit einem Trainer vorgesehen. Die Leistungsfähigkeit des Vorgehens wird bedeutend gesteigert durch zuerst eine Einrichtung einer Bitmusters (Bit Map), das einen Untersatz von Pixeln in dem HoG-Fenster als relevante Vordergrundinformation enthaltend identifiziert, und Begrenzen des HoG-Berechnungs- und Vergleichsvorgehens auf lediglich die in dem Bitmuster enthaltenen Pixel.
-
Die offenbarten Ausführungsformen enthalten ein Computer-implementiertes Verfahren zur Bildklassifizierung. Das Verfahren umfasst: Erzeugen einer nicht-rechteckigen, einen relevanten Teil eines Bildfensters repräsentierenden Silhouette aus einem Satz von Trainingsbildern, Erzeugen eines nicht-rechteckigen, weniger als alle der Zellen innerhalb eines rechteckigen Nachweisfensters identifizierenden Bitmusters (Bitmap) aus der Silhouette, wobei das rechteckige Nachweisfenster eine vorbestimmte Zellenbreite und Zellenhöhe aufweist, Empfangen eines Bildes zur Klassifizierung, welches Bild eine Zellenbreite und eine Zellenhöhe enthält, Anwenden des rechteckigen Nachweisfensters auf einen Teil des die Zellenbreite und Zellenhöhe des rechteckigen Nachweisfensters aufweisenden Bildes, wobei das Anwenden des Nachweisfensters ein Identifizieren von Zellen innerhalb des Bildteils enthält, die zu den identifizierten Zellen des nicht-rechteckigen Bitmusters passen, für jede der identifizierten Zellen innerhalb des Bildteils Erzeugen eines Histogramms von Orientierungen der Pixel innerhalb der Zelle, Festlegen von überlappenden Zellblöcken, wobei jeder Zellblock eine Vielzahl von benachbarten, identifizierten Zellen aus dem Bildteil aufweist, für jeden Zellblock Erzeugen eines Deskriptors, enthaltend ein Histogramm für jede der identifizierten Zellen in dem Zellblock, wobei jedes Histogramm innerhalb des Deskriptors auf all die Histogramme innerhalb des Deskriptors normiert wird und Auswerten der erzeugten Deskriptoren gegenüber dem Satz von Trainingsbildern, um zu bestimmen, ob der Bildteil als eine dem Satz der Trainingsbilder zugeordnete Klasse eines Objekts enthaltend identifiziert wird.
-
In einigen Ausführungsformen umfasst das Verfahren weiter: Neu-Skalierung des Bildes auf eine unterschiedliche Zellbreite und Zellhöhe und Anwenden des rechteckigen Nachweisfensters auf einen Teil des neu-skalierten Bildes mit der Zellbreite und Zellhöhe des rechteckigen Nachweisfensters.
-
In einigen Ausführungsformen umfasst das Verfahren weiter ein Erzeugen der nicht-rechteckigen Silhouette durch eines von Mitteln des Satzes von Trainingsbildern, Anwenden eines Rechnersehvermögen-Algorithmus (computer vision algorithm) oder Anwenden einer gründlichen Lernens, um den relevanten Teil des Bildfensters zu bestimmen.
-
In einigen Ausführungsformen umfasst das Verfahren weiter ein Erzeugen der nicht-rechteckigen Silhouette durch: Bestimmen von Intensitätswerten von allen Pixeln in jeder Position für jedes Trainingsbild aus dem Satz der Trainingsbilder, Hinzufügen der Intensitätswerte von all den Pixeln für jede Position aus dem Satz der Trainingsbilder, um resultierende Werte zu erzeugen und Teilen der resultierenden Werte für jede Position aus dem Satz der Trainingsbilder mit einer Anzahl von Trainingsbildern aus dem Satz der Trainingsbilder.
-
In einigen Ausführungsformen umfasst das Verfahren weiter für jede der identifizierten Zellen innerhalb des Bildteils ein Erzeugen eines Histogramms von Orientierungen der Pixel innerhalb der Zelle durch: Berechnen von Gradienten, von denen jeder eine Größe und eine entsprechende Orientierung aufweist, Zuordnen jeder entsprechenden Orientierung zu einem einer Vielzahl von Kästen und Hinzufügen jeder Größe zu dem einen der Vielzahl von der entsprechenden Orientierung zugeordneten Kästen.
-
In einigen Ausführungsformen umfasst das Verfahren weiter ein Vorsehen jedes Zellblocks als einen 2-mal-2 der benachbarten, identifizierten Zellen aus dem Bildteil.
-
In einigen Ausführungsformen umfasst das Verfahren weiter für jede der identifizierten Zellen in dem Zellenblock für jeden Zellenblock ein Erzeugen eines Deskriptors durch ein Verknüpfen des Histogramms.
-
In einigen Ausführungsformen umfasst das Verfahren weiter ein Bestimmen, dass die Klasse des Objekts eine ist von: einer Person, eines Gesichts, einer nicht-rechteckigen geometrischen Form oder einer nicht-geometrischen Form.
-
Die offenbarten Ausführungsformen enthalten eine Recheneinrichtung zur Bildklassifizierung. Die Recheneinrichtung umfasst einen zum Speichern eines Satzes von Trainingsbildern konfigurierten Speicher, eine nicht-rechteckige Silhouette, die einen relevanten Teil eines Bildfensters aus dem Satz der Trainingsbilder repräsentiert, und ein nicht-rechtwinkliges Bitmuster (Bitmap), das weniger als alle der Zellen innerhalb eines rechteckigen Nachweisfensters identifiziert, wobei das rechteckige Nachweisfenster eine vorbestimmte Zellenbreite und Zellenhöhe aufweist. Die Recheneinrichtung umfasst auch eine mit dem Speicher verbundene Hardware-Beschleunigungsvorrichtung, welche Hardware-Beschleunigungsvorrichtung konfiguriert ist: ein Bild zur Klassifizierung als Eingabe zu empfangen, wobei das Bild eine Zellbreite und Zellhöhe enthält, das gespeicherte rechtwinklige Nachweisfenster auf einen Teil des Bilds mit der Zellbreite und der Zellhöhe des rechteckigen Nachweisfensters durch Identifizieren von Zellen innerhalb des Bildteils, die zu den identifizierten Zellen des nicht-rechteckigen Bitmusters passen, anzuwenden, für jede der identifizierten Zellen innerhalb des Bildteils ein Histogramm von Orientierungen der Pixel innerhalb der Zelle zu erzeugen und zu speichern und überlappende Zellblöcke festzulegen, wobei jeder Zellblock eine Vielzahl von benachbarten, identifizierten Zellen aus dem Bildteil aufweist. Die Recheneinrichtung umfasst ebenso einen mit der Hardware-Beschleunigungsvorrichtung und dem Speicher verbundenen Prozessor, welcher Prozessor konfiguriert ist: für jeden Zellblock einen Deskriptor enthaltend ein Histogramm für jede der identifizierten Zellen in dem Zellblock zu erzeugen, wobei jedes Histogramm innerhalb des Deskriptors auf alle der Histogramme innerhalb des Deskriptors normiert ist, und die erzeugten Deskriptoren gegenüber dem gespeicherten Satz von Trainingsbildern zu bewerten, um zu bestimmen, ob der Bildteil als eine dem Satz von Trainingsbildern zugeordnete Klasse eines Objekts enthaltend zu identifizieren ist. Der Speicher, die Hardware-Beschleunigungsvorrichtung und/oder der Prozessor können weiter konfiguriert sein, irgendeine und alle der mit Bezug auf jedes der obigen Ausführungsformen beschriebenen Schritte auszuführen.
-
Die offenbarten Ausführungsformen enthalten ein nicht-flüchtiges computerlesbares Medium. Das nicht-flüchtige computerlesbare Medium weist ausführbare Befehle auf, die betriebsfähig sind, eine Datenverarbeitungs-Einrichtung zu veranlassen: aus einem Satz von Trainingsbildern eine nicht-rechteckige Silhouette zu erzeugen, die einen relevanten Teil eines Bildfensters repräsentiert, aus der Silhouette ein nicht-rechteckiges Bitmuster zu erzeugen, das weniger als alle der Zellen innerhalb eines rechteckigen Nachweisfensters identifiziert, wobei das rechteckige Nachweisfenster eine vorbestimmte Zellbreite und Zellhöhe aufweist, ein Bild zur Klassifizierung zu empfangen, wobei das Bild eine Zellbreite und eine Zellhöhe aufweist, das rechteckige Nachweisfenster auf einen Teil des Bildes mit der Zellbreite und der Zellhöhe des rechteckigen Nachweisfensters durch Identifizieren von Zellen innerhalb des Bildteils, die zu den identifizierten Zellen des nicht-rechteckigen Bitmusters passen, anzuwenden, für jede der identifizierten Zellen innerhalb des Bildteils ein Histogramm von Orientierungen der Pixel innerhalb der Zelle zu erzeugen, überlappende Zellblöcke festzulegen, wobei jeder Zellblock eine Vielzahl von benachbarten, identifizierten Zellen aus dem Bildteil aufweist, für jeden Zellenblock einen Deskriptor enthaltend ein Histogramm für jede der identifizierten Zellen in dem Zellenblock zu erzeugen, wobei jedes Histogramm innerhalb des Deskriptors auf alle der Histogramme innerhalb des Deskriptors normiert ist, und die erzeugten Deskriptoren gegenüber dem Satz von Trainingsbildern zu bewerten, um zu bestimmen, ob der Bildteil als eine dem Satz der Trainingsbilder zugeordnete Klasse eines Objekts enthaltend zu identifizieren ist. Die ausführbaren Befehle können weiter betriebsfähig sein, um die Datenverarbeitungs-Einrichtung zu veranlassen, irgendeine und alle der mit Bezug auf irgendeine der obigen Ausführungen beschriebenen Schritte auszuführen.
-
Die vorliegende Erfindung wird nun detaillierter mit Bezug auf besondere Ausführungsformen davon wie in den begleitenden Zeichnungen gezeigt beschrieben werden. Während die vorliegende Offenbarung nachfolgend mit Bezug auf die besonderen Ausführungen beschrieben wird, sollte man verstehen, dass die vorliegende Offenbarung nicht darauf beschränkt ist. Die Durchschnittsfachleute mit Zugang zu den Lehren hierin werden zusätzliche Realisierungen, Modifikationen und Ausführungsformen als auch andere Anwendungsfelder erkennen, die innerhalb des Umfangs der vorliegenden Offenbarung wie hierin beschrieben liegen und mit Bezug auf welche die vorliegende Offenbarung von bedeutender Nützlichkeit sein kann.
-
Figurenliste
-
Unterschiedliche Aufgaben, Merkmale und Vorteile des offenbarten Gegenstands können vollständiger mit Bezug auf die folgende detaillierte Beschreibung des offenbarten Gegenstands verstanden werden, wenn sie in Verbindung mit den folgenden Zeichnungen betrachtet werden, in denen gleiche Bezugszeichen gleiche Elemente bezeichnen. Die begleitenden Figuren sind schematisch und nicht als maßstäblich gezeichnet gemeint. Für Zwecke der Klarheit ist nicht jede Komponente in jeder Figur bezeichnet worden. Noch ist jede Komponente jeder Ausführungsform des offenbarten Gegenstandes gezeigt, wo eine Veranschaulichung nicht notwendig ist, damit Durchschnittsfachleute den offenbarten Gegenstand verstehen.
- 1 ist ein Ablaufdiagramm einer Ausführung eines HoG/SVM-Klassifizierungsvorgehens,
- 2 veranschaulicht eine Ausführung eines HoG/SVM-Vorgehens wie praktiziert bei fehlendem Bitmuster wie auf dem Gebiet bekannt,
- 3 veranschaulicht ein Pyramiden-Skalierungsschema wie auf dem Gebiet bekannt,
- 4 veranschaulicht eine durch Mitteln eines Satzes von Trainingsbildern gemäß Ausführungsformen der vorliegenden Erfindung erzeugte Silhouette,
- 5 veranschaulicht eine Ausführung des HoG/SVM-Vorgehens unter Anwendung eines Bitmusters gemäß Ausführungsformen der vorliegenden Erfindung,
- 6 ist ein eine Ausführung eines HoG/SVM-Klassifizierungsvorgehens gemäß Ausführungsformen der vorliegenden Erfindung beschreibendes Ablaufdiagramm,
- 7 ist ein eine gemäß Ausführungsformen der vorliegenden Erfindung konfigurierte Hardware darstellendes Schema,
- 8 ist ein eine gemäß Ausführungsformen der vorliegenden Erfindung konfigurierte Hardware darstellendes Schema,
- 9 ist ein eine gemäß Ausführungsformen der vorliegenden Erfindung konfigurierte Hardware darstellendes Schema,
- 10 ist ein das Betriebsbitmuster-Steuerprogramm (Scheduler) für ein typisches Bitmuster gemäß Ausführungsformen der vorliegenden Erfindung darstellendes Zeitablauf-Diagramm,
- 11 ist ein eine Ausführung eines HoG/SVM-Klassifizierungsvorgehens gemäß Ausführungsformen der vorliegenden Erfindung beschreibendes Ablaufdiagramm .
-
Detaillierte Beschreibung
-
In der folgenden Beschreibung sind zahlreiche spezifische, die Systeme und Verfahren des offenbarten Gegenstands und der Umgebung, in welcher derartige Systeme und Verfahren gehandhabt werden, etc. betreffende Details dargelegt, um ein eingehendes Verstehen des offenbarten Gegenstands bereitzustellen. Es wird den Fachleuten jedoch offensichtlich werden, dass der offenbarte Gegenstand ohne derartige spezifische Details ausgeübt werden kann und dass gewisse Merkmale, die auf dem Fachgebiet wohlbekannt sind, nicht im Detail beschrieben werden, um eine Verkomplizierung des offenbarten Gegenstandes zu vermeiden. Zusätzlich wird man verstehen, dass die nachfolgenden Beispiele beispielhaft sind und dass beabsichtigt ist, dass es andere Systeme und Verfahren gibt, die innerhalb des Umfangs des offenbarten Gegenstandes sind.
-
Die vorliegende Erfindung macht Gebrauch von bedingter Verarbeitung unter Benutzung eines Bitmusters, das jene Teile eines zum Trainieren eines Klassifikators benutzten Bildes codiert. Das Bitmuster wird durch irgendwelche geeigneten Mittel abgeleitet. Zum Beispiel kann das Bitmuster durch Mitteln der Bilder in einem Trainingsdatensatz abgeleitet werden. Als anderes Beispiel kann das Bitmuster unter Benutzung eines Rechnersehvermögen-Algorithmus oder eines gründlichen Lernens (deep learning) abgeleitet werden, um eine Lage und eine Ausdehnung eines in einem Bild nachzuweisenden Objekts zu bestimmen. Diese Mittel erzeugen eine Silhouette des Objekts, die dann wertuntersucht wird (thresholded), um ein Bitmuster zu erzeugen. Das Bitmuster kann auch die zugrundeliegende, bei den Berechnungen eines Histogramms orientierter Gradienten (HoG) benutzte Blockstruktur in Betracht ziehen.
-
4 veranschaulicht einen Ausdruck mit einer aus dem Mittelwert des in Bezug auf die oben referenzierte 2005er Veröffentlichung von Dalal und Triggs beschriebenen INRIA-Fußgängemachweisbild-Datensatzes erzeugten Silhouette. Der Ausdruck zeigt ein 48-mal-96 Pixelbild 400, das in 4-mal-4 Zellen zu insgesamt 288 Zellen (48/4-mal-96/4 = 12-mal-24 = 288 4-mal-4 Zellen) unterteilt ist. Von den 288 Zellen sind lediglich 92 in der durch Mitteln der Bilder in dem Datensatz erzeugten Vordergrund-Silhouette 402 enthalten, die 32 % (92/288) der Gesamtfläche des Bildes repräsentiert.
-
Die Vordergrund-Silhouette kann in irgendeiner Anzahl von geeigneten Weisen erzeugt werden. Zum Beispiel kann die Silhouette durch Zusammenaddieren der Intensitätswerte all der Pixel in jeder Position innerhalb der Trainingsbilder und dann durch Dividieren der resultierenden Werte durch die Anzahl der Bilder erzeugt werden. Die folgende Veröffentlichung beschreibt „Durchschnittsbilder“, die durch dieses Vorgehen erzeugt werden können:
Jun-Yan Zhu et al., „Durchschnittserforscher: Interaktive Erforschung und Ausrichtung von visuellen Datensammlungen" („Average Explorer: Interactive Exploration and Alignment of Visual Data Collections"), ACM Transactions on Graphics, Bd. 33, Nr. 4, August 2014. Zum Beispiel können die MATLAB-Funktionen imadd() und imdivide() benutzt werden, um diese Funktionen an einem Datensatz auszuführen und das Ergebnis in einer Bitmuster-Datei zur Nachprüfung auszugeben. Der Silhouettenumriss kann automatisch basiered auf dem Ergebnis einer Pixel-über-Pixel-Mittelung des Datensatzes, einer Rechnersehvermögen, eines gründlichen Lernens oder andere geeigneter Mittel oder einer Kombination der Mittel erzeugt werden.
-
Die Silhouette wird dann in ein HoG-Nachweis-Bitmuster 500 wie in 5 gezeigt übertragen, in welchem die Zahlen 502-514 ähnlich denjenigen oben benutzten sind, 202-214, mit Bezug auf das veranschaulichte Vorgehen der 2. Hier sind von den ursprünglichen 128 in dem HoG-Nachweisfenster 502 enthaltenen Zellen lediglich 74 als Vordergrundzellen des Bitmusters 500 enthalten, die 58 % (74/128) der Gesamtfläche des Fensters 502 repräsentieren. Bei einer Erzeugung der Histogrammdaten 506 werden ferner sechs Orientierungskästen von jeweils 30° anstelle von neun Kästen von 20° benutzt, um die Gesamtgröße des vollständigen HoG-Deskriptors 514 zu reduzieren. Während ein Abdecken des Gesamtfensters 502 105 überlappende 2-mal-2-Blöcke erfordert, erfordert ein Abdecken des Bitmusters lediglich 74 von derartigen 2-mal-2-Blöcken 508.
-
Wie in 5 gezeigt enthält der vollständige bHoG-Deskriptor lediglich 1776 Gesamtreferenzwerte (74-mal-24-D), wobei die Größe des Deskriptors mit einem Faktor von 3 verglichen mit dem oben beschriebenen Gesamt-HoG-Deskriptors verringert wird. Diese Deskriptoren werden über SVM oder einen anderen geeigneten Lernalgorithmus mit Referenzbildern verglichen, die in ihrer Größe durch die Silhouette 400 der 4 auf ähnliche Weise reduziert worden sind, wobei ein weiterer Anstieg des Wirkungsgrades hervorgebracht wird.
-
Durch ein Vergleichen lediglich der relevanten Zonen der vorliegenden Bilder mit lediglich relevanten Zonen der Referenzbilder kann eine signifikante Reduktion in Vorgehenskosten und Komplexität realisiert werden. In einem experimentellen Beispiel wurde ein bHoG/SVM-Klassifikator unter Benutzung lediglich solcher Teile der INRIA-Bilddatenbasis, die keine Hintergrundinformation enthalten, und mit einem auf konventionelle Weise trainierten HoG/SVM-Klassifikator verglichen. Die Ergebnisse zeigten eine 75%-Arbeitsbelastungsreduktion unter Benutzung des INRIA-Bildsatzes für einen Fußgängernachweis, auf den oben hingewiesen wurde. Eine ähnliche Arbeitsbelastungsreduktion wurde durch Benutzung des durch F. Flohr und D.M. Gavrila eingeführten Daimler Fußgängersegmentationsbewertungs-Datensatz (Daimler Pedestrian Segmentation Benchmark Dataset) „PedCut: ein iterativer Rahmen für Fußgängersegmentation kombinierend Formmodelle und mehrfache Datenaufrufe", Proc. of the British Machine Vision Conference, Bristol, UK, 2013, gefunden.
-
Die gezeigten Ergebnisse lassen sich unabhängig von übergeordneten Optimierungen anwenden, die gemacht werden können, um die Dimensionalität des Suchraums zu reduzieren, und werden mit Hardware leicht beschleunigt, was zu einer potenziellen 4x Beschleunigung in einem Hardware-beschleunigten bHoG/SVM-Detektor führt, mit entsprechender 4x Reduzierung in Datenspeicherung, Datenbandbreite und Stromverbrauch.
-
6 ist ein eine Ausführung eines hierin beschriebenen HoG/SVM-Klassifizierungsvorgehens beschreibendes Ablaufdiagramm. Das Vorgehen 600 beginnt bei Schritt 602 mit einem zu klassifizierenden Bild. Ein ein willkürlich geformtes Bitmuster einer willkürlich geformten Silhouette enthaltendes Nachweisfenster wird auf einen Teil des Bildes angewendet. Zum Beispiel wird ein rechteckiges, ein nicht-rechteckiges Bitmuster einer nicht-rechteckigen Silhouette enthaltendes Nachweisfenster auf einen Teil des Bildes angewandt. Das Nachweisfenster wird aus Zellen gebildet und hat eine vorbestimmte Zellbreite und Zellhöhe. Das Bitmuster identifiziert weniger als alle der Zellen innerhalb des regulären Nachweisfensters. Die Silhouette und damit das Bitmuster kann irgendeine geeignete willkürliche Form sein, einschließlich irgendeiner geometrischen Form (eine andere als eine rechteckige Form), nicht-geometrischen Form oder einer Kombination von geometrischen oder nicht-geometrischen Formen. Das Anwendungsvorgehen identifiziert lediglich die Zellen innerhalb des Bildteils, die zu den identifizierten Zellen des Bitmusters passen. Danach berechnet das Vorgehen bei Schritt 604 Gradientenwerte (Größen und Orientierungswinkel) für jeden Pixel innerhalb einer identifizierten Zelle innerhalb des Bildteils. Bei Schritt 606 bricht das Vorgehen dann die Orientierungswinkel in eine geeignete Zahl von Kästen auf und addiert jede Größe zu dem ihrer Orientierung zugeordneten Kasten hinzu. Jeder resultierende HoG-Zelldeskriptor wird dann bei Schritt 608 zu Blockdeskriptoren vereinigt. Bei Schritt 610 wird jeder Blockdeskriptor einschließlich seiner Deskriptoren unter Benutzung irgendeines geeigneten Normierungsalgorithmus normiert. Der resultierende vollständige HoG-Deskriptor, der die normierten Deskriptoren repräsentiert, wird dann bei Schritt 110 in den SVM-Klassifikator eingespeist. In Fig. 6 führen Schritte 604, 606, 608, 610 und 612 jeweils ähnliche Funktionen wie oben in Verbindung mit den jeweiligen Schritten 102, 104, 106, 108 und 110 in 1 beschrieben aus, aber lediglich an den Daten, die den identifizierten Zellen des Bitmusters entsprechend der Silhouette entsprechen, wodurch sich Optimierungen, gesteigerte Wirkungsgrade und eine Verringerung von Vorgehenskosten und Komplexität wie oben beschrieben ergeben.
-
7 zeigt einen möglichen Hardwareblock 700 für beschleunigte bHoG-Berechnungen wie hierin beschrieben. Eingaberahmen enthaltend eine Anordnung von Intensitätswerten für eine gegebene Zelle und alle angrenzenden Zellen werden an eine Hardware bHoG-Beschleunigungsvorrichtung 702 gesendet, die Module zum Ausführen aller notwendigen Funktionen zur Berechnung von Gradienten und für eine Erzeugung von Orientierungskästen wie zuvor beschrieben enthält. Gewisse Module können mehrere HoG-Deskriptoren und zugeordnete, in dem Systemspeicher 704 gespeicherte Bitmuster (das heißt bHoG-Deskriptoren) adressieren und modifizieren. Der Rest der Schritte des bHoG/SVM-Vorgehens (Erzeugen von Deskriptor-Blöcken, Blocknormierung und SVM-Klassifizierung von bHoG-Daten) kann von einem VLIW-Prozessor 706 unter Beziehung auf die bHoG-Deskriptoren in dem Systemspeicher 704 ausgeführt werden.
-
In 8 ist ein möglicher Hardwareblock zur Beschleunigung von bHoG-Berechnungen und Histogramm-Zusammenfassen (Binning) gezeigt, wo die Winkelberechnungen durchgeführt werden und in einen Speicher zum nachfolgenden Histogramm-Zusammenfassen in Software gepackt werden. Ein ganzzahliger Divisor 802 dividiert den für jedes Pixel durch die Anzahl von jedem Histogrammkasten zugeordneten Graden berechneten θ-Winkel, um eine Kastenzahl - eine ganze Zahl zwischen 0 und N, wobei N die Anzahl von Histogrammkästen ist - auszugeben. Diese Ausgabe wird dann benutzt, um aus der Vielzahl von Zwischenspeichern 804 in dem bei der nächsten Taktflanke zu aktualisierenden Histogrammblock zu selektieren. Die Gehalte dieser Zwischenspeicher können dann an dem Ende des Blocks der bHoG-Berechnung über eine Speicher-eingeblendete (memory-mapped) Prozessorschnittstelle 806 ausgelesen werden.
-
Diese Hardware kann durch das Hinzufügen eines Bitmap-Steuerprogramms 900 erweitert werden, um zerstreute Bitmuster wie in 9 gezeigt, zu unterstützen. Ein Bitmusterzähler 902 zählt die Anzahl von Bits in dem Bitmuster entsprechend der ausgewählten Zellgröße bis zu einer max_Zählgrenze (max_count) - die Anzahl an Bits in dem Bitmuster entsprechend der ausgewählten Zellgröße. Die Ausgabe des Zählers ist die „Zählung“ und wird benutzt, ein Bit aus der n-Bit-Bitmusteranordnung 904, die über die Bitmustereingabe geladen wird, bevor eine Schaltkreisoperation beginnt, zu suchen. Die Ausgabe des Bitmusteranordnungs-Suchfelds 904 ist die „HoG-Freigabe“-Variable, die benutzt wird, den HoG-Berechnungsblock ebenso wie die Ausgabe der zum Suchen der erforderlichen Pixel für die HoG-Operation im Speicher durch Freigeben des Ausgangs von AND-Gattern 906 und 908 benutzten „X_adr“ und „Y_adr“-Ausgänge zu steuern. Die Eingaben dieser AND-Gatter werden durch Suchen von relativen Adressen „X_rel“ und „Y_rel“ aus einer Nachschlagetabelle 910 erzeugt, die geladen wird, bevor der Schaltkreis eine Operation über die „lut_data“-Eingabe beginnt. Die „X_rel“- und „Y_rel“-Adressen werden zu den „X_base“- und „Y_base“-Eingaben über ein Paar von Addierern 912 und 914 addiert.
-
10 ist ein Zeitablaufdiagramm 1000, welches das Betriebsbitmuster-Steuerprogramm für ein beispielhaftes Bitmuster 1010 darstellt. Ein Bitstrom 1012 ist für das Bitmuster 1010 veranschaulicht, wobei die Bits, welche die erste, auf dem Bitstrom 1012 als eine erste Reihe 1014 markierte Reihe des Bitmusters 1010 repräsentieren. Der Teil des Zeitablaufdiagramms 1000 entsprechend der ersten Reihe 1014 wird als erster Zeitablaufabschnitt 1002 markiert. Wie veranschaulicht wirkt das Zeitsignal „clk“ als ein Taktgeber durch Senden abwechselnder Hoch- und Niedrigsignale wie Uhrschläge. In diesem Zusammenhang werden zahlreiche andere, unterschiedliche Variable repräsentierende Signale gesendet. Vor allem und gemäß dem Blockdiagramm aus 9 wirkt das „HoG_Freigabe“-Signal wie oben beschrieben als eine Maske für die „X_adr“- und „Y_adr“-Signale. Wenn das „HoG_Freigabe“-Signal einen hohen Wert aufweist, entsprechend einem 1 Wert für das „Bitmuster“ an dieser Position, dann wird das „X_adr“-Signal die Summe des „X_rel“- und des „X_base“-Signals sein und das „Y_adr“-Signal wird die Summe der „Y_rel“- und „Y_base“-Signale sein. Wenn das „HoG_Freigabe“-Signal niedrig ist, entsprechend einem 0 Wert für das „Bitmuster“ an dieser Position, werden die „X_adr“- und „Y_adr“-Signale sonst noch ebenfalls niedrig sein (das heißt einen Nullwert oder keinen Wert signalisieren).
-
11 ist eine Ausführung eines hierin beschriebenen HoG/SVM-Klassifizierungsvorgehens beschreibend das Ablaufdiagramm. Das Vorgehen 1100 beginnt bei Schritt 1102, wo das Vorgehen aus einem Satz von Trainingsbildern eine zufällig-geformte (eine solche wie eine nicht-rechteckige) Silhouette, die einen relevanten Teil eines Bildfensters repräsentiert, erzeugt. Bei Schritt 1104 erzeugt das Vorgehen aus der Silhouette ein zufällig-geformtes (ein solches wie ein nicht-rechteckiges) Bitmuster, das weniger als all die Zellen innerhalb eines rechteckigen Nachweisfensters identifiziert, wobei das rechteckige Nachweisfenster eine vorbestimmte Zellbreite und Zellhöhe aufweist. Bei Schritt 1106 empfängt das Vorgehen ein Bild zur Klassifizierung, wobei das Bild eine Zellbreite und Zellhöhe aufweist. Bei Schritt 1108 wendet das Vorgehen das rechteckige Nachweisfenster auf einen Teil des Bildes mit der Zellbreite und der Zellhöhe des rechteckigen Nachweisfensters an. Dies enthält ein Identifizieren von Zellen innerhalb des Bildteils, die zu den identifizierten Zellen des nicht-rechteckigen Bitmusters passen. Bei Schritt 1110 erzeugt das Vorgehen für jede der innerhalb des Bildteils identifizierten Zellen ein Histogramm von Orientierungen der Pixel innerhalb der Zelle. Bei Schritt 1112 legt das Vorgehen überlappende Zellblöcke fest, von denen jeder Zellblock eine Vielzahl von benachbarten, identifizierten Zellen aus dem Bildteil aufweist. Bei Schritt 1114 erzeugt das Vorgehen für jeden Zellblock einen Deskriptor enthaltend ein Histogramm für jede der identifizierten Zellen in dem Zellblock. Jedes Histogramm innerhalb des Deskriptors wird auf alle der Histogramme innerhalb des Deskriptors normiert. Bei Schritt 1116 legt das Vorgehen die erzeugten Deskriptoren gegenüber dem Satz von Trainingsbildern fest, um zu bestimmen, ob der Bildteil als eine dem Satz von Trainingsbildern zugeordnete Klasse eines Objekts enthaltend zu identifizieren ist.
-
Um die mit einer Speicherung eines Bitmusters verbundenen Speicheranforderungen zu minimieren, könnte es unter Benutzung einer Laufzeit-Codierung für jeden Lauf einer in jeder Zeile des Bitmusters komprimiert werden, wenn es als vorteilhaft bestimmt worden ist. In diesem Fall würde ein Hardware- und/oder Software-Laufzeitdecodierer benutzt werden, um das Bitmuster aus der Laufzeit-codierten Version zu rekonstruieren.
-
Man sollte anerkennen, dass, während einige unterschiedliche Anordnungen hierin beschrieben worden sind, die Merkmale jeder davon vorteilhaft miteinander in einer Vielzahl von Formen kombiniert werden können, um einen Vorteil zu erreichen.
-
In der vorangehenden Beschreibung ist die Anmeldung mit Bezug auf spezifische Beispiele beschrieben worden. Jedoch wird klar werden, dass zahlreiche Modifikationen und Änderungen daran gemacht werden können, ohne den weiteren Gedanken und Umfang der Erfindung wie in den angehängten Patentansprüchen dargelegt zu verlassen. Zum Beispiel können Verbindungen irgendeine Art einer Verbindung, die zur Übertragung von Signalen von oder auf jeweilige Knoten, Einheiten oder Einrichtungen, zum Beispiel über Zwischeneinrichtungen, geeignet ist, sein. Entsprechend, wenn nicht impliziert oder anders dargelegt, können Verbindungen z. B. direkte oder indirekte Verbindungen sein.
-
Es versteht sich, dass die hierin gezeigten Architekturen lediglich beispielhaft sind und dass in der Tat viele andere Architekturen verwirklicht sein können, welche die gleiche Funktionalität erreichen. In einer Zusammenfassung, aber noch in einem bestimmten Sinn, ist jede Anordnung von Komponenten zum Erreichen der gleichen Funktionalität wirksam „verbunden bzw. zugeordnet“, sodass die gewünschte Funktionalität erreicht wird. Somit können irgendwelche zwei hierin zum Erreichen einer besonderen Funktionalität kombinierte Komponenten unabhängig von Architekturen oder Zwischenkomponenten als „miteinander verbunden bzw. zugeordnet“ angesehen werden, sodass die gewünschte Funktionalität erreicht wird. Ähnlich können irgendwelche zwei miteinander verbundenen Komponenten auch als „wirkverbunden“ oder „wirkgekoppelt“ zueinander angesehen werden, um die gewünschte Funktionalität zu erreichen.
-
Weiter erkennen die Fachleute, dass Grenzen zwischen der Funktionalität den oben beschriebenen Operationen lediglich veranschaulichend sind. Die Funktionalität der vielfachen Operationen kann zu einer einzelnen Operation kombiniert und/oder die Funktionalität einer einzelnen Operation kann auf zusätzliche Operationen verteilt werden. Vielmehr können alternative Ausführungsformen Mehrfachinstanzen einer besonderen Operation enthalten, und die Reihenfolge der Operationen kann in verschiedenen anderen Ausführungsformen geändert werden.
-
Jedoch sind andere Modifikationen, Variationen und Alternativen ebenso möglich. Die Beschreibungen und Zeichnungen werden entsprechend in einem illustrativen als vielmehr in einem restriktiven Sinne betrachtet.
-
In den Ansprüchen werden alle in Klammern gesetzten Bezugszeichen nicht als den Anspruch limitierend betrachtet. Das Wort „umfassend“ schließt das Vorhandensein anderer Elemente oder Schritte als die in einem Anspruch aufgelisteten nicht aus. Weiter werden die hierin benutzten Ausdrücke „ein“ oder „eine“ als eine oder mehrere definiert. Ebenso sollte die Benutzung von einführenden Phrasen wie „wenigstens ein“ und „ein oder mehrere“ in den Ansprüchen nicht ausgelegt werden, zu besagen, dass die Einführung eines anderen Anspruchselements durch den unbestimmten Artikel „ein“ oder „eine“ irgendeinen einzelnen Anspruch, der ein so eingeführtes Anspruchselement enthält, auf Erfindungen enthaltend lediglich ein solches Element begrenzt, sogar wenn derselbe Anspruch die einführenden Phrasen „ein“ oder „mehrere“ oder „wenigstens ein“ und unbestimmte Artikel wie „ein“ oder „eine“ enthält. Dasselbe gilt für die Verwendung von bestimmten Artikeln. Wenn nicht anders dargelegt, werden die Ausdrücke wie „erste“ und „zweite“ willkürlich benutzt, um zwischen den Elementen, die derartige Ausdrücke beschreiben, zu unterscheiden. Somit sind diese Ausdrücke nicht notwendigerweise beabsichtigt, eine zeitliche oder andere Priorisierung derartiger Elemente anzuzeigen. Die bloße Tatsache, dass gewisse Maßnahmen in gegenseitig unterschiedlichen Ansprüchen zitiert werden, zeigt nicht an, dass eine Kombination dieser Maßnahmen nicht mit Vorteil benutzt werden kann.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Nicht-Patentliteratur
-
- „Histogramme orientierter Gradienten zum Nachweis von Menschen", Internationale Konferenz über Rechnervision und Mustererkennung (International Conference on Computer Vision and Pattern Recognition), Bd. 2, S. 886-893, Juni 2005 [0004]
- Jun-Yan Zhu et al., „Durchschnittserforscher: Interaktive Erforschung und Ausrichtung von visuellen Datensammlungen“ („Average Explorer: Interactive Exploration and Alignment of Visual Data Collections“), ACM Transactions on Graphics, Bd. 33, Nr. 4, August 2014 [0036]
- „PedCut: ein iterativer Rahmen für Fußgängersegmentation kombinierend Formmodelle und mehrfache Datenaufrufe", Proc. of the British Machine Vision Conference, Bristol, UK, 2013 [0039]