-
Die vorliegende Erfindung betrifft ein Verfahren zum Klassifizieren eines Objekts, beispielsweise eines Verkehrsschildes, in einem Bild sowie eine entsprechende Vorrichtung zum Analysieren eines Objekts in einem Bild. Die Erfindung betrifft ferner ein Fahrerassistenzsystem zum Versorgen eines Fahrers eines Fahrzeugs mit Informationen über klassifizierte Verkehrsschilder.
-
Verfahren und Vorrichtungen zum Klassifizieren eines Objekts in einem Bild, d. h. Identifizieren, zu welcher aus einer vordefinierten Menge von Klassen (d. h. Kategorien) das Objekt gehört, werden in verschiedenen technischen Bereichen verwendet. Zum Beispiel wird die Objektklassifikation auf dem Gebiet des Maschinensehens verwendet. Beispielsweise können moderne Fahrerassistenzsysteme mit Verkehrsschilderkennungstechnologie ausgestattet sein und dazu eingerichtet sein, Verkehrsschilder in einer Umgebung eines Fahrzeugs zu detektieren und zu klassifizieren, um den Fahrer beim Erkennen der auf den Verkehrsschildern gezeigten Informationen zu unterstützen. Bekannte Probleme mit solchen Systemen betreffen jedoch ihre Robustheit und Effizienz, beispielsweise aufgrund der komplizierten Informationen auf dem Verkehrsschild oder aufgrund von Problemen im Zusammenhang mit Bildrauschen.
-
Zum Beispiel beschreibt die Veröffentlichung
WO 2013/152929 A1 ein Verfahren, bei dem der Fahrzeugfahrer in die Verbesserung der Fähigkeit des Systems zur Verkehrsschilderkennung einbezogen wird, indem dem System eine Lerneinheit hinzugefügt wird. Der Fahrer kann somit dem System eine Rückmeldung geben, welches dann seine Parameter aktualisiert, um seine Verlässlichkeit zu verbessern. Jedoch vergrößert eine Lerneinheit signifikant die rechnerischen und die Datenspeicherung betreffenden Anforderungen an das System.
-
Die Veröffentlichung
DE 10 2012 023 022 A1 offenbart ein Verfahren und System zum Erkennen von in Bilddaten erscheinendem Text und zum Berechnen einer Wahrscheinlichkeit, dass Wörter, Zahlen oder Abkürzungen in dem Text in Verkehrsschildern enthalten sind. Das System zielt darauf ab, falsch erkannte Kandidaten zu verwerfen, um den Fahrer mit verlässlicheren Informationen zu versorgen. Jedoch wird Texterkennung immer durch die Unterschiede zwischen verschiedenen Schrifttypen beeinträchtigt, was dazu führen kann, dass sie nicht ausreichend robust ist.
-
-
Die Veröffentlichung CHOUDHARY, Amit; RISHI, Rahul; AHLAWAT, Savita. Unconstrained Handwritten Digit OCR Using Projection Profile and Neural Network Approach. In: Proceedings of the International Conference on Information Systems Design and Intelligent Applications 2012 (INDIA 2012), January 2012. Springer, Berlin, Heidelberg, 2012. S. 119;126 lehrt zur Klassifizierung und Erkennung von Zahlen die Anwendung von Projektionsprofilen als Merkmalsvektoren für ein neuronales Netzwerk. Eine Aufbereitung des Projektionsprofils zur Reduzierung der Wertemenge der Merkmalsvektoren wird nicht beschrieben.
-
Der Zweck der vorliegenden Erfindung ist es, ein Verfahren und eine Vorrichtung zum Klassifizieren eines Objekts, beispielsweise eines Verkehrsschildes, in einem Bild vorzuschlagen, die robust und schnell sind und die nur relativ wenig Speicherplatz benötigen.
-
Dieses Problem wird durch ein Verfahren zum Klassifizieren eines Objekts in einem Bild gemäß Anspruch 1 und durch eine Vorrichtung zum Analysieren eines in einem Bild enthaltenen Objekts gemäß Anspruch 9 gelöst. Besondere Ausführungsbeispiele der Erfindung sind Gegenstände der abhängigen Ansprüche.
-
Das vorgeschlagene Verfahren zum Klassifizieren eines Objekts in einem Bild umfasst die folgenden Schritte:
- - Definieren eines Bildbereichs, der innerhalb des Objekts in dem Bild angeordnet ist,
- - Zerlegen des Bildbereichs in ein Feld (Array) von Teilbereichen,
- - Definieren eines Feldes von aggregierten Pixelwerten, indem für jeden der Teilbereiche ein aggregierter Pixelwert des jeweiligen Teilbereichs berechnet wird,
- - Berechnen eines Gradientenfeldes in Abhängigkeit von Differenzen zwischen den aggregierten Pixelwerten benachbarter Teilbereiche,
- - Analysieren des Gradientenfeldes,
- - Identifizieren des Objekts in Abhängigkeit von einem Resultat des Analyseschrittes als zugehörig zu einer Klasse aus einer vordefinierten Menge von Klassen.
-
Gemäß dem vorgeschlagenen Verfahren werden die Pixelwerte der Pixel (Bildpunkte) in dem Bildbereich für jeden der Teilbereiche aggregiert, um die Menge von Bilddaten für die weitere Analyse zu reduzieren, ohne jedoch zu viele nützliche Bildinformationen zu verlieren. Es wurde festgestellt dass die Informationen, die in dem Gradientenfeld enthalten ist, das auf Grundlage des Feldes der aggregierten Pixelwerte definiert ist, noch ausreichend ist, um für die Klassifikation des Objekts nützlich zu sein. Tatsächlich kann, wie weiter unten beschrieben wird, der Analyseschritt des Gradientenfeldes Schritte umfassen, die die Informationen, die in dem Gradientenfeld enthalten ist, sogar noch weiter reduzieren.
-
Das Bild ist typischerweise ein digitales Bild, das durch Bilddaten definiert ist. Jeder Pixel des Bildes kann zum Beispiel einen Pixelwert haben, wie etwa einen Helligkeitswert und/oder einen Farbwert. Zu Beginn kann das Bild (d. h. die Bilddaten) optional vorverarbeitet werden, beispielsweise durch die Anwendung eines Skalierungsalgorithmus und/oder durch die Anwendung eines Farbtransformationsalgorithmus auf die Bilddaten. Zusätzlich oder alternativ kann die Vorverarbeitung des Bildes die Anwendung eines Rauschunterdrückungsalgorithmus zur Reduktion von Rauschen in den Bilddaten beinhalten.
-
Um den oben genannten Bildbereich zu definieren, kann es notwendig sein, zuerst das Objekt in dem Bild zu detektieren und/oder zu orten. Folglich kann das Verfahren die Anwendung eines Algorithmus zum Detektieren und/oder Orten des Objekts in dem Bild beinhalten. Zum Zweck des Definierens des Bildbereichs kann es ausreichen, einen äußeren Rand des Objekts in dem Bild aufzufinden. Beispielsweise kann der Bildbereich so definiert sein, dass er innerhalb eines Bereichs, der durch einen äußeren Rand des Objekts in dem Bild definiert ist, angeordnet ist.
-
Typischerweise ist das Feld der Teilbereiche so definiert, dass jeder Teilbereich nicht mehr als zwei benachbarte Teilbereiche hat. Entsprechend kann das Gradientenfeld als ein lineares oder eindimensionales Feld definiert sein. In dem Schritt des Zerlegens des Bildbereichs in die Teilbereiche kann jeder der Teilbereiche beispielsweise mit einem Index n gelabelt sein, wobei 1 ≤ n ≤ N, wobei N die Gesamtzahl der Teilbereiche bezeichnet und wobei zwei benachbarte Teilbereiche aufeinanderfolgende Indizes haben, d. h. zum Beispiel die Indizes n und n + 1. Der Schritt des Definierens des Feldes der aggregierten Pixelwerte kann also im Grunde ein Schritt des Definierens eines Vektors von aggregierten Pixelwerten und des Zuordnens der aggregierten Pixelwerte der Teilbereiche zu den Komponenten des Vektors der aggregierten Pixelwerte sein. Dann hat der Vektor der aggregierten Pixelwerte typischerweise N Komponenten, so dass es eine 1:1-Korrespondenz zwischen diesen Vektorkomponenten und den Teilbereichen gibt. Vorzugsweise sind die Komponenten des Vektors der aggregierten Pixelwerte so geordnet, dass die n-te Komponente dieses Vektors mit dem n-ten Teilbereich korrespondiert. Das Gradientenfeld kann in diesem Fall ein Gradientenvektor mit N-1 Komponenten sein, wobei seine Komponenten so geordnet sein können, dass die n-te Komponente des Gradientenvektors definiert ist als die Differenz zwischen dem n-ten und dem (n + 1)-ten Teilbereich (oder als die Differenz zwischen der n-ten und der (n + 1)-ten Komponente des Vektors der aggregierten Pixelwerte). Allgemeiner kann das Gradientenfeld erhalten werden, indem für jedes Paar benachbarter Teilbereiche der oben genannten Teilbereiche des Bildbereichs eine Differenz zwischen den aggregierten Pixelwerten für das jeweilige Paar von Teilbereichen berechnet wird. Die so erhaltenen Differenzen können den verschiedenen Indizes des Gradientenvektors zugeordnet werden, so dass die Komponenten des Gradientenfeldes als jene Differenzen definiert sind. Natürlich können die Differenzen auch unter Verwendung eines konstanten oder wohldefinierten Faktors gewichtet sein.
-
Die aggregierten Pixelwerte der Teilbereiche können erhalten werden, indem die Pixelwerte der Pixel, die in den jeweiligen Teilbereichen enthalten sind, summiert werden, d. h. durch Addieren der Pixelwerte aller in dem Teilbereich enthaltenen Pixel. Alternativ kann auch eine gewichtete Summe verwendet werden.
-
Das Verfahren kann insbesondere zum Klassifizieren von Verkehrsschildern verwendet werden oder zum Prüfen, ob das Objekt ein Verkehrsschild ist und/oder ob es zu einer bestimmten Art von Verkehrsschildern gehört. Mit anderen Worten kann das Objekt in dem Bild ein Verkehrsschild oder ein Kandidat für ein Verkehrsschild sein, wobei die vordefinierte Menge von Klassen eine Menge von Klassen von Verkehrsschildern oder mindestens eine Klasse von Verkehrsschildern enthält. Eine der Klassen kann die Klasse aller anderen Objekte sein, d. h. aller Objekte, die keine Verkehrsschilder sind oder die nicht zu einer bestimmten Klasse von Verkehrsschildern gehören.
-
Das Verfahren erweist sich als besonders nützlich, wenn die Klasse von Verkehrsschildern mindestens eine Klasse von Geschwindigkeitsbegrenzungsschildern umfasst, wobei jedes der Geschwindigkeitsbegrenzungsschilder dieser Klasse eine einstellige Zahl oder eine zwei- oder dreistellige Zahl anzeigt. Für gewöhnlich wird die Klasse der Geschwindigkeitsbegrenzungsschilder nur zwei- oder dreistellige Zahlen beinhalten, wobei die letzte Stelle dieser Zahl typischerweise null oder in manchen Fällen null oder fünf ist. Falls diese Klasse dreistellige Zahlen beinhaltet, ist eine erste der dreistelligen Zahlen typischerweise eins. Dies macht es leicht ein Objekt als zu dieser Klasse zugehörig zu identifizieren, indem einfach das Gradientenfeld analysiert wird. Konkret heißt dies, dass ein jedes Geschwindigkeitsbegrenzungsschild dieser Klasse zum Beispiel eine aus der folgenden Menge von Zahlen anzeigen kann: „10“, „20“, „30“, „40“, „50“, „60“, „70“, „80“, „90“, „100“, „110“, „120“, „130“ und „140“.
-
Das Verfahren kann außerdem das Analysieren des Objekts umfassen, um die auf diesem Geschwindigkeitsbegrenzungsschild angezeigte Zahl zu identifizieren, falls das Objekt als zu der mindestens einen Klasse von Geschwindigkeitsbegrenzungsschildern zugehörig identifiziert ist. Dies ist insbesondere nützlich, falls die Klasse oder irgendeine der Klassen der Geschwindigkeitsbegrenzungsschilder mehr als ein Geschwindigkeitsbegrenzungsschild umfasst, um die tatsächliche Geschwindigkeitsbegrenzung zu ermitteln, die durch die Zahl auf dem Schild dargestellt ist. Dies kann durch ein Verfahren der gleichen Art erfolgen wie das hier beschriebene Klassifizierungsverfahren, unter Verwendung verschiedener Definitionen für die Klassen, den Bildbereich, die Teilbereiche und/oder den Analyseschritt. Alternativ können andere bekannte Bildverarbeitungsverfahren zum Lesen der Geschwindigkeitsbegrenzung verwendet werden.
-
In diesem Zusammenhang soll erwähnt werden, dass ein weiterer Bildverarbeitungsschritt vor den Schritten des hier beschriebenen Klassifizierungsverfahrens ausgeführt werden kann, um das zu klassifizierende Objekt als einen Kandidaten für ein Verkehrsschild zu finden. Dies kann beispielsweise mittels eines Kreisdetektionsalgorithmus durchgeführt werden. Das Verfahren kann folglich einen Schritt des Detektierens und/oder Ortens von Verkehrsschildern oder Kandidaten für Verkehrsschildern in dem Bild umfassen, die dann mittels der Schritte des vorgeschlagenen Klassifizierungsverfahrens klassifiziert werden.
-
In typischen Ausführungsbeispielen ist oder umfasst der Bildbereich ein horizontales Band. Dieses Band kann beispielsweise rechteckig sein. Alternativ kann der Bereich eine kreisförmige oder eine elliptische oder eine vollständig andere Form haben. Es kann hilfreich sein, wenn der Bildbereich so definiert ist, dass er sich über mindestens 50 % einer Gesamtbreite des Objekts - d. h. 50 % eines durch das Objekt definierten Bereichs - erstreckt und/oder dass eine Höhe des Bildbereichs weniger als 20 % einer Gesamthöhe des Objekts ist und/oder dass der Bildbereich ein Zentrum des Objekts in dem Bild enthält Die Teilbereiche des Bildbereichs können beispielsweise als vertikale Streifen definiert werden. Normalerweise haben diese Streifen alle die gleiche Größe. Alternativ kann der Bereich in Streifen verschiedener Größe und/oder Orientierung geschnitten werden, wobei jeder der Streifen als einer der Teilbereiche definiert wird.
-
Abhängig von dem jeweiligen Objekt in dem Bild und von der Definition des Bildbereichs und der Klassen können ein oder mehr charakteristische Merkmale in dem Bildbereich in Abhängigkeit davon auftreten, ob das Objekt zu einer bestimmten Klasse gehört oder nicht. Wenn eines dieser Merkmale in dem Bildbereich vorhanden ist, manifestiert es sich auch in dem Feld der aggregierten Pixelwerte und in dem Gradientenfeld, so dass es durch Analysieren des Gradientenfeldes festgestellt werden kann. Das Vorkommen eines oder mehrerer dieser Merkmale in dem Bildbereich kann somit als ein Indikator für die Zugehörigkeit des jeweiligen Objekts in dem Bild zu einer oder mehreren der Klassen der vordefinierten Menge von Klassen verwendet werden.
-
Um charakteristische Merkmale des Objekts in dem Bild zu finden, umfasst der Analyseschritt ein Vergleichen von Gradientenwerten des Gradientenfeldes mit mindestens einem Schwellenwert, das Definieren eines Merkmalfeldes durch Abbilden der Gradientenwerte auf eine kleinere Menge von Werten in Abhängigkeit davon, ob der jeweilige Wert des Gradientenfeldes größer oder kleiner als der mindestens eine Schwellenwert ist, und das Analysieren des Merkmalfeldes. Dies kann beispielsweise unter Verwendung eines positiven und eines negativen Schwellenwerts erfolgen, wobei die kleinere Menge von Werten nur aus drei verschiedenen Werten besteht, wobei einer von ihnen (z. B. +1) Gradientenwerte repräsentiert, die größer als der positive Schwellenwert sind, einer von ihnen (z. B. -1) Gradientenwerte repräsentiert, die kleiner als der negative Schwellenwert sind, und einer von ihnen (z. B. 0) alle anderen Gradientenwerte repräsentiert. Zusätzlich oder alternativ können Positionen lokaler Maxima oder Minima des Gradientenfeldes bestimmt und zum Analysieren des Gradientenfeldes verwendet werden.
-
In jedem Fall kann der Analyseschritt das Vergleichen von Merkmalen des Gradientenfeldes mit einer vordefinierten Menge von Merkmalen umfassen.
-
Typischerweise erfolgt dies, indem das Merkmalfeld und/oder die Position lokaler Maxima oder Minima des Gradientenfeldes mit Referenzdaten verglichen werden.
-
Die vordefinierte Menge von Merkmalen kann aus Ground-Truth-Daten unter Verwendung einer Trainingsmenge von Objekten gewonnen werden. Die Trainingsmenge von Objekten kann beispielsweise Verkehrsschilder einschließlich Geschwindigkeitsbegrenzungsschildern der oben genannten Art umfassen.
-
In dem typischen Beispiel des Identifizierens von Geschwindigkeitsbegrenzungsschildern können die charakteristischen Merkmale des Bildbereichs zwei erste Regionen umfassen, die aus Pixeln mit großen Pixelwerten bestehen, wobei jede der beiden ersten Regionen eine vordefinierte erste Breite hat, und eine zweite Region, die zwischen den beiden ersten Regionen angeordnet ist und eine vordefinierte zweite Breite aufweist, die größer als die erste Breite ist, wobei die zweite Region aus Pixeln mit kleinen Pixelwerten besteht, wobei die beiden ersten Regionen und die zweite Region in einer rechten Hälfte des Bildbereichs gefunden werden. Diese charakteristischen Merkmale können ein Indikator dafür sein, dass das Objekt ein Verkehrsschild ist, das eine „0“ in der rechten Hälfte anzeigt, was ein Hinweis darauf ist, dass das Verkehrsschild zu der Klasse der Geschwindigkeitsbegrenzungsschilder gehört.
-
Diese charakteristischen Merkmale können sich beispielsweise wie folgt in dem Gradientenfeld manifestieren. Zwei ersten Folgen von Komponenten des Gradientenfeldes (entsprechend den oben genannten beiden ersten Regionen) werden gesehen, wobei am Anfang einer jeden dieser beiden ersten Folgen es mindestens eine Komponente des Gradientenfeldes gibt, die einen großen positiven Gradientenwert (beispielsweise oberhalb eines vordefinierten positiven Schwellenwerts) hat und die zu einem lokalen Maximum des Gradientenfeldes führt, und wobei es am Ende einer jeden dieser beiden ersten Folgen mindestens eine Komponente des Gradientenfeldes gibt, die einen großen negativen Gradientenwert, beispielsweise kleiner als ein vordefinierter negativer Schwellenwert, hat und die zu einem lokalen Minimum des Gradientenfeldes führt, wobei jede der beiden Folgen eine vordefinierte erste Breite hat, und wobei es eine zweite Folge von Komponenten mit kleinen Gradientenwerten (entsprechend der oben genannten zweiten Region) gibt, die zwischen den beiden Folgen angeordnet ist und die eine zweite vordefinierte Breite aufweist, die größer als die erste Breite ist. Die Komponenten der beiden ersten Folgen und der zweiten Folge werden in der rechten Hälfte des Bildbereichs gefunden, wenn der Bildbereich als ein horizontales Band auf einer zentralen Höhe des Objekts oder Verkehrsschildkandidaten definiert ist.
-
Eine nützliche Vorrichtung zum Analysieren eines in einem Bild enthaltenen Objekts kann eine Datenverarbeitungseinheit umfassen, die zum Durchführen der Schritte des oben beschriebenen Verfahrens eingerichtet ist. Insbesondere kann die Datenverarbeitungseinheit dazu eingerichtet sein, die Schritte auszuführen:
- - Definieren eines Bildbereichs, der innerhalb des Objekts in dem Bild angeordnet ist,
- - Zerlegen des Bildbereichs in ein Feld (Array) von Teilbereichen,
- - Definieren eines Feldes von aggregierten Pixelwerten, indem für jeden der Teilbereiche ein aggregierter Pixelwert des jeweiligen Teilbereichs berechnet wird,
- - Berechnen eines Gradientenfeldes in Abhängigkeit von Differenzen zwischen den aggregierten Pixelwerten benachbarter Teilbereiche,
- - Analysieren des Gradientenfeldes,
- - Identifizieren des Objekts in Abhängigkeit von einem Resultat des Analyseschrittes als zugehörig zu einer Klasse aus einer vordefinierten Menge von Klassen.
-
Ein Fahrerassistenzsystem kann zusätzlich zu dieser Vorrichtung mindestens eine Kamera zum Erzeugen von Bildern einer Umgebung eines Fahrzeugs sowie eine Fahrerinformationseinheit umfassen, wobei die Datenverarbeitungseinheit mit der mindestens einen Kamera zum Empfangen der Bilder von der mindestens einen Kamera verbunden ist und wobei die Fahrerinformationseinheit mit der Datenverarbeitungseinheit verbunden ist und konfiguriert ist, einem Fahrer des Fahrzeugs Informationen über die als Verkehrsschilder und/oder Geschwindigkeitsbegrenzungsschilder klassifizierten Objekte zu liefern. Die mindestens eine Kamera kann in einem Fahrzeug, das mit diesem Fahrassistenzsystem ausgestattet ist, beispielsweise hinter einer Windschutzscheibe installiert sein, um die Umgebung des Fahrzeugs vor dem Fahrzeug zu erfassen, so dass Verkehrsschilder in den mittels der Kamera erfassten Bildern enthalten sind.
-
Im Folgenden werden Ausführungsbeispiele der Erfindung unter Bezugnahme auf die 1 bis 6 detaillierter beschrieben. Es zeigt
- 1 eine perspektivische Ansicht eines Fahrzeugs mit einem Fahrassistenzsystem,
- 2 ein Blockdiagramm, das ein Ausführungsbeispiel des Fahrerassistenzsystems zeigt,
- 3 ein Flussdiagramm, das Schritte eines Verfahrens zum Unterstützen eines Fahrers eines Fahrzeugs zeigt, das mittels des Fahrerassistenzsystems aus 2 durchgeführt werden kann,
- 4 ein Geschwindigkeitsbegrenzungsschild in einem Bild,
- 5 einen Bildbereich des in 4 gezeigten Bildes und
- 6 ein Diagramm, das Werte von Komponenten eines Gradientenvektors zeigt, der unter Verwendung eines Ausführungsbeispiels des vorgeschlagenen Verfahrens ermittelt wurde.
-
In allen Figuren werden ähnliche oder identische Merkmale mit den gleichen Bezugszeichen markiert. Eine Liste der Bezugszeichen findet sich weiter unten.
-
1 zeigt eine schematische Darstellung eines Fahrzeugs 1. Ein Fahrerassistenzsystem ist in dem Fahrzeug 1 installiert. In 1 ist eine Kamera 2 des Fahrerassistenzsystems gezeigt, die in dem Fahrzeug 1 in einer Position hinter einer Windschutzscheibe des Fahrzeugs 1 installiert ist. Auf diese Weise können digitale Bilder einer Umgebung des Fahrzeugs 1 vor dem Fahrzeug 1 mittels dieser Kamera 1 erzeugt werden. Das Fahrerassistenzsystem des Fahrzeugs 1 kann weitere Kameras (in 1 nicht gezeigt) aufweisen, die in dem Fahrzeug 1 an weiteren Positionen angebracht sind, zum Beispiel auf einer rechten Seite und auf einer linken Seite des Fahrzeugs, so dass Bilder der Umgebung auf beiden Seiten des Fahrzeugs 1 mittels dieser weiteren Kameras zusätzlich erzeugt werden können.
-
2 zeigt ein Ausführungsbeispiel des Fahrerassistenzsystems 3, das in dem Fahrzeug 1 installiert sein kann. Das Fahrerassistenzsystem 3 beinhaltet die mindestens eine Kamera 2 und eine Vorrichtung 4 zur Bildverarbeitung. Die Vorrichtung 4 ist dafür eingerichtet, Signale von der Kamera 2 zu empfangen. Die Signale repräsentieren die mittels der Kamera 2 empfangenen Bilder und beinhalten Bilddaten, wie beispielsweise Pixelwerte dieser Bilder. Die Vorrichtung 4 enthält eine Bilddatenverarbeitungseinheit 5, die eingerichtet ist, die Bilder, d. h. die Bilddaten, zu verarbeiten. Insbesondere ist die Datenverarbeitungseinheit 5 eingerichtet, Objekte, die Kandidaten für Verkehrsschilder sind, zu detektieren und zu orten - dies kann beispielsweise mittels eines Kreisdetektionsalgorithmus erfolgen - und sie weiter als Geschwindigkeitsbegrenzungsschilder, andere Verkehrsschilder und andere Objekte, die sich nicht als Verkehrsschilder herausstellen, zu identifizieren. Außerdem ist die Verarbeitungseinheit eingerichtet, die spezifische Geschwindigkeitsbegrenzung, die auf einem als Geschwindigkeitsbegrenzungsschild klassifizierten Objekt angezeigt ist, zu erkennen, d. h. die Zahl „10“, „20“, „30“, „40“, „50“, „60“, „70“, „80“, „90“, „100“, „110“, „120“, „130“ oder „140“ zu erkennen, die auf dem jeweiligen Geschwindigkeitsbegrenzungsschild angezeigt ist. Um dies zu tun, ist die Datenverarbeitungseinheit 5 eingerichtet, ein Verfahren zum Klassifizieren von Objekten in dem Bild durchzuführen, welches im Folgenden im Detail beschrieben ist. Zu diesem Zweck kann die Datenverarbeitungseinheit 5 einen oder mehrere elektronische Datenprozessoren und eine oder mehrere Datenspeichereinheiten umfassen.
-
Das Fahrerassistenzsystem 3 beinhaltet außerdem eine Fahrerinformationseinheit 6, die eingerichtet ist, einem Fahrer des Fahrzeugs 1 Informationen über die detektierten und klassifizierten Verkehrsschilder auf Grundlage von Signalen, die von der Vorrichtung 4 empfangen wurden, zu liefern. In dem vorliegenden Beispiel umfasst die Fahrerinformationseinheit 6 eine Anzeige 7 und einen Lautsprecher 8. Die Anzeige 7 kann beispielsweise ein Head-up-Display sein, das eingerichtet ist, die Informationen auf der Windschutzscheibe des Fahrzeugs, in dem das System 3 installiert ist, anzuzeigen.
-
3 zeigt ein Flussdiagramm, das Verfahrensschritte eines Ausführungsbeispiels des Verfahrens zum Klassifizieren eines Objekts in einem Bild darstellt. Zum Beispiel kann das Objekt in dem Bild ein Verkehrsschild oder ein Kandidat für ein Verkehrsschild sein. Diese Verfahrensschritte können beispielsweise mittels des in 2 gezeigten Fahrerassistenzsystems 3 durchgeführt werden. Die Beschreibung des Verfahrens bezieht sich auch auf 4, die ein vereinfachtes digitales Bild 9 zeigt, wie es mittels der Kamera 2 erfasst und mittels der Vorrichtung 4 des Fahrerassistenzsystems 3 verarbeitet werden kann.
-
Im Schritt S1 wird ein digitales Bild, wie das in 4 gezeigte Bild 9, mittels der Kamera 2 erzeugt und mittels der Datenverarbeitungseinheit 5 empfangen. Typischerweise ist dieses Bild 9 ein Einzelbild eines mittels der Kamera 2 erzeugten Videos. In dem vorliegenden in 4 gezeigten Beispiel beinhaltet das Bild 9 ein Objekt 10.
-
Im Schritt S2 vorverarbeitet die Datenverarbeitungseinheit 5 das Bild 9, beispielsweise durch Anwenden eines Skalierungsalgorithmus und eines Farbtransformationsalgorithmus.
-
Im Schritt S3 wird das Objekt 10 detektiert und als ein Kandidat für ein Verkehrsschild identifiziert. Im vorliegenden Fall enthält Schritt S3 die Anwendung eines Kreisdetektionsalgorithmus oder einen Ellipsendetektionsalgorithmus zum Detektieren und Identifizieren von Kandidaten für Verkehrsschilder in dem Bild 9.
-
Im Schritt S4 wird ein Ausführungsbeispiel des vorgeschlagenen Klassifikationsverfahrens, das die unten beschriebenen Schritte X1 bis X5 beinhaltet, durchgeführt, um die identifizierten Kandidaten für Verkehrsschilder, wie das Objekt 10, als entweder zugehörig zu der Klasse von Geschwindigkeitsbegrenzungsschildern oder als zugehörig zu der Klasse aller anderen Verkehrsschilder oder zu der Klasse von Objekten, die keine Verkehrsschilder sind, weiter zu klassifizieren. Im vorliegenden Ausführungsbeispiel zeigt jedes Geschwindigkeitsbegrenzungsschild der Klasse der Geschwindigkeitsbegrenzungsschilder eine aus der folgenden Menge von Zahlen an: „10“, „20“, „30“, „40“, „50“, „60“, „70“, „80“, „90“, „100“, „110“, „120“, „130“ und „140“. Außerdem wird für jene Objekte, die als Geschwindigkeitsbegrenzungsschilder identifiziert worden sind, die tatsächlich auf dem Geschwindigkeitsbegrenzungsschild angezeigte Geschwindigkeitsbegrenzung identifiziert.
-
Das Objekt 10 definiert einen Bereich 12 in dem Bild 9. Im Schritt X1 wird ein Bildbereich 11, der innerhalb des Bereichs 12 angeordnet ist, definiert. 4 illustriert, wie dies gemacht wird. In dem vorliegenden Fall ist das in 4 gezeigte Verkehrsschild ein Geschwindigkeitsbegrenzungsschild, das einen äußeren Ring 17 aufweist. Der Bereich 12 kann so definiert werden, dass er auf einen Zentrumsbereich, der durch diesen Ring 17 begrenzt wird, beschränkt ist. Alternativ kann der Bereich 12 als der Gesamtbereich des Objekts 10 definiert werden, so dass er durch die Außenränder des Objekts 10 definiert ist.
-
In dem vorliegenden Fall kann der Bildbereich 11 so definiert werden, dass er sich über ungefähr 2/3 einer Gesamtbreite des Bereichs 12, der durch äußere Ränder des Objekts 10 definiert ist, oder alternativ über ungefähr die Gesamtbreite des Bereichs 12, der innerhalb des äußeren Rings 17 des Objekts 10 definiert ist, erstreckt. Außerdem kann der Bildbereich so definiert werden, dass er sich über weniger als 10 % einer Gesamthöhe des Bereichs 12 erstreckt. In dem vorliegenden Fall ist der Bildbereich 11 so definiert, dass seine Breite mehr als 10-mal größer als seine Höhe ist. Außerdem ist der Bildbereich 11 so definiert, dass er ein Zentrum 18 des durch das Objekt 10 definierten Bereichs 12 abdeckt. Der Bildbereich 11 hat in dem vorliegenden Fall eine rechteckige Form. Alternativ könnte er beispielsweise auch als Parallelogramm, als Kreis oder als Ellipse ausgestaltet sein.
-
Im Schritt X2 wird der Bildbereich 11 in ein Feld von Teilbereichen 13 zerlegt, wie in 5 gezeigt ist. Die Teilbereiche 13 werden so definiert, dass jeder Pixel des Bildbereichs 11 in genau einem dieser Teilbereiche 13 enthalten ist. Insbesondere schneiden oder überlappen sich die Teilbereiche 13 nicht und überdecken den Bildbereich 11 vollständig. Die Teilbereiche 13 des Bildbereichs 11 sind in diesem Ausführungsbeispiel des Verfahrens als schmale vertikale Streifen geformt, wobei jeder der Streifen eine einheitliche Breite von einem Pixel aufweist, wobei eine Länge der Teilbereiche 13 der Höhe des Bildbereichs 11 entspricht. Die Teilbereiche 13 sind zueinander parallel und parallel zu der vertikalen Achse des Bildes 9 ausgerichtet.
-
Wie in 5 gezeigt ist, ist jeder der Teilbereiche 13 mit einem Index n, wobei 1 ≤ n ≤ N, indiziert, wobei N die Gesamtzahl der Teilbereiche 13 bezeichnet und wobei zwei benachbarte Teilbereiche aufeinanderfolgende Indizes haben, d. h. beispielsweise die Indizes n und n + 1. Entsprechend hat der ganz linke Teilbereich 13 den Index n = 1, ein Teilbereich 13 in der Mitte des Bildbereichs 11 hat den Index n = N/2, und der ganz rechte Teilbereich 13 hat den Index n = N.
-
Des Weiteren wird in Schritt X2 für jeden der Teilbereiche 13 ein aggregierter Pixelwert für den Teilbereich berechnet, in dem Pixelwerte von Bildpixeln, die in dem jeweiligen Teilbereich 13 enthalten sind, aggregiert werden. In dem vorliegenden Beispiel ist der aggregierte Pixelwert eines jeden der Teilbereiche 13 als die Summe der Pixelwerte der in dem Teilbereich 13 enthaltenen Pixel definiert.
-
Ein Vektor, d. h. ein eindimensionales Feld, von aggregierten Pixelwerten, der N Komponenten hat, wird definiert, und die aggregierten Pixelwerte der Teilbereiche 13, d. h. die Pixelsummen, werden den Komponenten des Vektors der aggregierten Pixelwerte zugeordnet. Der Vektor der aggregierten Pixelwerte hat N Komponenten, so dass eine 1:1-Korrespondenz zwischen diesen Vektorkomponenten und den Teilbereichen besteht. Die N Komponenten des Vektors der aggregierten Pixelwerte sind so geordnet, dass die n-te Komponente dieses Vektors dem n-ten Teilbereich 13 entspricht, d. h., die erste Komponente entspricht dem ganz linken Teilbereich 13 und die N-te Komponente dem ganz rechten Teilbereich 13.
-
Im Schritt X3 wird für jedes Paar benachbarter Teilbereiche der Teilbereiche 13 des Bildbereichs 11 eine Differenz zwischen den aggregierten Pixelwerten der Teilbereiche 13 des jeweiligen Paars benachbarter Teilbereiche 13 berechnet. Ein N-1-dimensionaler Gradientenvektor wird definiert, und die Differenzen zwischen den aggregierten Pixelwerten der Paare von benachbarten Teilbereichen 13 werden den N-1 Komponenten des Gradientenvektors zugeordnet. Die N-1 Komponenten des Gradientenvektors sind so geordnet, dass die n-te Komponente des Gradientenvektors als die Differenz zwischen der n-ten und der (n + 1)-ten Komponente des Vektors der aggregierten Pixelwerte definiert ist.
-
In dem in 6 gezeigten Diagramm sind die Komponenten des Gradientenvektors schematisch als eine kontinuierliche Funktion des Index n dargestellt.
-
Im Schritt X4 wird der Gradientenvektor bezüglich einer vordefinierten Menge möglicher Merkmale des Bildbereichs 11 analysiert. Die Analyse enthält die Anwendung eines Schwellenwertalgorithmus auf die Komponenten des Gradienten. In dem vorliegenden Beispiel beinhaltet der Schwellenwertalgorithmus das Vergleichen der Komponenten des Gradientenvektors mit einem positiven Schwellenwert und mit einem negativen Schwellenwert. In dem vorliegenden Beispiel ist der positive Schwellenwert auf +100 und der negative Schwellenwert auf-100 gesetzt, wie durch die horizontalen Linien 19 in 6 dargestellt ist. Dann wird ein Merkmalvektor durch die Anwendung eines Non-Maximum-Suppression-Algorithmus auf die Ausgabe des Schwellenwertalgorithmus definiert, so dass alle Komponenten des Gradientenvektors, die weder größer als der positive Schwellenwert noch kleiner als der negative Schwellenwert sind, auf null gesetzt werden. Alle Komponenten des Gradientenvektors, die oberhalb des positiven Schwellenwerts sind, werden auf 1 gesetzt, und alle Komponenten, die kleiner als der negative Schwellenwert sind, werden auf -1 gesetzt. Alternativ könnten alle Komponenten des Gradientenvektors, die weder lokale Maxima noch lokale Minima sind, wie auch alle Komponenten des Gradientenvektors, die zwischen den beiden Schwellenwerten sind, auf null gesetzt werden, während nur solche Komponenten des Gradientenvektors, die lokale Maxima und oberhalb des positiven Schwellenwerts sind, auf 1 gesetzt werden und nur solche lokalen Minima, die kleiner als der negative Schwellenwert sind, auf -1 gesetzt werden. In dem in den 5 und 6 dargestellten Fall hat der Gradientenvektor 3 lokale Maxima 20, die oberhalb der positiven Schwellenwertlinie 19 bei den Indizes n=33, n=109 bzw. n=160 liegen, und drei lokale Minima 21 unter der negativen Schwellenwertlinie 19 bei den Indizes n=88, n=125 bzw. n=176. Folglich werden nach der Anwendung dieser Algorithmen die Werte der Komponenten des Merkmalvektors +1 an den Komponenten n=33, n=109 und n=160, negativ bei den Indizes n=88, n=125 und n=176 und null überall sonst sein, oder, in Abhängigkeit von der Definition des Schritts X4, zumindest überall außer in kleinen Intervallen um die Indizes n=33, n=88, n=109, n=125, n=160 und n=176.
-
Der auf diese Weise erhaltene Merkmalvektor wird weiter analysiert bezüglich des Vorhandenseins eines oder mehrere vordefinierter möglicher Merkmale des Bildbereichs 11. Dies könnte beispielsweise mittels einer Stützvektormaschine und/oder Anwendung hierarchischer Regeln erfolgen. In dem vorliegenden Ausführungsbeispiel wird das Merkmalfeld analysiert, indem seine Komponenten mit Referenzdaten verglichen werden, und insbesondere, indem überprüft wird, ob der Merkmalvektor einige bestimmte vordefinierte Merkmale aufweist, die für die Klasse von Geschwindigkeitsbegrenzungsschildern charakteristisch sind. Diese vordefinierten Merkmale werden unter Verwendung einer Menge von Trainingsobjekten definiert. In dem vorliegenden Fall besteht die Menge von Trainingsobjekten aus tatsächlichen Geschwindigkeitsbegrenzungsschildern, die die oben genannte Menge von Zahlen anzeigen. Insbesondere impliziert der Ausdruck „vordefinierte Merkmale“ nicht, dass diese ein für alle Mal festgelegt sind. Selbst wenn sie für das jeweilige Klassifikationsverfahren vordefiniert sind, können sie tatsächlich durch die Anwendung von Maschinenlerntechniken dynamisch definiert werden. In 6 können Merkmale des Gradientenvektors und folglich des Merkmalvektors für den typischen Fall gesehen werden, in dem das Objekt 10 das Verkehrsschild von 4 oder ein ähnliches Geschwindigkeitsbegrenzungsschild ist.
-
Charakteristische Merkmale des Bildbereichs 11, die zum Definieren der vordefinierten Merkmale des Merkmalfeldes verwendet werden, können in 5 gesehen werden. Diese charakteristischen Merkmale umfassen insbesondere zwei erste Regionen 14, die aus Pixeln mit großen Pixelwerten bestehen, wobei die beiden ersten Regionen 14 jeweils eine erste Breite haben, und eine zweite Region 15, die aus Pixeln mit kleinen Pixelwerten besteht, wobei die zweite Region zwischen den beiden ersten Regionen 14 angeordnet ist und eine zweite Breite aufweist, die größer ist als die erste Breite. Die ersten Regionen 14 und die zweite Region 15 liegen innerhalb einer rechten Hälfte 16 des Bildbereichs 11, wobei die rechte Hälfte 16 typischerweise den Indizes n > N/2 entspricht, siehe 5. Diese Merkmale des Bildbereichs 11 werden als ein Indikator dafür verwendet, dass der Verkehrsschildkandidat, d. h. das Objekt 10, eine „0“ in seiner rechten Hälfte anzeigt, was wiederum als Indikator dafür verwendet wird, dass das Verkehrsschild zu der Klasse von Geschwindigkeitsbegrenzungsschildern gehört.
-
In dem Merkmalvektor führen diese Merkmale zu den folgenden Charakteristika, die als vordefinierte Merkmale zum Identifizieren des Objekts 10 als zugehörig zu der Klasse von Geschwindigkeitsbegrenzungsschildern verwendet werden können: Zwei erste Folgen von Komponenten des Merkmalvektors sind null (entsprechend den oben genannten zwei ersten Regionen 14), wobei am Anfang einer jeden dieser beiden ersten Folgen eine Komponente des Gradientenvektors ist, die +1 ist, und wobei am Ende einer jeden dieser beiden ersten Folgen eine Komponente des Gradientenvektors ist, die-1 ist, wobei jede der beiden Folgen eine vordefinierte erste Breite aufweist, und wobei eine zweite Folge von Komponenten (entsprechend der oben genannten zweiten Region 15) existiert, deren Werte null sind, wobei die zweite Folge zwischen den beiden ersten Folgen angeordnet ist und eine vordefinierte zweite Breite aufweist, die größer ist als die erste Breite, wobei die Indizes der Komponenten der ersten zwei Folgen und der zweiten Folge alle größer als N/2 sind.
-
Im Fall des in den 4 und 5 gezeigten Bildbereichs 11 werden diese vordefinierten Merkmale gefunden. Folglich wird das Objekt 10 als ein Geschwindigkeitsbegrenzungsschild klassifiziert. Außerdem werden dann die Komponenten des Gradientenvektors mit Indizes n < N/2, die einer verbleibenden linken Hälfte 22 des Bildbereichs 11 entsprechen, nach weiteren Merkmalen analysiert, um die eigentliche Geschwindigkeitsbegrenzung, die auf dem Geschwindigkeitsbegrenzungsschild angezeigt ist, zu bestimmen.
-
Folglich wird im Schritt X5 der Verkehrsschildkandidat, d. h. Objekt 10, in Abhängigkeit von einem Resultat der Analyse des Gradientenvektors und des Merkmalvektors identifiziert als entweder zugehörig zu der Klasse von Geschwindigkeitsbegrenzungsschildern oder als zugehörig zu der Klasse aller anderen Verkehrsschilder. In dem beispielhaften Fall des in 4 gezeigten Objekts 10 wird das Objekt 10 als ein Geschwindigkeitsbegrenzungsschild klassifiziert, das die Geschwindigkeitsbegrenzung „80“ anzeigt.
-
Im Schritt S5 wird die Klassifikation des Objekts 10 mittels der Schritte X1 bis X5 beispielsweise für eine weitere Klassifikation des Objekts 10 verwendet. Wenn beispielsweise ein oder mehr Merkmale der vordefinierten Menge von Merkmalen des Bildbereichs 11 gefunden worden ist bzw. sind, wird dies als ein Indikator dafür verwendet, dass das Objekt 10 tatsächlich ein Verkehrsschild ist oder zu einer bestimmten Klasse von Verkehrsschildern gehört. Falls in den Schritten X1 bis X5 beispielsweise festgestellt worden ist, dass der Verkehrsschildkandidat kein Geschwindigkeitsbegrenzungsschild ist, können weitere Klassifikationsschritte im Schritt S5 durchgeführt werden. Diese weiteren Schritte können jedoch ausgelassen werden, wenn der Verkehrsschildkandidat mittels der Schritte X1 bis X5 als ein Geschwindigkeitsbegrenzungsschild klassifiziert worden ist, wie in dem beispielhaften Fall des in 4 gezeigten Geschwindigkeitsbegrenzungsschildes.
-
Bezugszeichenliste
-
- 1
- Fahrzeug
- 2
- Kamera
- 3
- Fahrerassistenzsystem
- 4
- Vorrichtung
- 5
- Datenverarbeitungseinheit
- 6
- Fahrerinformationseinheit
- 7
- Anzeige
- 8
- Lautsprecher
- 9
- Bild
- 10
- Objekt
- 11
- Bildbereich
- 12
- durch das Objekt definierter Bereich
- 13
- Teilbereich des Bildbereichs
- 14
- erste Region
- 15
- zweite Region
- 16
- rechte Hälfte des Bildbereichs
- 17
- Ring
- 18
- Zentrum
- 19
- Schwellenwertlinie
- 20
- lokales Maximum
- 21
- lokales Minimum
- 22
- linke Hälfte