DE102022117019A1 - Schätzung der stellung eines objekts - Google Patents

Schätzung der stellung eines objekts Download PDF

Info

Publication number
DE102022117019A1
DE102022117019A1 DE102022117019.5A DE102022117019A DE102022117019A1 DE 102022117019 A1 DE102022117019 A1 DE 102022117019A1 DE 102022117019 A DE102022117019 A DE 102022117019A DE 102022117019 A1 DE102022117019 A1 DE 102022117019A1
Authority
DE
Germany
Prior art keywords
vehicle
procedure
loss function
neural network
freedom
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
DE102022117019.5A
Other languages
English (en)
Inventor
Shubham Shrivastava
Guarav Pandey
Punarjay Chakravarty
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.)
Ford Global Technologies LLC
Original Assignee
Ford Global Technologies 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 Ford Global Technologies LLC filed Critical Ford Global Technologies LLC
Publication of DE102022117019A1 publication Critical patent/DE102022117019A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • G06T7/74Determining position or orientation of objects or cameras using feature-based methods involving reference images or patches
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W10/00Conjoint control of vehicle sub-units of different type or different function
    • B60W10/04Conjoint control of vehicle sub-units of different type or different function including control of propulsion units
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W10/00Conjoint control of vehicle sub-units of different type or different function
    • B60W10/18Conjoint control of vehicle sub-units of different type or different function including control of braking systems
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W10/00Conjoint control of vehicle sub-units of different type or different function
    • B60W10/20Conjoint control of vehicle sub-units of different type or different function including control of steering systems
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B13/00Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion
    • G05B13/02Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric
    • G05B13/0265Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric the criterion being a learning criterion
    • G05B13/027Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric the criterion being a learning criterion using neural networks only
    • 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/0464Convolutional networks [CNN, ConvNet]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/0895Weakly supervised learning, e.g. semi-supervised or self-supervised learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • G06T7/75Determining position or orientation of objects or cameras using feature-based methods involving models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10024Color image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]
    • 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/30204Marker
    • 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/30232Surveillance
    • 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/30236Traffic on road, railway or crossing

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Health & Medical Sciences (AREA)
  • Combustion & Propulsion (AREA)
  • Software Systems (AREA)
  • Chemical & Material Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Biophysics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Biomedical Technology (AREA)
  • Mathematical Physics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Mechanical Engineering (AREA)
  • Transportation (AREA)
  • Medical Informatics (AREA)
  • Automation & Control Theory (AREA)
  • Traffic Control Systems (AREA)
  • Image Analysis (AREA)

Abstract

Ein Tiefenbild eines Objekts kann in ein tiefes neuronales Netz eingegeben werden, um eine erste Stellung mit vier Freiheitsgraden des Objekts zu bestimmen. Die erste Stellung mit vier Freiheitsgraden und ein dreidimensionales Modell des Objekts können in ein Silhouetten-Rendering-Programm eingegeben werden, um eine erste zweidimensionale Silhouette des Objekts zu bestimmen. Eine zweite zweidimensionale Silhouette des Objekts kann auf Grundlage einer Schwellenwertbildung für das Tiefenbild bestimmt werden. Eine Verlustfunktion kann auf Grundlage eines Vergleichens der ersten zweidimensionalen Silhouette des Objekts mit der zweiten zweidimensionalen Silhouette des Objekts bestimmt werden. Parameter des tiefen neuronalen Netzes können auf Grundlage der Verlustfunktion optimiert werden und das tiefe neuronale Netz kann ausgegeben werden.

Description

  • GEBIET DER TECHNIK
  • Die vorliegende Offenbarung betrifft tiefe neuronale Netze in Fahrzeugen.
  • ALLGEMEINER STAND DER TECHNIK
  • Tiefe neuronale Netze können dazu trainiert werden, eine Vielzahl von Rechenaufgaben durchzuführen. Zum Beispiel können neuronale Netze trainiert werden, um Daten aus Bildern zu extrahieren. Daten, die durch tiefe neuronale Netze aus Bildern extrahiert werden, können durch Rechenvorrichtungen verwendet werden, um Systeme, einschließlich Fahrzeugen, Robotern, Sicherheit, Produktfertigung und Produktverfolgung, zu betreiben. Bilder können durch Sensoren erlangt werden, die in einem System beinhaltet sind, und unter Verwendung von tiefen neuronalen Netzen verarbeitet werden, um Daten bezüglich Objekten in einer Umgebung um ein System zu bestimmen. Der Betrieb eines Systems kann sich auf das Erlangen genauer und aktueller Daten bezüglich Objekten in einer Systemumgebung stützen.
  • KURZDARSTELLUNG
  • Ein tiefes neuronales Netz (deep neural network - DNN) kann trainiert werden, um Objekte in Bilddaten, die durch Sensoren erfasst werden, unter Verwendung eines Trainingsdatensatzes für Systeme zu bestimmen, die Fahrzeugführung, Roboterbetrieb, Sicherheit, Fertigung und Produktverfolgung beinhalten. Die Fahrzeugführung kann den Betrieb von Fahrzeugen in autonomen oder teilautonomen Modi beinhalten. Die Roboterführung kann das Führen eines Roboterendeffektors, zum Beispiel eines Greifers, beinhalten, um ein Teil aufzunehmen und das Teil zur Montage auszurichten. Sicherheitssysteme beinhalten Merkmale, bei denen ein Computer Videodaten von einer Kamera erlangt, die einen sicheren Bereich beobachtet, um autorisierten Benutzern Zugang zu gewähren und nicht autorisierten Zugang zu erkennen. Sicherheitssysteme können außerdem einem autorisierten Benutzer Zugriff auf zum Beispiel eine Rechenvorrichtung oder ein Mobiltelefon bereitstellen. In einem Fertigungssystem kann ein DNN in einem Computer einen unerwünschten Betrieb von Maschinen in einem Fertigungsvorgang erkennen, indem zum Beispiel eine Position der Hände einer Person zu einem bestimmten Zeitpunkt in Bezug auf einen Maschinenbetriebszyklus bestimmt wird. In einem Produktverfolgungssystem kann ein tiefes neuronales Netz das Entfernen eines Objekts aus einem Regal durch eine Person und das Einlegen in einen Einkaufswagen erkennen und der Person zum Beispiel automatisch eine Gebühr für das Objekt in Rechnung stellen. Andere Produktverfolgungssysteme beinhalten zum Beispiel Paketsortierung für den Versand.
  • Die Fahrzeugführung wird in dieser Schrift als nicht einschränkendes Beispiel für die Verwendung eines DNN zum Erkennen von Objekten, zum Beispiel Fahrzeugen, beschrieben. Zum Beispiel kann eine Rechenvorrichtung in einer Verkehrsinfrastruktur dazu programmiert sein, Daten bezüglich ihrer Umgebung zu erlangen, um Objekte in den Daten unter Verwendung eines DNN zu erkennen. Die Daten können Bilddaten, die von einer Standbild- oder Videokamera erlangt wurden, und Entfernungsdaten, die von einem Entfernungssensor, einschließlich eines Lidarsensors, erlangt wurden, beinhalten. Ein DNN kann trainiert werden, um Objekte in den Bilddaten oder Entfernungsdaten zu beschriften und zu lokalisieren. Eine Rechenvorrichtung, die in einem Verkehrsinfrastruktursystem beinhaltet ist, kann die Identität und Position der erkannten Objekte verwenden, um einen Fahrzeugweg zu bestimmen, auf dem ein Fahrzeug in einem autonomen oder teilautonomen Modus betrieben werden soll. Ein Fahrzeug kann auf Grundlage eines Fahrzeugweges betrieben werden, indem Befehle bestimmt werden, die die Antriebsstrang-, Brems- und Lenkungskomponenten des Fahrzeugs anweisen, das Fahrzeug so zu betreiben, dass es den Weg entlangfährt.
  • Eine große Anzahl von annotierten Sicht- oder Entfernungsbildern kann erforderlich sein, um ein DNN dazu zu trainieren, Objekte zur Fahrzeugführung zu erkennen. Annotierte Sicht- oder Entfernungsbilder sind Bilder, die Daten bezüglich einer Identität und Position von Objekten beinhalten, die in den Sicht- oder Entfernungsbildern beinhaltet sind. Das Annotieren von Sicht- oder Entfernungsbildern kann viele Stunden Benutzereingabe und viele Stunden Computerzeit erfordern. Zum Beispiel beinhalten einige Trainingsdatensätze Millionen von Bildern und können Millionen von Stunden an Benutzereingaben und Computerzeit erfordern. Hierin erörterte Techniken verbessern das Training von DNN, um Objekte zu identifizieren und zu lokalisieren, indem registrierte Sicht- und Entfernungsbilddaten erlangt werden und die Entfernungsbilddaten verwendet werden, um Ground Truth zum Trainieren des DNN bereitzustellen. Registrierte Sicht- und Entfernungsdaten, die hier als RGB-D-Bilddaten (Rot-Grün-Blau-Distanz) bezeichnet werden, sind Bilddaten, in denen entsprechende Pixel in dem RGB- oder Sichtbild und dem D- oder Entfernungsbild Daten von demselben Punkt in der äußeren Umgebung erlangen. Zwei nicht einschränkende kommerzielle Beispiele für RGB-D-Kameras sind die Astra S 3D-Kamera von Orbbec und die Realsense D435 von Intel; andere Beispiele existieren. Die Entfernungsbilddaten stellen Ground-Truth-Daten bereit, um das DNN zu trainieren, ohne dass eine Annotation der Sicht- oder Entfernungsbilddaten erforderlich ist, wodurch die Zeit und die Computerressourcen reduziert werden, die erforderlich sind, um einen Trainingsdatensatz zum Trainieren eines DNN zu erzeugen. Ground Truth bezieht sich auf Daten, die verwendet werden können, um die Korrektheit eines Ergebnisses zu bestimmen, das von einem DNN ausgegeben wird, die von einer Quelle unabhängig von dem DNN erlangt wurden.
  • In dieser Schrift ist ein Verfahren offenbart, das Folgendes beinhaltet: Eingeben eines Tiefenbildes eines Objekts in ein tiefes neuronales Netz, um eine erste Stellung mit vier Freiheitsgraden des Objekts zu bestimmen, Eingeben der ersten Stellung mit vier Freiheitsgraden und eines dreidimensionalen Modells des Objekts in ein Silhouetten-Rendering-Programm, um eine erste zweidimensionale Silhouette des Objekts zu bestimmen, und Schwellenwertbildung für das Tiefenbild, um eine zweite zweidimensionale Silhouette des Objekts zu bestimmen. Eine Verlustfunktion wird auf Grundlage des Vergleichens der ersten zweidimensionalen Silhouette des Objekts mit der zweiten zweidimensionalen Silhouette des Objekts bestimmt, Parameter des tiefen neuronalen Netzes werden auf Grundlage der Verlustfunktion optimiert und das tiefe neuronale Netz wird ausgegeben. Die erste Stellung mit vier Freiheitsgraden kann auf Grundlage von x-, y-und z-Koordinaten und eines Winkels in einer x-, y-Ebene bestimmt werden. Eine Translationsmatrix und eine Rotationsmatrix können auf Grundlage der ersten Stellung mit vier Freiheitsgraden bestimmt werden. Die Translationsmatrix und die Rotationsmatrix können eine Differenzierung in Bezug auf die erste Stellung mit vier Freiheitsgraden ermöglichen. Die Verlustfunktion kann durch Bestimmen eines Abstands zwischen der ersten zweidimensionalen Silhouette des Objekts und der zweiten zweidimensionalen Silhouette des Objekts bestimmt werden. Der Abstand kann einer oder mehrere von einem L1-Abstand, einem Fasenabstand und einem Schwerpunktabstand sein.
  • Die Parameter des tiefen neuronalen Netzes können auf Grundlage der Verlustfunktion durch Rückpropagieren der Verlustfunktion durch das tiefe neuronale Netz optimiert werden. Das tiefe neuronale Netz kann ein neuronales Faltungsnetz sein, das Faltungsschichten und vollständig verbundene Schichten beinhaltet. Das dreidimensionale Modell des Objekts kann auf Grundlage eines oder mehrerer von computergestützten Konstruktionsdaten oder einem Lidar-Scan bestimmt werden. Eine zweite Stellung mit vier Freiheitsgraden des Objekts kann auf einem Rot-Grün-Blau-Bild und an dem Objekt angewendeten Passermarken basieren. Eine zweite Verlustfunktion kann auf Grundlage des Vergleichens der zweiten Stellung mit vier Freiheitsgraden des Objekts mit der ersten Stellung mit vier Freiheitsgraden des Objekts bestimmt werden. Ein Fahrzeugweg kann auf Grundlage des Bestimmens einer oder mehrerer Stellungen mit vier Freiheitsgraden für ein Fahrzeug bestimmt werden. Das Fahrzeug kann auf dem Fahrzeugweg betrieben werden, indem eines oder mehrere von Fahrzeugantriebsstrang, Fahrzeugbremsen und Fahrzeuglenkung gesteuert werden. Die Differenzierung kann bestimmen, in welcher Richtung die Gewichtungen für einen nachfolgenden Verarbeitungsdurchlauf geändert werden sollen.
  • Des Weiteren wird ein computerlesbares Medium offenbart, auf dem Programmanweisungen zum Ausführen einiger oder aller der vorstehenden Verfahrensschritte gespeichert sind. Ferner ist ein Computer offenbart, der zum Ausführen einiger oder aller der vorstehenden Verfahrensschritte programmiert ist, einschließlich einer Computerausrüstung, die zu Folgendem programmiert ist: Eingeben eines Tiefenbildes eines Objekts in ein tiefes neuronales Netz, um eine erste Stellung mit vier Freiheitsgraden des Objekts zu bestimmen, Eingeben der ersten Stellung mit vier Freiheitsgraden und eines dreidimensionalen Modells des Objekts in ein Silhouetten-Rendering-Programm, um eine erste zweidimensionale Silhouette des Objekts zu bestimmen, und Schwellenwertbildung für das Tiefenbild, um eine zweite zweidimensionale Silhouette des Objekts zu bestimmen. Eine Verlustfunktion wird auf Grundlage des Vergleichens der ersten zweidimensionalen Silhouette des Objekts mit der zweiten zweidimensionalen Silhouette des Objekts bestimmt, Parameter des tiefen neuronalen Netzes werden auf Grundlage der Verlustfunktion optimiert und das tiefe neuronale Netz wird ausgegeben. Die erste Stellung mit vier Freiheitsgraden kann auf Grundlage von x-, y-und z-Koordinaten und eines Winkels in einer x-, y-Ebene bestimmt werden. Eine Translationsmatrix und eine Rotationsmatrix können auf Grundlage der ersten Stellung mit vier Freiheitsgraden bestimmt werden. Die Translationsmatrix und die Rotationsmatrix können eine Differenzierung in Bezug auf die erste Stellung mit vier Freiheitsgraden ermöglichen. Die Verlustfunktion kann durch Bestimmen eines Abstands zwischen der ersten zweidimensionalen Silhouette des Objekts und der zweiten zweidimensionalen Silhouette des Objekts bestimmt werden. Der Abstand kann einer oder mehrere von einem L1-Abstand, einem Fasenabstand und einem Schwerpunktabstand sein.
  • Die Anweisungen können weitere Anweisungen beinhalten, um die Parameter des tiefen neuronalen Netzes auf Grundlage der Verlustfunktion durch Rückpropagieren der Verlustfunktion durch das tiefe neuronale Netz zu optimieren. Das tiefe neuronale Netz kann ein neuronales Faltungsnetz sein, das Faltungsschichten und vollständig verbundene Schichten beinhaltet. Das dreidimensionale Modell des Objekts kann auf Grundlage eines oder mehrerer von computergestützten Konstruktionsdaten oder einem Lidar-Scan bestimmt werden. Eine zweite Stellung mit vier Freiheitsgraden des Objekts kann auf einem Rot-Grün-Blau-Bild und an dem Objekt angewendeten Passermarken basieren. Eine zweite Verlustfunktion kann auf Grundlage des Vergleichens der zweiten Stellung mit vier Freiheitsgraden des Objekts mit der ersten Stellung mit vier Freiheitsgraden des Objekts bestimmt werden. Ein Fahrzeugweg kann auf Grundlage des Bestimmens einer oder mehrerer Stellungen mit vier Freiheitsgraden für ein Fahrzeug bestimmt werden. Das Fahrzeug kann auf dem Fahrzeugweg betrieben werden, indem eines oder mehrere von Fahrzeugantriebsstrang, Fahrzeugbremsen und Fahrzeuglenkung gesteuert werden. Die Differenzierung kann bestimmen, in welcher Richtung die Gewichtungen für einen nachfolgenden Verarbeitungsdurchlauf geändert werden sollen.
  • Figurenliste
    • 1 ist ein Blockdiagramm eines beispielhaften Systems eines tiefen neuronalen Netzes.
    • 2 ist eine grafische Darstellung eines beispielhaften tiefen neuronalen Netzes.
    • 3 ist eine grafische Darstellung eines beispielhaften Parkdecks.
    • 4 ist ein grafische Darstellung von drei beispielhaften Bildern eines Fahrzeugs.
    • 5 ist eine grafische Darstellung eines beispielhaften dreidimensionalen Modells eines Fahrzeugs.
    • 6 ist eine grafische Darstellung eines beispielhaften computergestützten Konstruktionsmodells eines Fahrzeugs.
    • 7 ist eine grafische Darstellung eines beispielhaften selbstüberwachten Trainingssystems.
    • 8 ist ein Ablaufdiagramm eines beispielhaften Prozesses zum Trainieren eines tiefen neuronalen Netzes.
  • DETAILLIERTE BESCHREIBUNG
  • 1 ist eine grafische Darstellung eines Objekterkennungssystems 100, das ein Verkehrsinfrastruktursystem 105 beinhalten kann, das einen Servercomputer 120 und Sensoren 122 beinhaltet. Das Objekterkennungssystem beinhaltet ein Fahrzeug 110, das in einem autonomen („autonom“ für sich bedeutet in dieser Offenbarung „vollständig autonom“), einem teilautonomen und einem insassengesteuerten (auch als nichtautonom bezeichneten) Modus betrieben werden kann. Eine oder mehrere Rechenvorrichtungen 115 des Fahrzeugs 110 können Daten bezüglich des Betriebs des Fahrzeugs 110 von Sensoren 116 empfangen. Die Rechenvorrichtung 115 kann das Fahrzeug 110 in einem autonomen Modus, einem teilautonomen Modus oder einem nichtautonomen Modus betreiben.
  • Die Rechenvorrichtung 115 beinhaltet einen Prozessor und einen Speicher, wie sie bekannt sind. Ferner beinhaltet der Speicher eine oder mehrere Formen von computerlesbaren Medien und er speichert Anweisungen, die durch den Prozessor zum Durchführen verschiedener Vorgänge, einschließlich der in dieser Schrift offenbarten, ausführbar sind. Zum Beispiel kann die Rechenvorrichtung 115 eine Programmierung beinhalten, um eines oder mehrere von Bremsen, Antrieb (z. B. Beschleunigungssteuerung in dem Fahrzeug 110 durch Steuern von einem oder mehreren von einer Brennkraftmaschine, einem Elektromotor, einem Hybridmotor usw.), Lenkung, Klimaregelung, Innen- und/oder Außenleuchten usw. des Fahrzeugs zu betreiben sowie um zu bestimmen, ob und wann die Rechenvorrichtung 115 im Gegensatz zu einem menschlichen Bediener derartige Vorgänge steuern soll.
  • Die Rechenvorrichtung 115 kann mehr als eine Rechenvorrichtung, z. B. Steuerungen oder dergleichen, die in dem Fahrzeug 110 zum Überwachen und/oder Steuern verschiedener Fahrzeugkomponenten enthalten sind, z. B. eine Antriebsstrangsteuerung 112, eine Bremssteuerung 113, eine Lenksteuerung 114 usw., beinhalten oder z. B. über einen Fahrzeugkommunikationsbus, wie weiter unten beschrieben, kommunikativ mit dieser (diesen) gekoppelt sein. Die Rechenvorrichtung 115 ist im Allgemeinen zur Kommunikation an einem Fahrzeugkommunikationsnetzwerk angeordnet, das z. B. einen Bus in dem Fahrzeug 110, etwa ein Controller Area Network (CAN) oder dergleichen, beinhaltet; das Netzwerk des Fahrzeugs 110 kann zusätzlich oder alternativ drahtgebundene oder drahtlose Kommunikationsmechanismen, wie sie bekannt sind, beinhalten, z. B. Ethernet oder andere Kommunikationsprotokolle.
  • Über das Fahrzeugnetzwerk kann die Rechenvorrichtung 115 Nachrichten an verschiedene Vorrichtungen in dem Fahrzeug übertragen und/oder Nachrichten von den verschiedenen Vorrichtungen, z. B. Steuerungen, Aktoren, Sensoren usw., einschließlich der Sensoren 116, empfangen. Alternativ oder zusätzlich kann in Fällen, bei denen die Rechenvorrichtung 115 tatsächlich mehrere Vorrichtungen umfasst, das Fahrzeugkommunikationsnetzwerk für Kommunikationen zwischen Vorrichtungen verwendet werden, die in dieser Offenbarung als die Rechenvorrichtung 115 dargestellt sind. Ferner können, wie nachfolgend erwähnt, verschiedene Steuerungen oder Erfassungselemente, wie etwa die Sensoren 116, Daten über das Fahrzeugkommunikationsnetzwerk an der Rechenvorrichtung 115 bereitstellen.
  • Zusätzlich kann die Rechenvorrichtung 115 dazu konfiguriert sein, über ein Netzwerk 130, das, wie nachstehend beschrieben, Hardware, Firmware und Software beinhaltet, die es der Rechenvorrichtung 115 ermöglichen, über ein Netzwerk 130, wie etwa drahtloses Internet (Wi-Fi®) oder Mobilfunknetzwerke, mit einem entfernten Servercomputer 120 zu kommunizieren, durch eine Fahrzeug-Infrastruktur-Schnittstelle (vehicle-to-infrastructure - V-I-Schnittstelle) 111 mit einem entfernten Servercomputer 120, z. B. einem Cloud-Server, zu kommunizieren. Die V-I-Schnittstelle 111 kann dementsprechend Prozessoren, einen Speicher, Sendeempfänger usw. beinhalten, die dazu konfiguriert sind, verschiedene drahtgebundene und/oder drahtlose Netzwerktechnologien zu nutzen, z. B. Mobilfunk, BLUETOOTH® und drahtgebundene und/oder drahtlose Paketnetzwerke. Die Rechenvorrichtung 115 kann zum Kommunizieren mit anderen Fahrzeugen 110 über die F-I-Schnittstelle 111 unter Verwendung von Fahrzeug-Fahrzeug-(vehicle-to-vehicle - V-to-V-)Netzwerken z. B. gemäß dedizierter Nahbereichsübertragung (dedicated short range communications - DSRC) und/oder dergleichen, konfiguriert sein, die z. B. ad hoc zwischen Fahrzeugen 110 in der Nähe gebildet werden oder über infrastrukturbasierte Netzwerke gebildet werden. Die Rechenvorrichtung 115 beinhaltet außerdem einen nichtflüchtigen Speicher, wie er bekannt ist. Die Rechenvorrichtung 115 kann Daten über das Speichern von Daten zum späteren Abrufen und Übermitteln über das Fahrzeugübertragungsnetzwerk und eine Fahrzeug-Infrastruktur-(V-I-)Schnittstelle 111 an einen Servercomputer 120 oder eine mobile Benutzervorrichtung 160 in einem nicht flüchtigen Speicher protokollieren.
  • Wie bereits erwähnt, ist in Anweisungen, die in dem Speicher gespeichert und durch den Prozessor der Rechenvorrichtung 115 ausgeführt werden können, im Allgemeinen eine Programmierung zum Betreiben einer oder mehrerer Komponenten des Fahrzeugs 110, z. B. Bremsung, Lenkung, Antrieb usw., ohne Eingreifen eines menschlichen Bedieners beinhaltet. Unter Verwendung in der Rechenvorrichtung 115 empfangener Daten, z. B. der Sensordaten von den Sensoren 116, dem Servercomputer 120 usw., kann die Rechenvorrichtung 115 ohne einen Fahrer zum Betreiben des Fahrzeugs 110 verschiedene Bestimmungen vornehmen und/oder verschiedene Komponenten und/oder Vorgänge des Fahrzeugs 110 steuern. Zum Beispiel kann die Rechenvorrichtung 115 eine Programmierung zum Regulieren des Betriebsverhaltens des Fahrzeugs 110 (d. h. physischer Manifestationen des Betriebs des Fahrzeugs 110), wie etwa einer Geschwindigkeit, Beschleunigung, Abbremsung, Lenkung usw., und des taktischen Verhaltens (d. h. Steuerung des Betriebsverhaltens auf eine Weise, die typischerweise ein sicheres und effizientes Abfahren einer Route erreichen soll), wie etwa eines Abstands zwischen Fahrzeugen und/oder eines Zeitraums zwischen Fahrzeugen, Spurwechseln, des Mindestabstands zwischen Fahrzeugen, der Mindestzeit zur Wegquerung bei Linksabbiegung, der Zeit bis zur Ankunft an einem bestimmten Standort und der Mindestzeit bis zum Überqueren der Kreuzung an einer Kreuzung (ohne Ampel) beinhalten.
  • Steuerungen beinhalten im hierin verwendeten Sinne Rechenvorrichtungen, die in Regel dazu programmiert sind, ein bestimmtes Fahrzeugteilsystem zu überwachen und/oder zu steuern. Zu Beispielen zählen eine Antriebsstrangsteuerung 112, eine Bremssteuerung 113 und eine Lenksteuerung 114. Eine Steuerung kann eine elektronische Steuereinheit (electronic control unit - ECU) sein, wie sie bekannt ist, die möglicherweise zusätzliche Programmierung wie in dieser Schrift beschrieben beinhaltet. Die Steuerungen können kommunikativ mit der Rechenvorrichtung 115 verbunden sein und Anweisungen von dieser empfangen, um das Teilsystem gemäß den Anweisungen zu betätigen. Zum Beispiel kann die Bremssteuerung 113 Anweisungen zum Betreiben der Bremsen des Fahrzeugs 110 von der Rechenvorrichtung 115 empfangen.
  • Die eine oder mehreren Steuerungen 112, 113, 114 für das Fahrzeug 110 können bekannte elektronische Steuereinheiten (ECUs) oder dergleichen umfassen, die als nicht einschränkende Beispiele eine oder mehrere Antriebsstrangsteuerungen 112, eine oder mehrere Bremssteuerungen 113 und eine oder mehrere Lenksteuerungen 114 umfassen. Jede der Steuerungen 112, 113, 114 kann jeweilige Prozessoren und Speicher und einen oder mehrere Aktoren beinhalten. Die Steuerungen 112, 113, 114 können mit einem Kommunikationsbus des Fahrzeugs 110 programmiert und verbunden sein, wie etwa einem Controller-Area-Network-Bus (CAN-Bus) oder einem Local-Interconnect-Network-Bus (LIN-Bus), um Anweisungen von der Rechenvorrichtung 115 zu empfangen und Betätigungselemente auf Grundlage der Anweisungen zu steuern.
  • Die Sensoren 116 können eine Vielfalt von Vorrichtungen beinhalten, die für die Bereitstellung von Daten über den Fahrzeugkommunikationsbus bekannt sind. Zum Beispiel kann ein Radar, das an einem vorderen Stoßfänger (nicht gezeigt) des Fahrzeugs 110 befestigt ist, einen Abstand von dem Fahrzeug 110 zu einem nächsten Fahrzeug vor dem Fahrzeug 110 bereitstellen oder ein Sensor für ein globales Positionsbestimmungssystem (GPS), der in dem Fahrzeug 110 angeordnet ist, kann geografische Koordinaten des Fahrzeugs 110 bereitstellen. Der/die durch das Radar und/oder die anderen Sensoren 116 bereitgestellte/-n Abstand/Abstände und/oder die durch den GPS-Sensor bereitgestellten geografischen Koordinaten können durch die Rechenvorrichtung 115 verwendet werden, um das Fahrzeug 110 zum Beispiel autonom oder teilautonom zu betreiben.
  • Das Fahrzeug 110 ist im Allgemeinen ein Landfahrzeug 110, das autonom und/oder halbautonom betrieben werden kann und das drei oder mehr Räder aufweist, z. B. ein PKW, ein Kleinlaster usw. Das Fahrzeug 110 beinhaltet einen oder mehrere Sensoren 116, die V-I-Schnittstelle 111, die Rechenvorrichtung 115 und eine oder mehrere Steuerungen 112, 113, 114. Die Sensoren 116 können Daten in Bezug auf das Fahrzeug 110 und die Umgebung, in der das Fahrzeug 110 betrieben wird, erheben. Beispielsweise und nicht einschränkend können die Sensoren 116 z. B. Höhenmesser, Kameras, LIDAR, Radar, Ultraschallsensoren, Infrarotsensoren, Drucksensoren, Beschleunigungsmesser, Gyroskope, Temperatursensoren, Drucksensoren, Hallsensoren, optische Sensoren, Spannungssensoren, Stromsensoren, mechanische Sensoren, wie etwa Schalter, usw. beinhalten. Die Sensoren 116 können verwendet werden, um die Umgebung zu erfassen, in der das Fahrzeug 110 betrieben wird, z. B. können die Sensoren 116 Phänomene, wie etwa Wetterbedingungen (Niederschlag, eine äußere Umgebungstemperatur usw.), die Neigung einer Straße, den Standort einer Straße (z. B. unter Verwendung von Straßenrändern, Spurmarkierungen usw.) oder Standorte von Zielobjekten, wie etwa Nachbarfahrzeugen 110 erkennen. Die Sensoren 116 können ferner verwendet werden, um Daten zu sammeln, einschließlich dynamischer Daten des Fahrzeugs 110, die sich auf den Betrieb des Fahrzeugs 110 beziehen, wie etwa eine Geschwindigkeit, eine Gierrate, einen Lenkwinkel, eine Motordrehzahl, einen Bremsdruck, einen Öldruck, den auf die Steuerungen 112, 113, 114 in dem Fahrzeug 110 angewendeten Leistungspegel, eine Konnektivität zwischen Komponenten und eine genaue und rechtzeitige Leistung von Komponenten des Fahrzeugs 110.
  • Fahrzeuge können derart ausgestattet sein, dass sie sowohl in einem autonomen als auch in einem insassengesteuerten Modus arbeiten. Unter einem teil- oder vollautonomen Modus wird ein Betriebsmodus verstanden, in dem ein Fahrzeug teilweise oder vollständig von einer Rechenvorrichtung als Teil eines Systems gesteuert werden kann, das Sensoren und Steuerungen aufweist. Das Fahrzeug kann besetzt oder unbesetzt sein, wobei das Fahrzeug in beiden Fällen teilweise oder vollständig ohne Unterstützung eines Insassen gesteuert werden kann. Für die Zwecke dieser Offenbarung ist ein autonomer Modus als ein Modus definiert, in dem jedes von Antrieb (z. B. über einen Antriebsstrang, der eine Brennkraftmaschine und/oder einen Elektromotor beinhaltet), Bremsung und Lenkung des Fahrzeugs durch einen oder mehrere Fahrzeugcomputer gesteuert wird; in einem teilautonomen Modus steuert/steuern der/die Fahrzeugcomputer eines oder mehrere von Antrieb, Bremsung und Lenkung des Fahrzeugs. In einem nicht autonomen Modus wird keines von diesen durch einen Computer gesteuert.
  • 2 ist eine grafische Darstellung eines DNN 200. Ein DNN 200 kann ein Softwareprogramm sein, das auf einer Rechenvorrichtung 115 oder einem Servercomputer 120 ausgeführt wird, die/der in einem Objekterkennungssystem 100 beinhaltet ist. In diesem Beispiel ist das DNN 200 als ein neuronales Faltungsnetz (convolutional neural network - CNN) veranschaulicht. Die hierin beschriebenen Techniken können auch für DNN, die nicht als CNN umgesetzt sind, gelten. Ein als CNN umgesetztes DNN 200 gibt typischerweise ein Eingabebild (IN) 202 als Eingabedaten ein. Das Eingabebild 202 wird durch Faltungsschichten (CONV) 204 verarbeitet, um latente Variablen 206 (d. h. zwischen Neuronen in dem DNN 200 weitergegebene Variablen) zu bilden. Die Faltungsschichten 204 beinhalten eine Vielzahl von Schichten, die jeweils ein Eingabebild 202 mit Faltungskernen falten, die das Eingabebild 202 transformieren und das transformierte Eingabebild 202 unter Verwendung von Algorithmen, wie etwa Max-Pooling, verarbeiten, um die Auflösung des transformierten Eingabebilds 202 zu reduzieren, wenn es durch die Faltungsschichten 204 verarbeitet wird. Die durch die Faltungsschichten 204 ausgegebenen latenten Variablen 206 werden an vollständig verbundene Schichten 208 weitergegeben. Die vollständig verbundenen Schichten 208 beinhalten Verarbeitungsknoten. Die vollständig verbundenen Schichten 208 verarbeiten die latenten Variablen 206 unter Verwendung von linearen und nichtlinearen Funktionen, um eine Ausgabeprognose (OUT) 210 zu bestimmen. In den hierin erörterten Beispielen beinhaltet die Ausgabeprognose 210 eine Objektbeschriftung und eine Objektposition. Das DNN 200 kann ein Softwareprogramm sein, das auf einem Servercomputer 120 in einem Verkehrsinfrastruktursystem 105 ausgeführt wird. Der Servercomputer 120 kann RGB-Bilder eingeben, die durch Sensoren 122 erlangt werden, die RGB-D-Kameras beinhalten, die in dem Verkehrsinfrastruktursystem 105 beinhaltet sind.
  • Das DNN 200 kann unter Verwendung eines Trainingsdatensatzes trainiert werden, der Bilder und eine entsprechende Ground Truth beinhaltet. Trainingsdatensätze für ein DNN 200 können Tausende oder Millionen von Bildern und entsprechende Annotationen oder eine entsprechende Ground Truth beinhalten. Jedes Bild des Trainingsdatensatzes kann eine Vielzahl von Malen durch das DNN 200 verarbeitet werden. Eine Prognose 210, die von dem DNN 200 als Reaktion auf ein Eingabebild 202 ausgegeben wird, wird mit der Ground Truth verglichen, die dem Eingabebild 202 entspricht, um eine Verlustfunktion zu bestimmen. Die Verlustfunktion ist eine mathematische Funktion, die bestimmt, wie genau die von dem DNN 200 ausgegebene Prognose 210 mit der Ground Truth übereinstimmt, die dem Eingabebild 202 entspricht. Der durch die Verlustfunktion bestimmte Wert wird in die Faltungsschichten 204 und die vollständig verbundenen Schichten 208 des DNN 200 eingegeben, wo er durch die Schichten rückpropagiert wird, um Gewichtungen für die Schichten zu bestimmen, die einer minimalen Verlustfunktion entsprechen. Die Rückpropagierung ist eine Technik zum Trainieren eines DNN 200, bei der eine Verlustfunktion in die Faltungsschichten 204 und vollständig verbundenen Schichten 208 eingegeben wird, die am weitesten von der Eingabe entfernt sind, und von hinten nach vorne kommuniziert wird, und Gewichtungen für jede Schicht 204, 208 durch Auswählen von Gewichtungen bestimmt werden, die die Verlustfunktion minimieren. Das Trainieren eines DNN 200, um eine Stellung mit vier Freiheitsgraden (degree-of-freedom - DoF) für ein Fahrzeug zu bestimmen, wird nachstehend in Bezug auf 7 erörtert.
  • Ein DNN kann trainiert werden, um eine Stellung mit vier Freiheitsgraden (DoF) für ein Fahrzeug zu bestimmen. Eine dreidimensionale Stellung für ein Objekt kann durch Bestimmen der Position und der Ausrichtung des Objekts in sechs DoF festgelegt werden. Die sechs DoF beinhalten x-, y- und z-Positionskoordinaten, die in Bezug auf orthogonale x-, y-und z-Koordinatenachsen bestimmt sind, und Rotationen für Rollen, Nicken und Gieren um die x-, y- bzw. z-Achse. In den in dieser Schrift erörterten Beispielen wird angenommen, dass das Objekt, ein Fahrzeug, von einer Fahrbahn oder einer anderen Fläche, wie etwa einem Parkdeck oder einem Parkplatz, getragen wird, die eine Ebene parallel zu der x- und y-Achse ist, und es wird daher angenommen, dass die Rotationen für Rollen und Nicken null sind. Eine Vier-DoF-Stellung für ein Fahrzeug, das von einer ebenen Fläche getragen wird, beinhaltet Werte für x, y, z und Gieren, wobei Gieren ein Winkel in der Ebene ist, die durch die x- und y-Achse definiert ist. Hierin erörterte Techniken verbessern das Trainieren eines DNN, um eine Vier-DoF-Stellung für ein Fahrzeug durch Annotieren von RGB-Bilddaten unter Verwendung von Vier-DoF-Daten zu bestimmen, die von einem Entfernungsbild erlangt werden, das durch eine RGB-D-Kamera erlangt wurde. Das Annotieren von RGB-Bilddaten auf diese Weise kann eine große Anzahl (mehr als Tausende) von annotierten RGB-Bildern zum Trainieren eines DNN bereitstellen, ohne dass eine manuelle Annotation erforderlich ist, wodurch Computerressourcen und -zeit gespart werden.
  • 3 ist eine grafische Darstellung eines Stockwerks 302 eines Parkdecks 300. Ein Parkdeck 300 ist eine Struktur, die ein oder mehrere Stockwerke 302 beinhaltet, auf denen Fahrzeuge 110 geparkt werden können. Ein Stockwerk 302 eines Parkdecks 300, d. h. eine Fläche, auf der Fahrzeuge 110 fahren können, kann von einem Fahrzeug 110 über einen Eingang 304 erreicht werden, der über eine Rampe oder einen Aufzug zugänglich ist, die bzw. der es einem Fahrzeug 110 ermöglicht, Zugang zu dem Stockwerk 302 des Parkdecks 300 zu erhalten, wenn sich das Stockwerk 302 nicht auf Bodenebene befindet. Ein Stockwerk 302 eines Parkdecks 300 kann eine Vielzahl von Parkstandorten 306 beinhalten, bei denen es sich um Bereiche des Stockwerks 302 handelt, die dazu ausgestaltet sind, ein vorübergehendes Abstellen und Abholen eines Fahrzeugs 110 zu ermöglichen. Das Parkdeck 300 kann ein Verkehrsinfrastruktursystem 105 beinhalten, das eine Vielzahl von RGB-D-Kameras 308 aufweist, die an dem Parkdeck 300 angebracht ist. Zum Beispiel kann die Vielzahl von RGB-D-Kameras 308 an einer Decke des Parkdecks 300 über dem Stockwerk 302 angebracht sein, was es den RGB-D-Kameras 308 ermöglicht, Fahrzeuge 110, die auf dem Stockwerk 302 betrieben werden, von oben zu betrachten. Die Position jeder RGB-D-Kamera 308 in Bezug auf das Parkdeck 300 kann bestimmt werden und daher kann das Bestimmen der Position eines Fahrzeugs 110 in einem Bild, das durch eine RGB-D-Kamera 308 erlangt wird, die Position des Fahrzeugs 110 in Bezug auf das Parkdeck 300 bestimmen. Ein Servercomputer 120 kann mit den RGB-D-Kameras 308 kommunizieren, um einen Fahrzeugweg 310 zu bestimmen, auf dem das Fahrzeug 110 betrieben werden kann, um zu einem Parkstandort 306 zu fahren. Der Fahrzeugweg 310 kann an das Fahrzeug 110 kommuniziert werden, um es dem Fahrzeug 110 zu ermöglichen, autonom oder teilautonom betrieben zu werden, um an einem Parkstandort 306 zu parken und später den Parkstandort 306 zu verlassen und zum Eingang 304 zurückzukehren.
  • Die Vielzahl von RGB-D-Kameras 308 kann Rechenvorrichtungen 115 beinhalten, die ein DNN-Softwareprogramm beinhalten, das es der RGB-D-Kamera ermöglicht, eine Vier-DoF-Stellung eines Abschnitts eines Fahrzeugs 110 im Sichtfeld der RGB-D-Kamera zu bestimmen. Auf Grundlage einer oder mehrerer Vier-DoF-Stellungen eines Fahrzeugs 110 kann das Verkehrsinfrastruktursystem 105 einen Fahrzeugweg 310 bestimmen. Der Fahrzeugweg 310 kann eine Vielzahl von Positionen beinhalten, die als „Brotkrumen“ bezeichnet werden kann, die, wenn sie zum Beispiel durch eine Polynomfunktion zusammengefügt sind, verwendet werden können, um ein Fahrzeug 110 zu einer Position auf dem Parkdeck 300 zu betreiben. Zum Beispiel kann der Fahrzeugweg 310 verwendet werden, um ein Fahrzeug 110 von einem Eingang 304 eines Stockwerks 302 eines Parkdecks 300 zu einem Parkstandort 306 zu leiten. Während das Fahrzeug 110 auf dem Parkdeck 300 betrieben wird, können RGB-D-Kameras 308 Daten bezüglich der Position des Fahrzeugs 110 erlangen, um zu bestimmen, ob das Fahrzeug 110 dem durch das Verkehrsinfrastruktursystem 105 bestimmten Fahrzeugweg 310 folgt. In Beispielen, in denen das Fahrzeug 110 von dem Fahrzeugweg 310 abweicht, kann das Verkehrsinfrastruktursystem 105 aktualisierte Befehle an ein Fahrzeug 110 übertragen, um den Betrieb des Fahrzeugs 110 zu korrigieren. Zusätzlich zu den Parkdecks 300 kann das Verkehrsinfrastruktursystem 105, das RGB-D-Kameras 308 beinhaltet, in Fertigungsanlagen, Wartungseinrichtungen oder Ladestationen installiert sein, um den Betrieb von Fahrzeugen 110 zu lenken, die autonome oder teilautonome Fähigkeiten beinhalten.
  • 4 ist eine grafische Darstellung, die ein RGB-Bild 402, ein Tiefenbild 404 und ein binäres Bild 406 von einer RGB-D-Kamera 308 beinhaltet. Das RGB-Bild 402 beinhaltet einen Abschnitt eines Fahrzeugs 408. Das RGB-Bild 402 beinhaltet Aruco-Markierungen 410. Aruco-Markierungen 410 sind Passermarken, die unter Verwendung der ArUco-Softwarebibliothek verarbeitet werden können, die durch die Forschungsgruppe Applications of Artificial Vision der Universität von Cordoba, Cordoba, Spanien, entwickelt wurde und zum Zeitpunkt der Einreichung dieses Dokuments auf der uco.es-Website verfügbar ist. Aruco-Markierungen 410 können an einem Fahrzeug 408 angewendet werden, und sobald die Position der Aruco-Markierungen 410 in Bezug auf das Fahrzeug 408 durch physisches Messen der Aruco-Markierungen 410 festgelegt wurde, können zum Beispiel die Positionen der Aruco-Markierungen 410 in einem RGB-Bild, das unter Verwendung der ArUco-Softwarebibliothek bestimmt wird, verwendet werden, um die Position des Fahrzeugs 408 zu bestimmen, an dem sie angebracht sind. Aruco-Markierungen 410 können als optionale Technik zum Trainieren eines DNN 200 verwendet werden, um Fahrzeuge 110 unter Verwendung von RGB-D-Kameras zu lokalisieren, was in Bezug auf 7 nachstehend erörtert wird.
  • Das Tiefenbild 404 eines Fahrzeugs 412 wird durch einen Entfernungssensor, wie etwa einen Lidarsensor, oder durch den Tiefen- oder Entfernungsabschnitt einer RGB-D-Kamera 308, erlangt. In den in dieser Schrift erörterten Beispielen wird das Tiefenbild 404 mit dem RGB-Bild 402 registriert. Dies bedeutet, dass für eine gegebene x-, y-Position eines Pixels in den Bildern 402, 404 das RGB-Bild 402 die Farbe einer Position beinhaltet und das Tiefenbild 404 die Distanz oder die Entfernung zu derselben Position beinhaltet. In Beispielen, in denen das RGB-Bild 402 und das Tiefenbild 404 nicht registriert sind, kann der Versatz der Positionen jedes Pixels zwischen dem RGB-Bild 402 und dem Tiefenbild 404 bestimmt und der Versatz verwendet werden, um das RGB-Bild 402 und das Tiefenbild 404 zu registrieren.
  • Das binäre Bild 406 eines Fahrzeugs 414 ist das Ergebnis einer Schwellenwertbildung für das Tiefenbild 404. Schwellenwertbildung ist ein Bildverarbeitungsvorgang, bei dem ein Schwellenwert ausgewählt wird und alle Pixel, die einen Wert größer oder gleich dem Schwellenwert aufweisen, auf „1“ gesetzt werden und alle Pixel, die einen Wert unter dem Schwellenwert aufweisen, auf „0“ gesetzt werden. Die Schwellenwertbildung für ein Tiefenbild 404, um ein binäres Bild 406 zu bestimmen, ermöglicht das Bestimmen von Unterschieden der Position des Fahrzeugs 412 zwischen einem binären Bild 406, das durch Schwellenwertbildung eines Tiefenbildes 404 gebildet wurde, und einer Fahrzeugposition in einem binären Bild, das durch Rendern eines Tiefenbildes auf Grundlage eines dreidimensionalen (3D) Modells eines Fahrzeugs bestimmt wird. Hierin erörterte Techniken können ein DNN 200 trainieren, indem ein Tiefenbild 404 in das DNN eingegeben wird, um eine Vier-DoF-Stellung für ein Fahrzeug 412 zu bestimmen, das in dem Tiefenbild 404 beinhaltet ist. Die Vier-DoF-Stellung kann in ein Format zur Eingabe in ein Bildrendering-Softwareprogramm umgewandelt werden, indem Translations- und Rotationsmatrizen bestimmt werden, die verwendet werden können, um ein 3D-Modell von einer Eingabestellung in eine Stellung zu verschieben und zu drehen, die der Vier-DoF-Stellung entspricht. Die Translation bewegt das 3D-Modell in der x-, y-Ebene und die Rotation dreht das 3D-Modell um die z-Achse an einem ausgewählten Mittelpunkt des 3D-Modells. Das Umwandeln der Vier-DoF-Stellung auf diese Weise bewahrt die Unterscheidbarkeit der Vier-DoF-Stellung. Dies ist wichtig, wenn die Vier-DoF-Stellung verwendet wird, um eine Verlustfunktion zum Trainieren des DNN 200 zu bestimmen, wie nachstehend in Bezug auf 7 erörtert.
  • Die ausgegebene und umgewandelte Vier-DoF-Stellung kann in ein Bildrendering-Softwareprogramm eingegeben werden, zum Beispiel UnReal Engine, erhältlich von Epic Games, Cary, NC 27518, zusammen mit einem 3D-Modell des Fahrzeugs, um ein gerendertes Tiefenbild zu generieren, das ein 3D-Rendering eines Fahrzeugs in der eingegebenen Vier-DoF-Stellung beinhaltet. Das 3D-Modell des Fahrzeugs kann auf Daten einer computergestützten Konstruktion (computer aided design - CAD) für das Fahrzeug basieren, wie nachstehend in Bezug auf 6 erörtert, oder kann durch Scannen des Fahrzeugs mit einem Lidar-Scanner generiert werden, wie nachstehend in Bezug auf 5 erörtert, um die 3D-Modelldaten zu generieren. Die 3D-Modelldaten werden unter Verwendung der Rotations- und Translationsmatrizen gedreht und verschoben und das 3D-Modell wird durch die Rendering-Software gerendert, um ein Bild zu generieren, das eine gerenderte Version des 3D-Modells an den Bildkoordinaten beinhaltet, die der Vier-DoF-Stellung entsprechen. Das gerenderte Tiefenbild kann einer Schwellenwertbildung unterzogen werden, um ein gerendertes binäres Bild zu generieren.
  • Das gerenderte binäre Bild kann mit dem aus dem Tiefenbild 404 generierten binären Bild 406 verglichen werden, um eine Verlustfunktion zum Trainieren des DNN 200 zu bestimmen. Der Vergleich zwischen dem gerenderten binären Bild und dem aus dem Tiefenbild 404 generierten binären Bild 406 kann durch Bestimmen von Unterschieden in den Positionen der Fahrzeuge in dem binären Bild 406 und dem gerenderten binären Bild unter Verwendung von L1-Metriken, Fasenabstand, Schwerpunktabstand oder einer Kombination dieser Maßnahmen bestimmt werden. Eine L1-Metrik misst den Vektorabstand zwischen zwei binären Bildern durch Summieren des x- undy-Abstands zwischen entsprechenden Pixeln jedes Bildes. Dies wird manchmal auch als „Taxi“-Abstand bezeichnet. Der Fasenabstand gewichtet den Abstand zwischen entsprechenden Pixeln in den zwei binären Bildern durch Gewichten des Abstands, z. B. ist die Gewichtung umso größer, je größer der Abstand ist. Der Schwerpunktabstand findet einen Mittelpunkt für die Bereiche, die den „1“-Pixeln in dem binären Bild und dem gerenderten binären Bild entsprechen, und misst den Abstand zwischen den Mittelpunkten. Die Unterschiede zwischen dem binären Bild und dem gerenderten binären Bild bestimmen die Verlustfunktion, die durch die Schichten des DNN 200 rückpropagiert werden soll. Die Rückpropagierung ist eine Technik zum Übertragen einer Verlustfunktion von den letzten Schichten eines DNN 200 an die ersten Schichten und zum Auswählen von Gewichtungen für jede Schicht auf Grundlage des Minimierens der Verlustfunktion, während dieselben Eingabedaten eine Vielzahl von Malen verarbeitet werden, während die Gewichtungen variiert werden.
  • Hierin erörterte Techniken, welche die Verlustfunktion aus gerenderten Vier-DoF-Stellungen und Tiefenbildern 404 bestimmen, sind differenzierbar. Differenzierbar bedeutet, dass die zum Bestimmen der Verlustfunktionen verwendeten Funktionen partielle Ableitungen in Bezug auf die Gewichtungen aufweisen, die zum Bestimmen der vier DoF-Stellungen durch das DNN 200 verwendet werden. Dies bedeutet, dass für eine gegebene Verlustfunktion eine Richtung bestimmt werden kann, in der die Gewichtungen für den nächsten Verarbeitungsdurchlauf, der die Verlustfunktion reduziert, zu ändern sind. Auf diese Weise können über eine Vielzahl von Verarbeitungsdurchgängen Gewichtungen bestimmt werden, die bewirken, dass die Verlustfunktionen zu einem Minimalwert konvergieren, wodurch das DNN 200 trainiert wird.
  • 5 ist eine grafische Darstellung eines 3D-Modells 500 eines Fahrzeugs 502, das zum Beispiel durch Scannen eines realen Fahrzeugs mit einem Lidar-Scanner generiert wird. Das 3D-Modell 500 kann in ein Bildrendering-Softwareprogramm eingegeben und gemäß einer Vier-DoF-Stellung gedreht, verschoben und skaliert werden, um ein gerendertes Tiefenbild des Fahrzeugs 502 von oben nach unten zu generieren. Das gerenderte Tiefenbild des Fahrzeugs 502 von oben nach unten kann einer Schwellenwertbildung unterzogen werden, um ein gerendertes binäres Bild des Fahrzeugs 502 zu erzeugen, das mit einem binären Bild 406 verglichen werden kann, das auf einem Tiefenbild 404 des gleichen Fahrzeugtyps beruht, das durch eine RGB-D-Kamera 308 erlangt wurde, um eine Verlustfunktion zum Trainieren eines DNN 200 zu bilden.
  • 6 ist eine grafische Darstellung einer CAD-Zeichnung 600 eines Fahrzeugs 602. Eine CAD-Zeichnung 600 ist ein Rendering auf Grundlage von CAD-Daten, die einem Fahrzeug 602 entsprechen. Die CAD-Daten, die einem Fahrzeug 602 entsprechen, beinhalten die Positionen, Ausrichtungen und Texturen der Flächen, aus denen ein Fahrzeug 602 besteht. Die CAD-Daten können in ein Rendering-Softwareprogramm eingegeben werden, um ein gerendertes Tiefenbild von oben nach unten zu erzeugen, das einer Schwellenwertbildung unterzogen werden kann, um ein gerendertes binäres Bild zu generieren, das mit einem binären Bild 406 verglichen werden kann, das auf einem Tiefenbild 404 des gleichen Fahrzeugtyps beruht, das durch eine RGB-D-Kamera 308 erlangt wurde, um eine Verlustfunktion zum Trainieren eines DNN 200 zu bilden.
  • 7 ist eine grafische Darstellung eines selbstüberwachten Trainingssystems 700 zum Trainieren eines DNN 706, um eine Vier-DoF-Stellung auf Grundlage einer Eingabe eines Tiefenbildes 702 zu bestimmen. Ein selbstüberwachtes Trainingssystem 700 ist ein Softwareprogramm, das auf einem Servercomputer 120 oder einer Rechenvorrichtung 115 ausgeführt wird, der bzw. die in einem Verkehrsinfrastruktursystem 105 beinhaltet ist. Das selbstüberwachte Trainingssystem 700 gibt ein Tiefenbild (DI) 702 ein, das durch einen Tiefengeneratorsensor, zum Beispiel eine RGB-D-Kamera 308, erlangt wurde. Das Tiefenbild 702 wird zuerst in ein Größenänderungsprogramm (RS) 704 eingegeben, das ein hochauflösendes Tiefenbild 702, zum Beispiel 1K X 1K Pixel (1000 Pixel mal 1000 Pixel), auf eine niedrigere Auflösung, zum Beispiel 256 X 256 Pixel, reduziert. Das Tiefenbild mit niedrigerer Auflösung wird in ein DNN (DNN) 706 eingegeben, das in dieser Schrift auch als SiriusNet 706 bezeichnet wird. Das DNN oder SiriusNet 706 ist zusammen mit einem 3D-Modell-Renderer (3D) 710 in SiriusRenderNet 708 beinhaltet. Das DNN oder SiriusNet 706 gibt ein Tiefenbild mit niedriger Auflösung ein und gibt eine geschätzte Vier-DoF-Stellung (POSE) 712 als (x̂, ŷ, ẑ, yâw) aus. Die geschätzte Vier-DoF-Stellung 712 wird in den 3D-Modell-Renderer 710 zusammen mit einem 3D-Modell eines Fahrzeugs eingegeben, bei dem es sich um dieselbe Marke und dasselbe Modell handeln kann, wie es durch die RGB-D-Kamera 308 abgebildet wurde, um das Tiefenbild 702 zu bilden. Der 3D-Modell-Renderer 710 generiert das gerenderte Tiefenbild 714 mit der gleichen hohen Auflösung wie das ursprüngliche eingegebene Tiefenbild 702.
  • Der 3D-Modell-Renderer 710 gibt ein gerendertes Tiefenbild an einen ersten Silhouettenprozessor (SIL1) 716 aus, der das gerenderte Tiefenbild einer Schwellenwertbildung unterzieht, um ein erstes binäres Bild 718 zu bilden. Das eingegebene Tiefenbild 702 wird an einen zweiten Silhouettenprozessor (SIL2) weitergegeben, der das Tiefenbild 702 einer Schwellenwertbildung unterzieht, um ein zweites binäres Bild 722 zu bilden. Die zwei binären Bilder 718, 722 werden in einen Silhouettenfehler (SERR) 724 eingegeben, um den Abstand zwischen den zwei binären Bildern 718, 722 zu messen, um einen binären Silhouettenfehler gemäß der folgenden Gleichung zu generieren: F e h l e r S i l h o u e t t e = ƒ d m a p _ A b s t a n d ( S i l h o u e t t e g e r e n d e r t , S i l h o u e t t e T i e f e )
    Figure DE102022117019A1_0001
    wobei ƒdmap_Abstand auf einem oder mehreren von L1-Abstand, Fasenabstand und Schwerpunktabstand basiert, wie vorstehend in Bezug auf 4 erörtert. Der Silhouettenfehler wird an die Verlustfunktion (LOSS) 726 weitergegeben, die einen Verlustwert generiert, der an das DNN oder SiriusNet 706 zurückgegeben wird, wo er rückpropagiert wird, um Gewichtungen durch Minimieren des Verlustwerts zu bestimmen.
  • Zusätzlich zum Trainieren des DNN oder SiriusNet 706 unter Verwendung von Tiefenbildern 702 und gerenderten 3D-Modellen kann eine kleinere Teilmenge von RGB-Bildern von Fahrzeugen 402, die Aruco-Markierungen 410 beinhalten, durch die RGB-D-Kamera 308 gleichzeitig mit dem Tiefenbild 702 erlangt werden. Da diese Bilder kalibrierte Aruco-Markierungen 410 erfordern, erfordern sie typischerweise mehr Rechenaufwand und Zeit zum Erlangen als Tiefenbilder 702. Ein Vorteil der Verwendung von Aruco-Markierungen 410 besteht darin, dass sie als dünne Schicht auf das Fahrzeug aufgebracht werden und das Tiefenbild 702 nicht stören. Das RGB-Bild, das die Aruco-Markierungen 410 beinhaltet, kann in die ArUco-Softwarebibliothek eingegeben werden, um eine Vier-DoF-Stellung für das Fahrzeug in dem RGB-Bild zu bestimmen. Die durch die ArUco-Softwarebibliothek ausgegebene Vier-DoF-Stellung kann als Annotation (ANNO) 730, in dieser Schrift auch als Ground Truth bezeichnet, in das selbstüberwachte Trainingssystem 700 eingegeben werden. Die Annotation 730 wird an den Stellungsfehler (POSE) 728 weitergegeben, wo die Annotation 730 mit der durch das SiriusNet 706 ausgegebenen Vier-DoF-Stellung 712 verglichen wird. Der Stellungsfehler 728 kann durch die folgende Gleichung bestimmt werden: F e h l e r u b e r w a c h t = ƒ S t e l l u n g _ A b s t a n d ( [ x , y , z , G i e r e n ] , [ x ^ , y ^ , z ^ , y a ^ w ] )
    Figure DE102022117019A1_0002
    wobei (x, y, z, Gieren)) die durch die ArUco-Softwarebibliothek bestimmte Vier-DoF-Stellung ist, (x̂,ŷ,ẑ,yâw) die durch das DNN oder SiriusNet 706 bestimmte Vier-DoF-Stellung ist und ƒStellung_Abstand eine Metrik des mittleren quadratischen Fehlers ist. Der Stellungsfehler 728 kann mit dem Silhouettenfehler 724 bei der Verlustfunktion 726 kombiniert werden, um einen kombinierten Verlustwert zu generieren. Verlustfunktionen 726, die auf Grundlage des Stellungsfehlers 728 generiert werden, können für das anfängliche Training des DNN oder SiriusNet 706 verwendet werden, um dabei zu helfen, das Training des DNN oder SiriusNet 706 schneller zu konvergieren, jedoch ist der Stellungsfehler 728 nicht erforderlich, um das DNN oder SiriusNet 706 zu trainieren.
  • In dieser Schrift erörterte Techniken können das selbstüberwachte Training eines DNN oder SiriusNet 706 verbessern, indem die Anforderung für annotierte Ground-Truth-Bilder, wie sie durch Aruco-Markierungen 410 bereitgestellt werden, reduziert wird. Dies ermöglicht das Trainieren unter Verwendung einer großen Anzahl, bis zu einer Million oder mehr, von Tiefenbildern, die durch Tiefensensoren, wie etwa RGB-D-Kameras 308 erlangt werden, ohne weitere Intervention, um vier DoF-Stellungen zu bestimmen. Die einzige Anforderung besteht darin, dass ein 3D-Modell des abgebildeten Fahrzeugs verfügbar ist, um 3D-Modelle auf Grundlage der geschätzten Stellung 712 zu generieren.
  • 8 ist eine grafische Darstellung eines Ablaufdiagramms, das in Bezug auf die 1-7 beschrieben ist, eines Prozesses zum Trainieren eines DNN 200 auf Grundlage von Tiefenbildern 702. Der Prozess 800 kann durch einen Prozessor einer Rechenvorrichtung 115 oder eines Servercomputers 120 umgesetzt sein, die bzw. der zum Beispiel Informationen von Sensoren als Eingabe heranzieht und Befehle ausführt und Objektinformationen ausgibt. Der Prozess 800 beinhaltet mehrere Blöcke, die in der veranschaulichten Reihenfolge ausgeführt werden können. Der Prozess 800 könnte alternativ oder zusätzlich weniger Blöcke beinhalten oder beinhalten, dass die Blöcke in anderen Reihenfolgen ausgeführt werden.
  • Der Prozess 800 beginnt bei Block 802, wo ein Tiefenbild 702 mit einem Tiefensensor erlangt wird, der eine RGB-D-Kamera 308 beinhalten kann. Die RGB-D-Kamera 308 kann in einem Verkehrsinfrastruktursystem 105 beinhaltet sein, das in einer Struktur, wie etwa einem Parkdeck 300, einer Fertigungsanlage, einer Wartungseinrichtung oder einer Ladeeinrichtung für Elektrofahrzeuge, beinhaltet ist. Das Tiefenbild 702 wird in ein DNN oder SiriusNet 706 eingegeben, um eine Vier-DoF-Stellung eines Objekts zu bestimmen, das zumindest teilweise in dem Tiefenbild 702 beinhaltet ist. Das Objekt kann zum Beispiel ein Fahrzeug 110 sein. Das DNN 706 kann auf einem Servercomputer 120, der in dem Verkehrsinfrastruktursystem 105 beinhaltet ist, ausgeführt werden.
  • Bei Block 804 bestimmt der Prozess 800 ein erstes Silhouettenbild durch Eingeben der Vier-DoF-Stellung des Objekts in ein 3D-Rendering-Programm zusammen mit einem 3D-Modell des Objekts, um ein gerendertes Tiefenbild des Objekts zu bestimmen. Zum Beispiel kann es sich bei dem 3D-Modell um CAD-Daten bezüglich der konkreten Marke und des konkreten Modells des Fahrzeugs handeln, die in dem Tiefenbild 702 beinhaltet sind, das bei Block 802 in das DNN 706 eingegeben wird. Das gerenderte Tiefenbild kann auf Grundlage eines vom Benutzer bestimmten Schwellenwerts einer Schwellenwertbildung unterzogen werden, um das erste Silhouettenbild zu bestimmen.
  • Bei Block 806 unterzieht der Prozess 800 das Tiefenbild 702 aus Block 802 auf Grundlage eines vom Benutzer bestimmten Schwellenwerts einer Schwellenwertbildung, um es als zweites Silhouettenbild zu bestimmen.
  • Bei Block 808 vergleicht der Prozess 800 das erste Silhouettenbild mit dem zweiten Silhouettenbild, um eine Verlustfunktion zu bestimmen, wie in Bezug auf 7 erörtert.
  • Bei Block 810 wird das DNN 706 auf Grundlage der bei Block 808 bestimmten Verlustfunktion trainiert. Die Verlustfunktion kann durch die Schichten des DNN 706 rückpropagiert werden, um Gewichtungen zu bestimmen, die eine minimale Verlustfunktion auf Grundlage der Verarbeitung des eingegebenen Tiefenbildes eine Vielzahl von Malen und des Bestimmens einer Verlustfunktion für jeden Verarbeitungsdurchlauf ergeben. Da die zum Bestimmen der Verlustfunktion verwendeten Schritte differenzierbar sind, können die in Bezug auf die Gewichtungen bestimmten partiellen Ableitungen angeben, in welcher Richtung die Gewichtungen für einen nachfolgenden Verarbeitungsdurchlauf zu ändern sind, der die Verlustfunktion reduziert, und dadurch ermöglichen, dass die Trainingsfunktion konvergiert, wodurch das DNN 706 optimiert wird.
  • Bei Block 812 kann das DNN 706 an einen Servercomputer 120, der in dem Verkehrsinfrastruktursystem 105 beinhaltet ist, ausgegeben werden. Das DNN 706 kann Tiefenbilder 702 eingeben und Vier-DoF-Stellungen 712 für ein Fahrzeug 110 ausgeben, das in einer Struktur, wie etwa einem Parkdeck 300, betrieben wird. Der Servercomputer 120 kann die Vier-DoF-Stellungen 712 verarbeiten, um eine Vielzahl von Positionen zu bestimmen, die in dieser Schrift als „Brotkrumen“ bezeichnet werden und in einem Fahrzeugweg 310 beinhaltet sind. Ein Fahrzeugweg 310 kann zum Beispiel auf Grundlage der „Brotkrumen“ bestimmt werden, indem eine Polynomfunktion bestimmt wird, die durch die „Brotkrumen“ verläuft. Der Fahrzeugweg 310 kann durch eine Rechenvorrichtung 115 in einem Fahrzeug 110 verwendet werden, um das Fahrzeug 110 durch Steuern eines oder mehrerer von Fahrzeugantriebsstrang, Fahrzeugbremsen und Fahrzeuglenkung zu betreiben, um zu bewirken, dass das Fahrzeug 110 entlang des Fahrzeugweges 310 fährt. Im Anschluss an Block 812 endet der Prozess 800.
  • Rechenvorrichtungen, wie etwa die in dieser Schrift erörterten, beinhalten im Allgemeinen jeweils Befehle, die durch eine oder mehrere Rechenvorrichtungen, wie etwa die vorstehend identifizierten, und zum Ausführen von Blöcken oder Schritten von vorstehend beschriebenen Prozessen ausführbar sind. Zum Beispiel können die vorstehend erörterten Prozessblöcke als computerausführbare Befehle umgesetzt sein.
  • Computerausführbare Befehle können von Computerprogrammen kompiliert oder interpretiert werden, die unter Verwendung einer Vielfalt von Programmiersprachen und/oder -technologien erstellt sind, einschließlich unter anderem, entweder allein oder in Kombination Java™, C, C++, Python, Julia, SCALA, Visual Basic, Java Script, Perl, HTML usw. Im Allgemeinen empfängt ein Prozessor (z. B. ein Mikroprozessor) Befehle, z. B. von einem Speicher, einem computerlesbaren Medium usw., und er führt diese Befehle aus, wodurch einer oder mehrere Prozesse durchgeführt werden, die einen oder mehrere der in dieser Schrift beschriebenen Prozesse beinhalten. Derartige Befehle und andere Daten können in Dateien gespeichert und unter Verwendung einer Vielfalt von computerlesbaren Medien übertragen werden. Eine Datei in einer Rechenvorrichtung ist im Allgemeinen eine Sammlung von Daten, die auf einem computerlesbaren Medium, wie etwa einem Speichermedium, einem Direktzugriffsspeicher usw., gespeichert ist.
  • Ein computerlesbares Medium (auch als prozessorlesbares Medium bezeichnet) beinhaltet ein beliebiges nichttransitorisches (z. B. physisches) Medium, das am Bereitstellen von Daten (z. B. Anweisungen) beteiligt ist, die durch einen Computer (z. B. durch einen Prozessor eines Computers) gelesen werden können. Ein derartiges Medium kann viele Formen annehmen, einschließlich unter anderem nichtflüchtiger Medien und flüchtiger Medien. Derartige Anweisungen können durch ein oder mehrere Übermittlungsmedien übermittelt werden, die Glasfasern, Drähte, drahtlose Kommunikation beinhalten, welche die Einbauten beinhalten, die einen an einen Prozessor eines Computers gekoppelten Systembus umfassen. Übliche Formen computerlesbarer Medien beinhalten zum Beispiel RAM, einen PROM, einen EPROM, einen FLASH-EEPROM, einen beliebigen anderen Speicherchip oder eine beliebige andere Speicherkassette oder ein beliebiges anderes Medium, das ein Computer auslesen kann.
  • Allen in den Patentansprüchen verwendeten Ausdrücken soll deren allgemeine und gewöhnliche Bedeutung zukommen, wie sie vom Fachmann verstanden wird, sofern in dieser Schrift nicht ausdrücklich etwas anderes angegeben ist. Insbesondere ist die Verwendung der Singularartikel, wie etwa „ein“, „eine“, „der“, „die“, „das“ usw., dahingehend auszulegen, dass ein oder mehrere der aufgeführten Elemente genannt werden, sofern ein Patentanspruch nicht eine ausdrückliche gegenteilige Einschränkung nennt.
  • Der Ausdruck „beispielhaft“ wird in dieser Schrift in dem Sinne verwendet, dass er ein Beispiel bedeutet; z. B. sollte eine Bezugnahme auf ein „beispielhaftes Gerät“ einfach als Bezugnahme auf ein Beispiel für ein Gerät gelesen werden.
  • Das einen Wert oder ein Ergebnis modifizierende Adverb „ungefähr“ bedeutet, dass eine Form, eine Struktur, eine Messung, ein Wert, eine Bestimmung, eine Berechnung usw. von einer/einem genau beschriebenen Geometrie, Abstand, Messung, Wert, Bestimmung, Berechnung usw. aufgrund von Mängeln hinsichtlich Materialien, Bearbeitung, Fertigung, Sensormessungen, Berechnungen, Verarbeitungszeit, Kommunikationszeit usw. abweichen kann.
  • In den Zeichnungen geben gleiche Bezugszeichen jeweils gleiche Elemente an. Ferner könnten einige oder alle dieser Elemente geändert werden. Hinsichtlich der in dieser Schrift beschriebenen Medien, Prozesse, Systeme, Verfahren usw. versteht es sich, dass, obwohl die Schritte oder Blöcke derartiger Prozesse usw. zwar als gemäß einer bestimmten Abfolge erfolgend beschrieben worden sind, derartige Prozesse jedoch so umgesetzt werden könnten, dass die beschriebenen Schritte in einer anderen Reihenfolge als der in dieser Schrift beschriebenen Reihenfolge durchgeführt werden. Es versteht sich ferner, dass bestimmte Schritte gleichzeitig durchgeführt, andere Schritte hinzugefügt oder bestimmte in dieser Schrift beschriebene Schritte weggelassen werden könnten. Anders ausgedrückt werden die Beschreibungen von Prozessen in dieser Schrift zur Veranschaulichung bestimmter Ausführungsformen bereitgestellt und sollten keinesfalls dahingehend ausgelegt werden, dass sie die beanspruchte Erfindung einschränken.
  • Gemäß der vorliegenden Erfindung wird ein Computer bereitgestellt, der Folgendes aufweist: einen Prozessor; und einen Speicher, wobei der Speicher Anweisungen beinhaltet, die durch den Prozessor zu Folgendem ausgeführt werden können: Eingeben eines Tiefenbildes eines Objekts in ein tiefes neuronales Netz, um eine erste Stellung mit vier Freiheitsgraden des Objekts zu bestimmen; Eingeben der ersten Stellung mit vier Freiheitsgraden und eines dreidimensionalen Modells des Objekts in ein Silhouetten-Rendering-Programm, um eine erste zweidimensionale Silhouette des Objekts zu bestimmen; Schwellenwertbildung für das Tiefenbild, um eine zweite zweidimensionale Silhouette des Objekts zu bestimmen; Bestimmen einer Verlustfunktion auf Grundlage des Vergleichens der ersten zweidimensionalen Silhouette des Objekts mit der zweiten zweidimensionalen Silhouette des Objekts; Optimieren von Parametern des tiefen neuronalen Netzes auf Grundlage der Verlustfunktion; und Ausgeben des tiefen neuronalen Netzes.
  • Gemäß einer Ausführungsform wird die erste Stellung mit vier Freiheitsgraden auf Grundlage von x-, y-und z-Koordinaten und eines Winkels in einer x-, y-Ebene bestimmt.
  • Gemäß einer Ausführungsform beinhalten die Anweisungen weitere Anweisungen zum Bestimmen einer Translationsmatrix und einer Rotationsmatrix auf Grundlage der ersten Stellung mit vier Freiheitsgraden.
  • Gemäß einer Ausführungsform ermöglichen die Translationsmatrix und die Rotationsmatrix eine Differenzierung in Bezug auf die erste Stellung mit vier Freiheitsgraden.
  • Gemäß einer Ausführungsform beinhalten die Anweisungen weitere Anweisungen zum Bestimmen der Verlustfunktion durch Bestimmen eines Abstands zwischen der ersten zweidimensionalen Silhouette des Objekts und der zweiten zweidimensionalen Silhouette des Obj ekts.
  • Gemäß einer Ausführungsform ist der Abstand einer oder mehrere von einem L1-Abstand, einem Fasenabstand und einem Schwerpunktabstand.
  • Gemäß einer Ausführungsform beinhalten die Anweisungen weitere Anweisungen, um die Parameter des tiefen neuronalen Netzes auf Grundlage der Verlustfunktion durch Rückpropagieren der Verlustfunktion durch das tiefe neuronale Netz zu optimieren.
  • Gemäß einer Ausführungsform ist das tiefe neuronale Netz ein neuronales Faltungsnetz, das Faltungsschichten und vollständig verbundene Schichten beinhaltet.
  • Gemäß einer Ausführungsform wird das dreidimensionale Modell des Objekts auf Grundlage eines oder mehrerer von computergestützten Konstruktionsdaten oder einem Lidar-Scan bestimmt.
  • Gemäß einer Ausführungsform beinhalten die Anweisungen weitere Anweisungen, um eine zweite Stellung mit vier Freiheitsgraden des Objekts auf Grundlage eines Rot-Grün-Blau-Bildes und an dem Objekt angewendeten Passermarken zu bestimmen.
  • Gemäß einer Ausführungsform beinhalten die Anweisungen weitere Anweisungen, um eine zweite Verlustfunktion auf Grundlage des Vergleichens der zweiten Stellung mit vier Freiheitsgraden des Objekts mit der ersten Stellung mit vier Freiheitsgraden des Objekts zu bestimmen.
  • Gemäß einer Ausführungsform beinhalten die Anweisungen weitere Anweisungen zum Bestimmen eines Fahrzeugweges auf Grundlage des Bestimmens einer oder mehrerer Stellungen mit vier Freiheitsgraden für ein Fahrzeug.
  • Gemäß einer Ausführungsform beinhalten die Anweisungen weitere Anweisungen zum Betreiben des Fahrzeugs auf dem Fahrzeugweg durch Steuern eines oder mehrerer von Fahrzeugantriebsstrang, Fahrzeugbremsen und Fahrzeuglenkung.
  • Gemäß der vorliegenden Erfindung beinhaltet ein Verfahren Folgendes: Eingeben eines Tiefenbildes eines Objekts in ein tiefes neuronales Netz, um eine erste Stellung mit vier Freiheitsgraden des Objekts zu bestimmen; Eingeben der ersten Stellung mit vier Freiheitsgraden und eines dreidimensionalen Modells des Objekts in ein Silhouetten-Rendering-Programm, um eine erste zweidimensionale Silhouette des Objekts zu bestimmen; Schwellenwertbildung für das Tiefenbild, um eine zweite zweidimensionale Silhouette des Objekts zu bestimmen; Bestimmen einer Verlustfunktion auf Grundlage des Vergleichens der ersten zweidimensionalen Silhouette des Objekts mit der zweiten zweidimensionalen Silhouette des Objekts; Optimieren von Parametern des tiefen neuronalen Netzes auf Grundlage der Verlustfunktion; und Ausgeben des tiefen neuronalen Netzes.
  • In einem Aspekt der Erfindung wird die erste Stellung mit vier Freiheitsgraden auf Grundlage von x-, y-und z-Koordinaten und eines Winkels in einer x-, y-Ebene bestimmt.
  • In einem Aspekt der Erfindung beinhaltet das Verfahren Bestimmen einer Translationsmatrix und einer Rotationsmatrix auf Grundlage der ersten Stellung mit vier Freiheitsgraden.
  • In einem Aspekt der Erfindung ermöglichen die Translationsmatrix und die Rotationsmatrix eine Differenzierung in Bezug auf die erste Stellung mit vier Freiheitsgraden.
  • In einem Aspekt der Erfindung beinhaltet das Verfahren Bestimmen der Verlustfunktion durch Bestimmen eines Abstands zwischen der ersten zweidimensionalen Silhouette des Objekts und der zweiten zweidimensionalen Silhouette des Objekts.
  • In einem Aspekt der Erfindung ist der Abstand einer oder mehrere von einem L1-Abstand, einem Fasenabstand und einem Schwerpunktabstand.
  • In einem Aspekt der Erfindung beinhaltet das Verfahren Optimieren der Parameter des tiefen neuronalen Netzes auf Grundlage der Verlustfunktion durch Rückpropagieren der Verlustfunktion durch das tiefe neuronale Netz.

Claims (15)

  1. Verfahren, das Folgendes umfasst: Eingeben eines Tiefenbildes eines Objekts in ein tiefes neuronales Netz, um eine erste Stellung mit vier Freiheitsgraden des Objekts zu bestimmen; Eingeben der ersten Stellung mit vier Freiheitsgraden und eines dreidimensionalen Modells des Objekts in ein Silhouetten-Rendering-Programm, um eine erste zweidimensionale Silhouette des Objekts zu bestimmen; Schwellenwertbildung für das Tiefenbild, um eine zweite zweidimensionale Silhouette des Objekts zu bestimmen; Bestimmen einer Verlustfunktion auf Grundlage eines Vergleichens der ersten zweidimensionalen Silhouette des Objekts mit der zweiten zweidimensionalen Silhouette des Obj ekts; Optimieren von Parametern des tiefen neuronalen Netzes auf Grundlage der Verlustfunktion; und Ausgeben des tiefen neuronalen Netzes.
  2. Verfahren nach Anspruch 1, wobei die erste Stellung mit vier Freiheitsgraden auf Grundlage von x-, y-und z-Koordinaten und eines Winkels in einer x-, y-Ebene bestimmt werden.
  3. Verfahren nach Anspruch 1, ferner umfassend Bestimmen einer Translationsmatrix und einer Rotationsmatrix auf Grundlage der ersten Stellung mit vier Freiheitsgraden.
  4. Verfahren nach Anspruch 3, wobei die Translationsmatrix und die Rotationsmatrix eine Differenzierung in Bezug auf die erste Stellung mit vier Freiheitsgraden ermöglichen.
  5. Verfahren nach Anspruch 1, ferner umfassend Bestimmen der Verlustfunktion durch Bestimmen eines Abstands zwischen der ersten zweidimensionalen Silhouette des Objekts und der zweiten zweidimensionalen Silhouette des Objekts.
  6. Verfahren nach Anspruch 5, wobei der Abstand einer oder mehrere von einem L1-Abstand, einem Fasenabstand und einem Schwerpunktabstand ist.
  7. Verfahren nach Anspruch 1, ferner umfassend Optimieren der Parameter des tiefen neuronalen Netzes auf Grundlage der Verlustfunktion durch Rückpropagieren der Verlustfunktion durch das tiefe neuronale Netz.
  8. Verfahren nach Anspruch 1, wobei das tiefe neuronale Netz ein neuronales Faltungsnetz ist, das Faltungsschichten und vollständig verbundene Schichten beinhaltet.
  9. Verfahren nach Anspruch 1, wobei das dreidimensionale Modell des Objekts auf Grundlage eines oder mehrerer von computergestützten Konstruktionsdaten oder einem Lidar-Scan bestimmt wird.
  10. Verfahren nach Anspruch 1, ferner umfassend Bestimmen einer zweiten Stellung mit vier Freiheitsgraden des Objekts auf Grundlage eines Rot-Grün-Blau-Bildes und an dem Objekt angewendeten Passermarken.
  11. Verfahren nach Anspruch 10, ferner umfassend Bestimmen einer zweiten Verlustfunktion auf Grundlage eines Vergleichens der zweiten Stellung mit vier Freiheitsgraden des Objekts mit der ersten Stellung mit vier Freiheitsgraden des Objekts.
  12. Verfahren nach Anspruch 1, ferner umfassend Bestimmen eines Fahrzeugweges auf Grundlage eines Bestimmens einer oder mehrerer Stellungen mit vier Freiheitsgraden für ein Fahrzeug.
  13. Verfahren nach Anspruch 12, ferner umfassend Betreiben des Fahrzeugs auf dem Fahrzeugweg durch Steuern eines oder mehrerer von Fahrzeugantriebsstrang, Fahrzeugbremsen und Fahrzeuglenkung.
  14. Verfahren nach Anspruch 4, wobei die Differenzierung bestimmt, in welcher Richtung die Gewichtungen für einen nachfolgenden Verarbeitungsdurchlauf zu ändern sind.
  15. System, umfassend einen Computer, der dazu programmiert ist, die Verfahren nach einem der Ansprüche 1-14 durchzuführen.
DE102022117019.5A 2021-07-20 2022-07-07 Schätzung der stellung eines objekts Pending DE102022117019A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/380,174 2021-07-20
US17/380,174 US12008787B2 (en) 2021-07-20 2021-07-20 Object pose estimation

Publications (1)

Publication Number Publication Date
DE102022117019A1 true DE102022117019A1 (de) 2023-01-26

Family

ID=84784701

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102022117019.5A Pending DE102022117019A1 (de) 2021-07-20 2022-07-07 Schätzung der stellung eines objekts

Country Status (3)

Country Link
US (1) US12008787B2 (de)
CN (1) CN115640832A (de)
DE (1) DE102022117019A1 (de)

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8009138B2 (en) * 2005-05-09 2011-08-30 Sandio Technology Corporation Multidimensional input device
US10126123B2 (en) * 2014-09-19 2018-11-13 Carnegie Mellon University System and method for tracking objects with projected m-sequences
US10373369B2 (en) 2017-03-16 2019-08-06 Qualcomm Technologies, Inc. Three-dimensional pose estimation of symmetrical objects
US10474908B2 (en) 2017-07-06 2019-11-12 GM Global Technology Operations LLC Unified deep convolutional neural net for free-space estimation, object detection and object pose estimation
US10769411B2 (en) * 2017-11-15 2020-09-08 Qualcomm Technologies, Inc. Pose estimation and model retrieval for objects in images
US10937189B2 (en) 2018-01-18 2021-03-02 Samsung Electronics Co., Ltd. Pose estimation method, method of displaying virtual object using estimated pose, and apparatuses performing the same
US11222415B2 (en) * 2018-04-26 2022-01-11 The Regents Of The University Of California Systems and methods for deep learning microscopy
US20200041276A1 (en) * 2018-08-03 2020-02-06 Ford Global Technologies, Llc End-To-End Deep Generative Model For Simultaneous Localization And Mapping
WO2020140049A1 (en) * 2018-12-28 2020-07-02 Nvidia Corporation Distance to obstacle detection in autonomous machine applications
EP3983941A4 (de) * 2019-06-14 2023-05-17 Magic Leap, Inc. Skalierbare dreidimensionale objekterkennung in einem realitätsübergreifenden system
US11527012B2 (en) 2019-07-03 2022-12-13 Ford Global Technologies, Llc Vehicle pose determination
US11607999B2 (en) * 2019-09-24 2023-03-21 GM Global Technology Operations LLC Method and apparatus for invisible vehicle underbody view
US20220383112A1 (en) * 2019-09-25 2022-12-01 Google Llc Multi-task adapter neural networks
WO2021119739A1 (en) * 2019-12-17 2021-06-24 Abyss Solutions Pty Ltd Method and system for detecting physical features of objects
US11295475B2 (en) * 2020-01-29 2022-04-05 Boston Polarimetrics, Inc. Systems and methods for pose detection and measurement
US11619727B2 (en) * 2020-06-29 2023-04-04 Ford Global Technologies, Llc Determining multi-degree-of-freedom pose for sensor calibration
EP3937139A1 (de) * 2020-07-06 2022-01-12 Technische Universität München Verfahren zum ausrichten von virtuellen und realen objekten

Also Published As

Publication number Publication date
CN115640832A (zh) 2023-01-24
US20230025152A1 (en) 2023-01-26
US12008787B2 (en) 2024-06-11

Similar Documents

Publication Publication Date Title
DE102019101938A1 (de) Erstellung kognitiver Karten für Fahrzeuge
DE102019121140A1 (de) Sensorfusion
DE102019122826A1 (de) Adaptives fahrzeuglernen
DE102019127058A1 (de) Fahrzeugwegplanung
DE102017120112A1 (de) Tiefenkartenschätzung mit stereobildern
DE102020113848A1 (de) Ekzentrizitätsbildfusion
DE102021100101A1 (de) Fahrzeugsensorkalibrierung
DE102019126542A1 (de) Lokalisierung einer stationären kamera
DE102018100987A1 (de) Objektverfolgung durch unüberwachtes lernen
DE102020107149A1 (de) Fahrzeugkapsel-netzwerke
DE102020126155A1 (de) Trainieren eines neuronalen netzwerks eines fahrzeugs
DE102020117529A1 (de) Bestimmung der fahrzeuglage
DE102021109413A1 (de) Augmentation von fahrzeugdaten
DE102021128041A1 (de) Verbesserung eines neuronalen fahrzeugnetzwerks
DE102022114048A1 (de) Bildentzerrung
DE102023104789A1 (de) Verfolgung mehrerer objekte
DE102021101270A1 (de) Trainieren eines neuronalen netzwerks eines fahrzeugs
DE102022114201A1 (de) Neuronales Netz zur Objekterfassung und -Nachverfolgung
DE102020116964A1 (de) Visuelle odometrie für fahrzeug
DE112021006111T5 (de) Systeme und Verfahren zur monokularisierten Objekterkennung
DE102020107339A1 (de) Objektverfolgung für fahrzeuge
DE102022123680A1 (de) Objektposenschätzung
DE102022108656A1 (de) Neuronales quantilnetz
DE102021125592A1 (de) Verkehrskamerakalibrierung
DE102020129802A1 (de) Fahrzeugbetriebskennzeichnung

Legal Events

Date Code Title Description
R082 Change of representative

Representative=s name: BONSMANN - BONSMANN - FRANK PATENTANWAELTE, DE