-
Die Erfindung betrifft ein Verfahren zum Trainieren eines Algorithmus zum Erkennen von vorbestimmten Mustern in Bilddaten, welche mittels einer Kamera eines Kraftfahrzeugs bereitgestellt werden. Die Erfindung betrifft außerdem ein Kamerasystem für ein Kraftfahrzeug, umfassend eine Kamera zum Bereitstellen von Bildern, sowie umfassend eine Bildverarbeitungseinrichtung mit einem Algorithmus, der nach einem derartigen Verfahren trainiert wurde. Die Erfindung betrifft auch ein Kraftfahrzeug mit einem solchen Kamerasystem.
-
Mustererkennungsalgorithmen sind bereits aus dem Stand der Technik in vielfältiger Ausgestaltung bekannt. Solche Mustererkennungsalgorithmen dienen zum Erkennen von vorbestimmten Mustern in Bildern sowie zur Klassifizierung der erkannten Muster. Solche Algorithmen werden auch in Kamerasystemen von Kraftfahrzeugen eingesetzt und dienen dann insbesondere zur Detektion von Zielobjekten, wie beispielsweise von anderen Fahrzeugen, Fußgängern und anderen potentiellen Hindernissen. Wird ein solches Zielobjekt detektiert, so kann dieses Objekt dann mittels des Kamerasystems verfolgt werden. Das Kamerasystem kann als Kollisionswarnungssystem dienen, mittels welchem der Fahrer des Kraftfahrzeugs vor einer möglichen Kollision mit einem Zielobjekt gewarnt wird.
-
Allen Mustererkennungsalgorithmen ist gemein, dass sie hinsichtlich der Muster, welche erkannt werden sollen, trainiert bzw. gelernt werden müssen, bevor der Algorithmus dann letztendlich auf das Kamerasystem überspielt wird. Beim Trainieren eines Mustererkennungsalgorithmus wird üblicherweise eine Testdatenbank bereitgestellt, welche Testbilddaten beinhaltet, d. h. eine sehr große Anzahl von Bildern. Diese Testbilddaten beinhalten eine Gesamtmenge von Mustern, welche dem Algorithmus „mitgeteilt” werden sollen und welche dann dem Training zugrunde gelegt werden. Diese Muster sollen also von dem Algorithmus „gelernt” werden. Ein bereits trainierter Algorithmus ist dann in der Lage, die gelernten Muster sowie Muster, die zwar von den gelernten Mustern abweichen, jedoch eine gewisse Ähnlichkeit aufweisen, in beliebigen Bildern wieder zu erkennen. Wird ein Mustererkennungsalgorithmus also hinsichtlich einer Vielzahl von Mustern trainiert, so können dann nicht nur diese gelernten Muster, sondern auch Muster detektiert werden, die in einem Toleranzbereich der gelernten Muster liegen.
-
Die gelernten Muster werden üblicherweise jeweils einem Zielobjekt zugeordnet, sodass eine Klassifizierung der Muster vorgenommen werden kann. Jedem Zielobjekt bzw. jeder Objektart (Fahrzeug, Fußgänger, etc.) können dabei mehrere Muster zugeordnet sein. Wird dann im Betrieb des Kamerasystems ein Muster detektiert, welches einem bestimmten Zielobjekt zugeordnet ist, so kann der Mustererkennungsalgorithmus nicht nur das Muster erkennen, sondern auch mit einer Bezeichnung versehen, d. h. feststellen, zu welchem Zielobjekt dieses Muster gehört (Klassifizierung).
-
Im Stand der Technik werden üblicherweise sowohl positive als auch negative Muster definiert. Positive Muster sind diejenigen Muster, welche durch den Algorithmus erkannt und ausgegeben werden sollen, weil diese positiven Muster Zielobjekten zugeordnet sind, die im Betrieb des Kamerasystems detektiert werden sollen. Demgegenüber sind negative Muster diejenigen Muster, welche durch den Algorithmus nicht erkannt werden dürfen bzw. herausgefiltert werden sollen. Diese negativen Muster sind nämlich Zielobjekten zugeordnet, welche für ein Kamerasystem eines Kraftfahrzeugs irrelevant sind und somit nicht detektiert werden müssen.
-
Das Trainieren eines Mustererkennungsalgorithmus ist im Stand der Technik mit einem erheblichen Aufwand verbunden: Wie bereits ausgeführt, wird im Stand der Technik eine sehr große Datenbank mit Testbilddaten bereitgestellt, welche eine große Anzahl von Mustern beinhalten. Im Stand der Technik wird diese gesamte Datenbank manuell durchsucht, und alle benötigten Muster werden manuell (zum Beispiel am PC) ausgewählt und einem bestimmten Zielobjekt zugeordnet und entsprechend bezeichnet. Zu diesem Zwecke wird jedes Einzelbild eines nach dem anderen manuell analysiert. Dann werden die Muster in positive und negative Muster aufgeteilt. Der Algorithmus wird dann basierend auf allen Mustern trainiert. Zum Trainieren des Algorithmus können dabei bekannte Lernmethoden verwendet werden.
-
Eine solche Vorgehensweise erfordert einen erheblichen Zeitaufwand. Ein entsprechendes Personal muss nämlich alle Muster korrekt extrahieren und bezeichnen bzw. festlegen, zu welchem Zielobjekt die jeweiligen Muster gehören. Die gesamte Testdatenbank muss also durch das Personal durchsucht werden. Dies stellt eine extrem mühsame und methodische Aufgabe dar und kann daher – auch bei besten Intentionen – zu Fehlern führen. Solche Fehler bei der Mustererkennung können insbesondere in Kraftfahrzeugen nicht toleriert werden.
-
Nachdem die Auswahl und die Bezeichnung aller Muster vollendet wurden, besteht im Stand der Technik auch keine Garantie dafür, dass die Qualität der ausgewählten Muster optimal für das Training des Algorithmus ist. Es muss daher häufig eine manuelle Filterung der Muster vorgenommen werden. Diese Filterung bedeutet lediglich, dass prima fade fehlerhafte Muster, d. h. diejenigen Muster, welche früher manuell falsch bezeichnet wurden, verworfen oder korrigiert werden. Dies stellt eine weitere mühsame Aufgabe dar und kann in keiner Weise garantieren, dass die ausgewählten Muster, welche dem Training des Algorithmus zugrunde gelegt werden, eine ausreichende Diversität aufweisen, um den Algorithmus dahingehend zu trainieren, dass er auch ähnliche Muster detektieren kann. Die Diversität der Muster stellt also insgesamt einen sehr wichtigen Parameter beim Trainieren eines Mustererkennungsalgorithmus dar, weil in der Natur häufig auch sehr ähnliche Muster auftreten, die durch den Algorithmus erkannt werden sollen. Ein weiterer Nachteil besteht darin, dass aufgrund der Vielzahl von Trainingsmustern auch das Trainieren des Algorithmus alleine relativ viel Zeit in Anspruch nimmt. Diese Zeit ist nämlich proportional zu der Anzahl der Trainingsmuster. In manchen Fällen kann das Training sogar mehrere Wochen in Anspruch nehmen.
-
Eine Aufgabe der Erfindung besteht darin, ein Verfahren bereitzustellen, mit welchem ein Mustererkennungsalgorithmus einerseits besonders präzise und andererseits ohne viel Aufwand trainiert werden kann. Eine weitere Aufgabe besteht darin, ein Kamerasystem sowie ein Kraftfahrzeug bereitzustellen.
-
Diese Aufgaben werden durch ein Verfahren, durch ein Kamerasystem sowie durch ein Kraftfahrzeug mit den Merkmalen gemäß den jeweiligen unabhängigen Patentansprüchen gelöst. Vorteilhafte Ausführungen der Erfindung sind Gegenstand der abhängigen Patentansprüche, der Beschreibung und der Figuren.
-
Ein erfindungsgemäßes Verfahren dient zum Trainieren eines Algorithmus zum Erkennen von vorbestimmten Mustern in Bilddaten, welche mittels einer Kamera eines Kraftfahrzeugs bereitgestellt werden. Unter dem Begriff „Trainieren” wird vorliegend ein Lernvorgang verstanden, bei welchem dem Algorithmus vorbestimmte Muster „mitgeteilt” werden, welche der Algorithmus dann im Betrieb des Kamerasystems erkennen soll, wobei auch ähnliche Muster, die in einem Toleranzbereich liegen, durch den Algorithmus erkannt werden sollen.
-
Gemäß Schritt a) wird eine Testdatenbank mit Testbilddaten zum Trainieren des Algorithmus bereitgestellt, wobei die Testbilddaten eine Gesamtmenge von Mustern beinhalten. Diese Testbilddaten können beispielsweise eine Vielzahl von Testbildern beinhalten, die zum Beispiel mittels einer Kamera aufgenommen wurden. Die Testbilddaten können also mittels einer Kamera erfasst werden.
-
Gemäß Schritt b) wird aus der Gesamtmenge der Muster (insbesondere manuell, zum Beispiel an einem PC) eine exemplarische Untermenge von Mustern ausgewählt, welche repräsentativ für vorbestimmte Objekte sind. Es wird vorzugsweise lediglich eine kleine Untermenge von Standardmustern ausgewählt, und zwar vorzugsweise mit einer maximal möglichen Diversität, wie dies manuell noch möglich ist. Die Auswahl der Untermenge von Mustern kann abhängig von der konkreten Anwendung vorgenommen werden.
-
Gemäß Schritt c) wird dann ein erstes Trainieren des Algorithmus anhand der ausgewählten Untermenge der Muster durchgeführt, sodass ein vorläufig trainierter Algorithmus bereitgestellt wird.
-
Gemäß Schritt d) wird dieser vorläufig trainierte Algorithmus auf die gesamte Testdatenbank angewendet. Als Ergebnis gibt der vorläufig trainierte Algorithmus eine Ergebnisliste von Einträgen aus, die jeweils ein durch den vorläufig trainierten Algorithmus erkanntes Muster sowie eine Bezeichnung eines diesem Muster zugeordneten Objekts angeben.
-
Gemäß Schritt e) wird die Ergebnisliste (manuell oder maschinell) analysiert, und es werden Einträge aus der Ergebnisliste verworfen, bei welchen die Zuordnung des erkannten Musters zu dem Objekt durch den vorläufig trainierten Algorithmus korrekt vorgenommen wurde. Mit anderen Worten werden die korrekten Einträge aus der Ergebnisliste entfernt, da diese Einträge keine brauchbaren Informationen über die möglichen Fehlerquellen des vorläufig trainierten Algorithmus beinhalten und somit nicht zur weiteren Verbesserung des Algorithmus beitragen.
-
Gemäß Schritt f) wird dann ein zweites Trainieren des vorläufig trainierten Algorithmus anhand der verbleibenden Einträge der Ergebnisliste vorgenommen.
-
Im Vergleich zum Stand der Technik kann der Mustererkennungsalgorithmus somit mit erheblich reduziertem Aufwand trainiert werden, weil nicht die Gesamtmenge der Muster aus den Testbilddaten manuell extrahiert und beschriftet werden müssen, sondern lediglich eine Untermenge von Mustern, welche repräsentativ für vorbestimmte Zielobjekte sind. Diese Untermenge von Mustern kann beispielsweise lediglich weniger als 20%, insbesondere weniger als 10%, der Gesamtmenge der Muster umfassen. Der Mustererkennungsalgorithmus kann dann anhand dieser ausgewählten Untermenge der Muster trainiert werden, sodass der Algorithmus dazu gelehrt wird, diese Untermenge von Mustern sowie ähnliche Muster zu erkennen und entsprechend zu klassifizieren. Weil die Diversität und somit die Verschiedenheit der Muster innerhalb der ausgewählten Untermenge sehr hoch ist, ist der vorläufig trainierte Algorithmus auch dazu in der Lage, eine Vielzahl von anderen ähnlichen Mustern zu identifizieren. Die oben genannte Ergebnisliste kann daher ohne viel Aufwand analysiert werden, nachdem alle korrekten Einträge aus der Ergebnisliste entfernt wurden.
-
Die Ergebnisliste des vorläufig trainierten Algorithmus beinhaltet vorzugsweise folgende Arten von Einträgen:
- – korrekte Einträge, bei denen die positiven Muster korrekt erkannt wurden und die Zuordnung des erkannten Musters zu dem Objekt auch korrekt vorgenommen wurde – diese Einträge werden aus der Ergebnisliste entfernt, weil sie nicht zur Verbesserung des Algorithmus beitragen; und/oder
- – fehlerhafte Einträge, bei denen das erkannte Muster zu einem falschen Objekt durch den vorläufig trainierten Algorithmus zugeordnet wurde – diese Einträge können dann dem zweiten Training zugrunde gelegt werden, um den Algorithmus auch hinsichtlich dieser Muster zu trainieren; und/oder
- – fehlerhafte Einträge, bei denen ein Muster erkannt wurde, welches durch den vorläufig trainierten Algorithmus nicht hätte erkannt werden dürfen – diese falschen Detektionen können im Rahmen des zweiten Trainings beispielsweise in eine negative Datenbank des Algorithmus aufgenommen werden, sodass die Detektion dieser Muster zukünftig verhindert werden kann.
-
Optional kann anhand der Ergebnisliste auch überprüft werden, ob Muster der Gesamtmenge durch den vorläufig trainierten Algorithmus nicht erkannt wurden, die jedoch durch den Algorithmus hätten erkannt werden müssen. Dann kann ein drittes Training des Algorithmus anhand der nicht erkannten Muster durchgeführt werden. Dies verbessert weiterhin den Algorithmus.
-
Optional kann auch vorgesehen sein, dass die oben genannten Schritte d) bis f) so lange wiederholt werden, bis zumindest ein vorgegebener Prozentsatz der Gesamtmenge der Muster durch den Algorithmus korrekt erkannt wurde. Auf diese Art und Weise kann ein besonders präziser und zuverlässiger Mustererkennungsalgorithmus bereitgestellt werden.
-
Die Erfindung betrifft außerdem ein Kamerasystem für ein Kraftfahrzeug, umfassend eine Kamera zum Bereitstellen von Bildern eines Umgebungsbereichs des Kraftfahrzeugs, und umfassend eine elektronische Bildverarbeitungseinrichtung mit einem Algorithmus, welcher nach einem erfindungsgemäßen Verfahren trainiert wurde.
-
Ein erfindungsgemäßes Kraftfahrzeug, insbesondere ein Personenkraftwagen, beinhaltet ein erfindungsgemäßes Kamerasystem.
-
Weitere Merkmale der Erfindung ergeben sich aus den Ansprüchen, den Figuren und der Figurenbeschreibung. Alle vorstehend in der Beschreibung genannten Merkmale und Merkmalskombinationen sowie die nachfolgend in der Figurenbeschreibung genannten und/oder in den Figuren alleine gezeigten Merkmale und Merkmalskombinationen sind nicht nur in der jeweils angegebenen Kombination, sondern auch in anderen Kombinationen oder aber in Alleinstellung verwendbar.
-
Die Erfindung wird nun anhand eines bevorzugten Ausführungsbeispiels sowie unter Bezugnahme auf die beigefügten Zeichnungen näher erläutert.
-
Es zeigen:
-
1 in schematischer Darstellung ein Kraftfahrzeug mit einem Kamerasystem gemäß einer Ausführungsform der Erfindung; und
-
2 ein Flussdiagramm eines Verfahrens gemäß einer Ausführungsform der Erfindung.
-
Ein in 1 dargestelltes Kraftfahrzeug 1 ist beispielsweise ein Personenkraftwagen. Das Kraftfahrzeug 1 hat ein Kamerasystem 2 mit beispielsweise vier Kameras 3, 4, 5, 6, welche an dem Kraftfahrzeug 1 verteilt angeordnet sind. Die Kameras 3, 4, 5, 6 erfassen beispielsweise insgesamt die Umgebung um das Kraftfahrzeug 1 herum. Es kann zum Beispiel die komplette Umgebung des Kraftfahrzeugs 1 und daher ein 360°-Bild erfasst werden.
-
Die Kamera 3 ist eine Frontkamera, welche im vorderen Bereich des Kraftfahrzeugs 1, beispielsweise an einem vorderen Stoßfänger 7, angeordnet ist. Die Kamera 3 ist somit an einer Front des Kraftfahrzeugs 1 angeordnet. Die zweite Kamera 4 ist beispielsweise eine Rückwärtskamera, welche im Heckbereich angeordnet ist, beispielsweise an einem hinteren Stoßfänger 8 oder einer Heckklappe. Die seitlichen Kameras 5, 6 können in die jeweiligen Außenspiegel integriert sein.
-
Die erste Kamera 3 erfasst einen Umgebungsbereich 9 vor dem Kraftfahrzeug 1. Entsprechend erfasst die Kamera 4 einen Umgebungsbereich 10 hinter dem Kraftfahrzeug 1. Die seitlichen Kameras 5, 6 erfassen jeweils einen Umgebungsbereich 11 respektive 12 seitlich neben dem Kraftfahrzeug 1. Die Kameras 3, 4, 5, 6 können beispielsweise so genannte Fischaugenkameras sein, welche einen relativ breiten Öffnungswinkel aufweisen, der beispielsweise in einem Wertebereich von 160° bis 200° liegen kann. Die Kameras 3, 4, 5, 6 können CCD-Kameras oder CMOS-Kameras sein. Sie können auch Video-Kameras sein, welche jeweils eine Vielzahl von Einzelbildern pro Sekunde bereitstellen können. Diese Bilder werden an eine zentrale elektronische Bildverarbeitungseinrichtung 13 übermittelt, welche die Bilder aller Kameras 3, 4, 5, 6 verarbeitet.
-
Die Bildverarbeitungseinrichtung 13 kann optional mit einer optischen Anzeigeeinrichtung 14 gekoppelt sein, welche beispielsweise ein LCD-Display ist. Auf dem Display 14 können dann verschiedenste Ansichten dargestellt werden, welche je nach Fahrsituation ausgewählt werden können. Beispielsweise kann die Bildverarbeitungseinrichtung 13 aus den Bildern aller Kameras 3, 4, 5, 6 eine Gesamtdarstellung erzeugen, welche das Kraftfahrzeug 1 und seine Umgebung 9, 10, 11, 12 aus einer Vogelperspektive und somit von einem Blickpunkt aus zeigt, der sich über dem Kraftfahrzeug 1 befindet. Ein solches „Bird Eye View” ist bereits Stand der Technik und kann durch Bildverarbeitung erzeugt werden.
-
Die Bildverarbeitungseinrichtung 13 kann auch Objekte 15 identifizieren, die sich in der Umgebung 9, 10, 11, 12 des Kraftfahrzeugs 1 befinden. Im Ausführungsbeispiel gemäß 1 ist als Objekt ein Fußgänger 15 gezeigt, welcher mittels der Bildverarbeitungseinrichtung 13 in den Bildern identifiziert wird und dann beispielsweise als Hindernis dem Fahrer angezeigt wird. Um das Zielobjekt 15 zu detektieren, können so genannte charakteristische Merkmale aus den Bildern extrahiert werden, wie beispielsweise Harris-Punkte und/oder FAST-Merkmale und/oder Kanten und/oder Ecken. Diese charakteristischen Merkmale werden dann einer Mustererkennung unterzogen.
-
In einem Speicher 16 der Bildverarbeitungseinrichtung 13 ist ein Algorithmus abgelegt, welcher zur Erkennung von vorbestimmten Mustern in den Bildern ausgelegt ist. Bevor dieser Algorithmus jedoch auf die Bildverarbeitungseinrichtung 13 überspielt und in dem Speicher 16 abgelegt wurde, musste der Algorithmus hinsichtlich der Muster, die im Betrieb des Kamerasystems 2 erkannt werden sollen, trainiert werden. Ein solches Verfahren, welches zum Trainieren eines derartigen Algorithmus dient, wird nachfolgend unter Bezugnahme auf 2 näher erläutert:
In einem ersten Schritt S1 des Verfahrens wird eine Testdatenbank 17 bereitgestellt, welche Testbilddaten beinhaltet. Diese Testbilddaten werden beispielsweise mittels einer Kamera erfasst. Die Testbilddaten enthalten eine Gesamtmenge G von Mustern, für welche der Algorithmus trainiert werden soll. In den Testbilddaten können also vorbestimmte Objektarten (Fußgänger, Fahrzeuge und dergleichen) jeweils mit einer Vielzahl von Beispielen und aus unterschiedlichen Perspektiven abgebildet sein. Die Gesamtmenge G von Mustern kann somit für jede Objektart jeweils eine Vielzahl von möglichen Mustern beinhalten.
-
In einem weiteren Schritt S2 wird aus der Gesamtmenge G eine exemplarische Untermenge S von Mustern ausgewählt, welche repräsentativ für vorbestimmte Objektarten sind. Beispielsweise können dabei mehrere Muster für einen Fußgänger und/oder mehrere Muster für ein Fahrzeug ausgewählt werden. Die Untermenge S wird so ausgewählt, dass die Muster möglichst unterschiedlich sind und somit eine möglichst maximale Diversität aufweisen, wie dies noch manuell möglich ist. Es werden somit bevorzugt solche Muster für eine bestimmte Objektart ausgewählt, die sich zumindest um ein vorgegebenes Maß voneinander unterscheiden.
-
In einem weiteren Schritt S3 wird der Algorithmus mit der ausgewählten Untermenge S gelernt. In diesem Schritt S3 können Lernalgorithmen verwendet werden, wie sie bereits aus dem Stand der Technik bekannt sind. Hierbei wird die Untermenge S der Muster dem in 2 mit 18 bezeichneten Algorithmus beigebracht bzw. „mitgeteilt”, wie dies in 2 schematisch angedeutet ist.
-
In einem weiteren Schritt S4 wird dann der vorläufig trainierte Algorithmus 18 auf die gesamte Testdatenbank 17 angewendet. Dies bedeutet, dass dem vorläufig trainierten Algorithmus 18 die gesamte Testdatenbank 17 und somit alle Testbilddaten zugrunde gelegt werden. Als Ergebnis dieser Bildverarbeitung wird durch den Algorithmus 18 eine Ergebnisliste 19 ausgegeben, welche Einträge beinhaltet, die jeweils ein detektiertes Muster und eine Klassifizierung des Musters (das zugeordnete Objekt) angeben.
-
In einem weiteren Schritt S5 werden die Einträge der Ergebnisliste 19 in folgende Gruppen sortiert:
- – korrekte Einträge, bei denen das Muster korrekt erkannt und klassifiziert wurde;
- – fehlerhafte Einträge, bei denen das erkannte Muster zu einem falschen Objekt zugeordnet wurde;
- – fehlerhafte Einträge, bei denen ein Muster erkannt wurde, welches nicht hätte erkannt werden dürfen.
-
Die korrekten Einträge werden gemäß Schritt S5 aus der Ergebnisliste 19 entfernt, und die fehlerhaften Einträge werden dann in einem weiteren Schritt S6 einem zweiten Training des Algorithmus 18 zugrunde gelegt. Gemäß Schritt S6 erfolgt also ein zweites Training, bei welchem ebenfalls die aus dem Stand der Technik bekannten Lernalgorithmen bzw. Lernmethoden genutzt werden können. Diesem zweiten Training werden jedoch ausschließlich die fehlerhaften Einträge aus der Ergebnisliste 19 zugrunde gelegt.
-
In einem noch weiteren Schritt S7 kann dann überprüft werden, welche Muster aus der Gesamtmenge G durch den vorläufig trainierten Algorithmus 18 gemäß Schritt S4 nicht erkannt wurden. Diese nicht detektierten Muster können dann gemäß Schritt S7 einem dritten Training zugrunde gelegt werden.
-
Wie aus 2 hervorgeht, können optional zumindest die Schritte S4 bis S7 wiederholt werden. Dies kann so lange durchgeführt werden, bis ein vorbestimmter Prozentsatz (zum Beispiel 80% oder 90% oder 95% oder 99%) der Gesamtmenge G der Muster durch den Algorithmus 18 korrekt erkannt wurde.