DE112012004847T5 - Dynamisches Liniendetektionssystem für Prozessoren mit begrenztem internen Speicher - Google Patents

Dynamisches Liniendetektionssystem für Prozessoren mit begrenztem internen Speicher Download PDF

Info

Publication number
DE112012004847T5
DE112012004847T5 DE112012004847.4T DE112012004847T DE112012004847T5 DE 112012004847 T5 DE112012004847 T5 DE 112012004847T5 DE 112012004847 T DE112012004847 T DE 112012004847T DE 112012004847 T5 DE112012004847 T5 DE 112012004847T5
Authority
DE
Germany
Prior art keywords
line
image
detected
lines
pixel data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE112012004847.4T
Other languages
English (en)
Other versions
DE112012004847B4 (de
Inventor
Raghavenvdra Habbu
Akshayakumar Haribhatt
Rajesh Vijayakumar
Rajesh Mahapatra
Gopal Gudhur Karanam
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Analog Devices Inc
Original Assignee
Analog Devices Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Analog Devices Inc filed Critical Analog Devices Inc
Publication of DE112012004847T5 publication Critical patent/DE112012004847T5/de
Application granted granted Critical
Publication of DE112012004847B4 publication Critical patent/DE112012004847B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/50Context or environment of the image
    • G06V20/56Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
    • G06V20/588Recognition of the road, e.g. of lane markings; Recognition of the vehicle driving pattern in relation to the road
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/48Extraction of image or video features by mapping characteristic values of the pattern into a parameter space, e.g. Hough transformation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/94Hardware or software architectures specially adapted for image or video understanding

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Image Analysis (AREA)
  • Image Processing (AREA)

Abstract

Ein Liniendetektionssystem berechnet unter Verwendung eines lokalen Speichers ein Ergebnis einer teilweisen Umsetzung von Bildraum-Pixeldaten aus dem Bildraum in den Hough-Raum. Das Ergebnis wird bezüglich Kanten analysiert, die einer Linie entsprechen, die in der teilweisen Umsetzung anwesend ist. Die Linie wird mit in zuvor berechneten teilweisen Ergebnissen detektierten anderen Linien verglichen, um eine längste Linie in dem Bild zu identifizieren.

Description

  • VERWEIS AUF VERWANDTE ANMELDUNG
  • Die vorliegende Anmeldung beansprucht Priorität und Nutzen der US-Patentanmeldung lfd. Nr. 13/300,993, eingereicht am 21.11.2011, deren gesamte Offenbarung hiermit durch Bezugnahme aufgenommen wird.
  • TECHNISCHES GEBIET
  • Ausführungsformen der Erfindung betreffen allgemein die Bildverarbeitung und insbesondere das Detektieren von Linien in Bildern.
  • STAND DER TECHNIK
  • Computergestützte Bildverarbeitungs- und Bildanalysetechniken können zum Detektieren von Formen (z. B. Linien, Kreisen oder Ellipsen) in digitalisierten Bildern verwendet werden. Zum Beispiel können Bilder von an Fahrzeugen angebrachten Kameras bezüglich Linien und anderem Inhalt darin analysiert werden; zu konkreten Anwendungen auf diesem Gebiet gehören Fahrerassistenzsysteme, die Spurmarkierungen auf einer Straße erkennen, indem sie diese als Linien identifizieren. Diese Systeme können dann bestimmen, wo in einer Spur sich das gefahrene Fahrzeug befindet, und zum Beispiel den Fahrer des Fahrzeugs warnen, wenn er zu nahe an eine Spurgrenze driftet. Für solche Systeme ist ein schnelles und robustes Liniendetektionsverfahren mit der Fähigkeit zu genauer Echtzeitanalyse erforderlich. Ein solches Verfahren verwendet eine als Hough-Transformation bekannte Technik, die neben anderen Vorteilen in der Lage ist, Linien in rauschbehafteten Bildern und in Bildern mit Helligkeitsschwankungen zu detektieren.
  • Das von der am Fahrzeug angebrachten Kamera aufgenommene Bild wird zuerst vorverarbeitet, um Kanten in dem Bild zu identifizieren (zum Beispiel unter Verwendung eines Sobel- oder Prewitt-Operators), um dadurch ein „Kantenbild” zu erzeugen. Dann wird die Hough-Transformation verwendet, um zu bestimmen, welche Kanten in dem Kantenbild Linien sind, indem die Daten in dem Bild zuerst aus dem „Bildraum” in den „Hough-Raum” umgesetzt werden. Der Bildraum bezieht sich auf den Ausdruck der gewöhnlichen (x, y)-Koordinatendaten in einem Bild, in dem eine Linie unter Verwendung der nachfolgend gezeigten Gleichung (1) ausgedrückt werden kann: y = mx + b (1)
  • In Gleichung (1) ist m die Steigung der Linie und b die Position, wo die Linie die y-Achse schneidet. Im Hough-Raum wird diese selbe Linie unter Verwendung eines ersten Parameters ρ, der die kürzeste Distanz zwischen der Linie und dem Ursprung ist, und eines zweiten Parameters θ, der der Winkel ist, den diese kürzeste Linie mit der x-Achse bildet, ausgedrückt. Im Allgemeinen können Linien im Hough-Raum unter Verwendung der nachfolgend in Gleichung (2) gezeigten Beziehung ausgedrückt werden. ρ = xcosθ + ysinθ (2)
  • Insbesondere reduziert sich eine Linie im Bildraum auf einen einzigen Punkt im Hough-Raum der Koordinate (ρ, θ), während nichtlineare Formen im Bildraum Kurven oder andere Nicht-Punktformen im Hough-Raum produzieren.
  • Theoretisch können dann die umgesetzten Hough-Raum-Daten einfach nach einzelnen Punkten durchsucht werden, deren Orte zeigen, welche Kanten im Bildraum Linien entsprechen. In der Praxis konvertiert und durchsucht die Hough-Transformation die (x, y)-Kantenpixeldaten durch Berechnen einer Anzahl von ρ-Werten für eine vorbestimmte Menge von θ-Werten unter Verwendung von Gleichung (2) für jedes (x, y)-Kantenpixel. Es wird ein zweidimensionales Array der Größe ρ × θ (ein Akkumulatorarray) unterhalten; jede Zelle in dem Array akkumuliert eine laufende Abrechnung oder „Stimmen” der Anzahl von Malen, wie oft ein bestimmtes (ρ, θ)-Paar berechnet (und auf die Zelle im Array mit dem nächsten Wert auf- oder abgerundet) wurde. Da eine Gruppe von (x, y)-Kantenpixeln, die zu einer Geraden gehören, dasselbe (ρ, θ)-Paar öfter als eine Gruppe von (x, y)-Kantenpixeln produziert, die nicht einer Geraden entsprechen, bedeuten höhere Stimmenzahlen in dem zweidimensionalen Akkumulatorarray (ρ, θ)-Paare, die Linien entsprechen. Die Stimmen in dem zweidimensionalen Akkumulatorarray können somit nach lokalen Maxima durchsucht werden, die Linien im (x, y)-Raum des ursprünglichen Bildes entsprechen.
  • Ein Beispiel kann die Beziehung zwischen dem Bildraum und dem Hough-Raum weiter veranschaulichen. 1A bzw. 1B zeigen eine vereinfachte Darstellung einer Straße 100 und ihre entsprechende Hough-Transformation 200. Die Straßenszene 100 umfasst Mittelspurmarkierungen 102a, 104a und Randspurmarkierungen 106a, 108a, sowie ein Auto 110a in einer Spur und andere Objekte 112a, 114a, 116a außerhalb der Spuren. Ein (0, 0)-Ursprung 118 im (x, y)-Bildraum, der in der Straßenszene 100 gezeigt ist, ist in der ungefähren Mitte der Szene 100 angeordnet. Wie oben erläutert, reduzieren sich Linien im Bildraum im Hough-Raum auf Punkte; in dem in 1B abgebildeten Hough-Raum 150 entsprechen die Linien 102a, 104a, 106a, 108a den Punkten 102b, 104b, 106b, 108b (man beachte jedoch, dass Artefakte bei der zum Produzieren von 1B verwendeten Umsetzungsprozedur Rauschen um die Punkte 102b, 104b, 106b, 108b herum produzieren). Da die Mittelspurmarkierungen 102a, 104a nahe beim Ursprung 118 liegen, sind ihre ρ-Werte (d. h. die kürzesten Distanzen zwischen den Linien 102a, 104a und dem Ursprung 118) klein, was durch ihre entsprechenden Punkte 102b, 104b im Hough-Raum 150 widergespiegelt wird. Da die Punkte 102a, 104a auf gegenüberliegenden Seiten des Ursprungs 118 liegen, sind ihre θ-Werte ungefähr gleich und entgegengesetzt, was wieder im Hough-Raum 150 widergespiegelt wird. Die Randspurmarkierungen 106a, 108a, die weiter vom Ursprung 118 entfernt sind, weisen wie gezeigt größere θ-Werte auf. Die anderen Objekte 110a, 112a, 114a, 116a in der Straßenszene 100 bestehen aus vielen gekrümmten Linien und anderen Formen und transformieren sich somit in Bänder 110b, 112b, 114b, 116b von (ρ, θ)-Paaren.
  • Ein Computerprozessor, der die Hough-Transformation implementiert, speichert das Kantenbild im Speicher und kann abhängig davon, wo sich die Kanten darin befinden, zu einem beliebigen Zeitpunkt auf einen beliebigen Teil des Kantenbildes zugreifen müssen. Zusätzlich erfordern bestehende Systeme und Verfahren ein großes zweidimensionales Akkumulatorarray zum Abrechnen der Stimmen für die ρ- und θ-Werte; diese Anforderungen hängen beide von schnellem Speicher ab. Typischerweise ist Speicher in einem Computersystem hierarchisch angeordnet, wobei sich relativ kleiner und schneller (aber kostspieliger) Speicher in der Nähe des Prozessors und relativ großer und langsamer (aber billiger) Speicher weiter vom Prozessor entfernt befindet. Man beachte, dass in der vorliegenden Anmeldung der Ausdruck „lokaler Speicher” den schnellen Speicher bedeutet, dieser Ausdruck aber nicht als Beschränkung gedacht ist und für eine beliebige Art von Registerfile, Cache, L1- oder L2-Speicher oder eine beliebige andere Art von Speicher gelten kann, der in der Hierarchie dem Prozessor näher ist als der große langsame Speicher (der hier als „Haupt”- oder „System”-Speicher bezeichnet wird).
  • Die großen Größen des zweidimensionalen Akkumulatorarrays und des Kantenbildes sowie der unvorhersehbare „direkte” Zugriff der Hough-Transformation auf diese bedeuten nicht nur, dass sie nicht in den lokalen Speicher passen können, sondern auch dass Teile des Akkumulatorarrays und des Kantenbildes nicht effizient Cache-gespeichert werden können; solange nicht der lokale Speicher oder Cache groß genug ist, um das gesamte Kantenbild und Akkumulatorarray zu speichern, wird die Hough-Transformation sehr langsam laufen, da sie wiederholte direkte Zugriffe auf einen entfernten Hauptspeicher vornimmt. Moderne Desktop-Computerprozessoren können über ausreichend große lokale Speicher verfügen, um auch die Hough-Transformation laufen zu lassen, aber bei stromsparenden Mobil- oder Digitalsignalprozessoren, wie etwa den in fahrzeuggestützten Bilddetektionssystemen verwendeten, ist dies nicht der Fall. Das Problem verschlimmert sich nur mit der andauernden Entwicklung von kostengünstigen hochauflösenden Digitalkameras, die Digitalbilder mit immer weiter zunehmender Größe erzeugen. Es wird deshalb ein effizientes Liniendetektionssystem benötigt, das in der Lage ist, schnell auf einem Prozessor zu laufen, der begrenzten lokalen Speicher aufweist.
  • KURZFASSUNG DER ERFINDUNG
  • Ausführungsformen der vorliegenden Erfindung umfassen ein System und ein Verfahren zum Detektieren von Linien in einem Bild durch dynamische Verwendung eines begrenzten lokalen Speicherplatzes. Unter Verwendung einer Hough-Transformation werden die aus den (x, y)-Kantendaten des Bildraums erzeugten Hough-Raum-(ρ, θ)-Daten im Fluge analysiert (z. B. unter Verwendung nur eines eindimensionalen Akkumulatorarrays), um dadurch den erforderlichen Speicherplatz zu verringern. Für jeden Wert von θ in einer gegebenen Menge von θ-Werten (im Bereich zum Beispiel zwischen 0 und 180 Grad) wird eine Menge von ρ-Werten für jedes der den detektierten Kanten entsprechenden (x, y)-Pixel berechnet. Die ρ-Werte werden in dem eindimensionalen Array gespeichert, das dann nach lokalen Maxima durchsucht wird. Wenn die detektierten lokalen Maxima größer als die bereits (für zuvor analysierte Werte von θ) entdeckten sind, wird die Menge lokaler Maxima auf die neu detektierten größeren Werte aktualisiert. Somit wird jeder Wert von θ der Reihe nach analysiert.
  • In einem Aspekt umfasst ein Verfahren zum Detektieren einer Linie in einem Bild das Empfangen von Bildraum-Pixeldaten, die den detektierten Kanten im Bild entsprechen. Unter Verwendung eines lokalen Speichers wird ein Ergebnis einer teilweisen Umsetzung der Bildraum-Pixeldaten in Hough-Raum-Daten berechnet. Es wird eine Kante detektiert, die einer in der teilweisen Umsetzung anwesenden Linie entspricht, und die Linie wird mit anderen in zuvor berechneten teilweisen Umsetzungen detektierten Linien verglichen, um eine längste Linie in dem Bild zu identifizieren.
  • Bei verschiedenen Ausführungsformen umfasst das Berechnen der teilweisen Umsetzung einen linearen Zugriff auf die Bildraum-Pixeldaten. Ein Bereich von θ kann in mehrere diskrete Werte innerhalb eines vorbestimmten Bereichs aufgeteilt werden, und jeder teilweisen Umsetzung kann ein Wert von θ zugewiesen werden. Das Berechnen des Ergebnisses der teilweisen Umsetzung kann Folgendes umfassen: (i) Berechnen mehrerer θ-Werte unter Verwendung der Bildraum-Pixeldaten und eines vorbestimmten Werts von θ und (ii) Speichern von Stimmen, die den θ-Werten entsprechen, im lokalen Speicher. Das Analysieren des Ergebnisses kann Suchen nach einer maximalen Anzahl von in dem lokalen Speicher gespeicherten Stimmen umfassen, und die Maximalzahl der Stimmen kann mit einer vorbestimmten Schwelle verglichen werden. Das Vergleichen der Linie mit anderen Linien kann umfassen, Stimmen für die Linie mit Stimmen für eine zuvor detektierte Linie zu vergleichen.
  • Das Analysieren des Ergebnisses kann ferner Speichern der Linie in einem Array detektierter Linien umfassen; das Speichern der Linie kann Überschreiben einer zuvor detektierten, aber kürzeren Linie umfassen. Die Linie kann in dem Array detektierter Linien gespeichert werden, wenn die Linie nicht innerhalb eines Rauschwerts einer zuvor detektierten Linie liegt, die aktuell in dem Array detektierter Linien gespeichert ist; als Alternative oder zusätzlich kann die Linie in dem Array detektierter Linien gespeichert werden, wenn die Linie (i) innerhalb eines Rauschwerts einer zuvor detektierten Linie liegt, die aktuell in dem Array detektierter Linien gespeichert ist, und (ii) länger als die zuvor detektierte Linie ist.
  • In einem anderen Aspekt umfasst ein System zum Detektieren von Linien in einem Bild einen lokalen Speicher und einen über eine schnelle Schnittstelle mit dem lokalen Speicher verbundenen Prozessor. Der Prozessor ist dafür ausgelegt, Bildraum-Pixeldaten zu empfangen, die detektierten Kanten in dem Bild entsprechen, unter Verwendung des lokalen Speichers ein Ergebnis einer teilweisen Umsetzung der Bildraum-Pixeldaten aus dem Bildraum in den Hough-Raum zu berechnen, das Ergebnis für eine Kante, die einer in der teilweisen Umsetzung anwesenden Linie entspricht, zu analysieren und die Linie mit anderen Linien zu vergleichen, die in zuvor berechneten teilweisen Ergebnissen detektiert werden, um eine längste Linie in dem Bild zu identifizieren.
  • Bei verschiedenen Ausführungsformen umfasst das System ferner einen Hauptspeicher, der über eine langsame Schnittstelle mit dem Prozessor verbunden ist, zum Speichern des Bildes. Eine Größe des Bildes kann größer als eine Größe des lokalen Speichers sein, und der Prozessor kann ein Digitalsignalprozessor sein. Eine Kamera kann das Bild erzeugen. Ein Eingangsport kann das Bild oder Bildraum-Pixeldaten von einem lokalen Speichermedium oder von einem Netzwerk empfangen. Der Prozessor kann ferner dafür ausgelegt sein, Kanten in dem Bild zu detektieren, und die Bildraum-Pixeldaten zu erzeugen. Der lokale Speicher kann ein Array detektierter Linien zum Speichern der Linie umfassen. Das Berechnen des Ergebnisses der teilweisen Umsetzung kann Folgendes umfassen: (i) Berechnen mehrerer θ-Werte unter Verwendung der Bildraum-Pixeldaten und eines vorbestimmten Werts von θ und (ii) Speichern von Stimmen entsprechend den θ-Werten im lokalen Speicher. Das Analysieren des Ergebnisses kann Suchen nach einer maximalen Anzahl von Stimmen, die in dem lokalen Speicher gespeichert sind, umfassen.
  • In einem anderen Aspekt analysiert ein Spurdetektionssystem von einer am Fahrzeug angebrachten Kamera empfangene Straßenbilder. Das System umfasst einen lokalen Speicher und einen über eine schnelle Schnittstelle mit dem lokalen Speicher verbundenen Prozessor. Der Prozessor empfängt Bildraum-Pixeldaten von der Kamera, die detektierten Kanten in dem Straßenbild entsprechen, berechnet unter Verwendung des lokalen Speichers ein Ergebnis einer teilweisen Umsetzung der Bildraum-Pixeldaten aus dem Bildraum in den Hough-Raum, analysiert das Ergebnis für eine Kante, die einer Linie entspricht, die in der teilweisen Umsetzung anwesend ist, vergleicht die Linie mit anderen in zuvor berechneten teilweisen Ergebnissen detektierten Linien, um eine längste Linie in dem Bild zu identifizieren, und detektiert die Spur mindestens teilweise auf der Basis der identifizierten längsten Linie. Die Linie kann eine Linienmarkierung umfassen.
  • In einem anderen Aspekt betrifft die Erfindung ein Fahrzeug, das mit einer digitalen Standbild- oder Videokamera und einem Spurdetektionssystem wie oben beschrieben ausgestattet ist. Das Fahrzeug kann Ansprechschaltkreise umfassen, um den Fahrer im Fall von durch das Spurdetektionssystem detektiertem Driften zu warnen, oder kann Lenksteuerlogik umfassen, um den Kurs des Fahrzeugs automatisch zu ändern, um Drift zu korrigieren. In einem weiteren Aspekt betrifft die Erfindung eine mobile Vorrichtung, wie etwa ein „Smartphone”, die mit einer digitalen Standbild- oder Videokamera ausgestattet und dafür programmiert ist, die oben beschriebene Spurdetektionsfunktionalität zu implementieren. Die mobile Vorrichtung kann ferner dafür programmiert sein, den Fahrer mit visuellen und/oder Audiohinweisen zu warnen, wenn Drift detektiert wird.
  • In einem anderen Aspekt umfasst ein Verfahren zum Detektieren einer Linie in einem Bild (a) Empfangen von Bildraum-Pixeldaten, die detektierten Kanten in dem Bild entsprechen; (b) Berechnen eines Ergebnisses einer teilweisen Umsetzung der Bildraum-Pixeldaten in Hough-Raum-Pixeldaten unter Verwendung eines lokalen Speichers; (c) Detektieren einer Kante, die einer Linie entspricht, die in der teilweisen Umsetzung anwesend ist; (d) Wiederholen der Schritte (b) und (c); und (e) Vergleichen einer in Schritt (c) detektierten Line mit anderen in vorherigen Iterationen von Schritt (c) detektierten Linien, um eine längste Linie in dem Bild zu identifizieren.
  • Diese und andere Aufgaben werden zusammen mit Vorteilen und Merkmalen der hier offenbarten vorliegenden Erfindung durch Bezugnahme auf die folgende Beschreibung, die beigefügten Zeichnungen und die Ansprüche besser ersichtlich. Ferner versteht sich, dass die Merkmale der verschiedenen hier beschriebenen Ausführungsformen sich nicht gegenseitig ausschließen und in verschiedenen Kombinationen und Permutationen existieren können.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • In den Zeichnungen beziehen sich in den verschiedenen Ansichten im Allgemeinen gleiche Bezugszeichen durchweg auf dieselben Teile. In der folgenden Beschreibung werden verschiedene Ausführungsformen der vorliegenden Erfindung mit Bezug auf die folgenden Zeichnungen beschrieben. Es zeigen:
  • 1A und 1B eine Straßenszene bzw. ihre Hough-Raum-Transformation;
  • 2 ein Flussdiagramm eines Verfahrens zum Detektieren von Linien in einem Bild gemäß einer Ausführungsform der Erfindung;
  • 3 ein Blockdiagramm eines Systems zum Detektieren von Linien in einem Bild gemäß einer Ausführungsform der Erfindung;
  • 4A4B eindimensionale Akkumulatorarrays repräsentierende Tabellen gemäß Ausführungsformen der Erfindung; und
  • 5 eine ein Array detektierter Linien repräsentierende Tabelle gemäß einer Ausführungsform der Erfindung.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Ein Verfahren 200 zum Detektieren von Linien in einem Bild unter Verwendung eines Prozessors mit begrenztem lokalem Speicher ist in 1 dargestellt. Zuerst wird eine kurze Übersicht über jeden Schritt in dem Verfahren 200 gegeben; jeder Schritt wird nachfolgend ausführlicher beschrieben. In einem ersten Schritt 202 werden Bildraum-(x, y)-Pixeldaten, die einer oder mehreren detektierten Kanten in einem Quellenbild entsprechen, von einer Eingangsquelle empfangen. Die Größe der Pixeldaten ist dergestalt, dass sie nicht alle gleichzeitig in dem lokalen Speicher gespeichert werden können. Die Daten können in einem tabulierten oder Arrayformat gespeichert werden oder als geordnete Liste oder in einem beliebigen anderen Format, das einer zweidimensionalen (x, y)-Anordnung entspricht oder in eine solche umsetzbar ist. Jedes solche Format qualifiziert sich als Bilddaten-(x, y)-Pixeldaten, so wie dieser Ausdruck hier verwendet wird.
  • In einem zweiten Schritt 204 wird die Umsetzung der (x, y)-Pixeldaten aus dem Bildraum in den Hough-Raum unter Verwendung eines lokalen Speichers teilweise berechnet. In einem dritten Schritt 206 wird das Ergebnis der teilweisen Umsetzung für eine Kante, die einer Linie entspricht, die in der teilweisen Umsetzung anwesend ist, analysiert. In einem vierten Schritt 208 wird die Linie mit anderen in zuvor berechneten teilweisen Ergebnissen detektierten Linien verglichen, um dadurch eine längste Linie in dem Bild zu identifizieren. Wie auch später ausführlicher erläutert werden wird, können der zweite 204, dritte 206 und vierte 208 Schritt für jeden Wert von θ wiederholt werden, und der kleine lokale Speicher kann für jede neue Schleife durch die Schritte wiederverwendet werden. Während in jeder Schleife neue Linien identifiziert werden, werden sie mit zuvor identifizierten Linien verglichen und gemäß ihrer Größe und/oder anderen Faktoren entweder abgespeichert oder ignoriert.
  • Wieder mit ausführlicherem Bezug auf den ersten Schritt 202 können die Bildraum(x, y)-Pixeldaten von einer beliebigen geeigneten Quelle empfangen werden, wie etwa einer Kamera oder einer anderen Bildaufnahmevorrichtung, einem lokalen Speichermedium (z. B. CD, DVD, Festplatte, Flash-Speicher oder ein anderes solches Medium), einer Netzwerkverbindung oder einem Computerspeicher, und über einen Eingangsport abgeliefert werden. Die Pixeldaten können ein Kantenbild in einem beliebigen bekannten Format (wie etwa JPEG, GIF, PNG oder BMP) sein und umfassen eine zweidimensionale Repräsentation des Orts von Kanten in einem ursprünglichen Bild. Zum Beispiel können in einem Bild detektierte Kanten durch eine dunklere Farbe als Nicht-Kantenregionen in dem Bild repräsentiert werden. Als Alternative oder zusätzlich können die Pixeldaten Zahlen umfassen, die (x, y)-Koordinaten von Kanten in dem ursprünglichen Bild beschreiben; die (x, y)-Werte können komprimiert oder unkomprimiert sein und können in einem beliebigen Format vorliegen (z. B. Integer, Fest- oder Gleitkomma). Bei einer Ausführungsform werden die (x, y)-Koordinaten für alle Kantenpixel in einem linearen Array gespeichert. Da der Zugriff auf die Kantenpixel linear und deterministisch (z. B. von links nach rechts und oben nach unten in dem Bild oder in einer beliebigen anderen Reihenfolge) erfolgt, kann nur ein Teil der Kantenpixel auf einmal gelesen (und z. B. in dem lokalen Speicher gespeichert) werden; wenn der Lokalspeicher von Kantenpixeln nahezu ausgeschöpft ist, kann eine neue Menge von Kantenpixeln abgerufen werden, bevor sie benötigt werden, um dadurch ununterbrochenen Betrieb des hier beschriebenen Verfahrens zu erlauben.
  • Die vorliegende Erfindung ist nicht auf irgendeine konkrete Repräsentation der in dem ursprünglichen Bild detektierten Kanten beschränkt, und jedes Verfahren zum Vermitteln dieser Informationen liegt im Schutzumfang der vorliegenden Erfindung. Die Kantendetektionsfunktion, die die (x, y)-Pixeldaten erzeugt, kann auf demselben Prozessor oder System wie das Verfahren 200 der vorliegenden Erfindung laufen oder kann auf einem separaten Prozessor oder System laufen. Das System, das die Kantendetektionsfunktion implementiert, kann Videobilder und/oder -teilbilder direkt von einer Digitalkamera oder einer anderen Bildaufnahmevorrichtung empfangen oder die Bilder können zuerst auf einem bestimmten anderen System verarbeitet und/oder gespeichert werden.
  • Im zweiten Schritt 204 wird die Umsetzung der (x, y)-Pixeldaten aus dem Bildraum in den Hough-Raum unter Verwendung eines lokalen Speichers teilweise berechnet. Bei einer Ausführungsform wird ein einzelner Wert von θ aus einer vorbestimmten Menge von θ-Werten ausgewählt; dann werden unter Verwendung von Gleichung (2), der empfangenen Menge von (x, y)-Pixeln und des einzelnen Werts von θ mehrere ρ-Werte berechnet. Der Rest der θ-Werte wird in nachfolgenden Schleifen durch den zweiten Schritt 204 verwendet, aber in jeder Schleife wird nur ein einzelner Wert von θ verwendet, um dadurch die Anzahl der erzeugten ρ-Werte und den zum Speichern ihrer akkumulierten Stimmen erforderlichen Speicherplatz zu begrenzen. Wenn es die Größe des lokalen Speichers erlaubt, können ρ-Werte für mehr als einen Wert von θ pro Schleife berechnet werden. Bei einer Ausführungsform werden Daten, die mit den berechneten ρ-Werten assoziiert sind (z. B. Stimmen, wie später ausführlicher erläutert werden wird) in einem eindimensionalen Akkumulatorarray im lokalen Speicher gespeichert.
  • Der Bereich von θ-Werten kann von Anwendung zu Anwendung unterschiedlich sein; zum Beispiel kann ein System, das dafür ausgelegt ist, Bilder zu scannen, die unbekannte Formen enthalten, θ von 0 bis 180 Grad scannen, während ein an Fahrzeugen angebrachtes System, bei dem angenommen wird, dass Spurmarkierungen bedeutende Linien in einen bekannten Bereich von Winkeln fallen, θ nur von 0 bis 90 Grad oder 45 bis 135 Grad scannen kann. Die Anzahl der θ-Werte in dem Bereich (d. h. die Schrittgröße jedes θ-Werts) kann auch eingestellt werden; mehr θ-Werte können auf Kosten zusätzlicher Verarbeitungszeit ein genaueres Ergebnis produzieren. Man beachte jedoch, dass zusätzliche θ-Werte keinen zusätzlichen lokalen Speicherplatz erfordern, weil jeder θ-Wert den Platz wiederverwendet. Bei verschiedenen Ausführungsformen können 10, 100 oder 1000 θ-Werte in dem bestimmten Bereich verwendet werden.
  • Genauer gesagt werden laufende Abrechnungen von Stimmen für einen Bereich von ρ-Werten in dem lokalen Speicher akkumuliert; jedes Mal, wenn ein neues ρ berechnet wird, wird ein entsprechender Stimmenzählwert inkrementiert. Bei einer Ausführungsform werden die Stimmen in einem eindimensionalen Akkumulatorarray gespeichert, aber die vorliegende Erfindung ist nicht auf irgendeine konkrete Datenstruktur beschränkt und jedes beliebige geeignete System zur Speicherung liegt im Schutzumfang der vorliegenden Erfindung. Der lokale Speicher kann entsprechend ρ-Werten zum Beispiel zwischen 0–10, –10–10, –100–100 oder 0–100 in Stimmen-Bins oder -Buckets aufgeteilt werden. Bei einer Ausführungsform wird der Bereich von Bins dynamisch durch die Größe des Eingangsbildes bestimmt, und die Obergrenze wird durch die diagonale Distanz über das Bild bestimmt. Die Schrittgröße von ρ zwischen Bins kann vergrößert werden, um Speicherplatz zu sparen, oder vermindert werden, um die Genauigkeit der Liniendetektion zu verbessern. Bei verschiedenen Ausführungsformen beträgt die Schrittgröße 0,1, 0,5, 1,0 oder 5,0. Jeder Wert von ρ kann in dem Akkumulatorarray abgerechnet werden, während er berechnet wird, oder mehrere ρ-Werte. Bei einer Ausführungsform beträgt die Größe des Eingangsbildes 720×480 Pixel, und das Akkumulatorarray erfordert 3170 Byte lokalen Speicher.
  • In dem dritten Schritt 206 wird das Ergebnis der teilweisen Umsetzung (d. h. Teil der Umsetzung in den Hough-Raum entsprechend einem einzelnen Wert von θ) auf Kanten analysiert, die Linien entsprechen, die in diesem Teil des Umsetzungsprozesses anwesend sind. Bei einer Ausführungsform werden die akkumulierten Stimmen auf eine vorbestimmte Anzahl lokaler Maxima analysiert. Die vorbestimmte Anzahl kann für verschiedene Anwendungen unterschiedlich sein; ein an Fahrzeugen angebrachtes System kann dafür ausgelegt sein, zum Beispiel nach den zwei größten Maxima zu suchen, die den zwei Spurmarkierungen entsprechen können, die dem Fahrzeug am nächsten sind. Das System kann jedoch dafür ausgelegt sein, nach beliebig vielen (d. h. einem oder mehreren) Maxima zu suchen. Es kann ein Schwellenwert spezifiziert werden, und ein infrage kommender Stimmenzählwert kann sich nur dann als potentielles Maximum qualifizieren, wenn er die Schwelle überschreitet. Die Schwelle hängt von der Anwendung ab und wird unkompliziert ohne zu viel Experimentierung identifiziert. Sie kann zum Beispiel nach unten eingestellt werden, um kürzere Linien zu detektieren, oder nach oben, um längere Linien zu detektieren. Bei einer Ausführungsform wird die Schwelle dynamisch nach unten eingestellt, wenn keine Linien in einem Bild gefunden werden, oder nach oben, wenn zu viele Linien gefunden werden. Wenn die vorbestimmte Anzahl von Maxima bereits in einem ersten Teil des Akkumulatorarrays gefunden wird und später in einem zweiten Teil des Akkumulatorarrays ein größeres Maximum entdeckt wird, ersetzt das größere Maximum das bereits gefundene Maximum mit dem kleinsten Wert. Sobald die vorbestimmte Anzahl von Maxima gefunden ist, können zukünftige Stimmenzählwerte anstelle der Schwelle mit dem kleinsten Wert der bereits gefundenen Maxima verglichen werden.
  • Andere potentielle Maxima können verworfen werden, wenn sie in einen rauschbehafteten Bereich eines bereits detektierten Maximums fallen. Zum Beispiel kann eine Spurmarkierung so dick sein, dass für die Linien, aus denen ihr linker Rand und ihr rechter Rand bestehen, ein maximaler Stimmenzählwert detektiert wird, und ein Spurdetektionssystem kann bevorzugen, dass für jede Spurmarkierung nur eine Linie detektiert wird. Somit kann ein Rauschwert konsultiert werden, wenn ein lokales Maximum detektiert wird, und bevor das detektierte lokale Maximum gewählt wird, wird der (ρ, θ)-Raum innerhalb der Distanz des Rauschwerts von dem Maximum nach anderen zuvor detektierten Maxima durchsucht. Wenn eins gefunden wird, wird das aktuell detektierte Maximum verworfen. Bei einer Ausführungsform wird das zuvor detektierte Maximum verworfen und das aktuelle verwendet, selbst wenn die zwei Linien innerhalb eines Rauschwerts voneinander liegen, wenn der Stimmenzählwert des aktuellen Maximums größer ist. Eine solche Situation kann entstehen, wenn zum Beispiel das aufgenommene Bild eine Überholspurmarkierung mit einer gestrichelten Linie unmittelbar neben einer durchgezogenen Linie enthält. Wenn ein lokales Maximum, das einem der Striche entspricht, zuerst detektiert und abgespeichert wird, wird es verworfen, wenn das der angrenzenden durchgezogenen längeren Linie entsprechende Maximum detektiert wird. Es können für ρ und θ jeweils getrennte Rauschparameter definiert werden und verschiedene Rauschparameter für jedes der vorbestimmten Anzahl von Maxima definiert werden (z. B. kann das erste Maximum bzw. die erste Linie dafür konfiguriert werden, eine niedrigere Rauschtoleranz als ein zweites bzw. eine zweite zu verwenden). Bei einer Ausführungsform werden die verschiedenen Mengen von Rauschparametern in einer Datenstruktur zusammen mit der für jedes detektierte Maximum abgespeicherten Anzahl der Stimmen gespeichert.
  • Im vierten Schritt 208 werden die Linie oder Linien, die in der teilweisen Umsetzung detektiert werden, mit anderen Linien verglichen, die in zuvor berechneten teilweisen Ergebnissen detektiert werden. Die anderen Linien können in dem lokalen Speicher gespeichert und darin in einer Datenstruktur, wie etwa einem Array detektierter Linien, abgelegt werden. Eine neu detektierte Linie kann einen leeren Schlitz in dem Array detektierter Linien füllen oder eine existierende Linie in dem Array ersetzen, wenn sie eine größere Anzahl von Stimmen aufweist als mindestens eine bereits anwesende Linie aufweist und außerhalb der ρ- und/oder θ-Rauschparameter irgendwelcher bereits anwesender Linien mit größeren Stimmenzählwerten liegt. Man beachte, dass die neu detektierte Linie wie oben erläutert selbst dann eine bereits anwesende Linie ersetzen kann, wenn sie sich innerhalb des Rauschparameters befindet, wenn die neu detektierte Linie einen größeren Stimmenzählwert als die bereits anwesende Linie aufweist. Das Array detektierter Werte kann Felder für Zahl, ρ, θ und/oder Stimmenzählwert einer detektierten Linie umfassen.
  • Bei einer Ausführungsform wird das Ergebnis der teilweisen Umsetzung analysiert (wie z. B. im Schritt 3 206), und die analysierten Ergebnisse (z. B. eine oder mehrere in Schritt 4 208 gefundene Linien) werden dann mit zuvor berechneten Ergebnissen verglichen. Bei einer anderen Ausführungsform werden die Schritte 3 206 und 4 208 parallel ausgeführt, und jeder Stimmenzählwert in dem Akkumulatorarray wird gleichzeitig mit seinem Vergleich mit seinen Nachbarn in dem Akkumulatorarray mit Einträgen in dem Array detektierter Linien verglichen. Die vorliegende Erfindung ist nicht auf irgendeine konkrete Anordnung der hier beschriebenen Schritte 202, 204, 206, 208 beschränkt, und eine beliebige Kombination oder Teilung von Schritten oder Umordnung von Schritten liegt im Schutzbereich der vorliegenden Erfindung.
  • In 3 ist ein System 300 zum Detektieren von Linien unter Verwendung eines Prozessors 302 mit begrenztem lokalem Speicher 304 dargestellt. Der Prozessor 302 kann ein Digitalsignalprozessor oder ein stromsparender Prozessor sein. Bei einer Ausführungsform ist der lokale Speicher 304 ein neben dem Prozessor 302 wie in 3 gezeigt angeordneter Cache; bei einer anderen Ausführungsform befindet sich der lokale Speicher 304 in dem Prozessor (z. B. L1-Speicher). Jeder lokale Speicher in einem mehrstufigen Speichersystem liegt jedoch im Schutzumfang der vorliegenden Erfindung und die vorliegende Erfindung ist nicht auf irgendeine konkrete Platzierung oder Art von lokalem Speicher 304 beschränkt.
  • Der lokale Speicher 304 ist über eine schnelle Strecke 306 mit dem Prozessor 302 verbunden, wodurch der Prozessor 302 die Inhalte des lokalen Speichers 304 schnell lesen und schreiben kann (z. B. in einem, fünf oder zehn Taktzyklen). Im Gegensatz dazu befindet sich ein Hauptspeicher 308 von dem Prozessor 302 entfernt und ist über eine langsame Strecke 310 verbunden. Der Hauptspeicher 308, der um eine Größenordnung größer als der lokale Speicher 304 sein kann, erfordert viel mehr Taktzyklen als der lokale Speicher 304 zum Speichern und Abrufen von Daten durch den Prozessor 302 (z. B. 100 Zyklen). Die Speicherung des eindimensionalen Akkumulators und Arrays detektierter Linien in dem lokalen Speicher 304 gemäß der vorliegenden Erfindung erlaubt somit eine viel schnellere Ausführung der Hough-Transformation als ansonsten möglich, mindestens weil der lokale Speicher 304 nicht groß genug ist, um ein gesamtes Bild und/oder ein zweidimensionales Akkumulatorarray zu speichern. Wenn Transfer zwischen dem lokalen Speicher 304 und dem Hauptspeicher 308 erwünscht ist, kann Direktspeicherzugriff verwendet werden, um den Transfer zu maximieren.
  • Bei einer Ausführungsform liefert ein Kantendetektor 312 (x, y)-Pixeldaten über einen Eingangsport 314 an den Prozessor 302. Der Kantendetektor 312 kann eine getrennte Komponente (oder Teil einer getrennten Komponente) sein oder kann in dem Prozessor 302 angeordnet sein. Die vorliegende Erfindung ist nicht auf irgendeine konkrete Platzierung (oder Implementierung) des Kantendetektors 312 beschränkt. Der Kantendetektor 312 kann Bilder von einer Kamera 316, wie etwa einer an Fahrzeugen angebrachten Kamera, empfangen. Eine Benutzeroberfläche 318 kann verwendet werden, um Benutzerbefehle, Parameter oder andere Daten in den Prozessor 302 einzugeben (wie zum Beispiel die oben besprochenen Schwellen- und/oder Rauschparameter) und kann mit Bezug auf den Prozessor 302 lokal oder entfernt (z. B. über eine Netzwerkverbindung) angeordnet sein. Die Benutzeroberfläche 318 kann zum Ausgeben von Daten an einen Benutzer verwendet werden, wie etwa durch Ertönenlassen eines Alarms oder Bereitstellen eines visuellen Hinweises, wenn das Fahrzeug zu nahe an eine Spurgrenze driftet. Bei einer Ausführungsform ist der Prozessor 302 über Stellglieder mit dem Lenksystem des Fahrzeugs verbunden und kann das Fahrzeug von einer zu nahen Spurgrenze weglenken. Bei einer anderen Ausführungsform ist der Prozessor 302 der Zentralprozessor einer mobilen Vorrichtung, wie etwa eines „Smartphone”, die eine Kamera enthält und so in dem Fahrzeug positioniert werden kann, dass die Bordkamera der Vorrichtung die Straße vor dem Fahrzeug kontinuierlich scannt, während die Anzeige der Vorrichtung (und darauf als Reaktion auf Spurdetektion bereitgestellte Driftwarnungen) dem Benutzer leicht sichtbar bleiben.
  • 4A, 4B und 5 zeigen Beispiele für ein eindimensionales Akkumulatorarray 400a, 400b bzw. ein Array 500 detektierter Linien gemäß einer Ausführungsform der Erfindung. Die Größen der Arrays 400a, 400b, 500 und die Werte darin sind beispielhaft gewählt und sollen auf keinerlei Weise beschränken. 4A zeigt das Ergebnis einer teilweisen Umsetzung von (x, y)-Kantendaten aus dem Bildraum in den Hough-Raum; speziell werden ρ-Stimmen in dem Array 400a für einen gegebenen θ-Wert über die (x, y)-Daten akkumuliert. In diesem Beispiel beträgt θ zehn; es wurden 35 ρ-Werte berechnet, die ungefähr gleich drei sind (ein erstes Maximum 402), und 34 ρ-Werte wurden berechnet, die ungefähr gleich fünf sind (ein zweites Maximum 404). Die zwei Maxima 402, 404 können Kanten derselben breiten Linie entsprechen; in diesem Beispiel wird deshalb der ρ-Rauschparameter auf drei gesetzt, um diese Doppeldetektion derselben Linie zu vermeiden. Nur das größere der zwei Maxima 402 wird deshalb als der erste Eintrag 406 in dem Array 500 detektierter Linien hinzugefügt.
  • 4B zeigt eine teilweise Umsetzung der (x, y)-Daten für einen neuen Wert von θ (nämlich zwanzig). Es werden wieder zwei Maxima detektiert; das erste 408 bei einem ρ-Wert von drei (29 Stimmen) und das zweite 410 bei einem ρ-Wert von neun (58 Stimmen). In diesem Beispiel wird der θ-Rauschparameter auf fünf gesetzt; das erste Maximum 408 wird, weil es eine größere θ-Distanz von dem ersten detektierten Maximum 406 als der Betrag des θ-Rauschparameters entfernt ist, deshalb zu dem leeren Schlitz 412 in dem Array 500 detektierter Linien hinzugefügt. Nachdem das zweite Maximum 410 detektiert wird, wird jedoch, da es einen größeren Stimmenzählwert aufweist (und außerhalb der ρ- und θ-Rauschparameter mit Bezug auf die detektierten Linien liegt), das erste Maximum 408 in dem Array 500 detektierter Linien ersetzt und überschreibt den zweiten Schlitz 412.
  • Es sollte auch beachtet werden, dass Ausführungsformen der vorliegenden Erfindung als ein oder mehrere computerlesbare Programme bereitgestellt werden können, die auf oder in mehreren Herstellungsartikeln realisiert werden. Der Herstellungsartikel kann eine beliebige geeignete Hardwarevorrichtung sein, wie etwa eine Diskette, eine Festplatte, eine CD-ROM, eine CD-RW, eine CD-R, eine DVD-ROM, eine DVD-RW, eine DVD-R, eine Flash-Speicherkarte, ein PROM, ein RAM, ein ROM oder ein Magnetband. Im Allgemeinen können die computerlesbaren Programme in einer beliebigen Programmiersprache implementiert werden. Einige Beispiele für Sprachen, die verwendet werden können, wären C, C++ oder JAVA. Die Softwareprogramme können ferner in Maschinensprache oder Virtuellmaschinenanweisungen übersetzt und in einer Programmdatei in dieser Form gespeichert werden. Die Programmdatei kann dann auf oder in einem oder mehreren Herstellungsartikeln gespeichert werden.
  • Oben wurden bestimmte Ausführungsformen der vorliegenden Erfindung beschrieben. Es wird jedoch ausdrücklich darauf hingewiesen, dass die vorliegende Erfindung nicht auf diese Ausführungsformen beschränkt ist, sondern beabsichtigt ist, dass Zusätze und Modifikationen an dem hier ausdrücklich Beschriebenen auch in den Schutzumfang der Erfindung fallen. Außerdem versteht sich, dass die Merkmale der verschiedenen hier beschriebenen Ausführungsformen sich nicht gegenseitig ausschlossen und in verschiedenen Kombinationen und Permutationen existieren können, selbst wenn solche Kombinationen oder Permutationen hier nicht ausdrücklich erwähnt werden, ohne vom Gedanken und Schutzumfang der Erfindung abzuweichen. Tatsächlich werden Durchschnittsfachleuten Varianten, Modifikationen und andere Implementierungen des hier Beschriebenen einfallen, ohne vom Gedanken und Schutzumfang der Erfindung abzuweichen. Dementsprechend soll die Erfindung nicht nur durch die vorausgehende beispielhafte Beschreibung definiert werden.

Claims (23)

  1. Verfahren zum Detektieren einer Linie in einem Bild, wobei das Verfahren Folgendes umfasst: Empfangen von Bildraum-Pixeldaten, die detektierten Kanten in dem Bild entsprechen; Berechnen eines Ergebnisses einer teilweisen Umsetzung der Bildraum-Pixeldaten in Hough-Raum-Daten unter Verwendung eines lokalen Speichers; Detektieren einer Kante, die einer Linie entspricht, die in der teilweisen Umsetzung anwesend ist; und Vergleichen der Linie mit anderen in zuvor berechneten teilweisen Umsetzungen detektierten Linien, um eine längste Linie in dem Bild zu identifizieren.
  2. Verfahren nach Anspruch 1, wobei das Berechnen der teilweisen Umsetzung einen linearen Zugriff auf die Bildraum-Pixeldaten umfasst.
  3. Verfahren nach Anspruch 1, das ferner Aufteilen eines Bereichs von θ in mehrere diskrete Werte in einem vorbestimmten Bereich und Vergeben eines Werts von θ an jede teilweise Umsetzung umfasst.
  4. Verfahren nach Anspruch 1, wobei das Berechnen des Ergebnisses der teilweisen Umsetzung Folgendes umfasst: (i) Berechnen mehrerer ρ-Werte unter Verwendung der Bildraum-Pixeldaten und eines vorbestimmten Werts von θ und (ii) Speichern von Stimmen, die ρ-Werten entsprechen, in dem lokalen Speicher.
  5. Verfahren nach Anspruch 1, wobei das Analysieren des Ergebnisses Suchen nach einer maximalen in dem lokalen Speicher gespeicherten Anzahl von Stimmen umfasst.
  6. Verfahren nach Anspruch 5, das ferner Vergleichen der Maximalzahl der Stimmen mit einer vorbestimmten Schwelle umfasst.
  7. Verfahren nach Anspruch 1, wobei das Vergleichen der Linie mit anderen Linien Vergleichen von Stimmen für die Linie mit Stimmen für eine zuvor detektierte Linie umfasst.
  8. Verfahren nach Anspruch 1, wobei das Analysieren des Ergebnisses ferner Speichern der Linie in einem Array detektierter Linien umfasst.
  9. Verfahren nach Anspruch 8, wobei das Speichern der Linie Überschreiben einer zuvor detektierten, aber kürzeren Linie umfasst.
  10. Verfahren nach Anspruch 8, wobei die Linie in dem Array detektierter Linien gespeichert wird, wenn die Linie nicht innerhalb eines Rauschwerts einer zuvor detektierten Linie liegt, die in dem Array detektierter Linien gespeichert ist.
  11. Verfahren nach Anspruch 8, wobei die Linie in dem Array detektierter Linien gespeichert wird, wenn die Linie (i) innerhalb eines Rauschwerts einer zuvor detektierten Linie liegt, die aktuell in dem Array detektierter Linien gespeichert ist, und (ii) länger als die zuvor detektierte Linie ist.
  12. System zum Detektieren von Linien in einem Bild, wobei das System Folgendes umfasst: einen lokalen Speicher; und einen über eine schnelle Schnittstelle mit dem lokalen Speicher verbundenen Prozessor, wobei der Prozessor ausgelegt ist zum: i. Empfangen von Bildraum-Pixeldaten, die detektierten Kanten in dem Bild entsprechen; ii. Berechnen eines Ergebnisses einer teilweisen Umsetzung der Bildraum-Pixeldaten aus dem Bildraum in den Hough-Raum unter Verwendung des lokalen Speichers; iii. Analysieren des Ergebnisses bezüglich einer Kante, die einer Linie entspricht, die in der teilweisen Umsetzung anwesend ist; und iv. Vergleichen der Linie mit anderen in zuvor berechneten teilweisen Ergebnissen detektierten Linien, um eine längste Linie in dem Bild zu identifizieren.
  13. System nach Anspruch 12, das ferner einen Hauptspeicher zum Speichern des Bildes umfasst, wobei der Hauptspeicher über eine langsame Schnittstelle mit dem Prozessor verbunden ist.
  14. System nach Anspruch 12, wobei eine Größe des Bildes größer als eine Größe des lokalen Speichers ist.
  15. System nach Anspruch 12, wobei der Prozessor ein Digitalsignalprozessor ist.
  16. System nach Anspruch 12, das ferner eine Kamera zum Erzeugen des Bildes umfasst.
  17. System nach Anspruch 12, das ferner einen Eingangsport zum Empfangen des Bildes oder von Bildraum-Pixeldaten aus einem lokalen Speichermedium oder aus einem Netzwerk umfasst.
  18. System nach Anspruch 12, wobei der Prozessor ferner dafür ausgelegt ist, Kanten in dem Bild zu detektieren und die Bildraum-Pixeldaten zu erzeugen.
  19. System nach Anspruch 12, wobei der lokale Speicher ein Array detektierter Linien zum Speichern der Linie umfasst.
  20. System nach Anspruch 12, wobei das Berechnen des Ergebnisses der teilweisen Umsetzung Folgendes umfasst: (i) Berechnen mehrerer ρ-Werte unter Verwendung der Bildraum-Pixeldaten und eines vorbestimmten Werts von θ und (ii) Speichern von Stimmen, die ρ-Werten entsprechen, in dem lokalen Speicher.
  21. System nach Anspruch 12, wobei das Analysieren des Ergebnisses Suchen nach einer maximalen in dem lokalen Speicher gespeicherten Anzahl von Stimmen umfasst.
  22. Spurdetektionssystem zum Analysieren von Straßenbildern, die von einer an Fahrzeugen angebrachten Kamera empfangen werden, wobei das Spurdetektionssystem Folgendes umfasst: einen lokalen Speicher; und einen über eine schnelle Schnittstelle mit dem lokalen Speicher verbundenen Prozessor, wobei der Prozessor ausgelegt ist zum: i. Empfangen von Bildraum-Pixeldaten, die detektierten Kanten in dem Straßenbild entsprechen von der Kamera; ii. Berechnen eines Ergebnisses einer teilweisen Umsetzung der Bildraum-Pixeldaten aus dem Bildraum in den Hough-Raum unter Verwendung des lokalen Speichers; iii. Analysieren des Ergebnisses bezüglich einer Kante, die einer Linie entspricht, die in der teilweisen Umsetzung anwesend ist; iv. Vergleichen der Linie mit anderen in zuvor berechneten teilweisen Ergebnissen detektierten Linien, um eine längste Linie in dem Bild zu identifizieren; und v. Detektieren der Spur mindestens teilweise auf der Basis der identifizierten längsten Linie.
  23. Spurdetektionssystem nach Anspruch 22, wobei die Linie eine Spurmarkierung umfasst.
DE112012004847.4T 2011-11-21 2012-11-16 Verfahren und System zum Detektieren von Linien in einem Bild und Spurdetektionssystem zum Analysieren von Straßenbildern Active DE112012004847B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/300,993 US9349069B2 (en) 2011-11-21 2011-11-21 Dynamic line-detection system for processors having limited internal memory
US13/300,993 2011-11-21
PCT/US2012/065455 WO2013095822A1 (en) 2011-11-21 2012-11-16 Dynamic line-detection system for processors having limited internal memory

Publications (2)

Publication Number Publication Date
DE112012004847T5 true DE112012004847T5 (de) 2014-09-18
DE112012004847B4 DE112012004847B4 (de) 2020-03-12

Family

ID=47263603

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112012004847.4T Active DE112012004847B4 (de) 2011-11-21 2012-11-16 Verfahren und System zum Detektieren von Linien in einem Bild und Spurdetektionssystem zum Analysieren von Straßenbildern

Country Status (4)

Country Link
US (1) US9349069B2 (de)
CN (1) CN103959306B (de)
DE (1) DE112012004847B4 (de)
WO (1) WO2013095822A1 (de)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6102213B2 (ja) * 2012-11-22 2017-03-29 富士通株式会社 画像処理装置、画像処理方法および画像処理プログラム
DE102014109063A1 (de) * 2014-06-27 2015-12-31 Connaught Electronics Ltd. Verfahren zur Detektion eines Objekts mit einer vorbestimmten geometrischen Form in einem Umgebungsbereich eines Kraftfahrzeugs, Kamerasystem und Kraftfahrzeug
FR3026526B1 (fr) 2014-09-26 2017-12-08 Commissariat Energie Atomique Procede et systeme de detection d'evenements de nature connue
KR102087681B1 (ko) 2015-09-17 2020-03-11 삼성전자주식회사 이미지 처리 장치, 이미지 처리 방법 및 컴퓨터 판독가능 기록 매체
CN105608429B (zh) * 2015-12-21 2019-05-14 重庆大学 基于差分激励的鲁棒车道线检测方法
CN113050874A (zh) * 2019-12-26 2021-06-29 华为技术有限公司 一种内存设置方法以及装置

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0361914B1 (de) * 1988-09-28 1995-12-13 Honda Giken Kogyo Kabushiki Kaisha Verfahren und Vorrichtung zur Einschätzung des Fahrweges
US6005984A (en) 1991-12-11 1999-12-21 Fujitsu Limited Process and apparatus for extracting and recognizing figure elements using division into receptive fields, polar transformation, application of one-dimensional filter, and correlation between plurality of images
JPH07111739B2 (ja) 1993-03-19 1995-11-29 株式会社エイ・ティ・アール視聴覚機構研究所 画像処理装置
JP3163215B2 (ja) * 1994-03-07 2001-05-08 日本電信電話株式会社 直線抽出ハフ変換画像処理装置
JPH10208056A (ja) * 1997-01-16 1998-08-07 Honda Motor Co Ltd 直線検出方法
JP3435684B2 (ja) 1997-09-30 2003-08-11 株式会社アドバンテスト 画像情報処理装置
US6603870B1 (en) * 1999-09-30 2003-08-05 Siemens Corporate Research, Inc. Method and apparatus for visual servoing of a linear apparatus
WO2002035909A2 (en) * 2000-11-03 2002-05-10 Siemens Corporate Research, Inc. Video-supported planning and design with physical marker objects sign
US7200282B2 (en) 2001-12-12 2007-04-03 Sony Corporation Implementation of Hough transform and its application in line detection and video motion analysis
US7437006B2 (en) * 2002-03-06 2008-10-14 Siemens Corporate Research, Inc. Error propogation and variable-bandwidth mean shift for feature space analysis
JP4093208B2 (ja) * 2004-05-28 2008-06-04 トヨタ自動車株式会社 車両用走路判定装置
JP4703136B2 (ja) * 2004-06-02 2011-06-15 トヨタ自動車株式会社 線図形化処理装置
KR100594806B1 (ko) * 2004-12-28 2006-06-30 삼성전자주식회사 레터박스 경계를 검출하는 디스플레이장치 및 이를 이용한영상 디스플레이 방법
JP4659631B2 (ja) 2005-04-26 2011-03-30 富士重工業株式会社 車線認識装置
JP4556813B2 (ja) * 2005-09-08 2010-10-06 カシオ計算機株式会社 画像処理装置、及びプログラム
JP4607193B2 (ja) * 2005-12-28 2011-01-05 本田技研工業株式会社 車両及びレーンマーク検出装置
US7738730B2 (en) 2006-01-25 2010-06-15 Atalasoft, Inc. Method of image analysis using sparse hough transform
JP4248558B2 (ja) * 2006-03-24 2009-04-02 トヨタ自動車株式会社 道路区画線検出装置
JP5040258B2 (ja) * 2006-10-23 2012-10-03 株式会社日立製作所 映像監視装置、映像監視システムおよび画像処理方法
US8150207B2 (en) 2007-12-31 2012-04-03 Intel Corporation Accelerating the hough transform
US8249387B2 (en) 2008-03-31 2012-08-21 Sungkyunkwan University Foundation For Corporate Collaboration Image processing method and apparatus for detecting lines of images and start and end points of lines
US8699754B2 (en) * 2008-04-24 2014-04-15 GM Global Technology Operations LLC Clear path detection through road modeling

Also Published As

Publication number Publication date
DE112012004847B4 (de) 2020-03-12
CN103959306B (zh) 2017-09-29
CN103959306A (zh) 2014-07-30
WO2013095822A1 (en) 2013-06-27
US20130128045A1 (en) 2013-05-23
US9349069B2 (en) 2016-05-24

Similar Documents

Publication Publication Date Title
DE102018116111B4 (de) Ein einheitliches tiefes faltendes neuronales Netzwerk für die Abschätzung von Freiraum, die Abschätzung der Objekterkennung und die der Objektstellung
DE102006012914B4 (de) System und Verfahren zur Bestimmung des Abstands zu einem vorausfahrenden Fahrzeug
DE102009015142B4 (de) Fahrzeugumgebungs-Erkennungs-Vorrichtung und Steuerungssystem zum Verfolgen eines vorausfahrenden Fahrzeugs
DE112012004847B4 (de) Verfahren und System zum Detektieren von Linien in einem Bild und Spurdetektionssystem zum Analysieren von Straßenbildern
DE102015121339A1 (de) Systeme und verfahren zum ermitteln eines zustands einer fahrbahn
DE112009001686T5 (de) Objekterfassungsvorrichtung
DE102013112163A1 (de) Objekterkennung
DE102009012441B4 (de) Verfahren zur Reduktion des Speicherbedarfs bei der Bestimmung von Disparitätswerten für mindestens zwei stereoskopisch aufgenommene Bilder
EP2005361A1 (de) Multisensorieller hypothesen-basierter objektdetektor und objektverfolger
DE10324895A1 (de) Verfahren und Vorrichtung zur Objektortung für Kraftfahrzeuge
DE102013205952A1 (de) Rekonfigurierbares System zur Detektion eines freien Pfads
DE102016200828A1 (de) Objekterfassungsvorrichtung und Objekterfassungsverfahren
DE112012004809T5 (de) Kantenverfolgung mit Hysterese-Schwellenwertbildung
DE112013002731T5 (de) Formerkennung unter Nutzung von Kettenkode-Statuszuständen
DE102018111935A1 (de) Bildverarbeitungssystem, Bildverarbeitungsverfahren, Informationsverarbeitungsvorrichtung und Aufzeichnungsmedium
DE102018129388A1 (de) Erkennungsvorrichtung für die äussere umgebung von fahrzeugen
DE102015205505A1 (de) Verfahren und Vorrichtung zum Detektieren elliptischer Strukturen in einem Bild
DE102008015535A1 (de) Verfahren zur Bildverarbeitung von Stereobildern
EP3663881B1 (de) Verfahren zur steuerung eines autonomen fahrzeugs auf der grundlage von geschätzten bewegungsvektoren
DE102014207870A1 (de) Verfahren zur automatisierten Erstellung eines zwei technische Zeichnungen charakterisierenden Datensatzes
EP2192550A1 (de) Verfahren zum Ermitteln der Lageänderung eines Kamerasystems und Vorrichtung zum Erfassen und Verarbeiten von Bildern
DE102012020778B4 (de) Verfahren zum Labeln einer Sequenz von in zeitlicher Abfolge aufgenommenen Bildern mit integrierter Qualitätsprüfung
DE102016124123A1 (de) Verfahren zum Erzeugen eines Clusters von Bildbereichen zum Erfassen eines Zielobjekts in einem Bild, Computerprogrammprodukt, Kamerasystem und Kraftfahrzeug
DE102020208080A1 (de) Erkennung von Objekten in Bildern unter Äquivarianz oder Invarianz gegenüber der Objektgröße
DE102018121317A1 (de) Verfahren und Vorrichtung zur Schätzung einer durch eine Freiraumgeste vermittelten Richtungsinformation zur Bestimmung einer Benutzereingabe an einer Mensch-Maschine-Schnittstelle

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final
R081 Change of applicant/patentee

Owner name: ANALOG DEVICES, INC., WILMINGTON, US

Free format text: FORMER OWNER: ANALOG DEVICES INC., NORWOOD, MASS., US

R082 Change of representative

Representative=s name: WITTE, WELLER & PARTNER PATENTANWAELTE MBB, DE

R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06K0009000000

Ipc: G06V0010000000