DE102019007796A1 - Einsetzen eines der Detektion kritischer Kanten dienenden neuronalen Netzwerkes und eines geometrischen Modells zum Bestimmen von Kameraparametern aus einem einzigen Digitalbild - Google Patents

Einsetzen eines der Detektion kritischer Kanten dienenden neuronalen Netzwerkes und eines geometrischen Modells zum Bestimmen von Kameraparametern aus einem einzigen Digitalbild Download PDF

Info

Publication number
DE102019007796A1
DE102019007796A1 DE102019007796.2A DE102019007796A DE102019007796A1 DE 102019007796 A1 DE102019007796 A1 DE 102019007796A1 DE 102019007796 A DE102019007796 A DE 102019007796A DE 102019007796 A1 DE102019007796 A1 DE 102019007796A1
Authority
DE
Germany
Prior art keywords
escape
digital image
training
lines
neural network
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
DE102019007796.2A
Other languages
English (en)
Inventor
Jonathan EISENMANN
Wenqi Xian
Matthew Fisher
Geoffrey Oxholm
Elya Shechtman
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.)
Adobe Inc
Original Assignee
Adobe Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Adobe Inc filed Critical Adobe Inc
Publication of DE102019007796A1 publication Critical patent/DE102019007796A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/13Edge detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/80Analysis of captured images to determine intrinsic or extrinsic camera parameters, i.e. camera calibration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/12Edge-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/536Depth or shape recovery from perspective effects, e.g. by using vanishing points
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/24Indexing scheme for image data processing or generation, in general involving graphical user interfaces [GUIs]
    • 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/20004Adaptive 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/20048Transform domain processing
    • G06T2207/20061Hough transform
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Medical Informatics (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Image Analysis (AREA)
  • Image Processing (AREA)
  • Studio Devices (AREA)

Abstract

Die vorliegende Offenbarung betrifft Systeme, nichttemporäre computerlesbare Medien und Verfahren zum Einsetzen eines der Detektion kritischer Kanten dienenden neuronalen Netzwerkes und eines geometrischen Modells zum Bestimmen von Kameraparametern aus einem einzigen Digitalbild. Insbesondere können die offenbarten Systeme bei einer oder mehreren Ausführungsformen ein der Detektion kritischer Kanten dienendes neuronales Netzwerk dafür trainieren und einsetzen, eine Fluchtkantenkarte zu generieren, die Fluchtlinien aus dem Digitalbild angibt. Sodann kann das System die Fluchtkantenkarte dafür einsetzen, Kameraparameter durch Anwenden eines geometrischen Modells auf die Fluchtkantenkarte genauer und effizienter zu bestimmen. Des Weiteren kann das System Ground-Truth-Fluchtliniendaten aus einem Satz von Trainingsdigitalbildern zum Trainieren des der Detektion kritischer Kanten dienenden neuronalen Netzwerkes generieren.

Description

  • Hintergrund
  • In den vergangenen Jahren gab es erhebliche Verbesserungen auf dem Gebiet der Analyse und Bearbeitung von Digitalbildern. Infolge von Fortschritten bei Algorithmen und Hardware sind herkömmliche Digitalbildanalysesysteme nunmehr in der Lage, Digitalbilder auf vielerlei Arten zu analysieren und zu bearbeiten. Herkömmliche Digitalbildanalysesysteme können Digitalbilder beispielsweise reprojizieren, damit sie visuell ausgerichtet (beispielsweise aufrecht) aussehen, und Objekte, die in Digitalbildern abgebildet sind, hinzufügen oder entfernen. Herkömmliche Digitalbildanalysesysteme können (wenn Kameraparameter vorliegen) ein neues Digitalobjekt der Größe nach ändern und orientieren, damit es in eine dreidimensionale Szene, die in dem Digitalbild abgebildet ist, passt. Bei diesem dreidimensionalen Komponieren ist das Vorliegen einer präzisen Schätzung der Kamerakalibrierung kritisch, damit sichergestellt wird, dass die Vordergrund- und Hintergrundelemente eine passende perspektivische Verzerrung im fertigen wiedergegebenen Bild aufweisen.
  • Obwohl es in den vergangenen Jahren Fortschritte bei herkömmlichen Digitalbildanalysesystemen gegeben hat, weisen diese weiterhin erhebliche Unzulänglichkeiten im Zusammenhang mit der Genauigkeit, Flexibilität und Effizienz auf. Einige herkömmliche Digitalbildanalysesysteme können beispielsweise unter Einsatz eines faltungstechnischen neuronalen Netzwerkes Kameraparameter bestimmen und Digitalbilder modifizieren. Insbesondere können herkömmliche Digitalanalysesysteme ein faltungstechnisches neuronales Netzwerk dafür trainieren, Kameraparameter aus einem Digitalbild zu identifizieren. Derartige Systeme sind jedoch nicht sehr präzise und/oder genau. Viele Digitalbildanalysesysteme, die faltungstechnische neuronale Netzwerke einsetzen, bestimmen Kameraparameter mit hoher Fehlerrate. Im Ergebnis generieren derartige Systeme modifizierte Digitalbilder, die nicht genau, realistisch oder visuell ansprechend sind.
  • Einige herkömmliche Digitalbildanalysesysteme setzen geometrische Lösungswege ein, um Kameraparameter aus Digitalbildern zu bestimmen. Beispielsweise können derartige herkömmliche Systeme geometrische Formen in dem Digitalbild zum Identifizieren von Kanten und Bestimmen von Kameraparametern zum Zeitpunkt der Aufnahme des Digitalbildes auf Grundlage der identifizierten Kanten analysieren. Derartige Systeme sind jedoch nicht robust oder flexibel. Herkömmliche Systeme, die geometrische Lösungswege einsetzen, zeigen erhebliche Probleme bei der Genauigkeit, wenn sie Digitalbilder analysieren, die irreführende oder verwirrende Formen und/oder Linien (beispielsweise bei Fehlen starker Fluchtlinien) enthalten. Digitalbilder, die beispielsweise eine Vielzahl von runden Objekten, gekrümmten Objekten oder Linien, die in willkürliche Richtungen zeigen, enthalten, können die Genauigkeit geometrischer Modelle unterminieren.
  • Einige herkömmliche Systeme können Kameraparameter bestimmen, indem sie mehrere Digitalbilder desselben Subjektes (beispielsweise derselben Szene oder desselben Objektes) analysieren. Derartige Systeme sind jedoch ineffizient, da sie erhebliche Rechenressourcen und die Verarbeitung mehrerer Bilder zum Extrahieren eines Satzes von Kameraparametern benötigen. Derartige Systeme bieten zudem wenig Flexibilität, da sie Digitalbilder, die spezifischen Kriterien genügen, benötigen und in vielen Fällen unwahrscheinlich ist, dass ein Nutzer über die notwendigen Bilder (beispielsweise eine große Anzahl von Digitalbildern, die dasselbe Subjekt abbilden) verfügt, damit das System richtig arbeitet. Zusätzlich benötigen viele Systeme beträchtliche Computerverarbeitungsressourcen und Zeit, um Trainingsdaten zu generieren und einzusetzen.
  • Diese Probleme und Fragestellungen sind zusammen mit zusätzlichen Problemen und Fragestellungen bei herkömmlichen Digitalbildanalysesystemen vorhanden.
  • Kurze Zusammenfassung
  • Ausführungsformen der vorliegenden Offenbarung bieten Vorteile und/oder lösen eines oder mehrere der vorbeschriebenen Probleme oder auch andere Probleme im Stand der Technik bei Systemen, nichttemporären computerlesbaren Medien und computerimplementierten Verfahren zum Bestimmen einer Kamerakalibrierung und Generieren von nachbearbeiteten Digitalbildern unter Einsatz eines der Detektion kritischer Kanten dienenden neuronalen Netzwerkes und eines geometrischen Modells. Insbesondere können die offenbarten Systeme Kameraparameter, so beispielsweise Brennweite, Nicken, Rollen und Gieren, auf Grundlage eines einzigen Digitalbildes genau, effizient und flexibel bestimmen. Bei einer oder mehreren Ausführungsformen setzen die offenbarten Systeme beispielsweise ein Deep-Learning-Framework ein, um Kanten in einem Digitalbild zu gewichten (um beispielsweise Fluchtlinien, die für die Perspektive des Digitalbildes relevant sind, zu identifizieren). Die offenbarten Systeme können die Fluchtlinien sodann in Zusammenwirkung mit einem geometrischen Modell einsetzen, um Kameraparameter genau zu identifizieren und ein modifiziertes Digitalbild zu generieren. Um die Effizienz und Genauigkeit weiter zu verbessern, kann das offenbarte System zudem genaue Trainingsdaten aus bestehenden Digitalbildsammlungen generieren und diese Trainingsdaten dafür nutzen, ein der Detektion kritischer Kanten dienendes neuronales Netzwerk zu trainieren. Insbesondere können die offenbarten Systeme Ground-Truth-Fluchtlinien aus Trainingsdigitalbildern generieren und die Ground-Truth-Fluchtlinien dafür einsetzen, ein der Detektion kritischer Kanten dienendes neuronales Netzwerk dafür zu trainieren, kritische Kanten zu identifizieren. Beim Trainieren kann das System das der Detektion kritischer Kanten dienende neuronale Netzwerk in Zusammenwirkung mit einem geometrischen Modell einsetzen, um Kameraparameter genauer zu bestimmen und ein modifiziertes Digitalbild zu generieren.
  • Zusätzliche Merkmale und Vorteile einer oder mehrerer Ausführungsformen der vorliegenden Offenbarung sind in der nachfolgenden Beschreibung niedergelegt, erschließen sich teilweise aus der Beschreibung oder ergeben sich durch praktische Umsetzung exemplarischer Ausführungsformen.
  • Figurenliste
  • Die Detailbeschreibung stellt eine oder mehrere Ausführungsformen mit zusätzlicher Spezifität und Detailliertheit anhand der begleitenden Zeichnungsfiguren bereit, die nachstehend kurz beschrieben werden.
    • 1 zeigt ein Diagramm einer Umgebung, in der ein Kameraparameterbestimmungssystem entsprechend einer oder mehreren Ausführungsformen arbeiten kann.
    • 2 zeigt eine Übersicht über das Bestimmen von Kameraparametern für ein Digitalbild entsprechend einer oder mehreren Ausführungsformen.
    • 3A bis 3C zeigen einen Prozess des Generierens von Ground-Truth-Fluchtlinien aus einem Satz von Trainingsdigitalbildern entsprechend einer oder mehreren Ausführungsformen.
    • 4 zeigt ein Flussdiagramm zum Trainieren eines der Detektion kritischer Kanten dienenden neuronalen Netzwerkes entsprechend einer oder mehreren Ausführungsformen.
    • 5 zeigt das Einsetzen eines der Detektion kritischer Kanten dienenden neuronalen Netzwerkes zum Generieren einer Fluchtkantenkarte entsprechend einer oder mehreren Ausführungsformen.
    • 6 zeigt das Einsetzen von Kameraparametern eines Digitalbildes zum Generieren eines nachbearbeiteten Digitalbildes entsprechend einer oder mehreren Ausführungsformen.
    • 7 zeigt ein Blockdiagramm eines Kameraparameterbestimmungssystems entsprechend einer oder mehreren Ausführungsformen.
    • 8 zeigt ein Flussdiagramm einer Abfolge von Vorgängen zum Einsetzen eines der Detektion kritischer Kanten dienenden neuronalen Netzwerkes zum Bestimmen von Kameraparametern entsprechend einer oder mehreren Ausführungsformen.
    • 9 zeigt ein Flussdiagramm einer Abfolge von Vorgängen zum Trainieren eines der Detektion kritischer Kanten dienenden neuronalen Netzwerkes entsprechend einer oder mehreren Ausführungsformen.
    • 10 zeigt ein Blockdiagramm einer exemplarischen Rechenvorrichtung entsprechend einer oder mehreren Ausführungsformen.
  • Detailbeschreibung
  • Die vorliegende Offenbarung beschreibt eine oder mehrere Ausführungsformen eines Kameraparameterbestimmungssystems, das ein der Detektion kritischer Kanten dienendes neuronales Netzwerk in Zusammenwirkung mit einem geometrischen Modell dafür einsetzen kann, Kameraparameter aus einem einzigen Digitalbild zu identifizieren. Das Kameraparameterbestimmungssystem kann ein der Detektion kritischer Kanten dienendes neuronales Netzwerk dafür trainieren, Fluchtlinien in einem Digitalbild zu identifizieren und eine Kantenkarte (beispielsweise eine Kantenkarte, die Fluchtlinien, die die Perspektive innerhalb des Digitalbildes angeben, gewichtet) zu generieren. Das Kameraparameterbestimmungssystem kann sodann ein geometrisches Modell einsetzen, um die Kantenkarte, die von dem der Detektion kritischer Kanten dienenden neuronalen Netzwerk generiert worden ist, zu analysieren und eine Kamerakalibrierung zu identifizieren. Das Kameraparameterbestimmungssystem kann des Weiteren die Genauigkeit und Effizienz verbessern, indem es Ground-Truth-Daten zum Trainieren des der Detektion kritischer Kanten dienenden neuronalen Netzwerkes generiert.
  • Darstellungshalber kann das Kameraparameterbestimmungssystem Ground-Truth- Fluchtlinien aus einem Satz von Trainingsdigitalbildern generieren. Insbesondere identifiziert das Kameraparameterbestimmungssystem bei einer oder mehreren Ausführungsformen Linien (beispielsweise Kanten) in einem Trainingsdigitalbild und bestimmt Fluchtpunkte durch Analysieren der Linien. Auf Grundlage von Abständen zwischen den Fluchtpunkten und den Linien in dem Digitalbild kann das Kameraparameterbestimmungssystem Ground-Truth-Fluchtlinien identifizieren. Sodann kann das Kameraparameterbestimmungssystem die Trainingsdigitalbilder und die Ground-Truth-Fluchtlinien dafür einsetzen, ein der Detektion kritischer Kanten dienendes neuronales Netzwerk dafür zu trainieren, Fluchtlinien in Digitalbildern zu identifizieren. Ist das der Detektion kritischer Kanten dienende neuronale Netzwerk trainiert, so kann das Kameraparameterbestimmungssystem das der Detektion kritischer Kanten dienende neuronale Netzwerk dafür einsetzen, eine Fluchtkantenkarte zu generieren, die Fluchtlinien für ein Digitalbild angibt. Bei einer oder mehreren Ausführungsformen setzt das Kameraparameterbestimmungssystem die Fluchtkantenkarte (beispielsweise durch Anwenden eines geometrischen Modells) dafür ein, Kameraparameter für das Digitalbild genauer und effizienter zu bestimmen.
  • Wie vorstehend erwähnt worden ist, identifiziert das Kameraparameterbestimmungssystem bei einigen Ausführungsformen Ground-Truth-Fluchtlinien für einen Satz von Trainingsbildern. Insbesondere kann das Kameraparameterbestimmungssystem ein Digitalbild auf eine Kugel abbilden und die Kugel in Bereiche oder „Bins“ (Behälter) unterteilen. Das Kameraparameterbestimmungssystem kann sodann jeden der Schnitte von zwei oder mehr Linien auf der Kugel identifizieren. Bei einer oder mehreren Ausführungsformen setzt das Kameraparameterbestimmungssystem ein abstandsbasiertes Votierschema bei den Linien, Schnitten und/oder Pixeln des Digitalbildes dafür ein, die Hauptfluchtpunkte des Bildes zu bestimmen. Bei einigen Ausführungsformen setzt das Kameraparameterbestimmungssystem die Hauptfluchtpunkte dafür ein, auf Grundlage von Abständen zwischen den verschiedenen Linien in dem Digitalbild und den Hauptfluchtpunkten zu bestimmen, ob jede Linie in dem Digitalbild eine Ground-Truth-Fluchtlinie ist.
  • Zusätzlich kann das Kameraparameterbestimmungssystem, wie vorstehend erläutert worden ist, ein der Detektion kritischer Kanten dienendes neuronales Netzwerk trainieren. Insbesondere setzt das Kameraparameterbestimmungssystem bei einer oder mehreren Ausführungsformen die Ground-Truth-Fluchtlinien für die Trainingsbilder dafür ein, ein der Detektion kritischer Kanten dienendes neuronales Netzwerk zu trainieren, um Fluchtlinien auf überwachte Weise zu bestimmen. Insbesondere kann das Kameraparameterbestimmungssystem, wie nachstehend anhand 4 noch detaillierter beschrieben wird, eine Verlustfunktion in Zusammenwirkung mit den Ground-Truth-Fluchtlinien dafür einsetzen, das der Detektion kritischer Kanten dienende neuronale Netzwerk dafür zu trainieren, Fluchtlinien in einem Digitalbild zu identifizieren. Auf diese Weise kann das Kameraparameterbestimmungssystem ein der Detektion kritischer Kanten dienendes neuronales Netzwerk dafür trainieren, auf Grundlage von Kontextinformation, die auf verschiedenen Ebenen der Abstraktion innerhalb des Digitalbildes analysiert wird, Fluchtlinien zu identifizieren.
  • Das Kameraparameterbestimmungssystem kann des Weiteren ein der Detektion kritischer Kanten dienendes neuronales Netzwerk dafür einsetzen, Fluchtlinien in einem Digitalbild zu identifizieren und eine Fluchtkantenkarte zu generieren. Bei einer oder mehreren Ausführungsformen kann das Kameraparameterbestimmungssystem, sobald das der Detektion kritischer Kanten dienende neuronale Netzwerk trainiert ist, das der Detektion kritischer Kanten dienende neuronale Netzwerk dafür einsetzen, eine Fluchtkantenkarte zu generieren, die mehrere Kantengewichtungen umfasst. Insbesondere kann die Fluchtkantenkarte für jedes Pixel eine Gewichtung beinhalten, die eine Wahrscheinlichkeit dafür angibt, dass jedes Pixel einer Fluchtlinie in dem Digitalbild entspricht.
  • Das Kameraparameterbestimmungssystem kann eine Fluchtkantenkarte dafür einsetzen, Kameraparameter für ein entsprechendes Digitalbild zu bestimmen. Insbesondere kann das Kameraparameterbestimmungssystem ein geometrisches Modell auf die Fluchtkantenkarte anwenden, um Brennweite, Nicken, Rollen und Gieren genau zu bestimmen. Da das Kameraparameterbestimmungssystem das geometrische Modell auf die Fluchtkantenkarte (anstatt auf einen Wust aus irreführenden und fehlerhaften Linien, die in dem Digitalbild enthalten sind) anwenden kann, kann das Kameraparameterbestimmungssystem die Genauigkeit der sich ergebenden Kameraparameter verbessern.
  • Das Kameraparameterbestimmungssystem kann zudem bestimmte Kameraparameter dafür einsetzen, verschiedenartige Funktionen mit einem Digitalbild durchzuführen. Das Kameraparameterbestimmungssystem kann beispielsweise ein nachbearbeitetes Digitalbild generieren. Insbesondere kann das Kameraparameterbestimmungssystem Objekte genau und nahtlos zu einer dreidimensionalen Szene, die in einem Digitalbild abgebildet ist, hinzufügen. Das Kameraparameterbestimmungssystem kann zudem Digitalbilder reprojizieren, um vertikale und horizontale Linien auf Fluchtpunkte auszurichten. Darüber hinaus kann das Kameraparameterbestimmungssystem ein dreidimensionales Modell einer Szene oder eines Objektes, die/das in einem Digitalbild abgebildet ist, auf Grundlage der Kameraparameter und des Digitalbildes generieren/schätzen.
  • Das Kameraparameterbestimmungssystem bietet viele Vorteile und nutzbringende Eigenschaften gegenüber herkömmlichen Systemen und Verfahren. Das Kameraparameterbestimmungssystem kann beispielsweise die Genauigkeit gegenüber herkömmlichen Systemen verbessern. Durch Anwenden eines der Detektion kritischer Kanten dienenden neuronalen Netzwerkes zum Generieren von genauen Fluchtlinien und anschließendes Einsetzen eines geometrischen Modells zum Analysieren der Fluchtlinien kann das Kameraparameterbestimmungssystem Kameraparameter genau bestimmen und genauer und realistischer nachbearbeitete Digitalbilder generieren. Im Gegensatz zu herkömmlichen Systemen, die faltungstechnische neuronale Netzwerke, die Kameraparameter vorhersagen, einsetzen, kann das Kameraparameterbestimmungssystem daher ein geometrisches Modell einsetzen, das auf das Analysieren von genauen Fluchtlinien, die durch ein der Detektion kritischer Kanten dienendes neuronales Netzwerk generiert werden, abstellt, um genaue Kameraparameter zu erzeugen.
  • Zusätzlich kann das Kameraparameterbestimmungssystem die Flexibilität gegenüber herkömmlichen Systemen verbessern. Bei einer oder mehreren Ausführungsformen setzt das Kameraparameterbestimmungssystem beispielsweise ein der Detektion kritischer Kanten dienendes neuronales Netzwerk dafür ein, ungenaue oder irreführende Linien, die beim Wiedergeben der Bildperspektive scheitern, auszufiltern. Das Kameraparameterbestimmungssystem kann sodann ein geometrisches Modell auf die verbleibenden genauen Fluchtlinien anwenden. Daher kann das Kameraparameterbestimmungssystem genaue Kameraparameter bei einer großen Vielzahl von Digitalbildern und sogar bei Digitalbildern, die abgerundete Formen oder willkürliche Linien beinhalten, robust generieren. Das Kameraparameterbestimmungssystem kann zudem die Flexibilität verbessern, indem es Kameraparameter auf Grundlage eines einzigen Digitalbildes bestimmt (anstatt dass es Nutzer nötigt, mehrere Digitalbilder eines Objektes oder einer Szene aufzunehmen und bereitzustellen).
  • Des Weiteren kann das Kameraparameterbestimmungssystem die Effizienz der implementierenden Rechensysteme verbessern. Im Gegensatz zu herkömmlichen Systemen kann das Kameraparameterbestimmungssystem Kameraparameter bestimmen, indem es ein einziges Digitalbild analysiert (anstatt dass es mehrere Digitalbilder analysiert). Zusätzlich kann das Kameraparameterbestimmungssystem Trainingsdaten (beispielsweise aus bestehendem Digitalbildsammlungen) zum Trainieren des der Detektion kritischer Kanten dienenden neuronalen Netzwerkes effizient generieren und einsetzen. Dies kann die Verarbeitungsleistung wie auch die Zeit, die zum Generieren und Einsetzen von herkömmlichen etikettierten Trainingsdaten benötigt werden, erheblich verringern.
  • Insgesamt kann das Kameraparameterbestimmungssystem durch Einsetzen eines der Detektion kritischer Kanten dienenden neuronalen Netzwerkes Kontextinformation in dem Bild dafür einsetzen, genaue Fluchtlinien zu bestimmen (beispielsweise ist eine erste Kante aus einer Fußleiste, wo wahrscheinlich ist, dass die Kante zu einem Fluchtpunkt weist; oder es ist eine zweite Kante Teil eines Treppengeländers, wo wahrscheinlich ist, dass es eine Biegung macht). Darüber hinaus kann das Kameraparameterbestimmungssystem die Präzision geometrischer Modelle dort, wo derartige Modelle wahrscheinlich erfolgreich funktionieren, nutzen, um im Vergleich zu herkömmlichen Systemen eine bessere Gesamtleistung zu erreichen.
  • Wie in der vorstehenden Diskussion dargelegt ist, setzt die vorliegende Offenbarung eine Vielzahl von Begriffen ein, um Merkmale und nutzbringende Eigenschaften eines dynamischen Darstellungsverwaltungssystems zu beschreiben. Zusätzliche Details im Zusammenhang mit der Bedeutung von Begriffen im Sinne ihrer Nutzung in der vorliegenden Offenbarung sind nachstehend angegeben. Im Sinne des Vorliegenden bezeichnet der Begriff „Digitalbild“ beispielsweise ein beliebiges Digitalsymbol, ein beliebiges Bild, einen beliebigen Icon oder eine beliebige Darstellung. Der Begriff „Digitalbild“ beinhaltet beispielsweise Digitaldateien mit den folgenden oder auch anderen Dateierweiterungen: JPG, TIFF, BMP, PNG, RAW oder PDF. Der Begriff „Digitalbild“ beinhaltet zudem ein oder mehrere Bilder (beispielsweise Frames) in einem Digitalvideo. Zusätzlich bezeichnet der Begriff „Digitalbild“ 3D-Objekte, die in einem Digitalformat dargestellt sind. Der Begriff „Digitalbild“ beinhaltet beispielsweise Digitaldateien mit den folgenden oder auch anderen Dateierweiterungen: OBJ, DAE, 3DS, U3D und KMZ. Obwohl ein Großteil der vorliegenden Beschreibung unter Nutzung des Begriffes „Digitalbild“ formuliert ist, sollte einsichtig sein, dass die Offenbarung auch auf das Extrahieren von Eigenschaften aus einem Digitalvideo und/oder das Bearbeiten desselben angewendet werden kann. Im Sinne des Vorliegenden bezeichnet der Begriff „Trainingsdigitalbild“ zudem ein Digitalbild, das zum Trainieren eines neuronalen Netzwerkes benutzt wird. Insbesondere kann der Begriff „Trainingsdigitalbild“ ein Digitalbild beinhalten, das Ground-Truth-Daten zugeordnet ist, die zum Trainieren eines neuronalen Netzwerkes eingesetzt werden können.
  • Im Sinne des Vorliegenden bezeichnet der Begriff „Kameravorrichtung“ eine beliebige Vorrichtung, die zum Aufnehmen von Bildern benutzt werden kann. Insbesondere kann der Begriff „Kameravorrichtung“ eine Vorrichtung beinhalten, die eine beliebige Art von Digitalbild, wie vorstehend beschrieben worden ist, aufnehmen kann. Darstellungshalber kann die Kameravorrichtung eine Digital- oder Filmkamera, ein Mobiltelefon oder eine andere Mobilvorrichtung, ein Tablet, einen Computer oder eine beliebige andere Vorrichtung, die Bilder aufnehmen kann, beinhalten.
  • Zusätzlich bezeichnet der Begriff „Kameraparameter“ im Sinne des Vorliegenden Charakteristiken oder Eigenschaften einer Kameravorrichtung, die zum Aufnehmen eines Digitalbildes eingesetzt wird. Insbesondere kann der Begriff „Kameraparameter“ Charakteristiken einer Kameravorrichtung zum Zeitpunkt des Aufnehmens von etwas Digitalem beinhalten, das das Aussehen des Digitalbildes beeinflusst. Darstellungshalber kann ein Kameraparameter Brennweite, Sichtfeld, Nicken, Rollen und/oder Gieren beinhalten.
  • Im Sinne des Vorliegenden bezeichnet der Begriff „neuronales Netzwerk“ zudem ein Modell maschinellen Lernens, das auf Grundlage von Eingaben dafür abgestimmt (beispielsweise trainiert) werden kann, unbekannte Funktionen zu nähern. Insbesondere kann der Begriff „neuronales Netzwerk“ ein Modell mit wechselseitig verbundenen Schichten beinhalten, die Attribute mit verschiedenen Graden der Abstraktion kommunizieren und analysieren, um das Nähern komplexer Funktionen und das Generieren von Ausgaben auf Grundlage mehrerer für das Modell bereitgestellter Eingaben zu erlernen. Der Begriff „neuronales Netzwerk“ beinhaltet beispielsweise einen oder mehrere Algorithmen maschinellen Lernens. Mit anderen Worten beinhaltet ein neuronales Netzwerk einen Algorithmus, der Deep-Learning-Techniken implementiert, das heißt maschinelles Lernen, das einen Satz von Algorithmen dafür einsetzt, das Modellieren von auf hoher Ebene gegebenen Abstraktionen bei Daten zu versuchen. Zusätzliche Details im Zusammenhang mit exemplarischen neuronalen Netzwerken und entsprechenden Netzwerkarchitekturen sind nachstehend angegeben.
  • Des Weiteren bezeichnet der Begriff „der Detektion kritischer Kanten dienendes neuronales Netzwerk“ im Sinne des Vorliegenden ein neuronales Netzwerk zum Identifizieren von Fluchtlinien aus einem Digitalbild. Ein der Detektion kritischer Kanten dienendes neuronales Netzwerk kann beispielsweise ein neuronales Netzwerk (beispielsweise zum Generieren einer Fluchtkantenkarte, die Fluchtlinien aus einem Digitalbild umfasst) beinhalten. Bei einer oder mehreren Ausführungsformen umfasst das der Detektion kritischer Kanten dienende neuronale Netzwerk ein faltungstechnisches neuronales Netzwerk, so beispielsweise ein Stacked-Hourglass-Netzwerk. Zusätzliche Details im Zusammenhang mit exemplarischen Architekturen und Fähigkeiten eines der Detektion kritischer Kanten dienenden neuronalen Netzwerkes werden nachstehend (beispielsweise anhand 2, 4 sowie 5-6) detaillierter beschrieben.
  • Zusätzlich bezeichnet der Begriff „Fluchtpunkt“ im Sinne des Vorliegenden einen Bereich in einem Bild, der eine Perspektive angibt (beispielsweise einen perspektivisch relevanten Punkt oder eine solche Richtung, in der Linien in einem Bild zusammenzulaufen scheinen). Insbesondere kann der Begriff „Fluchtpunkt“ einen Punkt, einen Vektor, eine Linie oder einen Bereich (beispielsweise einen Augenpunkt, eine Horizontlinie oder einen Nordpol) in einem Digitalbild beinhalten, wo die zweidimensionalen perspektivischen Projektionen wechselseitig paralleler Linien in einem dreidimensionalen Raum zusammenzulaufen scheinen. Ein Fluchtpunkt kann einen horizontalen Fluchtpunkt (beispielsweise eine gemeinsame Richtung / eine gemeinsame Linie / einen gemeinsamen Punkt / einen gemeinsamen Bereich entlang eines Horizonts, so beispielsweise einen Atlanta-Fluchtpunkt), einen vertikalen Fluchtpunkt (beispielsweise eine gemeinsame Richtung / eine gemeinsame Linie / einen gemeinsamen Punkt / einen gemeinsamen Bereich für vertikale Linien eines Digitalbildes) oder einen anderen Fluchtpunkt beinhalten. Ein Fluchtpunkt kann eine Vielzahl von Formen annehmen, so beispielsweise als Punkt in einem zweidimensionalen Raum, wo Linien zusammenlaufen. Bei dreidimensionalen Anwendungen (wenn beispielsweise ein Digitalbild auf eine dreidimensionale panoramische Kugel abgebildet wird) kann der Begriff „Fluchtpunkt“ auch eine Fluchtrichtung (beispielsweise einen Vektor, der eine Richtung angibt, wohin perspektivische Linien in dem Bild weisen oder wo sich diese schneiden) beinhalten. Bei einigen Ausführungsformen identifiziert das Kameraparameterbestimmungssystem Fluchtpunkte, die orthogonale Fluchtrichtungen im dreidimensionalen Raum (beispielsweise Fluchtrichtungen in orthogonalen x-, y- und z-Richtungen) beinhalten. Bei einer oder mehreren Ausführungsformen entsprechen Fluchtpunkte drei Manhattan-Richtungen, die x-, y- und z-Richtungen bezugsrichtig wiedergeben.
  • Zudem bezeichnet der Begriff „Fluchtlinien“ im Sinne des Vorliegenden Linien in einem Digitalbild, die einem oder mehreren Fluchtpunkten in einem Digitalbild entsprechen. Insbesondere kann der Begriff „Fluchtlinien“ Linien beinhalten, die an einem Fluchtpunkt (beispielsweise an einem Horizontfluchtpunkt oder an einem vertikalen Fluchtpunkt) zusammenlaufen, die nahe an einem Fluchtpunkt sind oder die mit einem Fluchtpunkt ausgerichtet sind.
  • Im Sinne des Vorliegenden bezeichnet der Begriff „Ground-Truth“ Information eines bekannten Satzes von Pixeln, der einen bekannten Satz von Eigenschaften für ein Digitalbild, das zum Trainieren eines neuronalen Netzwerkes eingesetzt wird, wiedergibt. Ground-Truth-Fluchtlinien können beispielsweise bekannte Fluchtlinien sein, die aus einem Digitalbild identifiziert werden (beispielsweise Linien, die zu einem Fluchtpunkt weisen). Das Kameraparameterbestimmungssystem kann Ground-Truth-Fluchtlinien dafür einsetzen, ein der Detektion kritischer Kanten dienendes neuronales Netzwerk zu trainieren.
  • Des Weiteren bezeichnet der Begriff „Trainingslinie“ im Sinne des Vorliegenden Linien, die in einem Trainingsdigitalbild identifiziert werden. Insbesondere kann der Begriff „Trainingslinie“ eine Linie beinhalten, die durch Anwenden eines Kantendetektionsmodells auf ein Trainingsdigitalbild identifiziert wird. Eine Trainingslinie kann daher eine beliebige Linie oder Kante, die in einem Trainingsdigitalbild abgebildet wird, beinhalten. Wie nachstehend noch detaillierter erläutert wird, kann das Kameraparameterbestimmungssystem Ground-Truth-Fluchtlinien aus Trainingslinien in einem Trainingsdigitalbild bestimmen.
  • Zudem bezeichnet der Begriff „Fluchtkantenkarte“ im Sinne des Vorliegenden eine Darstellung von Fluchtlinien aus einem Digitalbild. Darstellungshalber kann die Fluchtkantenkarte eine Feldanordnung, einen Vektor, eine Datenbank oder ein Bild (beispielsweise ein Schwarz-weiß- oder ein Graustufenbild) umfassen, wo jeder Eintrag ein Pixel des Digitalbildes darstellt und angibt, ob das Pixel einer Fluchtlinie entspricht. Bei einer oder mehreren Ausführungsformen umfasst die Fluchtkantenkarte Gewichtungen (ist also eine gewichtete Fluchtkantenkarte), bei der jede Gewichtung einen Zuverlässigkeitswert (das heißt ein Maß für die Zuverlässigkeit, so beispielsweise eine Wahrscheinlichkeit) dafür angibt, dass ein entsprechendes Pixel einen Abschnitt einer Fluchtlinie innerhalb des Digitalbildes abbildet.
  • Auf ähnliche Weise bezeichnet der Begriff „gewichtete Fluchtkantenkarte“ im Sinne des Vorliegenden eine Fluchtkantenkarte für ein Digitalbild, die auf Grundlage von Gewichtungen für die Linien in dem Bild generiert wird. Darstellungshalber kann das Kameraparameterbestimmungssystem Gewichtungen für jede Linie in einem Digitalbild auf Grundlage von verschiedenen Kriterien bestimmen, darunter Linienlänge und/oder Abstand zwischen den Linien und einem oder mehreren Fluchtpunkten (das heißt Winkelabstand zwischen den Linien in dem Bild und den Fluchtpunkten und/oder linearer Abstand zwischen den Fluchtpunkten und Schnitten von Linien in dem Bild). Sodann kann das Kameraparameterbestimmungssystem eine Fluchtkantenkarte durch Anwenden der Gewichtungen generieren. Das Kameraparameterbestimmungssystem kann beispielsweise Linien zur Aufnahme in die gewichtete Fluchtkantenkarte auf Grundlage der Gewichtungen (beispielsweise auf Grundlage dessen, ob die Gewichtungen einem Schwellenwert genügen) bestimmen.
  • Im Sinne des Vorliegenden bezeichnet der Begriff „Gewichtungen“ zudem einen Wert, der dafür eingesetzt wird, ein oder mehrere Pixel hervorzuheben und/oder die Hervorhebung zu entfernen. Eine Gewichtung kann beispielsweise einen Zuverlässigkeitswert (beispielsweise ein beliebiges Maß für die Zuverlässigkeit, so beispielsweise einen Wahrscheinlichkeitswert) beinhalten. Der Begriff „Gewichtung“ kann beispielsweise einen Zuverlässigkeitswert dafür, dass eine gegebene Linie eine Fluchtlinie ist, oder einen Zuverlässigkeitswert dafür, dass eine gegebene Linie in einer Fluchtlinie beinhaltet ist, bezeichnen. Im Sinne des Vorliegenden bezeichnet der Begriff „Trainingsgewichtung“ des Weiteren eine Gewichtung einer Linie und/oder eines Pixels in einem Trainingsbild. Insbesondere kann eine Trainingsgewichtung als Teil eines Trainingsbildes dafür eingesetzt werden, ein der Detektion kritischer Kanten dienendes neuronales Netzwerk zu trainieren.
  • Zusätzlich bezeichnet der Begriff „geometrisches Modell“ im Sinne des Vorliegenden ein Modell, das Linien und/oder Formen in einem Digitalbild analysiert, um Kameraparameter zu schätzen. Der Begriff „geometrisches Modell“ kann beispielsweise ein Modell betreffen, das orientierte Elemente aus einem Digitalbild gruppiert und diese iterativ verfeinert, um Richtungen oder Kameraparameter für das Bild zu schätzen. Darstellungshalber kann der Begriff „geometrisches Modell“ Modelle beinhalten, die nach zusammenlaufenden Linien und deren Schnitten suchen, um vertikale und/oder horizontale Richtungen und/oder Kameraparameter in einem Digitalbild zu bestimmen.
  • Zusätzliche Details im Zusammenhang mit dem Kameraparameterbestimmungssystem werden nunmehr anhand illustrativer Figuren bereitgestellt, die exemplarische Ausführungsformen abbilden. Insbesondere zeigt 1 eine Kameraparameterbestimmungsumgebung 100. Wie in 1 dargestellt ist, beinhaltet die Kameraparameterbestimmungsumgebung 100 eine Clientvorrichtung 102, die eine Clientanwendung 104 beinhaltet und einem Nutzer 106 zugeordnet ist. Die Clientvorrichtung 102 kommuniziert mit einer Servervorrichtung / Servervorrichtungen 110 über ein Netzwerk 108. Die Servervorrichtung/Servervorrichtungen 110 kann/können ein Digitalmedienverwaltungssystem 112 beinhalten, das wiederum das Kameraparameterbestimmungssystem 114 beinhalten kann.
  • Obwohl 1 das Kameraparameterbestimmungssystem 114, das mittels der Servervorrichtung/Servervorrichtungen 110 implementiert ist, darstellt, kann das dynamische Darstellungsverwaltungssystem bzw. Kameraparameterbestimmungssystem 114 auch mittels anderer Komponenten implementiert sein. Das Kameraparameterbestimmungssystem 114 kann beispielsweise gänzlich oder in Teilen durch die Clientvorrichtung 102 implementiert sein. Auf ähnliche Weise kann das Kameraparameterbestimmungssystem 114 sowohl mittels der Clientvorrichtung 102 wie auch mittels der Servervorrichtung/Servervorrichtungen 110 implementiert sein.
  • Die Clientvorrichtung 102 kann verschiedene Typen von Rechenvorrichtungen beinhalten. Die Clientvorrichtung 102 kann beispielsweise eine Mobilvorrichtung (beispielsweise ein Smartphone), ein Tablet, ein Laptopcomputer, ein Desktopcomputer oder ein beliebiger anderer Typ von Rechenvorrichtung, wie nachstehend noch anhand 10 beschrieben wird, sein. Zusätzlich kann die Clientanwendung 104 einen beliebigen von verschiedenen Typen von Clientanwendungen beinhalten. Die Clientanwendung 104 kann beispielsweise eine Online-Anwendung (beispielsweise ein Webbrowser) sein, und ein Nutzer 106 kann an der Clientvorrichtung 102 eine URL (Unique Ressource Locator) oder eine andere Adresse, die den Webbrowser an eine Servervorrichtung/Servervorrichtungen 110 verweist, eingeben. Alternativ kann die Clientanwendung 104 eine andere native Anwendung sein, die zur Nutzung auf der Clientvorrichtung 102 entwickelt worden ist.
  • Zusätzlich kann/können die Servervorrichtung/Servervorrichtungen 110 eine oder mehrere Rechenvorrichtungen, darunter die nachstehend anhand 10 erläuterten, beinhalten. Bei einigen Ausführungsformen umfasst/umfassen die Servervorrichtung/Servervorrichtungen 110 einen Contentserver. Die Servervorrichtung/Servervorrichtungen 110 kann/können zudem einen Anwendungsserver, einen Kommunikationsserver, einen Webhosting-Server, einen Social-Networking-Server oder einen Digitalcontentkampagnenserver umfassen.
  • Die Clientvorrichtung 102, die Servervorrichtung/Servervorrichtungen 110 und das Netzwerk 108 können unter Nutzung beliebiger Kommunikationsplattformen und Technologien kommunizieren, die zum Transportieren von Daten und/oder Kommunikationssignalen geeignet sind, darunter beliebige geeignete Kommunikationstechnologien, Vorrichtungen, Medien und Protokolle, die die Datenkommunikation unterstützen, wofür Beispiele noch anhand 10 beschrieben werden.
  • Obwohl dies eigentlich nicht zwingend ist, kann das Kameraparameterbestimmungssystem 114 Teil eines Digitalmedienverwaltungssystems 112 sein. Das Digitalmedienverwaltungssystem 112 sammelt, überwacht, verwaltet, bearbeitet, verteilt und analysiert verschiedene Medien. Das Digitalmedienverwaltungssystem 112 kann beispielsweise Digitalbilder oder Digitalvideos auf Grundlage einer Nutzereingabe, die über eine oder mehrere Nutzerschnittstellen an der Clientvorrichtung 102 identifiziert wird, analysieren und bearbeiten. Bei einer oder mehreren Ausführungsformen kann das Digitalmedienverwaltungssystem 112 das Kameraparameterbestimmungssystem 114 dafür einsetzen, Kameraparameter zu bestimmen und/oder Digitalbilder auf Grundlage der Kameraparameter zu modifizieren. Das Digitalmedienverwaltungssystem 112 kann für das Kameraparameterbestimmungssystem 114 beispielsweise Digitalbilder bereitstellen, und das Kameraparameterbestimmungssystem 114 kann für das Digitalmedienverwaltungssystem 112 Kameraparameter für die bereitgestellten Bilder bereitstellen. Bei anderen Ausführungsformen kann/können die Servervorrichtung/Servervorrichtungen 110 ein System, das nicht das Digitalmedienverwaltungssystem 112 ist, beinhalten, und das Kameraparameterbestimmungssystem 114 kann Bilder über alternative Mittel empfangen. Die Servervorrichtung/Servervorrichtungen 110 kann/können beispielsweise Bilder über das Netzwerk 108 von der Clientvorrichtung 102 oder aus einer anderen Quelle empfangen. Wie vorstehend erläutert worden ist, kann das Kameraparameterbestimmungssystem 114 Kameraparameter für ein Digitalbild effizient, genau und flexibel bestimmen. Insbesondere zeigt 2 eine Übersicht über das Bestimmen von Kameraparametern für Digitalbilder entsprechend einer oder mehreren Ausführungsformen.
  • Insbesondere stellt, wie in 2 gezeigt ist, das Kameraparameterbestimmungssystem 114 ein Digitalbild 202 für ein der Detektion kritischer Kanten dienendes neuronales Netzwerk 204 bereit, das eine Fluchtkantenkarte 206 generiert. Das Kameraparameterbestimmungssystem 114 kann sodann ein geometrisches Modell 208 auf die Fluchtkantenkarte 206 anwenden. Das Kameraparameterbestimmungssystem 114 kann das geometrische Modell 208 dafür einsetzen, Kameraparameter 210 für das Digitalbild 202 zu bestimmen.
  • Wie in 2 gezeigt ist, empfängt das Kameraparameterbestimmungssystem 114 ein Digitalbild 202 und bestimmt die Kameraparameter für jenes Bild. Das Digitalbild 202 kann von einem beliebigen von verschiedenartigen Dateitypen sein und kann einen beliebigen von verschiedenen Szenetypen darstellen. Das Kameraparameterbestimmungssystem 114 kann des Weiteren die Kameraparameter für viele Digitalbilder bestimmen, und zwar ohne Rücksicht auf Ähnlichkeiten oder Unterschiede zwischen den Datei- oder Szenetypen eines Satzes von Digitalbildern.
  • Wie weiter in 2 dargestellt ist, kann das Kameraparameterbestimmungssystem 114 ein der Detektion kritischer Kanten dienendes neuronales Netzwerk 204 dafür einsetzen, eine Fluchtkantenkarte 206 zu generieren. Wie nachstehend noch detailliert anhand 3-4 beschrieben wird, kann das Kameraparameterbestimmungssystem 114 ein der Detektion kritischer Kanten dienendes neuronales Netzwerk dafür trainieren, eine Fluchtkantenkarte 206, die die Fluchtlinien aus einem Digitalbild beinhaltet, zu generieren. Das der Detektion kritischer Kanten dienende neuronale Netzwerk 204 kann Linien in dem Digitalbild 202 identifizieren und bestimmen, ob jede der Linien in dem Digitalbild eine Fluchtlinie (beispielsweise eine Fluchtlinie entsprechend einem Fluchtpunkt) ist. Wie dargestellt ist, setzt das der Detektion kritischer Kanten dienende neuronale Netzwerk 204 die identifizierten Fluchtlinien aus dem Digitalbild 202 dafür ein, eine Fluchtkantenkarte (die beispielsweise jede der Fluchtlinien aus dem Digitalbild 202 und keine der Linien aus dem Digitalbild, die keine Fluchtlinien sind, beinhaltet) zu generieren.
  • Wie in 2 gezeigt ist, setzt das Kameraparameterbestimmungssystem 114 ein geometrisches Modell 208 dafür ein, Kameraparameter 210 aus der Fluchtkantenkarte 206 zu generieren. Das geometrische Modell 208 detektiert Fluchtlinien in der Fluchtkantenkarte 206 und nutzt die Fluchtlinien dafür, Fluchtpunkte und Kameraparameter für das Digitalbild 202 zu schätzen. Durchgeführt werden kann dies (upright) durch Gruppieren von orientierten Linien aus der Fluchtkantenkarte 206 zu einer Anzahl von Fluchtpunkten in der Szene sowie durch iteratives Verfeinern hiervon. Das Anwenden des geometrischen Modells 208 auf die Fluchtkantenkarte 206 (anstatt auf das Digitalbild 202) führt zu genaueren Ergebnissen, da irreführende oder „falsche“ Liniensegmente nicht vorhanden sind. Entsprechend ist das Kameraparameterbestimmungssystem 114 auf Grundlage der Anwendung des geometrischen Modells 208 auf die Fluchtkantenkarte 206 dazu in der Lage, Kameraparameter 210 für das Digitalbild 202 genauer und effizienter zu bestimmen.
  • Das geometrische Modell 208 setzt eine optimierungsbasierte Kamerakalibrierung dafür ein, Fluchtlinien, Fluchtpunkte und Kameraparameter für ein Digitalbild zu schätzen. Das geometrische Modell kann zudem aufrechte Anpassungen (upright adjustments) durchführen, bei denen das Modell Linien in dem Bild automatisch modifiziert, um das Digitalbild auszurichten (straighten). Die Anpassungen bringen schräge Linien in Übereinstimmung damit, wie die Wahrnehmung eines Menschen das Bild erwartungsgemäß sehen würde. Mit anderen Worten, das geometrische Modell 208 kann Verzerrungen in Bezug auf die Beobachtung durch einen Menschen entfernen. Eine derartige Anpassung kann im Zusammenhang mit einem Bild mit starken geometrischen Hinweisen (cues), so beispielsweise bei Bildern, die große menschgemachte Strukturen beinhalten, hilfreich sein.
  • Zum Bestimmen von Kameraparametern für das Bild führt das geometrische Modell 208 einen Kantendetektionsalgorithmus an dem Digitalbild dafür durch, Linien in dem Digitalbild zu identifizieren. Das geometrische Modell 208 setzt eine Energiefunktion ein und optimiert die Funktion iterativ, um verschiedene Matrizen (beispielsweise eine kameraintrinsische Parametermatrix, eine Orientierungsmatrix) zu schätzen, die sodann zum Schätzen der Fluchtpunkte, Fluchtlinien und Kameraparameter für ein Bild genutzt werden können. Gleichwohl kann das geometrische Modell 208, wie vorstehend erläutert worden ist, bei der Schätzung für Bilder ohne starke geometrische Hinweise (cues) oder mit vielen gekrümmten oder nahezu parallelen Linien ungenau sein.
  • Das Kameraparameterbestimmungssystem 114 kann bei einer oder mehreren Ausführungsformen beispielsweise dasjenige geometrische Modell 208 anwenden, bei dem ein Lösungsweg eingesetzt wird, der beschrieben wird in: „Camera Calibration and Automatic Adjustement Of Images“, Patent Nr. 9098885B2 von Elya Shechtman, Jue Wang, Hyunjoon Lee und Seungyong Lee. Diese Quelle wird hiermit in Gänze durch Verweis mit aufgenommen. Auf ähnliche Weise kann das Kameraparameterbestimmungssystem 114 das geometrische Modell 208 anwenden, indem es einen Lösungsweg einsetzt, der beschrieben ist in „Automatic Upright Adjustment of Photographs“ von Hyunjoon Lee, Eli Shechtman, Jue Wang und Seungyong Lee, veröffentlicht im Journal of Latex Class Files, Band 6, Nr. 1 (Januar 2007). Auch diese Quelle ist hiermit durch Verweis in Gänze mit aufgenommen.
  • Bei einer oder mehreren Ausführungsformen setzt das Kameraparameterbestimmungssystem 114 eine alternativen Lösungsweg in Reaktion auf eine Bestimmung dessen ein, dass eine Fluchtkantenkarte für das geometrische Modell 208 zum Erreichen genauer Ergebnisse unzureichend ist. In Reaktion auf eine Bestimmung dessen, dass eine Fluchtkantenkarte beispielsweise eine unzureichende Anzahl von Fluchtlinien zur Nutzung bei dem geometrischen Modell 208 (beispielsweise weniger als eine Schwellenanzahl von Fluchtlinien, die einer Zuverlässigkeitswertschwelle genügen) aufweist, kann das Kameraparameterbestimmungssystem 114 einen Lösungsweg mit einem direkten faltungstechnischen neuronalen Netzwerk einsetzen. Insbesondere setzt das Kameraparameterbestimmungssystem bei einer oder mehreren Ausführungsformen einen CNN-basierten Lösungsweg (Convolutional Neural Network CNN, faltungstechnisches neuronales Netzwerk) dafür ein, Kameraparameter für das Digitalbild direkt zu bestimmen.
  • Wie vorstehend erwähnt worden ist, kann das Kameraparameterbestimmungssystem 114 Ground-Truth-Daten zum Trainieren eines der Detektion kritischer Kanten dienenden neuronalen Netzwerkes generieren. 3A bis 3C zeigen das Generieren von Ground-Truth-Daten entsprechend einer oder mehreren Ausführungsformen. Insbesondere zeigen 3A bis 3C, dass das Kameraparameterbestimmungssystem Linien in einem Digitalbild identifiziert und bestimmt, ob jede Linie eine Fluchtlinie ist, um einen Satz von Ground-Truth-Fluchtlinien für das Digitalbild zu generieren. Insbesondere zeigt 3, dass das Kameraparameterbestimmungssystem 114 eine ungefilterte Kantenkarte generiert. Sodann zeigt 3B, dass das Kameraparameterbestimmungssystem 114 die ungefilterte Kantenkarte auf ein kugelförmiges Panorama abbildet und Hauptfluchtpunkte identifiziert. Zusätzlich zeigt 3C, dass das Kameraparameterbestimmungssystem 114 Hauptfluchtpunkte und eine ungefilterte Kantenkarte dafür einsetzt, eine Ground-Truth- Kantenkarte zu generieren.
  • Wie in 3A gezeigt ist, empfängt das Kameraparameterbestimmungssystem 114 ein Digitalbild 302 und generiert auf Grundlage des Digitalbildes 302 eine ungefilterte Kantenkarte 304. Die ungefilterte Kantenkarte 304 beinhaltet Linien, die aus dem Digitalbild 302 detektiert sind (das heißt sowohl Fluchtlinien wie auch Nichtfluchtlinien aus dem Digitalbild 302). Zum Generieren der ungefilterten Kantenkarte 304 wendet das Kameraparameterbestimmungssystem 114 einen Kantendetektionsalgorithmus auf das Digitalbild 302 an, um jede der Linien aus dem Digitalbild zu identifizieren.
  • Wie in 3B gezeigt ist, kann das Kameraparameterbestimmungssystem 114 die ungefilterte Kantenkarte 304 auf eine Kugel (das heißt ein kugelförmiges Panorama, das eine Kugel oder einen Abschnitt einer Kugel umfasst) abbilden, wodurch eine kantenabgebildete Kugel 306 generiert wird. Die kantenabgebildete Kugel 306 beinhaltet wie die ungefilterte Kantenkarte 304 die detektierten Linien aus dem Digitalbild 302. Nach dem Abbilden der ungefilterten Kantenkarte 304 auf die Kugel unterteilt das Kameraparameterbestimmungssystem 114 die kantenabgebildete Kugel 306 in verschiedene Bereiche oder „Bins“. Bei einer oder mehreren Ausführungsformen identifiziert das Kameraparameterbestimmungssystem 114 des Weiteren jeden Schnitt auf der kantenabgebildeten Kugel 306 und generiert auf Grundlage dieser Schnitte eine schnittabgebildete Kugel 308.
  • Wie vorstehend erwähnt worden ist, kann das Kameraparameterbestimmungssystem 114 bei einer oder mehreren Ausführungsformen die Trainingslinien aus einem panoramischen Digitalbild auf ein kugelförmiges Panorama (beispielsweise eine Kugel oder eine kugelartige Form) abbilden. Das Kameraparameterbestimmungssystem 114 kann sodann verschiedene Abschnitte des panoramischen Digitalbildes „abtasten“ (sample), indem es das Bild in mehrere verschiedene, gegebenenfalls überlappende Teilbilder unterteilt. Das Kameraparameterbestimmungssystem 114 kann diese Teilbilder als Trainingsbilder präparieren, sowie die Schritte, die nachstehend anhand 3B-3C aufgeführt sind, durchführen und die Bilder als Trainingsbilder beim Trainieren des der Detektion kritischer Kanten dienenden neuronalen Netzwerkes einsetzen.
  • Wie in 3B gezeigt ist, kann das Kameraparameterbestimmungssystem 114 ein abstandsbasiertes Votieren für Fluchtpunkte 310 durchführen. Wie vorstehend erläutert worden ist, kann das Kameraparameterbestimmungssystem 114 bei einer oder mehreren Ausführungsformen einen Satz von „Bins“ oder Bereichen auf den Kugeln 306, 308 bestimmen. Bei einer oder mehreren Ausführungsformen unterteilt das Kameraparameterbestimmungssystem 114 die Kugel gleichförmig oder gleichmäßig. Bei einer oder mehreren Ausführungsformen kann das Kameraparameterbestimmungssystem 114 des Weiteren abstandsbasierte „Voten“ für die Linien auf der kantenabgebildeten Kugel 306 und/oder die Schnitte auf der schnittabgebildeten Kugel 308 bestimmen. Das Kameraparameterbestimmungssystem 114 kann eine Hough-Transformation an den detektierten Liniensegmenten auf der kantenabgebildeten Kugel 306 oder eine beliebige aus einer Vielzahl von ähnlichen Transformationen durchführen.
  • Insbesondere kann das Kameraparameterbestimmungssystem 114 ein beliebiges aus einer Vielzahl von Votierschemen dafür einsetzen, die Hauptfluchtpunkte für das Digitalbild 302 zu bestimmen. Das Kameraparameterbestimmungssystem 114 kann Voten aus Pixeln, Linien oder Schnitten auf Grundlage des Abstandes von verschiedenen möglichen Fluchtpunkten oder auf Grundlage der Orientierung bezüglich dieser bestimmen. Das Kameraparameterbestimmungssystem 114 kann beispielsweise ein paarweise wirkendes Votierschema initiieren, bei dem Schnitte zwischen Linien in Bezug auf jede der Linien, die an dem Schnitt beteiligt ist, berücksichtigt werden. Bei einer weiteren Ausführungsform kann das Kameraparameterbestimmungssystem 114 Winkelabstände zwischen jeder der Linien auf der kantenabgebildeten Kugel 306 und jedem der möglichen Fluchtpunkte bestimmen, um „Voten“ zu bestimmen.
  • Auf Grundlage des Votierens kann das Kameraparameterbestimmungssystem 114 letztendlich Hauptfluchtpunkte 312 für das Bild bestimmen. Bei einer oder mehreren Ausführungsformen identifiziert das Kameraparameterbestimmungssystem 114 eine vorbestimmte Anzahl von Fluchtpunkten (beispielsweise die drei oberen Bins als drei obere Fluchtpunkte). Bei anderen Ausführungsformen identifiziert das Kameraparameterbestimmungssystem 114 eine beliebige Anzahl von Fluchtpunkten (beispielsweise beliebige Fluchtpunkte, die einer Schwellenanzahl oder einem prozentualen Anteil von Voten genügen). Bei einigen Ausführungsformen identifiziert das Kameraparameterbestimmungssystem 114 Fluchtpunkte entsprechend wechselseitig orthogonalen Fluchtrichtungen. Horizontale Fluchtrichtungen 314, 316 und eine vertikale Fluchtrichtung 318 sind beispielsweise wechselseitig orthogonal.
  • Wie in 3C gezeigt ist, setzt das Kameraparameterbestimmungssystem 114 die Hauptfluchtpunkte 312 und die ungefilterte Kantenkarte 304 dafür ein, einen Vorgang 320 des Gewichtens von Linien durchzuführen, um die Ground-Truth-Kantenkarte 322 zu generieren. Insbesondere kann das Kameraparameterbestimmungssystem 114 jede der Linien in der ungefilterten Kantenkarte 304 gewichten. Das Kameraparameterbestimmungssystem 114 kann Gewichtungen (nämlich Trainingsgewichtungen) für jede der Linien auf Grundlage der Abstände zwischen jeder der Linien und den Hauptfluchtpunkten des Bildes 302 und/oder auf Grundlage einer Ausrichtung der Linien mit jedem der Hauptfluchtpunkte des Bildes 302 bestimmen.
  • Diese Trainingsgewichtungen können eine Wahrscheinlichkeit oder einen Zuverlässigkeitswert dafür wiedergeben, dass jede der gewichteten Linien eine Fluchtlinie ist. Bei einer oder mehreren Ausführungsformen basieren die Gewichtungen auf dem Abstand von einem oder mehreren der identifizierten Fluchtpunkte und der Linien, der Schnitte zwischen den Linien oder der Pixel, die die Linien bilden. Die Gewichtungen können beispielsweise auf einem Winkelabstand zwischen einem Fluchtpunkt und der Linie basieren. Bei einem anderen Beispiel können die Gewichtungen auf linearen Abständen zwischen Linienschnitten und den Fluchtpunkten basieren. Das Kameraparameterbestimmungssystem 114 kann sodann Gewichtungen auf Grundlage dieser gemessenen Abstände zuweisen und Gewichtungen auf Grundlage einer linearen Beziehung zwischen dem Abstand und der Gewichtung selbst bestimmen.
  • Bei einer oder mehreren Ausführungsformen kann das Kameraparameterbestimmungssystem 114 sodann die Gewichtungen für jede der Linien dafür nutzen, die Ground-Truth-Kantenkarte 316 zu generieren. Das Kameraparameterbestimmungssystem 114 kann bestimmen, welche Linien als Fluchtlinien in die Ground-Truth-Fluchtkantenkarte 322 aufgenommen werden sollen. Bei einer oder mehreren Implementierungen kann die Gewichtung eine Schwelle beinhalten, an der eine Gewichtung als Fluchtlinie betrachtet wird. Dies bedeutet, dass eine Gewichtung über einer vorbestimmten Schwelle bewirkt, dass das Kameraparameterbestimmungssystem 114 die gewichtete Linie in die Ground-Truth-Fluchtkantenkarte 322 aufnimmt, während eine Gewichtung unter der vorbestimmten Schwelle bewirkt, dass das Kameraparameterbestimmungssystem 114 die gewichtete Linie nicht in die Ground-Truth-Fluchtkantenkarte 322 aufnimmt.
  • Das Kameraparameterbestimmungssystem 114 kann weitere Klassifizierungen für Linien in dem Digitalbild einsetzen. Das Kameraparameterbestimmungssystem 114 kann beispielsweise mehrere (beispielsweise zwei oder mehr) vorbestimmte Schwellen einsetzen, und zwar eine, die eine hohe Gewichtung innerhalb der Fluchtkantenkarte 316 bestimmt, und eine, die eine niedrige Gewichtung innerhalb der Fluchtkantenkarte 316 bestimmt. Diese beiden Schwellen sind als Beispiele angegeben, und es sollte einsichtig sein, dass das Kameraparameterbestimmungssystem 114 eine beliebige Anzahl von Gewichtungsschwellen, die im Zusammenhang mit zu verarbeitenden Bildern hilfreich sind, einsetzen kann. Darüber hinaus kann das Kameraparameterbestimmungssystem 114 kontinuierliche Gewichtungen einsetzen, die von Abstand von Fluchtpunkten wiedergeben.
  • Wie in 3C gezeigt ist, generiert das Kameraparameterbestimmungssystem 114 so einen Satz von Ground-Truth-Fluchtlinien als Teil der Ground-Truth-Fluchtkantenkarte 322. Das Kameraparameterbestimmungssystem 114 kann die in 3A bis 3C dargestellten Vorgänge für mehrere Digitalbilder (beispielsweise aus einer bestehenden Sammlung von Digitalbildern) wiederholen und mehrere Ground-Truth-Fluchtkantenkarten generieren, die die Ground-Truth-Fluchtlinien für jedes Digitalbild wiedergeben.
  • Wie vorstehend erwähnt worden ist, kann das Kameraparameterbestimmungssystem 114 Trainingsdigitalbildern zu eigene Ground-Truth-Fluchtlinien dafür einsetzen, ein der Detektion kritischer Kanten dienendes neuronales Netzwerk zu trainieren. 4 zeigt beispielsweise, dass das Kameraparameterbestimmungssystem 114 das der Detektion kritischer Kanten dienende neuronale Netzwerk 204 entsprechend einer oder mehreren Ausführungsformen dafür trainiert, Fluchtlinien genau zu bestimmen. Insbesondere setzt, wie in 4 zu sehen ist, das Kameraparameterbestimmungssystem 114 das Trainingsbild / die Trainingsbilder 402 und Daten 404 der entsprechenden Ground-Truth-Fluchtlinie(n) dafür ein, das der Detektion kritischer Kanten dienende neuronale Netzwerk 204 zu trainieren.
  • Wie in 4 gezeigt ist, setzt das Kameraparameterbestimmungssystem 114 das Trainingsbild / die Trainingsbilder 402 und die Daten 404 der zugeordneten Ground-Truth-Fluchtlinie(n) dafür ein, das untrainierte der Detektion kritischer Kanten dienende neuronale Netzwerk 406 zu trainieren. Wie vorstehend anhand 3 erläutert worden ist, kann das Kameraparameterbestimmungssystem 114 das Trainingsbild / die Trainingsbilder 402 dafür einsetzen, die Daten 404 der Ground-Truth-Fluchtlinie(n) zu generieren. Bei einer oder mehreren Ausführungsformen setzt das untrainierte der Detektion kritischer Kanten dienende neuronale Netzwerk 406 das Trainingsbild / die Trainingsbilder 402 und die Daten 404 der Ground-Truth-Fluchtlinie(n) dafür ein, das genaue Identifizieren von Fluchtlinien aus einem Digitalbild zu erlernen.
  • Insbesondere setzt das Kameraparameterbestimmungssystem 114, wie in 4 gezeigt ist, das der Detektion kritischer Kanten dienende neuronale Netzwerk 406 dafür ein, eine vorhergesagte Fluchtkantenkarte / vorhergesagte Fluchtkantenkarten 408 zu generieren. Insbesondere analysiert das der Detektion der kritischen Kante dienende neuronale Netzwerk das Trainingsbild / die Trainingsbilder 402, um mehrere vorhergesagte Fluchtlinien zu generieren. Das der Detektion kritischer Kanten dienende neuronale Netzwerk kann beispielsweise für jedes Pixel vorhersagen, ob das Pixel zu einer Fluchtlinie innerhalb des Trainingsbildes / der Trainingsbilder 402 gehört.
  • Sodann vergleicht das Kameraparameterbestimmungssystem 114, wie in 4 gezeigt ist, die Trainingsfluchtkantenkarte / die Trainingsfluchtkantenkarten 408 für das Trainingsbild / die Trainingsbilder 402 mit den Daten 404 der Ground-Truth-Fluchtlinie(n). Insbesondere vergleicht das Kameraparameterbestimmungssystem 114 die Trainingsfluchtkantenkarte / die Trainingsfluchtkantenkarten 408 mit den Ground-Truth-Fluchtlinien für das entsprechende Trainingsbild 402 unter Einsatz einer Verlustfunktion 410, die einen berechneten Verlust generiert. Insbesondere kann die Verlustfunktion 410 ein Maß des Verlustes (beispielsweise ein Maß der Differenzen) zwischen den Daten 404 der Ground-Truth-Fluchtlinie(n) und den Fluchtlinien in der Trainingsfluchtkantenkarte 408 bestimmen.
  • Des Weiteren setzt das Kameraparameterbestimmungssystem 114, wie in 4 gezeigt ist, sodann den berechneten Verlust dafür ein, das genauere Identifizieren von Fluchtlinien aus einem Digitalbild zu erlernen. Das Kameraparameterbestimmungssystem 114 modifiziert beispielsweise dem neuronalen Netzwerk zu eigene Parameter 414 (beispielsweise interne Gewichtungen für Schichten des neuronalen Netzwerkes), um den Verlust zu verringern oder zu minimieren. Insbesondere setzt das Kameraparameterbestimmungssystem Techniken der Rückverfolgung (back-propagation) dafür ein, interne Parameter des der Detektion kritischer Kanten dienenden neuronalen Netzwerkes 406 zu modifizieren, um den Verlust, der sich aus der Anwendung der Verlustfunktion 410 ergibt, zu verringern.
  • Durch wiederholtes Analysieren von Trainingsbildern, Generieren von vorhergesagten Fluchtkantenkarten, Vergleichen der vorhergesagten Fluchtkantenkarten mit Ground-Truth- Fluchtlinien und Modifizieren der dem neuronalen Netzwerk zu eigenen Parameter kann das Kameraparameterbestimmungssystem 114 das der Detektion kritischer Kanten dienende neuronale Netzwerk 406 dafür trainieren, Fluchtlinien aus Digitalbildern genau zu identifizieren. Bei einer oder mehreren Ausführungsformen trainiert das Kameraparameterbestimmungssystem 114 das der Detektion kritischer Kanten dienende neuronale Netzwerk 406 iterativ während einer Schwellenzeitspanne, für eine Schwellenanzahl von Iterationen oder bis zum Erreichen eines Schwellenverlustes. Wie vorstehend erläutert worden ist, setzt das Kameraparameterbestimmungssystem 114 bei einer oder mehreren Ausführungsformen ein der Detektion kritischer Kanten dienendes neuronales Netzwerk ein, das die Architektur eines faltungstechnischen neuronalen Netzwerkes umfasst. 5 zeigt beispielsweise eine exemplarische Architektur und die Anwendung des der Detektion kritischer Kanten dienenden neuronalen Netzwerkes 204 entsprechend einer oder mehreren Ausführungsformen. Wie in 5 gezeigt und anhand von 2 erläutert worden ist, empfängt das der Detektion kritischer Kanten dienende neuronale Netzwerk 204 das Digitalbild 202, identifiziert die Fluchtlinien in dem Digitalbild 202 und generiert die Fluchtkantenkarte 206, die die Fluchtlinien aus dem Digitalbild 202 beinhaltet.
  • Das der Detektion kritischer Kanten dienende neuronale Netzwerk 204 kann eine pixelweise erfolgende Vorhersage an dem Digitalbild 202 durchführen. Insbesondere kann das der Detektion kritischer Kanten dienende neuronale Netzwerk eine Variante eines Hourglass-Netzwerkes einsetzen. Entsprechend führt das der Detektion kritischer Kanten dienende neuronale Netzwerk bei einer oder mehreren Ausführungsformen eine Bottom-up-Verarbeitung durch Subsampling von Merkmalskarten entsprechend dem Digitalbild 202 durch und führt einen Top-down-Prozess durch Upsampling der Merkmalskarten mit einer Kombination von höher aufgelösten Merkmalen aus unteren Schichten durch. Anstatt der Nutzung von Standardresidualeinheiten (standard residual units) (beispielsweise von faltungstechnischen Blöcken) als grundlegendem Bildungsblock des der Detektion kritischer Kanten dienenden neuronalen Netzwerkes 204 beinhaltet das der Detektion kritischer Kanten dienende neuronale Netzwerk 204 bei einer oder mehreren Ausführungsformen eine inzeptionsartige (inception-like) Pyramide von Merkmalen, um Fluchtlinien zu identifizieren. Auf diese Art kann das Kameraparameterbestimmungssystem 114 visuelle Multiskalierungsmuster (oder Semantiken) beim Analysieren des Digitalbildes 202 aufnehmen.
  • Im Allgemeinen beinhaltet die Struktur eines neuronalen Hourglass-Netzwerkes eine in etwa gleiche Top-down- und Bottom-up-Verarbeitung und kann zwei oder mehr Hourglass-Strukturen enthalten, damit Daten abwechselnd bottom-up und top-down verarbeitet werden. Diese Architektur ermöglicht, dass das neuronale Netzwerk Information in jeder Skalierung aufnimmt und Information über verschiedene Auflösungen hinweg kombiniert, was es beim Identifizieren von Objekten in Bildern sehr erfolgreich gemacht hat. Die spezifische Struktur der verschiedenen Schichten kann abhängig vom Zweck des spezifischen neuronalen Netzwerkes variieren, setzt jedoch eine Architektur des Faltens und Entfaltens ein, die eine pixelweise erfolgende Vorhersage unterstützt. Bei einer oder mehreren Ausführungsformen kann das Kameraparameterbestimmungssystem 114 ein neuronales Hourglass-Netzwerk einsetzen, wie es beschrieben ist in: „Stacked Hourglass Networks for Human Pose Estimation“ von Alejandro Newell, Kaiyu Yang und Jia Deng, veröffentlicht bei European Conference on Computer Vision (2016). Diese Quelle wird hiermit durch Verweis mit aufgenommen.
  • Darstellungshalber beinhaltet das der Detektion kritischer Kanten dienende neuronale Netzwerk 204, wie in 5 gezeigt ist, mehrere Pyramidenmerkmalseinheiten 502. Insbesondere setzt das der Detektion kritischer Kanten dienende neuronale Netzwerk 204 verschiedene Pyramidenmerkmale ähnlich zu einem Pyramidenmerkmalsnetzwerk (Pyramid Feature Network PFN) ein. Innerhalb dieser Pyramidenmerkmale kann das der Detektion kritischer Kanten dienende neuronale Netzwerk 204 verschiedene parallele faltungstechnische Schichten ähnlich zu denjenigen beinhalten, die in einem faltungstechnischen neuronalen Netzwerk (CNN) und insbesondere in einem Inzeptionsnetzwerk (inception network) zu finden sind.
  • Wie in 5 gezeigt ist, beinhaltet das der Detektion kritischer Kanten dienende neuronale Netzwerk 204 mehrere faltungstechnische Schichten, die verschiedenartige Faltungsvorgänge beinhalten. 5 zeigt beispielsweise einen oberen faltungstechnischen Zweig 504 mit einem 1×1-Faltungsvorgang und einen unteren faltungstechnischen Zweig 506 mit einem 1×1-Faltungsvorgang, einem 3×3-Faltungsvorgang und einem weiteren 1×1-Faltungsvorgang. Die faltungstechnischen Zweige 504, 506 bilden zusammen eine Pyramidenmerkmalseinheit. Wie dargestellt ist, ist der obere faltungstechnische Zweig 504 parallel zu dem unteren faltungstechnischen Zweig 506. Die Pyramidenmerkmalseinheit 502 empfängt eine Eingabe und führt Faltungsvorgänge an der Eingabe entsprechend jedem der faltungstechnischen Zweige 504, 506 durch. Sodann verkettet das der Detektion kritischer Kanten dienende neuronale Netzwerk 204 an der Ausgabe 508 die Ergebnisse und sendet sie an das nächste Modul. Dieser Lösungsweg hilft dabei, mehr Details in Fluchtliniensegmenten zu erhalten und verschwommene oder unscharfe Wärmekarten (heat maps), die sich beim Anwenden herkömmlicher faltungstechnischer Blöcke ergeben können, zu vermeiden.
  • Bei einer oder mehreren Ausführungsformen generiert das der Detektion kritischer Kanten dienende neuronale Netzwerk 204 die Fluchtkantenkarte 206 durch Bestimmen eines Zuverlässigkeitswertes für jedes Pixel. Der Zuverlässigkeitswert gibt ein Maß für die Zuverlässigkeit aus dem der Detektion kritischer Kanten dienenden neuronalen Netzwerk dafür an, dass die Pixel einer Fluchtlinie entsprechen (beispielsweise in einer solchen beinhaltet oder Teil einer solchen sind). Bei anderen Ausführungsformen kann das der Detektion kritischer Kanten dienende neuronale Netzwerk 204 Zuverlässigkeitswerte für jede Linie bestimmen. Das der Detektion kritischer Kanten dienende neuronale Netzwerk 204 kann diese Zuverlässigkeitswerte zur Bestimmung dessen einsetzen, welche Pixel und/oder Linien aus einem Digitalbild in die Fluchtkantenkarte 216 als Fluchtlinien aufgenommen werden sollen. Bei einer oder mehreren Ausführungsformen basiert diese Bestimmung auf einem vorbestimmten Schwellenwert, den der Zuverlässigkeitswert erfüllen muss, um aufgenommen zu werden. Wie vorstehend erwähnt worden ist, kann das Kameraparameterbestimmungssystem 114 die Fluchtkantenkarte 206 sodann einem geometrischen Modell „zuleiten“, das sodann lediglich Linien, die in der Fluchtkantenkarte beinhaltet sind, berücksichtigt, um verschiedene Kameraparameter für das digitale Bild zu bestimmen.
  • Des Weiteren kann das der Detektion kritischer Kanten dienende neuronale Netzwerk 204 Gewichtungen für die Pixel und/oder Linien in einem Digitalbild auf Grundlage der Zuverlässigkeitswerte entsprechend jenen Pixeln und/oder Linien bestimmen. Auf Grundlage dieser Gewichtungen kann das der Detektion kritischer Kanten dienende neuronale Netzwerk sodann eine gewichtete Fluchtkantenkarte generieren, die die zugewiesenen Gewichtungen innerhalb der Kantenkarte selbst wiedergibt. Dies bedeutet, dass bei einer oder mehreren Ausführungsformen das der Detektion kritischer Kanten dienende neuronale Netzwerk 204 eine gewichtete Fluchtkantenkarte generieren kann, die ein Maß für die Zuverlässigkeit für jede der darin beinhalteten Fluchtlinien wiedergibt. Darstellungshalber kann die gewichtete Fluchtkantenkarte wiedergeben, dass Pixeln und/oder Linien mit einem höheren Zuverlässigkeitswert eine stärkere Berücksichtigung durch das geometrische Modell zuteil werden sollte, während Pixeln und/oder Linien mit einem niedrigeren Zuverlässigkeitswert eine geringere Berücksichtigung durch das geometrische Modell zuteil werden sollte. Entsprechend kann das Kameraparameterbestimmungssystem 114 das geometrische Modell und die gewichtete Fluchtkantenkarte dafür einsetzen, Kameraparameter zu bestimmen.
  • Zusätzlich zu den Zuverlässigkeitswerten (oder auch alternativ zu diesen) kann das Kameraparameterbestimmungssystem 114 Gewichtungen auch auf Grundlage einer Linienlänge bestimmen. Insbesondere kann das Kameraparameterbestimmungssystem 114 stärkere Gewichtungen Pixeln/Linien zuteil werden lassen, die längeren Fluchtlinien entsprechen. Auf ähnliche Weise kann das Kameraparameterbestimmungssystem 114 verringerte Gewichtungen Pixeln/Linien zuteil werden lassen, die kürzeren Fluchtlinien entsprechen. Daher kann das Kameraparameterbestimmungssystem 114 Pixel/Linien auf Grundlage von Zuverlässigkeitswerten und/oder der Linienlänge hervorheben und/oder die Hervorhebung entfernen.
  • Die Fluchtlinien in der Fluchtkantenkarte 206 können verschiedenen Fluchtpunkten (beispielsweise Fluchtrichtungen) entsprechen. Insbesondere kann die Fluchtkantenkarte 206 vertikale Fluchtlinien (beispielsweise Fluchtlinien mit Schnitten entsprechend vertikalen Fluchtrichtungen) und horizontale Fluchtlinien (beispielsweise Fluchtlinien mit Schnitten entsprechend horizontalen Fluchtrichtungen) beinhalten. Es sollte einsichtig sein, dass das Kameraparameterbestimmungssystem 114 sowohl vertikale wie auch horizontale Fluchtlinien dafür einsetzen kann, Kameraparameter für ein Digitalbild zu bestimmen. Dies bedeutet, dass das der Detektion kritischer Kanten dienende neuronale Netzwerk 204 sowohl vertikale Fluchtlinien wie auch horizontale Fluchtlinien bestimmen und eine Fluchtkantenkarte 206, die beide Typen von Fluchtlinien beinhaltet, generieren kann. Das Kameraparameterbestimmungssystem 114 kann die Fluchtkantenkarte 206 und ein geometrisches Modell dafür einsetzen, Kameraparameter für das Digitalbild zu bestimmen.
  • Wie vorstehend anhand 2 erläutert worden ist, kann das Kameraparameterbestimmungssystem 114 eine Fluchtkantenkarte und ein geometrisches Modell dafür einsetzen, Kameraparameter für ein einziges Digitalbild zu bestimmen. 6 zeigt beispielsweise, dass das Kameraparameterbestimmungssystem 114 unter Einsatz von Kameraparametern 602 für ein Digitalbild 604 verschiedene Vorgänge mit dem Digitalbild 604 durchführt. Das Kameraparameterbestimmungssystem 114 präsentiert beispielsweise eine grafische Nutzerschnittstelle 606 zum Modifizieren des Digitalbildes. Auf Grundlage einer Nutzerinteraktion mit der grafischen Nutzerschnittstelle 606 kann das Kameraparameterbestimmungssystem 114 die Kameraparameter 602 zum Generieren eines nachbearbeiteten Digitalbildes einsetzen.
  • Wie in 6 gezeigt ist, setzt das Kameraparameterbestimmungssystem 114 die Kameraparameter 602 beispielsweise dafür ein, einen Stuhl zu dem Digitalbild 604 hinzuzufügen. Das Kameraparameterbestimmungssystem 114 setzt die Kameraparameter 602 dafür ein, den Stuhl innerhalb des dreidimensionalen Raumes (beispielsweise der Szene), der in dem Digitalbild 604 abgebildet ist, richtig zu orientieren. Wie dargestellt ist, geben die Kameraparameter das Nicken, Rollen und Gieren an, das dem geometrischen Modell ermöglicht, den Stuhl innerhalb des Digitalbildes richtig zu orientieren. Obwohl 6 das Hinzufügen eines Objektes zu dem Digitalbild 604 zeigt, sollte einsichtig sein, dass das Kameraparameterbestimmungssystem 114 eine beliebige aus einer Vielzahl von Fotobearbeitungsfunktionen durchführen kann, darunter das Löschen von Objekten, das Modifizieren der Belichtung oder Textur, das Kombinieren von Bildern oder eine beliebige andere Bearbeitungsfunktion. Darüber hinaus können die Kameraparameter dafür eingesetzt werden, ein dreidimensionales Modell der Szene, die in dem Digitalbild abgebildet ist, zu generieren.
  • Wie in 6 gezeigt ist, stellt das Kameraparameterbestimmungssystem 114 visuelle Hilfen zur Anzeige des Digitalbildes 604 auf Grundlage der Kameraparameter 602 bereit, um die Fotobearbeitung (beispielsweise durch Ermöglichen einer präziseren Interaktion mit der Nutzerschnittstelle) zu erleichtern. Insbesondere stellt das Kameraparameterbestimmungssystem 114 visuelle Linien entsprechend Fluchtpunkten innerhalb des Digitalbildes 604 bereit. Dieser Lösungsweg ermöglicht ein genaues Bearbeiten, wobei weniger Interaktionen vor dem Erreichen eines gewünschten Ergebnisses erforderlich sind.
  • Zusätzlich kann das Kameraparameterbestimmungssystem 114 die Kameraparameter 602 im Zusammenhang mit einer Bildsuche einsetzen. Bei einer oder mehreren Ausführungsformen setzt das Kameraparameterbestimmungssystem 114 die Kameraparameter 602 beispielsweise dafür ein, Digitalbilder aus einer Bilddatenbank mit ähnlichen oder denselben Kameraparametern zu identifizieren. Insbesondere kann das Kameraparameterbestimmungssystem 114 Kameraparameter für alle Digitalbilder in der Bilddatenbank bestimmen. Das Kameraparameterbestimmungssystem 114 kann sodann auf Grundlage der bestimmten Kameraparameter eine Suche durchführen. Das Kameraparameterbestimmungssystem 114 kann beispielsweise eine Nutzerschnittstelle bereitstellen, in der der Nutzer 106 Suchparameter auf Grundlage des einen oder der mehreren Kameraparameter (beispielsweise bei Bildern mit demselben Nicken, Rollen und Gieren bezüglich eines Eingabedigitalbildes) spezifizieren kann. Das Kameraparameterbestimmungssystem 114 kann sodann Bilder identifizieren, die den Suchparametern genügen.
  • In 7 sind zusätzliche Details im Zusammenhang mit Fähigkeiten und Komponenten des Kameraparameterbestimmungssystems 114 entsprechend einer oder mehreren Ausführungsformen dargestellt. Insbesondere zeigt 7 ein schematisches Diagramm einer exemplarischen Architektur des Kameraparameterbestimmungssystems 114, das auf einer Rechenvorrichtung 701 gehostet ist. Das Kameraparameterbestimmungssystem 114 kann eine oder mehrere Ausführungsformen des vorbeschriebenen Kameraparameterbestimmungssystems 114 darstellen.
  • Wie gezeigt ist, befindet sich das Kameraparameterbestimmungssystem 114 als Teil des Digitalmedienverwaltungssystems 102 auf einer Rechenvorrichtung 701, wie vorstehend erläutert worden ist. Allgemein kann die Rechenvorrichtung 701 verschiedene Typen von Rechenvorrichtungen (beispielsweise die Servervorrichtung/Servervorrichtungen 110 oder die Clientvorrichtung 102) darstellen. Bei einigen Ausführungsformen ist die Rechenvorrichtung 701 beispielsweise eine nichtmobile Vorrichtung, so beispielsweise ein Desktop oder Server. Bei anderen Ausführungsformen ist die Rechenvorrichtung 701 eine Mobilvorrichtung, so beispielsweise ein Mobiltelefon, ein Smartphone, ein PDA, ein Tablet, ein Laptop und dergleichen mehr. Zusätzliche Details im Zusammenhang mit der Rechenvorrichtung 701 werden nachstehend anhand 10 erläutert.
  • Wie in 7 dargestellt ist, beinhaltet das Kameraparameterbestimmungssystem 114 verschiedene Komponenten zum Durchführen der hier beschriebenen Prozesse und Merkmale. Das Kameraparameterbestimmungssystem 114 beinhaltet beispielsweise eine Ground-Truth-Fluchtliniendaten-Engine 702, ein der Detektion kritischer Kanten dienendes neuronales Netzwerk 704, eine das neuronale Netzwerk trainierende Engine 706, eine Kameraparameter-Engine 707 und einen Datenspeicher 708. Jede dieser Komponenten wird nachstehend einzeln beschrieben.
  • Wie in 7 dargestellt ist, kann das Kameraparameterbestimmungssystem 114 eine Ground-Truth-Fluchtliniendaten-Engine 702 beinhalten. Die Ground-Truth-Fluchtliniendaten-Engine 702 kann Ground-Truth-Daten für das Kameraparameterbestimmungssystem 114 erstellen, generieren und/oder bereitstellen. Wie vorstehend anhand 3A bis 3C erläutert worden ist, kann die Ground-Truth-Fluchtliniendaten-Engine 702 Ground-Truth- Fluchtlinien für einen Satz von Trainingsdatenbildern generieren. Insbesondere kann die Ground-Truth-Fluchtliniendaten-Engine 702 Digitalbilder auf Kugeln abbilden, Schnitte in einem Digitalbild bestimmen, Fluchtpunkte in einem Digitalbild bestimmen, verschiedene Abstände in einem Digitalbild messen und Ground-Truth-Fluchtlinien für Digitalbilder bestimmen.
  • Wie in 7 gezeigt ist, beinhaltet das Kameraparameterbestimmungssystem 114 zusätzlich das der Detektion kritischer Kanten dienende neuronale Netzwerk 704. Wie vorstehend anhand 3 bis 5 erläutert worden ist, kann das der Detektion kritischer Kanten dienende neuronale Netzwerk 704 Fluchtlinien in einem Digitalbild bestimmen und eine Fluchtkantenkarte generieren, die die Fluchtlinien aus dem Digitalbild beinhaltet (jedoch keine anderen Linien aus dem Digitalbild beinhaltet). Das der Detektion kritischer Kanten dienende neuronale Netzwerk 704 kann, wie nachstehend noch erläutert wird, von der das neuronale Netzwerk trainierenden Engine 706 trainiert werden.
  • Des Weiteren beinhaltet das Kameraparameterbestimmungssystem 114, wie in 7 gezeigt ist, auch die das neuronale Netzwerk trainierende Engine 706. Die das neuronale Netzwerk trainierende Engine 706 kann neuronale Netzwerke dafür trainieren, verschiedene Aufgaben unter Einsatz von Ground-Truth-Daten zu erledigen. Wie nachstehend anhand 4 noch detaillierter erläutert wird, kann die das neuronale Netzwerk trainierende Engine 706 eine Verlustfunktion minimieren und Ground-Truth-Daten einsetzen. Insbesondere kann die das neuronale Netzwerk trainierende Engine 706 das der Detektion kritischer Kanten dienende neuronale Netzwerk 704 dafür trainieren, Fluchtlinien zu identifizieren und Fluchtkantenkarten zu generieren. Die das neuronale Netzwerk trainierende Engine 706 kann Ground-Truth-Daten von der Ground-Truth-Fluchtliniendaten-Engine 702 nutzen.
  • Zusätzlich beinhaltet das Kameraparameterbestimmungssystem 114, wie in 7 gezeigt ist, die Kameraparameter-Engine 707. Wie nachstehend noch detaillierter erläutert wird, kann die Kameraparameter-Engine 707 Kameraparameter auf Grundlage einer Fluchtkantenkarte, die von dem der Detektion kritischer Kanten dienenden neuronalen Netzwerk 704 generiert wird, bestimmen. Die Kameraparameter-Engine kann, wie vorstehend beschrieben worden ist, ein geometrisches Modell einsetzen.
  • Zudem beinhaltet das Kameraparameterbestimmungssystem 114, wie in 7 gezeigt ist, den Speicherverwalter 708. Der Speicherverwalter 708 kann Daten im Auftrag des Kameraparameterbestimmungssystems 114 speichern und/oder verwalten. Der Speicherverwalter 708 kann beliebige Daten speichern, die für das Kameraparameterbestimmungssystem 114 relevant sind. Der Speicherverwalter 708 kann Fluchtliniendaten 710 und Kameraparameterdaten 712 speichern.
  • 7 zeigt ein schematisches Diagramm der Rechenvorrichtung 701, bei der wenigstens ein Abschnitt des Kameraparameterbestimmungssystems 114 entsprechend einer oder mehreren Ausführungsformen implementiert sein kann. Jede der Komponenten 702 bis 712 des Kameraparameterbestimmungssystems 114 kann Software, Hardware oder beides beinhalten. Die Komponenten 702 bis 712 können beispielsweise eine oder mehrere Anweisungen beinhalten, die auf einem computerlesbaren Speichermedium gespeichert sind und durch Prozessoren einer oder mehrerer Rechenvorrichtungen, so beispielsweise der Clientvorrichtung 102 oder der Servervorrichtung/Servervorrichtungen 107, ausführbar sind. Bei Ausführung durch den einen oder die mehreren Prozessoren können die computerausführbaren Anweisungen des Kameraparameterbestimmungssystems 114 veranlassen, dass die Rechenvorrichtung/Rechenvorrichtungen die hier beschriebenen Verfahren durchführt/durchführen. Alternativ können die Komponenten 702 bis 712 Hardware, beispielsweise eine Spezialzweckverarbeitungsvorrichtung, beinhalten, um eine bestimmte Funktion oder Gruppe von Funktionen wahrzunehmen. Alternativ können die Komponenten 702 bis 712 des dynamischen Darstellungsverwaltungssystems 114 eine Kombination aus computerausführbaren Anweisungen und Hardware beinhalten.
  • Implementiert sein können die Komponenten 702 bis 712 des Kameraparameterbestimmungssystems 114 des Weiteren beispielsweise als ein oder mehrere Betriebssysteme, als eine oder mehrere eigenständige Anwendungen, als ein oder mehrere Module einer Anwendung, als ein oder mehrere Plug-ins, als eine oder mehrere Bibliotheksfunktionen oder Funktionen, die von anderen Anwendungen aufgerufen werden können, und/oder als Cloudrechenmodell. Die Komponenten 702 bis 712 können daher als eigenständige Anwendung, so beispielsweise als Desktop- oder Mobilanwendung, implementiert sein. Des Weiteren können die Komponenten 702 bis 712 als eine oder mehrere webbasierte Anwendungen, die auf einem Remoteserver gehostet sind, implementiert sein. Die Komponenten 702 bis 712 können zudem in einem Paket (suite) von Mobilvorrichtungsanwendungen oder „Apps“ implementiert sein. Darstellungshalber können die Komponenten 702 bis 712 in einer Anwendung implementiert sein, darunter unter anderem ADOBE® DIMENSION®, ADOBE® STOCK, ADOBE® PHOTOSHOP®, ADOBE® LIGHTROOM®, ADOBE® PAINTCAN®, ADOBE® LUMETRI™ oder ADOBE® PREMIERE®. ADOBE, ADOBE DIMENSION, ADOBE STOCK, PHOTOSHOP, LIGHTROOM, PAINTCAN, LUMETRI und ADOBE PREMIERE sind entweder eingetragene Marken oder Marken von Adobe Inc. in den Vereinigten Staaten und/oder anderen Ländern.
  • 1 bis 7, der entsprechende Text und die Beispiele stellen eine Anzahl von verschiedenen Verfahren, Systemen, Vorrichtungen und nichttemporären computerlesbaren Medien des Kameraparameterbestimmungssystems 114 bereit. Zusätzlich zum Vorbeschriebenen können eine oder mehrere Ausführungsformen anhand von Flussdiagrammen beschrieben werden, die Vorgänge zum Erreichen eines bestimmten Ergebnisses umfassen, wie sie in 8 und 9 gezeigt sind. 8 und 9 können auch mit mehr oder weniger Vorgängen durchgeführt werden. Des Weiteren können die Vorgänge in anderen Reihenfolgen durchgeführt werden. Zusätzlich können die hier beschriebenen Vorgänge wiederholt oder parallel zueinander oder parallel zu anderen Instanzen bzw. Versionen derselben oder ähnlicher Vorgänge durchgeführt werden.
  • Wie erwähnt worden ist, zeigen 8 und 9 jeweils ein Flussdiagramm einer Abfolge von Vorgängen 800, 900 zum Trainieren und Einsetzen eines der Detektion kritischer Kanten dienenden neuronalen Netzwerkes entsprechend einer oder mehreren Ausführungsformen. Während 8 und 9 Vorgänge entsprechend einer Ausführungsform zeigen, können alternative Ausführungsformen beliebige der in 8 und 9 gezeigten Vorgänge weglassen, hinzufügen, umordnen und/oder modifizieren. Die Vorgänge von 8 und 9 können als Teil eines Verfahrens durchgeführt werden. Alternativ kann das nichttemporäre computerlesbare Medium Anweisungen umfassen, die bei Ausführung durch einen oder mehrere Prozessoren veranlassen, dass eine Rechenvorrichtung 701 die Vorgänge von 8 und 9 durchführt. Bei einigen Ausführungsformen kann ein System die Vorgänge von 8 und 9 durchführen.
  • Wie in 8 dargestellt ist, beinhaltet die Abfolge von Vorgängen 800 den Vorgang 802 des Identifizierens eines Bildes, das von einer Kamera mit Kameraparametern aufgenommen wird. Implizieren kann der Vorgang 802 beispielsweise ein Identifizieren eines Digitalbildes, das mittels einer Kameravorrichtung mit einem oder mehreren Kameraparametern aufgenommen wird. Implizieren kann der Vorgang 802 zudem ein Bestimmen des einen oder der mehreren Parameter durch Anwenden eines geometrischen Modells auf den ersten Satz von Fluchtlinien und den zweiten Satz von Fluchtlinien. Implizieren kann der Vorgang 802 des Weiteren ein Identifizieren eines Digitalbildes unter Einsatz einer Bilddatenbank zum Identifizieren eines Bildes mit bestimmten Charakteristiken.
  • Des Weiteren beinhaltet die Abfolge von Vorgängen 800, wie in 8 gezeigt ist, den Vorgang 804 des Nutzens eines der Detektion kritischer Kanten dienenden neuronalen Netzwerkes 204 zum Generieren einer Fluchtkantenkarte aus dem Digitalbild. Implizieren kann der Vorgang 804 beispielsweise ein Einsetzen des der Detektion kritischer Kanten dienenden neuronalen Netzwerkes 204 zum Generieren einer Fluchtkantenkarte aus dem Digitalbild, wobei die Fluchtkantenkarte mehrere Fluchtlinien aus dem Digitalbild entsprechend Fluchtpunkten in dem Digitalbild umfasst und wobei das der Detektion kritischer Kanten dienende neuronale Netzwerk 204 dafür trainiert wird, Fluchtkantenkarten aus Trainingsdigitalbildern und Ground-Truth-Fluchtlinien entsprechend Ground-Truth- Fluchtpunkten der Trainingsdigitalbilder zu generieren. Implizieren kann der Vorgang 804 des Weiteren ein Nutzen des der Detektion kritischer Kanten dienenden neuronalen Netzwerkes 204, wobei die Fluchtkantenkarte die Fluchtlinien aus dem Digitalbild umfasst. Implizieren kann der Vorgang 804 des Weiteren ein Nutzen des der Detektion kritischer Kanten dienenden neuronalen Netzwerkes 204 zum Generieren einer gewichteten Fluchtkantenkarte, die die Zuverlässigkeit und/oder Wahrscheinlichkeit dafür, dass jede Linie eine Fluchtlinie ist, wiedergibt. Beinhalten kann der Vorgang 804 zudem ein Generieren der Fluchtkantenkarte durch Generieren eines ersten Satzes von Fluchtlinien mit Schnitten entsprechend einem Fluchtpunkt entsprechend einer horizontalen Fluchtrichtung und eines zweiten Satzes von Fluchtlinien mit einem zweiten Schnitt entsprechend einem Fluchtpunkt entsprechend einer vertikalen Fluchtrichtung.
  • Die Fluchtkantenkarte von 804 kann Zuverlässigkeitswerte entsprechend Pixeln des Digitalbildes umfassen, wobei die Zuverlässigkeitswerte ein Maß für die Zuverlässigkeit dafür umfassen, dass die Pixel den Fluchtlinien entsprechen. Beinhalten kann der Vorgang 804 des Weiteren ein Bestimmen von Gewichtungen für die mehreren Linien auf Grundlage der Zuverlässigkeitswerte, ein Generieren einer gewichteten Fluchtkantenkarte auf Grundlage der Gewichtungen der mehreren Linien und ein Generieren des einen oder der mehreren Kameraparameter auf Grundlage der gewichteten Fluchtkantenkarte. Des Weiteren kann das der Detektion kritischer Kanten dienende neuronale Netzwerk 204 des Vorganges 804 ein faltungstechnisches neuronales Netzwerk umfassen.
  • Zusätzlich beinhaltet die Abfolge von Vorgängen 800, wie in 8 gezeigt ist, den Vorgang 806 des Bestimmens der Kameraparameter für das Bild unter Nutzung der Fluchtkantenkarte. Implizieren kann der Vorgang 806 beispielsweise ein Bestimmen des einen oder der mehreren Kameraparameter entsprechend dem Digitalbild unter Einsatz der Fluchtkantenkarte. Implizieren kann der Vorgang 806 zudem ein Bestimmen des einen oder der mehreren Kameraparameter für das Digitalbild unter Nutzung einer gewichteten Fluchtkantenkarte. Beinhalten kann der Vorgang 806 zudem ein Bestimmen der Kameraparameter, indem er Pixel und/oder Liniensegmente, denen in der gewichteten Fluchtkantenkarte eine größere Gewichtung zuteil wird, stärker berücksichtigt und Pixel und/oder Liniensegmente, denen in der gewichteten Fluchtkantenkarte eine geringere Gewichtung zuteil wird, weniger berücksichtigt.
  • Des Weiteren können die Kameraparameter des Vorganges 806 wenigstens eines von Brennweite, Nicken, Rollen oder Gieren umfassen. Implizieren kann der Vorgang 806 zudem ein Einsetzen eines geometrischen Modells zum Bestimmen des einen oder der mehreren Kameraparameter für das Digitalbild. Des Weiteren kann das geometrische Modell den einen oder die mehreren Kameraparameter für das Digitalbild auf Grundlage der Fluchtlinien, die in der Fluchtkantenkarte beinhaltet sind und die keine anderen Linien aus dem Digitalbild beinhalten, bestimmen. Implizieren kann der Vorgang 806 des Weiteren ein Einsetzen des geometrischen Modells zum Bestimmen der Kameraparameter für das Bild, wobei das geometrische Modell Kameraparameter für das Bild wenigstens teilweise auf Grundlage eines oder mehrerer Zuverlässigkeitswerte und/oder einer oder mehrerer Gewichtungen, die den Fluchtlinien, die in der Fluchtkantenkarte beinhaltet sind, zugeordnet sind, bestimmt.
  • In 9 beinhaltet die Abfolge von Vorgängen 900 den Vorgang 902 des Bestimmens von Fluchtpunkten für das Trainingsbild unter Nutzung von Trainingslinien in einem Trainingsbild. Implizieren kann der Vorgang 902 beispielsweise ein Bestimmen von Fluchtpunkten für das Trainingsdigitalbild unter Einsatz von Trainingslinien in dem Trainingsdigitalbild der mehreren Trainingsbilder. Implizieren kann der Vorgang 902 zudem ein Unterteilen des Trainingsdigitalbildes in Bereiche. Beinhalten kann der Vorgang 902 des Weiteren ein Bestimmen einer vorbestimmten Anzahl von Hauptfluchtpunkten auf Grundlage von Bereichen, die die meisten Voten in einem Votierschema erhalten.
  • Implizieren kann der Vorgang 902 zudem ein Abbilden der Trainingslinien auf ein kugelförmiges Panorama, ein Analysieren der Trainingslinien zum Generieren mehrerer Voten für mehrere Kandidatenfluchtbereiche und ein Bestimmen der Fluchtpunkte aus den mehreren Kandidatenfluchtbereichen auf Grundlage der mehreren Voten. Implizieren kann der Vorgang 902 zusätzlich ein Votierschema, bei dem jedes Pixel in dem Bild für einen oder mehrere Bereiche des Trainingsdigitalbildes als Fluchtpunkt votiert. Beinhalten kann der Vorgang 902 des Weiteren ein Votierschema, bei dem jede Linie in dem Trainingsdigitalbild für einen oder mehrere Bereiche des Bildes als Fluchtpunkt votiert. Implizieren kann der Vorgang 902 des Weiteren das Anwenden einer Hough-Transformation (oder einer beliebigen aus einer Vielzahl ähnlicher Transformationen) auf die Trainingslinien an dem kugelförmigen Panorama. Implizieren kann der Vorgang 902 zusätzlich ein Bestimmen eines vertikalen Fluchtpunktes, einer ersten horizontalen Richtung und einer zweiten horizontalen Richtung für das T rainingsd igitalbild.
  • Wie in 9 gezeigt ist, beinhaltet die Abfolge von Vorgängen 900 zudem den Vorgang 904 des Generierens eines Satzes von Ground-Truth-Fluchtlinien für das Trainingsbild. Implizieren kann der Vorgang 904 beispielsweise ein Einsetzen einer kantenabgebildeten Kugel zum Generieren eines Satzes von Ground-Truth-Fluchtlinien für das Trainingsdigitalbild. Implizieren kann der Vorgang 904 zusätzlich ein Unterteilen der kantenabgebildeten Kugel in mehrere Teilbilder und ein Bestimmen von Fluchtlinien für jedes der verschiedenen Teilbilder zur Verwendung als Trainingsbilder für das der Detektion kritischer Kanten dienende neuronale Netzwerk.
  • Zudem beinhaltet die Abfolge von Vorgängen 900, wie in 9 gezeigt ist, den Vorgang 906 des Bestimmens eines Abstandes zwischen einem Fluchtpunkt und einer Trainingslinie. Implizieren kann der Vorgang 906 beispielsweise ein Bestimmen eines Abstandes zwischen einem Fluchtpunkt der Fluchtpunkte und einer Trainingslinie. Implizieren kann der Vorgang 906 zudem ein Bestimmen eines ersten Winkelabstandes zwischen einer ersten Fluchtlinie der Fluchtlinien und einem ersten Fluchtpunkt der Fluchtpunkte. Implizieren kann der Vorgang 906 des Weiteren ein Bestimmen von Abständen zwischen einem oder mehreren Schnitten eines oder mehrerer Liniensegmente und einem oder mehreren der Fluchtpunkte.
  • Die Abfolge von Vorgängen 900 beinhaltet, wie in 9 gezeigt ist, zusätzlich den Vorgang 908 des Aufnehmens der Trainingslinie als Fluchtlinie auf Grundlage des bestimmten Abstandes. Implizieren kann der Vorgang 908 beispielsweise ein Aufnehmen der Trainingslinie in den Satz von Ground-Truth-Fluchtlinien auf Grundlage des Abstandes zwischen dem Fluchtpunkt und der Trainingslinie. Implizieren kann der Vorgang 908 ein auf Grundlage des Abstandes zwischen dem Fluchtpunkt und der Trainingslinie erfolgendes Bestimmen einer Gewichtung für die Trainingslinie und ein Vergleichen der Gewichtung für die Trainingslinie mit einer Abstandsschwelle. Implizieren kann der Vorgang 908 zusätzlich ein Aufnehmen der Trainingslinie in den Satz von Ground-Truth-Fluchtlinien auf Grundlage des Vergleiches der Gewichtung für die Trainingslinie mit der Abstandsschwelle.
  • Wie in 9 gezeigt ist, beinhaltet die Abfolge von Vorgängen 900 des Weiteren den Vorgang 910 des Generierens von vorhergesagten Fluchtlinien aus dem Trainingsbild unter Nutzung eines kritischen Kanten dienenden neuronalen Netzwerkes. Implizieren kann der Vorgang 910 beispielsweise ein Generieren von vorhergesagten Fluchtlinien aus dem Trainingsdigitalbild unter Einsatz des der Detektion kritischer Kanten dienenden neuronalen Netzwerkes 204. Beinhalten kann der Vorgang 910 zudem ein Einsetzen einer Pyramidenmerkmalseinheit einer Schicht des der Detektion kritischer Kanten dienenden neuronalen Netzwerkes, wobei die Pyramidenmerkmalseinheit einen Faltungsvorgang parallel zu einer Abfolge mehrerer Faltungsvorgänge umfasst. Implizieren kann der Vorgang 910 des Weiteren ein Verketten von Ergebnissen der Faltungsvorgänge aus jeder Schicht der Pyram idenmerkmalseinheit.
  • Wie in 9 gezeigt ist, beinhaltet die Abfolge von Vorgängen 900 zudem einen Vorgang 912 des Modifizierens von Parametern des kritischen Kanten dienenden neuronalen Netzwerkes durch Vergleichen der vorhergesagten Fluchtlinien und der Ground-Truth-Fluchtlinien. Implizieren kann der Vorgang 912 beispielsweise ein Modifizieren von Parametern des der Detektion kritischer Kanten dienenden neuronalen Netzwerkes 204 durch Vergleichen der vorhergesagten Fluchtlinien und des Satzes von Ground-Truth-Fluchtlinien. Implizieren kann der Vorgang 912 des Weiteren ein Modifizieren von Parametern des der Detektion kritischer Kanten dienenden neuronalen Netzwerkes 204 unter Einsatz einer Verlustfunktion, wobei das der Detektion kritischer Kanten dienende neuronale Netzwerk die Parameter auf Grundlage einer Minimierung des Verlustes, der durch die Verlustfunktion bestimmt ist, modifiziert.
  • Zusätzlich zu den vorbeschriebenen Vorgängen (oder auch alternativ zu diesen) beinhaltet die Abfolge von Vorgängen 800, 900 bei einigen Ausführungsformen einen Schritt zum Trainieren eines der Detektion kritischer Kanten dienenden neuronalen Netzwerkes zum Generieren von Fluchtkantenkarten aus Trainingsdigitalbildern. Umfassen können die Verfahren und Vorgänge, die anhand 3A bis 5 beschrieben worden sind, die entsprechenden Vorgänge zum Trainieren eines der Detektion kritischen Kanten dienenden neuronalen Netzwerkes dafür, Fluchtkantenkarten aus Trainingsdigitalbildern zu generieren.
  • Zusätzlich zu den vorbeschriebenen Vorgängen (oder auch alternativ zu diesen) beinhaltet die Abfolge von Vorgängen 800, 900 bei einigen Ausführungsformen einen Schritt zum Einsetzen des der Detektion kritischer Kanten dienenden neuronalen Netzwerkes zum Generieren einer Fluchtkantenkarte für das Digitalbild. Umfassen können die Verfahren und Vorgänge, die anhand 2 und 5 beschrieben worden sind, die entsprechenden Vorgänge zum Einsetzen des der Detektion kritischer Kanten dienenden neuronalen Netzwerkes dafür, eine Fluchtkantenkarte für das Digitalbild zu generieren.
  • Ausführungsformen der vorliegenden Offenbarung können einen Spezialzweck- oder Allzweckcomputer, der Computerhardware beinhaltet, umfassen oder einsetzen, so beispielsweise einen oder mehrere Prozessoren und einen Systemspeicher, wie nachstehend noch detaillierter beschrieben wird. Ausführungsformen innerhalb des Umfanges der vorliegenden Offenbarung beinhalten zudem physische bzw. physikalische und andere computerlesbare Medien zum Tragen oder Speichern von computerausführbaren Anweisungen und/oder Datenstrukturen. Insbesondere können einer oder mehrere der hier beschriebenen Prozesse wenigstens teilweise als Anweisungen implementiert sein, die auf einem nichttemporären computerlesbaren Medium verkörpert und durch eine oder mehrere Rechenvorrichtungen (beispielsweise beliebige der hier beschriebenen Mediencontentzugriffsvorrichtungen) ausführbar sind. Allgemein empfängt ein Prozessor (beispielsweise ein Mikroprozessor) Anweisungen von einem nichttemporären computerlesbaren Medium (beispielsweise einem Memory und dergleichen) und führt diese Anweisungen aus, wodurch ein oder mehrere Prozesse, darunter einer oder mehrere der hier beschriebenen Prozesse, durchgeführt werden.
  • Computerlesbare Medien können beliebige verfügbare Medien sein, auf die ein Allzweck- oder Spezialzweckcomputersystem zugreifen kann. Computerlesbare Medien, die computerausführbare Anweisungen speichern, sind nichttemporäre computerlesbare Speichermedien (Vorrichtungen). Computerlesbare Medien, die computerausführbare Anweisungen tragen, sind Übertragungsmedien. Beispiels- und nicht beschränkungshalber können Ausführungsformen der Offenbarung wenigstens zwei deutlich verschiedene Arten von computerlesbaren Medien umfassen, nämlich nichttemporäre computerlesbare Speichermedien (Vorrichtungen) und Übertragungsmedien.
  • Nichttemporäre computerlesbare Speichermedien (Vorrichtungen) beinhalten RAM, ROM, EEPROM, CD-ROM, SSDs (Solid State Drives) (beispielsweise auf Grundlage eines RAM), einen Flashspeicher, einen Phasenänderungsspeicher (PCM), andere Arten von Memory bzw. Speicher, einen anderen optischen Plattenspeicher, einen Magnetplattenspeicher oder andere magnetische Speichervorrichtungen oder ein beliebiges anderes Medium, das zum Speichern von gewünschten Programmcodemitteln in Form von computerausführbaren Anweisungen oder Datenstrukturen genutzt werden kann und auf das ein Allzweck- oder Spezialzweckcomputer zugreifen kann.
  • Ein „Netzwerk“ ist als ein oder mehrere Datenlinks definiert, die den Transport von elektronischen Daten zwischen Computersystemen und/oder Modulen und/oder anderen elektronischen Vorrichtungen ermöglichen. Wird Information über ein Netzwerk oder eine andere Kommunikationsverbindung (entweder festverdrahtet, drahtlos oder eine Kombination aus festverdrahtet oder drahtlos) an einen Computer übertragen oder für diesen bereitgestellt, so betrachtet der Computer die Verbindung praktisch als Übertragungsmedium. Übertragungsmedien können ein Netzwerk und/oder Datenlinks beinhalten, die zum Tragen von gewünschten Programmcodemitteln in Form von computerausführbaren Anweisungen oder Datenstrukturen genutzt werden können und auf die ein Allzweck- oder Spezialzweckcomputer zugreifen kann. Kombinationen des Vorbeschriebenen sollen innerhalb des Umfanges der computerlesbaren Medien beinhaltet sein.
  • Beim Verwirklichen verschiedener Computersystemkomponenten können Programmcodemittel in Form von computerausführbaren Anweisungen oder Datenstrukturen des Weiteren automatisch von Übertragungsmedien an nichttemporäre computerlesbare Speichermedien (Vorrichtungen) (oder umgekehrt) übertragen werden. Computerausführbare Anweisungen oder Datenstrukturen, die über ein Netzwerk oder einen Datenlink empfangen werden, können beispielsweise in einem RAM innerhalb eines Netzwerkschnittstellenmoduls (beispielsweise eines „NIC“) gepuffert und sodann gegebenenfalls an den Computersystem-RAM und/oder an weniger flüchtige Computerspeichermedien (Vorrichtungen) auf einem Computersystem übertragen werden. Es sollte daher einsichtig sein, dass nichttemporäre computerlesbare Speichermedien (Vorrichtungen) in Computersystemkomponenten beinhaltet sein können, die ebenfalls (oder sogar primär) Übertragungsmedien einsetzen.
  • Computerausführbare Anweisungen umfassen beispielsweise Anweisungen und Daten, die bei Ausführung durch einen Prozessor veranlassen, dass ein Allzweckcomputer, ein Spezialzweckcomputer oder eine Spezialzweckverarbeitungsvorrichtung eine gewisse Funktion oder Gruppe von Funktionen wahrnehmen. Bei einigen Ausführungsformen werden computerausführbare Anweisungen von einem Allzweckcomputer ausgeführt, um den Allzweckcomputer in einen Spezialzweckcomputer zu verwandeln, der Elemente der Offenbarung implementiert. Die computerausführbaren Anweisungen können beispielsweise Binaries, Anweisungen in einem Zwischenformat wie Assemblersprache oder sogar Quellcode sein. Obwohl der Erfindungsgegenstand in einer Sprache beschrieben worden ist, die für strukturelle Merkmale und/oder methodologische Vorgänge spezifisch ist, sollte einsichtig sein, dass der in den beigefügten Ansprüchen definierte Erfindungsgegenstand nicht unbedingt auf die vorbeschriebenen Merkmale oder Vorgänge beschränkt ist. Vielmehr sind die beschriebenen Merkmale und Vorgänge als exemplarische Formen der Implementierung der Ansprüche offenbart.
  • Einem Fachmann auf dem Gebiet erschließt sich, dass die Offenbarung auch in Netzwerkrechenumgebungen mit vielen Arten von Computersystemkonfigurationen praktisch umgesetzt werden kann, darunter PCs, Desktopcomputer, Laptopcomputer, Nachrichtenprozessoren, Handvorrichtungen, Multiprozessorensysteme, mikroprozessorbasierte oder programmierbare Geräte der Unterhaltungselektronik, Netzwerk-PCs, Minicomputer, Mainframecomputer, Mobiltelefone, PDAs, Tablets, Pager, Router, Switches bzw. Schalter und dergleichen. Praktisch umgesetzt werden kann die Offenbarung auch in verteilten Systemumgebungen, wo lokale und entfernte (remote) Computersysteme, die (entweder durch festverdrahtete Datenlinks, drahtlose Datenlinks oder durch eine Kombination aus festverdrahteten und drahtlosen Datenlinks) über ein Netzwerk verbunden sind, gleichermaßen Aufgaben ausführen. In einer verteilten Systemumgebung können Programmmodule sowohl in lokalen wie auch entfernten (remote) Memoryspeichervorrichtungen befindlich sein.
  • Ausführungsformen der vorliegenden Offenbarung können zudem in Cloudrechenumgebungen implementiert sein. Im Sinne des Vorliegenden bezeichnet der Begriff „Cloudcomputing bzw. Cloudrechnen“ ein Modell, das einen On-Demand-Netzwerkzugriff auf einen geteilten Vorrat von konfigurierbaren Rechenressourcen ermöglicht. Cloud Computing bzw. Cloudrechnen kann beispielsweise auf einem Marktplatz eingesetzt werden, um einen allgegenwärtigen und bequemen On-Demand-Zugriff auf den geteilten Vorrat von konfigurierbaren Rechenressourcen anzubieten. Der geteilte Vorrat von konfigurierbaren Rechenressourcen kann über eine Virtualisierung schnell bereitgestellt und unter geringem Verwaltungsaufwand oder mit geringer Interaktion eines Dienstanbieters freigegeben und sodann entsprechend skaliert werden.
  • Ein Cloudrechenmodell kann aus verschiedenen Charakteristiken zusammengesetzt sein, so beispielsweise On-Demand Self-Service, Broad Network Access, Resource Pooling, Rapid Elasticity, Measured Service und dergleichen. Ein Cloudrechenmodell kann zudem verschiedene Dienstmodelle anbieten, so beispielsweise „Software as a Service“ („SaaS“), „Platform as a Service“ („PaaS“) und „Infrastructure as a Service („IaaS“). Ein Cloudrechenmodell kann zudem unter Nutzung verschiedener Einsatzmodelle eingesetzt werden, so beispielsweise Private Cloud, Community Cloud, Public Cloud, Hybrid Cloud und dergleichen. Im Sinne des Vorliegenden bezeichnet der Begriff „Cloudrechenumgebung“ eine Umgebung, in der das Cloudrechnen bzw. Cloud Computing eingesetzt wird.
  • 10 zeigt ein Blockdiagramm einer exemplarischen Rechenvorrichtung 1000, die dafür konfiguriert sein kann, einen oder mehrere der vorbeschriebenen Prozesse durchzuführen. Es sollte einsichtig sein, dass eine oder mehrere Rechenvorrichtungen, so beispielsweise die Rechenvorrichtung 1000, die vorbeschriebenen Rechenvorrichtungen (beispielsweise die Rechenvorrichtung 701, die Servervorrichtung/Servervorrichtungen 110 und die Clientvorrichtung 102) darstellen können. Bei einer oder mehreren Ausführungsformen kann die Rechenvorrichtung 1000 eine Mobilvorrichtung sein (beispielsweise ein Mobiltelefon, ein Smartphone, ein PDA, ein Tablet, ein Laptop, eine Kamera, ein Tracker, eine Armbanduhr, eine am Körper tragbare Vorrichtung und dergleichen mehr). Bei einigen Ausführungsformen kann die Rechenvorrichtung 1000 eine nichtmobile Vorrichtung sein (beispielsweise ein Desktopcomputer oder ein anderer Typ von Clientvorrichtung 102). Die Rechenvorrichtung 1000 kann des Weiteren eine Servervorrichtung sein, die cloudbasierte Verarbeitungs- und Speicherfähigkeiten beinhaltet.
  • Wie in 10 gezeigt ist, kann die Rechenvorrichtung 1000 einen oder mehrere Prozessoren 1002, einen Memory 1004, eine Speichervorrichtung 1006, Eingabe-/Ausgabeschnittstellen 1008 (oder „I/O-Schnittstellen“ 1008) und eine Kommunikationsschnittstelle 1010 beinhalten, die mittels einer Kommunikationsinfrastruktur (beispielsweise mittels eines Busses 1012) kommunikationstechnisch gekoppelt sein können. Obwohl in 10 die Rechenvorrichtung 1000 gezeigt ist, ist die Darstellung der Komponenten in 10 nicht beschränkend gemeint. Zusätzliche oder alternative Komponenten können bei anderen Ausführungsformen benutzt werden. Bei bestimmten Ausführungsformen beinhaltet die Rechenvorrichtung 1000 zudem weniger Komponenten, als in 10 gezeigt sind. Komponenten der in 10 gezeigten Rechenvorrichtung 1000 werden nunmehr noch detaillierter beschrieben.
  • Bei bestimmten Ausführungsformen beinhaltet/beinhalten der Prozessor / die Prozessoren 1002 Hardware zum Ausführen von Anweisungen, so beispielsweise von solchen, die ein Computerprogramm bilden Beispiels- und nicht beschränkungshalber kann/können der Prozessor / die Prozessoren 1002 zur Ausführung von Anweisungen die Anweisungen aus einem internen Register, einem internen Cache, dem Memory 1004 oder einer Speichervorrichtung 1006 abrufen (oder holen) und sie decodieren und ausführen.
  • Die Rechenvorrichtung 1000 beinhaltet den Memory 1004, der mit dem Prozessor / den Prozessoren 1002 gekoppelt ist. Der Memory 1004 kann zum Speichern von Daten, Metadaten und Programmen zur Ausführung durch den Prozessor / die Prozessoren benutzt werden. Beinhalten kann der Memory 1004 einen oder mehrere von flüchtigen und nichtflüchtigen Memorys, so beispielsweise einen Speicher mit wahlfreiem Zugriff („RAM“), einen Nur-Lese-Speicher („ROM“), eine Solid-State-Disk („SSD“), einen Flash, einen Phasenänderungsspeicher („PCM“) oder anderen Typen von Datenspeichern. Der Memory 1004 kann ein interner oder ein verteilter Memory sein.
  • Die Rechenvorrichtung 1000 beinhaltet eine Speichervorrichtung 1006 zum Speichern von Daten oder Anweisungen beinhaltet. Beispiels- und nicht beschränkungshalber kann die Speichervorrichtung 1006 ein nichttemporäres Speichermedium, wie es vorstehend beschrieben worden ist, beinhalten. Die Speichervorrichtung 1006 kann ein Festplattenlaufwerk (HDD), einen Flash-Speicher, ein USB-Laufwerk (Universeller Serieller Bus USB) oder eine Kombination aus diesen oder anderen Speichervorrichtungen beinhalten.
  • Wie gezeigt ist, beinhaltet die Rechenvorrichtung 1000 eine oder mehrere I/O-Schnittstellen 1008, die dafür bereitgestellt sind, einem Nutzer zu ermöglichen, eine Eingabe für die Rechenvorrichtung 1000 (beispielsweise in Form von user strokes bzw. nutzerseitigen Betätigungen) bereitzustellen, eine Ausgabe von dieser zu empfangen und Daten auf andere Weise an diese oder von dieser zu übertragen. Beinhalten können die I/O-Schnittstellen 1008 eine Maus, ein Tastenfeld bzw. Keypad oder eine Tastatur, einen berührungsempfindlichen Schirm (touchscreen), eine Kamera, einen optischen Scanner, eine Netzwerkschnittstelle, ein Modem, andere bekannte I/O-Vorrichtungen oder eine Kombination derartiger I/O-Schnittstellen 1008. Der berührungsempfindliche Schirm kann mit einem Stift oder Finger aktiviert werden.
  • Beinhalten können die I/O-Schnittstellen 1008 eine oder mehrere Vorrichtungen zum Präsentieren einer Ausgabe gegenüber einem Nutzer, darunter unter anderem eine Grafikengine, eine Anzeige (beispielsweise einen Anzeigebildschirm), einen oder mehrere Ausgabetreiber (beispielsweise Anzeigetreiber), einen oder mehrere Audiolautsprecher und einen oder mehrere Audiotreiber. Bei bestimmten Ausführungsformen sind die I/O-Schnittstellen 1008 dafür konfiguriert, grafische Daten für eine Anzeige zur Präsentation gegenüber einem Nutzer bereitzustellen. Die grafischen Daten können eine oder mehrere grafische Nutzerschnittstellen und/oder beliebigen anderen grafischen Content, so er für eine bestimmte Implementierung dienlich ist, darstellen.
  • Die Rechenvorrichtung 1000 kann des Weiteren eine Kommunikationsschnittstelle 1010 beinhalten. Die Kommunikationsschnittstelle 1010 kann Hardware, Software oder beides beinhalten. Die Kommunikationsschnittstelle 1010 stellt eine oder mehrere Schnittstellen zur Kommunikation (beispielsweise zur paketbasierten Kommunikation) zwischen der Rechenvorrichtung und einer oder mehreren anderen Rechenvorrichtungen oder einem oder mehreren Netzwerken bereit. Beispiels- und nicht beschränkungshalber kann die Kommunikationsschnittstelle 1010 einen Netzwerkschnittstellencontroller (NIC) oder einen Netzwerkadapter zur Kommunikation mit einem Ethernet oder einem anderen drahtbasierten Netzwerk oder einen Drahtlos-NIC (WNIC) oder einen Drahtlosadapter zur Kommunikation mit einem Drahtlosnetzwerk, so beispielsweise einem Wl-Fl, beinhalten. Die Rechenvorrichtung 1000 kann des Weiteren einen Bus 1012 beinhalten. Der Bus 1012 kann Hardware, Software oder beides beinhalten, wodurch Komponenten der Rechenvorrichtung 1000 miteinander verbunden werden.
  • In der vorstehenden Beschreibung ist die Erfindung anhand spezifischer exemplarischer Ausführungsformen beschrieben worden. Verschiedene Ausführungsformen und Aspekte der Erfindung/Erfindungen sind anhand der hier erläuterten Details beschrieben, wobei die begleitende Zeichnung die verschiedenen Ausführungsformen darstellt. Die vorstehende Beschreibung und die Zeichnung sind für die Erfindung illustrativ und sollen nicht erfindungsbeschränkend gedeutet werden. Es werden zahlreiche spezifische Details beschrieben, um ein eingehendes Verständnis der verschiedenen Ausführungsformen der vorliegenden Erfindung zu ermöglichen.
  • Die vorliegende Erfindung kann in anderen spezifischen Formen verkörpert sein, ohne von ihrem Wesen oder ihren wesentlichen Eigenschaften abzugehen. Die beschriebenen Ausführungsformen sind in jeder Hinsicht nur als illustrativ und nicht als restriktiv zu betrachten. Die hier beschriebenen Verfahren können beispielsweise mit weniger oder mehr Schritten/Vorgängen durchgeführt werden, oder es können die Schritte/Vorgänge in anderen Reihenfolgen durchgeführt werden. Zusätzlich können die hier beschriebenen Schritte/Vorgänge wiederholt oder parallel zueinander oder parallel zu anderen Instanzen bzw. Versionen derselben oder ähnlicher Schritte/Vorgänge durchgeführt werden. Der Umfang der Erfindung ist daher durch die beigefügten Ansprüche und nicht durch die vorstehende Beschreibung angegeben. Alle Änderungen, die der Bedeutung und dem Äquivalenzbereich der Ansprüche entsprechen, sollen in ihrem Umfang mit umfasst sein.

Claims (20)

  1. Nichttemporäres computerlesbares Speichermedium, das Anweisungen umfasst, die bei Ausführung durch wenigstens einen Prozessor ein Computersystem veranlassen zum: Identifizieren eines Digitalbildes, das mittels einer Kameravorrichtung mit Kameraparametern aufgenommen wird; Einsetzen eines der Detektion kritischer Kanten dienenden neuronalen Netzwerkes zum Generieren einer Vanishing-Edge- bzw. Fluchtkantenkarte aus dem Digitalbild, wobei: die Fluchtkantenkarte mehrere Fluchtlinien aus dem Digitalbild entsprechend Fluchtpunkten in dem Digitalbild umfasst; und das der Detektion kritischer Kanten dienende neuronale Netzwerk dafür trainiert ist, Fluchtkantenkarten aus Trainingsdigitalbildern und Ground-Truth-Fluchtlinien entsprechend Ground-Truth-Fluchtpunkten der Trainingsdigitalbilder zu generieren; und Bestimmen der Kameraparameter entsprechend dem Digitalbild unter Einsatz der Fluchtkantenkarte.
  2. Nichttemporäres computerlesbares Speichermedium nach Anspruch 1, des Weiteren umfassend Anweisungen, die bei Ausführung durch den wenigstens einen Prozessor das Computersystem veranlassen zum: Generieren der Fluchtkantenkarte durch Generieren eines ersten Satzes von Fluchtlinien mit Schnitten entsprechend einer horizontalen Fluchtrichtung und eines zweiten Satzes von Fluchtlinien mit einem zweiten Schnitt entsprechend einer vertikalen Fluchtrichtung.
  3. Nichttemporäres computerlesbares Speichermedium nach Anspruch 2, des Weiteren umfassend Anweisungen, die bei Ausführung durch den wenigstens einen Prozessor das Computersystem veranlassen zum: Bestimmen des einen oder der mehreren Parameter durch Anwenden eines geometrischen Modells auf den ersten Satz von Fluchtlinien und den zweiten Satz von Fluchtlinien.
  4. Nichttemporäres computerlesbares Speichermedium nach einem der vorhergehenden Ansprüche, wobei die Fluchtkantenkarte Zuverlässigkeitswerte entsprechend Pixeln des Digitalbildes umfasst, wobei die Zuverlässigkeitswerte ein Maß der Zuverlässigkeit dafür, dass die Pixel einer oder mehreren der mehreren Fluchtlinien entsprechen, umfassen.
  5. Nichttemporäres computerlesbares Speichermedium nach Anspruch 4, des Weiteren umfassend Anweisungen, die bei Ausführung durch den wenigstens einen Prozessor das Computersystem veranlassen zum: Bestimmen von Gewichtungen für die mehreren Linien auf Grundlage der Zuverlässigkeitswerte; Generieren einer gewichteten Fluchtkantenkarte auf Grundlage der Gewichtungen für die mehreren Linien; und Generieren der Kameraparameter auf Grundlage der gewichteten Fluchtkantenkarte.
  6. Nichttemporäres computerlesbares Speichermedium nach einem der vorhergehenden Ansprüche, wobei die Kameraparameter wenigstens eines von Brennweite, Nicken, Rollen oder Gieren umfassen.
  7. Nichttemporäres computerlesbares Speichermedium nach einem der vorhergehenden Ansprüche, wobei das der Detektion kritischer Kanten dienende neuronale Netzwerk ein konvolutionales bzw. faltungstechnisches neuronales Netzwerk umfasst.
  8. System, umfassend: einen oder mehrere Speicher, die umfassen: mehrere Trainingsdigitalbilder, die mehrere Trainingslinien umfassen; ein der Detektion kritischer Kanten dienendes neuronales Netzwerk; wenigstens einen Prozessor; und einen nichttemporären Computerspeicher, der Anweisungen umfasst, die bei Ausführung durch den wenigstens einen Prozessor das System veranlassen zum: Trainieren des der Detektion kritischer Kanten dienenden neuronalen Netzwerkes durch: Bestimmen von Fluchtpunkten für das Trainingsdigitalbild unter Einsatz von Trainingslinien in dem Trainingsdigitalbild der mehreren Trainingsbilder; Generieren eines Satzes von Ground-Truth-Fluchtlinien für das Trainingsdigitalbild durch: Bestimmen eines Abstandes zwischen einem Fluchtpunkt der Fluchtpunkte und einer Trainingslinie; und Aufnehmen der Trainingslinie in den Satz von Ground-Truth-Fluchtlinien auf Grundlage des Abstandes zwischen dem Fluchtpunkt und der Trainingslinie; Generieren von vorhergesagten Fluchtlinien aus dem Trainingsdigitalbild unter Einsatz des der Detektion kritischer Kanten dienenden neuronalen Netzwerkes; und Modifizieren von Parametern des der Detektion kritischer Kanten dienenden neuronalen Netzwerkes durch Vergleichen der vorhergesagten Fluchtlinien und des Satzes von Ground-Truth-Fluchtlinien.
  9. System nach Anspruch 8, wobei das Bestimmen von Fluchtpunkten für das Trainingsdigitalbild umfasst: Abbilden der Trainingslinien auf ein kugelförmiges Panorama; Analysieren der Trainingslinien zum Generieren mehrerer Voten für mehrere Kandidatenfluchtbereiche; und Bestimmen der Fluchtpunkte aus den mehreren Kandidatenfluchtbereichen auf Grundlage der mehreren Voten.
  10. System nach Anspruch 9, wobei das Bestimmen von Fluchtpunkten für das Trainingsdigitalbild des Weiteren umfasst: Anwenden einer Hough-Transformation auf die Trainingslinien an dem kugelförmigen Panorama.
  11. System nach Anspruch 10, des Weiteren umfassend: Bestimmen einer Trainingsgewichtung für die Trainingslinie auf Grundlage des Abstandes zwischen dem Fluchtpunkt und der Trainingslinie; und Vergleichen der Trainingsgewichtung für die Trainingslinie mit einer Abstandsschwelle.
  12. System nach Anspruch 11, des Weiteren umfassend: Aufnehmen der Trainingslinie in den Satz von Ground-Truth-Fluchtlinien auf Grundlage des Vergleiches der Trainingsgewichtung für die Trainingslinie mit der Abstandsschwelle.
  13. System nach einem der Ansprüche 8 bis 12, wobei das Bestimmen von Fluchtpunkten für das Trainingsdigitalbild umfasst: Bestimmen einer vertikalen Fluchtrichtung, einer ersten horizontalen Richtung und einer zweiten horizontalen Richtung für das Trainingsdigitalbild.
  14. System nach einem der Ansprüche 8 bis 13, wobei das Generieren von vorhergesagten Fluchtlinien aus dem Trainingsdigitalbild des Weiteren umfasst: Einsetzen einer Pyramidenmerkmalseinheit einer Schicht des der Detektion kritischer Kanten dienenden neuronalen Netzwerkes, wobei die Pyramidenmerkmalseinheit einen Faltungsvorgang parallel zu einer Abfolge von mehreren Faltungsvorgängen umfasst.
  15. System nach einem der Ansprüche 8 bis 14, des Weiteren umfassend Anweisungen, die bei Ausführung durch den wenigstens einen Prozessor das System veranlassen zum: Bestimmen der Abstände durch Bestimmen eines ersten Winkelabstandes zwischen einer ersten Fluchtlinie der Fluchtlinien und einer ersten Fluchtrichtung der Fluchtrichtungen.
  16. System nach einem der Ansprüche 8 bis 15, wobei das der Detektion kritischer Kanten dienende neuronale Netzwerk ein faltungstechnisches neuronales Netzwerk umfasst.
  17. Verfahren zum Bestimmen von Kameraparametern für ein Digitalbild, umfassend: Durchführen eines Schrittes zum Trainieren eines der Detektion kritischer Kanten dienenden neuronalen Netzwerkes zum Generieren von Fluchtkantenkarten aus Trainingsdigitalbildern; Identifizieren eines Digitalbildes, das mittels einer Kameravorrichtung mit Kameraparametern aufgenommen wird; Durchführen eines Schrittes zum Einsetzen des der Detektion kritischer Kanten dienenden neuronalen Netzwerkes zum Generieren einer Fluchtkantenkarte für das Digitalbild; und Bestimmen der Kameraparameter der Kamera, die zum Aufnehmen des Digitalbildes eingesetzt wird, unter Einsatz der Fluchtkantenkarte.
  18. Verfahren nach Anspruch 17, wobei die Kameraparameter eines oder mehrere von Brennweite, Nicken, Rollen und Gieren umfassen.
  19. Verfahren nach Anspruch 17 oder 18, wobei die Fluchtkantenkarte eine oder mehrere Fluchtlinien aus dem Digitalbild umfasst.
  20. Verfahren nach einem der Ansprüche 17 bis 19, des Weiteren umfassend: Generieren eines nachbearbeiteten Digitalbildes aus dem Digitalbild auf Grundlage der bestimmten Kameraparameter.
DE102019007796.2A 2019-01-25 2019-11-11 Einsetzen eines der Detektion kritischer Kanten dienenden neuronalen Netzwerkes und eines geometrischen Modells zum Bestimmen von Kameraparametern aus einem einzigen Digitalbild Pending DE102019007796A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/257,495 2019-01-25
US16/257,495 US11094083B2 (en) 2019-01-25 2019-01-25 Utilizing a critical edge detection neural network and a geometric model to determine camera parameters from a single digital image

Publications (1)

Publication Number Publication Date
DE102019007796A1 true DE102019007796A1 (de) 2020-07-30

Family

ID=69137373

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102019007796.2A Pending DE102019007796A1 (de) 2019-01-25 2019-11-11 Einsetzen eines der Detektion kritischer Kanten dienenden neuronalen Netzwerkes und eines geometrischen Modells zum Bestimmen von Kameraparametern aus einem einzigen Digitalbild

Country Status (5)

Country Link
US (2) US11094083B2 (de)
CN (1) CN111489396A (de)
AU (1) AU2019268184B2 (de)
DE (1) DE102019007796A1 (de)
GB (1) GB2585396B (de)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112529978B (zh) * 2020-12-07 2022-10-14 四川大学 一种人机交互式抽象画生成方法
US12020419B2 (en) * 2021-08-11 2024-06-25 Caterpillar Inc. Ground engaging tool wear and loss detection system and method
CN113673457B (zh) * 2021-08-26 2023-06-30 北京环境特性研究所 模拟测量图像处理方法、装置、计算设备及存储介质
US11562504B1 (en) 2022-01-26 2023-01-24 Goodsize Inc. System, apparatus and method for predicting lens attribute
US11812153B2 (en) * 2022-03-07 2023-11-07 Volvo Car Corporation Systems and methods for fisheye camera calibration and bird's-eye-view image generation in a simulation environment
CN114708333B (zh) * 2022-03-08 2024-05-31 智道网联科技(北京)有限公司 自动标定相机外参模型的生成方法及装置
US20240161320A1 (en) 2022-11-15 2024-05-16 Adobe Inc. Generating adaptive three-dimensional meshes of two-dimensional images
US20240135612A1 (en) 2022-10-03 2024-04-25 Adobe Inc. Generating shadows for placed objects in depth estimated scenes of two-dimensional images
US20240161406A1 (en) 2022-11-15 2024-05-16 Adobe Inc. Modifying two-dimensional images utilizing iterative three-dimensional meshes of the two-dimensional images
US20240161405A1 (en) 2022-11-15 2024-05-16 Adobe Inc. Modifying two-dimensional images utilizing segmented three-dimensional object meshes of the two-dimensional images
GB202403090D0 (en) 2023-04-20 2024-04-17 Adobe Inc Generating three-dimensional human models representing two-dimensional humans in two-dimensional images

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2305050A (en) * 1995-09-08 1997-03-26 Orad Hi Tec Systems Ltd Determining the position of a television camera for use in a virtual studio employing chroma keying
CN101894366B (zh) * 2009-05-21 2014-01-29 北京中星微电子有限公司 一种获取标定参数的方法、装置及一种视频监控系统
DE112013002200T5 (de) * 2012-04-27 2015-01-08 Adobe Systems Incorporated Automatische Anpassung von Bildern
US9299188B2 (en) * 2013-08-08 2016-03-29 Adobe Systems Incorporated Automatic geometry and lighting inference for realistic image editing
US9996749B2 (en) * 2015-05-29 2018-06-12 Accenture Global Solutions Limited Detecting contextual trends in digital video content
US11244174B2 (en) * 2017-10-06 2022-02-08 NetraDyne, Inc. System and method of determining a curve
RU2698402C1 (ru) 2018-08-30 2019-08-26 Самсунг Электроникс Ко., Лтд. Способ обучения сверточной нейронной сети для восстановления изображения и система для формирования карты глубины изображения (варианты)
KR20200030305A (ko) * 2018-09-12 2020-03-20 삼성전자주식회사 영상 처리를 위한 학습 데이터 생성 방법, 영상 처리 방법, 및 그 장치들
US10817729B2 (en) 2018-09-26 2020-10-27 Allstate Insurance Company Dynamic driving metric output generation using computer vision methods

Also Published As

Publication number Publication date
GB2585396B (en) 2022-04-27
AU2019268184B2 (en) 2021-08-19
AU2019268184A1 (en) 2020-08-13
US20200242804A1 (en) 2020-07-30
GB2585396A (en) 2021-01-13
US20210358170A1 (en) 2021-11-18
GB201916984D0 (en) 2020-01-08
US11810326B2 (en) 2023-11-07
US11094083B2 (en) 2021-08-17
CN111489396A (zh) 2020-08-04

Similar Documents

Publication Publication Date Title
DE102019007796A1 (de) Einsetzen eines der Detektion kritischer Kanten dienenden neuronalen Netzwerkes und eines geometrischen Modells zum Bestimmen von Kameraparametern aus einem einzigen Digitalbild
DE112019005750T5 (de) Erlernen des Erzeugens synthetischer Datensätze zum Trainieren neuronalerNetze
DE102019000171A1 (de) Digitalumgebung zur Verortung semantischer Klassen
DE102018006317A1 (de) Tiefe neurale Netzwerke für hervorstechenden Inhalt für eine effiziente Segmentierung eines digitalen Objekts
US20220076002A1 (en) Action recognition method and apparatus, computer storage medium, and computer device
DE112019001310T5 (de) Systeme und verfahren zum reduzieren der menge an datenspeicher beim maschinellen lernen
DE102019007196A1 (de) Identifizieren von Zielobjekten unter Nutzung der skalierungsdiversen Segmentierung dienender neuronaler Netzwerke
DE102016005407A1 (de) Gemeinsames Tiefenschätzen und semantisches Bezeichnen eines einzelnen Bildes
AU2021354030B2 (en) Processing images using self-attention based neural networks
DE102022105471A1 (de) Generieren von modifizierten Digitalbildern unter Einsatz von tiefen visuellen angeleiteten Patchabgleichsmodellen zur Bildwiederherstellung
DE102019122402A1 (de) Das klassifizieren von zeitreihenbilddaten
DE102017012116A1 (de) Vorschauerzeugung aus panoramischen Bildern
DE102016014188A1 (de) Erzeugung eines 3-D-Modells aus 2-D-Bildern
DE102021105249A1 (de) Mikrotraining zur iterativen verfeinerung eines neuronalen netzes mit wenigen anpassungen
DE102021004506A1 (de) Generative Bildzusammenführung
DE102021006022A1 (de) Webbasierte Digitalbildbearbeitung in Echtzeit unter Einsatz eines Latentvektorstreamwiedergebers und eines bildmodifizierenden neuronalen Netzwerkes
DE102021205690A1 (de) Trainieren neuronaler Netze mit begrenzten Daten unter Verwendung invertierbarer Augmentationsoperatoren
DE112021006273T5 (de) Automatische beschreibung und entnahme von tabellendaten im portable document format unter verwendung von neuronalen graphennetzen
DE102019112595A1 (de) Geführte halluzination für fehlende bildinhalte unter verwendung eines neuronalen netzes
DE102021105291A1 (de) Gewichtsdemodulation für ein erzeugendes neuronales netz
DE102017009118A1 (de) Bildabgleich für serienbilder
DE102022120117A1 (de) On-Device erfolgendes Detektieren von Digitalobjekten und Generieren von Objektmasken
DE102022120595A1 (de) Durchführen von verdeckungs-bewusster globaler 3d-posen- und formschätzung von gelenkigen objekten
DE102016013630A1 (de) Einbettungsraum für Bilder mit mehreren Textetiketten
DE102020122028A1 (de) Selbstüberwachtes hierarchisches bewegungslernen für videoaktionserkennung

Legal Events

Date Code Title Description
R012 Request for examination validly filed