DE112020000448T5 - Kameraselbstkalibrierungsnetz - Google Patents

Kameraselbstkalibrierungsnetz Download PDF

Info

Publication number
DE112020000448T5
DE112020000448T5 DE112020000448.1T DE112020000448T DE112020000448T5 DE 112020000448 T5 DE112020000448 T5 DE 112020000448T5 DE 112020000448 T DE112020000448 T DE 112020000448T DE 112020000448 T5 DE112020000448 T5 DE 112020000448T5
Authority
DE
Germany
Prior art keywords
image
camera
calibrated
uncalibrated
training
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
DE112020000448.1T
Other languages
English (en)
Inventor
Quoc-Huy Tran
Bingbing Zhuang
Pan JI
Manmohan Chandraker
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.)
NEC Laboratories America Inc
Original Assignee
NEC Laboratories America Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Laboratories America Inc filed Critical NEC Laboratories America Inc
Publication of DE112020000448T5 publication Critical patent/DE112020000448T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • G06T5/80
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/80Analysis of captured images to determine intrinsic or extrinsic camera parameters, i.e. camera calibration
    • 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/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
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/60Analysis of geometric attributes
    • G06T7/64Analysis of geometric attributes of convexity or concavity
    • 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/048Activation functions
    • 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/10016Video; Image sequence
    • 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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Biophysics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Geometry (AREA)
  • Image Analysis (AREA)
  • Studio Devices (AREA)

Abstract

Es werden Systeme und Verfahren zur Kameraselbstkalibrierung zur Verfügung gestellt. Das Verfahren enthält ein Empfangen von realen unkalibrierten Bildern und ein Schätzen, unter Verwendung eines Kameraselbstkalibrierungsnetzes, von mehreren vorhergesagten Kameraparametern entsprechend den realen unkalibrierten Bildern. Eine tiefgehende Überwachung ist basierend auf einer Abhängigkeitsreihenfolge zwischen der Vielzahl von vorhergesagten Kameraparametern implementiert, um Überwachungssignale quer über mehrere Schichten gemäß der Abhängigkeitsreihenfolge zu platzieren. Das Verfahren enthält auch ein Bestimmen von kalibrierten Bildern unter Verwendung der realen unkalibrierten Bilder und der vorhergesagten Kameraparameter.

Description

  • INFORMATION ÜBER ZUGEHÖRIGE ANMELDUNGEN
  • Diese Anmeldung beansprucht die Priorität der provisorischen US-Patentanmeldung Nr. 62/793,948 , eingereicht am 18. Januar 2019, der provisorischen US-Patentanmeldung Nr. 62/878,819 , eingereicht am 26. Juli 2019 und der US-Gebrauchsmusteranmeldung Nr. 16/736,451 , eingereicht am 7. Januar 2020, die hierin durch Bezugnahme in ihrer Gesamtheit enthalten.
  • HINTERGRUND
  • Technisches Gebiet
  • Die vorliegende Erfindung betrifft Deep Learning (= tiefgehendes Lernen) und insbesondere ein Anwenden von Deep Learning zur Kameraselbstkalibrierung.
  • Beschreibung des zugehörigen Standes der Technik
  • Deep Learning ist ein Maschinenlernmethode, die auf künstlichen neuronalen Netzen basiert. Deep-Learning-Architekturen können auf Gebiete angewendet werden, die Computer Vision, Spracherkennung, natürliche Sprachverarbeitung, Audioerkennung, Filterung für Soziale Netzwerke, maschinelle Übersetzung, Bioinformatik, Arzneimitteldesign, medizinische Bildanalyse, Materialuntersuchung und Brettspielprogramme etc. enthalten. Deep Learning kann beaufsichtigt, semibeaufsichtigt oder unbeaufsichtigt sein.
  • ZUSAMMENFASSUNG
  • Gemäß einem Aspekt der vorliegenden Erfindung wird ein Verfahren zur Kameraselbstkalibrierung zur Verfügung gestellt. Das Verfahren enthält ein Empfangen realer unkalibrierter Bilder und ein Schätzen, unter Verwendung eines Kameraselbstkalibrierungsnetzes, von mehreren vorhergesagten Kameraparametern entsprechend den realen unkalibrierten Bildern. Eine tiefgehende Beobachtung bzw. Überwachung ist basierend auf einer Abhängigkeitsreihenfolge zwischen der Vielzahl von vorhergesagten Kameraparametern implementiert, um Überwachungssignale über mehrere Schichten gemäß der Abhängigkeitsreihenfolge zu platzieren. Das Verfahren enthält auch ein Bestimmen von kalibrierten Bildern unter Verwendung der realen unkalibrierten Bilder und der vorhergesagten Kameraparametern.
  • Gemäß einem weiteren Aspekt der vorliegenden Erfindung wird ein System zur Kameraselbstkalibrierung zur Verfügung gestellt. Das System enthält eine Prozessorvorrichtung, die operativ mit einer Speichervorrichtung gekoppelt ist, wobei die Prozessorvorrichtung konfiguriert ist, um reale unkalibrierte Bilder zu empfangen und, unter Verwendung eines Kameraselbstkalibrierungsnetzes, mehrere vorhergesagte Kameraparametern entsprechend den realen unkalibrierten Bildern zu schätzen. Eine tiefgehende Beobachtung bzw. Überwachung ist basierend auf einer Abhängigkeitsreihenfolge zwischen der Vielzahl von vorhergesagten Kameraparametern implementiert, um Überwachungssignale über mehrere Schichten gemäß der Abhängigkeitsreihenfolge zu platzieren. Die Prozessorvorrichtung bestimmt auch kalibrierte Bilder unter Verwendung der realen unkalibrierten Bilder und der vorhergesagten Kameraparameter.
  • Diese und andere Merkmale und Vorteile werden aus der folgenden detaillierten Beschreibung von dargestellten Ausführungsformen davon offensichtlich werden, die in Verbindung mit den beigefügten Zeichnungen zu lesen ist.
  • Figurenliste
  • Die Offenbarung wird in der folgenden Beschreibung von bevorzugten Ausführungsformen unter Bezugnahme auf die folgenden Figuren Details zur Verfügung stellen, wobei:
    • 1 eine verallgemeinerte grafische Darstellung eines neuronalen Netzes gemäß einer Ausführungsform der vorliegenden Erfindung ist;
    • 2 eine grafische Darstellung einer Architektur für künstliche neuronalen Netze (ANN) gemäß einer Ausführungsform der vorliegenden Erfindung ist;
    • 3 ein Blockdiagramm ist, das eine Architektur für neuronale Faltungsnetze (CNN) zum Schätzen von Kameraparametern aus einem einzelnen unkalibrierten Bild gemäß einer Ausführungsform der vorliegenden Erfindung darstellt;
    • 4 ein Blockdiagramm ist, das eine detaillierte Architektur eines Kameraselbstkalibrierungsnetzes gemäß einer Ausführungsform der vorliegenden Erfindung darstellt;
    • 5 ein Blockdiagramm ist, das ein System zur Anwendung einer Kameraselbstkalibrierung auf unkalibrierte simultane Positionsbestimmung und Kartierung (SLAM (= Simultaneous Localization and Mapping)) gemäß einer Ausführungsform der vorliegenden Erfindung darstellt;
    • 6 ein Blockdiagramm ist, das ein System zur Anwendung einer Kameraselbstkalibrierung auf eine unkalibrierte Struktur aus einer Bewegung (SFM (= Structure From Motion)) gemäß einer Ausführungsform der vorliegenden Erfindung darstellt;
    • 7 ein Blockdiagramm ist, das eine Entartung bzw. Degenerierung bei einer Selbstkalibrierung bei einer radialen Verzerrung bzw. Verzeichnung bei zwei Ansichten unter einer Vorwärtsbewegung gemäß einer Ausführungsform der vorliegenden Erfindung darstellt; und
    • 8 ein Ablaufdiagramm ist, das ein Verfahren zum Implementieren einer Kameraselbstkalibrierung gemäß einer Ausführungsform der vorliegenden Erfindung darstellt.
  • DETAILLIERTE BESCHREIBUNG BEVORZUGTER AUSFÜHRUNGSFORMEN
  • Gemäß Ausführungsformen der vorliegenden Erfindung werden Systeme und Verfahren zur Kameraselbstkalibrierung zur Verfügung gestellt. Die Systeme und Verfahren implementieren eine Architektur von neuronalen Faltungsnetzen (CNN) zum Schätzen radialer Verzerrungsparameter sowie kameraintrinsischer Parameter (z.B. Brennweite, Projektionszentrum) aus einem einzigen unkalibrierten Bild. Die Systeme und Verfahren wenden eine tiefgehende Überwachung zum Ausnutzen bzw. Auswerten der Abhängigkeit zwischen den vorhergesagten Parametern an, was zu einer verbesserten Regularisierung und höherer Genauigkeit führt. Zusätzlich können Anwendungen des Kameraselbstkalibrierungsnetzes für simultane Positionsbestimmung und Kartierung (SLAM (= Simultaneous Localization and Mapping)) / Struktur aus einer Bewegung (SFM (= Structure From Motion)) mit unkalibrierten Bildern/Videos implementiert sein.
  • Bei einer Ausführungsform, werden während einer Trainingsphase eine Gruppe von kalibrierten Bildern und entsprechende Kameraparameter zum Erzeugen synthetisierter Kameraparameter und synthetisierter unkalibrierter Bilder verwendet. Die unkalibrierten Bilder werden dann als Eingangsdaten verwendet, während die Kameraparameter dann als Überwachungssignale zum Trainieren des vorgeschlagenen Kameraselbstkalibrierungsnetzes verwendet werden. Bei einer Testphase wird ein einzelnes reales, unkalibriertes Bild zum Netzwerk eingegeben, das Kameraparameter entsprechend dem eingegebenen Bild vorhersagt. Schließlich werden das unkalibrierte Bild und die geschätzten Kameraparameter zum Rektifizierungsmodul gesendet, um das kalibrierte Bild zu erzeugen.
  • Hierin beschriebene Ausführungsformen können gänzlich Hardware, gänzlich Software oder sowohl Hardware- als auch Softwareelemente enthaltend sein. Bei einer bevorzugten Ausführungsform ist die vorliegende Erfindung in Software implementiert, die Firmware, residente Software, eine Mikrocode etc. enthält, aber nicht darauf beschränkt ist.
  • Ausführungsformen können ein Computerprogrammprodukt enthalten, das von einem computeranwendbaren oder computerlesbaren Medium aus zugreifbar ist, das einen Programmcode zur Verwendung durch einen Computer oder irgendein beliebiges Anweisungsausführungssystem, oder in Verbindung damit, zur Verfügung stellt. Ein computerverwendbares oder computerlesbares Medium kann irgendeine Vorrichtung enthalten, die das Programm zur Verwendung durch das Anweisungsausführungssystem, die Vorrichtung oder das Gerät, oder in Verbindung damit, speichert, kommuniziert, ausbreitet oder transportiert. Das Medium kann ein magnetisches, optisches, elektronisches, elektromagnetisches, infrarotes oder Halbleitersystem (oder eine Vorrichtung oder ein Gerät) oder ein Ausbreitungsmedium sein. Das Medium kann ein computerlesbares Speichermedium, wie beispielsweise einen Halbleiter- oder Festkörperspeicher, ein Magnetband, eine herausnehmbare bzw. entfernbare Computerdiskette, einen Direktzugriffsspeicher (RAM), einen Nurlesespeicher (ROM), eine starre Magnetscheibe und eine optische Scheibe etc. enthalten.
  • Jedes Computerprogramm kann auf maschinenlesbaren Speichermedien oder einem Gerät (z. B. einem Programmspeicher oder einer Magnetscheibe) konkret bzw. materiell gespeichert sein, die oder das durch einen allgemeinen oder einen speziellen programmierbaren Computer lesbar ist, zum Konfigurieren und Steuern einer Operation bzw. eines Betriebs eines Computers, wenn die Speichermedium oder das Gerät durch den Computer gelesen wird, um die hierin beschriebenen Prozeduren durchzuführen. Das erfinderische System kann auch als in einem computerlesbaren Speichermedium verkörpert betrachtet werden, das mit einem Computerprogramm konfiguriert ist, wobei das so konfigurierte Speichermedium bewirkt, dass ein Computer auf eine spezifische und vordefinierte Weise arbeitet, um die hierin beschriebenen Funktionen durchzuführen.
  • Ein Datenverarbeitungssystem, das zum Speichern und/oder Ausführen eines Programmcode geeignet ist, kann wenigstens einen Prozessor enthalten, der direkt oder indirekt über einen Systembus mit Speicherelementen gekoppelt ist. Die Speicherelemente können einen lokalen Speicher enthalten, der während einer aktuellen Ausführung des Programmcodes verwendet wird, Massenspeicher und Cachespeicher, die eine temporäre Speicherung von wenigstens etwas vom Programmcode zur Verfügung stellen, um die Anzahl der Malen zu reduzieren, für welche ein Code während einer Ausführung aus einem Massenspeicher wiedergewonnen wird. Eingabe-/Ausgabe- oder I/O-Vorrichtungen (einschließlich, aber nicht beschränkt darauf, von Tastaturen, Anzeigen, Zeigevorrichtungen etc.) können entweder direkt oder über dazwischenliegende I/O-Steuerungen mit dem System gekoppelt sein.
  • Netzwerkadapter können auch mit dem System gekoppelt sein, um zu ermöglichen, dass das Datenverarbeitungssystem über dazwischenliegende private oder öffentliche Netzwerke mit anderen Datenverarbeitungssystemen oder entfernten Druckern oder Speichervorrichtungen gekoppelt wird. Modems, ein Kabelmodem und Ethernet-Karten sind nur einige der derzeit verfügbaren Typen von Netzwerkadaptern.
  • Nimmt man nun Bezug auf die Zeichnungen, in welchen gleiche Ziffern dieselben oder ähnliche Elemente darstellen, und zunächst auf 1, ist eine verallgemeinerte grafische Darstellung eines neuronalen Netzes gemäß einer beispielhaften Ausführungsform gezeigt.
  • Ein künstliches neuronales Netz (ANN) ist ein Informationsverarbeitungssystem, das durch biologische Nervensysteme, wie beispielsweise das Gehirn, inspiriert ist. Das Schlüsselelement von ANNs ist die Struktur des Informationsverarbeitungssystems, das viele stark miteinander verbundene Verarbeitungselemente (sogenannte „Neuronen“) enthält, die parallel arbeiten, um spezifische Probleme zu lösen. ANNs werden weiterhin im Einsatz geschult, und zwar mit einem Lernen, das Einstellungen an Gewichten bzw. Gewichtungen beinhaltet, die zwischen den Neuronen existieren. Ein ANN wird durch einen solchen Lernprozess für eine spezifische Anwendung, wie beispielsweise Mustererkennung oder Datenklassifizierung, konfiguriert.
  • ANNs zeigen eine Fähigkeit, aus komplizierten oder ungenauen Daten eine Bedeutung abzuleiten, und können verwendet werden, um Muster zu extrahieren und Trends zu erkennen, die zu komplex sind, um von Menschen oder anderen computerbasierten Systemen erkannt zu werden. Die Struktur eines neuronalen Netzes hat allgemein Eingabe- bzw. Input-Neuronen 102, die Information zu einem oder mehreren „versteckten“ bzw. „Hidden-“ Neuronen 104 liefern. Verbindungen 108 zwischen den Input-Neuronen 102 und den Hidden-Neuronen 104 werden gewichtet und diese gewichteten Eingaben werden dann mit gewichteten Verbindungen 108 zwischen den Schichten durch die Hidden-Neuronen 104 gemäß einer Funktion in den Hidden-Neuronen 104 verarbeitet. Es kann eine beliebige Anzahl von Schichten von Hidden-Neuronen 104 geben, und ebenso gut Neuronen, die unterschiedliche Funktionen durchführen. Es existieren unterschiedliche Strukturen von neuronalen Netzen, wie beispielsweise ein faltendes neuronales Netz, ein Maxout-Netz, etc. Schließlich akzeptiert und verarbeitet eine Gruppe von Ausgabe- bzw. Output-Neuronen 106 eine gewichtete Eingabe aus der letzten Gruppe von Hidden-Neuronen 104.
  • Dies stellt eine „Feed-Forward“-Berechnung dar, bei der sich Information von den Input-Neuronen 102 zu den Output-Neuronen 106 ausbreiten. Die Trainingsdaten (oder in einigen Fällen Testdaten) können kalibrierte Bilder, Kameraparameter und unkalibrierte Bilder (zum Beispiel gespeichert in einer Datenbank) enthalten. Die Trainingsdaten können für die Einzelbild-Selbstkalibrierung verwendet werden, wie es hierin nachstehend in Bezug auf die 2 bis 7 beschrieben wird. Die Trainings- oder Testdaten können zum Beispiel Bilder oder Videos enthalten, die ohne Zugriff auf die Originalkameras aus dem Internet heruntergeladen sind, oder Kameraparameter sind aufgrund verschiedener Ursachen, wie beispielsweise Vibrationen, thermische/mechanische Schocks oder Zoomeffekte geändert worden. In solchen Fällen wird eine Kameraselbstkalibrierung (automatische Kamerakalibrierung), die Kameraparameter aus einem oder mehreren unkalibrierten Bildern berechnet, bevorzugt. Die beispielhaften Ausführungsformen implementieren einen Ansatz, der auf einem faltenden neuronalen Netz (CNN) basiert, zur Kameraselbstkalibrierung von einem einzigen unkalibrierten Bild aus, z.B. mit unbekannter Brennweite, Projektionszentrum und radialer Verzerrung.
  • Nach einer Beendigung einer Feed-Forward-Berechnung wird die Ausgabe mit einer erwünschten Ausgabe verglichen, die aus Trainingsdaten zur Verfügung steht. Der Fehler in Relation zu den Trainingsdaten wird dann in einer „Feed-Back“-Berechnung verarbeitet, bei der die Hidden-Neuronen 104 und die Input-Neuronen 102 Information bezüglich des Fehlers erhalten, der sich von den Output-Neuronen 106 rückwärts ausbreitet. Wenn die Rückwärtsfehlerausbreitung einmal beendet worden ist, werden Gewichts- bzw. Gewichtungsupdates bzw. -aktualisierungen durchgeführt, wobei die gewichteten Verbindungen 108 derart aktualisiert werden, dass der empfangene Fehler berücksichtigt ist. Dies stellt nur eine Vielfalt von ANN dar.
  • Nimmt man nun Bezug auf 2, wird eine Architektur eines künstlichen neuronalen Netzes (ANN) 200 gezeigt. Es sollte verstanden werden, dass die gegenwärtige Architektur rein exemplarisch ist und dass stattdessen andere Architekturen oder Typen von neuronalen Netzen verwendet werden können. Die hierin beschriebene ANN-Ausführungsform ist mit der Absicht enthalten, allgemeine Prinzipien einer Berechnung eines neuronalen Netzes auf einer hohen Ebene an Allgemeinheit zu veranschaulichen, und sie sollte in keiner Weise als beschränkend ausgelegt werden.
  • Weiterhin werden die nachstehend beschriebenen Neuronenschichten und die sie verbindenden Gewichte auf eine allgemeine Weise beschrieben und können durch irgendeinen Typ von Schichten eines neuronalen Netzes mit irgendeinem geeigneten Grad oder Typ von Interkonnektivität ersetzt werden. Zum Beispiel können Schichten Faltungsschichten, Pooling-Schichten, vollständig verbundene Schichten, Softmax-Schichten oder irgendeinen anderen geeigneten Typ von Schicht eines neuronalen Netzes enthalten. Weiterhin können Schichten hinzugefügt oder entfernt werden, wie es nötig ist, und die Gewichte bzw. Gewichtungen können für kompliziertere Formen einer Verbindung miteinander weggelassen werden.
  • Während einer Feed-Forward-Operation stellt eine Gruppe von Input-Neuronen 202 jeweils ein Eingangssignal parallel zu einer jeweiligen Reihe von Gewichten 204 zur Verfügung. Bei der hierin beschriebenen Ausführungsform in Hardware haben die Gewichtungen 204 jeweils einen jeweiligen einstellbaren Wert, so dass eine gewichtete Ausgabe von der Gewichtung 204 zu ein einem jeweiligen Hidden-Neuron 206 übergeht, um die gewichtete Eingabe zum Hidden-Neuron 206 darzustellen. Bei Ausführungsformen in Software können die Gewichtungen 204 einfach als Koeffizientenwerte dargestellt werden, die gegenüber den relevanten Signale multipliziert werden. Das Signal von jeder Gewichtung fügt sich spaltenweise zu einem Hidden-Neuron 206 hinzu und fließt zu diesem.
  • Die versteckten Neuronen bzw. Hidden-Neuronen 206 verwenden die Signale aus dem Feld von Gewichtungen 204, um etwas an Berechnung durchzuführen. Die versteckten Neuronen 206 geben dann ihr eigenes Signal zu einem anderen Feld von Gewichtungen 204 aus. Dieses Feld führt auf dieselbe Weise mit einer Spalte von Gewichtungen 204 durch, die ein Signal von ihrem jeweiligen versteckten Neuron 206 empfängt, um eine gewichtete Signalausgabe zu erzeugen, die zeilenweise zu den Ausgabe-Neuronen bzw. Output-Neuronen 208 hinzufügt und zu diesen geliefert wird.
  • Es sollte verstanden werden, dass eine beliebige Anzahl dieser Stufen implementiert werden kann, indem zusätzliche Schichten von Feldern und versteckten Neuronen 206 eingefügt werden. Es sollte auch angemerkt werden, dass einige Neuronen konstante Neuronen 209 sein können, die eine konstante Ausgabe zum Feld liefern. Die konstanten Neuronen 209 können unter den Input-Neuronen 202 und/oder Hidden-Neuronen 206 vorhanden sein und werden nur während einer Feed-Forward-Operation verwendet.
  • Während einer Rückwärtsausbreitung liefern die Output-Neuronen 208 ein Signal quer über das Feld von Gewichtungen 204 zurück. Der Ausgabe-Schicht vergleicht die erzeugte Netzantwort mit Trainingsdaten und berechnet einen Fehler. Das Fehlersignal kann proportional zum Fehlerwert gemacht werden. Bei diesem Beispiel empfängt eine Zeile von Gewichtungen 204 ein Signal von einem jeweiligen Output-Neuron 208 parallel und erzeugt eine Ausgabe, die sich spaltenweise hinzufügt bzw. addiert, um eine Eingabe zu Hidden-Neuronen 206 zu liefern. Die Hidden-Neuronen 206 kombinieren das gewichtete Rückkoppel- bzw. Feedbacksignal mit einer Ableitung seiner Feed-Forward-Berechnung und speichern einen Fehlerwert vor einem Ausgeben eines Feedbacksignals zu seiner jeweiligen Spalte von Gewichtungen 204. Diese Rückwärtsausbreitung wandert durch das gesamte Netz 200, bis alle Hidden-Neuronen 206 und die Input-Neuronen 202 einen Fehlerwert gespeichert haben.
  • Während Gewichtungsaktualisierungen werden die gespeicherten Fehlerwerte verwendet, um die einstellbaren Werte der Gewichtungen 204 zu aktualisieren. Auf diese Weise können die Gewichtungen 204 trainiert werden, um das neuronale Netz 200 an Fehler bei seiner Verarbeitung anzupassen. Es sollte angemerkt werden, dass sich die drei Betriebsarten, nämlich Feed Forward bzw. Vorwärtsgerichtet, Back Propagation bzw. Rückwärtsausbreitung und Gewichtsaktualisierung, einander nicht überschneiden.
  • Ein faltendes neuronales Netz (CNN) ist eine Unterklasse von ANNs, die wenigstens eine Faltungsschicht hat. Ein CNN besteht aus einer Eingabe- und einer Ausgabeschicht sowie mehreren versteckten Schichten. Die versteckten Schichten eines CNN bestehen aus Faltungsschichten, Schichten einer gleichgerichteten linearen Einheit ((RELU)-Schichten) (z.B. Aktivierungsfunktionen), Pooling-Schichten, vollständig verbundene Schichten und Normalisierungsschichten. Faltungsschichten wenden eine Faltungsoperation auf die Eingabe an und übergeben das Ergebnis zur nächsten Schicht. Die Faltung emuliert die Reaktion eines einzelnen Neurons auf visuelle Anreize.
  • CNNs können auf ein Analysieren visueller Bilder angewendet werden. CNNs können lokale Information erfassen (z. B. benachbarte Pixel in einem Bild oder umgebende Wörter in einem Text) sowie die Komplexität eines Modells reduzieren (um zum Beispiel ein schnelleres Trainieren, einen Bedarf an weniger Proben bzw. Abtastungen und eine Reduzierung der Wahrscheinlichkeit einer Überanpassung zu ermöglichen).
  • CNNs verwenden eine Variation von mehrschichtigen Perzeptronen, die entwickelt sind, um eine minimale Vorverarbeitung zu erfordern. CNNs werden auch als verschiebungsinvariante oder rauminvariante künstliche neuronale Netze (SIANN) bezeichnet, basierend auf ihren Architekturen mit geteilten Gewichten (Shared-Weight-Architekturen) und Tanslationsinvarianz-Charakteristiken. CNNs können für Anwendungen bei einer Bild- und Videoerkennung, Empfehlungssystemen, einer Bildklassifizierung, einer medizinischen Bildanalyse und einer natürlichen Sprachverarbeitung verwendet werden.
  • Die CNNs können in eine CNN-Architektur zum Schätzen von Kameraparametern aus einem einzigen unkalibrierten Bild integriert werden, wie es beispielsweise hierin nachstehend in Bezug auf die 3 bis 7 beschrieben ist. Zum Beispiel können die CNNs implementiert werden, um Bilder zu erzeugen, die dann als Eingabe für SFM/SLAM-Systeme verwendet werden.
  • Nimmt man nun Bezug auf 3, ist ein Blockdiagramm gezeigt, das eine CNN-Architektur zum Schätzen von Kameraparametern aus einem einzigen unkalibrierten Bild gemäß beispielhaften Ausführungsformen darstellt.
  • Wie es in 3 gezeigt ist, enthält eine Architektur 300 eine CNN-Architektur zum Schätzen radialer Verzerrungsparameter sowie (alternativ, zusätzlich, etc.) kameraintrinsischer Parameter (zum Beispiel Brennweite, Projektionszentrum) aus einem einzelnen unkalibrierten Bild. Die Architektur 300 kann implementiert werden, um eine tiefe Überwachung anzuwenden, die die Abhängigkeit zwischen den vorhergesagten Parametern ausnutzt, was zu einer verbesserten Regularisierung und höherer Genauigkeit führt. Zusätzlich kann die Architektur 300 eine Anwendung eines Kameraselbstkalibrierungsnetzes in Richtung zu einer Struktur aus einer Bewegung (SFM) und einer simultanen Positionsbestimmung und Kartierung (SLAM) mit unkalibrierten Bildern/Videos implementieren.
  • Computer-Vision-Prozesse wie SFM und SLAM nehmen ein Lochblendenkamera- bzw. Lochkameramodell an (das eine mathematische Beziehung zwischen Punkten in dreidimensionalen Koordinaten und Punkten in Bildkoordinaten in einer idealen Lochkamera beschreibt) und erfordern Eingabebilder oder -videos, die mit bekannten Kameraparametern aufgenommen sind, einschließlich Brennweite, Bildmittelpunkt und radialer Verzerrung. Eine Kamerakalibrierung ist der Prozess eines Schätzens von Kameraparametern. Die Architektur 300 kann eine Kamerakalibrierung in Fällen implementieren, in welchen ein Kalibrierungsobjekt (zum Beispiel Schachbrett) oder eine Struktur einer speziellen Szene (zum Beispiel Kompassrichtung von einem einzelnen Bild durch Bayes-Inferenz) nicht verfügbar ist, bevor die Kamera in Computer Vision-Anwendungen eingesetzt wird. Zum Beispiel kann die Architektur 300 für die Fälle implementiert werden, in welchen Bilder oder Videos ohne Zugriff auf die Originalkameras aus dem Internet heruntergeladen sind, oder Kameraparameter aufgrund unterschiedlicher Gründe, wie beispielsweise Vibrationen, thermische/mechanische Schocks oder Zoomeffekte, geändert wurden. In solchen Fällen wird eine Kameraselbstkalibrierung (automatische Kamerakalibrierung) bevorzugt, die Kameraparameter aus einem oder mehreren unkalibrierten Bildern berechnet. Die vorliegende Erfindung schlägt einen auf einem faltenden neuronalen Netz (CNN) basierenden Ansatz zur Kameraselbstkalibrierung aus einem einzigen unkalibrierten Bild vor, z.B. mit unbekannter Brennweite, Projektionszentrum und radialer Verzerrung. Zusätzlich kann die Architektur 300 bei Anwendungen implementiert werden, die auf unkalibrierte SFM und unkalibrierte SLAM ausgerichtet sind.
  • Die hierin beschriebenen Systeme und Verfahren verwenden eine tiefgehende Überwachung zum Ausnutzen der Beziehung zwischen unterschiedlichen Aufgaben und zum Erreichen einer überragende Leistungsfähigkeit. Im Gegensatz zu Prozessen zur Einzelbild-Selbstkalibrierung verwenden die hierin beschriebenen Systeme und Verfahren alle im Bild verfügbaren Merkmale und führen keinerlei Annahmen über Szenenstrukturen durch. Die Ergebnisse sind nicht abhängig von einem ersten Extrahieren von Linien-/Kurven-Merkmalen im Eingabebild und dann einem Vertrauen auf sie zum Schätzen von Kameraparametern. Die Systeme und Verfahren sind nicht davon abhängig, Linien-/Kurven-Merkmale richtig zu erkennen, noch von einem Erfüllen von irgendeiner zugrundeliegenden Annahme über Szenestrukturen.
  • Die Architektur 300 kann implementiert werden, um unkalibrierte Bilder/Videos zu verarbeiten, ohne Eingabebilder/-videos mit bekannten Kameraparametern anzunehmen (im Gegensatz zu einigen SFM/SLAM-Systemen). Die Architektur 300 kann eine Verarbeitung, wie zum Beispiel bei herausfordernden Fällen, wie beispielsweise beim Vorhandensein einer signifikanten radialen Verzerrung, in einem zweistufigen Ansatz anwenden, der zuerst eine Kameraselbstkalibrierung (einschließlich einer Korrektur einer radialen Verzerrung) durchführt und dann Rekonstruktionsprozesse, wie beispielsweise SFM/SLAM-Systeme, bei den kalibrierten Bilder/Videos verwendet.
  • Wie es in 3 gezeigt ist, implementiert die Architektur 300 einen CNN-basierten Ansatz zur Kameraselbstkalibrierung. Während der Trainingsphase 305 werden eine Gruppe von kalibrierten Bildern 310 und entsprechende Kameraparameter 315 zum Erzeugen von synthetisierten Kameraparametern 330 und synthetisierten unkalibrierten Bildern 325 verwendet. Die unkalibrierten Bilder 325 werden dann als Eingabedaten (für das Kameraselbstkalibrierungsnetz 340) verwendet, während die Kameraparameter 330 dann als Überwachungssignale für ein Trainieren des Kameraselbstkalibrierungsnetzes 340 verwendet werden. Bei einer Testphase 350 wird ein einzelnes reales, unkalibriertes Bild 355 zum Kameraselbstkalibrierungsnetz 340 eingegeben, das (geschätzte) Kameraparameter 360 vorhersagt, die dem Eingangsbild 355 entsprechen. Das unkalibrierte Bild 355 und die geschätzten Kameraparameter 360 werden zum Rektifizierungsmodul 365 gesendet, um das kalibrierte Bild 370 zu erzeugen.
  • 4 ist ein Blockdiagramm, das eine detaillierte Architektur 400 eines Kameraselbstkalibrierungsnetzes 340 gemäß beispielhaften Ausführungsformen darstellt.
  • Wie es in 4 gezeigt ist, empfängt die Architektur 400 (zum Beispiel des Kameraselbstkalibrierungsnetzes 340) ein unkalibriertes Bild 405 (wie beispielsweise synthetisierte unkalibrierte Bilder 325 während eines Trainierens 305 oder ein echtes bzw. reales unkalibriertes Bild 355 während eines Testens 350). Zum Beispiel führt die Architektur 400 während des Trainierens des Netzes eine tiefgehende Überwachung durch. Im Gegensatz zur herkömmlichen Multitask-Überwachung, die alle Parameter nur bei der letzten Schicht vorhersagt (alle Überwachungen platziert), quer über mehrere Schichten vorhersagt, nutzt eine tiefgehende Überwachung die Abhängigkeitsreihenfolge zwischen den vorhergesagten Parametern aus und sagt die Parameter über mehrere Schichten gemäß dieser Abhängigkeitsreihenfolge vorher (platziert die Überwachungen). Für eine Kameraselbstkalibrierung unter Kenntnis davon, dass (1) ein bekannter Bildmittelpunkt deutlich eine Voraussetzung zum Schätzen einer radialen Verzerrung ist und dass (2) eine Bilderscheinung durch die zusammengesetzte Wirkung aus radialer Verzerrung und Brennweite beeinflusst wird, kann das System die Parameter in der folgenden Reihenfolge vorhersagen (die Überwachungen platzieren): (1) Bildmittelpunkt im ersten Zweig und (2) sowohl Brennweite als auch radiale Verzerrung im zweiten Zweig. Daher verwendet die Architektur 400 gemäß beispielhaften Ausführungsformen ein Restnetz (zum Beispiel ResNet-34) 415 als Basismodell und fügt (zum Beispiel einige, einige wenige, etc.) Faltungsschichten (zum Beispiel Schichten 410 (Conv, 512, 3x3), 420 (Conv, 256, 3x3), 430 (Conv, 128, 3x3), 440 (Conv, 64, 3x3), 450 (Conv, 32, 3x3) und 460 (Conv, 2, 1x1), Batch- bzw. Stapel-Normalisierungsschichten 425 und ReLU-Aktivierungsschichten 435 für Aufgaben zur Schätzung von Bildmittelpunkt 470 (zum Beispiel cx, cy), Schätzung von Brennweite (f) und Schätzung radialer Verzerrung (λ) 480 hinzu. Die Architektur 400 kann eine tiefgehende Überwachung zum Ausnutzen der Abhängigkeit zwischen den Aufgaben verwenden (zum Beispiel verwenden, implementieren, etc.). Bei einer beispielhaften Ausführungsform ist zum Beispiel die Bildmittelpunktschätzung 470 eine Zwischenaufgabe für eine Schätzung radialer Verzerrung und Brennweitenschätzung 480, was zu verbesserter Regularisierung und höherer Genauigkeit führt.
  • Eine tiefgehende Überwachung nutzt die Abhängigkeitsreihenfolge zwischen der Vielzahl von vorhergesagten Kameraparametern aus und sagt die Kameraparameter über mehrere Schichten gemäß dieser Abhängigkeitsreihenfolge vorher (platziert die Überwachungssignale). Eine tiefgehende Überwachung kann basierend auf einer Bildmittelpunktschätzung als eine Zwischenaufgabe zur Schätzung radialer Verzerrung und Brennweitenschätzung implementiert werden, weil: (1) ein bekannter Bildmittelpunkt klar eine Voraussetzung zum Schätzen radialer Verzerrung ist und (2) die Bilderscheinung durch die zusammengesetzte Wirkung aus radialer Verzerrung und Brennweite beeinflusst wird.
  • 5 ist ein Blockdiagramm, das ein System 500 zur Anwendung einer Kameraselbstkalibrierung auf unkalibrierte SLAM gemäß beispielhaften Ausführungsformen darstellt.
  • Wie es in 5 gezeigt ist, kann eine Kameraselbstkalibrierung auf unkalibrierte SLAM angewendet werden. Ein Eingabevideo ist eine Gruppe aufeinanderfolgender Bilderrahmen bzw. Bildframes, die unkalibriert sind (unkalibriertes Video 505). Jeder Rahmen bzw. Frame wird dann jeweils zu der Kameraselbstkalibrierung (einer Komponente) 510 übergeben, wie zum Beispiel dem System 300 in 3, das den entsprechenden kalibrierten Rahmen bzw. Frame (und das entsprechend kalibrierte Video 520) erzeugt. Die kalibrierten Frames (das kalibrierte Video 520) werden dann zum Schätzen der im Video beobachteten Kamerabahn und Szenenstrukturen zu einem SLAM-Modul 530 gesendet. Das System 500 gibt einen wiederhergestellten Kamerapfad und eine Szenenkarte 540 aus.
  • 6 ist ein Blockdiagramm, das ein System 600 zur Anwendung einer Kameraselbstkalibrierung auf eine unkalibrierte SFM gemäß beispielhaften Ausführungsformen darstellt.
  • Wie es in 6 gezeigt ist, kann eine Kameraselbstkalibrierung auf eine unkalibrierte SFM angewendet werden. Das System 600 kann als Modul in einer Kamera oder einer Bild-/Video-Verarbeitungsvorrichtung implementiert werden. Eine ungeordnete Gruppe von unkalibrierten Bildern, wie beispielsweise denjenigen, die aus einer Internetbildsuche erhalten sind, kann als Eingabe verwendet werden (unkalibrierte Bilder 605). Jedes unkalibrierte Bild 605 wird dann separat zu der Kameraselbstkalibrierung (einer Komponente) 610 übergeben, zum Beispiel dem System 300 in 3, die das entsprechende kalibrierte Bild 620 erzeugt. Die kalibrierten Bilder 620 werden dann zum Schätzen der in den Bildern beobachteten Kamerastellungen und Szenenstrukturen zu einem SFM-Modul 630 gesendet. Das System 600 kann dann wiederhergestellte Kamerastellungen und Szenenstrukturen 640 ausgeben.
  • 7 ist ein Blockdiagramm 700, das eine Entartung bzw. Degenerierung bei einer Selbstkalibrierung bei einer radialen Verzerrung bzw. Verzeichnung bei zwei Ansichten unter einer Vorwärtsbewegung gemäß der vorliegenden Erfindung darstellt.
  • Wie es in 7 gezeigt ist, können die beispielhaften Ausführungsformen auf die Degenerierung bei einer radialen Verzerrung bei zwei Ansichten unter einer Vorwärtsbewegung selbstkalibriert werden. Es gibt eine unendliche Anzahl von gültigen Kombinationen aus radialer Verzerrung und Szenenstruktur, einschließlich des speziellen Falls mit radialer Verzerrung von Null.
  • Man bezeichne die 2D-Koordinaten eines verzerrten Punktes (720, 725) auf einer normalisierten Bildebene als sd = [xd, yd]T und den entsprechenden unverzerrten Punkt (710, 715) als su = [xu,yu]T = ƒ(sd; θ)sd. θ ist der radiale Verzerrungsparameter und ƒ(sd; θ) ist die Entzerrungsfunktion, die sd zu su skaliert. Die spezifische Form von ƒ(sd; θ) hängt von dem radialen Verzerrungsmodell ab, das verwendet wird. Zum Beispiel kann das System ƒ(sd; λ) = 1/(1 + 1λr2) für das Divisionsmodell mit einem Parameter haben, oder wir haben ƒ(sd; λ) = 1 + λr2 für das Polynommodell mit einem Parameter. Bei beiden Modellen ist Ä der 1D-Parameter für radiale Verzerrung und ist r = x d 2 + y d 2
    Figure DE112020000448T5_0001
    der Abstand vom Bildmittelpunkt 705. Die beispielhaften Ausführungsformen können die allgemeine Form ƒ(sd; θ) für die nachstehende Analyse verwenden.
  • Die beispielhaften Ausführungsformen formulieren die geometrische Beziehung unter zwei Ansichten unter einer Vorwärtsbewegung, zum Beispiel wie eine reine Translationsbewegung einer Kamera entlang der optischen Achse auf 2D-Entsprechungen und ihre Tiefen bezogen ist. Im Fall eines 3D-Punktes S, jeweils ausgedrückt als S1 = [X1, Y1, Z1]T und S2 = [X2, Y2, Z2]T in den beiden Kamerakoordinaten. Unter einer Vorwärtsbewegung kann das System bestimmen, dass folgendes gilt: S2 = S1 - T mit T = [0,0,tz]T. Ohne Verlust an Allgemeingültigkeit fixiert das System tz = 1, um die globale Skalenmehrdeutigkeit zu entfernen. Projiziert man die obige Beziehung auf die Bildebenen, erhält das System s u 2 = z 1 z 1 1 s u 1 ,
    Figure DE112020000448T5_0002
    wobei s u 1
    Figure DE112020000448T5_0003
    und s u 2
    Figure DE112020000448T5_0004
    jeweils 2D-Projektionen von S1 und S2 sind (zum Beispiel ist { s u 1 , s u 2 }
    Figure DE112020000448T5_0005
    eine 2D-Korrespondenz). Ein Ausdrücken des obigen in Ausdrücken der beobachteten verzerrten Punkte s d 1
    Figure DE112020000448T5_0006
    und s d 2
    Figure DE112020000448T5_0007
    ergibt:
  • ƒ ( s d 2 ; θ 2 ) s d 2 = z 1 z 1 1 ƒ ( s d 1 ; θ 1 ) s d 1
    Figure DE112020000448T5_0008
  • wobei θ1 und θ2 jeweils Parameter für radiale Verzerrung in den zwei Bildern darstellen (es ist anzumerken, dass θ1 sich von θ2 unterscheiden kann). Gl. 1 stellt die gesamte verfügbare Information zum Schätzen der radialen Verzerrung und der Szenenstruktur dar. Die richtige radiale Verzerrung und Punkttiefe kann jedoch aus der obigen Gleichung nicht bestimmt werden. Das System kann die durch {θ1; θ2} bezeichnete Grundwahrheits-Radialverzerrung mit einer gefälschten Radialverzerrung {θ1', θ2'} ersetzen und die Grundwahrheits-Punkttiefe Z1 für jede 2D-Korrespondenz bzw. 2D-Entsprechung mit der folgenden gefälschten Tiefe Z1', so dass Gl. 1 noch gilt:
  • Z 1 ' = α Z 1 ( α 1 ) Z 1 + 1 ,     α = ƒ ( s d 2 ; θ 2 ' ) ƒ ( s d 1 ; θ 1 ) ƒ ( s d 1 ; θ 1 ' ) ƒ ( s d 2 ; θ 2 )
    Figure DE112020000448T5_0009
  • Insbesondere kann das System s d 1 : ƒ ( s d 1 ; θ 1 ' ) = 1, s d 2 : ƒ ( s d 2 ; θ 2 ' ) Z 1 ' = 1
    Figure DE112020000448T5_0010
    als die gefälschte Radialverzerrung einstellen und die gemäß Gl. 2 berechnete beschädigte bzw. verschlechterte Tiefe Z 1 '
    Figure DE112020000448T5_0011
    verwenden, so dass Gl. 1 noch gilt. Diese spezielle Lösung entspricht dem Lochkameramodell, zum Beispiel s u 1 = s d 1
    Figure DE112020000448T5_0012
    und s u 2 = s d 2 .
    Figure DE112020000448T5_0013
    In der Tat kann dieser spezielle Fall intuitiver abgeleitet werden. Gl. 1 zeigt an, dass sich alle 2D-Punkte entlang 2D-Linien bewegen, die vom Bildmittelpunkt 705 ausstrahlen, wie es in 7 dargestellt ist. Dieses Muster ist genau dasselbe wie beim Lochkameramodell und ist der einzige Hinweis darauf, die Vorwärtsbewegung zu erkennen.
  • Intuitiv sind die 2D-Punktbewegungen, die allein durch radiale Verzerrung induziert sind, wie z.B. zwischen s u 1
    Figure DE112020000448T5_0014
    und s d 1
    Figure DE112020000448T5_0015
    oder zwischen s u 2
    Figure DE112020000448T5_0016
    und s d 2 ,
    Figure DE112020000448T5_0017
    entlang derselben Richtung wie die 2D-Punktbewegungen, die allein durch Vorwärtsbewegung induziert sind, wie z.B. zwischen s u 1
    Figure DE112020000448T5_0018
    und s u 2
    Figure DE112020000448T5_0019
    (siehe 7). Somit wirkt sich eine radiale Verzerrung nur auf die Größen von 2D-Punktversätzen aus, nicht aber ihre Richtungen in Fällen einer Vorwärtsbewegung. Weiterhin kann eine solche radiale Verzerrung mit einer geeigneten Beschädigung bzw. Verschlechterung bezüglich der Tiefen so kompensiert werden, dass eine beschädigte Szenenstruktur, die die Bildbeobachtungen erklärt, wie zum Beispiel 2D-Korrespondenzen, hinsichtlich Fehlern bei einer erneuten Projektion noch genau wiederhergestellt werden kann.
  • Demgemäß bestimmt das System, dass eine Selbstkalibrierung einer radialen Verzerrung unter zwei Ansichten für den Fall einer reinen Vorwärtsbewegung degeneriert bzw. entartet ist. Insbesondere gibt es eine unendliche Anzahl von gültige Kombinationen aus radialer Verzerrung und Szenenstruktur, einschließlich des speziellen Falls einer radialen Verzerrung von Null.
  • 8 ist ein Ablaufdiagramm, das ein Verfahren 800 zum Implementieren einer Kameraselbstkalibrierung gemäß der vorliegenden Erfindung darstellt.
  • Bei einem Block 810, empfängt das System 300 kalibrierte Bilder und Kameraparameter. Zum Beispiel kann das System 300 während der Trainingsphase eine Gruppe von kalibrierten Bildern und entsprechenden Kameraparametern annehmen, um zum Erzeugen synthetisierter Kameraparameter und synthetisierter unkalibrierter Bilder verwendet zu werden. Die Kameraparameter können Brennweite, Projektionszentrum und radiale Verzerrung, etc. enthalten.
  • Bei einem Block 820 erzeugt das System 300 synthetisierte unkalibrierte Bilder und synthetisierte Kameraparameter.
  • Bei einem Block 830, trainiert das System 300 das Kameraselbstkalibrierungsnetz unter Verwendung der synthetisierten unkalibrierten Bilder und der synthetisierten Kameraparameter. Die unkalibrierten Bilder werden als Eingabedaten verwendet, während die Kameraparameter als Überwachungssignale zum Trainieren des Kameraselbstkalibrierungsnetzes 340 verwendet werden.
  • Bei einem Block 840 empfängt das System 300 reale bzw. echte unkalibrierte Bilder.
  • Bei einem Block 850 sagt das System 300 Kameraparameter für das reale unkalibrierte Bild vorher (schätzt sie zum Beispiel). Das System 300 sagt die Kameraparameter unter Verwendung des Kameraselbstkalibrierungsnetzes 340 vorher. Das System 300 kann eine tiefgehende Überwachung basierend auf einer Bildmittelpunktschätzung als eine Zwischenaufgabe für eine Radialverzerrungsschätzung und Brennweitenschätzung implementieren. Die gelernten Merkmale zum Schätzen des Bildmittelpunkts werden zum Schätzen der radialen Verzerrung verwendet, und eine Bilderscheinung wird basierend auf einer zusammengesetzten Wirkung aus radialer Verzerrung und Brennweite bestimmt.
  • Bei einem Block 860 erzeugt bzw. produziert das System 300 ein kalibriertes Bild unter Verwendung des realen unkalibrierten Bildes und der geschätzten Kameraparameter.
  • Wie er hierin verwendet wird, kann sich der Ausdruck „Hardwareprozessor-Untersystem“ oder „Hardwareprozessor“ auf einen Prozessor, einen Speicher, Software oder Kombinationen davon, die zusammenarbeiten, um eine oder mehrere spezifische Aufgaben auszuführen, beziehen. Bei nützlichen Ausführungsformen kann das Hardwareprozessor-Untersystem ein oder mehrere Datenverarbeitungselemente (z.B. Logikschaltungen, Verarbeitungsschaltungen, Anweisungsausführungsvorrichtungen, etc.) enthalten. Das eine oder die mehreren Datenverarbeitungselemente können in einer zentralen Verarbeitungseinheit, einer Grafikverarbeitungseinheit und/oder einer separaten prozessor- oder computerelementbasierten Steuerung (z.B. Logik-Gatter, etc.) enthalten sein. Das Hardwareprozessor-Untersystem kann einen oder mehrere Speicher an Bord enthalten (z.B. Caches, bestimmte Speicher-Arrays, einen Nurlesespeicher, etc.). Bei einigen Ausführungsformen kann das Hardwareprozessor-Untersystem einen oder mehrere Speicher enthalten, die an Bord sein können oder nicht, oder die zur Verwendung durch das Hardwareprozessor-Untersystem bestimmt sein können (z.B. ROM, RAM, Basisdatenaustauschsystem (BIOS), etc.).
  • Bei einigen Ausführungsformen kann das Hardwareprozessor-Untersystem ein oder mehrere Softwareelemente enthalten und ausführen. Das eine oder die mehreren Softwareelemente können ein Betriebssystem und/oder eine oder mehrere Anwendungen und/oder einen bestimmten Code enthalten, um ein spezifiziertes Ergebnis zu erreichen.
  • Bei anderen Ausführungsformen kann das Hardwareprozessor-Untersystem eine bestimmte, spezialisierte Schaltung enthalten, die eine oder mehrere elektronische Verarbeitungsfunktionen durchführt, um ein spezifiziertes Ergebnis zu erreichen. Eine solche Schaltung kann eine oder mehrere anwendungsspezifische integrierte Schaltungen (ASICs), feldprogrammierbare Gate-Arrays (FPGAs) und/oder programmierbare Logik-Arrays (PLAs) enthalten.
  • Eine Bezugnahme in der Beschreibung auf „eine einzige Ausführungsform“ oder „eine Ausführungsform“ der vorliegenden Erfindung sowie andere Variationen davon bedeutet, dass ein bestimmtes Merkmal, eine Struktur, eine Charakteristik und so weiter, die in Verbindung mit der Ausführungsform beschrieben sind, in wenigstens einer Ausführungsform der vorliegenden Erfindung enthalten ist. Somit beziehen sich die Erscheinungsformen der Phrase „bei einer einzigen Ausführungsform“ oder „bei einer Ausführungsform“ sowie irgendwelche anderen Variationen, die an verschiedenen Stellen durch die gesamte Beschreibung hindurch erscheinen, nicht notwendigerweise alle auf dieselbe Ausführungsform. Es ist jedoch einzusehen, dass Merkmale von einer oder mehreren Ausführungsformen bei Vorgabe der hierin zur Verfügung gestellten Lehren der vorliegenden Erfindung kombiniert werden können.
  • Es ist einzusehen, dass die Verwendung von irgendeinem von folgendem „/“, „und/oder“ und „wenigstens einer von“, wie zum Beispiel in den Fällen von „A/B“, „A und/oder B“ und „wenigstens eines von A und B“, die Auswahl von nur der ersten aufgelisteten Option (A) oder die Auswahl von nur der zweiten aufgelisteten Option (B) oder die Auswahl von beiden Optionen (A und B) umfassen soll. Als ein weiteres Beispiel soll in den Fällen „A, B und/oder C“ und „wenigstens eines von A, B und C“ die Phrasierung die Auswahl von nur der ersten aufgelisteten Option (A) oder die Auswahl von nur der zweiten aufgelisteten Option (B) oder die Auswahl von nur der dritten aufgelisteten Option (C) oder die Auswahl von nur der ersten und der zweiten aufgelisteten Optionen (nur A und B) oder die Auswahl von nur der ersten und der dritten aufgelisteten Optionen (nur A und C) oder die Auswahl von nur der zweiten und der dritten aufgelisteten Optionen (B und C) oder die Auswahl von allen drei Optionen (A und B und C) umfassen. Dies kann für so viele Elemente erweitert werden, wie sie aufgelistet sind.
  • Das Vorstehende ist in jeder Hinsicht illustrativ und beispielhaft, aber nicht beschränkend zu verstehen, und der Schutzumfang der hierin offenbarten Erfindung ist nicht aus der detaillierten Beschreibung zu bestimmen, sondern vielmehr aus den Ansprüchen in der Auslegung gemäß der vollen Breite, die durch die Patentgesetze zugelassen ist. Es ist zu verstehen, dass die hierin gezeigten und beschriebenen Ausführungsformen nur illustrativ für die vorliegende Erfindung sind und dass Fachleute auf dem Gebiet verschiedene Modifikationen implementieren können, ohne vom Schutzumfang und Sinngehalt der Erfindung abzuweichen. Fachleute auf dem Gebiet könnten verschiedene andere Merkmalskombinationen implementieren, ohne vom Schutzumfang und Sinngehalt der Erfindung abzuweichen. Hat man somit Aspekte der Erfindung mit den Details und der Besonderheit beschrieben, die durch die Patentgesetze erforderlich sind, ist das, was durch das Patentgesetz zu schützen beansprucht und erwünscht ist, in den beigefügten Ansprüchen dargelegt.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 62/793948 [0001]
    • US 62/878819 [0001]
    • US 16/736451 [0001]

Claims (20)

  1. Verfahren zur Kameraselbstkalibrierung, umfassend: Empfangen von wenigstens einem realen unkalibrierten Bild; Schätzen, unter Verwendung eines Kameraselbstkalibrierungsnetzes, einer Vielzahl von vorhergesagten Kameraparametern entsprechend dem wenigstens einen realen unkalibrierten Bild; Implementieren einer tiefgehenden Überwachung basierend auf einer Abhängigkeitsreihenfolge zwischen der Vielzahl von vorhergesagten Kameraparametern, um Überwachungssignale über mehrere Schichten entsprechend der Abhängigkeitsreihenfolge zu platzieren; und Bestimmen von wenigstens einem kalibrierten Bild unter Verwendung des wenigstens einen realen unkalibrierten Bildes und von wenigstens einem der Vielzahl von vorhergesagten Kameraparametern.
  2. Verfahren nach Anspruch 1, weiterhin umfassend: Empfangen, während einer Trainingsphase, von wenigstens einem kalibrierten Trainingsbild und wenigstens einem Trainingskameraparameter entsprechend dem wenigstens einen kalibrierten Trainingsbild; und Erzeugen, unter Verwendung des wenigstens einen kalibrierten Trainingsbilds und des wenigstens einen Trainingskameraparameters, von wenigstens einem synthetisierten Kameraparameter und wenigstens einem synthetisierten unkalibrierten Bild entsprechend dem wenigstens einen synthetisierten Kameraparameter.
  3. Verfahren nach Anspruch 2, weiterhin umfassend: Trainieren des Kameraselbstkalibrierungsnetzes unter Verwendung des wenigstens einen synthetisierten unkalibrierten Bildes als Eingabedaten und des wenigstens einen synthetisierten Kameraparameters als ein Überwachungssignal.
  4. Verfahren nach Anspruch 1, wobei ein Schätzen des wenigstens einen vorhergesagten Kameraparameters weiterhin folgendes umfasst: Durchführen wenigstens einer von einer Bildmittelpunktschätzung, einer Brennweitenschätzung und einer Radialverzerrungsschätzung.
  5. Verfahren nach Anspruch 1, wobei ein Implementieren einer tiefgehenden Überwachung weiterhin folgendes umfasst: Implementieren einer tiefgehenden Überwachung basierend auf einer Bildmittelpunktschätzung als Zwischenaufgabe für eine Radialverzerrungsschätzung und eine Brennweitenschätzung, wobei gelernte Merkmale zum Schätzen des Bildmittelpunkts zum Schätzung der Radialverzerrung verwendet werden und eine Bilderscheinung basierend auf einer zusammengesetzten Wirkung aus radialer Verzerrung und Brennweite bestimmt wird.
  6. Verfahren nach Anspruch 1, weiterhin umfassend: Bestimmen eines kalibrierten Videos basierend auf wenigstens einem kalibrierten Bild; und Schätzen von Kamerabewegungsbahn und Szenenstruktur, beobachtet im kalibrierten Video, basierend auf simultaner Positionsbestimmung und Kartierung (SLAM).
  7. Verfahren in Anspruch 1, weiterhin umfassend: Schätzen von wenigstens einer Kamerastellung und Szenenstruktur unter Verwendung von Struktur aus Bewegung (SFM) basierend auf dem wenigstens einen kalibrierten Bild.
  8. Verfahren nach Anspruch 1, wobei ein Bestimmen des wenigstens einen realen kalibrierten Bildes unter Verwendung des wenigstens einen realen unkalibrierten Bildes und des wenigstens einen vorhergesagten Kameraparameters weiterhin folgendes umfasst: Verarbeiten des wenigstens einen realen unkalibrierten Bildes und des wenigstens einen vorhergesagten Kameraparameters über einen Rektifizierungsprozess, um das wenigstens eine kalibrierte Bild zu bestimmen.
  9. Verfahren nach Anspruch 1, weiterhin umfassend: Implementieren des Kameraselbstkalibrierungsnetzwerks unter Verwendung eines Restnetzes als Basis und Hinzufügen von wenigstens einer Faltungsschicht und wenigstens einer Batch- bzw. Stapel-Normalisierungsschicht.
  10. Computersystem zur Kameraselbstkalibrierung, umfassend: eine Prozessorvorrichtung, die operativ mit einer Speichervorrichtung gekoppelt ist, wobei die Prozessorvorrichtung konfiguriert ist, um wenigstens ein reales unkalibriertes Bild zu empfangen; unter Verwendung eines Kameraselbstkalibrierungsnetzes eine Vielzahl von vorhergesagten Kameraparametern entsprechend dem wenigstens einen realen unkalibrierten Bild zu schätzen; eine tiefgehende Überwachung basierend auf einer Abhängigkeitsreihenfolge zwischen der Vielzahl von vorhergesagten Kameraparametern zu implementieren, um Überwachungssignale quer über mehrere Schichten gemäß der Abhängigkeitsreihenfolge zu platzieren; und wenigstens ein kalibriertes Bild unter Verwendung des wenigstens einem realen unkalibrierten Bildes und des wenigstens einen vorhergesagten Kameraparameters zu bestimmen.
  11. System nach Anspruch 10, wobei die Prozessorvorrichtung weiterhin konfiguriert ist, um: während einer Trainingsphase wenigstens ein kalibriertes Trainingsbild und wenigstens einen Trainingskameraparameter entsprechend dem wenigstens einen kalibrierten Trainingsbild zu empfangen; und unter Verwendung von dem wenigstens einen kalibrierten Trainingsbild und dem wenigstens einen Trainingskameraparameter wenigstens einen synthetisierten Kameraparameter und wenigstens ein synthetisiertes unkalibriertes Bild entsprechend dem wenigstens einen synthetisierten Kameraparameter zu erzeugen.
  12. System nach Anspruch 11, wobei die Prozessorvorrichtung weiterhin konfiguriert ist, um: das Kameraselbstkalibrierungsnetz unter Verwendung des wenigstens einen synthetisierten unkalibrierten Bildes als Eingabedaten und des wenigstens einen synthetisierten Kameraparameters als Überwachungssignal zu trainieren.
  13. System nach Anspruch 10, wobei die Prozessorvorrichtung dann, wenn sie den wenigstens einen vorhergesagten Kameraparameter schätzt, weiterhin konfiguriert ist, um: wenigstens eines von einer Bildmittelpunktschätzung, einer Brennweitenschätzung und einer Radialverzerrungsschätzung durchführen.
  14. System nach Anspruch 10, wobei die Prozessorvorrichtung dann, wenn sie eine tiefgehende Überwachung implementiert, weiterhin konfiguriert ist, um: eine tiefgehende Überwachung basierend auf einer Bildmittelpunktschätzung als eine Zwischenaufgabe für eine Radialverzerrungsschätzung und eine Brennweitenschätzung zu implementieren, wobei gelernte Merkmale zum Schätzen eines Bildmittelpunkts zum Schätzen einer Radialverzerrung verwendet werden und eine Bilderscheinung basierend auf einer zusammengesetzten Wirkung aus radialer Verzerrung und Brennweite bestimmt wird.
  15. System nach Anspruch 10, wobei die Prozessorvorrichtung weiterhin konfiguriert ist, um: ein kalibriertes Video basierend auf dem wenigstens einen kalibrierten Bildes zu bestimmen; und eine Kamerabewegungsbahn und Szenenstruktur, beobachtet im kalibrierten Video, basierend auf simultaner Positionsbestimmung und Kartierung (SLAM) zu schätzen.
  16. System nach Anspruch 10, wobei die Prozessorvorrichtung weiterhin konfiguriert ist, um: wenigstens eine Kamerastellung und Szenenstruktur unter Verwendung von Struktur aus Bewegung (SFM) basierend auf dem wenigstens einen kalibrierten Bild zu schätzen.
  17. System nach Anspruch 10, wobei die Prozessorvorrichtung dann, wenn sie das wenigstens eine kalibrierte Bild unter Verwendung des wenigstens einen realen unkalibrierten Bild und des wenigstens einen vorhergesagten Kameraparameters bestimmt, weiterhin konfiguriert ist, um: das wenigstens eine reale unkalibrierte Bild und den wenigstens einen vorhergesagten Kameraparameter über einen Rektifizierungsprozess zu verarbeiten, um das wenigstens eine kalibrierte Bild zu bestimmen.
  18. System nach Anspruch 10, wobei die Prozessorvorrichtung weiterhin konfiguriert ist, um: das Kameraselbstkalibrierungsnetz unter Verwendung eines Restnetzes als eine Basis und Hinzufügen von wenigstens einer Faltungsschicht und wenigstens einer Batch- bzw. Stapel-Normalisierungsschicht zu implementieren.
  19. Computerprogrammprodukt zur Kameraselbstkalibrierung, wobei das Computerprogrammprodukt ein nichtflüchtiges computerlesbares Speichermedium umfasst, das Programmanweisungen damit verkörpert hat, wobei die Programmanweisungen durch eine Computervorrichtung ausführbar sind, um zu veranlassen, dass die Computervorrichtung das Verfahren durchführt, das folgendes umfasst: Empfangen von wenigstens einem realen unkalibrierten Bild; Schätzen, unter Verwendung eines Kameraselbstkalibrierungsnetzes, von wenigstens einem vorhergesagten Kameraparameter entsprechend dem wenigstens einen realen unkalibrierten Bild; und Bestimmen von wenigstens einem kalibrierten Bild unter Verwendung des wenigstens einen realen unkalibrierten Bildes und des wenigstens einen vorhergesagten Kameraparameters.
  20. Computerprogrammprodukt zur Kameraselbstkalibrierung nach Anspruch 19, wobei die durch eine Computervorrichtung ausführbaren Programmanweisungen weiterhin folgendes umfassen: Empfangen, während einer Trainingsphase, von wenigstens einem kalibrierten Trainingsbild und wenigstens einem Trainingskameraparameter entsprechend dem wenigstens einen kalibrierten Trainingsbild; und Erzeugen, unter Verwendung des wenigstens einen kalibrierten Trainingsbilds und des wenigstens einen Trainingskameraparameters, von wenigstens einem synthetisierten Kameraparameter und wenigstens einem synthetisierten unkalibrierten Bild entsprechend dem wenigstens einen synthetisierten Kameraparameter.
DE112020000448.1T 2019-01-18 2020-01-10 Kameraselbstkalibrierungsnetz Pending DE112020000448T5 (de)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201962793948P 2019-01-18 2019-01-18
US62/793,948 2019-01-18
US201962878819P 2019-07-26 2019-07-26
US62/878,819 2019-07-26
US16/736,451 US20200234467A1 (en) 2019-01-18 2020-01-07 Camera self-calibration network
US16/736,451 2020-01-07
PCT/US2020/013012 WO2020150077A1 (en) 2019-01-18 2020-01-10 Camera self-calibration network

Publications (1)

Publication Number Publication Date
DE112020000448T5 true DE112020000448T5 (de) 2021-10-21

Family

ID=71609002

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112020000448.1T Pending DE112020000448T5 (de) 2019-01-18 2020-01-10 Kameraselbstkalibrierungsnetz

Country Status (4)

Country Link
US (1) US20200234467A1 (de)
JP (1) JP7166459B2 (de)
DE (1) DE112020000448T5 (de)
WO (1) WO2020150077A1 (de)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102227583B1 (ko) * 2018-08-03 2021-03-15 한국과학기술원 딥 러닝 기반의 카메라 캘리브레이션 방법 및 장치
CN112153357A (zh) * 2019-06-28 2020-12-29 中强光电股份有限公司 投影系统及其投影方法
CN111507924B (zh) * 2020-04-27 2023-09-29 北京百度网讯科技有限公司 视频帧的处理方法和装置
US20220408011A1 (en) * 2021-06-18 2022-12-22 Hewlett-Packard Development Company, L.P. User characteristic-based display presentation
KR20230092801A (ko) 2021-12-17 2023-06-26 한국기계연구원 광학식 시차 생성을 이용한 단일 카메라 스테레오 비전의 3차원 형상 측정 방법 및 장치
US11562504B1 (en) 2022-01-26 2023-01-24 Goodsize Inc. System, apparatus and method for predicting lens attribute

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9438897B2 (en) * 2011-07-25 2016-09-06 Universidade De Coimbra Method and apparatus for automatic camera calibration using one or more images of a checkerboard pattern
JP6599685B2 (ja) * 2015-08-19 2019-10-30 シャープ株式会社 画像処理装置および誤差判定方法
TWI555379B (zh) * 2015-11-06 2016-10-21 輿圖行動股份有限公司 一種全景魚眼相機影像校正、合成與景深重建方法與其系統
CA3012721C (en) 2016-02-03 2022-04-26 Sportlogiq Inc. Systems and methods for automated camera calibration
JP7016058B2 (ja) * 2017-04-28 2022-02-04 パナソニックIpマネジメント株式会社 カメラパラメタセット算出方法、カメラパラメタセット算出プログラム及びカメラパラメタセット算出装置
US10503247B2 (en) * 2017-05-09 2019-12-10 Microsoft Technology Licensing, Llc Calibration of stereo cameras and handheld object

Also Published As

Publication number Publication date
JP2022510237A (ja) 2022-01-26
JP7166459B2 (ja) 2022-11-07
WO2020150077A1 (en) 2020-07-23
US20200234467A1 (en) 2020-07-23

Similar Documents

Publication Publication Date Title
DE112020000448T5 (de) Kameraselbstkalibrierungsnetz
DE112016007498B4 (de) Untersuchungseinrichtung und untersuchungsverfahren
DE102019008142A1 (de) Lernen von Darstellungen unter Nutzung gemeinsamer semantischer Vektoren
DE102018218586A1 (de) Verfahren, Vorrichtung und Computerprogramm zum Erzeugen robuster automatisch lernender Systeme und Testen trainierter automatisch lernender Systeme
DE112016004266T5 (de) Verfahren zur Gesichtsausrichtung
WO2019001649A1 (de) Wissenstransfer zwischen verschiedenen deep-learning architekturen
EP3557487B1 (de) Generieren von validierungsdaten mit generativen kontradiktorischen netzwerken
DE102019214402A1 (de) Verfahren und vorrichtung zum verarbeiten von daten mittels eines neuronalen konvolutionsnetzwerks
DE102018008685A1 (de) Verfahren zum Trainieren eines künstlichen neuronalen Netzes, künstliches neuronales Netz, Verwendung eines künstlichen neuronalen Netzes sowie entsprechendes Computerprogramm maschinenlesbares Speichermedium und entsprechende Vorrichtung
DE112020005584T5 (de) Verdeckung berücksichtigende Innenraumszenenanalyse
DE102020133963A1 (de) Systeme und Verfahren zur Abbildrauschunterdrückung unter Verwendung von tiefen gefalteten Netzwerken
DE102020103769A1 (de) Gegnerischer Angriff auf den Algorithmus zur Erkennung von Black-Box-Objekten
DE102018217091A1 (de) Verfahren, künstliches neuronales Netz, Vorrichtung, Computerprogramm und maschinenlesbares Speichermedium zur semantischen Segmentierung von Bilddaten
DE102019209560A1 (de) Vorrichtung und Verfahren zum Trainieren eines neuronalen Netzwerks
DE112020003446T5 (de) Validierung einer Leistung eines neuronalen Netzes, das mit markierten Trainingsdaten trainiert wurde
DE102018119467B4 (de) Verfahren zum durchführen eines autonomen betriebs eines fahrzeugs durch tiefes räumlich-zeitliches lernen
DE102021201124A1 (de) Trainieren von bildklassifizierernetzen
DE102020200503A1 (de) Verfahren zum Generieren von gelabelten Daten, insbesondere für das Training eines neuronalen Netzes, mittels Verbesserung initialer Label
DE102018220608A1 (de) Maschinelles Lernsystem, sowie ein Verfahren, ein Computerprogramm und eine Vorrichtung zum Erstellen des maschinellen Lernsystems
DE102021104181A1 (de) Bildverbesserung für realitätsnähe
DE102020116774A1 (de) Automatische visuelle Wahrnehmung mittels eines künstlichen neuronalen Netzes
DE102020211596A1 (de) Verfahren zum Generieren eines trainierten neuronalen Faltungs-Netzwerks mit invarianter Integrationsschicht zum Klassifizieren von Objekten
DE102019216184A1 (de) Verfahren zum Robustifizieren eines Neuronalen Netzes gegen adversariale Störungen
DE202019103924U1 (de) Vorrichtung für die Verarbeitung digitaler Sensordaten
DE102019215912A1 (de) Verfahren und vorrichtung zum computer-implementierten betreiben eines neuronalen netzwerks

Legal Events

Date Code Title Description
R012 Request for examination validly filed