DE102019108599A1 - Dynamische batchgrössenauswahl für die bildverarbeitung von fahrzeugkameras - Google Patents

Dynamische batchgrössenauswahl für die bildverarbeitung von fahrzeugkameras Download PDF

Info

Publication number
DE102019108599A1
DE102019108599A1 DE102019108599.3A DE102019108599A DE102019108599A1 DE 102019108599 A1 DE102019108599 A1 DE 102019108599A1 DE 102019108599 A DE102019108599 A DE 102019108599A DE 102019108599 A1 DE102019108599 A1 DE 102019108599A1
Authority
DE
Germany
Prior art keywords
batch size
batch
processing
cameras
mode
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.)
Pending
Application number
DE102019108599.3A
Other languages
English (en)
Inventor
Unmesh Dutta Bordoloi
Shige Wang
Stephen G. Lusko
Jinsong Wang
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.)
GM Global Technology Operations LLC
Original Assignee
GM Global Technology Operations LLC
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 GM Global Technology Operations LLC filed Critical GM Global Technology Operations LLC
Publication of DE102019108599A1 publication Critical patent/DE102019108599A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/667Camera operation mode switching, e.g. between still and video, sport and normal or high- and low-resolution modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/698Control of cameras or camera modules for achieving an enlarged field of view, e.g. panoramic image capture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/62Control of parameters via user interfaces
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/90Arrangement of cameras or camera modules, e.g. multiple cameras in TV studios or sports stadiums
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/18Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast
    • H04N7/181Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast for receiving images from a plurality of remote sources
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R2300/00Details of viewing arrangements using cameras and displays, specially adapted for use in a vehicle
    • B60R2300/10Details of viewing arrangements using cameras and displays, specially adapted for use in a vehicle characterised by the type of camera system used
    • B60R2300/105Details of viewing arrangements using cameras and displays, specially adapted for use in a vehicle characterised by the type of camera system used using multiple cameras
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R2300/00Details of viewing arrangements using cameras and displays, specially adapted for use in a vehicle
    • B60R2300/30Details of viewing arrangements using cameras and displays, specially adapted for use in a vehicle characterised by the type of image processing
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R2300/00Details of viewing arrangements using cameras and displays, specially adapted for use in a vehicle
    • B60R2300/30Details of viewing arrangements using cameras and displays, specially adapted for use in a vehicle characterised by the type of image processing
    • B60R2300/303Details of viewing arrangements using cameras and displays, specially adapted for use in a vehicle characterised by the type of image processing using joined images, e.g. multiple camera images
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R2300/00Details of viewing arrangements using cameras and displays, specially adapted for use in a vehicle
    • B60R2300/60Details of viewing arrangements using cameras and displays, specially adapted for use in a vehicle characterised by monitoring and displaying vehicle exterior scenes from a transformed perspective
    • B60R2300/607Details of viewing arrangements using cameras and displays, specially adapted for use in a vehicle characterised by monitoring and displaying vehicle exterior scenes from a transformed perspective from a bird's eye viewpoint
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R2300/00Details of viewing arrangements using cameras and displays, specially adapted for use in a vehicle
    • B60R2300/80Details of viewing arrangements using cameras and displays, specially adapted for use in a vehicle characterised by the intended use of the viewing arrangement
    • B60R2300/806Details of viewing arrangements using cameras and displays, specially adapted for use in a vehicle characterised by the intended use of the viewing arrangement for aiding parking
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R2300/00Details of viewing arrangements using cameras and displays, specially adapted for use in a vehicle
    • B60R2300/80Details of viewing arrangements using cameras and displays, specially adapted for use in a vehicle characterised by the intended use of the viewing arrangement
    • B60R2300/8066Details of viewing arrangements using cameras and displays, specially adapted for use in a vehicle characterised by the intended use of the viewing arrangement for monitoring rearward traffic
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R2300/00Details of viewing arrangements using cameras and displays, specially adapted for use in a vehicle
    • B60R2300/80Details of viewing arrangements using cameras and displays, specially adapted for use in a vehicle characterised by the intended use of the viewing arrangement
    • B60R2300/8093Details of viewing arrangements using cameras and displays, specially adapted for use in a vehicle characterised by the intended use of the viewing arrangement for obstacle warning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30248Vehicle exterior or interior
    • G06T2207/30252Vehicle exterior; Vicinity of vehicle

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Artificial Intelligence (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Image Analysis (AREA)
  • Traffic Control Systems (AREA)
  • Image Processing (AREA)
  • Mechanical Engineering (AREA)

Abstract

Beispiele für Techniken zur dynamischen Auswahl einer Batchgröße, die in der Bildverarbeitung von Fahrzeugkameras verwendet wird, werden offenbart. In einer exemplarischen Implementierung beinhaltet ein Verfahren das Erzeugen einer Batchtabelle und einer Modustabelle durch eine Verarbeitungsvorrichtung. Das Verfahren beinhaltet ferner das Bestimmen der Bildverarbeitungsleistungsanforderungen für einen aktuellen Modus eines Fahrzeugs unter Verwendung der Modustabelle durch die Verarbeitungsvorrichtung, wobei das Fahrzeug eine Vielzahl von Kameras umfasst, die zum Aufnehmen einer Vielzahl von Bildern konfiguriert sind. Das Verfahren beinhaltet ferner das Auswählen einer Batchgröße und einer Verarbeitungsfrequenz durch die Verarbeitungsvorrichtung, basierend zumindest teilweise auf den Leistungsanforderungen der Bildverarbeitung für den aktuellen Modus des Fahrzeugs. Das Verfahren beinhaltet ferner das Verarbeiten mindestens einer Teilmenge der Vielzahl von Bildern durch einen Beschleuniger, basierend zumindest teilweise auf der Batchgröße und der Verarbeitungsfrequenz.

Description

  • EINLEITUNG
  • Die vorliegende Offenbarung bezieht sich auf eine dynamische Batchgrößenauswahl für die Bildverarbeitung von Fahrzeugkameras.
  • Moderne Fahrzeuge (z. B. ein Auto, ein Motorrad, ein Boot oder eine andere Art von Automobil) beinhalten im Allgemeinen eine oder mehrere Kameras, die Unterstützung bieten, Bilder des Fahrzeugführers aufnehmen, um die Müdigkeit oder Aufmerksamkeit des Fahrers zu bestimmen, Bilder der Straße während der Fahrt zur Kollisionsvermeidung bereitstellen, Strukturerkennung bereitstellen, wie beispielsweise Straßenschilder, usw. So kann beispielsweise ein Fahrzeug mit mehreren Kameras ausgestattet werden, und Bilder von mehreren Kameras (sogenannte „Rundumsichtkameras“) können verwendet werden, um eine „Rundumsicht“ oder „Vogelperspektive“ des Fahrzeugs zu erstellen. Einige der Kameras (sogenannte „Langstreckenkameras“) können zum Aufnehmen von Bildern mit großer Reichweite verwendet werden (z. B. zur Objekterkennung zur Kollisionsvermeidung, Strukturerkennung, usw.).
  • So kann beispielsweise ein Fahrzeug mit einer fahrzeuginternen Anzeige (z. B. einem Touchscreen) ausgestattet sein, die zum Anzeigen von Kamerabildern und/oder anderen Bildern für einen Fahrer des Fahrzeugs verwendet werden kann. Ein herkömmlicher Rückspiegel und/oder Seitenspiegel kann beispielsweise durch eine Anzeige ersetzt werden, die ein Kamerabild von einer Kamera anzeigt, die an der Rückseite des Fahrzeugs positioniert ist, um dem Fahrer die „Rückansicht“ anstelle des herkömmlichen Rückspiegels anzuzeigen.
  • KURZDARSTELLUNG
  • In einer exemplarischen Ausführungsform beinhaltet ein computerimplementiertes Verfahren das Erzeugen einer Batchtabelle und einer Modustabelle durch eine Verarbeitungsvorrichtung. Das Verfahren beinhaltet ferner das Bestimmen der Bildverarbeitungsleistungsanforderungen für einen aktuellen Modus eines Fahrzeugs unter Verwendung der Modustabelle durch die Verarbeitungsvorrichtung, wobei das Fahrzeug eine Vielzahl von Kameras umfasst, die zum Aufnehmen einer Vielzahl von Bildern konfiguriert sind. Das Verfahren beinhaltet ferner das Auswählen einer Batchgröße und einer Verarbeitungsfrequenz durch die Verarbeitungsvorrichtung, basierend zumindest teilweise auf den Leistungsanforderungen der Bildverarbeitung für den aktuellen Modus des Fahrzeugs. Das Verfahren beinhaltet ferner das Verarbeiten mindestens einer Teilmenge der Vielzahl von Bildern durch einen Beschleuniger, basierend zumindest teilweise auf der Batchgröße und der Verarbeitungsfrequenz.
  • In weiteren Beispielen beinhaltet das Verfahren das Ermitteln durch die Verarbeitungsvorrichtung, ob die Batchgröße größer als eine Anzahl der Vielzahl von Kameras ist. In weiteren Beispielen beinhaltet das Verfahren, zumindest teilweise basierend auf dem Bestimmen, dass die Batchgröße größer ist als die Anzahl der Vielzahl von Kameras, das Einstellen einer Batchgröße b gleich einer Anzahl von Einzelbildern, die in einer aktuellen Spalte verbleiben, und (b-r)%n Einzelbilder aus einer nächsten Spalte, wobei b die Batchgröße darstellt, r die in einer aktuellen Spalte verbleibenden Einzelbilder darstellt und n eine Anzahl von Kameras darstellt. In weiteren Beispielen beinhaltet das Verfahren, zumindest teilweise basierend auf dem Bestimmen, dass die Batchgröße nicht größer ist als die Anzahl der Vielzahl von Kameras, das Einstellen einer Batchgröße b gleich einer Anzahl von r Einzelbildern, die in einer aktuellen Spalte verbleiben, und (b-r) Einzelbilder in einer nächsten Spalte, wobei b die Batchgröße darstellt, r die in einer aktuellen Spalte verbleibenden Einzelbilder darstellt. In einigen exemplarischen Verfahren wird der aktuelle Modus des Fahrzeugs aus der Gruppe ausgewählt, bestehend aus einem Straßenfahrmodus, einem Stadtfahrmodus, einem Parkmodus und einem Verschlechterungsmodus. In einigen exemplarischen Verfahren wird die Verarbeitung des mindestens einen Teilabschnitts der Vielzahl von Bildern unter Verwendung eines faltungsneuronalen Netzwerks durchgeführt. In einigen exemplarischen Verfahren beinhaltet die Batchtabelle eine Vielzahl von Batchgrößen, wobei jede der Vielzahl von Batchgrößen einen Häufigkeitswert und einen damit verbundenen Latenzwert aufweist. In einigen exemplarischen Verfahren beinhaltet die Modustabelle eine Vielzahl von Modi des Fahrzeugs, wobei jeder der Vielzahl von Modi einen Kamerakonfigurationswert und eine damit verbundene Latenzanforderung aufweist. In einigen exemplarischen Verfahren beinhaltet die Vielzahl von Kameras mindestens eine Rundumsichtkamera und mindestens eine Weitwinkelkamera. In weiteren Beispielen beinhaltet das Verfahren vor dem Verarbeiten das Bestimmen, ob eine Latenzanforderung zumindest teilweise aufgrund der Batchgröße erfüllt ist, durch die Verarbeitungsvorrichtung. In weiteren Beispielen beinhaltet das Verfahren, zumindest teilweise basierend auf dem Bestimmen, dass die Latenzanforderung nicht erfüllt ist, das Zurücksetzen durch die Verarbeitungsvorrichtung auf eine sichere Batchgröße, wobei die sichere Batchgröße zum Durchführen der Verarbeitung verwendet wird.
  • In einer weiteren exemplarischen Ausführungsform beinhaltet ein System einen Speicher mit computerlesbaren Anweisungen und eine Verarbeitungsvorrichtung zum Ausführen der computerlesbaren Anweisungen zur Durchführung eines Verfahrens. Das Verfahren beinhaltet das Erzeugen einer Batch-Tabelle und einer Modustabelle durch eine Verarbeitungsvorrichtung. Das Verfahren beinhaltet ferner das Bestimmen der Bildverarbeitungsleistungsanforderungen für einen aktuellen Modus eines Fahrzeugs unter Verwendung der Modustabelle durch die Verarbeitungsvorrichtung, wobei das Fahrzeug eine Vielzahl von Kameras umfasst, die zum Aufnehmen einer Vielzahl von Bildern konfiguriert sind. Das Verfahren beinhaltet ferner das Auswählen einer Batchgröße und einer Verarbeitungsfrequenz durch die Verarbeitungsvorrichtung, basierend zumindest teilweise auf den Leistungsanforderungen der Bildverarbeitung für den aktuellen Modus des Fahrzeugs. Das Verfahren beinhaltet ferner das Verarbeiten mindestens einer Teilmenge der Vielzahl von Bildern durch einen Beschleuniger, basierend zumindest teilweise auf der Batchgröße und der Verarbeitungsfrequenz.
  • In weiteren Beispielen beinhaltet das Verfahren das Ermitteln durch die Verarbeitungsvorrichtung, ob die Batchgröße größer als eine Anzahl der Vielzahl von Kameras ist. In weiteren Beispielen beinhaltet das Verfahren, zumindest teilweise basierend auf dem Bestimmen, dass die Batchgröße größer ist als die Anzahl der Vielzahl von Kameras, das Einstellen einer Batchgröße b gleich einer Anzahl von Einzelbildern, die in einer aktuellen Spalte verbleiben, und (b-r)%n Einzelbilder aus einer nächsten Spalte, wobei b die Batchgröße darstellt, r die in einer aktuellen Spalte verbleibenden Einzelbilder darstellt und n eine Anzahl von Kameras darstellt. In weiteren Beispielen beinhaltet das Verfahren, zumindest teilweise basierend auf dem Bestimmen, dass die Batchgröße nicht größer ist als die Anzahl der Vielzahl von Kameras, das Einstellen einer Batchgröße b gleich einer Anzahl von r Einzelbildern, die in einer aktuellen Spalte verbleiben, und (b-r) Einzelbilder in einer nächsten Spalte, wobei b die Batchgröße darstellt, r die in einer aktuellen Spalte verbleibenden Einzelbilder darstellt. In einigen exemplarischen Verfahren wird der aktuelle Modus des Fahrzeugs aus der Gruppe ausgewählt, bestehend aus einem Straßenfahrmodus, einem Stadtfahrmodus, einem Parkmodus und einem Verschlechterungsmodus. In einigen exemplarischen Verfahren wird die Verarbeitung des mindestens einen Teilabschnitts der Vielzahl von Bildern unter Verwendung eines faltungsneuronalen Netzwerks durchgeführt. In einigen exemplarischen Verfahren beinhaltet die Batch-Tabelle eine Vielzahl von Batch-Größen, wobei jede der Vielzahl von Batch-Größen einen Häufigkeitswert und einen damit verbundenen Latenzwert aufweist. In einigen exemplarischen Verfahren beinhaltet die Modus-Tabelle eine Vielzahl von Modi des Fahrzeugs, wobei jeder der Vielzahl von Modi einen Kamerakonfigurationswert und eine damit verbundene Latenzanforderung aufweist.
  • In noch einer weiteren exemplarischen Ausführungsform kann ein Computerprogrammprodukt ein computerlesbares Speichermedium mit darin enthaltenen Programmanweisungen beinhalten, worin das computerlesbare Speichermedium an sich kein transitorisches Signal ist, wobei die Programmanweisungen, die durch eine Verarbeitungsvorrichtung ausführbar sind, bewirken, dass die Verarbeitungsvorrichtung ein Verfahren ausführt. Das Verfahren beinhaltet das Erzeugen einer Batch-Tabelle und einer Modustabelle durch eine Verarbeitungsvorrichtung. Das Verfahren beinhaltet ferner das Bestimmen der Bildverarbeitungsleistungsanforderungen für einen aktuellen Modus eines Fahrzeugs unter Verwendung der Modustabelle durch die Verarbeitungsvorrichtung, wobei das Fahrzeug eine Vielzahl von Kameras umfasst, die zum Aufnehmen einer Vielzahl von Bildern konfiguriert sind. Das Verfahren beinhaltet ferner das Auswählen einer Batchgröße und einer Verarbeitungsfrequenz durch die Verarbeitungsvorrichtung, basierend zumindest teilweise auf den Leistungsanforderungen der Bildverarbeitung für den aktuellen Modus des Fahrzeugs. Das Verfahren beinhaltet ferner das Verarbeiten mindestens einer Teilmenge der Vielzahl von Bildern durch einen Beschleuniger, basierend zumindest teilweise auf der Batchgröße und der Verarbeitungsfrequenz.
  • Die oben genannten Eigenschaften und Vorteile sowie anderen Eigenschaften und Funktionen der vorliegenden Offenbarung gehen aus der folgenden ausführlichen Beschreibung in Verbindung mit den zugehörigen Zeichnungen ohne weiteres hervor.
  • Figurenliste
  • Andere Merkmale, Vorteile und Details erscheinen nur exemplarisch in der folgenden ausführlichen Beschreibung der Ausführungsformen, wobei sich die ausführliche Beschreibung auf die Zeichnungen bezieht, wobei gilt:
    • 1 verdeutlicht ein Fahrzeug mit Kameras und einem Verarbeitungssystem zur dynamischen Batchgrößenauswahl gemäß den Aspekten der vorliegenden Offenbarung;
    • Die 2A und 2B verdeutlichen Beispiele für statische Batches;
    • 3 verdeutlicht ein Beispiel für eine dynamische Charge, die mittels dynamischer Batchgrößenauswahl gemäß den Aspekten der vorliegenden Offenbarung bestimmt wurde;
    • 4 verdeutlicht ein Beispiel für eine dynamische Charge, die mittels dynamischer Batchgrößenauswahl gemäß den Aspekten der vorliegenden Offenbarung bestimmt wurde;
    • 5 verdeutlicht ein Blockdiagramm der Batchgrößenauswahl-Engine von 1 gemäß den Aspekten der vorliegenden Offenbarung;
    • 6 verdeutlicht ein Blockdiagramm des Kamera-Gateways von 5 gemäß den Aspekten der vorliegenden Offenbarung dar;
    • 7 verdeutlicht eine Chargentabelle gemäß den Aspekten der vorliegenden Offenbarung;
    • 8 verdeutlicht eine Modustabelle gemäß den Aspekten der vorliegenden Offenbarung;
    • 9 verdeutlicht ein Flussdiagramm eines Verfahrens zur dynamischen Batchgrößenauswahl gemäß Aspekten der vorliegenden Offenbarung;
    • 10 verdeutlicht ein Flussdiagramm eines Verfahrens zur dynamischen Batchgrößenauswahl gemäß Aspekten der vorliegenden Offenbarung; und
    • 11 verdeutlicht ein Blockdiagramm eines Verarbeitungssystems zum Implementieren der hierin beschriebenen Techniken gemäß einer exemplarischen Ausführungsform.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Die folgende Beschreibung ist lediglich exemplarischer Natur und nicht dazu gedacht, die vorliegende Offenbarung in ihren An- oder Verwendungen zu beschränken. Es sollte verstanden werden, dass in den Zeichnungen entsprechende Bezugszeichen gleiche oder entsprechende Teile und Merkmale bezeichnen. Der hier verwendete Begriff „Modul“ bezieht sich auf eine Verarbeitungsschaltung, die eine anwendungsspezifische integrierte Schaltung (ASIC), eine elektronische Schaltung, einen Prozessor (gemeinsam genutzt, dediziert oder gruppiert) und einen Speicher, der ein oder mehrere Software- oder Firmwareprogramme, eine kombinatorische Logikschaltung und/oder andere geeignete Komponenten ausführt, die die beschriebene Funktionalität bieten, beinhalten kann.
  • Die hierin beschriebenen technischen Lösungen ermöglichen eine dynamische Batchgrößenauswahl für die Bildverarbeitung. Fahrzeuge implementieren häufig mehrere Kameras, um Bilder außerhalb des Fahrzeugs aufzunehmen, wie beispielsweise zur Objekterkennung, Kollisionsvermeidung, zum autonomen Betrieb usw. oder um Informationen an einen Fahrer/Bediener des Fahrzeugs weiterzugeben. Ein Fahrzeug kann mit verschiedenen Arten von Kameras (z. B. Weitwinkelkameras, Rundumsichtkameras usw.) unterschiedlicher Anzahl (z.B. eine Kamera pro Seite/Ende, zwei Kameras pro Seite/Ende) ausgestattet sein. Durch die Anzahl der Kameras kann die Anzahl der aufgenommenen Bilder rechenintensiv sein.
  • Die vorliegende Offenbarung beschreibt Techniken zur dynamischen Auswahl einer Batchgröße. Die Batchgröße ist eine Anzahl von Einzelbildern, die an eine Bildverarbeitungsvorrichtung (z. B. einen Beschleuniger) gesendet werden, welche die Bilder verarbeitet, beispielsweise unter Verwendung eines faltungsneuronalen Netzwerks oder einer anderen geeigneten Bildverarbeitungstechnik. Die vorliegenden Techniken unterstützen die dynamische Kamerakonfiguration (d. h. die Auswahl einer Teilmenge von Kameras) und stellen gleichzeitig ein Gleichgewicht zwischen Merkmalsverfügbarkeit und Systemleistung her. Die vorliegenden Techniken optimieren den Bedarf an Rechenressourcen basierend auf der Systemleistung und den Anforderungen des zukünftigen Modus (d. h. einer Betriebsart des Fahrzeugs). Dementsprechend reduzieren die vorliegenden Techniken die Latenzzeiten beim Berechnen von faltungsneuralen Netzwerken zur Objekterkennung und reduzieren den Stromverbrauch und die Systemnutzung, indem sie die Datenbewegung im gesamten System reduzieren.
  • 1 verdeutlicht ein Fahrzeug 100 mit einem Verarbeitungssystem 110 für die Bildverarbeitung von Fahrzeugkameras gemäß den Aspekten der vorliegenden Offenbarung. Insbesondere kann das Fahrzeug 100 das Verarbeitungssystem 110, die Kameras 120, 121, 122, 123 und die Kameras 130, 131, 132, 133 beinhalten. Das Fahrzeug 100 kann ein Auto, einen Lastwagen, einen Lieferwagen, einen Bus, ein Motorrad, Boot, Flugzeug oder ein anderes geeignetes Fahrzeug 100 sein.
  • Die Kameras 120-123 sind Rundumsichtkameras, die Bilder außerhalb und in unmittelbarer Nähe des Fahrzeugs 100 aufnehmen. Die von den Kameras 120-123 aufgenommenen Bilder bilden zusammen eine Rundumansicht (manchmal als „Draufsicht“ oder eine „Vogelperspektive“ bezeichnet) des Fahrzeugs 100. Diese Bilder können für den Betrieb des Fahrzeugs nützlich sein (z. B. Parken, Rückwärtsfahren, usw.). Die Kameras 130-133 sind Weitwinkelkameras, die Bilder außerhalb des Fahrzeugs und weiter entfernt vom Fahrzeug 100 aufnehmen als die Kameras 120-123. Diese Bilder können beispielsweise für die Objekterkennung und -vermeidung nützlich sein. Es sollte beachtet werden, dass, obwohl acht Kameras 120-123 und 130-133 dargestellt sind, mehr oder weniger Kameras in verschiedenen Ausführungsformen implementiert sein können.
  • Die aufgenommenen Bilder können auf einer Anzeige (nicht dargestellt) angezeigt werden, um dem Fahrer/Bediener des Fahrzeugs 100 Außenansichten des Fahrzeugs 100 bereitzustellen. Die aufgenommenen Bilder können als Live-Bilder, Standbilder oder eine Kombination derselben angezeigt werden. In einigen Beispielen können die Bilder zu einer zusammengesetzten Ansicht kombiniert werden, wie beispielsweise der Rundumansicht.
  • Das Verarbeitungssystem 110 beinhaltet eine Batchgrößenauswahl-Maschine 112 und ein Gaspedal 113. Das Verarbeitungssystem 110 führt eine dynamische Batchgrößenauswahl durch, um die von den Kameras 120-123, 130-133 aufgenommenen Bilder so zu verarbeiten, dass die Latenzzeiten bei der Objekterkennung reduziert und der Stromverbrauch und die Systemnutzung durch Reduzierung der Datenbewegungen reduziert werden. Die Batchgröße ist die Größe des Auftrags (d. h. die Anzahl der Bilder), der zu einem Element zusammengefasst und zur Verarbeitung an den Beschleuniger 113 (z. B. eine Grafikverarbeitungseinheit, einen Prozessor usw.) gesendet wird.
  • Die Batchgrößenauswahl-Maschine 112 führt die Batchgrößenauswahl mit einem Offline-Teil und einem Online-Teil (Laufzeit) durch. Der Offline-Teil baut eine Batchtabelle auf, die verschiedene Batchgrößen enthält. Für jeden dieser Einträge in der Batchtabelle können Offline-Einträge bezüglich Durchsatz und Latenzzeit aufgenommen werden, die dann vom Online-Teil verwendet werden.
  • Die Batchgrößenauswahl-Maschine 112 führt den Offline-Teil wie folgt aus. Zunächst erstellt die Batchgrößenauswahl-Maschine 112 eine Batchtabelle. Um die Batchtabelle zu erstellen, werden die folgenden Schritte für eine Batchgröße von 1 bis zu einer maximalen Batchgröße (Größe max) durchgeführt. Eine Latenz (oder „Durchsatz“) wird für verschiedene Frequenzstufen berechnet, und die Batchgröße, Latenz und Frequenz werden in der Batchtabelle gespeichert (z. B. <Batchgröße, Latenzzeit, Frequenz». Ein Beispiel der Batchtabelle ist in 7 abgebildet.
  • Nachdem die Chargentabelle erstellt wurde, fährt die Batchgrößenauswahl-Maschine 112 mit dem Offline-Teil fort und erstellt eine Modustabelle mit verschiedenen Konfigurationen (Modi). Jede Konfiguration (Modus) weist eine gewünschte Latenzanforderung auf. So kann beispielsweise ein Straßenfahrmodus vier Weitwinkelkameras mit einer Frequenz von 20 Bildern pro Sekunde verwenden; ein Stadtfahrmodus kann vier Weitwinkelkameras und vier Rundumsichtkameras mit einer Frequenz von 10 Bildern pro Sekunde verwenden; und ein Verschlechterungsmodus kann x Kameras mit y Bildern pro Sekunde verwenden. Es sollte beachtet werden, dass auch andere Modi und Latenzanforderungen vorgegeben werden können. Dies stellt die Batchgröße für die verschiedenen Modi effektiv ein.
  • Der Beschleuniger 113 verwendet die Batchgröße, um Bilder von den Kameras 120-123, 130-133 zu verarbeiten. Der Beschleuniger 113 kann eine Grafikverarbeitungseinheit (GPU), ein Netzwerk von GPus, eine zentrale Verarbeitungseinheit (CPU), ein Netzwerk von CPUs oder eine andere geeignete Vorrichtung sein. Die Bildverarbeitung kann unter Verwendung eines faltungsneuronalen Netzwerks oder einer anderen geeigneten Technik durchgeführt werden.
  • Die verschiedenen in 1 beschriebenen Komponenten, Module, Motoren usw. können als Anweisungen auf einem computerlesbaren Speichermedium, als Hardwaremodule, als Spezialhardware (z. B. anwendungsspezifische Hardware, anwendungsspezifische integrierte Schaltungen (ASICs), anwendungsspezifische Standardteile (ASSPs), feldprogrammierbare Gate-Arrays (FPGAs), als eingebundene Steuerungen, fest verdrahtete Schaltungen usw.) oder als einige Kombinationen oder Kombinationen derselben implementiert werden. Gemäß den Aspekten der vorliegenden Offenbarung können die hierin beschriebenen Maschine(n) eine Kombination aus Hardware und Programmierung sein. Bei der Programmierung kann es sich um prozessorausführbare Anweisungen handeln, die auf einem physischen Speicher gespeichert sind, und die Hardware kann eine Verarbeitungsvorrichtung (z. B. die CPU 1121 von 11) zum Ausführen dieser Anweisungen beinhalten. Somit kann ein Systemspeicher (z. B. RAM 1124 von 11) Programmanweisungen speichern, die beim Ausführen durch die Verarbeitungsvorrichtung ie hierin beschriebenen Maschinen implementieren. Andere Maschinen sind auch geeignet, um andere Funktionen und Funktionen zu integrieren, die in anderen Beispielen beschrieben sind.
  • Die 2A und 2B verdeutlichen Beispiele für traditionell statische Batches. Die statischen Batches weisen eine statische Batchgröße auf, die sich nicht dynamisch ändert. Die Batchgröße ist die Größe des Auftrags (d. h. die Anzahl von Bildern), der zu einem Element zusammengefasst und zur Verarbeitung an einen Beschleuniger (z. B. eine Grafikverarbeitungseinheit, einen Prozessor usw.) gesendet wird. In diesen Beispielen werden zwei verschiedene statische Batches eingestellt. Die 2A und 2B zeigen die Bilder 220, 221, 222, 223, aufgenommen von den Kameras 120-123 von 1 bzw. die Bilder 230, 231, 232, 233, aufgenommen von den Kameras 130-133 von 1. Diese Bilder 220-223 und 230-233 stellen Bilder dar, die von den Kameras 120-123 und 130-133 aufgenommen wurden. Die Bilder 220-223 und 230-233 sind in den Spalten 201, 202, 203 und den Zeilen 250, 251, 252, 253, 254, 255, 256, 257 angeordnet. Jede Spalte beinhaltet zum gleichen Zeitpunkt aufgenommene Bilder. Das heißt, die Bilder 220-223 und 230-233 der Spalte 201 wurden zu einem ersten Zeitpunkt aufgenommen, die Bilder 220-223 und 230-233 der Spalte 202 wurden zu einem zweiten Zeitpunkt aufgenommen, und die Bilder 220-223 und 230-233 der Spalte 203 wurden zu einem dritten Zeitpunkt aufgenommen. Jede Reihe 250-257 stellt Bilder von einer der Kameras 120-123 und 130-133 dar. Das heißt, die Bilder 220 in Zeile 250 sind Bilder von der Kamera 120, die Bilder 221 in Zeile 251 sind Bilder von der Kamera 121 usw.
  • Für jede Spalte 201-203 kann ein Batch zur Verarbeitung der Bilder eingestellt werden. In traditionellen Mehrbildverarbeitungsschemata werden die Batches von Entwicklern statisch festgelegt, und die Batchgröße ändert sich während der Laufzeit nicht dynamisch oder basierend auf den Betriebsbedingungen eines Fahrzeugs. 2A zeigt einen Batch 240, der alle Bilder 220-223 und 230-233 in der Spalte 203 beinhaltet. In diesem Beispiel werden alle Bilder gebündelt und zur Verarbeitung durch den Beschleuniger gesendet. Obwohl die Bündelung mit allen Bildern eine bessere Bildverarbeitung durch Bereitstellen von mehr Daten (z. B. für die Objekterkennung) bewirken kann, verbrauchen größere Batchgrößen mehr Speicher und damit mehr Leistung. Die Latenz kann auch durch eine größere Batchgröße beeinträchtigt (d. h. erhöht) werden. Es ist daher wünschenswert, die dynamische Batchgrößenbestimmung zu verwenden, um die Latenzzeit zu reduzieren und gleichzeitig weniger Speicherplatz und Leistung als bei herkömmlichen Techniken zu verbrauchen.
  • 2B zeigt die Batches 241a, 241b, 241c, 241d, 241e, 241f, 241g, 241h, sodass jede der Batches 241a-241h ein einzelnes Bild ist. Einzelbild-Batchgrößen können länger zur Verarbeitung benötigen, da jeder Batch separat verarbeitet werden muss. Dementsprechend ist es wünschenswert, mittels dynamischer Batchgrößenbestimmung eine geeignete Batchgröße für verschiedene Betriebsbedingungen auszuwählen.
  • 3 verdeutlicht Beispiele für eine dynamische Batches, die mittels dynamischer Batchgrößenauswahl gemäß den Aspekten der vorliegenden Offenbarung bestimmt wurde. Im Beispiel von 3 werden die Bilder 320, 321, 322, 323, 330, 331, 332, 333 im Laufe der Zeit von jeder der Kameras 120-123 und 130-133 aufgenommen und in den Spalten 301, 302, 303 und den Zeilen 350, 351, 352, 353, 354, 355, 356, 357 wie dargestellt angeordnet. Eine Teilmenge der Bilder wird basierend auf einer dynamisch bestimmten Batchgröße auf dem Beschleuniger 113 im Stapel verarbeitet. Die Batchgröße kann beispielsweise auf einem Modus des Fahrzeugs 100 und den damit verbundenen Kamerakonfigurationen und Latenzanforderungen für den Modus basieren. So können beispielsweise in einem Straßenfahrmodus vier Langstrecken-Kameras verwendet werden (z. B. zur Objektvermeidung). In einem derartigen Beispiel wird eine Batchgröße von „vier“ eingestellt, wobei die vier Bilder den Langstrecken-Kameras zugeordnet sind: der Batch 340 beinhaltet die Bilder 330, 331, 332, 333, die mit den Kameras 130-133 aufgenommen wurden, die Langstrecken-Kameras sind.
  • Das Beispiel von 4 kann einen Verschlechterungsmodus darstellen, bei dem einige Kameras nicht betriebsbereit sind. Wenn beispielsweise die Kameras 122, 123, 132, 133 beschädigt werden oder anderweitig nicht funktionsfähig sind, kann die Batchgröße dynamisch geändert werden, um Bilder von diesen Kameras auszuschließen. In diesem Fall werden die Bilder 322, 323, 332, 333 ausgeschlossen und die Batchgröße auf „zwei“ eingestellt: der Batch 341a beinhaltet die Bilder 320, 321 und der Batch 341b beinhaltet die Bilder 330, 331.
  • 5 verdeutlicht ein Blockdiagramm der Batchgrößenauswahl-Engine 112 von 1 gemäß den Aspekten der vorliegenden Offenbarung. Eine Datenstruktur 502 (z. B. <Fahrmodus: #Anzahl der Kameras, Bilder pro Sekunde> wird in einen Leistungsmonitor 504 eingegeben, der die Leistung des Fahrzeugs 100 überwacht und den Modus des Fahrzeugs bestimmt. Der Leistungsmonitor 504 kann verschiedene Markierungen 506 setzen, die den Modus des Fahrzeugs anzeigen. Ein Planer 508 verwendet die Markierungen 506 und eine signalbasierte Zeit oder ein signalbasiertes Ereignis 510, um einen Laufzeitmechanismus 514 der Batchgrößenauswahl-Maschine 112 zu starten. Das heißt, der Planer 508 teilt dem Laufzeitmechanismus 514 mit, in welchem Modus sich das Fahrzeug befindet.
  • Der Laufzeitmechanismus 514 verwendet eine Modustabelle 518, um eine mit dem Modus verbundene Kamerakonfiguration und eine Latenzanforderung für den Modus zu bestimmen. Der Laufzeitmechanismus 514 bestimmt unter Verwendung einer Batchgrößentabelle 516 eine Batchgröße 528 basierend auf dem Frequenzbedarf und einer gewünschten Frequenz (d. h. wie oft Bilder aufgenommen werden). Bilder für einen Batch können in einem Speicherpuffer 522 gespeichert werden. Die Bilder für den Batch werden zur Verarbeitung an den Beschleuniger 113 übergeben.
  • Die Batchgrößenauswahl-Maschine 112 verwendet auch die Markierung 506, um zu bestimmen, ob Bilder von bestimmten Kameras in einen Bildspeicher 526 übertragen werden. Dies ist in 6 ausführlicher dargestellt. Insbesondere verdeutlicht 6 ein Blockdiagramm des Kamera-Gateways 524 von 5 gemäß den Aspekten der vorliegenden Offenbarung. Wie in 6 abgebildet, sind die Kameras 120-123 und 130-133 mit dem Kamera-Gateway 524 verbunden, und Bilder von den jeweiligen Kameras werden an das Kamera-Gateway 524 übertragen. Das Kamera-Gateway 524 wirkt wie ein Filter, um die an ein Wahrnehmungssystem 530 übergebenen Bilder modusabhängig zu reduzieren, das vom Wahrnehmungssystem 530 in das Kamera-Gateway 524 eingespeist wird. Dies reduziert den Datenverkehr und verbessert die Skalierbarkeit/Leistungsmerkmale des Wahrnehmungssystems 530. In diesem Beispiel beinhaltet das Wahrnehmungssystem 530 die verschiedenen Komponenten von 5, die zum Bestimmen des Modus und der Batchgröße verantwortlich sind.
  • 7 verdeutlicht eine Batchtabelle 516 gemäß den Aspekten der vorliegenden Offenbarung. Die Batchtabelle 516 beinhaltet verschiedene Batchgrößen 702, und für jede der Batchgrößen 702 sind eine Frequenz 704 (wie oft Bilder aufgenommen werden) und eine Latenz 706 (wie lange es dauert, den Batch zu übertragen) zugeordnet.
  • 8 verdeutlicht eine Modustabelle 518 gemäß den Aspekten der vorliegenden Offenbarung. Die Modustabelle 518 enthält verschiedene Modi 802, und für jeden der Modi 802 sind eine Kamerakonfiguration 804 und eine Latenzanforderung 806 zugeordnet. Die Modi 802 können einen Autobahnfahrmodus 802a, einen Stadtfahrmodus 802b und einen Verschlechterungsmodus 802c beinhalten. Der Autobahnfahrmodus 802a verwendet vier Langstrecken-Kameras (z. B. die Kameras 130-133) als Kamerakonfiguration 804a und weist eine Latenzanforderung von 12 Millisekunden (ms) auf. Der Stadtfahrmodus 802a verwendet vier Rundumsichtkameras (z. B. die Kameras 120-123) als Kamerakonfiguration 804b und weist eine Latenzanforderung von 18 ms auf. Der Verschlechterungsmodus 802c weist eine N-Anzahl von Kameras auf, die je nachdem, was das Verarbeitungssystem 110 verschlechtern kann, variieren kann (z. B. ist das System überlastet, eine oder mehrere Kameras sind nicht betriebsbereit, usw.). Der Verschlechterungsmodus 802c weist eine Latenzanforderung von 5 ms auf.
  • 9 verdeutlicht ein Flussdiagramm eines Verfahrens 900 zur dynamischen Batchgrößenauswahl gemäß den Aspekten der vorliegenden Offenbarung. Das Verfahren 900 kann von jedem/jeder geeigneten System oder Vorrichtung, wie beispielsweise dem Verarbeitungssystem 110 von 1, dem Verarbeitungssystem 1100 von 11 oder einem/einer beliebigen geeigneten System und/oder Verarbeitungsvorrichtung (z. einem Prozessor) durchgeführt werden.
  • Bei Block 902 wird der aktuelle Modus des Fahrzeugs 100 bestimmt, indem das Fahrzeug (z. B. ein elektronisches Steuerungssystem im Fahrzeug) abgefragt wird, um den Modus des Fahrzeugs anzufordern. Modi können beispielsweise Autobahnfahren, Stadtfahren, Verschlechterungsfahrten (d. h. weniger als alle Kameras des Fahrzeugs sind betriebsbereit), Parken usw. beinhalten. Bei Block 904 wird auf die Modustabelle (z. B. die Modustabelle 518) verwiesen, um die Leistungsanforderungen zu bestimmen. Wenn beispielsweise mit Bezug auf die Modustabelle 518 der aktuelle Modus des Fahrzeugs die Autobahnfahrt ist, werden vier Langstrecken-Kameras (z. B. die Kameras 130-133) verwendet, und die Latenzzeit muss 12 Millisekunden (oder weniger) betragen. Bei Block 906 wird über die Batchtabelle (z. B. die Batchtabelle 516) eine Batchgröße und -frequenz für den aktuellen Modus ausgewählt. In dem Beispiel, in dem die Latenzzeit 12 Millisekunden (oder weniger) betragen muss, beinhaltet die Batchtabelle 516 vier verschiedene Batchgrößenoptionen mit zugehörigen Frequenzen, die eine Latenzzeit von weniger als 12 Millisekunden ermöglichen. Da in diesem Beispiel vier Langstrecken-Kameras verwendet werden, wird die Batchgröße 4 mit der Frequenz 800 gewählt. Diese Option erzeugt eine Latenz von 9 Millisekunden.
  • Nachdem die Batchgröße/Frequenz aus der Batchgrößentabelle 516 ausgewählt wurde, wird im Entscheidungsblock 908 bestimmt, ob die Batchgröße größer als die Anzahl der Kameras ist. Im vorstehenden Beispiel von 12 Millisekunden hätte aus der Batchtabelle 512 eine Batchgröße von 8 mit einer Frequenz von 800 ausgewählt werden können, die noch die Latenzanforderung erfüllen würde. In diesem Fall wäre die Batchgröße (8) jedoch größer als die Anzahl der Kameras (4), die im Autobahnfahrmodus verwendet werden. In dieser Situation (d. h. die Batchgröße ist größer als die Anzahl der Kameras) blockiert das Verfahren 900 weiterhin 910.
  • Bei Block 910 wird die Batchgröße b auf gleiche r Einzelbilder eingestellt, die in der aktuellen Spalte verbleiben, und (b-r)%n aus der nächsten Spalte, wobei b die Batchgröße darstellt, r die in der aktuellen Spalte verbleibenden Einzelbilder darstellt und n die Anzahl der Kameras darstellt. Wie unter Bezugnahme auf die 3 und 4 beschrieben, sind die Bilder beispielsweise in den Spalten 301, 302, 303 und den Zeilen 350, 351, 352, 353, 354, 355, 356, 357 angeordnet.
  • Wenn im Entscheidungsblock 908 bestimmt wird, dass die Batchgröße b nicht größer als die Anzahl der Kameras ist, fährt das Verfahren 900 mit Block 912 fort. Bei Block 912 wird der Batch auf gleiche r Einzelbilder eingestellt, die in der aktuellen Spalte verbleiben, und (b-r) Einzelbilder in der nächsten Spalte, wobei r die in der aktuellen Spalte verbleibenden Einzelbilder darstellt und b die Batchgröße darstellt.
  • Nachdem der Batch auf die Blöcke 910 oder 912 eingestellt wurde, fährt das Verfahren 900 mit dem Block 914 fort, um die aktuelle Zeile, Spalte und r (Einzelbilder, die in der aktuellen Spalte bleiben) zu aktualisieren. Am Entscheidungsblock 916 wird bestimmt, ob die Latenzanforderungen erfüllt sind. Wenn ja, fährt das Verfahren 900 mit dem Block 920 fort. Wenn die Latenzanforderungen jedoch nicht erfüllt sind, blockiert das Verfahren 900 weiterhin 918 und kehrt zu einer sicheren Batchauswahl zurück. Ein sicherer Batch ist die Batchgröße, die offline ausgewählt wird, wobei sicher bedeutet, dass die Latenzanforderungen bei der Auswahl bekanntermaßen erfüllt sind. Das Verfahren 900 fährt dann mit Block 920 fort. Bei Block 920 sendet das Verfahren 900 die Batchgröße und Verarbeitungsfrequenz an den Beschleuniger 113, der den Bildstapel verarbeitet.
  • Zusätzliche Verfahren können ebenfalls beinhaltet sein und es versteht sich, dass das in 9 dargestellte Verfahren eine Darstellung veranschaulicht und dass andere Verfahren hinzugefügt werden oder bestehende Verfahren entfernt, modifiziert oder neu angeordnet werden können, ohne vom Umfang und Sinn der vorliegenden Offenbarung abzuweichen.
  • 10 verdeutlicht ein Flussdiagramm eines Verfahrens 1000 zur dynamischen Batchgrößenauswahl gemäß den Aspekten der vorliegenden Offenbarung. Das Verfahren 1000 kann von jedem geeigneten Verarbeitungssystem und/oder jeder geeigneten Verarbeitungsvorrichtung durchgeführt werden, wie beispielsweise dem Verarbeitungssystem 110 von 1 und/oder dem Verarbeitungssystem 1100 von 11.
  • Bei Block 1002 erzeugt die Batchgrößenauswahl-Maschine 112 eine Batchtabelle (z. B. die Batchtabelle 516) und eine Modustabelle (z. B. die Modustabelle 518). Die Batchtabelle und die Modetabelle werden mit dem hierin beschriebenen Offline-Teil erzeugt.
  • Bei Block 1004 bestimmt die Batchgrößenauswahl-Maschine 112 unter Verwendung der Modustabelle die Leistungsanforderungen der Bildverarbeitung für einen aktuellen Modus eines Fahrzeugs (z. B. das Fahrzeug 100). Das Fahrzeug beinhaltet eine Vielzahl von Kameras (z. B. die Kameras 120-123, 130-133), die konfiguriert sind, um eine Vielzahl von Bildern aufzunehmen.
  • Bei Block 1006 wählt die Batchgrößenauswahl-Maschine 112 eine Batchgröße und eine Verarbeitungsfrequenz aus, die zumindest teilweise auf den Leistungsanforderungen der Bildverarbeitung für den aktuellen Modus des Fahrzeugs basieren.
  • Bei Block 1008 wird ein Beschleuniger (z. B. der Beschleuniger 113) verwendet, um zumindest eine Teilmenge der Vielzahl von Bildern basierend zumindest teilweise auf der Batchgröße und der Verarbeitungsfrequenz zu verarbeiten. Das heißt, das Beschleuniger empfängt die Vielzahl von Bildern, die der Batchgröße entsprechen, und der Beschleuniger verarbeitet diese Bilder mit einer geeigneten Bildverarbeitungstechnik. Gemäß Aspekten der vorliegenden Offenbarung kann der Beschleuniger die Bilder mit einem faltungsneuronalen Netzwerk (CNN) oder einer anderen geeigneten Technik verarbeiten.
  • Zusätzliche Verfahren können ebenfalls beinhaltet sein und es versteht sich, dass das in 10 dargestellte Verfahren eine Darstellung veranschaulicht und dass andere Verfahren hinzugefügt werden oder bestehende Verfahren entfernt, modifiziert oder neu angeordnet werden können, ohne vom Umfang und Sinn der vorliegenden Offenbarung abzuweichen.
  • Es versteht sich, dass die vorliegende Offenbarung in Verbindung mit jeder anderen Art von Computerumgebung implementiert werden kann, die aktuell bekannt ist oder später entwickelt wird. So bildet beispielsweise 11 ein Blockdiagramm eines Verarbeitungssystems 1100 zum Implementieren der hierin beschriebenen Techniken ab. In den Beispielen weist das Verarbeitungssystem 1100 eine oder mehrere zentrale Verarbeitungseinheiten (Prozessoren) 1121a, 1121b, 1121c usw. (gemeinsam oder allgemein als Prozessor(en) 1121 und/oder als Verarbeitungsvorrichtung(en) bezeichnet)) auf. In Aspekten der vorliegenden Offenbarung kann jeder Prozessor 1121 einen RISC-Mikroprozessor (Reduced Instruction Set Computer) beinhalten. Die Prozessoren 1121 sind über einen Systembus 1133 mit dem Systemspeicher (z. B. Arbeitsspeicher (RAM) 1124) und verschiedenen anderen Komponenten gekoppelt. Der Nur-Lese-Speicher (ROM) 1122 ist mit dem Systembus 1133 gekoppelt und kann ein Basis-Eingabe-/Ausgabe-System (BIOS) beinhalten, das bestimmte Grundfunktionen des Verarbeitungssystems 1100 steuert.
  • Ferner sind ein Eingabe/Ausgabe-(E/A)-Adapter 1127 und ein mit dem Systembus 1133 gekoppelter Kommunikationsadapter 1126 abgebildet. Der E/A-Adapter 1127 kann ein SCSI-Adapter (Small Computer System Interface) sein, der mit einer Festplatte 1123 und/oder einem Speicherlaufwerk 1125 oder einer anderen ähnlichen Komponente kommuniziert. Der E/A-Adapter 1127, die Festplatte 1123 und die Speichervorrichtung 1125 werden hierin kollektiv als Massenspeicher 1134 bezeichnet. Das Betriebssystem 1140 zur Ausführung auf dem Verarbeitungssystem 1100 kann in dem Massenspeicher 1134 gespeichert sein. Ein Netzwerkadapter 1126 verbindet den Systembus 1133 mit einem externen Netzwerk 1136, so dass das Verarbeitungssystem 1100 mit anderen solchen Systemen kommunizieren kann.
  • Eine Anzeige (z. B. ein Anzeigemonitor) 1135 ist mit dem Systembus 1133 über den Anzeigeadapter 1132 verbunden, der einen Grafikadapter beinhalten kann, um die Leistung von grafikintensiven Anwendungen und eine Video-Steuerung zu verbessern. In einem Aspekt der vorliegenden Offenbarung können die Adapter 1126, 1127 und/oder 1132 mit einem oder mehreren E/A-Bussen verbunden sein, die über eine Zwischenbusbrücke (nicht dargestellt) mit dem Systembus 1133 verbunden sind. Geeignete E/A-Busse zum Anschließen von Peripheriegeräten, wie zum Beispiel Festplattensteuerungen, Netzwerkadaptern und Grafikadaptern, beinhalten üblicherweise gemeinsame Protokolle, wie „Peripheral Component Interconnect“ (PCI). Zusätzliche Ein-/Ausgabevorrichtungen werden so dargestellt, wie sie über den Benutzeroberflächenadapter 1128 und den Anzeigeadapter 1132 an den Systembus 1133 angeschlossen sind. Eine Tastatur 1129, eine Maus 1130 und ein Lautsprecher 1131 können mit dem Systembus 1133 über den Benutzerschnittstellenadapter 1128 verbunden sein, der zum Beispiel einen Super-E/A-Chip beinhalten kann, der mehrere Geräteadapter in eine einzige integrierte Schaltung integriert.
  • In einigen Aspekten der vorliegenden Offenbarung beinhaltet das Verarbeitungssystem 1100 eine Grafikverarbeitungseinheit 1137. Die Grafikverarbeitungseinheit 1137 ist eine spezielle elektronische Schaltung, die entwickelt wurde, um den Speicher zu manipulieren und zu ändern, um die Erzeugung von Bildern in einem Rahmenpuffer zu beschleunigen, der zur Ausgabe auf eine Anzeige bestimmt ist. Im Allgemeinen ist die Grafikverarbeitungseinheit 1137 sehr effizient bei der Manipulation von Computergrafik und Bildverarbeitung und hat eine hochparallele Struktur, die sie effektiver macht als Universal-CPUs für Algorithmen, bei denen die Verarbeitung großer Datenblöcke parallel erfolgt.
  • So beinhaltet das Verarbeitungssystem 1100, wie hierin konfiguriert, die Verarbeitungsfähigkeit in Form von Prozessoren 1121, die Speicherfähigkeit einschließlich Systemspeicher (z. B. RAM 1124) und Massenspeicher 1134, Eingabemittel wie Tastatur 1129 und Maus 1130 sowie die Ausgabefähigkeit einschließlich Lautsprecher 1131 und Anzeige 1135. In einigen Aspekten der vorliegenden Offenbarung speichern ein Teil des Systemspeichers (z. B. RAM 1124) und der Massenspeicher 1134 gemeinsam ein Betriebssystem, um die Funktionen der verschiedenen Komponenten, die in Verarbeitungssystem 1100 gezeigt sind, zu koordinieren.
  • Die Beschreibungen der verschiedenen Beispiele der vorliegenden Offenbarung wurden zu Zwecken der Veranschaulichung vorgestellt, sind aber nicht als erschöpfend oder beschränkt auf die offenbarten Ausführungsformen gedacht. Viele Modifikationen und Variationen sind für den Fachmann offensichtlich, ohne von dem Umfang und dem Gedanken der beschriebenen Techniken abzuweichen. Die hier verwendete Terminologie wurde ausgewählt, um die Prinzipien der vorliegenden Techniken, die praktische Anwendung oder technische Verbesserung gegenüber Technologien, die auf dem Markt gefunden wurden, am besten zu erläutern oder anderen Fachleuten auf dem Gebiet zu ermöglichen, die hierin offenbarten Techniken zu verstehen.
  • Während die obige Offenbarung mit Bezug auf exemplarische Ausführungsformen beschrieben wurde, werden Fachleute verstehen, dass unterschiedliche Änderungen vorgenommen und die einzelnen Teile durch entsprechende andere Teile ausgetauscht werden können, ohne vom Umfang der Offenbarung abzuweichen. Darüber hinaus können viele Modifikationen vorgenommen werden, um eine bestimmte Materialsituation an die Lehren der Offenbarung anzupassen, ohne von deren wesentlichem Umfang abzuweichen. Daher ist vorgesehen, dass die vorliegenden Techniken nicht auf die offenbarten spezifischen Ausführungsformen beschränkt sein soll, sondern dass sie auch alle Ausführungsformen enthält, die in den Umfang der Anmeldung fallen.

Claims (10)

  1. Computerimplementiertes Verfahren, umfassend: Erzeugen einer Batchtabelle und einer Modustabelle durch eine Verarbeitungsvorrichtung; Bestimmen der Bildverarbeitungsleistungsanforderungen für einen aktuellen Modus eines Fahrzeugs unter Verwendung der Modustabelle durch die Verarbeitungsvorrichtung, wobei das Fahrzeug eine Vielzahl von Kameras umfasst, die konfiguriert sind, um eine Vielzahl von Bildern aufzunehmen; Auswählen einer Batchgröße und einer Verarbeitungsfrequenz durch die Verarbeitungsvorrichtung, die zumindest teilweise auf den Leistungsanforderungen der Bildverarbeitung für den aktuellen Modus des Fahrzeugs basieren; und Verarbeiten mindestens einer Teilmenge der Vielzahl von Bildern durch einen Beschleuniger, basierend zumindest teilweise auf der Batchgröße und der Verarbeitungsfrequenz.
  2. Computerimplementiertes Verfahren nach Anspruch 1, ferner umfassend: Bestimmen, durch die Verarbeitungsvorrichtung, ob die Batchgröße größer als eine Anzahl der Vielzahl von Kameras ist.
  3. Computerimplementiertes Verfahren nach Anspruch 2, ferner umfassend: basierend zumindest teilweise auf dem Bestimmen, dass die Batchgröße größer ist als die Anzahl der Vielzahl von Kameras, Einstellen einer Batchgröße b gleich einer Anzahl von Einzelbildern, die in einer aktuellen Spalte verbleiben, und (b-r)%n Einzelbildern aus einer nächsten Spalte, wobei b die Batchgröße darstellt, r die in einer aktuellen Spalte verbleibenden Einzelbilder darstellt und n eine Anzahl von Kameras darstellt.
  4. Computerimplementiertes Verfahren nach Anspruch 2, ferner umfassend: basierend zumindest teilweise auf dem Bestimmen, dass die Batchgröße nicht größer als die Anzahl der Vielzahl von Kameras ist, Einstellen einer Batchgröße b gleich einer Anzahl von r Einzelbildern, die in einer aktuellen Spalte verbleiben, und (b-r) Einzelbildern in einer nächsten Spalte, wobei b die Batchgröße darstellt und r die in einer aktuellen Spalte verbleibenden Einzelbilder darstellt.
  5. Computerimplementiertes Verfahren nach Anspruch 1, worin der aktuelle Modus des Fahrzeugs ausgewählt ist aus einer Gruppe bestehend aus einem Autobahnfahrmodus, einem Stadtfahrmodus, einem Parkmodus und einem Verschlechterungsmodus.
  6. Computerimplementiertes Verfahren nach Anspruch 1, worin die Batchtabelle eine Vielzahl von Batchgrößen umfasst, wobei jede der Vielzahl von Batchgrößen einen Häufigkeitswert und einen damit verbundenen Latenzwert aufweist.
  7. Computerimplementiertes Verfahren nach Anspruch 1, worin die Modustabelle eine Vielzahl von Modi des Fahrzeugs umfasst, wobei jeder der Vielzahl von Modi einen Kamerakonfigurationswert und eine damit verbundene Latenzanforderung aufweist.
  8. Computerimplementiertes Verfahren nach Anspruch 1, ferner umfassend: vor der Verarbeitung durch die Verarbeitungsvorrichtung, Bestimmen, ob eine Latenzanforderung zumindest teilweise aufgrund der Batchgröße erfüllt ist.
  9. Computerimplementiertes Verfahren nach Anspruch 8, ferner umfassend: basierend zumindest teilweise auf dem Bestimmen, dass die Latenzanforderung nicht erfüllt ist, durch die Verarbeitungsvorrichtung, Zurücksetzen auf eine sichere Batchgröße, worin die sichere Batchgröße verwendet wird, um die Verarbeitung durchzuführen.
  10. System, das Folgendes umfasst: einen Speicher, der computerlesbare Anweisungen umfasst; und eine Verarbeitungsvorrichtung zum Ausführen der computerlesbaren Anweisungen zum Durchführen eines Verfahrens, umfassend: Erzeugen einer Batchtabelle und einer Modustabelle durch die Verarbeitungsvorrichtung; Bestimmen der Bildverarbeitungsleistungsanforderungen für einen aktuellen Modus eines Fahrzeugs unter Verwendung der Modustabelle durch die Verarbeitungsvorrichtung, wobei das Fahrzeug eine Vielzahl von Kameras umfasst, die konfiguriert sind, um eine Vielzahl von Bildern aufzunehmen; Auswählen einer Batchgröße und einer Verarbeitungsfrequenz durch die Verarbeitungsvorrichtung, die zumindest teilweise auf den Leistungsanforderungen der Bildverarbeitung für den aktuellen Modus des Fahrzeugs basieren; und Verarbeiten mindestens einer Teilmenge der Vielzahl von Bildern durch einen Beschleuniger, basierend zumindest teilweise auf der Batchgröße und der Verarbeitungsfrequenz.
DE102019108599.3A 2018-04-11 2019-04-02 Dynamische batchgrössenauswahl für die bildverarbeitung von fahrzeugkameras Pending DE102019108599A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/950,587 2018-04-11
US15/950,587 US10686988B2 (en) 2018-04-11 2018-04-11 Dynamic batch size selection for vehicle camera image processing

Publications (1)

Publication Number Publication Date
DE102019108599A1 true DE102019108599A1 (de) 2019-10-17

Family

ID=68052920

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102019108599.3A Pending DE102019108599A1 (de) 2018-04-11 2019-04-02 Dynamische batchgrössenauswahl für die bildverarbeitung von fahrzeugkameras

Country Status (3)

Country Link
US (1) US10686988B2 (de)
CN (1) CN110378833B (de)
DE (1) DE102019108599A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115080263B (zh) * 2022-05-12 2023-10-27 吉林省吉林祥云信息技术有限公司 一种实时gpu服务中批处理规模的选择方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1646240B1 (de) * 2003-07-11 2009-09-16 Hitachi, Ltd. Bildverarbeitungs-kamerasystem und bildverarbeitungs-kamerasteuerverfahren
WO2017106734A1 (en) * 2015-12-16 2017-06-22 Martineau Pierre R Method and apparatus for remanent imaging control
US20170300763A1 (en) * 2016-04-19 2017-10-19 GM Global Technology Operations LLC Road feature detection using a vehicle camera system
US10402670B2 (en) * 2016-04-19 2019-09-03 GM Global Technology Operations LLC Parallel scene primitive detection using a surround camera system

Also Published As

Publication number Publication date
CN110378833B (zh) 2023-04-14
US10686988B2 (en) 2020-06-16
US20190320115A1 (en) 2019-10-17
CN110378833A (zh) 2019-10-25

Similar Documents

Publication Publication Date Title
DE102010004165B4 (de) Verfahren und Systeme zum Kalibrieren von Fahrzeugsichtsystemen
DE102018130821A1 (de) Verfahren zum Beurteilen einer Umgebung eines Kraftfahrzeugs durch ein künstliches neuronales Netz mit einer Aggregationseinheit; Steuereinheit, Fahrerassistenzsystem sowie Computerprogrammprodukt
DE112016003546B4 (de) Vorrichtung zum Darstellen von Unterstützungsbildern für einen Fahrer und Verfahren dazu
DE112010005737B4 (de) Bildsynthesevorrichtung
DE102019115244A1 (de) Aktivieren des null-bypasses und des weight-pruning in neuronalen netzwerken für fahrzeugwahrnehmungssysteme
DE10200400A1 (de) Anzeigevorrichtung für den Einsatz in einem Fahrzeug
DE112016003517T5 (de) Vorrichtung zum Darstellen von Unterstützungsbildern für einen Fahrer und Verfahren dazu
DE102020107867A1 (de) Datenspeichervorrichtung, Datenverarbeitungssystem und Beschleunigungsvorrichtung dafür
DE102018104065A1 (de) Auslösen der steuerung einer zone unter verwendung einer zonenbildüberlagerung auf einer fahrzeuganzeige
DE102020127000A1 (de) Erzeugung von zusammengesetzten bildern unter verwendung von zwischenbildflächen
WO2006128862A1 (de) Integrierte schaltung mit warping-berechnungseinheit
DE102019112494A1 (de) Steuern eines fahrzeugs basierend auf anhängerposition
DE112015006860T5 (de) Applikationsausführungsvorrichtung und Applikationsausführungsverfahren
DE102019119746A1 (de) Bildsignalprozessor, Verfahren zum Betreiben des Bildsignalprozessors und Anwendungsprozessor mit dem Bildsignalprozessor
DE102019108599A1 (de) Dynamische batchgrössenauswahl für die bildverarbeitung von fahrzeugkameras
DE102020100210A1 (de) Neuronaler Netzwerkprozessor zum Komprimieren von Merkmalsabbildungsdaten und Computersystem dasselbe enthaltend
DE112020002009T5 (de) Fahrzeugvorrichtung und steuerverfahren für fahrzeugvorrichtung
DE112013007676T5 (de) Informationsvorrichtung
DE102019111564A1 (de) Verfahren und system zum konfigurieren von filterobjekten für eine controller area network-steuerung
DE102019217015A1 (de) Kommunikationsvorrichtung
DE112015006856T5 (de) Applikationsausführungsvorrichtung und Applikationsausführungsverfahren
DE102019115896A1 (de) Begrenzte zeitsteuerungsanalyse von fahrzeuginterner kommunikation
DE102019114732A1 (de) Festkomma-quantisierung in neuronalen netzwerken für fahrzeugwahrnehmungssysteme
DE102018114229A1 (de) Verfahren zum Bestimmen eines Bewegungszustands eines Objekts in Abhängigkeit einer erzeugten Bewegungsmaske und eines erzeugten Begrenzungsrahmens, Fahrerassistenzsystem sowie Kraftfahrzeug
DE102016206490A1 (de) Elektronische steuereinheit

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R082 Change of representative

Representative=s name: LKGLOBAL LORENZ UND KOPF PATENTANWALT, ATTORNE, DE

Representative=s name: LKGLOBAL | LORENZ & KOPF PARTG MBB PATENTANWAE, DE

Representative=s name: LKGLOBAL ] LORENZ & KOPF PARTG MBB PATENTANWAE, DE

R016 Response to examination communication