DE102019104516A1 - Tiefe geometrische Modellanpassung - Google Patents

Tiefe geometrische Modellanpassung Download PDF

Info

Publication number
DE102019104516A1
DE102019104516A1 DE102019104516.9A DE102019104516A DE102019104516A1 DE 102019104516 A1 DE102019104516 A1 DE 102019104516A1 DE 102019104516 A DE102019104516 A DE 102019104516A DE 102019104516 A1 DE102019104516 A1 DE 102019104516A1
Authority
DE
Germany
Prior art keywords
model
neural network
input data
data
logic
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
DE102019104516.9A
Other languages
English (en)
Inventor
Rene Ranftl
Vladlen Koltun
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of DE102019104516A1 publication Critical patent/DE102019104516A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine 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
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/10Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/08Projecting images onto non-planar surfaces, e.g. geodetic screens
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/55Depth or shape recovery from multiple images
    • G06T7/593Depth or shape recovery from multiple images from stereo images
    • 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
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20076Probabilistic image processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30248Vehicle exterior or interior

Landscapes

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

Abstract

Systeme, Einrichtungen und Verfahren können eine Technologie bereitstellen, die, durch ein erstes neuronales Netzwerk, eine anfängliche Menge von Modellgewichten basierend auf den Eingabedaten erzeugt, und iterativ, durch ein zweites neuronales Netzwerk, eine aktualisierte Menge von Modellgewichten basierend auf Restdaten in Verbindung mit der anfänglichen Menge von Modellgewichten und den Eingabedaten erzeugt. Zusätzlich kann die Technologie ein geometrisches Modell der Eingabedaten basierend auf der aktualisierten Menge von Modellgewichten ausgeben. In einem Beispiel reduzieren das erste neuronale Netzwerk und das zweite neuronale Netzwerk eine Abhängigkeit des geometrischen Modells von einer Anzahl von Datenpunkten in den Eingabedaten.

Description

  • TECHNISCHES GEBIET
  • Ausführungsformen beziehen sich allgemein auf geometrische Modellanpassung. Insbesondere beziehen sich Ausführungsformen auf die Verwendung von tiefen neuronalen Netzwerken bei geometrischer Modellanpassung.
  • STAND DER TECHNIK
  • Computervisionsanwendungen können geometrische Modellanpassung verwenden, um eine breite Vielfalt von Funktionen zu unterstützen, wie etwa automatisierte Roboter- und/oder Fahrzeugnavigation. Beispielsweise kann eine Computervisionsanwendung ein mathematisches Problem definieren, das ein geometrisches Modell an Bilddaten anpasst, die von einer oder mehreren Kameras, die die umgebende Umgebung erfassen, erhalten werden. Das geometrische Modell kann, beispielsweise, eine Linie, ein Polynom oder eine Fundamentalmatrix (z. B. eine 3x3-Matrix, die entsprechende Punkte in Stereobildern in Beziehung setzt) sein. Die Anwendung kann dann versuchen, das mathematische Problem zu lösen, um die beste Anpassung des Modells an die Daten zu bestimmen.
  • Figurenliste
  • Die verschiedenen Vorteile der Ausführungsformen werden einem Fachmann durch Lesen der folgenden Spezifikation und der beigefügten Ansprüche sowie durch Bezugnahme auf die folgenden Zeichnungen offensichtlich, in denen:
    • 1 eine schematische Darstellung einer beispielhaften Pipelinearchitektur gemäß einer Ausführungsform ist;
    • 2 ein Blockdiagramm eines beispielhaften lernbasierten Schätzers gemäß einer Ausführungsform ist;
    • 3 ein Blockdiagramm eines beispielhaften neuronalen Netzwerks gemäß einer Ausführungsform ist;
    • 4 ein Flussdiagramm eines beispielhaften Verfahrens zum Betreiben einer Computervisionseinrichtung gemäß einer Ausführungsform ist;
    • 5A ein vergleichender Plot einer beispielhaften Robustheit im Hinblick auf Problemdimension gemäß einer Ausführungsform ist;
    • 5B ein vergleichender Plot einer beispielhaften Robustheit im Hinblick auf Rauschverteilung gemäß einer Ausführungsform ist;
    • 5C eine Menge von Plots einer beispielhaften Genauigkeit bei unterschiedlichen Pipelinestufen gemäß einer Ausführungsform ist;
    • 6 ein vergleichender Plot eines beispielhaften quadratischen Sampson-Fehlers gemäß einer Ausführungsform ist;
    • 7 ein vergleichender Plot eines beispielhaften durchschnittlichen Eckenfehlers gemäß einer Ausführungsform ist;
    • 8 ein Blockdiagramm eines beispielhaften Datenverarbeitungssystems gemäß einer Ausführungsform ist;
    • 9 eine Darstellung eines beispielhaften Halbleitergehäuses gemäß einer Ausführungsform ist;
    • 10 ein Blockdiagramm eines beispielhaften Prozessors gemäß einer Ausführungsform ist;
    • 11 ein Blockdiagramm eines beispielhaften mehrprozessorbasierten Datenverarbeitungssystems gemäß einer Ausführungsform ist;
  • BESCHREIBUNG DER AUSFÜHRUNGSFORMEN
  • Herkömmliche Lösungen, wie die RANSAC-Familie (Random Sample Consensus, Übereinstimmung mit einer zufälligen Stichprobe) von Algorithmen, können mathematische Probleme zur geometrischen Modellanpassung durch zufälliges Abtasten der Bilddaten lösen. Da sich die Mindestanzahl an Datenpunkten, die erforderlich ist, um das Modell eindeutig zu definieren, erhöht, kann die Wahrscheinlichkeit des Abtastens von zumindest einem Ausreißerdatenpunkt exponentiell wachsen. Entsprechend kann der RANSAC-Ansatz für höherdimensionale Probleme (z. B. Probleme mit einer großen Anzahl von zu berücksichtigenden Variablen) unpraktisch sein, insbesondere, wenn das Problem ein NP-Problem (nichtdeterministische polynomielle Zeit) der harten maximalen Übereinstimmung ist, das versucht, durch Ausreißer kontaminierte Daten zu behandeln. Andere Lösungen können entweder unpraktisch langsam (z. B. globale Optimierung des maximalen Übereinstimmungsproblems) und/oder instabil (z. B. Einbetten eines nicht-robusten Basisschätzers in ein robustes M-Schätzerrahmenwerk) sein.
  • Jetzt Bezug nehmend auf 1 wird eine Pipelinearchitektur 20 gezeigt, bei der eine lernbasierte Initialisierungsfunktion 22 eine anfängliche Menge von Modellgewichten (w0) basierend auf Eingabedaten (P) erzeugt, wobei die anfängliche Menge von Modellgewichten einen Ausgangspunkt zum Lösen eines mathematischen Problems, das ein geometrisches Modell an die Eingabedaten anpasst, darstellen kann. Die Eingabedaten können, beispielsweise, Bilddaten von einer oder mehreren Kameras, die eine Szene erfassen, sein, und das geometrische Modell kann, beispielsweise, eine Linie, ein Polynom, eine Fundamentalmatrix und so weiter sein. Im dargestellten Beispiel erzeugt ein lernbasierter Schätzer 24 iterativ eine aktualisierte Menge von Modellgewichten (wj+1) basierend auf Restdaten in Verbindung mit der anfänglichen Menge von Modellgewichten, den Eingabedaten und optionalen Nebeninformationen (S). Ein Modellschätzer 26 kann ein geometrisches Modell (g(x)D) der Eingabedaten basierend auf der aktualisierten Menge von Modellgewichten ausgeben.
  • Wie noch ausführlicher erörtert wird, können die lernbasierte Initialisierungsfunktion 22 und der lernbasierte Schätzer 24 neuronale Netzwerke (z. B. tiefe neuronale Netzwerke (DNN, Deep Neural Networks), gefaltete neuronale Netzwerke (CNN, Convolutional Neural Networks) usw.) verwenden, um die Modellgewichte zu erzeugen. Daher kann die lernbasierte Initialisierungsfunktion 22 ein erstes neuronales Netzwerk umfassen, das die anfängliche Menge von Modellgewichten erzeugt, und der lernbasierte Schätzer 24 kann ein zweites neuronales Netzwerk umfassen, das iterativ die aktualisierte Menge von Modellgewichten erzeugt. Entsprechend können eine oder mehrere Schichten der neuronalen Netzwerke unabhängig an jedem Punkt in den Eingabedaten arbeiten, was seinerseits der Architektur 20 ermöglicht, zufälliges Abtasten zu verhindern und die Abhängigkeit des geometrischen Modells von der Anzahl von Datenpunkten in den Eingabedaten zu verringern. Die neuronalen Netzwerke können es der Architektur 20 auch ermöglichen, Datenregelmäßigkeiten zu lernen, wie etwa, beispielsweise, Bewegungsmuster in Verbindung mit den Eingabedaten, und/oder stabile Ergebnisse schneller als mit herkömmlichen Lösungen zu produzieren. Das geometrische Modell kann verwendet werden, um Aufgaben auf höherer Ebene durchzuführen, wie etwa, beispielsweise, Lokalisieren von mehreren an einem Fahrzeug oder einem radgestützten Roboter montierten Kameras in einer dreidimensionalen (3D) Umgebung. Die Komponenten der Architektur 20 können in Logikanweisungen, auslegbarer Logik, Hardwarelogik mit fester Funktionalität usw. oder einer Kombination daraus umgesetzt sein.
  • Voraussetzungen
  • Hier wird auf ein einzelnes Element der Eingabedaten der Dimensionalität d Bezug genommen als ein Punkt pi ∈ Rd. Zusätzlich wird P ∈ P = RN×dP als eine Punktwolke der Dimensionalität d bezeichnet, die N (nicht notwendigerweise voneinander verschiedene) Punkte umfasst. Tiefgestellte Indizes (P)i werden verwendet, um die i-te Zeile einer Matrix zu bezeichnen. Es ist anzumerken, dass Punkte entweder Punkte in irgendeinem metrischen Raum oder, im Falle einer Fundamentalmatrix- und Homografieabschätzung, Punktkorrespondenzen sein können (z. B. haben wir pi ∈ R4 in diesem Fall durch Verketten der zwei Bildkoordinaten von mutmaßlichen Korrespondenzen p ˜ i p ˜ i ' ) .
    Figure DE102019104516A1_0001
  • Gewichtete kleinste Quadrate
  • Bei vielen geometrischen Modellanpassungsproblemen ergibt sich ein Problem hinsichtlich (robuster) homogener Optimierung mit kleinsten Quadraten: minimieren i = 1 N Φ ( ( A ( P ) ) i x )
    Figure DE102019104516A1_0002

    x
    mit x = 1,
    Figure DE102019104516A1_0003
  • wobei x ∈ Rd' die Modellparameter A:P → RkNxd' definiert, kN ≥ d', k > 0 eine problemspezifische Abbildung der Datenpunkte ist und Φ: R → R+ eine symmetrische Funktion mit einem eindeutigen Minimum bei 0 ist.
  • Durch Festlegen von Φ(γ) = y2 reduziert sich der Ausdruck (1) zu einem homogenen Problem mit kleinsten Quadraten, das eine Lösung in geschlossener Form hat/zulässt (z. B. das Problem im Hinblick auf Funktionen und mathematische Operationen aus einer allgemein akzeptierten Menge löst). Populäre Beispiele von Algorithmen, bei denen sich Optimierungsprobleme dieser Form ergeben, sind der normalisierte Acht-Punkt-Algorithmus (z. B. für Fundamentalmatrizen), die direkte lineare Transformation (DLT) und Anpassung mit kleinsten Gesamtquadraten.
  • Sei eine Anpassung auf einer Hyperebene (z. B. einem Unterraum, dessen Dimension Eins kleiner als die des umgebenden Raumes ist) als ein einfaches Beispiel gegeben, bei dem (nT, c)T eine Hyperebene mit einer Normalen n und einem Schnitt c. Das Ziel der Hyperebenenanpassung kann sein, (nT, c)T aus einer gegebenen Punktwolke P herzuleiten. Zum Anpassen einer Hyperebene im Sinne eines Kleinste-Gesamtquadrate-Ansatzes kann der folgende Ausdruck verwendet werden: A ( P ) N × d , ( A ( P ) ) i = p i T 1 N j = 1 N p j T
    Figure DE102019104516A1_0004
  • Lösen von Ausdruck (1) mit dieser Definition und Φ (y) =
    y2 ermöglicht es der Ebene, unter Verwendung der Modellextraktionsfunktion g(x) , die x auf die Modellparameter abbildet, extrahiert zu werden: g ( x ) = ( x T , x 1 N i = 1 N p i ) T = ( n T , c ) T
    Figure DE102019104516A1_0005
  • Wenn die Daten frei von Ausreißern sind, kann die Kleinste-Quadrate-Lösung nahe an der wahren Lösung sein, abhängig von der Nicht-Ausreißer-Rauschverteilung und der spezifischen Form des Problems. In praktischen Anwendungen sind die Korrespondenzen allerdings beinahe nie vollständig korrekt. Tatsächlich kann es mehr Ausreißer als Nicht-Ausreißer geben. Lösen des Schätzproblems im Sinne des Kleinsten-Quadrate-Ansatzes kann selbst bei Anwesenheit eines einzigen Ausreißers unkorrekte Schätzungen ergeben.
  • Eine mögliche Lösung für robuste geometrische Modellanpassung ist das Verwenden eines robusten M-Schätzers als Verlustfunktion Φ. Das resultierende Optimierungsproblem lässt möglicherweise allgemein eine Lösung in geschlossener Form nicht zu. Ein praktischer Weg zum annähernden Lösen des Optimierungsproblems ist durch Lösen einer Sequenz von neu gewichteten Kleinste-Quadrate-Probl emen. x k + 1 = a r g   m i n x : x = 1 i = 1 N w ( p i , x j ) ( A ( P ) ) i x 2 ,
    Figure DE102019104516A1_0006
  • wobei die exakte Form der Gewichte w von Φ und dem vorliegenden geometrischen Modell abhängt.
  • Zurückkehrend zum Hyperebenenanpassungsbeispiel sei angenommen, dass w(pi,J) = wi = 1, wenn pi ein Nicht-Ausreißer ist, und w(pi,xj) = wi = 0 andernfalls. Es ist klar, dass, wenn diese Gewichte gegeben sind, das korrekte Modell in einer einzelnen Iteration von Ausdruck (4) wiederhergestellt werden kann durch Setzen von ( A ( P ) ) i = p i T j = 1 N w j p j T j = 1 N w j
    Figure DE102019104516A1_0007
  • und g ( x ) = ( x T , x j = 1 N w j p j j = 1 N w j ) T .
    Figure DE102019104516A1_0008
  • Das Kennen der Gewichte im Voraus kann allerdings ein „Henne-Ei“-Problem sein. Wenn das wahre Modell bekannt ist, ist es trivial, die Nicht-Ausreißer von den Ausreißern zu trennen. Wenn auf der anderen Seite bekannt ist, welche Punkte Nicht-Ausreißer sind, wäre es trivial, das wahre Modell wiederherzustellen (unter der Annahme, dass es aus der Menge von Nicht-Ausreißern wiederhergestellt werden kann). In vielen Fällen können die Gewichte jedoch ausreichend gut unter Verwendung eines tiefen Netzwerks mit einer geeigneten Struktur, wie hier beschrieben, geschätzt werden.
  • Tiefe Modellanpassung
  • Ausdruck (4) kann als eine iterative neu gewichtete Kleinste-Quadrate-Prozedur (IRLS, Iteratively Reweighted Least-Squares) mit einer komplexen, erlernten Neugewichtungsfunktion angesehen werden. Da Gewichte aus Daten erlernt werden, kann zumindest eine der folgenden Annahmen als Einschränkung angenommen werden: Erstens lassen die Eingabedaten Regelmäßigkeiten in den Nicht-Ausreißer- und Ausreißerverteilungen zu, die gelernt werden können. Ein Beispiel dieser Annahme wäre eine Ausreißerverteilung, die annähernd gleichförmig und hinreichend unähnlich der Nicht-Ausreißerrauschverteilung ist. Zweitens hat das Problem nützliche Nebeninformationen (z. B. Linienanpassungseinschränkungen, Datenkorrespondenz, Datenkorrespondenzwahrscheinlichkeiten / Deskriptorübereinstimmungsbewertungen), die in die Neugewichtungsfunktion integriert werden können. Ein Beispiel für diese Annahme wäre Verwenden von Deskriptorübereinstimmungsbewertungen in Fundamentalmatrix- und Homografieabschätzungsproblemen, um die Wahrscheinlichkeit dafür anzuzeigen, dass Datenpunkte aus verschiedenen Bildern einander entsprechen (z. B. basierend auf Farbe). Drittens ist der Ausgaberaum eine Teilmenge des vollen Raums von Modellparametern. Ein Beispiel für diese Annahme wäre Fundamentalmatrixabschätzung, wie etwa für eine an einem Fahrzeug oder einem radgestützten Roboter montierte Kamera.
  • Hier wird die allgemeine Struktur von Ausdruck (4) angenommen, ohne dass eine einfache Form der Gewichtsfunktion w angenommen wird. Stattdessen wird Ausdruck (4) unter Verwendung eines tiefen Netzwerks parametrisiert, und die Netzwerkgewichte werden aus Daten erlernt, sodass der Gesamtalgorithmus zu genauen Schätzungen führt. Die hier beschriebene Technologie kann als eine Metalösung verstanden werden, die eine komplexe und problemabhängige Version der IRLS-Prozedur mit einer unbekannten Kostenfunktion erlernt. Dieser Ansatz kann verwendet werden, um einfach Nebeninformationen in das Problem zu integrieren, was die Schätzungen verbessern und „robuster machen“ kann. Darüber hinaus ist die dargestellte Architektur 20 in der Lage, genaue Lösungen selbst dann wiederherzustellen, wenn das exakte Modell nicht aus den Nicht-Ausreißern geschätzt werden kann (z. B. aufgrund von Nicht-Ausreißerrauschen).
  • Modellschätzung
  • Wie bereits angemerkt, kann eine Version von Ausdruck (4) formuliert werden, bei der die Gewichte durch ein tiefes Netzwerk parametrisiert werden, das Ende-zu-Ende trainiert werden kann. Insbesondere kann die Gewichtsfunktion neu definiert werden als w : P × S × d ' ( > 0 ) N ,
    Figure DE102019104516A1_0009
  • wobei S ∈ S = ℝN×s Nebeninformationen sammelt (z.B. Linienanpassungseinschränkungen, Deskriptorübereinstimmungsbewertungen), die für jeden Punkt verfügbar sein können. Da diese Funktion global definiert ist, können sich einzelne Punkte gegenseitig beeinflussen. Da w eine hochgradig komplexe Funktion sein kann, kann sie unter Verwendung eines tiefen Netzwerks mit Gewichten θ parametrisiert werden. Mit dieser Parametrisierung kann ein einzelner Schritt in Ausdruck (4) werden zu: x j + 1 = a r g   m i n x : x = 1 i = 1 N ( w ( P , S , x j ; θ ) ) i ( A ( P ) ) i x 2 .
    Figure DE102019104516A1_0010
  • Um eine Parametrisierung θ zu finden, die zu robusten und genauen Schätzungen führt, kann die explizite Abhängigkeit von den Korrespondenzen und Nebeninformationen aus Gründen der notationalen Kürze weggelassen werden. Das Ergebnis kann die folgende Matrixform sein: x j + 1 = a r g   m i n x : x = 1 ( W j ( θ ) ) A x 2 ,
    Figure DE102019104516A1_0011
  • wobei ( W j ( θ ) ) i , i = w i j
    Figure DE102019104516A1_0012
    die einzelnen Gewichte in einer Diagonalmatrix sammelt,
  • Aussage 1. Sei X = UΣVT die singuläre Wertzerlegung (SVD, Singular Value Decomposition, z. B. Faktorisierung) einer Matrix X. Die Lösung xj+1 von Ausdruck (8) ist gegeben durch den rechten singulären Vektor vd' entsprechend dem kleinsten singulären Wert der Matrix W(0)A.
  • Diese Aussage ist wahr unter der Voraussetzung, dass Ausdruck (8) ein homogenes Kleinste-Quadrate-Problem ist. Aussage 1 impliziert, dass eine Lösung für das Modellanpassungsproblem als g(f (W(θ)A)) wiederhergestellt wird, wobei f(X) = vd, und g(x) eine geeignete Funktion ist, die von der SVD auf die Parameter des geometrischen Modells abbildet. Ein Beispiel wurde bereits in Ausdruck (6) für den Fall einer Hyperebenenanpassung gegeben. Weitere Beispiele für unterschiedliche Fälle des geometrischen Modellanpassungsproblems werden nachfolgend erörtert.
  • Zum Erlernen der Gewichte θ unter Verwendung von gradientenbasierter Optimierung kann der Gradient durch eine SVD-Schicht (z. B. mittels Matrixrechnung) rückpropagiert werden.
  • Aussage 2. Sei angenommen, dass die singulären Vektoren gemäß einer Größe ihrer singulären Werte V = (v1,2,...,Vd') angeordnet sind, sodass vd' der singuläre Vektor entsprechend dem kleinsten singulären Wert ist. Eine Rückpropagierung durch g(f(X)) kann mit f (X) = vd' durchgeführt werden.
  • Der Gradient von g bezüglich der Eingabe X kann gegeben sein durch g X = U { 2 Σ ( K T ( V T g v d ' ) s y m ) } V T ,
    Figure DE102019104516A1_0013
  • wobei K = { 1 σ i 2 σ j 2 , w e n n   i j 0, s o n s t
    Figure DE102019104516A1_0014
  • und σi den i-ten singulären Wert bezeichnet.
  • 2 zeigt ein Beispiel eines lernbasierten Schätzers 28, der einfach für den bereits erörterten lernbasierten Schätzer 24 (1) eingesetzt werden kann. Der dargestellte lernbasierte Schätzer 28 umfasst im Allgemeinen eine Modellkomponente 30 und eine Gewichtskomponente 32. Der lernbasierte Schätzer 28 kann als Eingaben die Punkte P und eine Menge von Gewichten w nehmen. Im dargestellten Beispiel konstruiert ein Präprozessor 34 die Matrix W(θ)A, und eine Singulärwertzerlegungseinheit (SVD - Einheit, Singular Value Decomposition)36 faktorisiert die Ausgabe des Präprozessors 34 in das Produkt von drei Matrizen (z. B. UDVT, wobei die Spalten von U und V orthonormal sind und die Matrix D diagonal mit positiven reellen Einträgen ist). Eine Extraktionsfunktion 38 („g(x)“)kann eine Modellextraktion durchführen, die bei gegebenen Eingabegewichten eine Schätzung des geometrischen Modells ergibt. Beispielsweise kann die Extraktionsfunktion 38 geringfügige Nachverarbeitungsberechnungen an der Ausgabe der SVD 36 vornehmen, um eine Schätzung des Modells in einem geeigneten Format (z. B. Liniengleichung) zu erhalten. Das geschätzte Modell kann dann verwendet werden, um, basierend auf den Eingabepunkten, Nebeninformationen und den Resten des aktuell geschätzten Modells eine neue Menge von Gewichten zu schätzen.
  • Da die der Gewichtskomponente 32 vorgelegten Daten möglicherweise keine natürliche Ordnung aufweisen, ist die dargestellte Gewichtskomponente 32 invariant gegenüber Permutation der Eingabedaten. Daher kann die Gewichtskomponente 32 als eine Funktionsannäherung zum Integrieren von globalen Informationen in einer Weise fungieren, die unabhängig von der tatsächlichen Ordnung der Eingabedatenpunkte ist. Zusätzlich, da in den meisten Anwendungen die Anzahl von Eingabepunkten vorab nicht bekannt ist, ist die dargestellte Gewichtskomponente 32 auch in der Lage, eine willkürliche Anzahl N von Eingabepunkten zu verarbeiten. Insbesondere umfasst die dargestellte Gewichtskomponente 32 einen Restanalysator 40 zum Identifizieren der restlichen Daten in Verbindung mit der anfänglichen Menge von Gewichten. In dieser Hinsicht kann der Restanalysator 40, für jeden Datenpunkt, bestimmen, wie weit der Datenpunkt vom geschätzten Modell entfernt ist. Die Gewichtskomponente 32 kann auch ein neuronales Netzwerk 42 („witer“) umfassen, um basierend auf den Restdaten und den Eingabedaten eine aktualisierte Menge von Modellgewichten iterativ zu erzeugen.
  • Um das neuronale Netzwerk 42 invariant gegenüber Permutation der Eingabedaten zu gestalten, ist jede Operation im Netzwerk 42 selbst invariant gegenüber Permutation. Dies ist insbesondere für Schichten relevant, die über mehrere Datenpunkte operieren. Es kann gezeigt werden, dass globaler Durchschnitt und Max-Pooling entlang Dimension N diese Eigenschaft erfüllen. Anstelle einer einzelnen Pooling-Schicht, die globale Informationen integriert, kann das neuronale Netzwerk 42 eine Instanznormalisierung nach jeder Schicht durchführen: ( I ( h ) ) i = h i μ ( h ) σ 2 ( h ) + ε ,
    Figure DE102019104516A1_0015
  • wobei
    hi der Merkmalsvektor entsprechend Punkt i ist und der Mittelwert µ(h) sowie die Varianz σ2(h) entlang Dimension N berechnet werden: μ ( h ) = 1 N i = 1 N h i , σ 2 ( h ) = 1 N i = 1 N ( h i μ ( h ) ) 2 .
    Figure DE102019104516A1_0016
  • Diese Operation integriert die Verteilung von globalen Informationen über Punkte und Normalisierung in eine einzelne Prozedur. Da sich Instanznormalisierung vollständig aus permutationsinvarianten Operationen auf Punktmerkmalen zusammensetzen kann, ist das gesamte Netzwerk 42 invariant gegenüber Permutationen der Eingabepunkte. Ein solcher Ansatz verbessert die Stabilität während des Trainings, insbesondere in Systemen mit starkem Rauschen. Für Daten mit niedrigen Signal-Rausch-Verhältnissen kann es vorteilhaft sein, mehrere Operationen im Netzwerk zu haben, die Daten global integrieren (z. B. im Gegensatz zur PointNet-Architektur, bei der ein einzelner globaler Integrationsschritt in der Form einer Pooling-Schicht vorgeschlagen wird).
  • Der lernbasierte Schätzer 28 kann in Logikanweisungen, auslegbarer Logik, Hardwarelogik mit fester Funktionalität usw. oder einer Kombination daraus umgesetzt sein. In einem Beispiel sind der Präprozessor 34, die Extraktionsfunktion 38 und der Restanalysator 40 modellspezifisch und gemäß der bestimmten Anwendung, die eingesetzt wird, in auslegbarer Logik programmiert, die SVD-Einheit 36 ist in Hardwarelogik mit fester Funktionalität umgesetzt, und das neuronale Netzwerk 42 ist in Logikanweisungen (z. B. über PYTORCH) umgesetzt. Das neuronale Netzwerk der lernbasierten Initialisierungsfunktion 22 (1) kann auch in Logikanweisungen umgesetzt sein. Andere Auslegungen können verwendet werden.
  • 3 zeigt ein tiefes neuronales Netzwerk 44, das einfach für das bereits erörterte neuronale Netzwerk 42 (2) eingesetzt werden kann. Das dargestellte tiefe neuronale Netzwerk 44 umfasst die wiederholte Anwendung einer linearen Schicht, die für jeden Datenpunkt unabhängig wirkt. Jeder linearen Schicht folgt eine Leaky-ReLU (Rectifier Linear Unit) und ein Instanznormalisierer 46, der globale Kommunikation zwischen Punkten ermöglicht. Um streng positive Gewichte zu produzieren, kann dem Fehlerschätzer eine Softplus-Aktivierung (d. h. eine nicht-negative glatte Annäherung an den Rectifier für eine Kleinste-Quadrate-Schätzung) folgen.
  • 4 zeigt ein Verfahren 50 zum Betreiben einer Computervisionseinrichtung. Das Verfahren 50 kann in einem oder mehreren Modulen als eine Menge von Logikanweisungen umgesetzt sein, gespeichert in einem maschinen- oder computerlesbaren Speichermedium, wie etwa einem Direktzugriffsspeicher (RAM, Random Access Memory), einem Nur-Lese-Speicher (ROM, Read Only Memory), einem programmierbaren ROM (PROM), Firmware, einem Flash-Speicher usw., in auslegbarer Logik, wie etwa, beispielsweise, programmierbaren Logik-Arrays (PLAs), feldprogrammierbaren Gate-Arrays (FPGAs), komplexen programmierbaren Logikvorrichtungen (CPLDs, Complex Programmable Logic Devices), in Hardwarelogik mit fester Funktionalität unter Verwendung von Schaltungstechnologie, wie etwa, beispielsweise, anwendungsspezifischen integrierten Schaltungen (ASIC, Application Specific Integrated Circuit), einem sich ergänzenden Metall-Oxid-Halbleiter (CMOS, Complementary Metal Oxide Semiconductor) oder TTL-Technologie (Transistor-Transistor-Logik) oder einer beliebigen Kombination daraus.
  • Beispielsweise kann Computerprogrammcode zum Durchführen der im Verfahren 50 gezeigten Operationen in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben sein, einschließlich einer objektorientierten Programmiersprache, wie etwa JAVA, SMALLTALK, C++ oder ähnliche, und herkömmlicher prozeduraler Programmiersprachen, wie etwa der Programmiersprache C oder ähnlicher Programmiersprachen. Zusätzlich können Logikanweisungen Assemblerbefehle, Befehlssatzarchitekturbefehle (ISA-Befehle, Instruction Set Architecture), Maschinenbefehle, maschinenabhängige Befehle, Mikrocode, Zustandsfestlegungsdaten, Auslegungsdaten für integrierte Schaltungsanordnungen, Zustandsinformationen, die elektronische Schaltungsanordnungen und/oder andere strukturelle Komponenten, die der Hardware eigen sind (z. B. Host-Prozessor, Zentraleinheit (CPU, Central Processing Unit), Mikrocontroller usw.), personalisieren, umfassen.
  • Der dargestellte Verarbeitungsblock 52 erlaubt das Erzeugen, durch ein erstes neuronales Netzwerk, einer anfänglichen Menge von Modellgewichten basierend auf Eingabedaten. Zusätzlich erzeugt Block 54 iterativ, durch ein zweites neuronales Netzwerk, eine aktualisierte Menge von Modellgewichten basierend auf Restdaten in Verbindung mit der anfänglichen Menge von Modellgewichten und den Eingabedaten. Insbesondere sei darauf hingewiesen, dass das zweite neuronale Netzwerk anwendungsspezifische Regelmäßigkeiten in den Eingabedaten, wie etwa Fahrzeug- und/oder Roboterbewegungsmuster in Verbindung mit den Eingabedaten, erlernen kann. Wenn beispielsweise Fahrzeugbewegung hauptsächlich Vorwärtsbewegung anstelle von Seitwärts- oder Rückwärtsbewegung ist, kann das zweite neuronale Netzwerk das Auftreten von Modellgewichten entsprechend der Seitwärts- oder Rückwärtsbewegung mit der Zeit allmählich reduzieren. Als ein Ergebnis können genauere und robustere Schätzungen von Epipolargeometrie (z. B. intrinsische projektive Geometrie zwischen zwei Ansichten) erreicht werden. Block 54 kann beim iterativen Erzeugen der aktualisierten Menge von Modellgewichten auch Nebeninformationen berücksichtigen, wie etwa, beispielsweise, Linienanpassungseinschränkungen (z. B. zulässige Winkel) und/oder Datenkorrespondenzwahrscheinlichkeiten (z. B. Übereinstimmungsbewertungen). Darüber hinaus kann das zweite neuronale Netzwerk die aktualisierte Menge von Modellgewichten für eine vorbestimmte Anzahl von Iterationen erzeugen.
  • Ein geometrisches Modell der Eingabedaten kann, basierend auf der aktualisierten Menge von Modellgewichten, bei Block 56 ausgegeben werden. Da zufälliges Abtasten nicht durchgeführt wird, können das erste neuronale Netzwerk und das zweite neuronale Netzwerk die Abhängigkeit des geometrischen Modells von der Anzahl von Datenpunkten in den Eingabedaten reduzieren. Wie noch ausführlicher erörtert wird, kann das geometrische Modell ein Hyperebenenanpassungsmodell, ein Fundamentalmatrixabschätzungsmodell, ein Homografieabschätzungsmodell usw. oder eine beliebige Kombination daraus umfassen. Im Allgemeinen kann das Hyperebenenanpassungsmodell eine Form in einem geometrischen Unterraum sein (z. B. eine Linie in einer Ebene, eine Ebene in einem 3D-Volumen usw.), die die Eingabedaten an ein akzeptierbares Niveau von Gewissheit anpasst. Die Fundamentalmatrixabschätzung kann eine Matrix sein, die entsprechende Punkte in Stereobildern in Beziehung setzt. Zusätzlich kann das Homografieabschätzungsmodell planare Flächen in Stereobildern aufeinander abbilden.
  • Der dargestellte Block 58 lokalisiert mehrere Kameras in einer 3D-Umgebung basierend auf dem geometrischen Modell. Wenn beispielsweise die Kameras an einem autonomen Fahrzeug montierte stereoskopische Kameras sind und das geometrische Modell eine Fundamentalmatrix ist, die entsprechende Punkte (z. B. den linken Scheinwerfer eines ankommenden Fahrzeugs) in Stereobildern in Beziehung setzt, kann Block 58 die Fundamentalmatrix verwenden, um die relative Position der Kameras, wie auch des Fahrzeugs, in der umgebenden Umgebung zu bestimmen. In einem anderen Beispiel ist das geometrische Modell ein Homografieabschätzungsmodell, das das Ausführen einer AR-Anwendung (Augmented Reality, erweiterte Realität) auf einem Smartphone ermöglicht, um zu bestimmen, wo sich in einer Szene eine physische Wand befindet, sodass virtueller Inhalt zu einer Reproduktion der Wand hinzugefügt werden kann. Die Kameralokalisierungsinformationen können verwendet werden, um andere Operationen auf höherer Ebene durchzuführen, wie etwa, beispielsweise, automatisierte Navigation, Poseninformationen, Szenenrekonstruktion (z. B. als die erste Stufe in einer Rekonstruktionspipeline) usw.
  • Daher kann die vollständige Architektur einen Eingabegewichtsschätzer winit, wiederholte Anwendung des lernbasierten Schätzers und eine geometrische Modellabschätzung zu den finalen Gewichten umfassen. Beispielsweise können fünf aufeinander folgende Anwendungen (z. B. eine vorbestimmte Anzahl von Iterationen) des lernbasierten Schätzers eine geeignete Balance zwischen Genauigkeit und Berechnungskomplexität erzielen. Die Summe der Verluste aller Zwischenstufen kann als der Trainingsverlust angesehen werden. Ein Überblick über einen vollständigen Vorwärtsschritt ist als Pseudocode in der nachfolgenden Tabelle I gezeigt.
  • Vorwärtsschritt
  • Tabelle I
    1: Konstruieren A(P)
    2: w0 ← softplus(winit(P,S))
    3: for j=0 to D do
    4: X ← diag (wj)A
    5: U, Σ, V ←|svd(X)
    6: Extrahieren von xj+1 = vd' aus V
    7: Berechnen Rest zum Konstruieren von r aus g(xj+1)
    8: wj+1 ← softplus (wj + witer(P,S,r,wj))
    9: end for
    10: return g(xD)
  • wobei Zeile „2:“ die anfänglichen Gewichte bereitstellt und Zeile „8:“ die Lösung für Ausdruck (8) bereitstellt. Das Netzwerk kann, beispielsweise, im PYTORCH-Tool umgesetzt sein. In den nachfolgend erörterten Anwendungen kann stochastische Optimierung mit einer anfänglichen Lernrate von 10-4 und einer Batch-Größe von sechzehn verwendet werden. Die Lernrate kann alle zehn Epochen um einen Faktor von 0,8 verringert werden, wobei das Training insgesamt 200 Epochen lang durchgeführt wird.
  • Modellanpassungsprobleme
  • Die Quantitäten für drei unterschiedliche Probleminstanzen - allgemeine Hyperebenenanpassung, Fundamentalmatrixabschätzung und Homografieanpassung - können angegeben werden. Um einen vollständigen Vorwärtsschritt für eine bestimmte Anwendung anzugeben, können die folgenden problemabhängigen Komponenten identifiziert werden: Der Vorverarbeitungsschritt A(P), die Modellextraktionsfunktion g(x) und der Rest r(pi, x). Es ist anzumerken, dass diese Quantitäten den allgemeinen Metaalgorithmus auf die spezielle Probleminstanz spezialisieren können. Während die hier beschriebene Darstellung auf Aufgaben zugeschnitten ist, die homogene Kleinste-Quadrate-Probleme beinhalten, können andere Typen von Schätzern einfach integriert werden, solange sie differenzierbar sind. Zusätzlich zu den obigen Funktionen kann ein Trainingsverlust angegeben werden, um die Pipeline trainieren zu können. Dieser Verlust kann aus der Restfunktion r abgeleitet werden.
  • Hyperebenenanpassung
  • Zum Definieren von Trainingsverlust können 1000 Nicht-Ausreißerpunkte von einem Ground-Truth-Modell abgetastet werden, wobei der Punkt-zu-Ebene-Abstand bezüglich dieser Punkte als Verlust verwendet wird: L = 1 N g t i = 1 N g t r ( p i g t , g ( x j ) )
    Figure DE102019104516A1_0017
  • Da das Netzwerk interpretierbare Zwischendarstellungen zulässt, kann ein Verlust an alle D Zwischenergebnisse angehängt werden.
  • Fundamentalmatrixabschätzung. Robuste Fundamentalmatrixabschätzung kann basierend auf einem normalisierten 8-Punkt-Algorithmus durchgeführt werden. Alle Koordinaten können auf das Intervall [-1, 1]2 neu skaliert werden, und die Vorverarbeitungsfunktion kann definiert werden als: ( A ( P ) ) i = v e c ( T p ^ i ( T ' p ^ ' i ) T )
    Figure DE102019104516A1_0018
  • wobei pi = ((pi)1, (pi)2, 1)T und p̂'i = ((pi)3, (pi)4, 1)T homogene Koordinaten der Korrespondenzen im linken bzw. rechten Bild sind und T, Tp Normalisierungsmatrizen sind, die die Daten zentrieren und skalieren.
  • Ferner haben wir g ( x ) = T T ( x ) 3 × 3 T ' = F ,
    Figure DE102019104516A1_0019
  • wobei F die Fundamentalmatrix bezeichnet. Diese Prozedur erzwingt möglicherweise nicht explizit einen Rangdefekt von F im Vorwärtsschritt, aber experimentelle Ergebnisse deuten darauf hin, dass das Netzwerk lernt, Rang-2-Matrizen (d. h. Matrizen mit einer maximalen Anzahl von zwei linear unabhängigen Spaltenvektoren oder Zeilenvektoren) konsistent zu schätzen. Der symmetrische Epipolarabstand kann als die Restfunktion verwendet werden: r ( p i , F ) = | p ^ j T F p ^ ' i | ( 1 F T p ^ i 2 + 1 F p ^ ' i 2 )
    Figure DE102019104516A1_0020
  • Fundamentalmatrizen lassen sich aufgrund ihrer Struktur möglicherweise nicht einfach direkt vergleichen. Entsprechend vergleicht die hier beschriebene Technologie die Fundamentalmatrizen basierend darauf, wie sie auf einer gegebenen Menge von Korrespondenzen operieren. Dazu werden virtuelle Paare von Korrespondenzen erzeugt, wobei die virtuellen Paare von Korrespondenzen Nicht-Ausreißer für die Ground-Truth-Epipolargeometrie sind. Insbesondere kann ein Gitter von Punkten in beiden Bildern erzeugt werden, wobei die Punkte erneut auf die Ground-Truth-Epipolarlinien projiziert werden. Das Ergebnis können virtuelle, rauschfreie Nicht-Ausreißer-Korrespondenzen p i g t
    Figure DE102019104516A1_0021
    sein, die verwendet werden können, um einen geometrisch bedeutungsvollen Verlust zu definieren. Der Schritt kann als Abtasten der Ground-Truth-Epipolargeometrie im Bildraum verstanden werden. Der Trainingsverlust kann erneut durch einen M-Schätzer gegeben sein.
  • Homografieabschätzung. Die Basis für die Homografieabschätzung kann durch die direkte lineare Transformation (DLT) gebildet werden. Insbesondere können die folgenden Ausdrücke verwendet werden: ( A ( P ) ) 2 i 1 : 2 i = ( p ^ ' i T 0 ( p ^ ' i ) 1 p ^ ' i T 0 p ^ ' i T ( p ^ ' i ) 2 p ^ ' i T )
    Figure DE102019104516A1_0022
  • und g ( x ) = ( T ' ) 1 ( x ) 3 × 3 T = H
    Figure DE102019104516A1_0023
  • Der symmetrische Übertragungsfehler kann verwendet werden, um Reste und den Verlust zu berechnen: r ( p i , H ) = ( H p ^ i ) 1 : 2 ( H p ^ i ) 3 p ' i + ( H 1 p ^ ' i ) 1 : 2 ( H 1 p ^ ' i ) 3 p i .
    Figure DE102019104516A1_0024
  • Ergebnisse
  • Experimente können auf immer schwieriger werdenden Problemen durchgeführt werden: Hyperebenenanpassung auf synthetischen Beispielen, Fundamentalmatrixabschätzung in einem automobilen Szenario und allgemeine Homografieanpassung.
  • Hyperebenenanpassung. Hyperebenenanpassung kann als ein kanonisches geometrisches Modellanpassungsproblem verwendet werden, mit der Durchführung von gesteuerten Experimenten, die unterschiedliche Aspekte des vorgelegten Ansatzes untersuchen.
  • Sowohl für Training als auch für Tests kann eine zufällige Datenmenge online erzeugt werden. Erstens können d Punkte gleichförmig zufällig in [0, 1]d abgetastet werden, und eine Hyperebene kann an diese Punkte angepasst werden, die als das Ground-Truth-Modell dient. Bei gegebenem Ground-Truth-Modell können die Nicht-Ausreißerpunkte durch zufälliges Abtasten von Punkten und Projizieren derselben auf die Hyperebene erzeugt werden. Gaußsches Rauschen kann mit σ = 0,005 in Normalenrichtung zu den Nicht-Ausreißern hinzugefügt werden. Zum Erzeugen von Ausreißern kann Abtasten gleichförmig zufällig in [0, 1]d durchgeführt werden. Während des Trainings können Instanzen, die insgesamt 1000 Punkte umfassen, mit zufälligen Ausreißerverhältnissen zwischen 0 und 90 % erzeugt werden (daher ist das Modell nicht auf ein bestimmtes Ausreißerverhältnis spezialisiert). Eine einzelne Epoche kann 640 Instanzen umfassen.
  • 5A zeigt einen vergleichenden Plot 60, in dem das Verhalten bezüglich der Ausreißerrate für unterschiedliche Dimensionalitäten d des Anpassungsproblems gezeigt wird. Die hier beschriebene Technologie wird mit RANSAC (gestrichelt) verglichen, was 1000 Iterationen durchlaufen hat (grob entsprechend einem Bruchpunkt von 50 % Ausreißern für eine Dimensionalität d = 8), und einer Nicht-Ausreißerschwelle von 0,005. Die Genauigkeit wird unter Verwendung des Punkt-zu-Ebene-Abstands zwischen dem Modell und den bekannten rauschfreien Ground-Truth-Punkten evaluiert. Es kann gesehen werden, dass die hier beschriebene Technologie (solide) für höhere Ausreißerverhältnisse noch kontrollierter abbaut, da sich die Dimensionalität des Problems erhöht. Es ist anzumerken, dass, um bei RANSAC eine ähnliche Genauigkeit zu erreichen, beinahe eine Größenordnung mehr Abtastiterationen für d = 8 notwendig wären, und etwa 50 Mal mehr Iterationen für d = 10.
  • Weiterhin Bezug nehmend auf 5A und 5C zeigt eine Menge von Plots 62 (62a-62d) Genauigkeit an unterschiedlichen Pipelinestufen. Die hier beschriebene Technologie ist in der Lage, die Regelmäßigkeit der Daten auszunutzen, die für dieses Beispiel durch höhere Dichteregionen für Nicht-Ausreißer gegeben sind. Der Plot 60 zeigt auch das Ergebnis einer PointNet-Architektur (gepunktet), die trainiert wurde, um direkt auf die Ebenenparameter zurückzugehen. Die PointNet-Architektur hat sich als außerordentlich schwierig zu trainieren erwiesen, wenn die Dimensionalität des Problems höher wurde. Entsprechend kann Einführen von geometrischen Einschränkungen hilfreich beim Bewältigen von Modellanpassungsproblemen mit tiefen Netzwerken sein.
  • Die Menge von Plots 62 zeigt Gewichte an unterschiedlichen Stufen in der Pipeline für d = 2 und eine Ausreißerrate von 80 %. Von oben links im Uhrzeigersinn: Plot 62a für Gewichte w0, Plot 62b für Gewichte w1, Plot 62c für Gewichte w3 und Plot 62d für Gewichte w4 (mit entsprechenden Schätzungen und Ground-Truth gezeigt). Die anfänglichen Gewichte liegen bereits rund um die wahre Lösung und ergeben eine annähernd korrekte Schätzung. Beim Fortschreiten durch die Stufen werden die Gewichte immer weiter rund um die Nicht-Ausreißerpunkte konzentriert, was zu immer genaueren Schätzungen führt.
  • Jetzt Bezug nehmend auf 5B wurde Robustheit gegenüber nichtgaußschem Nicht-Ausreißerrauschen weiter untersucht. Die Datenpunkte wurden auf ein Gitter gesetzt, das auf eine Zellengröße von 1 100
    Figure DE102019104516A1_0025
    des Gesamtausmaßes der Punkte aufgelöst wurde, und trainieren ein Modell für d = 2. Die Testmenge wird analog erzeugt. Ein vergleichender Plot 64 zeigt, dass die hier beschriebene Technologie im Vergleich zu RANSAC unabhängig von der Nicht-Ausreißerrauschverteilung genauere Ergebnisse bringt.
  • Fundamentalmatrixabschätzung. Die Odometriedatenmenge von KITTI (Karlsruhe Institute of Technology and Toyota Technological Institute) kann verwendet werden, um die hier beschriebene Technologie für Fundamentalmatrixabschätzung zu evaluieren. Die Datenmenge besteht aus zweiundzwanzig verschiedenen Fahrsequenzen, von denen elf eine öffentlich verfügbare Ground-Truth-Odometrie haben. Diese Datenmenge kann gut für tiefe geometrische Modellanpassung geeignet sein, da sie Regelmäßigkeit zeigt: die Epipolargeometrien von aufeinander folgenden Rahmen werden typischerweise von dominanter Vorwärtsbewegung beeinflusst.
  • Jetzt Bezug nehmend auf 6 zeigt ein vergleichender Plot 66 Ergebnisse, die aus der KITTI-Odometrie-Datenmenge erhalten wurden. Insbesondere kann eine skaleninvariante Merkmalstransformation (SIFT, Scale-Invariant Feature Transform) verwendet werden, um mutmaßliche Korrespondenzen aus aufeinander folgenden Rahmen in der Datenmenge zu extrahieren. Zur Erleichterung eines effizienten Batch-Trainings kann die Anzahl an Schlüsselpunkten pro Bildpaar auf 1000 beschränkt werden, durch zufälliges Abtasten einer Menge von Schlüsselpunkten, wenn die detektierte Anzahl größer ist. Zufällige Schlüsselpunkte können repliziert werden, wenn die Anzahl an detektierten Schlüsselpunkten kleiner als 1000 ist. Das Netzwerk kann auf zwei unterschiedlichen Datenmengen trainiert werden. Die erste Datenmenge ist Sequenzen 00 bis 05, die bekannte Ground-Truth-Posen umfassen (z. B. „Lernbasierte GT“). Um die praktische Anwendbarkeit von tiefer geometrischer Modellanpassung zu zeigen, kann die Pipeline zusätzlich auf Sequenzen 11 bis 22 trainiert werden, die keine öffentlich verfügbaren Ground-Truth-Posen haben. Eine SfM-Pipeline (Structure-from-Motion) kann auf den Sequenzen ausgeführt werden, gefolgt von der Extraktion von Kameras, die als Proxy-Ground-Truth dienen (z. B. „Lernbasiertes SfM“).
  • Sequenzen 06 bis 10, die Ground-Truth-Posen umfassen, können für Tests verwendet werden. Ein vergleichender Plot 66 zeigt Statistiken des quadratischen Sampson-Fehlers bezüglich Nicht-Ausreißerkorrespondenzen (z. B. Korrespondenzen, die innerhalb eines 0,1-px-Fehlers zur Ground-Truth-Epipolargeometrie liegen). Jede Box zeigt obere und untere Quartile. Antennen zeigen das 1,5-fache des Interquartilsabstands. Die hier beschriebene lernbasierte Technologie kann mit der OpenCV-Umsetzung von RANSAC in Kombination mit dem Acht-Punkt-Algorithmus und mit dem universellen RANSAC-Ansatz (USAC) in Kombination mit einem Sieben-Punkt-Algorithmus verglichen werden. Es wurden auch Versuche unternommen, ein naives tiefes Netzwerk zu trainieren, um direkt auf die Koeffizienten einer Fundamentalmatrix zurückzuführen. Dieser Ansatz schlug fehl, da das Netzwerk nicht gelernt hat, Rangdefekt der Schätzung zu erzwingen.
  • Ergebnisse deuten darauf hin, dass der Fehler des vorgeschlagenen Ansatzes sowohl am nächsten bei Null als auch am wenigsten gespreizt ist. Daher ist die hier beschriebene Technologie in der Lage, ein Modell zu erlernen, das bei allen Fehlerstatistiken deutlich genauer ist. In einfachen Worten ist der erlernte Schätzer sowohl genauer als auch robuster gegenüber Ausreißern. Darüber hinaus ergibt Training aus SfM-Proxy-Ground-Truth ein Modell, das nur geringfügig weniger genau als Training aus exakten Ground-Truth-Daten ist, was die allgemeine Anwendbarkeit des hier beschriebenen lernbasierten Ansatzes unterstreicht. Ferner zeigt die lernbasierte Technologie praktische Durchgangszeiten von durchschnittlich 25 ms pro Instanz. Das Modell kann auch auf Proxy-Ground-Truth unter Verwendung anderer Datenmengen trainiert werden.
  • Homografieabschätzung. Ein Evaluierungsprotokoll basierend auf der MS-COCO-Datenmenge (MICROSOFT-Common Objects in Context) kann eingehalten werden. Für jedes Bild können zufällige Felder der Größe 256x256 Pixel extrahiert werden. Eine Ground-Truth-Homografie kann durch gleichförmiges zufälliges Stören der Ecken des Referenzfeldes um bis zu 64 Pixel erzeugt werden. Die inverse Homografie kann verwendet werden, um das Referenzbild zu verzerren, und ein zweites (verzerrtes) Feld kann von der gleichen Stelle extrahiert werden.
  • Die Erzeugung von 10000 Trainingspaaren kann dann durchgeführt werden, gefolgt von der Verwendung von ORB-Merkmalen (Oriented Features from Accelerated Segment Test/FAST und Rotated Binary Robust Independent Elementary Features/BRIEF), dem Hamming-Abstand und einem Verhältnistest zum Extrahieren von mutmaßlichen Übereinstimmungen. Paare mit weniger als 100 Übereinstimmungen können verworfen werden, wobei insgesamt 500 Punkte (wie im vorherigen Abschnitt beschrieben) verwendet werden, um Batching zu ermöglichen. Übereinstimmungsbewertungen können als Nebeninformationen verwendet werden. Während des Trainings können sich extreme Homografien ergeben. Entsprechend können die maximalen Abstände in Ausdruck (16) auf das Intervall [-64, 64] beschränkt werden.
  • Jetzt Bezug nehmend auf 7 kann ein Vergleich mit der hier beschriebenen Technologie („lernbasiert“) und einem tiefen Netzwerk für Homografieabschätzung („HomographyNet“), einem OpenCV-basierten Schätzer, der aus RANSAC besteht, gefolgt von einer nicht-linearen Verfeinerungsstufe („RANSAC-NL“) und USAC durchgeführt werden. Zum Trainieren des Basisnetzwerks kann ein tiefes Bildhomografieabschätzprotokoll eingehalten werden. Die Testmenge besteht aus 5000 Bildern aus der MS-COCO-Testmenge, die in der gleichen Weise erzeugt wurden wie die Trainingsmenge.
  • Ein vergleichender Plot 68 zeigt Statistiken des durchschnittlichen Eckenfehlers in den geschätzten Homografien. Der vorliegende Ansatz übertrifft sowohl HomographyNet- als auch SAC-Baselines. Es ist anzumerken, dass das Ergebnis von HomograpyNet eine deutlich höhere Fehlerspreizung hat als alle anderen Ansätze. Dies ist ganz klar bis jetzt die schwierigste Datenmenge, da es fast keine Regelmäßigkeit in den Daten gibt. Nichtsdestotrotz ist der vorgeschlagene Ansatz in der Lage, hilfreiche Informationen aus der gemeinsamen Position von Punkten und den Nebeninformationen zu extrahieren, was zu genaueren Ergebnissen als mit Lösungen vom RANSAC-Typ führt, trotz der Tatsache, dass beide auf der gleichen Menge von mutmaßlichen Übereinstimmungen operieren.
  • Jetzt Bezug nehmend auf 8 ist ein Computervisionssystem 70 gezeigt. Das System 70 kann allgemein Teil einer elektronischen Vorrichtung/Plattform mit Datenverarbeitungsfunktionalität (z. B. persönlicher digitaler Assistent/PDA, Notebookcomputer, Tabletcomputer, Convertible-Tablet, Server), Kommunikationsfunktionalität (z. B. Smartphone), Bilderfassungsfunktionalität (z. B. Kamera, Camcorder), Medienwiedergabefunktionalität (z. B. Smart Television/TV), Tragbarkeitsfunktionalität (z. B. Uhr, Brille, Kopfbekleidung, Fußbekleidung, Schmuck), Fahrzeugfunktionalität (z. B. Pkw, Lkw, Motorrad), Roboterfunktionalität (z. B. autonomer Roboter) usw. oder einer Kombination daraus sein. Im dargestellten Beispiel umfasst das System 70 einen oder mehrere Prozessoren 72 (z. B. Hostprozessor(en), Zentraleinheit(en)/CPU(s)) mit einem oder mehreren Kernen 74 und einer integrierten Speichersteuerung (IMC, Integrated Memory Controller) 76, die mit einem Systemspeicher 78 gekoppelt ist.
  • Das dargestellte System 70 umfasst auch ein Eingabe/Ausgabe-Modul (E/A) 80, das zusammen mit dem bzw. den Prozessor(en) 72 auf einem Halbleiter-Die 82 als ein System-on-Chip (SoC) umgesetzt ist, wobei das E/A-Modul 80 als eine Hostvorrichtung fungiert und mit, beispielsweise, einer Anzeige 84 (z. B. Touchscreen, Flüssigkristallanzeige (LCD, Liquid Crystal Display), Leuchtdiodenanzeige (LED, Light Emitting Diode)), einer Netzwerksteuerung 86 (z. B. drahtgebunden und/oder drahtlos), mehreren Kameras 88 (88a, 88b) zum Erzeugen von Eingabedaten (z. B. Bilddaten) und Massenspeicher 90 (z. B. Festplatte (HDD, Hard Disk Drive), optische Platte, Festkörperlaufwerk (SSD, Solid State Drive), Flash-Speicher) kommunizieren kann. Der bzw. die Prozessor(en) 72 können vom Systemspeicher 78 und/oder dem Massenspeicher 90 abgerufene Befehle 92 ausführen, um einen oder mehrere Aspekte des Verfahrens 50 (4) durchzuführen.
  • Daher kann Ausführung der Befehle 92 das Computervisionssystem 70 veranlassen, durch ein erstes neuronales Netzwerk, eine anfängliche Menge von Modellgewichten basierend auf den Eingabedaten von den Kameras 88 zu erzeugen, iterativ, durch ein zweites neuronales Netzwerk, eine aktualisierte Menge von Modellgewichten basierend auf Restdaten in Verbindung mit der anfänglichen Menge von Modellgewichten und den Eingabedaten zu erzeugen und ein geometrisches Modell der Eingabedaten basierend auf der aktualisierten Menge von Modellgewichten auszugeben. Die Eingabedaten, die anfängliche Menge von Modellgewichten und/oder die aktualisierte Menge von Modellgewichten können in einem oder mehreren aus dem Systemspeicher 78 oder dem Massenspeicher 90 gespeichert werden. In einem Beispiel veranlasst Ausführung der Befehle 92 das Computervisionssystem 70 auch, die Kameras 88 basierend auf dem geometrischen Modell in einer 3D-Umgebung zu lokalisieren. Tatsächlich kann das zweite neuronale Netzwerk eine oder mehrere Datenregelmäßigkeiten, wie etwa Bewegungsmuster (z. B. dominante Vorwärtsbewegung), im Zusammenhang mit den Eingabedaten erlernen.
  • Das geometrische Modell kann ein Hyperebenenanpassungsmodell, ein Fundamentalmatrixabschätzungsmodell, ein Homografieabschätzungsmodell usw. oder eine beliebige Kombination daraus sein. Das erste neuronale Netzwerk und das zweite neuronale Netzwerk können die Abhängigkeit des geometrischen Modells von der Anzahl von Datenpunkten in den Eingabedaten reduzieren. Zusätzlich kann die aktualisierte Menge von Modellgewichten für eine vorbestimmte Anzahl von Iterationen erzeugt werden und ferner auf Nebeninformationen basieren, wie etwa Linienanpassungseinschränkungen, Übereinstimmungsbewertungen und so weiter.
  • 9 zeigt eine Halbleitergehäuseeinrichtung 100. Die Einrichtung 100 kann einfach für den bereits erörterten Halbleiter-Die 82 (8) eingesetzt werden. Die dargestellte Einrichtung 100 umfasst ein oder mehrere Substrate 102 (z. B. Silizium, Saphir, Galliumarsenid) und Logik 104 (z. B. Transistor-Array und andere integrierte Schaltungskomponenten (IC-Komponenten)), gekoppelt mit dem bzw. den Substraten 102. Die Logik 104 kann zumindest teilweise in auslegbarer Logik oder in Hardwarelogik mit fester Funktionalität umgesetzt sein. Die dargestellte Logik 104 umfasst ein erstes neuronales Netzwerk 106 und ein zweites neuronales Netzwerk 108. Die Logik 104 kann allgemein einen oder mehrere Aspekte des Verfahrens 50 (4) umsetzen. Entsprechend kann die Logik 104, durch das erste neuronale Netzwerk 106, eine anfängliche Menge von Modellgewichten basierend auf den Eingabedaten erzeugen, iterativ, durch das zweite neuronale Netzwerk 108, eine aktualisierte Menge von Modellgewichten basierend auf Restdaten in Verbindung mit der anfänglichen Menge von Modellgewichten und den Eingabedaten erzeugen und ein geometrisches Modell der Eingabedaten basierend auf der aktualisierten Menge von Modellgewichten ausgeben. Zusätzlich kann die Logik 104 mehrere Kameras in einer dreidimensionalen Umgebung basierend auf dem geometrischen Modell lokalisieren. Tatsächlich kann das zweite neuronale Netzwerk 108 eine oder mehrere Datenregelmäßigkeiten, wie etwa Bewegungsmuster (z. B. dominante Vorwärtsbewegung), im Zusammenhang mit den Eingabedaten erlernen.
  • Wie bereits angemerkt, kann das geometrische Modell ein Hyperebenenanpassungsmodell, ein Fundamentalmatrixabschätzungsmodell, ein Homografieabschätzungsmodell usw. oder eine beliebige Kombination daraus sein. Das erste neuronale Netzwerk 106 und das zweite neuronale Netzwerk 108 können die Abhängigkeit des geometrischen Modells von der Anzahl von Datenpunkten in den Eingabedaten reduzieren. Zusätzlich kann die aktualisierte Menge von Modellgewichten für eine vorbestimmte Anzahl von Iterationen erzeugt werden und ferner auf Nebeninformationen basieren, wie etwa Linienanpassungseinschränkungen und/oder Übereinstimmungsbewertungen.
  • In einem Beispiel umfasst die Logik 104 Transistorkanalregionen, die innerhalb des bzw. der Substrate 102 positioniert (z. B. eingebettet) sind. Daher ist die Schnittstelle zwischen der Logik 104 und dem bzw. den Substraten 102 möglicherweise kein abrupter Übergang. Die Logik 104 kann auch als eine epitaktische Schicht umfassend angesehen werden, die auf einem anfänglichen Wafer des bzw. der Substrate 102 aufwächst.
  • 10 stellt einen Prozessorkern 200 gemäß einer Ausführungsform dar. Der Prozessorkern 200 kann der Kern für einen beliebigen Typ von Prozessor sein, wie etwa einen Mikroprozessor, einen eingebetteten Prozessor, einen Digitalsignal-Prozessor (DSP), einen Netzwerkprozessor oder eine andere Vorrichtung zum Ausführen von Code. Obwohl nur ein Prozessorkern 200 in 10 dargestellt ist, kann ein Verarbeitungselement alternativ mehr als einen der in 10 dargestellten Prozessorkerne 200 umfassen. Der Prozessorkern 200 kann ein Einzelthread-Kern sein, oder der Prozessorkern 200 kann, für zumindest eine Ausführungsform, ein Multithread-Kern dahingehend sein, dass er mehr als einen Hardwarethread-Kontext (oder „logischen Prozessor“) pro Kern umfassen kann.
  • 10 stellt auch einen Speicher 270 dar, der mit dem Prozessorkern 200 gekoppelt ist. Der Speicher 270 kann ein beliebiger aus einer breiten Vielfalt von Speichern sein (einschließlich verschiedener Schichten einer Speicherhierarchie), wie sie Fachleuten bekannt oder anderweitig für diese verfügbar sind. Der Speicher 270 kann einen oder mehrere durch den Prozessorkern 200 auszuführende Codebefehle 213 umfassen, wobei der Code 213 das bereits erörterte Verfahren 50 (4) umsetzen kann. Der Prozessorkern 200 folgt einer Programmsequenz von Befehlen, die durch den Code 213 angezeigt wird. Jeder Befehl kann in einen Frontendteil 210 eintreten und durch einen oder mehrere Decodierer 220 verarbeitet werden. Der Decodierer 220 kann als seine Ausgabe eine Mikrooperation, wie etwa eine Mikrooperation mit fester Breiter in einem vordefinierten Format erzeugen oder kann andere Befehle, Mikrobefehle oder Steuersignale erzeugen, die den ursprünglichen Codebefehl widerspiegeln. Der dargestellte Frontendteil 210 umfasst auch eine Registerumbenennungslogik 225 und Ablaufsteuerungslogik 230, die allgemein Ressourcen zuordnen und die Operation entsprechend dem Umwandlungsbefehl zur Ausführung einreihen.
  • Der Prozessorkern 200 ist als eine Ausführungslogik 250 umfassend gezeigt, die eine Menge von Ausführungseinheiten 255-1 bis 255-N umfasst. Einige Ausführungsformen können eine Anzahl von Ausführungseinheiten umfassen, die für spezielle Funktionen oder Mengen von Funktionen bestimmt sind. Andere Ausführungsformen umfassen möglicherweise nur eine Ausführungseinheit oder eine Ausführungseinheit, die eine bestimmte Funktion durchführen kann. Die dargestellte Ausführungslogik 250 führt die durch die Codebefehle angegebenen Operationen durch.
  • Nach Abschluss der Ausführung der durch die Codebefehle angegebenen Operationen zieht die Backendlogik 260 die Befehle des Codes 213 zurück. In einer Ausführungsform ermöglicht der Prozessorkern 200 reihenfolgenveränderte (Out of order) Ausführung, erfordert aber einen reihenfolgentreuen (In order) Rückzug der Befehle. Rückzugslogik 265 kann eine Vielzahl von Formen annehmen, wie Fachleuten bekannt ist (z. B. Umordnungspuffer oder ähnliches). Auf diese Weise wird der Prozessorkern 200 während Ausführung des Codes 213 transformiert, zumindest im Hinblick auf die Ausgabe, erzeugt durch den Decodierer, die Hardwareregister und Tabellen, die durch die Registerumbenennungslogik 225 genutzt werden, und beliebige Register (nicht gezeigt), die durch die Ausführungslogik 250 modifiziert werden.
  • Obwohl in 10 nicht dargestellt, kann ein Verarbeitungselement andere Elemente auf dem Chip mit dem Prozessorkern 200 umfassen. Beispielsweise kann ein Verarbeitungselement Speichersteuerlogik zusammen mit dem Prozessorkern 200 umfassen. Das Verarbeitungselement kann E/A-Steuerlogik umfassen und/oder kann E/A-Steuerlogik, integriert mit Speichersteuerlogik, umfassen. Das Verarbeitungselement kann auch einen oder mehrere Caches umfassen.
  • Jetzt Bezug nehmend auf 11 ist ein Blockdiagramm einer Datenverarbeitungssystemausführung 1000 gemäß einer Ausführungsform gezeigt. In 11 ist ein Mehrprozessorsystem 1000 gezeigt, das ein erstes Verarbeitungselement 1070 und ein zweites Verarbeitungselement 1080 umfasst. Obwohl die zwei Verarbeitungselemente 1070 und 1080 gezeigt sind, versteht es sich, dass eine Ausführungsform des Systems 1000 auch nur ein solches Verarbeitungselement umfassen kann.
  • Das System 1000 ist als ein Punkt-zu-Punkt-Verbindungssystem dargestellt, wobei das erste Verarbeitungselement 1070 und das zweite Verarbeitungselement 1080 über eine Punkt-zu-Punkt-Verbindung 1050 miteinander gekoppelt sind. Es versteht sich, dass ein beliebiger oder alle der in 11 dargestellten Verbindungen als ein Multi-Drop-Bus anstelle einer Punkt-zu-Punkt-Verbindung umgesetzt sein können.
  • Wie in 11 gezeigt, kann jedes der Verarbeitungselemente 1070 und 1080 ein Mehrkernprozessor sein, ersten und zweiten Prozessorkern umfassend (d. h. Prozessorkerne 1074a und 1074b und Prozessorkerne 1084a und 1084b). Solche Kerne 1074a, 1074b, 1084a, 1084b können dazu ausgelegt sein, Befehlscode in einer Weise ähnlich der oben in Verbindung mit 10 erörterten auszuführen.
  • Jedes Verarbeitungselement 1070, 1080 kann zumindest einen gemeinsam genutzten Cache 1896a, 1896b umfassen. Der gemeinsam genutzte Cache 1896a, 1896b kann Daten (z. B. Befehle) speichern, die von einer oder mehreren Komponenten des Prozessors genutzt werden, wie etwa die Kerne 1074a, 1074b bzw. 1084a, 1084b. Der gemeinsam genutzte Cache 1896a, 1896b kann zum Beispiel Daten, die in einem Speicher 1032, 1034 gespeichert sind, für einen schnelleren Zugriff durch Komponenten des Prozessors lokal zwischenspeichern. In einer oder mehreren Ausführungsformen kann der gemeinsam genutzte Cache 1896a, 1896b einen oder mehrere Mid-Level-Caches, wie etwa Level 2 (L2), Level 3 (L3), Level 4 (L4) oder andere Cacheebenen, einen Cache auf der untersten Ebene (LLC, Last Level Cache) und/oder Kombinationen davon umfassen.
  • Obwohl mit nur zwei Verarbeitungselementen 1070, 1080 gezeigt, versteht es sich, dass der Schutzumfang der Ausführungsformen nicht so beschränkt ist. In anderen Ausführungsformen können ein oder mehrere zusätzliche Verarbeitungselemente in einem gegebenen Prozessor vorhanden sein. Alternativ können ein oder mehrere Verarbeitungselemente 1070, 1080 ein von einem Prozessor verschiedenes Element sein, wie etwa ein Beschleuniger oder ein feldprogrammierbares Gate-Array. Beispielsweise können ein oder mehrere zusätzliche Verarbeitungselemente einen oder mehrere zusätzliche Prozessoren, die das gleiche wie ein erster Prozessor 1070 sind, einen oder mehrere zusätzliche Prozessoren, die heterogen oder asymmetrisch zu einem ersten Prozessor 1070 sind, Beschleuniger (wie etwa, z. B. Grafikbeschleuniger oder Digitalsignalprozessoreinheiten (DSP-Einheiten)), feldprogrammierbare Gate-Arrays oder ein beliebiges anderes Verarbeitungselement umfassen. Es kann eine Vielzahl von Unterschieden zwischen den Verarbeitungselementen 1070, 1080 im Hinblick auf ein Spektrum von relevanten Metriken geben, einschließlich architektonisch, mikroarchitektonisch, thermisch, der Stromverbrauchscharakteristiken und ähnliches. Diese Unterschiede können sich selbst als Asymmetrie oder Heterogenität zwischen Verarbeitungselementen 1070, 1080 manifestieren. Für zumindest eine Ausführungsform können sich die verschiedenen Verarbeitungselemente 1070, 1080 auf demselben Die-Gehäuse befinden.
  • Das erste Verarbeitungselement 1070 kann ferner Speichersteuerlogik (MC, Memory Controller) 1072 und Punkt-zu-Punkt-Schnittstellen (P-P) 1076 und 1078 umfassen. In ähnlicher Weise kann das zweite Verarbeitungselement 1080 eine MC 1082 und P-P-Schnittstellen 1086 und 1088 umfassen. Wie in 11 gezeigt, koppeln MCs 1072 und 1082 die Prozessoren mit jeweiligen Speichern, insbesondere einem Speicher 1032 und einem Speicher 1034, die Teile des lokal mit den jeweiligen Prozessoren verbundenen Hauptspeichers sein können. Während die MCs 1072 und 1082 als in die Verarbeitungselemente 1070, 1080 integriert dargestellt sind, kann in alternativen Ausführungsformen die MC-Logik diskrete Logik außerhalb von Verarbeitungselementen 1070, 1080 sein, anstatt darin integriert.
  • Das erste Verarbeitungselement 1070 und das zweite Verarbeitungselement 1080 können mit einem E/A-Untersystem 1090 über P-P-Verbindungen 1076 bzw. 1086 gekoppelt sein. Wie in 11 gezeigt, umfasst das E/A-Untersystem 1090 P-P-Schnittstellen 1094 und 1098. Ferner umfasst E/A-Untersystem 1090 eine Schnittstelle 1092 zum Koppeln von E/A-Untersystem 1090 mit einer Hochleistungs-Grafikengine 1038. In einer Ausführungsform kann ein Bus 1049 verwendet werden, um die Grafikengine 1038 mit dem E/A-Untersystem 1090 zu koppeln. Alternativ kann eine Punkt-zu-Punkt-Verbindung diese Komponenten koppeln.
  • E/A-Untersystem 1090 kann seinerseits über eine Schnittstelle 1096 mit einem ersten Bus 1016 gekoppelt werden. In einer Ausführungsform kann der erste Bus 1016 ein PCI-Bus (Peripheral Component Interconnect) oder ein Bus wie ein PCI Express-Bus oder ein anderer E/A-Verbindungsbus der dritten Generation sein, wenngleich der Schutzumfang der Ausführungsformen nicht so beschränkt ist.
  • Wie in 11 gezeigt, können verschiedene E/A-Vorrichtungen 1014 (z.B. biometrische Scanner, Lautsprecher, Kameras, Sensoren) mit dem ersten Bus 1016 gekoppelt sein, zusammen mit einer Busbrücke 1018, die den ersten Bus 1016 mit einem zweiten Bus 1020 koppeln kann. In einer Ausführungsform kann der zweite Bus 1020 ein Bus mit niedriger Pinzahl (LPC, Low Pin Count) sein. Verschiedene Vorrichtungen können mit dem zweiten Bus 1020 gekoppelt sein, einschließlich, beispielsweise eine Tastatur/Maus 1012, Kommunikationsvorrichtungen 1026 und eine Datenspeichereinheit 1019, wie etwa ein Plattenlaufwerk oder eine andere Massenspeichervorrichtung, die, in einer Ausführungsform, Code 1030 umfassen kann. Der dargestellte Code 1030 kann das bereits erörterte Verfahren 50 (4) umsetzen und kann ähnlich dem bereits erörterten Code 213 (10) sein. Ferner kann ein Audio-E/A 1024 mit dem zweiten Bus 1020 gekoppelt sein, und eine Batterie 1010 kann dem Datenverarbeitungssystem 1000 Strom zuführen.
  • Es ist anzumerken, dass andere Ausführungsformen in Betracht gezogen werden. Beispielsweise kann ein System anstelle der Punkt-zu-Punkt-Architektur aus 11 einen Multi-Drop-Bus oder eine andere solche Kommunikationstopologie umsetzen. Außerdem können die Elemente aus 11 alternativ unter Verwendung von mehr oder weniger integrierten Chips als in 11 gezeigt aufgeteilt werden.
  • Zusätzliche Anmerkungen und Beispiele:
  • Beispiel 1 kann eine Halbleitereinrichtung umfassen, umfassend ein oder mehrere Substrate und mit dem einen oder den mehreren Substraten gekoppelte Logik, wobei die Logik zumindest teilweise in einer oder mehreren aus einer auslegbaren Logik oder Hardwarelogik mit fester Funktionalität umgesetzt ist, wobei die Logik mit dem einen oder den mehreren Substraten gekoppelt ist, um, durch ein erstes neuronales Netzwerk, eine anfängliche Menge von Modellgewichten basierend auf Eingabedaten zu erzeugen, iterativ, durch ein zweites neuronales Netzwerk, eine aktualisierte Menge von Modellgewichten basierend auf Restdaten in Verbindung mit der anfänglichen Menge von Modellgewichten und den Eingabedaten zu erzeugen, wobei das zweite neuronale Netzwerk dazu dient, ein oder mehrere Bewegungsmuster in Verbindung mit den Eingabedaten zu erlernen, und wobei die aktualisierte Menge von Modellgewichten für eine vorbestimmte Anzahl von Iterationen zu erzeugen ist, und ein geometrisches Modell der Eingabedaten basierend auf der aktualisierten Menge von Modellgewichten auszugeben, wobei das erste neuronale Netzwerk und das zweite neuronale Netzwerk dazu dienen, eine Abhängigkeit des geometrischen Modells von einer Anzahl von Datenpunkten in den Eingabedaten zu verringern.
  • Beispiel 2 kann die Einrichtung aus Beispiel 1 umfassen, wobei die aktualisierte Menge von Modellgewichten ferner basierend auf einem oder mehreren aus Linienanpassungseinschränkungen oder Datenkorrespondenzwahrscheinlichkeiten zu erzeugen ist.
  • Beispiel 3 kann die Einrichtung aus Beispiel 1 umfassen, wobei das geometrische Modell eines oder mehrere aus einem Hyperebenenanpassungsmodell, einem Fundamentalmatrixabschätzungsmodell oder einem Homografieabschätzungsmodell zu sein hat.
  • Beispiel 4 kann die Einrichtung aus Beispiel 1 umfassen, wobei die mit dem einen oder den mehreren Substraten gekoppelte Logik Transistorkanalregionen umfasst, die innerhalb des einen oder der mehreren Substrate positioniert sind.
  • Beispiel 5 kann ein System umfassen, umfassend mehrere Kameras zum Erzeugen von Eingabedaten, einen mit den mehreren Kameras gekoppelten Speicher, wobei der Speicher zum Speichern der Eingabedaten dient, eine mit dem Speicher gekoppelte Halbleitereinrichtung, wobei die Halbleitereinrichtung ein oder mehrere Substrate und mit dem einen oder den mehreren Substraten gekoppelte Logik, wobei die Logik mit dem einen oder den mehreren Substraten gekoppelt ist, um, durch ein erstes neuronales Netzwerk, eine anfängliche Menge von Modellgewichten basierend auf den Eingabedaten zu erzeugen, iterativ, durch ein zweites neuronales Netzwerk, eine aktualisierte Menge von Modellgewichten basierend auf Restdaten in Verbindung mit der anfänglichen Menge von Modellgewichten und den Eingabedaten zu erzeugen, und ein geometrisches Modell der Eingabedaten basierend auf der aktualisierten Menge von Modellgewichten auszugeben, und einen Prozessor zum Lokalisieren der mehreren Kameras in einer dreidimensionalen Umgebung basierend auf dem geometrischen Modell.
  • Beispiel 6 kann das System aus Beispiel 5 umfassen, wobei das erste neuronale Netzwerk und das zweite neuronale Netzwerk dazu dienen, eine Abhängigkeit des geometrischen Modells von einer Anzahl von Datenpunkten in den Eingabedaten zu reduzieren.
  • Beispiel 7 kann das System aus Beispiel 5 umfassen, wobei das zweite neuronale Netzwerk dazu dient, eine oder mehrere Regelmäßigkeiten in Verbindung mit den Eingabedaten zu erlernen.
  • Beispiel 8 kann das System aus Beispiel 7 umfassen, wobei die eine oder mehreren Regelmäßigkeiten dazu dienen, Bewegungsmuster zu umfassen.
  • Beispiel 9 kann das System aus Beispiel 5 umfassen, wobei die aktualisierte Menge von Modellgewichten ferner basierend auf einem oder mehreren aus Linienanpassungseinschränkungen oder Datenkorrespondenzwahrscheinlichkeiten zu erzeugen ist.
  • Beispiel 10 kann das System aus Beispiel 5 umfassen, wobei das geometrische Modell eines oder mehrere aus einem Hyperebenenanpassungsmodell, einem Fundamentalmatrixabschätzungsmodell oder einem Homografieabschätzungsmodell zu sein hat.
  • Beispiel 11 kann eine Halbleitereinrichtung umfassen, umfassend ein oder mehrere Substrate und mit dem einen oder den mehreren Substraten gekoppelte Logik, wobei die Logik zumindest teilweise in einer oder mehreren aus einer auslegbaren Logik oder Hardwarelogik mit fester Funktionalität umgesetzt ist, wobei die Logik mit dem einen oder den mehreren Substraten gekoppelt ist, um, durch ein erstes neuronales Netzwerk, eine anfängliche Menge von Modellgewichten basierend auf Eingabedaten zu erzeugen, iterativ, durch ein zweites neuronales Netzwerk, eine aktualisierte Menge von Modellgewichten basierend auf Restdaten in Verbindung mit der anfänglichen Menge von Modellgewichten und den Eingabedaten zu erzeugen, und ein geometrisches Modell der Eingabedaten basierend auf der aktualisierten Menge von Modellgewichten auszugeben.
  • Beispiel 12 kann die Einrichtung aus Beispiel 11 umfassen, wobei das erste neuronale Netzwerk und das zweite neuronale Netzwerk dazu dienen, eine Abhängigkeit des geometrischen Modells von einer Anzahl von Datenpunkten in den Eingabedaten zu reduzieren.
  • Beispiel 13 kann die Einrichtung aus Beispiel 11 umfassen, wobei das zweite neuronale Netzwerk dazu dient, eine oder mehrere Regelmäßigkeiten in Verbindung mit den Eingabedaten zu erlernen.
  • Beispiel 14 kann die Einrichtung aus Beispiel 13 umfassen, wobei die eine oder mehreren Regelmäßigkeiten dazu dienen, Bewegungsmuster zu umfassen.
  • Beispiel 15 kann die Einrichtung aus Beispiel 11 umfassen, wobei die aktualisierte Menge von Modellgewichten ferner basierend auf einem oder mehreren aus Linienanpassungseinschränkungen oder Datenkorrespondenzwahrscheinlichkeiten zu erzeugen ist.
  • Beispiel 16 kann die Einrichtung aus Beispiel 11 umfassen, wobei das geometrische Modell eines oder mehrere aus einem Hyperebenenanpassungsmodell, einem Fundamentalmatrixabschätzungsmodell oder einem Homografieabschätzungsmodell zu sein hat.
  • Beispiel 17 kann die Einrichtung aus Beispiel 11 umfassen, wobei die mit dem einen oder den mehreren Substraten gekoppelte Logik Transistorkanalregionen umfasst, die innerhalb des einen oder der mehreren Substrate positioniert sind.
  • Beispiel 18 kann ein Verfahren umfassen, umfassend Erzeugen, durch ein erstes neuronales Netzwerk, einer anfänglichen Menge von Modellgewichten basierend auf den Eingabedaten, iteratives Erzeugen, durch ein zweites neuronales Netzwerk, einer aktualisierten Menge von Modellgewichten basierend auf Restdaten in Verbindung mit der anfänglichen Menge von Modellgewichten und den Eingabedaten und Ausgeben eines geometrischen Modells der Eingabedaten basierend auf der aktualisierten Menge von Modellgewichten.
  • Beispiel 19 kann das Verfahren aus Beispiel 18 umfassen, wobei das erste neuronale Netzwerk und das zweite neuronale Netzwerk eine Abhängigkeit des geometrischen Modells von einer Anzahl von Datenpunkten in den Eingabedaten reduzieren.
  • Beispiel 20 kann das Verfahren aus Beispiel 18 umfassen, wobei das zweite neuronale Netzwerk eine oder mehrere Regelmäßigkeiten in Verbindung mit den Eingabedaten erlernt.
  • Beispiel 21 kann das Verfahren aus Beispiel 20 umfassen, wobei die eine oder mehreren Regelmäßigkeiten Bewegungsmuster umfassen.
  • Beispiel 22 kann das Verfahren aus Beispiel 18 umfassen, wobei die aktualisierte Menge von Modellgewichten ferner basierend auf einem oder mehreren aus Linienanpassungseinschränkungen oder Datenkorrespondenzwahrscheinlichkeiten erzeugt wird.
  • Beispiel 23 kann das Verfahren aus Beispiel 18 umfassen, wobei das geometrische Modell eines oder mehrere aus einem Hyperebenenanpassungsmodell, einem Fundamentalmatrixabschätzungsmodell oder einem Homografieabschätzungsmodell ist.
  • Beispiel 24 kann zumindest ein computerlesbares Speichermedium umfassen, umfassend eine Menge von Befehlen, die, wenn durch ein Datenverarbeitungssystem ausgeführt, das Datenverarbeitungssystem veranlassen, das Verfahren aus einem der Beispiele 18 bis 23 durchzuführen.
  • Daher kann die hier beschriebene Technologie robuste geometrische Modellschätzer von Daten in einer Weise erlernen, die praktisch für höherdimensionale Probleme, schnell und stabil ist (z. B. keine Unsicherheit darüber, ob das Modell gut oder schlecht ist). Die lernbasierten Schätzer können robuste und genaue Ergebnisse auf einer Vielzahl von klassischen Modellanpassungsproblemen ergeben. Die hier beschriebene Technologie kann ein Schritt in Richtung eines modularen gleichzeitigen Lokalisierungs- und Abbildungssystems (SLAM, Simultaneous Localization and Mapping) sein, das die Leistung von tiefen neuronalen Netzwerken mit mathematisch fundierter geometrischer Modellierung kombiniert. Neben den vorgestellten Probleminstanzen ist die hier beschriebene Technologie direkt anwendbar auf andere Probleme in Geometrie mit mehreren Ansichten, die auf der direkten linearen Transformation basieren, wie etwa Triangulierung oder ein Perspektive-n-Punkt-Problem (PnP). Ferner kann die hier beschriebene Technologie wahrscheinlich in anderen Problemdomänen anwendbar sein, wo momentan IRLS eingesetzt wird.
  • Ausführungsformen sind anwendbar für Verwendung mit allen Typen von Halbleiterchips mit integrierten Schaltungen („IC“, Integrated Circuit). Beispiele dieser IC-Chips umfassen unter anderem Steuerungen, Chipsatzkomponenten, programmierbare Logik-Arrays (PLAs), Speicherchips, Netzwerkchips, Systems-on-Chip (SoCs), SSD/NAND-Steuerungs-ASICs und ähnliches. Zusätzlich werden, in einigen Zeichnungen, signalführende Leitungen mit Linien dargestellt. Einige können unterschiedlich sein, um weitere konstituierende Signalpfade anzuzeigen, eine Nummerierung haben, um eine Nummer von konstituierenden Signalpfaden anzuzeigen, und/oder Pfeile an einem oder mehreren Enden haben, um Fließrichtung primärer Informationen anzuzeigen. Dies sollte allerdings nicht als einschränkend aufgefasst werden. Stattdessen können solche zusätzlichen Details in Verbindung mit einer oder mehreren beispielhaften Ausführungsformen zum einfacheren Verstehen einer Schaltung verwendet werden. Alle dargestellten Signalleitungen, egal, ob sie zusätzliche Informationen haben oder nicht, können tatsächlich ein oder mehrere Signale umfassen, die in mehrere Richtungen laufen können und die mit jedem geeigneten Typ von Signalschema umgesetzt werden können, z. B. digitalen oder analogen Leitungen, die mit Differentialpaaren, optischen Faserleitungen und/oder einendigen Leitungen umgesetzt sein können.
  • Beispielhafte Größen/Modelle/Werte/Bereiche können gegeben worden sein, obwohl Ausführungsformen nicht auf selbige beschränkt sind. Da Fertigungstechniken (z. B. Photolithografie) mit der Zeit immer ausgereifter werden, wird erwartet, dass Vorrichtungen immer kleinerer Größe gefertigt werden können. Zusätzlich können wohlbekannte Leistungs-/Masseverbindungen zu IC-Chips und anderen Komponenten innerhalb der Figuren gezeigt sein oder nicht, zur Vereinfachung der Darstellung oder, um bestimmte Aspekte der Ausführungsformen nicht einzutrüben. Ferner können Anordnungen in Blockdiagrammform gezeigt sein, um ein Eintrüben von Ausführungsformen zu verhindern, sowie angesichts des Fakts, dass Spezifika bezüglich der Umsetzung solcher Blockdiagrammanordnungen in hohem Maße abhängig von dem Datenverarbeitungssystem sind, innerhalb dessen die Ausführungsform umgesetzt werden soll, d. h. solche Spezifika sollten gut im Kompetenzbereich eines Fachmannes sein. Wo spezifische Details (z. B. Schaltungen) dargelegt werden, um beispielhafte Ausführungsformen zu beschreiben, sollte für einen Fachmann offensichtlich sein, dass Ausführungsformen ohne, oder mit einer Variation dieser spezifischen Details praktisch umgesetzt werden können. Die Beschreibung ist daher als beispielhaft und nicht als beschränkend aufzufassen.
  • Der Begriff „gekoppelt“ kann hier verwendet werden, um sich auf einen beliebigen Typ von Beziehung, direkt oder indirekt, zwischen den fraglichen Komponenten zu beziehen, und kann für elektrische, mechanische, fluidische, optische, elektromagnetische, elektromechanische oder andere Verbindungen gelten. Zusätzlich können die Begriffe „erster“, „zweiter“ usw. hier nur verwendet werden, um die Diskussion zu erleichtern, und haben keine bestimmte zeitliche oder chronologische Bedeutung, sofern nicht anderweitig angegeben.
  • Wie in dieser Anmeldung und in den Ansprüchen verwendet, kann eine Liste von Elementen, die durch den Begriff „ein(e) oder mehrere“ verknüpft werden, eine beliebige Kombination der aufgeführten Begriffe bedeuten. Beispielsweise kann die Phrase „ein oder mehrere aus A, B oder C“ bedeuten: A; B; C; A und B; A und C; B und C; oder A, B und C.
  • Für Fachleute versteht es sich aus der vorstehenden Beschreibung, dass die breit angelegten Techniken der Ausführungsformen in einer Vielzahl von Formen umgesetzt sein können. Daher, während die Ausführungsformen in Verbindung mit bestimmten Beispielen davon beschrieben wurden, sollte der wahre Schutzumfang der Ausführungsformen nicht so beschränkt sein, da andere Modifikationen für erfahrener Praktizierer beim Studium der Zeichnungen, der Spezifikation und der folgenden Ansprüche offensichtlich werden.

Claims (24)

  1. Halbleitereinrichtung, die Folgendes umfasst: ein oder mehrere Substrate; und Logik, die mit dem einen oder den mehreren Substraten gekoppelt ist, wobei die Logik zumindest teilweise in einer oder mehreren aus auslegbarer Logik oder Hardwarelogik mit fester Funktionalität umgesetzt ist, wobei die Logik mit dem einen oder den mehreren Substraten gekoppelt ist zum: Erzeugen, durch ein erstes neuronales Netzwerk, einer anfänglichen Menge von Modellgewichten basierend auf Eingabedaten, iterativen Erzeugen, durch ein zweites neuronales Netzwerk, einer aktualisierten Menge von Modellgewichten basierend auf Restdaten in Verbindung mit der anfänglichen Menge von Modellgewichten und den Eingabedaten, wobei das zweite neuronale Netzwerk dazu dient, eine oder mehrere Regelmäßigkeiten in Verbindung mit den Eingabedaten zu erlernen, und wobei die eine oder mehreren Regelmäßigkeiten Bewegungsmuster umfassen, und Ausgeben eines geometrischen Modells der Eingabedaten basierend auf der aktualisierten Menge von Modellgewichten, wobei das erste neuronale Netzwerk und das zweite neuronale Netzwerk dazu dienen, eine Abhängigkeit des geometrischen Modells von einer Anzahl von Datenpunkten in den Eingabedaten zu reduzieren.
  2. Einrichtung nach Anspruch 1, wobei die aktualisierte Menge von Modellgewichten ferner basierend auf einem oder mehreren aus Linienanpassungseinschränkungen oder Datenkorrespondenzwahrscheinlichkeiten zu erzeugen ist.
  3. Einrichtung nach Anspruch 1, wobei das geometrische Modell eines oder mehrere aus einem Hyperebenenanpassungsmodell, einem Fundamentalmatrixabschätzungsmodell oder einem Homografieabschätzungsmodell zu sein hat.
  4. Einrichtung nach Anspruch 1, wobei die mit dem einen oder den mehreren Substraten gekoppelte Logik Transistorkanalregionen umfasst, die innerhalb des einen oder der mehreren Substrate positioniert sind.
  5. Datenverarbeitungssystem, das Folgendes umfasst: mehrere Kameras zum Erzeugen von Eingabedaten; einen Speicher, der mit den mehreren Kameras gekoppelt ist, wobei der Speicher dazu dient, die Eingabedaten zu speichern; eine Halbleitereinrichtung, die mit dem Speicher gekoppelt ist, wobei die Halbleitereinrichtung ein oder mehrere Substrate und Logik, die mit dem einen oder den mehreren Substraten gekoppelt sind, umfasst, wobei die Logik mit dem einen oder den mehreren Substraten gekoppelt ist zum: Erzeugen, durch ein erstes neuronales Netzwerk, einer anfänglichen Menge von Modellgewichten basierend auf den Eingabedaten, iterativen Erzeugen, durch ein zweites neuronales Netzwerk, einer aktualisierten Menge von Modellgewichten basierend auf Restdaten in Verbindung mit der anfänglichen Menge von Modellgewichten und den Eingabedaten, und Ausgeben eines geometrischen Modells der Eingabedaten basierend auf der aktualisierten Menge von Modellgewichten; und einen Prozessor zum Lokalisieren der mehreren Kameras in einer dreidimensionalen Umgebung basierend auf dem geometrischen Modell.
  6. System nach Anspruch 5, wobei das erste neuronale Netzwerk und das zweite neuronale Netzwerk dazu dienen, eine Abhängigkeit des geometrischen Modells von einer Anzahl von Datenpunkten in den Eingabedaten zu reduzieren.
  7. System nach Anspruch 5, wobei das zweite neuronale Netzwerk dazu dient, eine oder mehrere Regelmäßigkeiten in Verbindung mit den Eingabedaten zu erlernen.
  8. System nach Anspruch 7, wobei die eine oder mehreren Regelmäßigkeiten dazu dienen, Bewegungsmuster zu umfassen.
  9. System nach Anspruch 5, wobei die aktualisierte Menge von Modellgewichten ferner basierend auf einem oder mehreren aus Linienanpassungseinschränkungen oder Datenkorrespondenzwahrscheinlichkeiten zu erzeugen ist.
  10. System nach Anspruch 5, wobei das geometrische Modell eines oder mehrere aus einem Hyperebenenanpassungsmodell, einem Fundamentalmatrixabschätzungsmodell oder einem Homografieabschätzungsmodell zu sein hat.
  11. Halbleitereinrichtung, die Folgendes umfasst: ein oder mehrere Substrate; und Logik, die mit dem einen oder den mehreren Substraten gekoppelt ist, wobei die Logik zumindest teilweise in einer oder mehreren aus auslegbarer Logik oder Hardwarelogik mit fester Funktionalität umgesetzt ist, wobei die Logik mit dem einen oder den mehreren Substraten gekoppelt ist zum: Erzeugen, durch ein erstes neuronales Netzwerk, einer anfänglichen Menge von Modellgewichten basierend auf Eingabedaten, iterativen Erzeugen, durch ein zweites neuronales Netzwerk, einer aktualisierten Menge von Modellgewichten basierend auf Restdaten in Verbindung mit der anfänglichen Menge von Modellgewichten und den Eingabedaten, und Ausgeben eines geometrischen Modells der Eingabedaten basierend auf der aktualisierten Menge von Modellgewichten.
  12. Einrichtung nach Anspruch 11, wobei das erste neuronale Netzwerk und das zweite neuronale Netzwerk dazu dienen, eine Abhängigkeit des geometrischen Modells von einer Anzahl von Datenpunkten in den Eingabedaten zu reduzieren.
  13. Einrichtung nach Anspruch 11, wobei das zweite neuronale Netzwerk dazu dient, eine oder mehrere Regelmäßigkeiten in Verbindung mit den Eingabedaten zu erlernen.
  14. Einrichtung nach Anspruch 13, wobei die eine oder mehreren Regelmäßigkeiten dazu dienen, Bewegungsmuster zu umfassen.
  15. Einrichtung nach Anspruch 11, wobei die aktualisierte Menge von Modellgewichten ferner basierend auf einem oder mehreren aus Linienanpassungseinschränkungen oder Datenkorrespondenzwahrscheinlichkeiten zu erzeugen ist.
  16. Einrichtung nach Anspruch 11, wobei das geometrische Modell eines oder mehrere aus einem Hyperebenenanpassungsmodell, einem Fundamentalmatrixabschätzungsmodell oder einem Homografieabschätzungsmodell zu sein hat.
  17. Einrichtung nach Anspruch 11, wobei die mit dem einen oder den mehreren Substraten gekoppelte Logik Transistorkanalregionen umfasst, die innerhalb des einen oder der mehreren Substrate positioniert sind.
  18. Verfahren zum Betreiben eines Datenverarbeitungssystems, das Folgendes umfasst: Erzeugen, durch ein erstes neuronales Netzwerk, einer anfänglichen Menge von Modellgewichten basierend auf Eingabedaten; iteratives Erzeugen, durch ein zweites neuronales Netzwerk, einer aktualisierten Menge von Modellgewichten basierend auf Restdaten in Verbindung mit der anfänglichen Menge von Modellgewichten und den Eingabedaten; und Ausgeben eines geometrischen Modells der Eingabedaten basierend auf der aktualisierten Menge von Modellgewichten.
  19. Verfahren nach Anspruch 18, wobei das erste neuronale Netzwerk und das zweite neuronale Netzwerk eine Abhängigkeit des geometrischen Modells von einer Anzahl von Datenpunkten in den Eingabedaten reduzieren.
  20. Verfahren nach Anspruch 18, wobei das zweite neuronale Netzwerk eine oder mehrere Regelmäßigkeiten in Verbindung mit den Eingabedaten erlernt.
  21. Verfahren nach Anspruch 20, wobei die eine oder mehreren Regelmäßigkeiten Bewegungsmuster umfassen.
  22. Verfahren nach Anspruch 18, wobei die aktualisierte Menge von Modellgewichten ferner basierend auf einem oder mehreren aus Linienanpassungseinschränkungen oder Datenkorrespondenzwahrscheinlichkeiten erzeugt wird.
  23. Verfahren nach Anspruch 18, wobei das geometrische Modell eines oder mehrere aus einem Hyperebenenanpassungsmodell, einem Fundamentalmatrixabschätzungsmodell oder einem Homografieabschätzungsmodell ist.
  24. Zumindest ein computerlesbares Speichermedium, umfassend eine Menge von Befehlen, die, wenn durch ein Datenverarbeitungssystem ausgeführt, das Datenverarbeitungssystem veranlassen, das Verfahren nach einem der Ansprüche 18 bis 23 durchzuführen.
DE102019104516.9A 2018-03-23 2019-02-22 Tiefe geometrische Modellanpassung Pending DE102019104516A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/933,510 2018-03-23
US15/933,510 US11393160B2 (en) 2018-03-23 2018-03-23 Deep geometric model fitting

Publications (1)

Publication Number Publication Date
DE102019104516A1 true DE102019104516A1 (de) 2019-09-26

Family

ID=65231135

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102019104516.9A Pending DE102019104516A1 (de) 2018-03-23 2019-02-22 Tiefe geometrische Modellanpassung

Country Status (3)

Country Link
US (3) US11393160B2 (de)
CN (1) CN110298926A (de)
DE (1) DE102019104516A1 (de)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10692244B2 (en) 2017-10-06 2020-06-23 Nvidia Corporation Learning based camera pose estimation from images of an environment
US10217269B1 (en) * 2017-11-29 2019-02-26 Siemens Healthcare Gmbh Compressive sensing of light transport matrix
CN113892127A (zh) * 2019-05-17 2022-01-04 奇跃公司 使用神经网络和角点检测器进行角点检测的方法和装置
CN110751090B (zh) * 2019-10-18 2022-09-20 宁波博登智能科技有限公司 一种三维点云标注方法、装置及电子设备
CN110956176B (zh) * 2019-11-14 2023-06-16 国网山西省电力公司大同供电公司 一种塔基间输电线路拟合方法和检测装置
US20210149404A1 (en) * 2019-11-16 2021-05-20 Uatc, Llc Systems and Methods for Jointly Performing Perception, Perception, and Motion Planning for an Autonomous System
JP7359735B2 (ja) * 2020-04-06 2023-10-11 トヨタ自動車株式会社 物体状態識別装置、物体状態識別方法及び物体状態識別用コンピュータプログラムならびに制御装置
WO2022045915A1 (en) * 2020-08-25 2022-03-03 Huawei Technologies Co., Ltd. Distances between distributions for the belonging-to-the-distribution measurement of the image
CN113377991B (zh) * 2021-06-10 2022-04-15 电子科技大学 一种基于最难正负样本的图像检索方法
CN113706505A (zh) * 2021-08-24 2021-11-26 凌云光技术股份有限公司 一种去除深度图像中局外点的圆柱拟合方法和装置
CN114741784B (zh) * 2022-03-28 2023-03-14 大连理工大学 一种圆柱壳加筋结构优化方法、装置、计算机和存储介质
CN116883550B (zh) * 2023-07-01 2024-02-23 浙江利恩工程设计咨询有限公司 一种三维虚拟实景动画显示方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR960014201B1 (ko) * 1993-02-08 1996-10-14 김재창 움직이는 표적의 검출 방법 및 그 시스템
JP3647584B2 (ja) * 1996-12-26 2005-05-11 富士通株式会社 学習型自己定位装置
US6898583B1 (en) * 2000-01-24 2005-05-24 Sony Corporation Method and apparatus of creating application-specific, non-uniform wavelet transforms
US9015092B2 (en) * 2012-06-04 2015-04-21 Brain Corporation Dynamically reconfigurable stochastic learning apparatus and methods
US8965057B2 (en) * 2012-03-02 2015-02-24 Qualcomm Incorporated Scene structure-based self-pose estimation
KR101974261B1 (ko) * 2016-06-24 2019-04-30 한국과학기술원 Cnn 기반 인루프 필터를 포함하는 부호화 방법과 장치 및 복호화 방법과 장치
US11379688B2 (en) * 2017-03-16 2022-07-05 Packsize Llc Systems and methods for keypoint detection with convolutional neural networks
WO2018188466A1 (en) * 2017-04-12 2018-10-18 Bio-Medical Engineering (HK) Limited Automated steering systems and methods for a robotic endoscope
US10699142B2 (en) * 2017-04-20 2020-06-30 GM Global Technology Operations LLC Systems and methods for traffic signal light detection

Also Published As

Publication number Publication date
US20220309739A1 (en) 2022-09-29
US11393160B2 (en) 2022-07-19
US20240161387A1 (en) 2024-05-16
US20190043244A1 (en) 2019-02-07
CN110298926A (zh) 2019-10-01
US11816784B2 (en) 2023-11-14

Similar Documents

Publication Publication Date Title
DE102019104516A1 (de) Tiefe geometrische Modellanpassung
Liu et al. Learning affinity via spatial propagation networks
DE102020132559A1 (de) Technologie zum anwenden von fahrnormen zur verhaltensvoritersage automatisierter fahrzeuge
DE102018130924A1 (de) Systeme und Verfahren zur dynamischen Gesichtsanalyse mittels eines rekurrenten neuronalen Netzes
DE102018126342A1 (de) Transformieren von faltenden neuronalen netzen zum lernen von visuellen sequenzen
DE112019005750T5 (de) Erlernen des Erzeugens synthetischer Datensätze zum Trainieren neuronalerNetze
DE102018126670A1 (de) Fortschreitende Modifizierung von generativen adversativen neuronalen Netzen
Fang et al. Towards good practice for CNN-based monocular depth estimation
DE102018108324A1 (de) System und Verfahren zur Schätzung eines optischen Flusses
DE112018000332T5 (de) Dichtes visuelles slam mit probabilistic-surfel-map
DE102020134346A1 (de) Technologie zum generalisieren von erfahrungen für sicheres fahren für die verhaltensvorhersage automatisierter fahrzeuge
DE112016004535T5 (de) Universelles Übereinstimmungsnetz
DE102018113845A1 (de) Systeme und Verfahren zum Trainieren von neuronalen Netzwerken mit dünnbesetzten Daten
US20200094824A1 (en) Learning to simulate
US20180137633A1 (en) Method, device, and non-transitory computer readable storage medium for image processing
DE112016004534T5 (de) Nicht überwachtes Abgleichen in feinkörnigen Datensätzen zur Einzelansicht-Objektrekonstruktion
EP3557487B1 (de) Generieren von validierungsdaten mit generativen kontradiktorischen netzwerken
DE112019003529T5 (de) Datendarstellung für dynamische Genauigkeit in Kernen neuronaler Netze
DE102018129975A1 (de) Codierung von Lidar-Signalen zur Vermeidung von Störungen
DE102018124211A1 (de) Lernbasierte Kameraposenschätzung von Bildern einer Umgebung
DE102022107473A1 (de) Technologie für speichereffiziente und parametereffiziente graphneural networks
DE102022107186A1 (de) Generatorausnutzung zur deepfake-detektion
DE102021207269A1 (de) Verfahren und system zum erlernen von perturbationsmengen beim maschinenlernen
DE112020000448T5 (de) Kameraselbstkalibrierungsnetz
DE102019108733A1 (de) Schnelle mehrskalige Punktwolkenregistrierung mit einer hierarchischen Gauß-Mischung