DE102022100545A1 - Verbesserte objekterkennung - Google Patents

Verbesserte objekterkennung Download PDF

Info

Publication number
DE102022100545A1
DE102022100545A1 DE102022100545.3A DE102022100545A DE102022100545A1 DE 102022100545 A1 DE102022100545 A1 DE 102022100545A1 DE 102022100545 A DE102022100545 A DE 102022100545A DE 102022100545 A1 DE102022100545 A1 DE 102022100545A1
Authority
DE
Germany
Prior art keywords
images
machine learning
learning program
confidence level
image
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
DE102022100545.3A
Other languages
English (en)
Inventor
Gurjeet Singh
Sowndarya Sundar
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 DE102022100545A1 publication Critical patent/DE102022100545A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/778Active pattern-learning, e.g. online learning of image or video features
    • 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
    • B60W30/00Purposes of road vehicle drive control systems not related to the control of a particular sub-unit, e.g. of systems using conjoint control of vehicle sub-units
    • B60W30/18Propelling the vehicle
    • B60W30/18009Propelling the vehicle related to particular drive situations
    • B60W30/18036Reversing
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R1/00Optical viewing arrangements; Real-time viewing arrangements for drivers or passengers using optical image capturing systems, e.g. cameras or video systems specially adapted for use in or on vehicles
    • B60R1/002Optical viewing arrangements; Real-time viewing arrangements for drivers or passengers using optical image capturing systems, e.g. cameras or video systems specially adapted for use in or on vehicles specially adapted for covering the peripheral part of the vehicle, e.g. for viewing tyres, bumpers or the like
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/20Ensemble learning
    • 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
    • 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/047Probabilistic or stochastic networks
    • 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
    • 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
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/50Context or environment of the image
    • G06V20/56Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/50Context or environment of the image
    • G06V20/56Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
    • G06V20/58Recognition of moving objects or obstacles, e.g. vehicles or pedestrians; Recognition of traffic objects, e.g. traffic signs, traffic lights or roads
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Multimedia (AREA)
  • Medical Informatics (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Databases & Information Systems (AREA)
  • Mechanical Engineering (AREA)
  • Automation & Control Theory (AREA)
  • Transportation (AREA)
  • Probability & Statistics with Applications (AREA)
  • Image Analysis (AREA)

Abstract

Diese Offenbarung stellt eine „Verbesserte Objekterkennung“ bereit. Ein Computer ist dazu programmiert, einen Trainingsdatensatz zu bestimmen, der eine Vielzahl von Bildern beinhaltet, die jeweils ein erstes Objekt und eine Objektbeschriftung beinhalten, ein erstes Programm zum maschinellen Lernen zum Identifizieren erster Objektparameter der ersten Objekte in der Vielzahl von Bildern basierend auf den Objektbeschriftungen und einem Konfidenzniveau basierend auf einer Standardabweichung einer Verteilung einer Vielzahl von Identifizierungen der ersten Obj ektparameter zu trainieren, von einem zweiten Programm zum maschinellen Lernen eine Vielzahl von zweiten Bildern, die jeweils ein zweites Objekt beinhaltet, das mit einem niedrigen Konfidenzniveau identifiziert wurde, zu empfangen, die Vielzahl von zweiten Bildern mit dem ersten Programm zum maschinellen Lernen zu verarbeiten, um die zweiten Objektparameter mit einem entsprechenden zweiten Konfidenzniveau zu identifizieren, das größer als ein zweites Konfidenzniveau ist, das erste Programm zum maschinellen Lernen basierend auf den identifizierten zweiten Objektparametern neu zu trainieren.

Description

  • TECHNISCHES GEBIET
  • Die Offenbarung betrifft im Allgemeinen Fahrzeugsensoren und insbesondere eine durch Fahrzeugsensoren verbesserte Objekterkennung.
  • ALLGEMEINER STAND DER TECHNIK
  • Fahrzeuge können mit Rechenvorrichtungen, Netzwerken, Sensoren und Steuerungen ausgestattet sein, um Daten bezüglich der Umgebung des Fahrzeugs zu erheben und das Fahrzeug auf Grundlage der Daten zu betreiben. Fahrzeugsensoren können Daten bezüglich zurückzulegender Routen und zu umfahrender Objekte in der Umgebung des Fahrzeugs bereitstellen. Der Betrieb des Fahrzeugs kann sich auf das Erheben genauer und aktueller Daten bezüglich Objekten in der Umgebung eines Fahrzeugs stützen, während das Fahrzeug auf einer Fahrbahn betrieben wird. Fahrzeuge können Rechenvorrichtungen verwenden, die dazu konfiguriert sind, Objekte anhand von Bilddaten zu identifizieren, die durch die Fahrzeugsensoren aufgenommen werden.
  • KURZDARSTELLUNG
  • Ein System beinhaltet einen Computer, der einen Prozessor und einen Speicher beinhaltet, wobei der Speicher Anweisungen speichert, die durch den Prozessor ausführbar sind, um einen Trainingsdatensatz zu bestimmen, der eine Vielzahl von Bildern beinhaltet, die jeweils ein erstes Objekt und eine Objektbeschriftung beinhaltet, die dem Objekt entspricht, ein erstes Programm zum maschinellen Lernen zum Identifizieren jeweiliger Objektparameter der ersten Objekte in der Vielzahl von Bildern basierend auf den Objektbeschriftungen, die den ersten Objekten entsprechen, und einem Konfidenzniveau basierend auf einer Standardabweichung einer Verteilung einer Vielzahl von Identifizierungen der Objektparameter zu trainieren, von einem zweiten Programm zum maschinellen Lernen eine Vielzahl von zweiten Bildern zu empfangen, die jeweils ein zweites Objekt beinhaltet, das mit einem niedrigen Konfidenzniveau identifiziert wurde, wobei das niedrige Konfidenzniveau einem Konfidenzniveau, dass die zweite Objektidentität korrekt ist, entspricht, das unter einem ersten Schwellenwert liegt, die Vielzahl von zweiten Bildern mit dem ersten Programm zum maschinellen Lernen zu verarbeiten, um zweite Objektparameter mit einem entsprechenden zweiten Konfidenzniveau zu identifizieren, und, wenn das erste Programm zum maschinellen Lernen die zweiten Objektparameter mit einem zweiten Konfidenzniveau identifiziert, das größer als ein zweiter Schwellenwert ist, das erste Programm zum maschinellen Lernen basierend auf den identifizierten zweiten Objektparametern neu zu trainieren.
  • Die zweiten Objekte in den zweiten Bildern können Anhänger sein, und das erste Programm zum maschinellen Lernen kann trainiert sein, um einen Winkel zwischen einer Achse entlang des Anhängers und einer vertikalen Achse des zweiten Bildes als den zweiten Objektparameter auszugeben, wobei das zweite Konfidenzniveau auf einer Standardabweichung einer Verteilung von vorhergesagten Winkeln von einem mittleren vorhergesagten Winkel basiert. Die Anweisungen können ferner Anweisungen zum Senden einer Nachricht an ein Fahrzeug beinhalten, die die zweiten Bilder, die jeweilige Identifizierung der Anhänger in jedem der zweiten Bilder, den Ausgabewinkel jedes der zweiten Bilder und das zweite Konfidenzniveau für jedes der zweiten Bilder beinhaltet.
  • Das Fahrzeug kann einen Computer beinhalten, der dazu programmiert ist, eine Komponente zu betätigen, um das Fahrzeug basierend auf den ausgegebenen Winkeln rückwärts zu bewegen.
  • Das zweite Konfidenzniveau von jedem der zweiten Bilder kann eine multiplikative Umkehrung der Standardabweichung der Verteilung der vorhergesagten Winkel von dem mittleren vorhergesagten Winkel sein.
  • Die Anweisungen können ferner Anweisungen zum Trainieren des zweiten Programms zum maschinellen Lernen zum Klassifizieren der zweiten Objekte in jedem der zweiten Bilder in eine von einer Vielzahl von Klassifizierungen basierend auf einem identifizierten Merkmal des Objekts beinhalten.
  • Die Anweisungen können ferner Anweisungen zum Ausgeben, aus dem zweiten Programm zum maschinellen Lernen, einer Identifizierung von keinem zweiten Objekt in einem der zweiten Bilder, zum Eingeben des zweiten Bildes und der Identifizierung von keinem Objekt in das erste Programm zum maschinellen Lernen und zum Ausgeben einer Identifizierung des zweiten Objektparameters in dem zweiten Bild aus dem ersten Programm zum maschinellen Lernen beinhalten.
  • Die Anweisungen können ferner Anweisungen zum Empfangen der zweiten Bilder von einem Fahrzeug und zum Zuweisen, mit dem zweiten Programm zum maschinellen Lernen, jedes der Vielzahl der zweiten Bilder zu einer von einer Vielzahl von Klassifizierungen beinhalten. Die Anweisungen können ferner Anweisungen zum Ausgeben eines erkannten zweiten Objektparameters in einer der Vielzahl von zweiten Bildern, die nicht in einer der Vielzahl von Klassifizierungen des zweiten Programms zum maschinellen Lernen beinhaltet sind, aus dem ersten Programm zum maschinellen Lernen beinhalten.
  • Das zweite Programm zum maschinellen Lernen kann mindestens eines von einem Autocodierer, einem Variationscodierer, einem neuronalen Netzwerk oder einem generativen kontradiktorischen Netzwerk beinhalten.
  • Die Anweisungen können ferner Anweisungen zum Codieren eines latenten Bildes für jedes der zweiten Bilder und zum Ausgeben einer Erkennung eines zweiten Objekts in dem latenten Bild aus dem zweiten Programm zum maschinellen Lernen beinhalten.
  • Die Anweisungen können ferner Anweisungen beinhalten, um jedes Bild in dem Trainingsdatensatz einer Klassifizierung basierend auf der Objektbeschriftung zuzuweisen.
  • Ein Verfahren beinhaltet das Bestimmen eines Trainingsdatensatzes, der eine Vielzahl von Bildern beinhaltet, die jeweils ein erstes Objekt und eine Objektbeschriftung beinhaltet, die dem Objekt entspricht, das Trainieren eines ersten Programms zum maschinellen Lernen zum Identifizieren jeweiliger Objektparameter der ersten Objekte in der Vielzahl von Bildern basierend auf den Objektbeschriftungen, die den ersten Objekten entsprechen, und einem Konfidenzniveau basierend auf einer Standardabweichung einer Verteilung einer Vielzahl von Identifizierungen der ersten Objektparameter, das Empfangen von einem zweiten Programm zum maschinellen Lernen einer Vielzahl von zweiten Bildern, die jeweils ein zweites Objekt beinhaltet, das mit einem niedrigen Konfidenzniveau identifiziert wurde, wobei das niedrige Konfidenzniveau einem Konfidenzniveau, dass die zweite Objektidentität korrekt ist, entspricht, das unter einem ersten Schwellenwert liegt, das Verarbeiten der Vielzahl von zweiten Bildern mit dem ersten Programm zum maschinellen Lernen, um zweite Objektparameter mit einem entsprechenden zweiten Konfidenzniveau zu identifizieren, und, wenn das erste Programm zum maschinellen Lernen die zweiten Objektparameter mit einem zweiten hohen Konfidenzniveau identifiziert, das größer als ein zweiter Schwellenwert ist, das neue Trainieren des ersten Programms zum maschinellen Lernen basierend auf den identifizierten zweiten Objektparametern.
  • Die zweiten Objekte in den zweiten Bildern können Anhänger sein, und das erste Programm zum maschinellen Lernen kann trainiert sein, um einen Winkel zwischen einer Achse entlang des Anhängers und einer vertikalen Achse des zweiten Bildes als den zweiten Objektparameter auszugeben, wobei das zweite Konfidenzniveau auf einer Standardabweichung einer Verteilung von vorhergesagten Winkeln von einem mittleren vorhergesagten Winkel basiert. Das Verfahren kann ferner das Senden einer Nachricht an ein Fahrzeug beinhalten, die die zweiten Bilder, die jeweilige Identifizierung der Anhänger in jedem der zweiten Bilder, den ausgegebenen Winkel jedes der zweiten Bilder und das zweite Konfidenzniveau für jedes der zweiten Bilder beinhaltet.
  • Das Verfahren kann ferner das Betätigen einer Komponente beinhalten, um das Fahrzeug basierend auf den ausgegebenen Winkeln rückwärts zu bewegen.
  • Das Verfahren kann ferner das Trainieren des zweiten Programms zum maschinellen Lernen zum Klassifizieren der zweiten Objekte in jedem der zweiten Bilder in eine von einer Vielzahl von Klassifizierungen basierend auf einem identifizierten Merkmal des Objekts beinhalten.
  • Das Verfahren kann ferner das Ausgeben einer Identifizierung von keinem zweiten Objekt in einem der zweiten Bilder aus dem zweiten Programm zum maschinellen Lernen, das Eingeben des zweiten Bildes und der Identifizierung von keinem Objekt in das erste Programm zum maschinellen Lernen und das Ausgeben einer Identifizierung des zweiten Objektparameters in dem zweiten Bild aus dem ersten Programm zum maschinellen Lernen beinhalten.
  • Das Verfahren kann ferner das Empfangen der zweiten Bilder von einem Fahrzeug und das Zuweisen, mit dem zweiten Programm zum maschinellen Lernen, jedes der Vielzahl der zweiten Bilder zu einer von einer Vielzahl von Klassifizierungen beinhalten.
  • Das Verfahren kann ferner das Codieren eines latenten Bildes für jedes der zweiten Bilder und zum Ausgeben einer Erkennung eines zweiten Objekts in dem latenten Bild aus dem zweiten Programm zum maschinellen Lernen beinhalten.
  • Das Verfahren kann ferner das Zuweisen jedes Bildes in dem Trainingsdatensatz zu einer Klassifizierung basierend auf der Objektbeschriftung beinhalten.
  • Das Verfahren kann ferner das Ausgeben eines erkannten zweiten Objekts in einer der Vielzahl von zweiten Bildern, die nicht in einer der Vielzahl von Klassifizierungen des zweiten Programms zum maschinellen Lernen beinhaltet ist, aus dem ersten Programm zum maschinellen Lernen beinhalten.
  • Ferner ist eine Rechenvorrichtung offenbart, die dazu programmiert ist, beliebige der vorstehenden Verfahrensschritte auszuführen. Außerdem ist ein Fahrzeug offenbart, das die Rechenvorrichtung umfasst. Außerdem ist ein Computerprogrammprodukt offenbart, das ein computerlesbares Medium umfasst, das durch einen Computerprozessor ausführbare Anweisungen speichert, um beliebige der vorstehenden Verfahrensschritte auszuführen.
  • Ein Programm zum maschinellen Lernen, wie etwa ein Deep-Learning-Algorithmus, kann Objekte und/oder Objektparameter in durch ein Fahrzeug gesammelten Bildern erkennen. Ein Trainingsdatensatz, der eine Vielzahl von Referenzbildern beinhaltet, kann das Programm zum maschinellen Lernen trainieren, um die Objektparameter in den Bildern zu identifizieren. Basierend auf dem Trainingsdatensatz kann das Programm zum maschinellen Lernen ein Konfidenzniveau ausgeben, das auf einer Wahrscheinlichkeit basiert, dass eine Identifizierung des Objektparameters in einem Bild korrekt ist. Das Ausgeben der Identifizierung des Objektparameters und des Konfidenzniveaus aus dem Programm zum maschinellen Lernen kann dem Fahrzeug Daten bereitstellen, um den Betrieb des Fahrzeugs zu unterstützen. Zum Beispiel kann das Identifizieren eines Anhängerwinkels eines an dem Fahrzeug angehängten hinteren Anhängers das Fahrzeug beim Rückwärtsfahren unterstützen. Das Programm zum maschinellen Lernen kann trainiert werden, um Objektparameter in Bildern zu identifizieren, die das Fahrzeug möglicherweise nicht identifiziert.
  • Der Trainingsdatensatz kann mit Bildern von externen Servern, wie etwa Webseiten im Internet, gefüllt sein. Ein Bildsammlungsprogramm, wie etwa ein Web-Scraping-Algorithmus, kann Bilder von Objekten und Text sammeln, um die Objekte zu beschriften. Die Bilder mit den mit Anmerkungen versehenen Textbeschriftungen können den Trainingsdatensatz verbessern, indem mehr Bilder mit mehr Objekten bereitgestellt werden als bei der ursprünglichen Zusammenstellung des Trainingsdatensatzes. Wenn zum Beispiel neue Modelle, Klassen und/oder Arten von Anhängern auf dem Markt eingeführt werden, kann das Bildsammlungsprogramm Bilder sammeln und die Bilder mit Textbeschriftungen versehen, die die neuen Modelle, Klassen und/oder Arten identifizieren. Die neu mit Anmerkungen versehenen Bilder können dem Trainingsdatensatz hinzugefügt werden, und das Programm zum maschinellen Lernen kann neu trainiert werden, um die neuen Modelle der Anhänger zu identifizieren. Das Aktualisieren des Trainingsdatensatzes mit Bildern, die aus einem Netzwerk, wie etwa dem Internet, gesammelt wurden, kann das Training und die Verwendung des Programms zum maschinellen Lernen verbessern, um die Objektparameter in den Bildern zu identifizieren.
  • Figurenliste
    • 1 ist ein Blockdiagramm eines beispielhaften Systems zum Betreiben eines Fahrzeugs.
    • 2 ist ein Blockdiagramm eines beispielhaften Servers, der dazu programmiert ist, einen Objektparameter in einem Bild zu identifizieren.
    • 3 ist ein beispielhaftes Bild, in dem der Server den Objektparameter identifizieren kann.
    • 4 ist ein Diagramm eines beispielhaften neuronalen Netzwerkes.
    • 5 ist ein Blockdiagramm eines beispielhaften Prozesses zum Trainieren eines Programms zum maschinellen Lernen zur Identifizierung des Objektparameters in dem Bild.
    • 6 ist ein Blockdiagramm eines beispielhaften Prozesses zur Identifizierung des Objektparameters in dem Bild mit dem Programm zum maschinellen Lernen.
  • DETAILLIERTE BESCHREIBUNG
  • 1 veranschaulicht ein beispielhaftes System 100 zum Betreiben eines Fahrzeugs 105. Ein Computer 110 in dem Fahrzeug 105 ist dazu programmiert, gesammelte Daten von einem oder mehreren Sensoren 115 zu empfangen. Zum Beispiel können Daten des Fahrzeugs 105 einen Standort des Fahrzeugs 105, Daten über eine Umgebung um ein Fahrzeug herum, Daten über ein Objekt außerhalb des Fahrzeugs, wie etwa ein anderes Fahrzeug, usw. beinhalten. Ein Standort des Fahrzeugs 105 wird in der Regel in einer herkömmlichen Form bereitgestellt, z. B. als Geokoordinaten, wie etwa Breitengrad- und Längengradkoordinaten, die über ein Navigationssystem erlangt werden, welches das globale Positionsbestimmungssystem (GPS) verwendet. Weitere Beispiele für Daten können Messwerte von Systemen und Komponenten des Fahrzeugs 105 beinhalten, z. B. eine Geschwindigkeit des Fahrzeugs 105, eine Bewegungsbahn des Fahrzeugs 105 usw.
  • Der Computer 110 ist im Allgemeinen zur Kommunikationen über ein Netzwerk des Fahrzeugs 105 programmiert, das z. B. einen herkömmlichen Kommunikationsbus für das Fahrzeug 105, wie etwa einen CAN-Bus, einen LIN-Bus usw. und/oder andere drahtgebundene und/oder drahtlose Technologien, z. B. Ethernet, WIFI usw., beinhaltet. Über das Netzwerk, den Bus und/oder die anderen drahtgebundenen oder drahtlosen Mechanismen (z. B. ein drahtgebundenes oder drahtloses lokales Netzwerk in dem Fahrzeug 105) kann der Computer 110 Nachrichten an verschiedene Vorrichtungen in einem Fahrzeug 105, z.B. Steuerungen, Aktoren, Sensoren usw., einschließlich der Sensoren 115, übertragen und/oder Nachrichten von diesen empfangen. Alternativ oder zusätzlich dazu kann in Fällen, in denen der Computer 110 tatsächlich mehrere Vorrichtungen umfasst, das Fahrzeugnetzwerk zur Kommunikation zwischen Vorrichtungen verwendet werden, die in dieser Offenbarung als der Computer 110 dargestellt sind. Zum Beispiel kann der Computer 110 ein generischer Computer mit einem Prozessor und einem Speicher sein, wie vorstehend beschrieben, und/oder kann er eine dedizierte elektronische Schaltung beinhalten, die eine ASIC beinhaltet, die für einen bestimmten Vorgang hergestellt ist, z. B. eine ASIC zum Verarbeiten von Sensordaten und/oder Kommunizieren der Sensordaten. In einem anderen Beispiel kann der Computer 110 ein FPGA (Field-Programmable Gate Array - feldprogrammierbares Gate-Array) beinhalten, das eine integrierte Schaltung ist, die so hergestellt ist, dass sie durch einen Insassen konfiguriert werden kann. In der Regel wird eine Hardware-Beschreibungssprache, wie etwa VHDL (Very High Speed Integrated Circuit Hardware Description Language - Hardware-Beschreibungssprache für integrierte Schaltungen mit sehr hoher Geschwindigkeit), in der elektronischen Ausgestaltungsautomatisierung verwendet, um digitale und Mischsignal-Systeme, wie etwa FPGA und ASIC, zu beschreiben. Zum Beispiel wird eine ASIC auf Grundlage von VHDL-Programmierung hergestellt, die vor der Herstellung bereitgestellt wird, wohingegen logische Komponenten innerhalb einer FPGA auf Grundlage von VHDL-Programmierung konfiguriert sein können, z. B. in einem Speicher gespeichert, der elektrisch mit der FPGA-Schaltung verbunden ist. In einigen Beispielen kann eine Kombination aus Prozessor(en), ASIC(s) und/oder FPGA-Schaltungen in dem Computer 110 beinhaltet sein.
  • Des Weiteren kann der Computer 110 zum Kommunizieren mit dem Netzwerk 125 programmiert sein, das, wie nachstehend beschrieben, verschiedene drahtgebundene und/oder drahtlose Netzwerktechnologien beinhalten kann, z. B. Mobilfunk, Bluetooth®, Bluetooth® Low Energy (BLE), drahtgebundene und/oder drahtlose Paketnetzwerke usw.
  • Der Speicher kann von beliebiger Art sein, z. B. Festplattenlaufwerke, Festkörperlaufwerke, Server oder beliebige flüchtige oder nichtflüchtige Medien. Der Speicher kann die von den Sensoren 115 gesendeten gesammelten Daten speichern. Der Speicher kann eine von dem Computer 110 getrennte Vorrichtung sein und der Computer 110 kann durch den Speicher gespeicherte Informationen über ein Netzwerk in dem Fahrzeug 105 abrufen, z. B. über einen CAN-Bus, ein drahtloses Netzwerk usw. Alternativ oder zusätzlich kann der Speicher Teil des Computers 110 sein, z. B. als ein Speicher des Computers 110.
  • Die Sensoren 115 können eine Vielfalt an Vorrichtungen beinhalten. Zum Beispiel können verschiedene Steuerungen in einem Fahrzeug 105 als Sensoren 115 betrieben werden, um Daten über das Netzwerk oder den Bus des Fahrzeugs 105 bereitzustellen, z. B. Daten bezüglich der Geschwindigkeit, Beschleunigung und des Standortes des Fahrzeugs, des Status von Teilsystemen und/oder Komponenten usw. Ferner könnten andere Sensoren 115 Kameras, Bewegungsmelder usw. beinhalten, d.h. Sensoren 115 zum Bereitstellen von Daten zum Auswerten einer Position einer Komponente, Auswerten einer Neigung einer Fahrbahn usw. Die Sensoren 115 könnten zudem ohne Einschränkung Kurzstreckenradar, Langstreckenradar, LIDAR und/oder Ultraschallwandler beinhalten.
  • Die gesammelten Daten können eine Vielfalt an Daten, die in einem Fahrzeug 105 gesammelt werden, beinhalten. Beispiele für gesammelte Daten sind vorstehend bereitgestellt und darüber hinaus werden Daten im Allgemeinen unter Verwendung von einem oder mehreren Sensoren 115 gesammelt und können zusätzlich Daten beinhalten, die aus diesen in dem Computer 110 und/oder auf dem Server 130 berechnet werden. Im Allgemeinen können die gesammelten Daten beliebige Daten beinhalten, die durch die Sensoren 115 zusammengetragen und/oder aus derartigen Daten berechnet werden können.
  • Das Fahrzeug 105 kann eine Vielzahl von Fahrzeugkomponenten 120 beinhalten. In diesem Zusammenhang beinhaltet jede Fahrzeugkomponente 120 eine oder mehrere Hardwarekomponenten, die dazu ausgelegt sind, eine mechanische Funktion oder einen mechanischen Vorgang durchzuführen - wie etwa das Fahrzeug 105 zu bewegen, das Fahrzeug 105 abzubremsen oder anzuhalten, das Fahrzeug 105 zu lenken usw. Nicht einschränkende Beispiele für die Komponenten 120 beinhalten eine Antriebskomponente (die z. B. eine Brennkraftmaschine und/oder einen Elektromotor usw. beinhaltet), eine Getriebekomponente, eine Lenkkomponente (die z. B. eines oder mehrere von einem Lenkrad, einer Zahnstange usw. beinhalten kann), eine Bremskomponente, eine Einparkhilfekomponente, eine Komponente für adaptive Geschwindigkeitsregelung, eine adaptive Lenkkomponente, einen bewegbaren Sitz und dergleichen. Die Komponenten 120 können Rechenvorrichtungen beinhalten, z. B. elektronische Steuereinheiten (Electronic Control Units - ECU) oder dergleichen und/oder Rechenvorrichtungen, wie sie etwa vorstehend in Bezug auf den Computer 110 beschrieben wurden und die ebenfalls über ein Netzwerk des Fahrzeugs 105 kommunizieren.
  • Ein Fahrzeug 105 kann in einem vollständig autonomen Modus, einem halbautonomen Modus oder einem nichtautonomen Modus betrieben werden. Ein vollständig autonomer Modus ist als ein Modus definiert, in dem jedes von dem Antrieb (typischerweise über einen Antriebsstrang, der einen Elektromotor und/oder eine Brennkraftmaschine beinhaltet), der Bremsung und der Lenkung des Fahrzeugs 105 durch den Computer 110 gesteuert oder überwacht wird. Ein halbautonomer Modus ist ein Modus, in dem mindestens eines von dem Antrieb (typischerweise über einen Antriebsstrang, der einen Elektromotor und/oder eine Brennkraftmaschine beinhaltet), der Bremsung und der Lenkung des Fahrzeugs 105 zumindest teilweise durch den Computer 110 und nicht durch einen menschlichen Führer gesteuert oder überwacht wird. In einem nicht autonomen Modus, d. h. einem manuellen Modus, werden der Antrieb, die Bremsung und die Lenkung des Fahrzeugs 105 durch den menschlichen Führer gesteuert.
  • Das System 100 kann ferner ein Netzwerk 125 beinhalten, das mit einem Server 130 verbunden ist. Der Computer 110 kann ferner dazu programmiert sein, mit einem oder mehreren entfernten Orten, wie etwa dem Server 130, über das Netzwerk 125 zu kommunizieren, wobei ein derartiger entfernter Ort möglicherweise einen Prozessor und einen Speicher beinhaltet. Das Netzwerk 125 stellt einen oder mehrere Mechanismen dar, durch welche ein Fahrzeugcomputer 110 mit einem entfernten Server 130 kommunizieren kann. Dementsprechend kann das Netzwerk 125 eines oder mehrere von verschiedenen drahtgebundenen oder drahtlosen Kommunikationsmechanismen sein, die eine beliebige gewünschte Kombination aus drahtgebundenen (z. B. Kabel und Glasfaser) und/oder drahtlosen (z. B. Mobilfunk, drahtlos, Satellit, Mikrowelle und Funkfrequenz) Kommunikationsmechanismen und einer beliebigen gewünschten Netzwerktopologie (oder Topologien, wenn mehrere Kommunikationsmechanismen genutzt werden) beinhalten. Beispielhafte Kommunikationsnetzwerke beinhalten drahtlose Kommunikationsnetzwerke (z. B. unter Verwendung von Bluetooth®, Bluetooth® Low Energy (BLE), IEEE 802.11, Fahrzeug-zu-Fahrzeug (vehicle-to-vehicle - V2V), wie etwa dedizierte Nahbereichskommunikation (Dedicated Short Range Communications - DSRC) usw.), lokale Netzwerke (local area network - LAN) und/oder Weitbereichsnetzwerke (wide area network - WAN), die das Internet beinhalten, die Datenkommunikationsdienste bereitstellen.
  • 2 ist ein Blockdiagramm von beispielhaften Programmen zum maschinellen Lernen, die Objekte und Objektparameter in Bildern identifizieren können. Ein „Objektparameter“ ist ein oder mehrere physische(r) Parameter eines Objekts in dem Bild. Die Programme zum maschinellen Lernen können in einem Speicher eines Servers 130 gespeichert sein. Ein Computer 110 in einem Fahrzeug 105 kann ein oder mehrere Bilder an den Server 130 senden, der Server 130 kann die Programme zum maschinellen Lernen auf die Bilder anwenden, und der Server 130 kann Identifizierungen von Objekten in den Bildern ausgeben. Der Computer 110 kann basierend auf den identifizierten Objekten die eine oder mehreren Fahrzeugkomponenten 120 betätigen, um das Fahrzeug 105 zu betreiben. Beispielhafte Objektparameter, die in den Bildern identifiziert werden können, beinhalten z. B. einen Anhängerwinkel, wie nachstehend beschrieben, eine Anhängerart, eine Anhängerlänge usw.
  • Der Server 130 kann ein Bildsammlungsprogramm 200 beinhalten. Ein „Bildsammlungs“-Programm 200 durchsucht externe Server 130 nach Bildern mit Objektbeschriftungen. Zum Beispiel kann das Bildsammlungsprogramm 200 Webseiten im Internet nach Bildern mit HTML- und/oder XML-Tags durchsuchen, die Objekte in den Bildern identifizieren. Das Bildsammlungsprogramm 200 parst Text bei der Codierung von Webseiten nach bestimmten Schlüsselwörtern und gibt Bilder zurück, die auf Webseiten mit den angegebenen Schlüsselwörtern aufgeführt sind. Das Bildsammlungsprogramm 200 kann den von den Webseiten empfangenen Bildern basierend auf den spezifizierten Schlüsselwörtern eine Objektbeschriftung zuweisen. Das Bildsammlungsprogramm 200 kann nach dem Identifizieren der Schlüsselwörter auf den Webseiten das gesammelte Bild mit einer Objektbeschriftung versehen, die die identifizierten Schlüsselwörter beinhaltet. Das Bildsammlungsprogramm 200 kann ein herkömmlicher Web-Scraping-Algorithmus sein, z. B. „Beautiful Soup“, verfügbar (ab dem Datum der Einreichung dieser Patentanmeldung) unter https://www.crummy.com/software/BeautifulSoup/bs4/doc/, Web Scraper, ParseHub usw. Die Schlüsselwörter können durch menschliche Eingaben spezifiziert werden, z. B. ein Hersteller, ein Zulieferer, ein Händler, ein Produkthandbuch, eine Produktart usw., und das Bildsammlungsprogramm 200 kann die externen Server 130 auf die angegebenen Schlüsselwörter durchsuchen.
  • Der Server 130 kann einen Trainingsdatensatz mit den durch das Bildsammlungsprogramm 200 gesammelten Bildern erstellen. Der Trainingsdatensatz kann ein Satz von Bildern sein, der jeweils ein Objekt und eine mit Anmerkungen versehene Objektbeschriftung beinhaltet, die das Objekt identifiziert. Der Server 130 kann den Trainingsdatensatz verwenden, um ein oder mehrere Programme zum maschinellen Lernen zu trainieren, wie etwa einen Deep-Learning-Algorithmus. Das heißt, der Trainingsdatensatz kann Referenzbilder zum Trainieren eines Programms zum maschinellen Lernen, wie etwa eines tiefen neuronalen Netzwerks, eines Clustering-Programms usw. sein. Wie nachstehend beschrieben, passt das Programm zum maschinellen Lernen Ausgaben basierend auf den Objektbeschriftungen an, die die Objekte in den Bildern in dem Trainingsdatensatz identifizieren.
  • Der Server 130 beinhaltet ein Programm 205 zum maschinellen Lernen, das dazu trainiert ist, ein Konfidenzniveau 210 einer Identifizierung 215 eines Objektparameters in einem Bild auszugeben. In 2 ist das Programm 205 zum maschinellen Lernen ein Programm 205 zum maschinellen Lernen zur Bestimmung des Konfidenzniveaus. Das „Konfidenzniveau“ basiert auf einer Standardabweichung einer Verteilung einer Vielzahl von Identifizierungen der Objektparameter, die durch das Programm 205 zum maschinellen Lernen durchgeführt werden. Somit kann ein Konfidenzniveau 210 zum Beispiel eine multiplikative Umkehrung der Standardabweichung sein. Alternativ kann das Konfidenzniveau 210 ein Textwert sein, z. B. „niedrig“, „mittel“ oder „hoch“, und das Programm 205 zum maschinellen Lernen kann jeden Textwert ausgeben, wenn die Standardabweichung der Verteilung innerhalb eines bestimmten Bereichs von Werten liegt, z. B. kann das Programm 205 zum maschinellen Lernen ein „niedriges“ Konfidenzniveau 210, wenn die Standardabweichung größer als 4 ist, ein „mittleres“ Konfidenzniveau, wenn die Standardabweichung zwischen 1 und 4 liegt, und ein „hohes“ Konfidenzniveau, wenn die Standardabweichung kleiner als 1 ist, ausgeben. Das Programm 205 zum maschinellen Lernen empfängt als Eingabe ein Bild, das ein Objekt beinhaltet. Das Programm 205 zum maschinellen Lernen gibt eine Identifizierung 215 des Objektparameters und ein Konfidenzniveau 210 des Identifizierens des Objekts aus. Der Server 130 kann das Programm 205 zum maschinellen Lernen mit dem Trainingsdatensatz trainieren, um Objektparameter in den Bildern basierend auf den Objektbeschriftungen zu identifizieren und ein jeweiliges Konfidenzniveau 210 der Identifizierung 215 jedes Objektparameters zu bestimmen. Das heißt, das Programm 205 zum maschinellen Lernen kann jedes Bild in dem Trainingsdatensatz einer Klassifizierung (z. B. einer Klasse) basierend auf der Objektbeschriftung zuweisen, mit dem das Bild versehen ist. Das Programm 205 zum maschinellen Lernen kann z. B. ein tiefes neuronales Netzwerk 400 sein, wie nachstehend beschrieben.
  • Der Server 130 beinhaltet ein zweites Programm 220 zum maschinellen Lernen. Das zweite Programm 220 zum maschinellen Lernen identifiziert Objekte und/oder Objektparameter in Bildern, die von einem Fahrzeug gesendet wurden. Das zweite Programm 220 zum maschinellen Lernen kann z. B. ein Clustering-Programm sein, das jedes eingegebene Bild einem Cluster zuordnet, das einer Klassifizierung eines Objekts entspricht. In 2 ist das zweite Programm 220 zum maschinellen Lernen ein Clustering-Programm. Das heißt, das zweite Programm 220 zum maschinellen Lernen kann eine Vielzahl von Clustern beinhalten, wobei jedes Cluster eine Klassifizierung einer bestimmten Art von Objekt ist, und das zweite Programm 220 zum maschinellen Lernen kann einem der Cluster ein eingegebenes Bild zuweisen. Alternativ oder zusätzlich können eines oder mehrere der Cluster ein „latentes“ Cluster sein, d. h. ein Cluster, das eine bestimmte Art von Objekt nicht klassifiziert, aber Bilder beinhaltet, die ein oder mehrere gemeinsame Merkmale aufweisen, die durch das Clustering-Programm identifiziert wurden. Das zweite Programm 220 zum maschinellen Lernen kann das Objekt ausgeben, das dem zugewiesenen Cluster zugeordnet ist, wodurch das Objekt in dem Bild identifiziert wird.
  • Das zweite Programm 220 zum maschinellen Lernen kann Bilder mit niedriger Konfidenz von dem Fahrzeug 105 empfangen. Ein Bild mit „niedriger Konfidenz“ ist ein Bild, in dem der Computer 110 des Fahrzeugs 105 bestimmt, dass ein Konfidenzniveau des Bildes unter einem Schwellenwert liegt. Das heißt, der Computer 110 kann mit einem Programm zum maschinellen Lernen, wie etwa dem Konfidenzprogramm 205, programmiert sein, das das Konfidenzniveau des Identifizierens eines Objektparameters in einem Bild identifiziert. Der Computer 110 kann Bilder an den Server 130 senden, die jeweilige Konfidenzniveaus unter dem Schwellenwert aufweisen, und das zweite Programm 220 zum maschinellen Lernen kann die Bilder mit niedriger Konfidenz einem oder mehreren Clustern zuweisen, wie vorstehend beschrieben. Um das Objekt und/oder den Objektparameter in dem Bild mit niedriger Konfidenz zu identifizieren, kann das zweite Programm 220 zum maschinellen Lernen mit Referenzbildern trainiert werden, die Anmerkungen zu Identifizierungen von Objekten und/oder Objektparametern beinhalten. Die Referenzbilder können Bilder mit niedriger Konfidenz sein, die mit Anmerkungen versehen sind, und das zweite Programm 220 zum maschinellen Lernen kann eine Identifizierung von Objekten und/oder Objektparametern in den Referenzbildern ausgeben. Der Server 130 kann das zweite Programm 220 zum maschinellen Lernen trainieren, bis eine Kostenfunktion, wie nachstehend beschrieben, minimiert ist.
  • Der Server 130 kann das zweite Programm 220 zum maschinellen Lernen trainieren, um die Bilder mit niedriger Konfidenz in eine von einer Vielzahl von Klassifizierungen und/oder latenten Clustern basierend auf einem identifizierten Merkmal des Objekts zu klassifizieren. Ein „Merkmal“ des Objekts ist ein Teil oder ein Element, das eine Objektart aus anderen Objektarten identifiziert. Beispielhafte Merkmale können z. B. Anhängergröße, Form der Anhängevorrichtung, Markenname, Menge an Anhängevorrichtungen usw. beinhalten. Zusätzlich oder alternativ kann das zweite Programm 220 zum maschinellen Lernen die Bilder mit niedriger Konfidenz basierend auf einem latenten Merkmal, d. h. einem Merkmal, das nicht einem vorbestimmten identifizierten Teil oder Element zugeordnet ist, einem Cluster zuweisen. Jedes Cluster kann somit einem Merkmal des Objekts zugeordnet werden, und jedes Bild kann einem der Cluster basierend auf der Klassifizierung eines Merkmals in dem Bild zugewiesen werden.
  • Das zweite Programm 220 zum maschinellen Lernen kann mindestens eines von einem Autocodierer, einem Variationscodierer, einem neuronalen Netzwerk oder einem generativen kontradiktorischen Netzwerk beinhalten. Wenn zum Beispiel das zweite Programm 220 zum maschinellen Lernen einen Autocodierer beinhaltet, kann das zweite Programm 220 zum maschinellen Lernen ein latentes Bild für jedes der eingegebenen Bilder codieren und eine Erkennung eines Objekts in dem latenten Bild aus dem zweiten Programm 220 zum maschinellen Lernen ausgeben (d. h. das latente Bild einem Cluster zuweisen). Ein latentes Bild ist ein Bild, in dem Daten, die wahrscheinlich kein Objekt sind, ignoriert werden, und der Autocodierer berücksichtigt nur Daten, die verwendet werden könnten, um als ein Objekt identifiziert zu werden. Der Autocodierer kann das latente Bild einem Cluster zuweisen, da die irrelevanten Daten ignoriert werden, und die Algorithmen des Autocodierers können trainiert werden, um das latente Bild basierend auf den begrenzten latenten Daten einem Cluster zuzuweisen.
  • Das zweite Programm 220 zum maschinellen Lernen kann eine Identifizierung von keinem Cluster ausgeben, dem ein eingegebenes Bild mit niedriger Konfidenz zugewiesen werden kann, d. h. es konnte kein Objekt in dem Bild mit niedriger Konfidenz erkannt werden. Das zweite Programm 220 zum maschinellen Lernen kann bestimmen, dass das Bild mit niedriger Konfidenz nicht einem Cluster zugewiesen werden kann, und das Bild mit niedriger Konfidenz ohne zugewiesenes Cluster ausgeben. Das heißt, das zweite Programm 220 zum maschinellen Lernen kann trainiert werden, um Objekte in Bildern mit niedriger Konfidenz von dem Fahrzeug 105 zu identifizieren, indem die Bilder mit niedriger Konfidenz einem Cluster zugewiesen werden, und das zweite Programm 220 zum maschinellen Lernen kann einen Cluster nicht einem oder mehreren von den Bildern mit niedriger Konfidenz zuweisen. Der Server 130 kann die Bilder mit niedriger Konfidenz eingeben, in denen das zweite Programm 220 zum maschinellen Lernen kein Objekt für das Programm 205 zum maschinellen Lernen identifiziert hat. Das Programm 205 zum maschinellen Lernen kann eine Identifizierung 215 des Objektparameters in dem Bild und ein Konfidenzniveau 210, wie vorstehend beschrieben, der Identifizierung des Objektparameters ausgeben. Das Programm 205 zum maschinellen Lernen kann somit Objektparameter in Bildern identifizieren, die das zweite Programm 220 zum maschinellen Lernen nicht identifizieren konnte.
  • Das Programm 205 zum maschinellen Lernen kann ein Konfidenzniveau 210 für jede Bild- und Objektparameteridentifizierung 215 aus dem zweiten Programm 220 zum maschinellen Lernen ausgeben. Das zweite Programm 220 zum maschinellen Lernen gibt einen identifizierten Objektparameter in dem Bild aus, und das Programm 205 zum maschinellen Lernen gibt eine zweite Identifizierung 215 des Objektparameters und ein Konfidenzniveau 210, dass die Identifizierung des Objektparameters korrekt ist, aus. Das Programm 205 zum maschinellen Lernen bestätigt somit die Identifizierung des Objektparameters durch das zweite Programm 220 zum maschinellen Lernen und stellt ein Konfidenzniveau bereit, dass die Identifizierung durch das zweite Programm 220 zum maschinellen Lernen korrekt ist. Um das Konfidenzniveau zu bestimmen, erzeugt das Programm 205 zum maschinellen Lernen eine Verteilung einer Vielzahl von Identifizierungen des Objektparameters in dem Bild, bestimmt eine Standardabweichung der Verteilung von einem Mittelwert der Vielzahl von Identifizierungen und gibt das Konfidenzniveau 210 basierend auf der Standardabweichung aus, z. B. als eine multiplikative Umkehrung der Standardabweichung. Das Programm 205 zum maschinellen Lernen kann einen Objektparameter in dem Bild aus dem zweiten Programm 220 zum maschinellen Lernen erkennen, der nicht in einem der Vielzahl von Clustern des zweiten Programms 220 zum maschinellen Lernen beinhaltet ist, wie vorstehend beschrieben. Das heißt, das Programm 205 zum maschinellen Lernen kann Objektparameter in dem Bild identifizieren, die das zweite Programm 220 zum maschinellen Lernen nicht identifizieren kann. Das Programm 205 zum maschinellen Lernen verbessert somit die Erkennung von Objekten und/oder Objektparametern durch das zweite Programm 220 zum maschinellen Lernen und stellt dem Computer 110 das Konfidenzniveau 210 der Identifizierung 215 des Objektparameters bereit.
  • Der Server 130 kann dem Trainingsdatensatz Bilder mit hoher Konfidenz hinzufügen, um das Programm 205 zum maschinellen Lernen neu zu trainieren. Ein Bild mit „hoher Konfidenz“ ist ein Bild, in dem das Programm 205 zum maschinellen Lernen einen Objektparameter mit einem Konfidenzniveau 210 über einem zweiten Schwellenwert identifiziert hat. Der zweite Schwellenwert kann basierend auf einem minimalen Konfidenzniveau 210 eines Bildes in dem Trainingsdatensatz bestimmt werden. Das heißt, wenn das Programm 205 zum maschinellen Lernen ein Konfidenzniveau 210 einer Identifizierung 215 eines Objektparameters in einem Bild ausgibt, das größer als ein niedrigstes Konfidenzniveau 210 aller Bilder in dem Trainingsdatensatz ist, kann der Server 130 das Bild und das Konfidenzniveau 210 in den Trainingsdatensatz aufnehmen. Das Hinzufügen von Bildern mit hoher Konfidenz zu dem Trainingsdatensatz kann den Betrieb des Programms 205 zum maschinellen Lernen verbessern, indem zusätzliche Referenzbilder zum Trainieren des Programms 205 zum maschinellen Lernen bereitgestellt werden. Der Server 130 kann das Programm 205 zum maschinellen Lernen mit den Bildern mit hoher Konfidenz in dem Trainingsdatensatz neu trainieren, um die Präzision und Genauigkeit der ausgegebenen Identifizierung 215 von Objekten in Bildern zu verbessern, was zu höheren Konfidenzniveaus 210 führt, dass die Identifizierungen korrekt sind.
  • 3 ist ein Bild 300, das ein Objekt beinhaltet. Der Computer 110 des Fahrzeugs 105 kann das Bild 300 mit einem Sensor 115, z. B. einer Heckkamera, erfassen. Das Bild 300 in dem Beispiel aus 3 ist ein Bild 300 eines hinteren Anhängers 305. Der Computer 110 kann ein zweidimensionales Koordinatensystem definieren, das eine horizontale Achse X und eine vertikale Achse Y aufweist, die sich von einem Ursprung O erstrecken. Eine Achse A des Anhängers 305 kann einen Winkel θ mit der vertikalen Achse Y als einen Objektparameter des hinteren Anhängers 305 definieren. Der Winkel θ beschreibt eine Ausrichtung des Anhängers 305 bezogen auf das Fahrzeug 105. Wenn sich das Fahrzeug 105 rückwärts bewegt, kann der Computer 110 Daten über die Ausrichtung des Anhängers 305, dargestellt durch den Winkel θ, verwenden, um eine oder mehrere Komponenten 120 zum Bewegen des Anhängers 305 zu betätigen. Das heißt, wenn sich das Fahrzeug 105 rückwärts bewegt, kann sich der Anhänger 305 in eine andere Richtung als das Fahrzeug 105 bewegen, und der Computer 110 kann mindestens eines von einer Lenkung, einem Antrieb und/oder einer Bremse betätigen, um das Fahrzeug 105 derart zu bewegen, dass sich der Anhänger 305 in eine durch einen Fahrzeugführer beabsichtigte Richtung bewegt.
  • Das Programm 205 zum maschinellen Lernen und/oder das zweite Programm 220 zum maschinellen Lernen können den Winkel θ basierend auf dem eingegebenen Bild 300 ausgeben. Wie vorstehend beschrieben, kann das Programm 205 zum maschinellen Lernen unter Verwendung einer Technik zum maschinellen Lernen, wie etwa Deep Learning, den Winkel θ und ein Konfidenzniveau 210, dass der Winkel korrekt ist, ausgeben. Das Programm 205 zum maschinellen Lernen kann das Bild 300 von dem zweiten Programm 220 zum maschinellen Lernen, wie vorstehend beschrieben, als ein Bild mit niedriger Konfidenz empfangen. Das Programm 205 zum maschinellen Lernen kann das Konfidenzniveau 210 zum Identifizieren des Winkels θ in dem Bild 300 mit niedriger Konfidenz ausgeben. Zum Beispiel kann das Konfidenzniveau 210 auf einer Standardabweichung zwischen Vorhersagen des Winkels θ in dem Bild 300 basieren, die durch das Programm 205 zum maschinellen Lernen bestimmt werden. Zum Beispiel kann das Programm 205 zum maschinellen Lernen den Winkel θ in dem Bild 300 eine Vielzahl von Malen vorhersagen, wodurch eine Verteilung möglicher Winkel θ erzeugt wird. Das Programm 205 zum maschinellen Lernen kann einen mittleren vorhergesagten Winkel θ berechnen und kann den mittleren vorhergesagten Winkel θ als den identifizierten Winkel θ ausgeben. Das Programm 205 zum maschinellen Lernen kann eine Standardabweichung der möglichen Winkel θ von dem mittleren Winkel θ identifizieren und basierend auf der Standardabweichung das Konfidenzniveau 210 bestimmen. Der Server 130 kann eine Nachricht mit dem ausgegebenen Winkel θ des eingegebenen Bilds, des Konfidenzniveaus 210 und des Originalbilds 300 über das Netzwerk 125 an den Computer 110 senden.
  • Der Computer 110 des Fahrzeugs 105 kann eine oder mehrere Komponenten 120 basierend auf dem durch das Programm 205 zum maschinellen Lernen und/oder das zweite Programm 220 zum maschinellen Lernen identifizierten Objektparameter und dem durch das Programm 205 zum maschinellen Lernen ausgegebenen Konfidenzniveau 210 betätigen. Zum Beispiel kann der Computer 110 einen Antrieb und eine Lenkung betätigen, um das Fahrzeug 105 basierend auf dem Winkel θ des Anhängers 305, der in dem Bild 300 identifiziert wurde, rückwärts zu bewegen. Beim Rückwärtsfahren mit einem Anhänger 305 kann sich das Fahrzeug 105 auf eine Weise bewegen, die bewirkt, dass der Anhänger 305 von einer beabsichtigten Richtung abweicht. Mit dem Winkel θ des Anhängers 305 in dem Bild 300 kann der Computer 110 den Antrieb und die Lenkung derart betätigen, dass sich das Fahrzeug 105 und der Anhänger 305 in eine Richtung bewegen, die durch einen Führer des Fahrzeugs 105 beabsichtigt ist. Das heißt, die Identifizierung des Objekts verbessert die Genauigkeit und Präzision des Betriebs des Fahrzeugs 105.
  • 4 ist ein Diagramm eines beispielhaften tiefen neuronalen Netzwerkes (deep neural network - DNN) 400, das trainiert werden könnte, um einen Objektparameter in einem Bild 300 zu identifizieren. Das Programm 205 zum maschinellen Lernen kann ein DNN 400 sein. Das DNN 400 kann zum Beispiel ein Softwareprogramm sein, das in den Speicher geladen und durch einen Prozessor, der in dem Server 130 beinhaltet ist, ausgeführt werden kann. Das DNN 400 kann n Eingabeknoten 405 beinhalten, von denen jeder einen Satz von Eingaben i akzeptiert (d. h. jeder Satz von Eingaben i kann eine oder mehrere Eingaben X beinhalten). Das DNN 400 kann m Ausgabeknoten (wobei m und n eine gleiche natürliche Zahl sein können, es üblicherweise jedoch nicht sind) beinhalten, um Sätze von Ausgaben o1 ... om bereitzustellen. Das DNN 400 beinhaltet eine Vielzahl von Schichten, die eine Anzahl k von verdeckten Schichten beinhalten, wobei jede Schicht einen oder mehrere Knoten 405 beinhaltet. Die Knoten 405 werden manchmal als künstliche Neuronen 405 bezeichnet, da sie dazu ausgestaltet sind, biologische, z. B. menschliche, Neuronen nachzubilden. Der Neuronenblock 410 veranschaulicht Eingaben in ein beispielhaftes künstliches Neuron 405i und eine Verarbeitung darin. Ein Satz von Eingaben X1 ... Xr in jedes Neuron 405 wird jeweils mit entsprechenden Gewichtungen wi1 ... wir multipliziert, wobei die gewichteten Eingaben dann in der Eingabefunktion Σ summiert werden, um, womöglich durch eine Verzerrung bi eingestellt, die Nettoeingabe ai bereitzustellen, die dann an der Aktivierungsfunktion ƒ bereitgestellt wird, die wiederum die Ausgabe Yi des Neurons 405i bereitstellt. Bei der Aktivierungsfunktion ƒ kann es sich um eine Vielfalt geeigneter Funktionen handeln, die in der Regel auf Grundlage einer empirischen Analyse ausgewählt werden. Wie durch die Pfeile in 4 veranschaulicht, können die Ausgaben des Neurons 405 dann in einer nächsten Schicht zur Aufnahme in einen Satz von Eingaben für ein oder mehrere Neuronen 405 bereitgestellt werden.
  • Das DNN 400 kann trainiert werden, um als eingegebene Daten z. B. Referenzbilder von einer Kamera anzunehmen und um einen oder mehrere Parameter zum Identifizieren eines Objekts in den Referenzbildern auszugeben. Zum Beispiel könnte das DNN 400 trainiert werden, um ein Konfidenzniveau einer Identifizierung eines Objekts in einem Bild auszugeben. Dies bedeutet, dass das DNN 400 mit Ground-Truth-Daten trainiert werden kann, d. h. mit Daten zu einer Bedingung oder einem Zustand in der realen Welt. Die Gewichtungen w können zum Beispiel unter Verwendung einer Gaußschen Verteilung initialisiert werden und eine Verzerrung b für jeden Knoten 405 kann auf null gesetzt werden. Das Trainieren des DNN 400 kann das Aktualisieren von Gewichtungen und Verzerrungen über herkömmliche Methoden beinhalten, wie etwa Rückpropagierung mit Optimierungen.
  • Ein Satz von Gewichtungen w für einen Knoten 405 ist zusammen ein Gewichtungsvektor für den Knoten 405. Die Gewichtungsvektoren für entsprechende Knoten 405 in einer gleichen Schicht des DNN 400 können kombiniert werden, um eine Gewichtungsmatrix für die Schicht zu bilden. Die Verzerrungswerte b für entsprechende Knoten 405 in einer selben Schicht des DNN 400 können kombiniert werden, um einen Verzerrungsvektor für die Schicht zu bilden. Die Gewichtungsmatrix für jede Schicht und der Verzerrungsvektor für jede Schicht können dann in dem trainierten DNN 400 verwendet werden.
  • Im vorliegenden Kontext könnten die Ground-Truth-Daten, die zum Trainieren des DNN 400 verwendet werden, Bilddaten mit Objektbeschriftungen beinhalten, die z. B. durch ein Bildsammlungsprogramm gesammelt werden, wie vorstehend beschrieben. Zum Beispiel kann das Bildsammlungsprogramm eine Vielzahl von Bildern sammeln, und die Bilder können dann für das Training des DNN 400 beschriftet werden, d. h. es können Objektbeschriftungen angegeben werden, die Objekte in den Bildern identifizieren. Das DNN 400 kann dann trainiert werden, um Datenwerte auszugeben, die mit den Objekten korrelieren, und die ausgegebenen Datenwerte können mit den Anmerkungen verglichen werden, um eine Differenz zu identifizieren, d. h. eine Kostenfunktion der ausgegebenen Datenwerte und der eingegebenen, mit Anmerkungen versehenen Bilder. Die Gewichtungen w und die Verzerrungen b können angepasst werden, um die Ausgabe der Kostenfunktion zu verringern, d. h. um einen Unterschied zwischen den ausgegebenen Datenwerten und den eingegebenen mit Anmerkungen versehenen Bildern zu minimieren. Wenn die Kostenfunktion minimiert ist, kann der Server 130 bestimmen, dass das DNN 400 trainiert ist.
  • 5 ist ein Blockdiagramm eines beispielhaften Prozesses 500 zum Trainieren eines Programms 205 zum maschinellen Lernen, um ein Konfidenzniveau 210 einer Identifizierung 215 eines Objekts in einem Bild auszugeben, d. h. ein Konfidenzprogramm 205. Der Prozess 500 beginnt in einem Block 505, in dem ein Bildsammlungsprogramm 200 in einem Server 130 eine Vielzahl von Bildern von einem oder mehreren externen Servern 130 sammelt. Wie vorstehend beschrieben, kann das Bildsammlungsprogramm 200 ein Web-Scraping-Algorithmus sein, der Bilder sammelt, die bestimmte Schlüsselwörter in HTML- und/oder XML-Tags beinhalten. Die Schlüsselwörter können durch menschliche Eingaben spezifiziert werden, z. B. ein Hersteller, ein Lieferant, ein Händler, ein Produkthandbuch usw. Das Bildsammlungsprogramm 200 kann eine Vielzahl von Bildern von einer oder mehreren Webseiten im Internet sammeln.
  • Als Nächstes identifiziert der Server 130 in einem Block 510 Objektbeschriftungen in den gesammelten Bildern. Das Bildsammlungsprogramm 200 kann trainiert werden, um den Text in die HTML- und/oder XML-Tags als eine Objektbeschriftung aufzunehmen, mit dem das Bild versehen ist. Der Text in den HTML- und/oder XML-Tags identifiziert typischerweise ein Objekt in dem Bild, und das Bildsammlungsprogramm 200 kann die Objektbeschriftung von dem HTML- und/oder XML-Tag dem Bild zuweisen, um ein oder mehrere Objekte in dem Bild zu identifizieren. Der Server 130 kann einen Trainingsdatensatz bestimmen, der Bilder mit den durch das Bildsammlungsprogramm 200 gesammelten Objektbeschriftungen beinhaltet.
  • Als Nächstes gibt der Server 130 in einem Block 515 die Bilder aus dem Trainingsdatensatz in das Programm 205 zum maschinellen Lernen ein. Der Server 130 gibt die Bilder mit den Objektbeschriftungen ein, um das Programm 205 zum maschinellen Lernen so zu trainieren, dass es jeweilige Konfidenzniveaus 210 und Identifizierungen 215 der Objektparameter in den Bildern ausgibt. Wie vorstehend beschrieben, verwendet der Server 130 die Bilder in dem Trainingsdatensatz als Referenzbilder, um das Programm 205 zum maschinellen Lernen zu trainieren.
  • Als Nächstes gibt das Programm 205 zum maschinellen Lernen in einem Block 520 eine Identifizierung 215 eines Objektparameters und ein Konfidenzniveau 210 der Identifizierung des Objektparameters für jedes Bild im Trainingsdatensatz aus. Das Programm 205 zum maschinellen Lernen kann, wie vorstehend in Bezug auf das tiefe neuronale Netzwerk 400 beschrieben, eine oder mehrere Gewichtungen w und Verzerrungen b auf jeden Knoten 405 durch aufeinanderfolgende Schichten des DNN 400 anwenden. Das Programm 205 zum maschinellen Lernen gibt dann die Identifizierung 215 und das Konfidenzniveau 210 für jedes Bild in dem Trainingsdatensatz aus.
  • Als Nächstes bestimmt der Server 130 in einem Block 525, ob das Programm 205 zum maschinellen Lernen trainiert ist. Wie vorstehend beschrieben, kann der Server 130 bestimmen, dass das Programm 205 zum maschinellen Lernen trainiert ist, wenn eine Kostenfunktion zwischen der ausgegebenen Identifizierung 215 des Objekts und dem Konfidenzniveau 210 und dem eingegebenen Bild mit der Objektbeschriftung minimiert ist. Das Programm 205 zum maschinellen Lernen kann trainiert werden, um Datenwerte auszugeben, die mit den Objekten korrelieren, und die ausgegebenen Datenwerte können mit den Anmerkungen verglichen werden, um eine Differenz zu identifizieren, d. h. die Kostenfunktion der ausgegebenen Datenwerte und der eingegebenen, mit Anmerkungen versehenen Bilder. Der Server 130 kann die Gewichtungen w und die Verzerrungen b anpassen, um die Ausgabe der Kostenfunktion zu verringern, d. h. um einen Unterschied zwischen den ausgegebenen Datenwerten und den eingegebenen mit Anmerkungen versehenen Bildern zu minimieren. Wenn der Server 130 bestimmt, dass das Programm 205 zum maschinellen Lernen trainiert ist, endet der Prozess 500. Anderenfalls kehrt der Prozess 500 zu Block 505 zurück.
  • 6 ist ein Blockdiagramm eines beispielhaften Prozesses 600 zum Identifizieren eines Objektparameters in einem Bild. Der Prozess 600 beginnt in einem Block 605, in dem ein Fahrzeug 105 ein oder mehrere Bilder sammelt. Ein Computer 110 in dem Fahrzeug 105 kann eine Kamera 115 betätigen, um Bilder einer Umgebung des Fahrzeugs 105 zu sammeln. Zum Beispiel kann der Computer 110 Bilder eines Anhängers hinter dem Fahrzeug 105 sammeln. Als Nächstes identifiziert der Computer 110 in einem Block 610 ein oder mehrere Bilder mit niedriger Konfidenz und überträgt die Bilder mit niedriger Konfidenz an einen Server 130. Wie vorstehend beschrieben, ist ein Bild mit niedriger Konfidenz ein Bild, in dem der Computer 110 bestimmt, dass ein Konfidenzniveau einer Identifizierung eines Objekts in dem Bild unter einem Schwellenwert liegt. Nach dem Identifizieren der Bilder mit niedriger Konfidenz überträgt der Computer 110 die Bilder mit niedriger Konfidenz an den Server 130, um Objekte in den Bildern mit niedriger Konfidenz zu identifizieren.
  • Als Nächstes gibt der Server 130 in einem Block 615 die Bilder mit niedriger Konfidenz in ein Objekt-Clustering-Programm 220 ein, um eine Identifizierung eines Objekts und/oder eines Objektparameters in jedem Bild mit niedriger Konfidenz auszugeben. Wie vorstehend beschrieben, ist das Clustering-Programm 220 ein Programm zum maschinellen Lernen, das trainiert ist, um jedes Bild mit niedriger Konfidenz einem einer Vielzahl von Clustern zuzuweisen. Jeder Cluster ist einem bestimmten Objekt oder Objektparameter zugeordnet, und das Clustering-Programm 220 kann das Objekt und/oder den Objektparameter in dem Bild mit niedriger Konfidenz als das Objekt identifizieren, das dem Cluster zugeordnet ist, dem das Bild mit niedriger Konfidenz zugewiesen ist.
  • Als Nächstes gibt der Server 130 in einem Block 620 die Bilder mit niedriger Konfidenz und die ausgegebenen Identifizierungen von dem Objekt-Clustering-Programm 220 in ein Konfidenzprogramm 205 ein, wobei das Konfidenzprogramm 205 ein Programm zum maschinellen Lernen ist, das dazu trainiert ist, ein jeweiliges Konfidenzniveau 210 einer Identifizierung 215 jedes Objektparameters in den Bildern auszugeben. Wie vorstehend beschrieben, ist das Konfidenzniveau ein Maß dafür, dass die Identifizierung 215 des Objekts korrekt ist. Das Konfidenzprogramm 205 kann mit einem Trainingsdatensatz trainiert werden, wie vorstehend in dem Prozess 500 beschrieben, um Objekte in den Bildern und das Konfidenzniveau 210 der Identifizierungen 215 jedes Objekts zu identifizieren.
  • Als Nächstes sendet der Server 130 in einem Block 625 die Bilder mit niedriger Konfidenz mit einer Identifizierung 215 jedes Objektparameters für jedes Bild und einem Konfidenzniveau 210 der Identifizierung 215 jedes Objektparameters an den Computer 110. Der Server 130 kann eine Nachricht über das Netzwerk 125 senden, die das Bild und die Ausgabe von den Programmen 205, 220 zum maschinellen Lernen beinhaltet.
  • Als Nächstes betätigt der Computer 110 in einem Block 630 eine oder mehrere Komponenten 120 basierend auf den Obj ektparameter-Identifizierungen 215 und Konfidenzniveaus 210. Zum Beispiel kann der Computer 110 einen Antrieb betätigen, um das Fahrzeug 105 basierend auf einem identifizierten Anhänger in dem Bild mit niedriger Konfidenz rückwärts zu bewegen. Die Nachricht von dem Server 130 kann einen identifizierten Anhängerwinkel θ des Anhängers in dem Bild beinhalten, und der Computer 110 kann den Antrieb betätigen, um das Fahrzeug 105 basierend auf dem Anhängerwinkel zu bewegen.
  • Als Nächstes bestimmt der Computer 110 in einem Block 635, ob der Prozess 600 fortgesetzt werden soll. Der Computer 110 kann zum Beispiel bestimmen, den Prozess 600 nicht fortzusetzen, wenn das Fahrzeug 105 angehalten und abgeschaltet wurde. Wenn der Computer 110 bestimmt, fortzufahren, kehrt der Prozess 600 zum Block 605 zurück. Andernfalls endet der Prozess 600.
  • In dieser Schrift erörterte Rechenvorrichtungen, einschließlich des Computers 110, beinhalten Prozessoren und Speicher, wobei die Speicher im Allgemeinen jeweils Anweisungen beinhalten, die durch eine oder mehrere Rechenvorrichtungen, wie etwa die vorstehend identifizierten, und zum Ausführen vorstehend beschriebener Blöcke oder Schritte von Prozessen ausführbar sind. Computerausführbare Anweisungen können von Computerprogrammen kompiliert oder interpretiert werden, die unter Verwendung einer Reihe von Programmiersprachen und/oder -techniken erstellt wurden, die Folgende ohne Einschränkung, entweder allein oder in Kombination, beinhalten: Java™, C, C++, Visual Basic, Java Script, Python, Perl, HTML usw. Im Allgemeinen empfängt ein Prozessor (z. B. ein Mikroprozessor) Anweisungen, z. B. von einem Speicher, einem computerlesbaren Medium usw., und führt diese Anweisungen aus, wodurch er einen oder mehrere Prozesse durchführt, die einen oder mehrere der in dieser Schrift beschriebenen Prozesse beinhalten. Derartige Anweisungen und andere Daten können unter Verwendung einer Reihe von computerlesbaren Medien gespeichert und übermittelt werden. Eine Datei in dem Computer 110 ist im Allgemeinen eine Erhebung von Daten, die auf einem computerlesbaren Medium gespeichert sind, wie etwa einem Speichermedium, einem Direktzugriffsspeicher usw.
  • Ein computerlesbares Medium beinhaltet ein beliebiges Medium, das am Bereitstellen von Daten (z. B. Anweisungen) beteiligt ist, die durch einen Computer ausgelesen werden können. Ein derartiges Medium kann viele Formen annehmen, die nichtflüchtige Medien, flüchtige Medien usw. beinhalten können, ohne darauf beschränkt zu sein. Nichtflüchtige Medien beinhalten zum Beispiel optische oder magnetische Festplatten und andere Dauerspeicher. Flüchtige Medien beinhalten einen dynamischen Direktzugriffsspeicher (dynamic random access memory - DRAM), der typischerweise einen Hauptspeicher darstellt. Verbreitete Formen computerlesbarer Medien beinhalten zum Beispiel eine Diskette, eine Folienspeicherplatte, eine Festplatte, ein Magnetband, ein beliebiges anderes magnetisches Medium, eine CD-ROM, eine DVD, ein beliebiges anderes optisches Medium, Lochkarten, Lochstreifen, ein beliebiges anderes physisches Medium mit Lochmustern, einen 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.
  • Hinsichtlich der in dieser Schrift beschriebenen Medien, Prozesse, Systeme, Verfahren usw. versteht es sich, dass, obwohl die Schritte derartiger Prozesse usw. als in einer bestimmten geordneten Abfolge erfolgend beschrieben worden sind, die beschriebenen Schritte bei der Ausführung derartiger Prozesse in einer Reihenfolge durchgeführt werden können, bei der es sich nicht um die in dieser Schrift beschriebene Reihenfolge handelt. Es versteht sich ferner, dass bestimmte Schritte gleichzeitig durchgeführt werden könnten, dass andere Schritte hinzugefügt werden könnten oder dass bestimmte, in dieser Schrift beschriebene Schritte weggelassen werden könnten. Beispielsweise könnten in dem Prozess 500 ein oder mehrere der Schritte weggelassen werden, oder die Schritte könnten in einer anderen Reihenfolge als in 5 gezeigt ausgeführt werden. Anders ausgedrückt werden die Beschreibungen von Systemen und/oder Prozessen in dieser Schrift zum Zweck der Veranschaulichung bestimmter Ausführungsformen bereitgestellt und sollten in keiner Weise als den offenbarten Gegenstand einschränkend ausgelegt werden.
  • Dementsprechend versteht es sich, dass die vorliegende Offenbarung, welche die vorangehende Beschreibung und die beigefügten Figuren und nachfolgenden Patentansprüche beinhaltet, veranschaulichend und nicht einschränkend sein soll. Viele Ausführungsformen und Anwendungen, bei denen es sich nicht um die bereitgestellten Beispiele handelt, werden dem Fachmann beim Lesen der vorstehenden Beschreibung ersichtlich. Der Schutzumfang der Erfindung sollte nicht unter Bezugnahme auf die vorangehende Beschreibung bestimmt werden, sondern stattdessen unter Bezugnahme auf Ansprüche, die hier beigefügt sind und/oder in einer hierauf basierenden, nicht vorläufigen Patentanmeldung beinhaltet sind, gemeinsam mit dem vollständigen Schutzumfang von Äquivalenten, zu welchen derartige Ansprüche berechtigen. Es ist davon auszugehen und beabsichtigt, dass es zukünftige Entwicklungen im in dieser Schrift erörterten Stand der Technik geben wird und dass die offenbarten Systeme und Verfahren in derartige zukünftige Ausführungsformen aufgenommen werden. Insgesamt versteht es sich, dass der offenbarte Gegenstand modifiziert und variiert werden kann.
  • Der ein Substantiv modifizierende Artikel „ein(e)“ sollte dahingehend verstanden werden, dass er eine(n) oder mehrere bezeichnet, es sei denn, es ist etwas anderes angegeben oder der Zusammenhang erfordert etwas anderes. Der Ausdruck „basierend auf“ schließt teilweise oder vollständig basierend auf ein.
  • Gemäß der vorliegenden Erfindung wird ein System mit einem Computer bereitgestellt, der einen Prozessor und einen Speicher beinhaltet, wobei der Speicher Anweisungen speichert, die durch den Prozessor ausführbar sind, um: einen Trainingsdatensatz zu bestimmen, der eine Vielzahl von Bildern beinhaltet, die jeweils ein erstes Objekt und eine Objektbeschriftung beinhalten, die dem Objekt entspricht; ein erstes Programm zum maschinellen Lernen zum Identifizieren jeweiliger Objektparameter der ersten Objekte in der Vielzahl von Bildern basierend auf den Objektbeschriftungen, die den ersten Objekten entsprechen, und einem Konfidenzniveau basierend auf einer Standardabweichung einer Verteilung einer Vielzahl von Identifizierungen der Objektparameter zu trainieren; von einem zweiten Programm zum maschinellen Lernen eine Vielzahl von zweiten Bildern zu empfangen, die jeweils ein zweites Objekt beinhaltet, das mit einem niedrigen Konfidenzniveau identifiziert wurde, wobei das niedrige Konfidenzniveau einem Konfidenzniveau, dass die zweite Objektidentität korrekt ist, entspricht, das unter einem ersten Schwellenwert liegt; die Vielzahl von zweiten Bildern mit dem ersten Programm zum maschinellen Lernen zu verarbeiten, um zweite Objektparameter mit einem entsprechenden zweiten Konfidenzniveau zu identifizieren; und, wenn das erste Programm zum maschinellen Lernen die zweiten Objektparameter mit einem zweiten Konfidenzniveau identifiziert, das größer als ein zweiter Schwellenwert ist, das erste Programm zum maschinellen Lernen basierend auf den identifizierten zweiten Objektparametern neu zu trainieren.
  • Gemäß einer Ausführungsform sind die zweiten Objekte in den zweiten Bildern Anhänger, und das erste Programm zum maschinellen Lernen ist trainiert, um einen Winkel zwischen einer Achse entlang des Anhängers und einer vertikalen Achse des zweiten Bildes als den zweiten Objektparameter auszugeben, wobei das zweite Konfidenzniveau auf einer Standardabweichung einer Verteilung von vorhergesagten Winkeln von einem mittleren vorhergesagten Winkel basiert.
  • Gemäß einer Ausführungsform beinhalten die Anweisungen ferner Anweisungen zum Senden einer Nachricht an ein Fahrzeug, die die zweiten Bilder, die jeweilige Identifizierung der Anhänger in jedem der zweiten Bilder, den ausgegebenen Winkel jedes der zweiten Bilder und das zweite Konfidenzniveau für jedes der zweiten Bilder beinhaltet.
  • Gemäß einer Ausführungsform beinhaltet das Fahrzeug einen Computer, der dazu programmiert ist, eine Komponente zu betätigen, um das Fahrzeug basierend auf den ausgegebenen Winkeln rückwärts zu bewegen.
  • Gemäß einer Ausführungsform ist das zweite Konfidenzniveau von jedem der zweiten Bilder eine multiplikative Umkehrung der Standardabweichung der Verteilung der vorhergesagten Winkel von dem mittleren vorhergesagten Winkel.
  • Gemäß einer Ausführungsform beinhalten die Anweisungen ferner Anweisungen zum Trainieren des zweiten Programms zum maschinellen Lernen zum Klassifizieren der zweiten Objekte in jedem der zweiten Bilder in eine von einer Vielzahl von Klassifizierungen basierend auf einem identifizierten Merkmal des Objekts.
  • Gemäß einer Ausführungsform beinhalten die Anweisungen ferner Anweisungen zum Ausgeben einer Identifizierung von keinem zweiten Objekt in einem der zweiten Bilder aus dem zweiten Programm zum maschinellen Lernen, zum Eingeben des zweiten Bildes und der Identifizierung von keinem Objekt in das erste Programm zum maschinellen Lernen und zum Ausgeben einer Identifizierung des zweiten Objektparameters in dem zweiten Bild aus dem ersten Programm zum maschinellen Lernen.
  • Gemäß einer Ausführungsform beinhalten die Anweisungen ferner Anweisungen zum Empfangen der zweiten Bilder von einem Fahrzeug und zum Zuweisen, mit dem zweiten Programm zum maschinellen Lernen, jedes der Vielzahl der zweiten Bilder zu einer von einer Vielzahl von Klassifizierungen.
  • Gemäß einer Ausführungsform beinhalten die Anweisungen ferner Anweisungen zum Ausgeben, aus dem ersten Programm zum maschinellen Lernen, eines erkannten zweiten Objektparameters in einer der Vielzahl von zweiten Bildern, die nicht in einer der Vielzahl von Klassifizierungen des zweiten Programms zum maschinellen Lernen beinhaltet sind.
  • Gemäß einer Ausführungsform beinhaltet das zweite Programm zum maschinellen Lernen mindestens eines von einem Autocodierer, einem Variationscodierer, einem neuronalen Netzwerk oder einem generativen kontradiktorischen Netzwerk.
  • Gemäß einer Ausführungsform beinhalten die Anweisungen ferner Anweisungen zum Codieren eines latenten Bildes für jedes der zweiten Bilder und zum Ausgeben einer Erkennung eines zweiten Objekts in dem latenten Bild aus dem zweiten Programm zum maschinellen Lernen.
  • Gemäß einer Ausführungsform beinhalten die Anweisungen ferner Anweisungen, um jedes Bild in dem Trainingsdatensatz einer Klassifizierung basierend auf der Objektbeschriftung zuzuweisen.
  • Gemäß der vorliegenden Erfindung beinhaltet ein Verfahren: das Bestimmen eines Trainingsdatensatzes, der eine Vielzahl von Bildern beinhaltet, die jeweils ein erstes Objekt und eine Objektbeschriftung beinhalten, die dem Objekt entspricht; das Trainieren eines ersten Programms zum maschinellen Lernen zum Identifizieren jeweiliger Objektparameter der ersten Objekte in der Vielzahl von Bildern basierend auf den Objektbeschriftungen, die den ersten Objekten entsprechen, und einem Konfidenzniveau basierend auf einer Standardabweichung einer Verteilung einer Vielzahl von Identifizierungen der ersten Objektparameter; das Empfangen von einem zweiten Programm zum maschinellen Lernen einer Vielzahl von zweiten Bildern, die jeweils ein zweites Objekt beinhaltet, das mit einem niedrigen Konfidenzniveau identifiziert wurde, wobei das niedrige Konfidenzniveau einem Konfidenzniveau, dass die zweite Objektidentität korrekt ist, entspricht, das unter einem ersten Schwellenwert liegt; das Verarbeiten der Vielzahl von zweiten Bildern mit dem ersten Programm zum maschinellen Lernen, um zweite Objektparameter mit einem entsprechenden zweiten Konfidenzniveau zu identifizieren; und, wenn das erste Programm zum maschinellen Lernen die zweiten Objektparameter mit einem zweiten hohen Konfidenzniveau identifiziert, das größer als ein zweiter Schwellenwert ist, das neue Trainieren des ersten Programms zum maschinellen Lernen basierend auf den identifizierten zweiten Objektparametern.
  • Gemäß einer Ausführungsform sind die zweiten Objekte in den zweiten Bildern Anhänger, und das erste Programm zum maschinellen Lernen ist trainiert, um einen Winkel zwischen einer Achse entlang des Anhängers und einer vertikalen Achse des zweiten Bildes als den zweiten Objektparameter auszugeben, wobei das zweite Konfidenzniveau auf einer Standardabweichung einer Verteilung von vorhergesagten Winkeln von einem mittleren vorhergesagten Winkel basiert.
  • Gemäß einer Ausführungsform ist die Erfindung ferner gekennzeichnet durch das Senden einer Nachricht an ein Fahrzeug, die die zweiten Bilder, die jeweilige Identifizierung der Anhänger in jedem der zweiten Bilder, den ausgegebenen Winkel jedes der zweiten Bilder und das zweite Konfidenzniveau für jedes der zweiten Bilder beinhaltet.
  • Gemäß einer Ausführungsform beinhaltet das Fahrzeug einen Computer, der dazu programmiert ist, eine Komponente zu betätigen, um das Fahrzeug basierend auf den ausgegebenen Winkeln rückwärts zu bewegen.
  • Gemäß einer Ausführungsform ist die Erfindung ferner gekennzeichnet durch das Trainieren des zweiten Programms zum maschinellen Lernen zum Klassifizieren der zweiten Objekte in jedem der zweiten Bilder in eine von einer Vielzahl von Klassifizierungen basierend auf einem identifizierten Merkmal des Objekts.
  • Gemäß einer Ausführungsform ist die Erfindung ferner gekennzeichnet durch das Ausgeben einer Identifizierung von keinem zweiten Objekt in einem der zweiten Bilder aus dem zweiten Programm zum maschinellen Lernen, das Eingeben des zweiten Bildes und der Identifizierung von keinem Objekt in das erste Programm zum maschinellen Lernen und das Ausgeben einer Identifizierung des zweiten Objektparameters in dem zweiten Bild aus dem ersten Programm zum maschinellen Lernen.
  • Gemäß einer Ausführungsform ist die Erfindung ferner gekennzeichnet durch das Empfangen der zweiten Bilder von einem Fahrzeug und das Zuweisen, mit dem zweiten Programm zum maschinellen Lernen, jedes der Vielzahl der zweiten Bilder zu einer von einer Vielzahl von Klassifizierungen.
  • Gemäß einer Ausführungsform ist die Erfindung ferner gekennzeichnet durch das Ausgeben, aus dem ersten Programm zum maschinellen Lernen, eines erkannten zweiten Objekts in einer der Vielzahl von zweiten Bildern, die nicht in einer der Vielzahl von Klassifizierungen des zweiten Programms zum maschinellen Lernen beinhaltet ist.

Claims (15)

  1. Verfahren, Folgendes umfassend: Bestimmen eines Trainingsdatensatzes, der eine Vielzahl von Bildern beinhaltet, die jeweils ein erstes Objekt und eine Objektbeschriftung beinhalten, die dem Objekt entspricht; Trainieren eines ersten Programms zum maschinellen Lernen, um jeweilige Objektparameter der ersten Objekte in der Vielzahl von Bildern basierend auf den Objektbeschriftungen, die den ersten Objekten entsprechen, und ein Konfidenzniveau basierend auf einer Standardabweichung einer Verteilung einer Vielzahl von Identifizierungen der Objektparameter zu identifizieren; Empfangen, von einem zweiten Programm zum maschinellen Lernen, einer Vielzahl von zweiten Bildern, die jeweils ein zweites Objekt beinhalten, das mit einem niedrigen Konfidenzniveau identifiziert wurde, wobei das niedrige Konfidenzniveau einem Konfidenzniveau, dass die zweite Objektidentität korrekt ist, entspricht, das kleiner als ein erster Schwellenwert ist; Verarbeiten der Vielzahl von zweiten Bildern mit dem ersten Programm zum maschinellen Lernen, um zweite Objektparameter mit einem entsprechenden zweiten Konfidenzniveau zu identifizieren; und wenn das erste Programm zum maschinellen Lernen die zweiten Objektparameter mit einem zweiten Konfidenzniveau identifiziert, das größer als ein zweiter Schwellenwert ist, neues Trainieren des ersten Programms zum maschinellen Lernen basierend auf den identifizierten zweiten Objektparametern.
  2. Verfahren nach Anspruch 1, wobei die zweiten Objekte in den zweiten Bildern Anhänger sind und das erste Programm zum maschinellen Lernen trainiert ist, um einen Winkel zwischen einer Achse entlang des Anhängers und einer vertikalen Achse des zweiten Bildes als den zweiten Objektparameter auszugeben, wobei das zweite Konfidenzniveau auf einer Standardabweichung einer Verteilung von vorhergesagten Winkeln von einem mittleren vorhergesagten Winkel basiert.
  3. Verfahren nach Anspruch 2, ferner umfassend Senden einer Nachricht an ein Fahrzeug, die die zweiten Bilder, die jeweilige Identifizierung der Anhänger in jedem der zweiten Bilder, den ausgegebenen Winkel jedes der zweiten Bilder und das zweite Konfidenzniveau für jedes der zweiten Bilder beinhaltet.
  4. Verfahren nach Anspruch 3, ferner umfassend das Betätigen einer Komponente, um ein Fahrzeug basierend auf den ausgegebenen Winkeln rückwärts zu bewegen.
  5. Verfahren nach Anspruch 2, wobei das zweite Konfidenzniveau jedes der zweiten Bilder eine multiplikative Umkehrung der Standardabweichung der Verteilung der vorhergesagten Winkel von dem mittleren vorhergesagten Winkel ist.
  6. Verfahren nach Anspruch 1, ferner umfassend das Trainieren des zweiten Programms zum maschinellen Lernen zum Klassifizieren der zweiten Objekte in jedem der zweiten Bilder in eine von einer Vielzahl von Klassifizierungen basierend auf einem identifizierten Merkmal des Objekts.
  7. Verfahren nach Anspruch 1, ferner umfassend das Ausgeben, aus dem zweiten Programm zum maschinellen Lernen, einer Identifizierung von keinem zweiten Objekt in einem der zweiten Bilder, das Eingeben des zweiten Bildes und der Identifizierung von keinem Objekt in das erste Programm zum maschinellen Lernen und das Ausgeben einer Identifizierung des zweiten Objektparameters in dem zweiten Bild aus dem ersten Programm zum maschinellen Lernen.
  8. Verfahren nach Anspruch 1, ferner umfassend das Empfangen der zweiten Bilder von einem Fahrzeug und das Zuweisen, mit dem zweiten Programm zum maschinellen Lernen, jedes der Vielzahl der zweiten Bilder zu einer von einer Vielzahl von Klassifizierungen.
  9. Verfahren nach Anspruch 8, ferner umfassend das Ausgeben, aus dem ersten Programm zum maschinellen Lernen, eines erkannten zweiten Objektparameters in einer der Vielzahl von zweiten Bildern, die nicht in einer der Vielzahl von Klassifizierungen des zweiten Programms zum maschinellen Lernen beinhaltet sind.
  10. Verfahren nach einem der Ansprüche 1-9, wobei das zweite Programm zum maschinellen Lernen mindestens eines von einem Autocodierer, einem Variationscodierer, einem neuronalen Netzwerk oder einem generativen kontradiktorischen Netzwerk beinhaltet.
  11. Verfahren nach einem der Ansprüche 1-9, ferner umfassend das Codieren eines latenten Bildes für jedes der zweiten Bilder und das Ausgeben einer Erkennung eines zweiten Objekts in dem latenten Bild aus dem zweiten Programm zum maschinellen Lernen.
  12. Verfahren nach einem der Ansprüche 1-9, ferner umfassend das Zuweisen jedes Bilds in dem Trainingsdatensatz zu einer Klassifizierung basierend auf der Obj ektbeschriftung.
  13. Computer, der dazu programmiert ist, das Verfahren nach einem der Ansprüche 1-9 durchzuführen.
  14. Fahrzeug, das den Computer nach Anspruch 13 umfasst.
  15. Computerprogrammprodukt, das ein computerlesbares Medium umfasst, auf dem Anweisungen gespeichert sind, die durch einen Computerprozessor ausführbar sind, um das Verfahren nach einem der Ansprüche 1-9 auszuführen.
DE102022100545.3A 2021-01-12 2022-01-11 Verbesserte objekterkennung Pending DE102022100545A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/146,739 US12054152B2 (en) 2021-01-12 2021-01-12 Enhanced object detection
US17/146739 2021-01-12

Publications (1)

Publication Number Publication Date
DE102022100545A1 true DE102022100545A1 (de) 2022-07-14

Family

ID=82116355

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102022100545.3A Pending DE102022100545A1 (de) 2021-01-12 2022-01-11 Verbesserte objekterkennung

Country Status (3)

Country Link
US (1) US12054152B2 (de)
CN (1) CN114764909A (de)
DE (1) DE102022100545A1 (de)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102021201522A1 (de) * 2021-02-17 2022-08-18 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren zur Ermittlung einer räumlichen Ausrichtung eines Anhängers
US20220405500A1 (en) * 2021-06-21 2022-12-22 Google Llc Computationally efficient and robust ear saddle point detection
DE102023100839A1 (de) 2023-01-16 2024-07-18 Cariad Se Computer-implementiertes, iteratives Verfahren zum Adaptieren eines maschinellen Lernmodells, Datenverarbeitungseinrichtung, Computerprogramm und computerlesbares Speichermedium

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200026268A1 (en) 2015-11-11 2020-01-23 Hitachi, Ltd. Control device and diagnosis system
US10664728B2 (en) 2017-12-30 2020-05-26 Wipro Limited Method and device for detecting objects from scene images by using dynamic knowledge base
US10140553B1 (en) 2018-03-08 2018-11-27 Capital One Services, Llc Machine learning artificial intelligence system for identifying vehicles
US11756291B2 (en) * 2018-12-18 2023-09-12 Slyce Acquisition Inc. Scene and user-input context aided visual search
KR20210149037A (ko) 2019-03-08 2021-12-08 올라코 프로덕츠 비.브이. 신경망을 훈련 및 이용해 에고 부분 위치를 검출하기 위한 방법
US11080558B2 (en) 2019-03-21 2021-08-03 International Business Machines Corporation System and method of incremental learning for object detection

Also Published As

Publication number Publication date
US20220219698A1 (en) 2022-07-14
US12054152B2 (en) 2024-08-06
CN114764909A (zh) 2022-07-19

Similar Documents

Publication Publication Date Title
DE102019115874B4 (de) Systeme und verfahren zur verbesserten entfernungsschätzung durch eine monokamera unter verwendung von radar- und bewegungsdaten
DE102022100545A1 (de) Verbesserte objekterkennung
DE112018000899T5 (de) Gemeinsame 3D-Objekterfassung und Ausrichtungsabschätzung über multimodale Fusion
DE102018205915A1 (de) Monokulare Lokalisierung in städtischen Umgebungen unter Verwendung von Straßenmarkierungen
DE102019114577A1 (de) Systeme, vorrichtungen und verfahren für eingebettete codierungen von kontextbezogenen informationen unter verwendung eines neuronalen netzwerks mit vektorraummodellierung
DE102018205879A1 (de) Verfahren, Vorrichtung und computerlesbares Speichermedium mit Instruktionen zur Verarbeitung von Sensordaten
DE102020200911B3 (de) Verfahren zum Erkennen von Objekten in einer Umgebung eines Fahrzeugs
DE102021108470A1 (de) Realistische bildperspektiventransformation unter verwendung neuronaler netze
DE102020102823A1 (de) Fahrzeugkapselnetzwerke
DE102021112616A1 (de) Selbstüberwachte schätzung einer beobachteten fahrzeugpose
DE102020107149A1 (de) Fahrzeugkapsel-netzwerke
DE102021128041A1 (de) Verbesserung eines neuronalen fahrzeugnetzwerks
DE102021104044A1 (de) Neuronales netzwerk zur positionsbestimmung und objektdetektion
DE102018215753A1 (de) Vorrichtung und Verfahren zum Ermitteln einer Trajektorie eines Fahrzeugs
DE102020122086A1 (de) Messen von vertrauen in tiefen neuronalen netzwerken
DE102021114724A1 (de) Verbesserter fahrzeugbetrieb
DE102022114048A1 (de) Bildentzerrung
DE102020128978A1 (de) Trainieren von tiefen neuronalen netzwerken mit synthetischen bildern
DE102022108656A1 (de) Neuronales quantilnetz
DE102018220892A1 (de) Vorrichtung und Verfahren zur Generierung von Labelobjekten für die Umgebung eines Fahrzeugs
DE102020200169B3 (de) Verfahren zur Zusammenführung mehrerer Datensätze für die Erzeugung eines aktuellen Spurmodells einer Fahrbahn und Vorrichtung zur Datenverarbeitung
DE102021201178A1 (de) Computerimplementiertes verfahren zum erzeugen von zuverlässigkeitsangaben für computervision
DE102020127051A1 (de) Verfahren zur Bestimmung von sicherheitskritischen Ausgabewerten mittels einer Datenanalyseeinrichtung für eine technische Entität
DE102022123257A1 (de) Selektives Ausscheiden der Merkmale für entgegenwirkende Robustheit neuronaler Netze
DE102020200876B4 (de) Verfahren zum Verarbeiten von Sensordaten einer Sensorik eines Fahrzeugs

Legal Events

Date Code Title Description
R082 Change of representative

Representative=s name: LORENZ SEIDLER GOSSEL RECHTSANWAELTE PATENTANW, DE