DE112013002200T5 - Automatische Anpassung von Bildern - Google Patents

Automatische Anpassung von Bildern Download PDF

Info

Publication number
DE112013002200T5
DE112013002200T5 DE112013002200.1T DE112013002200T DE112013002200T5 DE 112013002200 T5 DE112013002200 T5 DE 112013002200T5 DE 112013002200 T DE112013002200 T DE 112013002200T DE 112013002200 T5 DE112013002200 T5 DE 112013002200T5
Authority
DE
Germany
Prior art keywords
image
implementations
camera
scene
features
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
DE112013002200.1T
Other languages
English (en)
Inventor
Elya Shechtman
Jue Wang
Seungyong Lee
Hyunjoon Lee
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.)
UNIVERSITY OF SCIENCE AND TECHNOLOGY ACADEMY-I, KR
Adobe Inc
Original Assignee
SCIENCE AND TECHNOLOGY ACADEMY INDUSTRY FOUNDATION, University of
SCIENCE AND TECHNOLOGY ACADEMY-INDUSTRY FOUNDATION, University of
Adobe Systems 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 SCIENCE AND TECHNOLOGY ACADEMY INDUSTRY FOUNDATION, University of, SCIENCE AND TECHNOLOGY ACADEMY-INDUSTRY FOUNDATION, University of, Adobe Systems Inc filed Critical SCIENCE AND TECHNOLOGY ACADEMY INDUSTRY FOUNDATION, University of
Publication of DE112013002200T5 publication Critical patent/DE112013002200T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/80Geometric correction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/80Camera processing pipelines; Components thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/20Perspective computation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/60Rotation of whole images or parts thereof
    • G06T3/608Rotation of whole images or parts thereof by skew deformation, e.g. two-pass or three-pass rotation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Geometry (AREA)
  • Computing Systems (AREA)
  • Computer Graphics (AREA)
  • Studio Devices (AREA)
  • Image Processing (AREA)

Abstract

Verfahren und Vorrichtung zur automatischen Upright-Anpassung von digitalen Bildern. Es wird ein automatisches Upright-Anpassungsverfahren beschrieben, das einen automatisierten Ansatz zum Begradigen von geneigten Merkmalen in einem Eingangsbild bereitstellen kann, um dessen Wahrnehmungsqualität zu verbessern. Diese Korrektur kann als Upright-Anpassung bezeichnet werden. Ein Satz von Kriterien basierend auf der menschlichen Wahrnehmung kann bei der Upright-Anpassung verwendet werden. Ein Reprojektionsverfahren, das einen Optimierungsrahmen implementiert, wird beschrieben, der eine optimale Homographie für die Anpassung basierend auf den Kriterien ergibt und das Bild gemäß neuer Kameraparameter anpasst, die durch die Optimierung erzeugt werden. Es wird ein optimierungsbasiertes Kamerakalibrierungsverfahren beschrieben, das gleichzeitig Fluchtpunkte und -linien sowie Kameraparameter für ein Bild schätzt; das Kalibrierungsverfahren kann beispielsweise verwendet werden, um Schätzungen von Kameraparametern und Fluchtpunkten und -linien zu generieren, die an das Reprojektionsverfahren eingegeben werden.

Description

  • Verwandte Anmeldungen
  • Diese Anmeldung beansprucht unter 35 U.S.C. Abschnitt 119(e) Priorität der vorläufigen US-Patentanmeldung Nr. 61/639,721, eingereicht am 27. April 2012 und mit dem Titel ”Techniques and Apparatus for Automatic Adjustment of Digital Images”, deren Offenbarung hiermit durch Bezugnahme in ihrer Gesamtheit aufgenommen ist.
  • Hintergrund
  • Bilder (ob digitale Bilder oder konventionelle Filmbilder), die von Fotografen aufgenommen werden, enthalten häufig perspektivische Verzerrungen. Insbesondere erscheinen vom Menschen geschaffene Strukturen auf Fotos, die von Hobbyfotografen aufgenommen werden, häufig verzerrt, da das Szenenlayout häufig mit Erwartungen der menschlichen Wahrnehmung in Konflikt steht. Nimmt man zum Beispiel ein Bild eines Wolkenkratzers auf, so kann das Gebäude auf dem Bild schief sein und daher nicht als nach oben gerade erscheinen. Dies kann darauf zurückzuführen sein, dass der Blick bzw. Gesichtswinkel bzw. Betrachtungspunkt körperlich begrenzt ist und damit die Aufnahme eines Bilds oder Bilder von dem besten Betrachtungspunkt aus nicht möglich ist. In diesen Fällen möchte ein Benutzer (Fotograf, Künstler, etc.) vielleicht eine Korrektur der perspektivischen Verzerrung anwenden, um das ursprüngliche digitale oder digitalisierte Bild zu verbessern, um es so aussehen zu lassen, als ob die Szene von einem besseren Betrachtungspunkt aufgenommen worden wäre. Allerdings ist diese Art der Verzerrung schwierig manuell zu beheben, und zwar zumindest aus dem Grund, dass die Korrektur der perspektivischen Verzerrung eine dreidimensionale (3D) Drehung beinhaltet.
  • Zusammenfassung
  • Es werden Verfahrenen beschrieben, welche die automatische Upright-Anpassung bzw. das automatische gerade Ausrichten betreffen. Verfahrenen der Upright-Anpassung können einen automatisierten Ansatz zum Begradigen von geneigten, vom Menschen geschaffenen Strukturen (oder anderen Eigenschaften, wie natürliche Merkmale, die relativ gerade sind, wie Bäume und Horizonte) in einem Eingangsbild bereitstellen, um dessen Wahrnehmungsqualität zu verbessern. Diese Korrektur kann als Upright-Anpassung bzw. automatisches gerades Ausrichten bezeichnet werden. Ein Satz von Kriterien wird für die Upright-Anpassung basierend auf Studien zur menschlichen Wahrnehmung beschrieben. Darüber hinaus wird ein Optimierungsrahmen beschrieben, der eine optimale Homographie für die Anpassung ergibt. Ferner wird ein optimierungsbasiertes Kamerakalibrierungsverfahren beschrieben, das im Vergleich zu herkömmlichen Verfahrenen vorteilhaft abschneidet, und dies ermöglicht, dass Implementierungen der automatischen Upright-Anpassungsverfahrenen zuverlässig für eine breite Vielzahl von Bildern funktionieren.
  • Implementierungen können ein automatisches System zur Upright-Anpassung bzw. zum automatischen geraden Ausrichten von Bildern bereitstellen, das mehrere Kriterien für die quantitative Messung der wahrgenommenen Qualität vom Menschen geschaffener Strukturen oder anderer Bildmerkmale wirksam einsetzen kann. Nach den Kriterien kann ein Reprojektionsverfahren einen Energieminimierungsrahmen implementieren, der eine optimale Homographie berechnet, um die wahrgenommene Verzerrung von geneigten Strukturen und anderen Bildmerkmalen zu minimieren. Darüber hinaus können Kamerakalibrierungsverfahrenen eingesetzt, um gleichzeitig Fluchtlinien und -punkte sowie Kameraparameter zu schätzen, die genauer und robuster als herkömmliche Verfahrenen ist bzw. sind, und können verwendet werden, um Schätzungen für Kameraparameter und Fluchtpunkte und -linien zu erzeugen, die beispielsweise für bzw. an das Reprojektionsverfahren eingegeben werden können.
  • Implementierungen der automatische Upright-Anpassungsverfahren können zumindest einige natürliche Szenen sowie Szenen vom Menschen geschaffener Merkmale handhaben. Die Implementierungen können zuverlässig für eine Vielzahl von Bildern funktionieren, ohne eine Benutzerinteraktion zu beinhalten.
  • Kurze Beschreibung der Zeichnungen
  • 1 zeigt verschiedene Beispiele einer Upright-Anpassung bzw. eines geraden Ausrichtens von Bildern gemäß zumindest einigen Implementierungen.
  • 2 ist ein High-Level-Flussdiagramm des automatischen Upright-Anpassungsverfahrens gemäß zumindest einigen Implementierungen.
  • 3 ist ein Flussdiagramm eines Reprojektionsverfahrens gemäß zumindest einigen Implementierungen.
  • 4 ist ein Flussdiagramm eines Kamerakalibrierungsverfahrens gemäß zumindest einigen Implementierungen.
  • 5 zeigt Perkins Gesetz.
  • 6A und 6B zeigen Ergebnisse eines Eckpunkt-Extraktionsverfahrens gemäß zumindest einigen Implementierungen.
  • 7A und 7B zeigen das Detektieren von gekrümmten Rand- bzw. Kantenpixeln gemäß zumindest einigen Implementierungen.
  • 8A bis 8C zeigen die Anpassung eines Fotos mit großen Kameradrehungen gemäß zumindest einigen Implementierungen.
  • 9A bis 9C zeigen eine Kontrolle der perspektivischen Verzerrung gemäß zumindest einigen Implementierungen.
  • 10A bis 10D zeigen den Prozess des Kamerakalibrierungsverfahrens gemäß zumindest einigen Implementierungen.
  • 11A und 11B vergleichen Ergebnisse einer Implementierung des automatischen Upright-Anpassungsverfahrens mit manuell erzeugten Ergebnissen.
  • 12 vergleicht Ergebnisse einer Implementierung des automatischen Upright-Anpassungsverfahrens mit Bildern, die unter Verwendung eines Tilt/Shift-Objektivs aufgenommen werden.
  • 13A und 13B zeigen das Zuschneiden eines angepassten Bilds gemäß zumindest einigen Implementierungen.
  • 14A bis 14C vergleichen Ergebnisse einer Implementierung des automatischen Upright-Anpassungsverfahrens mit Ergebnissen eines herkömmlichen Rektifikations- bzw. Entzerrungsverfahrens.
  • 15A und 15B zeigen Ergebnisse einer Implementierung des automatischen Upright-Anpassungsverfahrens.
  • 16A und 16B zeigen Ergebnisse einer Implementierung des automatischen Upright-Anpassungsverfahrens.
  • 17A und 17B zeigen Ergebnisse einer Implementierung des automatischen Upright-Anpassungsverfahrens.
  • 18A und 18B zeigen Ergebnisse einer Implementierung des automatischen Upright-Anpassungsverfahrens.
  • 19A und 19B zeigen Ergebnisse einer Implementierung des automatischen Upright-Anpassungsverfahrens.
  • 20A und 20B zeigen Ergebnisse einer Implementierung des automatischen Upright-Anpassungsverfahrens.
  • 21A und 21B zeigen Ergebnisse einer Implementierung des automatischen Upright-Anpassungsverfahrens.
  • 22A und 22B zeigen Ergebnisse einer Implementierung des automatischen Upright-Anpassungsverfahrens.
  • 22C zeigt Beispiele der Manhattan-Welt- und der Atlanta-Welt-Annahme.
  • 23 zeigt ein exemplarisches Modul oder exemplarische Module, das bzw. die ein automatisches Upright-Anpassungsverfahren implementieren kann bzw. können, und zwar gemäß zumindest einigen Implementierungen.
  • 24 zeigt ein exemplarisches Computersystem das bei Implementierungen verwendet werden kann.
  • Während die Verfahrenen hierin beispielhaft für mehrere Implementierungen und illustrative Zeichnungen beschrieben werden, ist es für Fachleute ersichtlich, dass die Erfindung nicht auf die beschriebenen Ausführungsformen und Zeichnungen beschränkt ist. Es sollte verstanden werden, dass die Zeichnungen und detaillierte Beschreibung dazu die Erfindung nicht auf die spezielle offenbarte Form beschränken sollen, sondern im Gegenteil es die Absicht ist, alle Modifikationen, Äquivalente und Alternativen mit abzudecken, die innerhalb des Wesens und Schutzbereichs der vorliegenden Erfindung fallen. Die hier verwendeten Überschriften dienen nur zu organisatorischen Zwecken und sind nicht dazu gedacht verwendet zu werden, um den Schutzbereich der Beschreibung zu begrenzen. Gemäß seiner Verwendung in der gesamten Anmeldung wird das Wort „kann” in einem erlaubenden Sinn verwendet (d. h. mit dem Potential zu), anstatt in einem obligatorischen Sinn (d. h. müssen). Ebenso bedeuten die Wörter „enthalten”, „enthaltend” bzw. „einschließlich” und „enthält” einschließlich, aber ohne darauf beschränkt zu sein.
  • Detaillierte Beschreibung
  • Überblick
  • Ein großer Teil der Verbraucherfotos enthält vom Menschen geschaffene Strukturen, wie Stadtszenen mit Gebäuden und Straßen, und Innenszenen mit Wänden und Möbeln. Das richtige Fotografieren dieser Strukturen ist jedoch keine leichte Aufgabe. Fotos von Amateurfotografen enthalten häufig geneigte Gebäude, Mauern und Horizontlinien auf Grund von unsachgemäßen Kameradrehungen, wie es in der linken Spalte von 1 gezeigt ist.
  • Das menschliche Sehsystem (hier als menschliche Wahrnehmung oder Wahrnehmung bezeichnet) erwartet im Allgemeinen hohe vom Menschen geschaffene Strukturen und einige andere Merkmale, die in einigen Szenen als nach oben gerade erscheinen können, und Horizontlinien, die parallel zur Augenhöhe sein sollen. Konflikte mit diesem System können bei dem Betrachter ein Gefühl von Unbehagen auslösen, wenn er ein Foto betrachtet, das geneigte (nicht vertikale) Strukturen oder andere Merkmale, wie gekippte (nicht horizontale) Horizonte enthält.
  • Dementsprechend werden automatische Bildanpassungsverfahrenen beschrieben. Zum Beispiel kann ein automatisches Anpassungsverfahren eine einzige bzw. einzelne Homographie nutzen, um ein Foto unter einer einheitlichen Tiefenannahme für eine Szene zu korrigieren. Eine Homographie kann verwendet werden, um eine Beziehung zwischen einem Bild und einer Szene zu beschreiben, beispielsweise eine Beziehung eines Betrachtungspunkts des Bilds zu der Szene beschreiben. Daher kann die Homographie in diesem Beispiel verwendet werden, um ein Bild anzupassen, um die Übereinstimmung mit Erwartungen der menschlichen Wahrnehmung zu erhöhen.
  • Beispielsweise werden Implementierungen eines automatischen Upright-Anpassungsverfahren beschrieben, das einen automatisierten Ansatz zum Begradigen von geneigten oder gekippten, vom Menschen geschaffenen Strukturen und natürlichen Merkmalen, von denen erwartet wird, dass sie relativ gerade sind, wie Bäume und Horizonte, in einem Eingangsbild bereitstellen, um dessen Wahrnehmungsqualität zu verbessern. Diese Korrektur kann als Upright-Anpassung bzw. automatisches gerades Ausrichten bezeichnet werden. Ein Satz von Kriterien, die auf Studien zur menschlichen Wahrnehmung basieren und während der Upright-Anpassung angewandt werden, wird beschrieben. Die Homographie kann auf eine Vielzahl von Arten berechnet werden, beispielsweise durch Verwendung eines Optimierungsrahmens, der konfiguriert ist, eine optimale Homographie für die Anpassung gemäß den Kriterien zu ergeben.
  • Implementierungen des automatischen Anpassungsverfahrenens können auch verwendet werden, um die Perspektive eines Eingangsbilds anpassen, um seine visuelle Qualität zu verbessern. Um dies zu erreichen wird bei wenigstens einigen Implementierungen ein Satz von Kriterien basierend auf Wahrnehmungstheorien definiert. Ein Optimierungsrahmen kann zum Messen und Anpassen der Perspektive gemäß den Kriterien angewandt werden. Bei zumindest einigen Implementierungen kann zusätzliche Einschränkungen eingebracht werden, um perspektivische Verzerrungen an Merkmalen wie Flächen bzw. Gesichtern oder Kreisen zu vermeiden. Zusätzlich zu Anwendungen für die Anpassung von Standbildern können Implementierungen ausgelegt sein, Videorahmen bzw. -Frames anzupassen, und somit können Bilder verwendet werden, um sich auf jeden Fall zu beziehen.
  • Zusätzlich werden Kamerakalibrierungsverfahrenen beschrieben. Die Kamerakalibrierungsverfahrenen können verwendet werden, um Charakteristika eines Bilds zu beschreiben. Diese Charakteristika können dann als Grundlage verwendet werden, um das Bild wie oben anzupassen. Beispielsweise können die Kamerakalibrierungsverfahrenen verwendet werden, um Fluchtlinien und -punkte sowie Kameraparameter in Verbindung miteinander bzw. zusammen zu schätzen, das heißt, gleichzeitig. Diese Schätzungen können dann als Teil der oben genannten Homographie verwendet werden, um das Bild basierend auf Kriterien, die auf der menschlichen Wahrnehmung basieren, anzupassen, um visuell plausible Ergebnisse zu erzielen. Eine weitere Erörterung von Kamerakalibrierungsverfahrenen findet sich in Bezug auf den untenstehenden Kamerakalibrierungsabschnitt.
  • In der folgenden detaillierten Beschreibung werden zahlreiche spezifische Details dargelegt, um ein gründliches Verständnis des beanspruchten Gegenstands bieten. Jedoch wird es Fachleuten ersichtlich sein, dass der beanspruchte Gegenstand ohne diese spezifischen Details praktiziert werden kann. In anderen Fällen werden Verfahrenen, Vorrichtungen oder Systeme, die einem Durchschnittsfachmann geläufig sind, nicht im Detail beschrieben, um den beanspruchten Gegenstand nicht unverständlich zu machen.
  • Einige Teile der detaillierten Beschreibung, die folgen, werden als Algorithmen oder symbolische Darstellungen von Operationen an binären digitalen Signalen dargestellt, die innerhalb eines Speichers einer spezifischen Vorrichtung oder einer Spezialzweck-Rechenvorrichtung oder Plattform gespeichert sind. Im Rahmen dieser speziellen Beschreibung umfasst der Begriff spezifische Vorrichtung oder dergleichen einen Allzweckcomputer, sobald er so programmiert ist, bestimmte Funktionen gemäß Instruktionen von Programm-Software durchzuführen. Algorithmische Beschreibungen oder symbolischen Darstellungen sind Beispiele für Verfahrenen, die von Durchschnittsfachleuten bei der Signalverarbeitung oder auf verwandten Gebieten verwendet werden, um den Inhalt ihrer Arbeit an andere Fachleute zu vermitteln. Ein Algorithmus versteht sich hier und im Allgemeinen als in sich konsistente Sequenz von Operationen oder ähnliche Signalverarbeitung, die zu einem gewünschten Ergebnis führt. In diesem Zusammenhang beinhalten Operationen oder Verarbeitungen die physikalische Manipulation von physikalischen Größen. Für gewöhnlich, obwohl nicht notwendigerweise, nehmen solche Größen die Form von elektrischen oder magnetischen Signalen an, die gespeichert, übertragen, kombiniert, verglichen und anderweitig manipuliert werden können. Manchmal ist es hauptsächlich aus Gründen der allgemeinen Gebräuchlichkeit praktisch, diese Signale als Bits, Daten, Werte, Elemente, Symbole, Zeichen, Terme bzw. Begriffe, Zahlen, Ziffern oder dergleichen zu bezeichnen. Es ist jedoch ersichtlich, dass all diese oder ähnliche Begriffe mit geeigneten physikalischen Größen assoziiert bzw. verknüpft werden müssen und lediglich geeignete Termini bzw. Kennungen sind. Sofern nicht ausdrücklich anders angegeben, wie es aus der folgenden Erörterung ersichtlich ist, wird anerkannt, dass in dieser gesamten Beschreibung Erörterungen, welche Begriffe wie ”Verarbeitung”, ”Rechen-”, ”Berechnung”, ”Bestimmung” oder dergleichen verwenden, auf Aktionen und Prozesse einer bestimmten Vorrichtung bezogen sind, beispielsweise eines Spezialzweckcomputers oder einer ähnlichen elektronischen Spezialzweckrechenvorrichtung. Im Rahmen dieser Beschreibung ist ein Spezialzweckcomputer oder eine ähnliche elektronische Spezialzweckrechenvorrichtung in der Lage, Signale zu manipulieren oder zu transformieren, die typischerweise als physikalische elektronische oder magnetische Größen innerhalb von Speichern, Registern oder anderen Informationsspeichervorrichtungen, Übertragungsvorrichtungen oder Anzeigevorrichtungen des Spezialzweckcomputers oder ähnlichen elektronischen Spezialzweckrechenvorrichtung dargestellt werden.
  • Implementierungsbeispiel
  • 1 zeigt verschiedene Beispiele einer Upright-Anpassung bzw. automatischen geraden Ausrichtung von Bildern gemäß zumindest einigen Implementierungen der automatischen Upright-Anpassungsverfahrenen. Die linke Spalte zeigt die Original-Bilder, während die rechte Spalte die resultierenden Bilder zeigt, die gemäß einer Implementierung der hierin beschriebenen Upright-Anpassungsverfahren erzeugt werden. Die beiden oberen Bilder (a) zeigen eine städtische Gebäudeszene auf Straßenebene, die zweiten beiden Bilder (b) zeigen eine planare bzw. flache Platte, die nächsten beiden Bilder (c) zeigen eine Restaurant-Innenszene, die nächsten beiden Bilder (d) zeigen eine städtische Szene aus der Luft und die letzten beiden Bilder (e) zeigen eine Naturszene mit Bergen und Bäumen.
  • Unter der Annahme, dass die Tiefenvariationen der Szene relativ zu ihrem Abstand von der Kamera klein sind, beinhaltet das Korrigieren einer geneigten Struktur eine 3D-Drehung der Bildebene. Diese Korrektur kann als Upright-Anpassung bzw. automatische gerade Ausrichtung bezeichnet werden, da sie verwendet wird, um vom Menschen geschaffene (oder andere) Strukturen als „nach oben gerade” erscheinen zu lassen, wie es die menschliche Wahrnehmung erwartet. Ähnliche Korrekturen sind als Schrägprojektion bzw. Trapezverzerrung bzw. Keystoning und perspektivische Korrektur bekannt, die durch manuelles Verzerren bzw. Warping des Bilds unter Verwendung herkömmlicher digitaler Bildverarbeitungstools oder während der Aufnahme unter Verwendung eines speziellen Tilt/Shift-Objektivs erreicht werden kann. Die Zieldomäne dieser Tools beinhaltet jedoch typischerweise Fassaden von Gebäuden, während Implementierungen der Upright-Anpassungsverfahren nicht explizit bestimmte Typen von Objekten in der Szene annehmen. Darüber hinaus kann eine manuelle Korrektur besondere Fähigkeiten beinhalten und langweilig bzw. ermüdend werden, wenn sie verwendet wird, um Dutzende oder Hunderte von Fotos zu bearbeiten.
  • Implementierungen können ein automatisches System zur Upright-Anpassung bzw. zum geraden Ausrichten von Fotos bereitstellen, welches das Folgende umfasst, aber nicht darauf beschränkt ist:
    • • mehrere Kriterien zum quantitativen Messen der wahrgenommenen Qualität vom Menschen geschaffener Strukturen oder anderer Bildmerkmale basierend auf früheren Studien über die menschliche Wahrnehmung;
    • • gemäß den Kriterien, einen Energieminimierungsrahmen, der eine optimale Homographie berechnet, welche die wahrgenommene Verzerrung von geneigten Strukturen und anderen Bildmerkmale effektiv minimieren kann; und
    • • eine Kamerakalibrierungsverfahren, die gleichzeitig Fluchtlinien und -punkte sowie Kameraparameter schätzt und genauer und robuster ist als herkömmliche Verfahren.
  • Implementierungen der automatischen Upright-Anpassungsverfahren können zumindest einige Naturszenen sowie Szenen Menschen geschaffener Merkmale (siehe beispielsweise die letzten beiden Bilder (e) in 1) handhaben. Implementierungen können auch zuverlässig für eine Vielzahl von Bildern ohne Benutzerinteraktion funktionieren.
  • Automatische AnpassungsVerfahren
  • 2 ist ein High-Level-Flussdiagramm, das ein automatisches Anpassungsverfahren gemäß zumindest einigen Implementierungen zeigt. Wie es bei 100 angegeben ist kann eine Low-Level-Liniendetektionsverfahren auf ein Eingangsbild (oder jedes Bild in einem Eingangssatz von Bildern, wie die Rahmen bzw. Frames einer Videosequenz) angewandt werden, um Linien und Kanten bzw. Ränder in dem Bild zu detektieren. Wie es bei 110 angegeben ist kann ein Kamerakalibrierungsverfahren, das zumindest die Liniensegmente als Eingang bzw. Eingabe nimmt, zum Schätzen von Fluchtpunkten und Fluchtlinien sowie anderen Kameraparametern verwendet werden. Ein optimierungsbasiertes robustes Kamerakalibrierungsverfahren, das bei zumindest einigen Implementierungen verwendet werden kann, um gleichzeitig Fluchtpunkte und -linien sowie Kameraparameter zu schätzen, wird später in diesem Dokument beschrieben.
  • Wie es bei 120 angegeben ist wird gemäß der Kameraparameter und Fluchtpunkte und -linien eine Reprojektion durchgeführt, um die Upright-Anpassung effektiv durchzuführen. Es kann ein Reprojektionsmodell verwendet werden, das eine Neu- bzw. Wiederaufnehme der rektifizierten bzw. entzerrten Szene unter Verwendung einer anderen Kamera impliziert, die an einer möglichst unterschiedlichen Position mit neuer Orientierung bzw. Ausrichtung platziert ist. Bei zumindest einigen Implementierungen kann diese neue Kamera auch unterschiedliche Brennweiten in horizontaler und vertikaler Richtung aufweisen. Beschrieben wird ein Energieminimierungs- oder Optimierungsrahmen, der eine optimale Homographie berechnet, welche die wahrgenommene Verzerrung von geneigten Strukturen oder anderen Bildmerkmalen effektiv minimieren kann, und der beim Schätzen bzw. Einschätzen einer neuen Kamera verwendet werden kann, die bei der Durchführung der Reprojektion verwendet wird. Wie oben beschrieben beschreibt die Homographie eine Beziehung zwischen zwei Bildern einer selben planaren bzw. flachen Fläche bzw. Oberfläche, wie unterschiedliche Perspektiven der Bildszene. Daher kann die Homographie in diesem Beispiel zum Anpassen eines Betrachtungspunkts einer Szene in einem Bild verwendet werden, damit dieser mit Erwartungen der menschlichen Erwartung in Einklang steht. Der Energieminimierungsrahmen kann mehrere Kriterien zur quantitativen Messung der wahrgenommenem Qualität vom Menschen geschaffener Strukturen oder anderer Bildmerkmale basierend auf Beobachtungen zur menschlichen Wahrnehmung berücksichtigen.
  • Wie bei 130 angegeben kann das resultierende angepasste Bild optional zugeschnitten werden. Das Zuschneiden kann automatisch oder manuell erfolgen. 13A und 13B zeigen das Zuschneiden eines angepassten Bilds gemäß zumindest einigen Implementierungen. 13A zeigt ein angepasstes Bild, das gemäß einer Implementierung des automatischen Upright-Anpassungsverfahrens erzeugt wird, und 13B zeigt einen Ausschnitt des Bilds von 13A.
  • 3 ist ein Flussdiagramm eines Rückprojektionsverfahrens zur Korrektur eines Bilds einer Szene, wie ein digitales oder digitalisiertes Foto, so dass Merkmale, die nach menschlicher Wahrnehmung im Wesentlichen vertikal und/oder horizontal erscheinen sollte, angepasst werden, und zwar gemäß zumindest einigen Implementierungen. Das Flussdiagramm von 3 stellt Details des Elements 120 von 2 gemäß zumindest einigen Implementierungen bereit. Wie bei 200 angegeben können intrinsische Kameraparameter, wie Brennweite und Projektionszentrum (z. B. eine Intrinsische-Parameter-Matrix „K”) und 3D-Rotationsinformationen (z. B. 3D-Rotationsmatrix „R”) und Fluchtpunkte und -linien (z. B. Manhattan-Richtungen „M”) für ein Bild einer Szene erhalten wird, d. h. die Hauptlinienstrukturen der Szene werden zu der bzw. auf die „x”, „y” und die „z” Richtung in drei Dimensionen ausgerichtet. Beispielsweise kann angenommen werden, dass ein rechteckiges Gebäude gemäß der Hauptrichtungen der Welt ausgerichtet wird.
  • Die Kamera-Parameter, 3D-Rotationsinformationen und die Fluchtpunktinformationen können kollektiv als Originalkamerainformationen bezeichnet werden. Bei zumindest einigen Implementierungen können die Fluchtpunkte und -linien sowie Kameraparameter und Rotation durch ein optimierungsbasiertes, robustes Kamerakalibrierungsverfahren geschätzt werden, die verwendet werden kann, um gleichzeitig die Fluchtpunkte und -linien und die Kameraparameter und Rotation zu schätzen, wie es später in diesem Dokument beschrieben wird. Bei einigen Implementierungen jedoch können die Fluchtpunkte und -linien, Kameraparameter und/oder 3D-Rotation auf andere Weise geschätzt und/oder erhalten werden. Mit den Eingabeinformationen berechnet das Verfahren eine Homographie, die auf das Eingangsbild angewandt werden kann, um die wahrgenommene Verzerrung von geneigten oder gekippten, vom Menschen geschaffenen Strukturen und anderen Bildmerkmalen in dem Bild effektiv zu minimieren.
  • Die Kriterien zur menschlichen Wahrnehmung, welche die wahrgenommene Qualität vom Menschen geschaffener Strukturen oder anderer Bildmerkmale quantitativ messen, können bei der Berechnung der Homographie verwendet werden. Bei zumindest einigen Implementierungen werden zur Berechnung der Homographie neue Kamerainformationen berechnet, die in der Reprojektion des Bilds verwendet werden können. Bei zumindest einigen Implementierungen kann zum Berechnen der neuen Kamerainformationen eine Energiefunktion, die Energieterme basierend auf den Kriterien zur menschlichen Wahrnehmung enthält, minimiert werden, um neue intrinsische Kameraparameter und eine neue 3D-Rotation für das Bild zu schätzen, wie bei 210 angegeben ist. Die Energiefunktion kann gemäß den ursprünglichen Kamerainformationen initialisiert werden, die bei Element 200 erhalten werden. Auf der menschlichen Wahrnehmung basierende Kriterien, die als Energieterme verwendet werden können, um die Optimierung zu beschränken bzw. zu bedingen, sind in dem Abschnitt mit dem Titel Kriterien beschrieben. Mathematische Formulierungen dieser Kriterien sind in dem Unterabschnitt mit dem Titel Energieterme des Abschnitts mit dem Titel Anpassungsoptimierungsrahmen beschrieben. Bei zumindest einigen Implementierungen kann die Energiefunktion abhängig von bzw. vorbehaltlicher einer Beschränkung bzw. Bedingung der perspektivischen Verzerrung minimiert werden. Bei zumindest einigen Implementierungen kann die Energiefunktion abhängig von bzw. vorbehaltlich einer Beschränkung bzw. Bedingung der Bildverzerrung minimiert werden, die als einer der Energieterme implementiert ist, um die Verzerrung von Merkmalen wie Kreisen und menschlichen Figuren und Gesichtern bzw. Flächen zu minimieren. Andere Energieterme können einen Bildrahmenausrichtung-Energieterm und einen Augenhöheausrichtung-Energieterm beinhalten, ohne darauf begrenzt zu sein. Wie es bei 220 angegeben ist kann das Bild dann gemäß einer Homographie reprojiziert werden. Bei zumindest einigen Implementierungen kann die Homographie durch ein Reprojektionsmodell (siehe Gleichung (A2)) definiert sein, welche die ursprünglichen Kameraparameter und 3D-Rotation (K und R in Gleichung (A2)) und die neuen Kameraparameter und 3D-Rotation (K1 definiert und R1 in Gleichung (A2)), die an dem Element 210 berechnet werden, zu dem bzw. in das Originalbild integriert bzw. inkorporiert. Bei zumindest einigen Implementierungen inkorporiert bzw. integriert das Reprojektionsmodell ferner eine Translation (t1 in Gleichung (A2)).
  • Das Anwenden der Homographie auf das Bild kann begrifflich als Neu- bzw. Wiederaufnehmen der Szene unter Verwendung einer anderen Kamera angesehen werde, die an möglichst unterschiedlichen Position mit einer neuen Orientierung bzw. Ausrichtung platziert ist. Bei zumindest einigen Implementierungen kann diese neue Kamera auch unterschiedliche Brennweiten in horizontaler und vertikaler Richtung aufweisen. Bei zumindest einer Implementierung kann eine Beschränkung bzw. Bedingung bei der Minimierung der Energiefunktion angewandt werden, und zwar implementiert als einer der Energieterme der Energiefunktion, um zu verhindern, dass die Brennweiten in der horizontalen und der vertikalen Richtung zu stark variieren. Die Ausgabe bzw. das Ergebnis der Verfahren von 3 ist ein angepasstes Bild, bei dem ein oder mehrere Merkmale des Bilds, die gemäß menschlicher Wahrnehmung im Wesentlichen vertikal und/oder horizontale erscheinen sollen, angepasst sind, um stärker mit dem im Einklang zu stehen, was das menschliche Auge bei Betrachtung des Bilds erwartet. Für ein Beispiel eines horizontalen Merkmals, das angepasst wurde, siehe 19A, bei welcher der Horizont in einem Originalbild leicht gekippt ist, und 19B, bei welcher der Horizont so angepasst wurde, dass er horizontaler ist. Für ein Beispiel vertikaler Merkmale, die angepasst wurden, siehe 22A, bei der die Gebäude der Skyline auf Grund der optischen Merkmale des Objektivs, das zum Aufnehmen des Originalbilds verwendet wurde, gekippt sind, und 22B, bei der die Gebäude so angepasst wurden, dass sie im Wesentlichen vertikal sind. Andere Beispiele sind in den 1(a) bis (1) sowie 14A bis 21B gezeigt.
  • 4 ist ein Flussdiagramm eines Kamerakalibrierungsverfahren gemäß zumindest einigen Implementierungen. Das Flussdiagramm von 4 stellt Details des Elements 110 von 2 gemäß zumindest einigen Implementierungen bereit. Das Kamerakalibrierungsverfahren kann die Kameraparameter und Fluchtpunkte und -linien für ein Eingangsbild in Verbindung miteinander bzw. zusammen schätzen. Die Ausgabe bzw. das Ergebnis des Kamerakalibrierungsverfahrens kann als Eingabe in das Verfahren von 3 eingegeben werden. Jedoch ist zu anzumerken, dass die Kamerakalibrierungsverfahren verwendet werden kann, um Kameraparameter und/oder Fluchtpunktinformation für andere digitale Bildverarbeitungsverfahrenen zu generieren.
  • Wie bei 300 angegeben ist kann ein Satz von Liniensegmenten aus einem Eingangsbild erhalten werden. Ein Low-Level-Liniendetektionsverfahren kann auf ein Eingangsbild (oder jedes Bild in einem eingegebenen Satz von Bildern, wie die Rahmen bzw. Frames einer Videosequenz) angewandt werden, um Linien und Kanten bzw. Ränder in dem Bild zu detektieren. Jede von verschiedenen Verfahrenen kann zum Detektieren der Liniensegmente verwendet werden. Wie es bei 310 angegeben ist können Anfangswerte für das Kalibrierungsverfahren bestimmt werden. Wie es bei 320 angegeben ist kann eine Energiefunktion iterativ optimiert werden, um gleichzeitig Kamera-Intrinsische-Parameter-Matrix „K”, Orientierungs- bzw. Ausrichtungsmatrix „R” (beispielsweise eine Rotationsmatrix, die verwendet werden kann, um eine Rotation im zweidimensionalen oder dreidimensionalen Raum zu beschreiben) und Fluchtpunkte für das Eingangsbild zu schätzen. Die Kamera-Intrinsische-Parameter-Matrix „K” kann Werte wie Brennweite, Pixelgröße in einer oder mehreren Richtungen (z. B. „x” und „y”-Richtung) und einen Hauptpunkt (z. B. der unter Verwendung von „x” und „y” Koordinaten definiert werden kann) beschreiben. Wie es bei 330 angegeben ist können Fluchtlinien für jeden Fluchtpunkt bestimmt werden.
  • In den folgenden Abschnitten werden verschiedene Elemente der 2 bis 4 detaillierter beschrieben. Zunächst wird ein Satz von Kriterien für die Upright-Anpassung bzw. gerade Ausrichtung von Fotos beschrieben, der bei zumindest einigen Implementierungen verwendet werden kann. Dann wird eine Formulierung einer Bildtransformation beschrieben, die bei zumindest einigen Implementierungen verwendet werden kann. Dann wird ein Energieminimierungsrahmen beschrieben, der bei zumindest einigen Implementierungen zur Durchführung der Upright-Anpassung gemäß den Kriterien verwendet werden kann. Der Energieminimierungsrahmen nimmt als Eingabe Kameraparameter und Fluchtpunkte und -linien an, die gemäß einem Kamerakalibrierungsverfahren oder anderen Verfahren geschätzt werden. Schließlich werden Implementierungen eines Kamerakalibrierungsvefahren beschrieben, das bei zumindest einigen Implementierungen verwendet werden kann, um gleichzeitig die Kameraparameter und Fluchtpunkte und -linien für ein Eingangsbild zu schätzen.
  • Kriterien
  • Szenen mit gut strukturierten, vom Menschen geschaffenen Objekten enthalten häufig viele gerade Linien, die in den Weltkoordinaten hinsichtlich menschlicher Wahrnehmung horizontal oder vertikal sein sollen. Die hier beschriebenen Kriterien spiegeln diese Eigenschaften basierend auf Beobachtungen menschlicher Wahrnehmung wieder. Eines oder mehrere dieser Kriterien können als Beschränkung bzw. Bedingung in dem Optimierungsrahmen verwendet werden, wenn die Homographie optimiert wird (siehe Gleichung (A2)), um dann neue Kameraparameter (neue Intrinsische-Parameter-Matrix K1 mit zusätzlicher 3D-Rotation R1 und Translation t1) zu schätzen, die in der Reprojektion des Bilds verwendet werden. Es ist anzumerken, dass die in diesem Abschnitt beschriebenen Kriterien mathematisch in dem Unterabschnitt mit dem Titel Energieterme des Abschnitts Anpassungsoptimierungsrahmen beschrieben werden.
  • Bildrahmenausrichtung
  • Bei der Betrachtung einer großen planaren bzw. flachen Fassade oder eines nahen planaren bzw. flachen Objekts, wie einem Gemälde, wird dieses in der Regel als orthogonal zur Blickrichtung wahrgenommen und die horizontalen und vertikalen Objektlinien werden als parallel bzw. senkrecht zum Horizont angenommen. Wenn ein Foto der gleichen Szene betrachtet wird, legt der künstliche Bildrahmen (d. h. die Grenzen des Bildes) den Objektlinien erhebliche Beschränkungen auf und der Betrachter kann sich unwohl fühlen, wenn die Objektlinienrichtungen nicht gut mit der Bilderrahmenausrichtung bzw. -orientierung ausgerichtet sind. 1(a) und 1(b) zeigen typische Beispiele. Es sei darauf hingewiesen, dass solch ein Artefakt weniger auffällig wird, wenn bzw. in dem Maße wie die Fehlausrichtungen der Linienrichtungen größer wird, da in diesem Fall der Betrachter beginnt, 3D-Tiefe von einer geneigten Ebene wahrzunehmen.
  • Augenhöhenausrichtung
  • Die Augenhöhe eines Fotos kann als eine 2D-Linie definiert werden, welche die Fluchtpunkte von 3D-Linien parallel zum Boden enthält. In einer Szene eines offenen Felds oder Meers kann die Augenhöhe mit dem Horizont zusammenfallen. Jedoch selbst wenn der Horizont nicht sichtbar ist, kann die Augenhöhe immer noch als die Verbindungslinie von spezifischen Fluchtpunkten definiert werden. Die Augenhöhenausrichtung kann eine bedeutende Rolle bei der Upright-Anpassung spielen, vor allem wenn es keine anderen Hauptobjektlinien gibt, die an den bzw. mit Bildrahmen auszurichten sind. Zum Beispiel wird in 1(d) hauptsächlich die unsichtbare Augenhöhe verwendet, um eine unerwünschte Drehung der Kamera zu korrigieren.
  • Perspektivische Verzerrung
  • Da der Mensch in der Regel keine Objekte außerhalb des natürlichen Sichtfelds (FOV; Engl.: natural field of view) sieht, kann ein Objekt als verzerrt erscheinen, wenn das Objekt abgebildet wird, als sei es außerhalb des Sichtfelds. Diese Verzerrung ist auf gewöhnlichen Fotos kaum zu sehen, mit Ausnahme derjenigen, die mit Weitwinkelobjektiven aufgenommen werden. Jedoch kann eine solche Verzerrung auftreten, wenn eine starke Rotation auf die Bildebene ausgeübt wird, die einer großen Änderung der Kameraorientierung entspricht. Um dies zu verhindern können zumindest einige Implementierungen konfiguriert sein, perspektivische Verzerrung in dem Upright-Anpassungsprozess explizit zu beschränken bzw. zu bedingen.
  • Bildverzerrung
  • Wenn eine Transformation auf ein Foto angewandt wird, kann eine Bildverzerrung nicht vermieden werden. Jedoch kann das menschliche Sehsystem tolerant gegenüber Verzerrungen von rechteckigen Objekten sein, während es empfindlich gegenüber Verzerrungen von Kreisen, Flächen bzw. Gesichtern und anderen bekannten Objekten ist. Dieses Phänomen kann in zumindest einigen Implementierungen des Upright-Anpassungsverfahrens berücksichtigt werden, um die wahrgenommenen Verzerrungen in dem resultierenden Bild so weit wie möglich zu reduzieren.
  • Formulierung der Bildtransformation, die zur Upright-Anpassung verwendet wird
  • Implementierungen können annehmen, dass keine Tiefeninformationen für das Eingangsbild zur Verfügung stehen, und somit kann eine Homografie verwendet werden, um das Bild zur Upright-Anpassung zu transformieren. Eine Transformation kann in einigen Implementierungen verwendet werden, wie beispielsweise Inhalt bewahrendes Verzerren bzw. Warping. Jedoch enthält eine solche Transformation mehr Freiheitsgrade und beinhaltet bzw. involviert daher eine große Menge an zuverlässigen Beschränkungen bzw. Bedingungen, die dann mit Benutzerinteraktion oder zusätzlichen Informationen über die Szenengeometrie erfüllt werden. Dementsprechend kann eine Homografie verwendet werden, um visuell plausible Ergebnisse zu erzielen, vor allem für vom Menschen geschaffene Strukturen. Ein vorgegebenes Bild kann mit einer Homographiematrix „H” unter Verwendung der folgenden Gleichung entzerrt bzw. korrigiert werden: p' = Hp = K(KR)–1p, (A1) wo „p” und „p'” eine Position bzw. ihre Reprojektion in dem Bild darstellen, „K” und „R” intrinsische Parameter bzw. Ausrichtungsmatrizen der Kamera sind:
    Figure DE112013002200T5_0002
    wo „Rψ”, Rθ” und „RΦ” Rotationsmatrizen mit Winkeln „ψ”, „θ” und „Φ” entlang der „x”, „y” bzw. „z” Achse sind. Es ist anzumerken, dass „R” hierin als Orientierungsmatrix bezeichnet werden kann.
  • In einigen Fällen kann eine Bildentzerrung bzw. -korrektur optisch unbefriedigende Ergebnis liefern (siehe z. B. 9B). Bei zumindest einigen Implementierungen des automatischen Upright-Anpassungsverfahrens kann zur Upright-Anpassung Gleichung (A1) modifiziert werden, um eine flexible Kontrolle zum Verbessern der Wahrnehmungsqualität der Ergebnisse gegenüber derjenigen einer einfachen Entzerrung zu unterstützen. Bei zumindest einigen Implementierungen kann die Homographie durch das folgende Rprojektionsmodell definiert sein: p' = Hp = K1{R1(KR)–1p + t1}, (A2) wo:
    Figure DE112013002200T5_0003
    und t1 = [t1x t1y 0]T.
  • Im Vergleich zu Gleichung (A1) enthält die Gleichung (A2) eine Intrinsische-Parameter-Matrix „K1” mit zusätzlicher dreidimensionaler Rotation „R1” und Translation „TL”. Dieses Reprojektionsmodell impliziert ein Wiederaufnehmen der entzerrten bzw. korrigierten Szene unter Verwendung einer anderen Kamera, die an einer möglichst anderen Position mit neuer Orientierung platziert ist. In zumindest einigen Implementierungen kann diese neue Kamera auch unterschiedliche Brennweiten in horizontaler und vertikaler Richtung aufweisen.
  • Anpassungsoptimierungsrahmen
  • In diesem Abschnitt wird eine Energiefunktion für die Bildtransformation (Gleichung (A2)) beschrieben, die in dem Abschnitt mit dem Titel Formulierung der Bildtransformation, die zur Upright-Anpassung gemäß den Kriterien basierend auf der menschlichen Wahrnehmung formuliert ist, die in dem Abschnitt Kriterien definiert sind. Bei zumindest einigen Implementierungen kann angenommen werden, dass Kameraparameter „K” und „R” durch ein Kamerakalibrierungsverfahren geschätzt wurden. Somit gibt es neun Unbekannte „f1x”, „f1y”, „u1”, „v1”, „ψ1”, „θ1”, „Φ1”, „tx” und „ty” in Gleichung (A2). „u1” und „v1” verschieben jedoch einfach das resultierende Bild nach der Transformation und können somit als „u1 = u0” und „v1 = v0” festgelegt werden. Bei zumindest einigen Implementierungen wird es somit das Ziel, Gleichung (A2) in Bezug auf die sieben Parameter der Homographiematrix „H” zu optimieren.
  • Obwohl andere Verfahrenen ebenfalls zur Kamerakalibrierung verwendet werden können, wird eine Verfahren zur robusten Kamerakalibrierung, die bei zumindest einigen Implementierungen verwendet werden kann, in dem Abschnitt mit dem Titel Kamerakalibrierungsverfahren erläutert. Bei dem Kamerakalibrierungsverfahren können zumindest einige Implementierungen die Manhattan-Welt-Annahme nehmen, d. h. die Hauptlinienstrukturen der Szene sind auf die bzw. mit der „x”, „y” und „z” Richtung in drei Dimensionen ausgerichtet. Zum Beispiel kann angenommen werden, dass ein rechteckiges Gebäude den Hauptrichtungen der Welt folgend ausgerichtet ist.
  • Bei zumindest einigen Implementierungen können Manhattan-Richtungen „M = [vx vy vz]” zusätzlich zu „K” und „R” erhalten werden, wo „vx”, „vy” und „vz” die drei Fluchtpunkte gemäß der „x”, „y” bzw. „z” Richtung darstellen. Drei Bündel von Fluchtlinien „Lx”, „Ly” und „Lz”, die zweidimensionale Linien enthalten, die sich an Fluchtpunkten „vx”, „vy” bzw. „vz” schneiden, können ebenfalls erhalten werden. Die Fluchtlinien „Lx”, „Ly” und „Lz” sind Projektionen von dreidimensionalen Linien, die parallel zu der „x”, „y” bzw. „z” Achse sind.
  • Energieterme
  • Bildrahmenausrichtung
  • Für Hauptlinienstrukturen der Szene, die mit dem Bildrahmen auszurichten ist, sollten Fluchtlinien, die „x” und „y” Richtung entsprechen, zu Zwecken der menschlichen Wahrnehmung horizontal bzw. vertikal in einem Foto sein. Das heißt, Fluchtlinien in „Lx” und „Ly” sind durch eine Homographie „H” zu horizontalen und vertikalen Linien zu transformieren, wobei Fluchtpunkte „vx” und „vy” bei Unendlich in der „x” bzw. „y” Richtung platziert werden.
  • Nun ist „1” eine Fluchtlinie und „p” und „q” sind zwei Endpunkte von „1”. Die Richtung der transformierten Linie „1” kann wie folgt ausgedrückt werden: d = q' – p' / ||q' – p'||, wo:
    Figure DE112013002200T5_0004
  • Der Ausdruck „ez = [0 0 1]T kann zum Normalisieren von homogenen Koordinaten verwendet werden. Bei zumindest einigen Implementierungen kann der Energieterm definiert sein als:
    Figure DE112013002200T5_0005
    wo „dyi” die Richtung der transformierten Linie „l'yi” einer Fluchtlinien „lyi” in „Ly. ex = [1 0 0]T” und „e T / xdyj die Abweichung von „l'yi” von der vertikalen Richtung ist. Der Term „dxt” ist gleichermaßen für eine Fluchtlinie „lxj” in „Lx” definiert und „ey = [0 1 0]T” wird zum Messen der horizontalen Vorrichtung verwendet.
  • In Gleichung (A4) ist das Gewicht „w” für eine Linie „l” die ursprüngliche Linienlänge vor der Transformation, normalisiert durch die kalibrierte Brennweite „f”, d. h.: w = ||q – p||/f.
  • Bei zumindest einigen Implementierungen können die Gewichte „λy” und „λh” unter Verwendung von anfänglichen Rotationswinkeln adaptiv bestimmt werden, wenn die Beschränkung der Bildrahmenausrichtung schwächer wird in dem Maße wie die Rotationswinkel größer werden. Zumindest einige Implementierungen können
    Figure DE112013002200T5_0006
    verwenden, wo „ψ” und „θ” kalibrierte Rotationswinkel entlang der „x” bzw. „y” Achse sind. „σv” und „σh” sind Parameter, die verwendbar sind, um die Rotationswinkeltoleranzen zu kontrollieren. Bei zumindest einigen Implementierungen können diese Kontrollparameter als „σv = π/12” und „σh = π/15” festgelegt sein. Für die Kontrollparameter können andere Werte verwendet werden und bei einigen Implementierungen können die Kontrollparameter einstellbar bzw. anpassbar sein, beispielsweise über Benutzereingabe an eine Benutzerschnittstelle.
  • Augenhöhenanpassung
  • Die Augenhöhe auf einem Foto kann als eine Linie definiert sein, die zwei Fluchtpunkte „vx” und „vz” verbindet. Nun sind „v'x” und „v'z sind transformierten Fluchtpunkte:
    Figure DE112013002200T5_0007
  • Ein Ziel betreffend die menschliche Wahrnehmung kann es sein, die Augenhöhe horizontal zu machen. Bei zumindest einigen Implementierungen kann der Energieterm definiert sein als:
    Figure DE112013002200T5_0008
    wo de = (v'z – v'x)/||v'z – v'x||, und „wi” und „wj” Gewichte sind, die in Gleichung (A4) verwendet werden. Da eine Augenhöhenanpassung erzwungen werden kann, selbst wenn ein Foto viele Fluchtlinien enthält, können solche Implementierungen „Eeye” [EAuge] durch eine Summe von Liniengewichten gewichten, um „Eeye” bezüglich „Epic” [EBild”] ordnungsgemäß zu skalieren.
  • Perspektivische Verzerrung
  • Perspektivische Verzerrung eines Quaders kann unter Verwendung von Perkins Gesetz gemessen werden, wie es in 5 dargestellt ist. Gemäß Perkins Gesetz können Eckpunkte eines Würfels in zwei Kategorien unterteilt werden: Gabel- bzw. Fork-Verbindungspunkt und Pfeil- bzw. Arrow-Verbindungspunkt. Für einen Fork-Verbindungspunkt sind „a1”, „a2” und „a3” größer als „π/2” definiert. Für einen Arrow-Verbindungspunkt sind sowohl „β1” als auch „β2” kleiner als „π/2” definiert, und die Summe der beiden Winkel ist größer als „π/2” definiert. Eckpunkte, welche die oben genannten Bedingungen verletzen, werden von dem Betrachter nicht als Eckpunkte eines Würfels wahrgenommen.
  • Zur Anwendung von Perkins Gesetz können zumindest einige Implementierungen Eckpunkte detektieren, die sich an Spitzen bzw. Scheitelpunkten eines Quaders befinden. Zunächst werden Punkte extrahiert, wo die sich Start- oder Endpunkte von Fluchtlinien von zwei oder drei unterschiedlichen Achsen treffen. Ein Mittlere-Verschiebung-Algorithmus (oder alternativ eine andere Verfahren) kann dann auf diese Punkte angewandt werden, um duplizierte oder nahegelegene Punkte zu entfernen. Bei zumindest einigen Implementierungen können auch Eckpunkte mit zu kleinen Eckwinkeln entfernt werden. 6A und 6B zeigen Ergebnisse dieses Eckpunktextraktionsverfahrens gemäß zumindest einigen Implementierungen. Extrahierte Punkte sind als Dots bzw. Punkte markiert.
  • Die extrahierten Eckpunkte können zum Messen von perspektivischer Verzerrung unter Perkins Gesetz verwendet werden. Für jeden Eckpunkt sind drei Linien gezeichnet, die den Eckpunkt mit den drei Fluchtpunkten verbinden. Winkel zwischen den drei Linien werden dann gemessen, um zu sehen, ob Perkins Gesetz verletzt wird oder nicht:
    Figure DE112013002200T5_0009
    wo „ci” einen Eckpunkt darstellt. Zumindest einige Implementierungen betrachten nur Fork-Verbindungspunkte, da Arrow-Verbindungspunkte zu Fork-Verbindungspunkten durch Vertauschen der Richtung einer Kante bzw. eines Rands transformiert werden können.
  • Bildverzerrung
  • Bei zumindest einigen Implementierungen können Kreise und andere Merkmale in den Eingangsbild detektiert werden, um Bildverzerrung akkurat zu messen. Das akkurate Detektieren dieser Merkmale kann jedoch schwierig sein. Daher können zumindest einige Implementierungen stattdessen eine Näherung verwenden, wie es nachstehend beschrieben wird.
  • Zunächst können Low-Level-Bildkanten bzw. -ränder beispielsweise unter Verwendung eines Canny-Detektors detektiert werden. Dann können Kanten- bzw. Randpixel, die nahe an geraden Linien sind, entfernt werden. Unter der Annahme, dass die übrigen Kantenpixel von gekrümmten Linien sind, die von einigen Merkmalen stammen können (siehe 7A und 7B), können Verzerrungen dieser Pixel beispielsweise unter Verwendung des folgenden Jacobi-Maßes gemessen werden:
    Figure DE112013002200T5_0010
    wo „pi” ein verbleibendes Kantenpixel ist, „J(·)” die Jacobi-Matrix ist und „det(·)” die Determinante ist. Die Jacobi-Matrix eines Pixels „p” kann diskret bzw. einzeln berechnet werden. Beispielsweise sind „q” und „r” zwei Nachbarpixel von „p”, so dass p = (x, y)T”, „q = (x + 1, y)T” und „r = (x, y + 1)T”. Dann wird die Jacobi-Matrix von „p” unter einer Homographie „H” genähert als:
    Figure DE112013002200T5_0011
  • Diese Energie nimmt zu, wenn nicht starre Transformationen auf die Pixel angewandt werden, die Verzerrungen von Merkmalen verursachen. Für „λr” können zumindest einige Implementierungen einen kleinen Wert (z. B. 10–4) verwenden. 7A zeigt ein exemplarisches Originalbild und 7B zeigt ein Beispiel von detektierten gekrümmten Rand- bzw. Kantenpixels, bei dem bzw. denen einige Merkmale detektiert werden können, wie Köpfe von Menschen und Buchstaben.
  • Brennweitendifferenz
  • Bei zumindest einigen Implementierungen kann ein Reprojetkonsmodell für eine Homographie verwendet werden, das unterschiedliche Brennweiten entlang der „x” und „y” Achse für natürlichere Ergebnisse erlaubt. Für die menschliche Wahrnehmung jedoch sollten sich die beiden Längen nicht zu stark unterscheiden. Um diese Eigenschaft durchzusetzen, kann die folgende Energie definiert sein: Efocal = λf(f1x – f1y)2,
  • Bei zumindest einigen Implementierungen: λf = (4/f)2.
  • Energiefunktionsminimierung
  • Bei zumindest einigen Implementierungen wird die Energiefunktion, die zur Upright-Anpassung minimiert werden kann, durch Kombinieren jedes der Energieterme:
    Figure DE112013002200T5_0012
  • Der obige Ausdruck unterliegt Gleichung sechzehn oben, die Perkins Gesetz betrifft. Folglich müssen neun Unbekannte optimiert werden: „K1”, „R1” und „t1”, welche die Werte „f1x”, f1y”, „ui”, „v1”, „Ψ1”, „θ1”, „Φ1”, „tx” und „ty” enthalten, wie sie oben definiert sind. „u1” und „v1” verschieben jedoch einfach das resultierende Bild nach der Transformation und somit „u1 = u0” und „v1 = v0”. Somit kann die obige Gleichung drei bezüglich sieben Parametern optimiert werden. Zum Initiieren der Variablen können zumindest einige Implementierungen folgendes verwenden: f1x = f1y = f, Ψ1 = 0, θ1= 0, ϕ1 = ϕ, und tx = ty = 0, wo f und Φ Werte sind, die beispielsweise durch Kamerakalibrierung erhalten werden können.
  • Es ist anzumerken, dass diese Energiefunktion nicht linear ist und nicht in einer geschlossenen Form lösbar ist. Bei zumindest einigen Implementierungen kann ein numerisches Verfahren, beispielsweise unter Verwendung von „fmincon” in Matlab oder einer ähnlichen Funktion zum Minimieren der Energiefunktion verwendet werden. Obwohl ein globales Optimum nicht garantiert ist, funktioniert dieser Ansatz in der Praxis gut. Es ist anzumerken, dass andere Implementierungen andere Verfahrenen zum Minimieren der Energiefunktion verwenden können.
  • Homographieoptimierungsparameter
  • Bei zumindest einigen Implementierungen können die oben beschriebenen Parameter zur Homographieoptimierung eingestellt bzw. angepasst werden, um den Absichten des Benutzers zu genügen. Das Lockern der Augenhöhenbeschränkung bzw. -bedingung empfiehlt sich beispielsweise nicht, da dieses Kriterium durchgesetzt wird, um ein besseres Wahrnehmungsergebnis zu erzielen. Ein Benutzer kann jedoch wünschen, den Effekt einer Bildrahmenausrichtung durch Manipulieren bzw. Verarbeiten von „σv” und „σh3” zu kontrollieren, um zu aggressive Anpassungen zu verhindern. Somit können zumindest einige Implementierungen eine Verfahren über beispielsweise eine Benutzerschnittstelle bereitstellen, über die der Benutzer einen oder mehrere Homographieoptimierungsparameter anpassen kann.
  • Effekte von Upright-Anpassungskriterien
  • 8A bis 8C zeigen eine Einstellung bzw. Anpassung eines Fotos mit großen Kameradrehungen gemäß zumindest einigen Implementierungen. 8A zeigt ein Originalbild, 8B zeigt das Bild als herkömmlich korrigiert bzw. entzerrt und 8C zeigt Ergebnisse der Anwendung einer Implementierung der hier beschriebenen Verfahrenen. Eine Bildrahmenausrichtung kann für Fotos von großen flachen Objekten, wie Fassaden von Gebäuden und Werbetafeln wünschenswert sein. Ihr Effekt kann sich jedoch mit zunehmenden Rotationswinkeln der Kamera verringern, sonst führt sie zu einer unerwünschten Verzerrung (siehe z. B. 8B). Es ist anzumerken, dass, wenn die Bildrahmenausrichtung andere Kriterien dominiert, das Anpassungsergebnis ähnlich einer einfachen Bildkorrektur bzw. -entzerrung wird. Zumindest einige Implementierungen können dieses Problem mit einem adaptiven Gewichtsschema (Gleichung (A5)) sowie den Kriterien von perspektivischer Verzerrung und Bildverzerrung handhaben, was ein besseres Ergebnis erzeugt, wie es in 8C gezeigt ist.
  • 9A bis 9C zeigen eine Kontrolle der perspektivischen Verzerrung gemäß zumindest einigen Implementierungen. 9A zeigt ein Originalbild. 9B zeigt ein resultierendes Bild, das durch Einstellen bzw. Anpassen des Bilds von 9A ohne eine Beschränkung bzw. Bedingung der perspektivischen Verzerrung erhalten wird. 9C zeigt ein resultierendes Bild, das durch Einstellen bzw. Anpassen des Bilds von 9A ohne eine Beschränkung bzw. Bedingung der perspektivischen Verzerrung gemäß zumindest einigen Implementierungen erhalten wird. Eine Augenhöhenanpassung kann in zunehmendem Maße wünschenswerter werden, wenn der Effekt der Bildrahmenausrichtung schwächer wird (siehe z. B. 1(d)), obwohl das Anwenden dieses Kriteriums dabei helfen kann, ein besseres Ergebnis zu erzielen. Die Kontrolle der perspektivischen Verzerrung verhindert eine zu starke Anpassung, die Objekte in dem Bild als verzerrter erscheinen lassen kann (siehe z. B. 9B und 9C). Bei zumindest einigen Implementierungen dürfen die Brennweiten in der „x” und „y” Richtung leicht mit Gleichung (A3) abweichen, was in einem geringen Aspekt- bzw. Seitenverhältnisänderung resultiert, um die perspektivische Verzerrung abzuschwächen.
  • Kamerakalibrierungsverfahren
  • In diesem Abschnitt wird eine Vielzahl unterschiedlicher optimierungsbasierter Verfahren zur Kamerakalibrierung beschrieben, die beispielsweise zum Schätzen der Matrizen „K” und „R” in Gleichung (A2) verwendet werden können, und zwar bei zumindest einigen Implementierungen des automatischen Upright-Anpassungsverfahrens. Folglich wird ein erstes Beispiel eines solchen Verfahrens beschrieben, dem dann ein weiteres Beispiel folgt.
  • Erstes Kamerakalibrierungsbeispiel
  • Bei zumindest einigen herkömmlichen Kalibrierungsverfahren werden zunächst Manhattan-Richtungen „M” unter Verwendung von Fluchtlinien und Fluchtpunkten bestimmt, die aus dem Eingangsfoto detektiert werden, und dann werden „K” und „R” direkt aus „M” erhalten. Beim Bestimmen von „M” können jedoch entsprechend Fluchtpunkte für die „x”, „y” und „z” Achsen nicht offensichtlich sein, da es viele Fluchtpunkte, möglicherweise mit Positionsfehlern geben könnte. In solchen Fällen wird die Ungenauigkeit von „M” dann unmittelbar zu „K” propagiert.
  • Im Gegensatz dazu können Implementierungen des hierin beschriebenen Kamerakalibrierungsverfahrens „K”, „R” und „M” zusammen miteinander (d. h. gleichzeitig) schätzen, beispielsweise unter Verwendung eines Maximum-a-posteriori(MAP)-Ansatzes, der Ergebnisse mit erhöhter Zuverlässigkeit verglichen mit diesen herkömmlichen Verfahren erzeugen kann.
  • Während gemäß der Beschreibung das Kamerakalibrierungsverfahren bei zumindest einigen Implementierungen des automatischen Upright-Anpassungsverfahrens zum Schätzen von Kameraparametern und Fluchtpunkten und -linien für ein Eingangsbild verwendet wird, ist anzumerken, dass das Verfahren in anderen digitalen Bildverarbeitungsverfahren und anderen als den hier beschriebenen Verfahren zum Schätzen von Kameraparametern und/oder Fluchtpunkten und -linien für ein Eingangsbild angewandt werden kann.
  • Liniensegmentdetektion
  • Liniensegmente sind grundlegende bzw. einfache Primitive bzw. Stammfunktionen in Implementierungen des Kalibrierungsverfahrens. Aus dem Eingangsbild kann ein Satz von Liniensegmenten „L” extrahiert werden, beispielsweise unter Verwendung eines Verfahrens auf Multiskalenweise. Für jedes Liniensegment „li” können seine zwei Endpunkte „pi” und „qi” gespeichert werden.
  • Kalibrierungsformulierung
  • Bei zumindest einigen Implementierungen kann die gemeinsame Wahrscheinlichkeit von Manhattan-Richtungen „M”, intrinsischer Matrix „K” und Orientierungs- bzw. Ausrichtungsmatrix „R” mit Bezug auf Liniensegmente L wie folgt ausgedrückt werden: p(K, R, M|L) ∝ p(L|K, R, M)p(K, R, M) = p(L|M)p(M|K, R)p(K)p(R), (A9) unter der Annahme, dass „K” und „R” unabhängig voneinander sind und zudem unabhängig von „L” sind. Indem man eine log- bzw. Logarithmuswahrscheinlichkeit nimmt, kann Gleichung (A9) umformuliert werden zu einer Energiefunktion als: EK,R,M|L = EK + ER + EM|K,R + EL|M. (A10)
  • A-priori-Wahrscheinlichkeit bzw. Prior EK
  • Um die A-priori-Wahrscheinlichkeit bzw. den Prior für „K” zu definieren, können zumindest einige Implementierungen annehmen, dass das Projektionszentrum „cp = (u0), v0)” das Bildzentrum „c1 = (cx, cy) ist und dass die Brennweite „f” die Bildbreite „W” ist. „EK” kann dann definiert sein als:
    Figure DE112013002200T5_0013
  • Zumindest einige Implementierungen können „λf als 0,04” und „λc als (10/W)2” festlegen. Bei anderen Implementierungen können jedoch andere Werte verwendet werden, wie es weiter unten beschrieben wird.
  • A-priori-Wahrscheinlichkeit bzw. Prior Er
  • Für die A-priori-Wahrscheinlichkeit bzw. den Prior von „R” können zumindest einige Implementierungen annehmen, dass die Orientierung der Kamera mit den Hauptachsen der Welt ausgerichtet ist, was in den meisten Fällen eine vernünftige Annahme ist. Bei zumindest einigen Implementierungen: ER = λψψ2 + λθθ2 + λΦΦ2.
  • Bei zumindest einigen Implementierungen sind die drei Rotationswinkel nicht gleich gewichtet. Insbesondere kann festgestellt werden, dass die A-priori-Wahrscheinlichkeit bzw. der Prior für Φ (z-Achsenorientierung) stärker sein sollte, um die Augenhöhenausrichtung durchzusetzen. Somit können zumindest einige Implementierungen verwenden: ψ, λθ, λΦ] = [4/π, 3/π, 6/π]2.
  • A-posteriori-Wahrscheinlichkeit bzw. Posterior EM|K,R
  • Bei zumindest einigen Implementierungen, wenn „K” und „R” bekannt sind, kann „M” geschätzt werden als: M = [vx vy vz] = (KR)I3, wo „I3 = [ex ey ez]” die Identifiziermatrix ist. Bei zumindest einigen Implementierungen kann unter Verwendung dieser Eigenschaft eine Energiefunktion wie folgt formuliert werden:
    Figure DE112013002200T5_0014
  • Diese Energiefunktion deckt die Orthogonalität von Manhattan-Richtungen und A-priori-Wahrscheinlichkeit bzw. Prior für Zenit ab. Bei zumindest einigen Implementierungen kann „λM” als „(24/π)2” festgelegt sein. Bei einigen Implementierungen können jedoch andere Werte für „λM” verwendet werden.
  • A-posteriori-Wahrscheinlichkeit bzw. Posterior EL|M
  • Dieser Term misst die Konformität von detektierten Liniensegmenten mit den geschätzten Fluchtpunkten. Bei zumindest einigen Implementierungen können Fluchtpunkte wünschenswert sein, für die mehr Liniensegmente Teil von Fluchtlinien sein könnten. Bei zumindest einigen Implementierungen lautet die Energiefunktion:
    Figure DE112013002200T5_0015
    wo „d(·)” der Abstand zwischen einem Fluchtpunkt und einer Linie ist. Zumindest einige Implementierungen können die folgende Abstandsdefinition nutzen:
    Figure DE112013002200T5_0016
    wo „p” und „q” zwei Endpunkte von „l” sind und
    Figure DE112013002200T5_0017
  • „δ” ist der vorgegebene maximale Fehlerwert. Bei zumindest einigen Implementierungen kann „δ” 1,75 sein. Bei zumindest einigen Implementierungen kann „λL” auf 0,02 festgelegt sein. Es ist jedoch anzumerken, dass bei einigen Implementierungen andere Werte für „δ” und/oder „λL” verwendet werden können.
  • Umgang mit fehlenden Fluchtpunkten
  • Wenn „M” geschätzt wird, können in einigen Fällen nicht alle drei Fluchtpunkte gefunden werden. Bei zumindest einigen Implementierungen können der Robustheit halber die Energieterme „EM|K,R” und „EL|M” in der Lage sein, diesen Fall zu handhaben. Bei zumindest einigen Implementierungen kann für „EM|K,R” die Energie für einen fehlenden Fluchtpunkt auf Null festgelegt sein, unter der Annahme, dass sich der Punkt an der Position befindet, die unter Verwendung von „K” und „R” geschätzt wird. Bei zumindest einigen Implementierungen, für „EL|M, d(vmiss, li) ist δ für li”.
  • Iterative Optimierung von K, R und M
  • Mit den oben definierten Energietermen kann eine direkte Optimierung von Gleichung (A10) schwierig sein, da sie höchst nichtlinear ist. Daher können zumindest einige Implementierungen ein iteratives Verfahren verwenden, um eine Näherungslösung zu finden.
  • Bei zumindest einigen Implementierungen kann bei dem iterativen Verfahren das Verfahren abwechselnd „K”, „R” und „M” optimieren. Bei zumindest einigen Implementierungen kann durch Festlegen bzw. Fixieren von „M” Gleichung (A10) mit „K” und „R” optimiert werden durch:
    Figure DE112013002200T5_0018
  • Gleichermaßen kann bei zumindest einigen Implementierungen die Optimierung von „M” erzielt werden durch Lösen:
    Figure DE112013002200T5_0019
  • Zum Optimieren von „K” und „R” bei vorgegebenem „M” können zumindest einige Implementierungen „fminsearch” in Matlab oder eine ähnliche Funktion, oder ein anderes Optimierungsverfahren verwenden. Die Optimierung von „M” kann jedoch immer noch schwierig sein, selbst wenn „K” und „R” festgelegt bzw. fixiert sind, da „EL|M” Abstände zu „δ” kürzt bzw. trunkiert, wie es in Gleichung (A11) definiert ist. Um die Gleichung (A13) zu lösen, können zumindest einige Implementierungen eine diskrete Näherung verwenden.
  • Bei zumindest einigen Implementierungen kann aus den Liniensegmenten „L” ein großer Satz von Fluchtpunkten „V = [v1, v2, ..., vn]” hypothesiert bzw. angenommen werden, wo jedes Element als der Schnittpunkt von zwei zufällig ausgewählten Linien berechnet wird. Das Optimieren von „M” wird somit das Auswählen von Fluchtpunkten aus „V”, um die Energie in Gleichung (A13) zu minimieren. Für jedes Element von „M = [vx vy vz]” wird ein Fluchtpunkt in „V” gefunden, der die Energie minimiert, während die beiden anderen Elemente zurückgehalten bzw. bewahrt werden.
  • Bei zumindest einigen Implementierungen kann eine kleine Unter- bzw. Teilmenge „Vc = {Vc1, Vc2, ..., Vck}” aus „V” ausgewählt werden, welche die „allen Linien am nächstgelegene” ist, und zwar auf die folgende Weise:
    Figure DE112013002200T5_0020
    wo „k = 9” bei zumindest einigen Implementierungen. Bei zumindest einigen Implementierungen kann ein spezieller Fluchtpunkt „vmiss”, der einen fehlenden Fluchtpunkt darstellt, zu „Vc” hinzugefügt werden, da „Vc” eventuell nicht jede der Manhattan-Richtungen der Szene enthält. Für jede Dreiergruppe von Fluchtpunkten in „Vc” können zumindest einige Implementierungen „K”, „R” und „M” unter Verwendung von Gleichung (A12) und (A13) optimieren und dann Gleichung (AIO) auswerten. Schließlich können „K”, „R” und „M” mit der Minimumenergie als Kalibrierungsergebnisse verwendet werden.
  • Bei zumindest einigen Implementierungen können die fehlenden Richtungen, obwohl anfängliches „Vc” eventuell nicht jede der Manhattan-Richtungen enthält, aus „V” detektiert werden, während Gleichung (A13) in dem iterativen Optimierungsprozess optimiert wird. Das Optimieren von „K”, „R” und „M” für jede der möglichen Dreiergruppen in „Vc” kann jedoch sehr rechenintensiv sein. Daher können zumindest einige Implementierungen eine oder mehrere Frühbeendigungsstrategien zur Beschleunigung verwenden, wie es detaillierter nachstehend beschrieben wird.
  • Gruppieren von Fluchtlinien
  • Nach dem Kalibrierungsprozess können zumindest einige Implementierungen die Fluchtlinien für jeden Fluchtpunkt in „M” bestimmen. Drei Sätze von Fluchtlinien, „Lx”, „Ly” und „Lz” können für „L” erhalten werden durch: Li = {1 ∊ L|d(v1, 1) < δ}, i ∊ {x, y, z}, wo „d(·)” die Abstandsfunktion ist, die in Gleichung (A11) definiert ist. Beispiele von Kamerakalibrierungsergebnissen mit geschätzten Fluchtlinien sind in 10A10D gezeigt.
  • Kamerakalibrierungsparameter
  • Bei einigen Implementierungen können die Parameterwerte zur Kamerakalibrierung fest sein. Bei anderen Implementierungen jedoch können die Werte spezifiziert werden. Werte für diese Parameter können beispielsweise experimentell bestimmt werden. „δ” bezieht sich auf die Toleranz von Rauschen in Liniensegmentpositionen. Wenn „δ” zu klein oder zu groß festgelegt wird, dann findet der Algorithmus eventuell keine optimalen Fluchtpunkte, da Liniensegmente weniger genau gruppiert sein könnten. „δ” bezieht sich ebenfalls auf „λL”, da sich die Energiefunktion „EL|M” auf die Abstände zwischen Linien und Fluchtpunkten bezieht, die zu „δ” gekürzt sind. Im Allgemeinen wird „λL” mit zunehmendem „δ” verringert, ansonsten hängt das Kalibrierungsergebnis zu stark von „EL|M” ab.
  • Das Verringern von „Φ”, „n” und „kc” kann die Berechnung beschleunigen, auf Kosten einer weniger genauen Schätzung. Zusätzlich verbessert die Verwendung von größeren Werten für diese Parameter die Schätzergebnisse eventuell nicht. Ähnlich vieler anderer Kamerakalibrierungsverfahren sind Implementierungen des Kalibrierungsverfahrens randomisiert und können gelegentlich unerwünschte Ergebnisse erzielen. Mit den A-priori-Wahrscheinlichkeiten bzw. Priors zu „K” und „R” und der gleichzeitigen Optimierung von „K”, „R” und „M” können jedoch in den meisten Fällen stabile Ergebnisse realisiert werden. Zumindest einige Implementierungen können ein Verfahren beispielsweise über eine Benutzerschnittstelle bereitstellen, über die der Benutzer einen oder mehrere Kamerakalibrierungsparameter einstellen bzw. anpassen kann.
  • Kamerakalibrierungsinitialisierung
  • Das folgende fasst das Kamerakalibrierungsverfahren kurz zusammen und beschriebt Initialisierungsdetails für das Verfahren. Eine Aufgabe ist es, Kamera-Intrinsische-Parameter-Matrix „K” und Orientierung „R” sowie Manhattan-Richtung „M” aus einem einzelnen Bild zu schätzen. Bei zumindest einigen Implementierungen kann dies durch Minimieren der folgenden Energiefunktion erfolgen: EK,R,M|L = EK + ER + EM|K,R + EL|M.(B1)
  • (Es ist anzumerken, dass diese Energiefunktion ebenfalls als Gleichung (A10) gezeigt ist). Zumindest einige Implementierungen können ein alternierendes Optimierungsschema zum Optimieren von „K”, „R” und „M” verwenden. Bei einigen Implementierungen ist „M” fest bzw. wird festgelegt, um „K” und „R” mit der folgenden Gleichung zu aktualisieren:
    Figure DE112013002200T5_0021
  • Dann wird „M” aktualisiert durch Festlegen von „K” und „R” als:
    Figure DE112013002200T5_0022
  • Dieser Optimierungsprozess kann „K”, „R” und „M” zusammen miteinander, d. h. gleichzeitig optimieren. Bei zumindest einigen Implementierungen wird zum Bestimmen von Anfangswerten eine kleine Unter- bzw. Teilmenge „{vc1, vc2, ..., vck} aus „V” ausgewählt. Dann werden drei Fluchtpunkte als anfängliches „M” aus „Vc” ausgewählt, um Gleichung (B1) auszuwerten.
  • Bei zumindest einigen Implementierungen kann basierend auf der Manhattan-Annahme „Vc” ausgewählt werden, das „EL|M” wie folgt minimieren kann:
    Figure DE112013002200T5_0023
    wo „n” die Anzahl an Liniensegmenten ist und „d(·)” die oben definierte Abstandsfunktion ist. Bei zumindest einigen Implementierungen „k = 9”. Für jede Dreiergruppe von Fluchtpunkten in „Vc” kann Gleichung (B1) durch Optimieren von „K” und „R” bezüglich der Dreiergruppe ausgewertet werden. Wenn Fluchtpunkte ausgewählt werden können jedoch häufig einige Fluchtpunkte fehlen, da es eventuell keinen Fluchtpunkt gibt, der eine spezifische Manhattan-Richtung darstellt (siehe z. B. 10B).
  • Bei zumindest einigen Implementierungen kann dies modelliert werden durch Hinzufügen eines speziellen Fluchtpunkts „vmiss”, der einen fehlenden Fluchtpunkt darstellt, zu „Vc”, so dass „Vc = {Vc1, ..., vck, vmiss}”. Dann kann eine Dreiergruppe von Fluchtpunkten ausgewählt werden, um „M” aus „Vc” wie folgt zu schaffen: M = [vx vy vz] 1 ≤ x, y, z ≤ k + 1 x ≠ y ≠ z if x, y, z ≤ k, wo „vx”, „vy” und „vz” „x”, „y” und „z”-te Elemente von „Vc” sind. Mit dieser Darstellung kann „M” einschließlich fehlender Fluchtpunkte geschaffen werden.
  • Sobald das anfängliche „M” geschaffen ist, können „K”, „R” und „M” optimiert werden. Das Optimieren kann für jede der möglichen Dreiergruppen einen großen Rechenaufwand beinhalten, und somit kann bei zumindest einigen Implementierungen die folgende Strategie angewandt werden. Für jede Dreiergruppe werden „K” und „R” unter Verwendung von Gleichung (B2) optimiert. Dann wird Gleichung (B1) ohne weitere Optimierung von „M” ausgewertet. Jede der Dreiergruppen wird anhand ihrer ausgewerteten Energiewerte sortiert und dann werden mehrere Dreiergruppen als Eingaben zu der bzw. für die iterative Optimierung ausgewählt. Bei zumindest einigen Implementierungen können Dreiergruppen ausgewählt werden, deren Energiewerte weniger als das Doppelte des Minimumbetrags aller Dreiergruppen betragen.
  • 10A bis 10D zeigen den Prozess des Kamerakalibrierungsverfahrens gemäß zumindest einigen Implementierungen. Das Verfahren kann effektiv Manhattan-Richtungen finden und Kameraparameter zur gleichen Zeit schätzen. 10A zeigt ein Eingangsbild. In 10B wird die Manhattan-Richtung entlang der x-Achse nicht gut geschätzt, da „Vc” keinen ordnungsgemäßen bzw. geeigneten entsprechenden Fluchtpunkt aufweist. Dieses Problem wird während des iterativen Optimierungsschritts gehandhabt; in 10C wird das korrekte M geschätzt. In 10D gibt der Ursprung der beiden Achsen, gezeigt durch die gepunkteten Linien, das Projektionszentrum an.
  • Zweites Kamerakalibrierungsbeispiel
  • Wie oben beschrieben ist die Kalibrierung von Kameraparameters aus einem einzelnen Bild ein extrem schlecht gestelltes Problem. Mehrere A-priori-Wahrscheinlichkeiten bzw. Priors wurden in vorherigen Ansätzen verwendet, wie die Manhattan-Welt-Annahme. In diesem Abschnitt wird zunächst ein Satz von Kalibrierung-A-priori-Wahrscheinlichkeiten bzw. -Priors beschrieben, dann wird ein Kalibrierungsverfahren als eine Maximum-a-posteriori(MAP)-Schätzung formuliert, und dann wird ein Optimierungsalgorithmus beschrieben.
  • Szenen-A-priori-Wahrscheinlichkeiten bzw. -Priors
  • Die Manhattan-Welt-Annahme ist die gängigste gemeinsame A-priori-Wahrscheinlichkeit bzw. -Prior bei Einzelbildkamerakalibrierungsverfahren. Sie nimmt die Existenz von drei dominanten orthogonalen Richtungen in der Szene an, die „Manhattan-Richtungen” genannt werden, wie es in 22C gezeigt ist. Durch Extrahieren dieser Richtungen können die Referenzweltkoordinatenachsen zurückgewonnen bzw. wiederhergestellt werden und die Kameraparameter können kalibriert werden.
  • Trotz der Wirksamkeit des Manhattan-Welt-Modells kann eine Szene in einigen Fällen mehrere orthogonale Richtungen aufweisen, die sich nicht ausrichten bzw. anpassen, wie zwei Gruppen von Gebäuden mit einem nicht rechten Winkel zwischen ihren horizontalen Richtungen (z. B. siehe 22C), die als „Atlanta”-Welt-Annahmen bezeichnet werden können. Bei diesem Beispiel wird eine ähnliche A-priori-Wahrscheinlichkeit bzw. Prior eingesetzt, bei der eine Atlanta-Welt-Annahme getroffen wird. Beispielsweise kann die Annahme spezifizieren, dass ein Eingangsbild einen dominanten orthogonalen Rahmen aufweist, wobei zusätzliche horizontale Richtungen dieselbe vertikale Richtung teilen.
  • Kamera-A-priori-Wahrscheinlichkeiten bzw. -Priors
  • Einige Verfahren verwenden A-priori-Wahrscheinlichkeiten bzw. Priors an bzw. auf der Intrinsische-Parameter-Matrix „K” der Kamera. Die Annahme lautet, dass die Brennweite in Pixelabmessung der Kamera die gleiche ist wie die Breite des Bilds und das Projektionszentrum das Bildzentrum ist, so dass:
    Figure DE112013002200T5_0024
    wo „W” die Bildbreite ist und „(cz, cy)” das Bildzentrum ist.
  • Für die A-priori-Wahrscheinlichkeit bzw. Prior an der externen Kameraorientierung „R” wird die menschliche Tendenz übernommen, dass Leute dazu neigen, ihre Kamera mit den Hauptachsen der Welt auszurichten. Unter Verwendung dieser Annahme sind Rotationswinkel der Orientierungsmatrix „R” klein, so dass: {Ψ, θ, Φ} ~ 0 where R = RΨ Rθ RΦ
  • Kalibrierungsformulierung
  • Wie zuvor werden Liniensegmente als grundlegende bzw. einfache Primitive bzw. Stammfunktionen für die Kalibrierung verwendet. Aus dem Eingangsbild wird ein Satz von Liniensegmenten „L” auf Multiskalenweise extrahiert. Jedes Liniensegment „li” wird mit seinen zwei Endpunkten „pi” und „qi” in der projektiven Anlage bzw. Ebene „P2” gespeichert.
  • Sobald Liniensegmente extrahiert sind, werden Kameraparameter „K” und „R” kalibriert. Zum Verwenden der Kalibrierung-A-priori-Wahrscheinlichkeiten bzw. -Priors werden Manhattan-Richtungen „M” und zusätzliche horizontale Fluchtpunkte „A” während der Kalibrierung extrahiert, wo: M = [vx vy vz] and A = [va1 va2 ... vak], und „v” einen Fluchtpunkt in „P2” darstellt. Die gemeinsame Wahrscheinlichkeit von „K”, „R”, „M” und „A” mit Bezug auf „L” kann wie folgt formatiert werden: p(K, R, M, A|L) ∝ p(L|K, R, M, A)p(K, R, M, A) = p(L|M, A)p(M, A|K, R)p(K)p(R) mit der Annahme, dass „K” und „R” voneinander unabhängig sind und zudem von „L” unabhängig sind. Indem man einen log bzw. Logarithmus nimmt, kann der obige Ausdruck in die folgende Energiefunktion umgewandelt werden: EK,R,M,A|L = EK + ER + EM,A|K,R + EL|M,A
  • Für die Berechnung von „EL|M,A” werden die Szenen-Priors verwendet. Bei der Manhattan-Welt-Annahme sind Dreiergruppen von Fluchtpunkten wünschenswert, die mehr Liniensegmente darstellen. Für den Zusammenschluss von „M” und „A” kann es wünschenswert sein, so viele Liniensegmente wie möglich als Fluchtlinien zu haben. Dementsprechend kann die Energiefunktion wie folgt formuliert werden:
    Figure DE112013002200T5_0025
    wo „li” ein Liniensegment darstellt. Der Wert „dm(·) wird zum Messen des Minimumabstands zwischen einem Satz von Fluchtpunkten „V = {v1, v2, ..., vk}” und einem Liniensegment „l” verwendet: dm(V, l) = min{d(v1, l), d(v2, l), ..., d(vk, l)}
  • Der Wert „dm(·)” wird zum Messen eines Abstands zwischen einem Fluchtpunkt und einer Linien unter Verwendung der folgenden Definition verwendet:
    Figure DE112013002200T5_0026
    wo „p” und „q” zwei Endpunkte von „l” sind und r = ( p+q / 2) × v = [r1 r2 r3]T
  • Der Wert „δ” stellt einen vorgegebenen maximalen Fehlerwert dar, der bei einem Beispiel 1,75 betrug. Die Werte „λLm” und „λLa” wurden bei diesem Beispiel auf 0,01 bzw. 0,02 festgelegt, obwohl andere Beispiele ebenfalls vorgesehen sind.
  • Die Werte „EK” und „ER” beziehen sich auf Kamera-Priors. Aus der Intrinsische-Parameter-Matrix „K” und „R” können die folgenden Ausdrücke erhalten werden:
    Figure DE112013002200T5_0027
    und ER = λψψ2 + λθθ2 + λΦΦ2
  • Für „EK” ist der Wert „λf” als 0,004 festgelegt und „λC” als „(4/W)2” festgelegt. Für „ER” sind die drei Rotationswinkel nicht Gleichheit gewichtet. Insbesondere hat sich herausgestellt, dass es vorteilhaft sein kann, wenn der Prior für „Φ” (d. h. z-Achsenrotation) zum Durchsetzen der Augenhöhenausrichtung stärker ist. Daher kann der folgende Ausdruck verwendet werden: ψ, λθ, λΦ] = [3/π, 2/π, 6/π]2
  • Zum Berechnen von „EM,A|K,R” wird angenommen, dass „EM|K,R” und „EA|K,R” unabhängig berechnet werden können, so dass: EM,A|K,R = EM|K,R + EA|K,R
  • Wenn dann „K” und „R” bekannt sind, kann „M” geschätzt werden als: M = [vx vy vz] = (KR)I3 wo „I3 = [ex ey ez]” die Identitätsmatrix ist. Unter Verwendung dieser Eigenschaft kann „EM|K,R” wie folgt formuliert werden:
    Figure DE112013002200T5_0028
    wo „λm” bei einem oder mehreren Beispielen als „(48/π)2” festgelegt ist. Der Wert „A” stellt horizontale Richtungen dar und muss somit senkrecht zu „ey” sein. Somit kann „EA|K,R” wie folgt formuliert werden:
    Figure DE112013002200T5_0029
    wo „vai” einen horizontalen Fluchtpunkt darstellt und „λA” bei einem oder mehreren Beispielen als „(48/π)2” festgelegt ist.
  • Fehlende Fluchtpunkte
  • Ein iterativer Ansatz kann verwendet werden, um eine Lösung unter Verwendung der oben definierten Energieterme zu finden. Bei dem iterativen Ansatz werden die Werte „K” und „R”, „M” und „A” auf alternierende Weise optimiert. Wenn „M” und „A” fest sind, kann die obige Energiefunktion für „EM,A|K,R” mit Bezug auf „K” und „R” durch Folgendes optimiert werden:
    Figure DE112013002200T5_0030
  • Gleichermaßen kann die Optimierung von „M” und „A” durch Lösen der folgenden Ausdrücke erreicht werden:
    Figure DE112013002200T5_0031
    während andere Parameter fixiert bzw. festgelegt werden bzw. sind.
  • Zum Optimieren von „K” und „R” können zumindest einige Implementierungen „fminsearch” in Matlab oder eine ähnliche Funktion, oder ein anderes Optimierungsverfahren verwenden. Die Optimierung von „M” und „A” kann jedoch immer noch schwierig sein, da „EL|M,A” Abstände zu „δ” kürzt bzw. trunkiert, wie es oben beschrieben ist, und die Größe von „A” unbekannt ist.
  • Um die obigen Ausdrücke zu lösen, kann diskrete Näherung verwendet werden. Beispielsweise kann aus den Liniensegmenten „L” ein großer Satz von Fluchtpunkten „V = [v1, v2, ..., vn vmiss]” hypothesiert bzw. angenommen werden, bei dem jedes Element als ein Schnittpunkt von zwei zufällig ausgewählten Linien berechnet wird, ausgenommen „vmiss”, der den fehlenden Fluchtpunkt darstellt. Der Wert „n” kann bei einem oder mehreren Beispielen auf „2000” festgelegt sein. Das Optimieren von „M” und „A” wird somit das Auswählen von Fluchtpunkten aus „V”, um die Energien in den obigen Ausdrücken zu minimieren.
  • Zum Optimieren von „M” wird für jedes Element von „M = [vx vy vz]” ein Fluchtpunkt in „V” gefunden, der die Energie minimiert, während die beiden anderen Elemente zurückgehalten bzw. bewahrt werden. Zum Optimieren von „A” kann ein gieriger Algorithmus bzw. Greedy-Algorithmus verwendet werden, bei dem ein Fluchtpunkt aus „V” einer nach dem anderen ausgewählt wird, der den Optimierungsausdruck für „A” oben minimiert, bis Energie nicht abnimmt.
  • Um Anfangswerte von „M” zu machen, wird eine kleine Unter- bzw. Teilmenge „Vc = {Vc1, Vc2, ..., Vck}” aus „V” ausgewählt, welche die „allen Linien am nächstgelegene” ist, und zwar auf die folgende Weise:
    Figure DE112013002200T5_0032
    wo „k” bei einem oder mehreren Beispielen gleich Neun festgelegt ist. Der Wert „vmiss” wird ebenfalls zu „Vc” hinzugefügt.
  • Für jede Dreiergruppe von Fluchtpunkten in „Vc” wird ein anfängliches „K” und „R” optimiert, „M” wird als die Dreiergruppe festgelegt und „A” als leer. Das anfängliche „A” wird dann optimiert. Jede der Variablen wird dann unter Verwendung der obigen Ausdrücke optimiert und unter Verwendung der obigen Energiefunktion ausgewertet, die einen log bzw. Logarithmus der obigen gemeinsamen Wahrscheinlichkeiten nimmt. Schließlich werden Werte von „K”, „R”, „M” und „A” mit der Minimumenergie als Kalibrierungsergebnisse verwendet. Obwohl das anfängliche „Vc” eventuell nicht jede der Manhattan-Richtungen enthält, können die fehlenden Richtungen aus „V” detektiert werden, während „M” unter Verwendung des obigen Ausdrucks als Teil des iterativen Optimierungsprozesses optimiert wird.
  • Nach dem Kalibrierungsprozess werden die Fluchtlinien für jeden Fluchtpunkt in „M” bestimmt. Drei Bündel von Fluchtpunkten „Lx”, „Ly” und „Lz” werden erhalten aus „L” durch: Li = {1 ∈ L|d(vi, 1) < δ}, i ∈ {x y z} wo „d(·)” die Abstandsfunktion ist, wie sie oben beschrieben ist.
  • Nutzen von externen Informationen
  • Die MAP-Formulierung kann zu verschiedenen Formen umformuliert werden, um zusätzliche Informationen zu nutzen, die von einem Benutzer oder einem Kamerahersteller bereitgestellt werden. Beispielsweise können Brennweite oder Projektionszentrum fixiert bzw. festgelegt werden, falls gegeben. Zusätzliche horizontale Fluchtpunkte „A” können detektiert aber ignoriert werden, wenn die Szene strikt einer Manhattan-Welt-Annahme folgt. In solch einem Fall werden „EL|M,A” und „EM,A|K,R” zu „EL|M” bzw. „EM|K,R” und die Kalibrierung kann ohne Detektion von zusätzlichen horizontalen Fluchtpunkten durchgeführt werden.
  • Vergleich mit manueller Korrektur
  • 11A und 11B vergleichen Ergebnisse einer Implementierung des automatischen Upright-Anpassungsverfahrens mit manuell erzeugten Ergebnissen. Ein Satz von Originalbildern, die gut ausgerichtet sind, wurde gesammelt. Jedes Bild wurde mit einer beliebigen Rotationsmatrix gedreht, um korrumpierte Ergebnisse zu erzeugen. Mehrere Benutzer haben die transformierten Fotos unter Verwendung eines Linsenkorrekturtools einer digitalen Bildverarbeitungsanwendung manuell eingestellt bzw. angepasst. Dieselben korrumpierten Bilder wurden auch unter Verwendung einer Implementierung des automatischen Upright-Anpassungsverfahrens transformiert. 11A und 11B zeigen einige der Ergebnisse zum Vergleich. Es ist ersichtlich, dass die Ergebnisse der manuellen Anpassung den Ergebnissen ähneln, die durch das automatische Upright-Anpassungsverfahren erzeugt werden.
  • Zur Bestätigung, dass das automatische Upright-Anpassungsverfahren die Upright-Anpassung korrekt durchführt, wurden durch das Verfahren berechnete Rotationswinkel mit den Ground-Truth-Werten verglichen. Da die Originalfotos bereits gut aufgenommen sind, sollten durch das Verfahren berechnete Rotationswinkel den Ground-Truth-Werten ähnlich sein. Die Unterschiede bei den Rotationswinkeln haben sich als gering herausgestellt.
  • Vergleich mit Tilt/Shift-Objektiven
  • 12 vergleicht Ergebnisse einer Implementierung des automatischen Upright-Anpassungsverfahren mit Bildern, die unter Verwendung eines Tilt/Shift-Objektivs aufgenommen werden. Mehrere Paare von Fotos wurden für den Vergleich aufgenommen. Für jedes Paar wurde eine Szene zunächst auf herkömmliche Weise aufgenommen und dann wurde ein zweites Bild unter Verwendung der Shift-Funktionalität des Objektives aufgenommen, um eine Upright-Version bzw. gerade ausgerichtete Version der Szene aufzunehmen. Das herkömmliche Foto wurde dann unter Verwendung einer Implementierung des automatischen Upright-Anpassungsverfahrens angepasst und verglich das Ergebnis mit der Upright-Version von dem Tilt/Shift-Objektiv. 12 zeigt einige exemplarische Ergebnisse. Es ist ersichtlich, dass die von dem automatischen Upright-Anpassungsverfahren erzeugten Ergebnisse den Bildern ähnlich sind, die unter Verwendung von Tilt/Shift aufgenommen wurden.
  • Exemplarische Ergebnisse
  • 14A bis 22B zeigen zusätzliche Ergebnisse des automatischen Upright-Anpassungsverfahrens gemäß zumindest einigen Implementierungen. 14A zeigt ein Originalbild einer Szene eines Menschen, der auf einer Hollywoodschaukel sitz. 14B zeigt Ergebnisse eines herkömmlichen Entzerrungsverfahrens, das auf das Bild von 14A angewandt wird. Man beachte die Verzerrung in dem Bild, insbesondere bei der Schaukel und der menschlichen Figur. 14C zeigt Ergebnisse des automatischen Upright-Anpassungsverfahrens, das auf das Bild von 14A angewandt wird, gemäß zumindest einigen Implementierungen. Man beachte, dass es wenig bis keine Verzerrung der Schaukel und der menschlichen Figur im Vergleich zu 14B gibt.
  • 15A zeigt ein Originalbild einer Szene eines Menschen, der in einer Küche sitzt. 15B zeigt Ergebnisse des herkömmlichen Entzerrungsverfahrens, das auf das Bild von 15A angewandt wird, gemäß zumindest einigen Implementierungen. Man beachte, dass Vordergrund- und Hintergrundmerkmale angepasst wurden, während es wenig bis keine Verzerrung der menschlichen Figur oder anderer Merkmale gibt.
  • 16A zeigt ein Originalbild einer Szene aus dem inneren eines Flugzeugs. 16B zeigt Ergebnisse des automatischen Upright-Anpassungsverfahrens, das auf das Bild von 16A angewandt wird, gemäß zumindest einigen Implementierungen.
  • 17A zeigt ein Originalbild einer Ladenfrontszene. 17B zeigt Ergebnisse des automatischen Upright-Anpassungsverfahrens, das auf das Bild von 1/A angewandt wird, gemäß zumindest einigen Implementierungen.
  • 18A zeigt ein Originalbild einer Wand mit Plakaten und Bildern. 17B zeigt Ergebnisse des automatischen Upright-Anpassungsverfahrens, das auf das Bild von 18A angewandt wird, gemäß zumindest einigen Implementierungen.
  • 19A zeigt ein Originalbild, das einen nicht ausgerichteten Horizont enthält. 19B zeigt Ergebnisse des automatischen Upright-Anpassungsverfahrens, das auf das Bild von 19A angewandt wird, gemäß zumindest einigen Implementierungen.
  • 20A zeigt ein Originalbild einer Tür. 20B zeigt Ergebnisse des automatischen Upright-Anpassungsverfahrens, das auf das Bild von 20A angewandt wird, gemäß zumindest einigen Implementierungen.
  • 21A zeigt ein Originalbild eines Posters, das Schrift enthält. 21B zeigt Ergebnisse des automatischen Upright-Anpassungsverfahrens, das auf das Bild von 21A angewandt wird, gemäß zumindest einigen Implementierungen.
  • 22A zeigt ein Originalbild einer Stadtszenenaufnahme mit einem Weitwinkelobjektiv, das somit Verzerrung enthält. 22B zeigt Ergebnisse des automatischen Upright-Anpassungsverfahrens, das auf das Bild von 22A angewandt wird, gemäß zumindest einigen Implementierungen.
  • Exemplarisches System
  • Einige Implementierungen können ein Mittel zur automatischen Upright-Anpassung bzw. zum automatischen geraden Ausrichten von Bildern, wie digitalen oder digitalisierten Fotos, wie es hierin beschrieben ist, und/oder ein Mittel zur Kamerakalibrierung enthalten, wie sie hierin beschrieben ist. Beispielsweise kann ein Modul oder können Module einer Anwendung Eingabe empfangen, die ein Bild enthält, ohne darauf beschränkt zu sein, Liniensegmente aus dem Bild erlagen und ein Kalibrierungsverfahren durchführen, um gleichzeitig Kameraparameter und Fluchtpunkte und -linien zu schätzen, wie es hierin beschrieben ist. Zusätzlich kann ein Modul oder können Module einer Anwendung eine Schätzung von Kameraparametern und Fluchtpunkten und -linien für ein Bild erlangen und ein Reprojektionsmodell bezüglich Parametern einer Homographiematrix optimieren, um neue Kameraparameter zu schätzen, und zwar unter Verwendung eines oder mehrerer Kriterien basierend auf menschlicher Wahrnehmung als Energieterme, um die Optimierung zu beschränken bzw. zu bedingen, und das Bild gemäß den neuen Kameraparametern reprojizieren, wie es hierin beschrieben ist. Das Modul oder die Module kann bzw. können bei einigen Implementierungen durch ein nicht flüchtiges, computerlesbares Speichermedium und einen oder mehrere Prozessoren (z. B. CPUs und/oder GPUs) einer Rechenvorrichtung implementiert sein. Das computerlesbare Speichermedium kann Programminstruktionen speichern, die von dem einen oder den mehreren Prozessoren ausführbar sind, um die Rechenvorrichtung zu veranlassen, das Kamerakalibrierungsverfahren und/oder das Reprojektionsverfahren durchzuführen, wie es hierin beschrieben ist. Andere Implementierungen des Moduls oder der Module können zumindest teilweise durch Hardware-Schaltung und/oder Firmware implementiert sein, die beispielsweise in einem nicht flüchtigen Speicher gespeichert ist/sind.
  • 23 zeigt ein exemplarisches Modul oder Module, die ein oder mehrere der Verfahren zur automatischen Upright-Anpassung von Bildern implementieren können, wie es in 1 bis 22B gezeigt ist. 24 zeigt ein exemplarische Computersystem, auf dem Implementierungen von Modul(en) 900 implementiert sein können. Modul(e) 900 empfängt/empfangen als Eingabe ein oder mehrere digitale Bilder 910A, die jeweils eine Szene anzeigen. Bei einigen Implementierungen kann/können das/die Modul(e) 900 Benutzereingabe 912 über eine Benutzerschnittstelle 902 empfangen, die einen oder mehrere Parameter für ein Kamerakalibrierungsverfahren, wie es hierin beschrieben ist, und/oder für ein Reprojektionsverfahren, wie es hierin beschrieben ist, spezifiziert. Das/die Modul(e) 900 führt/führen eine Low-Level-Detektion 904 durch, um Liniensegmente aus dem Bild 910A zu erhalten. Das Modul 900 führt dann eine Kamerakalibrierung 906 durch, um Kameraparameter und Fluchtpunktinformationen für das Bild 910A zu schätzen. Das Modul 900 führt dann ein Reprojektionsverfahren 908 durch, das neue Kameraparameter schätzt, wie es hierin beschrieben ist, und wendet die neuen Kameraparameter an, um das Bild 910A zu reprojizieren. Das/Die Modul(e) 900 generiert/generieren als Ausgabe ein eingestelltes bzw. angepasstes Bild 910B für jedes Eingangsbild 910A. Das angepasste Bild 910B kann beispielsweise auf einer Display- bzw. Anzeige 930-Vorrichtung angezeigt werden, auf einem Speichermedium 940, wie einem Systemspeicher, einer Festplatte, DVD, CD etc. gespeichert werden und/oder an eines oder mehrere andere Module 950 zur weiteren Bearbeitung weitergereicht werden. Bei einigen Implementierungen kann/können das/die Modul(e) 900 das reprojizierte Bild vor der Ausgabe das angepassten Bilds 910B zuschneiden. Implementierungen des/der Moduls/Module 900 oder eines oder mehrerer Verfahren zur automatischen Upright-Anpassung von Bildern, wie es in 1 bis 22B gezeigt ist, können als Plug-in(s) für Anwendungen, als Bibliotheksfunktionen und/oder als eigenständige Anwendung implementiert sein. Implementierungen des/der Moduls/Module 900 oder eines oder mehrerer Verfahren und Algorithmen, wie sie hierin beschrieben sind, können in jeder Bildverarbeitungsanwendung implementiert sein, einschließlich, aber ohne drauf beschränkt zu sein, Adobe® PhotoShop®, Adobe® PhotoShop® Elements® und Adobe® After Effects®. Adobe, PhotoShop, PhotoShop Elements und Adobe After Effects sind entweder eingetragene Marken oder Marken von Adobe Systems Incorporated in den USA und/oder anderen Ländern.
  • Implementierungen der Verfahren zur Upright-Anpassung von Bildern, wie es in 1 bis 22B gezeigt ist, können auf einem oder mehreren Computersystemen ausgeführt werden, die mit verschiedenen anderen Geräten interagieren können. Ein solches Computersystem ist in 24 gezeigt. Bei unterschiedlichen Implementierungen kann ein Computersystem 1000 ein beliebiger von verschiedenen Gerättypen sein, einschließlich, aber ohne darauf beschränkt zu sein, ein Personalcomputersystem, Desktopcomputer, Laptop, Notebook oder Netbookcomputer, Pad oder Tablet-Gerät, Mainframecomputersystem, handgehaltener Computer, Workstation, Netzwerkcomputer, Kamera, Set Top Box, mobiles Gerät, Schnurlostelefon, Smart Phone, Verbrauchergerät, Videospielkonsole, handgehaltenes Videospielgerät, Anwendungsserver, Speichervorrichtung, Peripheriegerät, wie Switch, Modem, Router, oder im Allgemeinen jede Art von Rechenvorrichtung oder elektronischer Vorrichtung.
  • Bei der dargestellten Implementierung enthält das Computersystem 1000 einen oder mehrere Prozessoren 1010, die mit einem Systemspeicher 1020 über eine Eingabe/Ausgabe(I/O)-Schnittstelle 1030 gekoppelt sind. Das Computersystem 1000 enthält ferner eine Netzwerkschnittstelle 1040, die mit der I/O-Schnittstelle 1030 gekoppelt ist, und eine oder mehrere Eingabe/Ausgabe-Vorrichtungen 1050, wie Cursor-Kontrollvorrichtung 1060, Tastatur 1070 und Display(s) bzw. Anzeige(n) 1080. Das Computersystem 1000 kann auch eine oder mehrere touch- bzw. multitouchfähige Vorrichtungen als Eingabe/Ausgabe-Vorrichtungen enthalten, beispielsweise ein touchfähiges Display und/oder Pad. Bei einigen Implementierungen ist es vorgesehen, dass Implementierungen unter Verwendung einer einzelnen Instanz des Computersystems 1000 implementiert werden können, während bei anderen Implementierungen mehrere solcher Systeme, oder mehrere Knoten, die das Computersystem 1000 bilden, konfiguriert sein können, unterschiedliche Teile oder Instanzen von Implementierungen zu hosten. Bei einer Implementierung können einige Elemente beispielsweise über einen oder mehrere Knoten des Computersystems 1000 implementiert sein, die von denjenigen Knoten unterschiedlich sind, welche die anderen Elemente implementieren.
  • Bei verschiedenen Implementierungen kann das Computersystem 1000 ein Uniprozessorsystem, das einen Prozessor 1010 enthält, oder ein Multiprozessorsystem sein, das mehrere Prozessoren 1010 enthält (z. B. zwei, vier, acht oder eine andere geeignete Anzahl). Die Prozessoren 1010 können jeglicher geeigneter Prozessor sein, der in der Lage ist, Instruktionen auszuführen. Beispielsweise können bei verschiedenen Implementierungen die Prozessoren 1010 Allzweckprozessoren oder eingebettete bzw. Embedded-Prozessoren sein, die eine einer Mehrzahl von Instruktionssatzarchitekturen (ISAs) implementieren, wie x86, PowerPC, SPARC, oder MIPS ISAs, oder eine andere geeignete ISA.
  • Bei einigen Implementierungen kann der zumindest eine Prozessor 1010 eine Graphikverarbeitungseinheit sein. Eine Graphikverarbeitungseinheit oder GPU (Engl. graphics processing unit) kann als eine dedizierte Graphikrenderingvorrichtung für Personalcomputer, Workstation, Spielekonsole oder andere Rechenvorrichtung oder elektronische Vorrichtung angesehen werden. Moderne GPUs können sehr effizient beim Manipulieren und Anzeigen von Computergraphiken sein und ihre hochparallele Struktur kann sie für einen Bereich von komplexen graphischen Algorithmen effektiver als typische CPUs machen. Beispielsweise kann ein Graphikprozessor eine Anzahl von Graphikprimitiven- bzw. -stammfunktionsoperationen auf eine Weise implementieren, die deren Ausführung viel schneller macht als ein direktes Ziehen derselben auf den Bildschirm mit einer Host-Zentralen-Verarbeitungseinheit (CPU; Engl. central processing unit). Bei verschiedenen Implementierungen können die hierin offenbarten Bildverarbeitungsverfahren zumindest teilweise durch Programminstruktionen implementiert werden, die zur Ausführung auf einem von, oder parallelen Ausführung auf zwei oder mehr von solchen GPUs konfiguriert sind. Die GPU(s) kann/können eine oder mehrere Anwendungsprogrammierschnittstellen (APIs; Engl. application programmer interfaces) implementieren, die es Programmierern erlauben, die Funktionalität der GPU(s) aufzurufen. Geeignete GPUs sind im Handel erhältlich von Verkäufern wie NVIDIA Corporation, ATI Technologies (AMD) und anderen.
  • Der Systemspeicher 1020 kann konfiguriert sein, Programminstruktionen und/oder Daten zu speichern, auf die der Prozessor 1010 zugreifen kann. Bei verschiedenen Implementierungen kann der Systemspeicher 1020 unter Verwendung einer geeigneten Speichertechnology implementiert sein, beispielsweise Static Random Access Memory (SRAM), Synchronous Dynamic RAM (SDRAM), nichtflüchtiger Speicher/Speicher vom Flashtyp oder einer anderen Art von Speicher. Bei der dargestellten Implementierung sind gemäß der Darstellung Programminstruktionen und Daten, die gewünschte Funktionen implementieren, wie diejenigen, die oben für Implementierungen der Verfahren zur automatischen Upright-Anpassung von Bildern beschreiben sind, wie es in 1 bis 22B gezeigt ist, innerhalb des Systemspeichers 1020 als Programminstruktionen 1025 bzw. eines Datenspeichers 1035 gespeichert. Bei anderen Implementierungen können Programminstruktionen und/oder Daten auf unterschiedlichen Arten von computerzugänglichen Medien oder auf ähnlichen Medien separat von dem Systemspeicher 1020 oder Computersystem 1000 empfangen, gesendet oder gespeichert werden. Allgemein gesagt kann ein computerzugängliches Medium Datenspeichermedien oder Hauptspeichermedien, wie magnetische oder optische Medien, z. B. Disk oder CD/DVD-ROM, gekoppelt mit dem Computersystem 1000 über die I/O-Schnittstelle 1030 enthalten. Programminstruktionen und Daten, die über ein computerzugängliches Medium gespeichert sind, können durch Übertragungsmedien oder -signale, wie elektrische, elektromagnetische oder digitale Signale übertragen werden, die über ein Kommunikationsmedium, wie ein Netzwerk und/oder drahtlose Verbindung befördert werden können, wie es über die Netzwerkschnittstelle 1040 implementiert sein kann.
  • Bei einer Implementierung kann die I/O-Schnittstelle 1030 konfiguriert sein, I/O-Verkehr bzw. -Traffic zwischen dem Prozessor 1010, dem Systemspeicher 1020 und anderen Peripheriegeräten in der Vorrichtung zu koordinieren, einschließlich Netzwerkschnittstelle 1040 und anderer Peripherieschnittstellen, wie Eingabe/Ausgabe-Vorrichtungen 1050. Bei einigen Implementierungen kann die I/O-Schnittstelle 1030 alle erforderlichen Protokoll-, Timing- oder anderen Datentransformationen durchführen, um Datensignale von einer Komponente (z. B. Systemspeicher 1020) in ein Format umzuwandeln, das zur Verwendung durch eine andere Komponente (z. B. Prozessor 1010) geeignet ist. Bei einigen Implementierungen kann die I/O-Schnittstelle 1030 beispielsweise Support für Geräte enthalten, die durch verschiedene Arten von Peripheriebussen angebracht bzw. angeschlossen sind, wie eine Variante des Peripheral Component Interconnect (PCI) Busstandards oder des Universal Serial Bus (USB) Standards. Bei einigen Implementierungen kann die Funktion der I/O-Schnittstelle 1030 beispielsweise in zwei oder mehrere separate Komponenten aufgeteilt sein, wie eine North Bridge und eine South Bridge. Zusätzlich kann bei einigen Implementierungen ein Teil der oder die gesamte Funktionalität der I/O-Schnittstelle 1030, wie eine Schnittstelle zu dem Systemspeicher 1020 direkt in den Prozessor 1010 integriert sein.
  • Die Netzwerkschnittstelle 1040 kann konfiguriert sein zu erlauben, dass Daten zwischen dem Computersystem 1000 und anderen Geräten, die an einem Netzwerk angebracht bzw. angeschlossen sind, wie anderen Computersystemen, oder zwischen Knoten des Computersystems 1000 ausgetauscht werden. Bei verschiedenen Implementierungen kann die Netzwerkschnittstelle 1040 Kommunikation über drahtgebundene oder drahtlose allgemeine Datennetzwerke, wie beispielsweise einem geeigneten Typ von Ethernet-Netzwerk; über Telekommunkations-/Telefonienetzwerke, wie analoge Sprachnetzwerke oder digitale Faserkommunikationsnetzwerke; über Speicherbereichnetzwerke, wie Fibre Channel SANs, oder über jeden anderen geeigneten Typ von Netzwerk und/oder Protokoll unterstützen.
  • Die Eingabe/Ausgabe-Vorrichtungen 1050 können bei einigen Implementierungen einen oder mehrere Display- bzw. Anzeige-Terminals bzw. -Anschlüsse, Tastaturen, Keypads, Touchpads, Scann-Vorrichtungen, Sprach- oder optische Erkennungsvorrichtungen oder jegliche andere Vorrichtungen enthalten, die zum Eingaben oder Abrufen von Daten durch ein oder mehrere Computersysteme 1000 geeignet sind. Mehrere Eingabe/Ausgabe-Vorrichtungen 1050 können in dem Computersystem 1000 vorhanden sein oder können an mehreren Knoten des Computersystems 1000 verteilt sein. Bei einigen Implementierungen können ähnliche Eingabe/Ausgabe-Vorrichtungen separat von dem Computersystem 1000 sein und können mit einem oder mehreren Knoten des Computersystems 1000 durch eine drahtgebundene oder drahtlose Verbindung, wie über die Netzwerkschnittstelle 1040 interagieren.
  • Wie es in 24 gezeigt ist kann der Speicher 1020 Programminstruktionen 1025, die konfiguriert sind, Implementierungen der Verfahren zur automatischen Upright-Anpassung von Bildern zu implementieren, wie es in 1 bis 22B gezeigt ist, und den Datenspeicher 1035 enthalten, der verschiedene Daten umfasst, die für die Programminstruktionen 1025 zugänglich sind. Bei einer Implementierung können die Programminstruktionen 1025 Software-Elemente von Implementierungen der Verfahren zur automatischen Upright-Anpassung von Bildern enthalten, wie es in den obigen Figuren gezeigt ist. Der Datenspeicher 1035 kann Daten enthalten, die bei Implementierungen verwendet werden können. Bei anderen Implementierungen können andere oder unterschiedliche Software-Elemente und Daten enthalten sein.
  • Fachleuten ist ersichtlich, dass das Computersystem 1000 rein illustrativ ist und den Schutzbereich der hierin beschriebenen Verfahren zur automatischen Upright-Anpassung von Bildern nicht einschränken soll. Insbesondere können das Computersystem und die Vorrichtungen jegliche Kombination von Hardware oder Software umfassen, welche die angegebenen Funktionen durchführe kann, einschließlich Computer, Personalcomputersystem, Desktopcomputer, Laptop, Notebook oder Netbookcomputer, Pad oder Tablet-Gerät, Mainframecomputersystem, handgehaltener Computer, Workstation, Netzwerkcomputer, Kamera, Set Top Box, mobiles Gerät, Netzwerkvorrichtung, Internet-Gerät, PDA, Schnurlostelefone, Smart Phones, Pager, Verbrauchergerät, Videospielkonsole, handgehaltenes Videospielgerät, Anwendungsserver, Speichervorrichtung, Peripheriegerät, wie Switch, Modem, Router, oder im Allgemeinen jede Art von Rechenvorrichtung oder elektronischer Vorrichtung. Das Computersystem 1000 kann auch mit anderen Vorrichtungen verbunden sein, die nicht dargestellt sind, oder kann stattdessen als ein eigenständiges System arbeiten. Zusätzlich kann die Funktionalität, die durch die dargestellten Komponenten bereitgestellt wird, bei einigen Implementierungen in weniger Komponenten kombiniert sein oder in zusätzlichen Komponenten verteilt sein. Gleichermaßen kann bei einigen Implementierungen die Funktionalität einiger dargestellter Komponenten eventuelle nicht bereitgestellt sein und/oder zusätzliche Funktionalität kann verfügbar sein.
  • Fachleuten ist zudem ersichtlich, dass, während gemäß der Darstellung verschiedene Objekte in Datenspeicher oder Hauptspeicher während ihrer Verwendung gespeichert sind bzw. werden, diese Objekte oder Teile davon zwischen Hauptspeicher und anderen Speichervorrichtungen zum Zwecke von Speichermanagement und Datenintegrität übertragen werden können. Alternativ können bei anderen Implementierungen einige oder alle der Software-Komponenten in Hauptspeicher oder einer anderen Vorrichtung ausführen und mit dem dargestellten Computersystem über Intercomputerkommunikation kommunizieren. Einige oder alle der Systemkomponenten oder Datenstrukturen können auch (z. B. als Instruktionen oder strukturierte Daten) auf einem computerzugänglichen Medium oder einem tragbaren Artikel gespeichert werden, der von einem geeigneten Laufwerk zu lesen ist, von dem bzw. denen verschiedene Beispiele oben beschrieben sind. Bei einigen Implementierungen können Instruktionen, die auf einem computerzugänglichen Medium separat von dem Computersystem 1000 gespeichert sind, über Übertragungsmedien oder -signale, wie elektrische, elektromagnetische oder digitale Signale an das Computersystem 1000 übertragen werden, die über ein Kommunikationsmedium, wie ein Netzwerk und/oder eine drahtlose Verbindung befördert werden. Verschiedene Implementierungen können ferner das Empfangen, Senden oder Speichern von Instruktionen und/oder Daten umfassen, die gemäß der vorhergehenden Beschreibung auf einem computerzugänglichen Medium implementiert sind. Folglich kann die vorliegende Erfindung mit anderen Computersystemkonfigurationen praktiziert bzw. betrieben werden.
  • Fazit
  • Verschiedene Implementierungen können ferner das Empfangen, Senden oder Speichern von Instruktionen und/oder Daten umfassen, die gemäß der vorhergehenden Beschreibung auf einem computerzugänglichen Medium implementiert sind. Allgemein gesagt kann ein computerzugängliches Medium Datenspeicher- oder Hauptspeichermedien, wie magnetische oder optische Medien, z. B. Disk oder DVD/CD-ROM, flüchtige oder nicht flüchtige Medien, wie RAM (z. B. SDRAM, DDR, RDRAM, SRAM, etc.), ROM, etc., sowie Übertragungsmedien oder -signale, wie elektrische elektromagnetische oder digitale Signale enthalten, die über ein Kommunikationsmedium, wie eine Netzwerk und/oder eine drahtlose Verbindung befördert werden.
  • Die verschiedenen Verfahren, die in den Figuren gezeigt sind und hierin beschrieben werden, stellen exemplarische Implementierungen von Verfahren dar. Die Verfahren können Software, Hardware oder einer Kombination davon implementiert sein. Die Verfahrensreihenfolge kann geändert werden und verschiedene Elemente können hinzugefügt, neu geordnet, kombiniert, ausgelassen, modifiziert etc. werden.
  • Es können verschiedene Modifikationen und Änderungen vorgenommen werden, die einem Fachmann ersichtlich sind, der von dieser Offenbarung profitiert. Die Erfindung soll alle derartigen Modifikationen und Änderungen mit einschließen und folglich ist die obige Beschreibung in einem illustrativen, anstatt restriktiven Sinne zu verstehen.

Claims (20)

  1. Verfahren, implementiert durch eine oder mehrere Rechenvorrichtungen, wobei das Verfahren umfasst: Gewinnen von Kamerainformationen für ein Bild einer Szene, das ein oder mehrere Merkmale mit Linien enthält; Berechnen einer Homographie basierend auf den Kamerainformationen, die auf das Bild anzuwenden ist, um eine Ausrichtung des einen oder der mehreren Merkmale der Szene in Relation zu einer Achse des Bilds anzupassen, wobei die Homographie zumindest teilweise gemäß einem oder mehreren auf der menschlichen Wahrnehmung basierenden Kriterien berechnet wird; und Reprojizieren des Bilds gemäß der Homographie, um ein angepasstes Bild der Szene zu generieren, das die angepasste Ausrichtung der Linien des einen oder der mehreren Merkmale der Szene mit der Achse des Bilds aufweist.
  2. Verfahren nach Anspruch 1, wobei die Achse eine vertikale oder horizontale Achse ist und das eine oder die mehreren Merkmale im Wesentlichen mit der vertikalen oder horizontalen Achse in dem angepassten Bild ausgerichtet werden.
  3. Verfahren nach Anspruch 1, wobei die Homographie neue Kamerainformationen gemäß dem einen oder den mehreren auf der menschlichen Wahrnehmung basierenden Kriterien beschreibt.
  4. Verfahren nach Anspruch 1, wobei die Kamerainformationen eine Intrinsische-Kameraparameter-Matrix und Dreidimensionale-Rotation-Matrizen enthält.
  5. Verfahren nach Anspruch 4, wobei die Kamerainformationen ferner Fluchtpunktinformationen enthalten.
  6. Verfahren nach Anspruch 1, wobei die Homographie eine neue Intrinsische-Kameraparameter-Matrix und neue Dreidimensionale-Rotation-Matrizen enthält.
  7. Verfahren nach Anspruch 1, wobei die Homographie eine Translation enthält.
  8. Verfahren nach Anspruch 1, wobei das Gewinnen ein Anwenden eines Kamerakalibrierungsverfahrens umfasst, um die Kamerainformationen für das Bild zu schätzen.
  9. Verfahren nach Anspruch 8, wobei das Kamerakalibrierungsverfahren optimierungsbasiert ist, um intrinsische Kameraparameter, eine dreidimensionale Rotation und Fluchtpunktinformationen zusammen miteinander für das Bild der Szene zu schätzen.
  10. Verfahren nach Anspruch 1, wobei das eine oder die mehreren auf der menschlichen Wahrnehmung basierenden Kriterien ein Bildrahmenausrichtungskriterium enthalten, das verwendbar ist, um eine Ausrichtung des einen oder der mehreren Merkmale gemäß einem Bildrahmen zu beschränken, der durch das Bild definiert ist.
  11. Verfahren nach Anspruch 1, wobei das eine oder die mehreren auf der menschlichen Wahrnehmung basierenden Kriterien ein Augenhöhenausrichtungskriterium enthalten, das verwendbar ist, um eine Ausrichtung des einen oder der mehreren Merkmale gemäß einer Linie zu beschränken, die zwei Fluchtpunkte der Szene verbindet.
  12. Verfahren nach Anspruch 1, wobei das eine oder die mehreren auf der menschlichen Wahrnehmung basierenden Kriterien ein Bildverzerrungskriterium enthält, das verwendbar ist, um eine Verzerrung des einen oder der mehreren Merkmale zu beschränken.
  13. Verfahren nach Anspruch 1, wobei die Homographie Brennweiten in vertikaler und horizontaler Richtung enthält, wobei die Brennweite in jeder Richtung variieren darf, und zwar eine bezüglich der anderen.
  14. Verfahren, implementiert durch eine oder mehrere Rechenvorrichtungen, wobei das Verfahren umfasst: Extrahieren von Liniensegmenten aus einem Eingangsbild; Bestimmen von Anfangswerten für eine Energiefunktion gemäß den extrahierten Liniensegmenten; und Kalibrieren von Kameraparametern durch iteratives Optimieren der Energiefunktion, um eine Intrinsische-Kameraparameter-Matrix, eine Orientierungsmatrix und einen Satz von Fluchtpunkten für das Eingangsbild zusammen miteinander zu schätzen.
  15. Verfahren nach Anspruch 14, wobei das Kalibrieren ein Extrahieren von Manhattan-Richtungen und zusätzlichen horizontalen Fluchtpunkten umfasst.
  16. Verfahren nach Anspruch 14, wobei das Kalibrieren eine Augenhöhenschätzung umfasst, und zwar durch eine Annahme, dass das Eingangsbild einen dominanten orthogonalen Rahmen mit zusätzlicher horizontaler Richtung aufweist, teilend eine gleiche vertikale Richtung.
  17. Verfahren nach Anspruch 14, ferner umfassend ein Bestimmen von Fluchtlinien für jeden Fluchtpunkt, und wobei die Orientierungsmatrix eine Dreidimensionale-Rotation-Matrix ist.
  18. System, umfassend: eine oder mehrere Rechenvorrichtungen, die zum Durchführen von Operationen konfiguriert sind, enthaltend: Kalibrieren von Kameraparametern als eine Basis zum Anpassen der Ausrichtung eines oder mehrerer Merkmale eines Bilds einer Szene in Relation zu einer Achse des Bilds gemäß einem oder mehreren auf der menschlichen Wahrnehmung basierenden Kriterien, die eine Identifikation eines orthogonalen Rahmens des Bilds enthalten, der eine zusätzliche horizontale Richtung aufweist, teilend eine gleiche vertikale Richtung, um eine Augenhöhe des Bilds zu schätzen.
  19. System nach Anspruch 18, wobei der orthogonale Rahmen einer Atlanta-Welt-Annahme folgt, bei der das Bild mehrere orthogonale Richtungen enthält, die sich nicht ausrichten, und zwar eine bezüglich der anderen.
  20. System nach Anspruch 18, wobei die Achse eine vertikale oder horizontale Achse ist und das eine oder die mehreren Merkmale im Wesentlichen mit der vertikalen oder horizontalen Achse in dem angepassten Bild ausgerichtet sind.
DE112013002200.1T 2012-04-27 2013-04-26 Automatische Anpassung von Bildern Pending DE112013002200T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201261639721P 2012-04-27 2012-04-27
US61/639,721 2012-04-27
PCT/US2013/038462 WO2013163579A2 (en) 2012-04-27 2013-04-26 Automatic adjustment of images

Publications (1)

Publication Number Publication Date
DE112013002200T5 true DE112013002200T5 (de) 2015-01-08

Family

ID=48483199

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112013002200.1T Pending DE112013002200T5 (de) 2012-04-27 2013-04-26 Automatische Anpassung von Bildern

Country Status (5)

Country Link
US (5) US9008460B2 (de)
CN (1) CN105453131B (de)
DE (1) DE112013002200T5 (de)
GB (1) GB2516405B (de)
WO (1) WO2013163579A2 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102016200036B4 (de) 2015-06-29 2022-11-17 Shanghai Avic Opto Electronics Co., Ltd. Bildanzeigeverfahren

Families Citing this family (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013163579A2 (en) 2012-04-27 2013-10-31 Adobe Systems Incorporated Automatic adjustment of images
US8805767B1 (en) * 2012-05-23 2014-08-12 Amazon Technologies, Inc. Machine learning memory management and distributed rule evaluation
US9113077B2 (en) * 2013-01-17 2015-08-18 Qualcomm Incorporated Orientation determination based on vanishing point computation
KR101757101B1 (ko) 2013-07-04 2017-07-12 코어포토닉스 리미티드 소형 망원 렌즈 조립체
WO2015015383A2 (en) 2013-08-01 2015-02-05 Corephotonics Ltd. Thin multi-aperture imaging system with auto-focus and methods for using same
US9426539B2 (en) * 2013-09-11 2016-08-23 Intel Corporation Integrated presentation of secondary content
US9915857B2 (en) * 2013-12-09 2018-03-13 Geo Semiconductor Inc. System and method for automated test-pattern-free projection calibration
US8913836B1 (en) * 2013-12-20 2014-12-16 I.R.I.S. Method and system for correcting projective distortions using eigenpoints
US8897600B1 (en) * 2013-12-20 2014-11-25 I.R.I.S. Method and system for determining vanishing point candidates for projective correction
JP6010870B2 (ja) * 2013-12-24 2016-10-19 カシオ計算機株式会社 画像補正装置、及び画像補正方法、プログラム
US20150244938A1 (en) * 2014-02-25 2015-08-27 Stelios Petrakis Techniques for electronically adjusting video recording orientation
US9392188B2 (en) 2014-08-10 2016-07-12 Corephotonics Ltd. Zoom dual-aperture camera with folded lens
KR102214287B1 (ko) 2015-08-13 2021-02-09 코어포토닉스 리미티드 비디오 지원 및 스위칭/비스위칭 동적 제어 기능이 있는 듀얼-애퍼처 줌 카메라
US10354364B2 (en) 2015-09-14 2019-07-16 Intel Corporation Automatic perspective control using vanishing points
US10089759B2 (en) 2016-02-01 2018-10-02 Adobe Systems Incorporated Homography-assisted perspective drawing
CA3012721C (en) * 2016-02-03 2022-04-26 Sportlogiq Inc. Systems and methods for automated camera calibration
CN106023087A (zh) * 2016-05-19 2016-10-12 北京小米移动软件有限公司 图像处理方法和装置
EP3758356B1 (de) 2016-05-30 2021-10-20 Corephotonics Ltd. Antrieb
EP3264359A1 (de) 2016-06-28 2018-01-03 Dassault Systèmes Verfahrung zur kamerakalibrierung
EP3264360A1 (de) * 2016-06-28 2018-01-03 Dassault Systèmes Dynamische kamerakalibrierung
US10845565B2 (en) 2016-07-07 2020-11-24 Corephotonics Ltd. Linear ball guided voice coil motor for folded optic
TWI592020B (zh) * 2016-08-23 2017-07-11 國立臺灣科技大學 投影機的影像校正方法及影像校正系統
US10192143B1 (en) * 2016-09-20 2019-01-29 Gopro, Inc. Systems and methods to distinguish between features depicted in images
CN107886476B (zh) * 2016-09-30 2021-06-15 联咏科技股份有限公司 纹理合成的方法以及使用该方法的图像处理设备
CN106952338B (zh) * 2017-03-14 2020-08-14 网易(杭州)网络有限公司 基于深度学习的三维重建的方法、系统及可读存储介质
CN107155017B (zh) * 2017-06-30 2021-01-22 上海兆芯集成电路有限公司 图像获取方法及其装置
CN107333028B (zh) * 2017-06-30 2020-08-25 上海兆芯集成电路有限公司 图像获取方法及其装置
US11089288B2 (en) * 2017-09-11 2021-08-10 Tusimple, Inc. Corner point extraction system and method for image guided stereo camera optical axes alignment
US11158088B2 (en) 2017-09-11 2021-10-26 Tusimple, Inc. Vanishing point computation and online alignment system and method for image guided stereo camera optical axes alignment
US10417833B2 (en) 2017-11-06 2019-09-17 Adobe Inc. Automatic 3D camera alignment and object arrangment to match a 2D background image
CN113219614B (zh) 2017-11-23 2023-02-03 核心光电有限公司 摄影机及制法、移动电子设备及减小凸起占用空间的方法
CN108053450B (zh) * 2018-01-22 2020-06-30 浙江大学 一种基于多约束的高精度双目相机标定方法
CN114609746A (zh) 2018-02-05 2022-06-10 核心光电有限公司 折叠摄像装置
KR102506666B1 (ko) * 2018-02-19 2023-03-07 삼성전자주식회사 전자 레인지, 디스플레이 장치 및 이를 포함하는 조리 시스템
US10652472B2 (en) * 2018-02-22 2020-05-12 Adobe Inc. Enhanced automatic perspective and horizon correction
JP6895403B2 (ja) * 2018-03-20 2021-06-30 株式会社東芝 画像処理装置、運転支援システム、及び画像処理方法
CN112367448B (zh) 2018-04-23 2022-04-19 核心光电有限公司 感测机构
JP2021122079A (ja) * 2018-05-08 2021-08-26 ソニーグループ株式会社 情報処理装置、情報処理方法、及びプログラム
WO2020014683A1 (en) * 2018-07-13 2020-01-16 Kache.AI Systems and methods for autonomous object detection and vehicle following
US11635596B2 (en) 2018-08-22 2023-04-25 Corephotonics Ltd. Two-state zoom folded camera
CN109483516B (zh) * 2018-10-16 2020-06-05 浙江大学 一种基于空间距离和极线约束的机械臂手眼标定方法
KR102677513B1 (ko) 2018-10-23 2024-06-21 삼성전자주식회사 소실점 검출을 위한 학습 방법, 소실점 검출 방법 및 장치
US11094083B2 (en) 2019-01-25 2021-08-17 Adobe Inc. Utilizing a critical edge detection neural network and a geometric model to determine camera parameters from a single digital image
CN110209997A (zh) * 2019-06-10 2019-09-06 成都理工大学 基于三维特征点的深度相机自动标定算法
CN112153357A (zh) * 2019-06-28 2020-12-29 中强光电股份有限公司 投影系统及其投影方法
CN110718068B (zh) * 2019-09-27 2020-12-08 华中科技大学 一种道路监控摄像机安装角度估计方法
US11164283B1 (en) 2020-04-24 2021-11-02 Apple Inc. Local image warping in image processor using homography transform function
CN117572549A (zh) 2020-05-30 2024-02-20 核心光电有限公司 用于获得超微距图像的系统和方法
KR20210148756A (ko) 2020-06-01 2021-12-08 삼성전자주식회사 경사 추정 장치 및 이의 동작 방법
US11637977B2 (en) 2020-07-15 2023-04-25 Corephotonics Ltd. Image sensors and sensing methods to obtain time-of-flight and phase detection information
KR102672536B1 (ko) * 2020-07-15 2024-06-04 코어포토닉스 리미티드 스캐닝 폴디드 카메라에서의 시점 수차-보정
US12002235B2 (en) 2020-08-12 2024-06-04 Hong Kong Applied Science and Technology Research Institute Company Limited Apparatus and method for estimating camera orientation relative to ground surface
KR20240025049A (ko) 2021-06-08 2024-02-26 코어포토닉스 리미티드 슈퍼-매크로 이미지의 초점면을 틸팅하기 위한 시스템 및 카메라
CN113822948A (zh) * 2021-11-18 2021-12-21 中国测绘科学研究院 一种利用目标立面纹理进行数码相机检校的方法
CN115936974A (zh) * 2022-11-21 2023-04-07 北京地平线机器人技术研发有限公司 基于单应性变换的图像数据处理方法、装置及介质
CN116342712B (zh) * 2023-03-30 2024-04-05 中国科学院西安光学精密机械研究所 基于消失点一致性的空间相机在轨畸变系数标定方法、介质及设备

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5973700A (en) * 1992-09-16 1999-10-26 Eastman Kodak Company Method and apparatus for optimizing the resolution of images which have an apparent depth
US5448322A (en) * 1993-11-05 1995-09-05 Vision Iii Imaging, Inc. Autostereoscopic imaging apparatus and method using a parallax scanning lens aperture
GB2364789A (en) * 2000-07-14 2002-02-06 Sharp Kk A transflector
US6917702B2 (en) 2002-04-24 2005-07-12 Mitsubishi Electric Research Labs, Inc. Calibration of multiple cameras for a turntable-based 3D scanner
US7466336B2 (en) * 2002-09-05 2008-12-16 Eastman Kodak Company Camera and method for composing multi-perspective images
US7239331B2 (en) 2004-02-17 2007-07-03 Corel Corporation Method and apparatus for correction of perspective distortion
US7512261B2 (en) 2004-07-27 2009-03-31 Microsoft Corp. System and method for calibrating multiple cameras without employing a pattern by inter-image homography
US7583858B2 (en) * 2004-10-12 2009-09-01 Eastman Kodak Company Image processing based on direction of gravity
US7356425B2 (en) 2005-03-14 2008-04-08 Ge Security, Inc. Method and system for camera autocalibration
US20070076977A1 (en) * 2005-10-05 2007-04-05 Kuan-Wen Chen Method for calibrating camera parameters
JP4757142B2 (ja) 2006-08-10 2011-08-24 キヤノン株式会社 撮影環境校正方法及び情報処理装置
KR100966592B1 (ko) * 2007-12-17 2010-06-29 한국전자통신연구원 영상에서 평행 사변형의 호모그래피를 이용한 카메라의 보정 방법
CN101894366B (zh) 2009-05-21 2014-01-29 北京中星微电子有限公司 一种获取标定参数的方法、装置及一种视频监控系统
WO2012044308A1 (en) * 2010-09-30 2012-04-05 Hewlett-Packard Development Company, L.P. Projection matrix
US8818132B2 (en) * 2010-11-29 2014-08-26 Microsoft Corporation Camera calibration with lens distortion from low-rank textures
US8638986B2 (en) 2011-04-20 2014-01-28 Qualcomm Incorporated Online reference patch generation and pose estimation for augmented reality
US10063834B2 (en) * 2011-09-13 2018-08-28 Ati Technologies Ulc Method and apparatus for providing video enhancements for display images
US8457357B2 (en) * 2011-11-09 2013-06-04 Disney Enterprises, Inc. Relative pose estimation of non-overlapping cameras using the motion of subjects in the camera fields of view
US8886449B2 (en) * 2012-01-13 2014-11-11 Qualcomm Incorporated Calibrated hardware sensors for estimating real-world distances
US9338447B1 (en) 2012-03-14 2016-05-10 Amazon Technologies, Inc. Calibrating devices by selecting images having a target having fiducial features
WO2013163579A2 (en) 2012-04-27 2013-10-31 Adobe Systems Incorporated Automatic adjustment of images
US9277206B1 (en) * 2013-01-28 2016-03-01 Cognex Corporation Dual-view laser-based three-dimensional capture system and method for employing the same
US8970709B2 (en) * 2013-03-13 2015-03-03 Electronic Scripting Products, Inc. Reduced homography for recovery of pose parameters of an optical apparatus producing image data with structural uncertainty

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102016200036B4 (de) 2015-06-29 2022-11-17 Shanghai Avic Opto Electronics Co., Ltd. Bildanzeigeverfahren

Also Published As

Publication number Publication date
US9098885B2 (en) 2015-08-04
CN105453131B (zh) 2019-04-12
US20130286221A1 (en) 2013-10-31
US20170069088A1 (en) 2017-03-09
GB2516405A (en) 2015-01-21
US9008460B2 (en) 2015-04-14
WO2013163579A2 (en) 2013-10-31
US9729787B2 (en) 2017-08-08
US20150324985A1 (en) 2015-11-12
US20150215531A1 (en) 2015-07-30
US9582855B2 (en) 2017-02-28
WO2013163579A3 (en) 2014-01-16
US9519954B2 (en) 2016-12-13
CN105453131A (zh) 2016-03-30
GB201420884D0 (en) 2015-01-07
US20130287318A1 (en) 2013-10-31
GB2516405B (en) 2016-06-15

Similar Documents

Publication Publication Date Title
DE112013002200T5 (de) Automatische Anpassung von Bildern
US10540576B1 (en) Panoramic camera systems
DE112020004813B4 (de) System zur Erweiterung von Sensorsystemen und Bildgebungssystemen mit Polarisation
DE112009005074T5 (de) Techniken für schnelle stereo-rekonstruktion aus bildern
DE102020000810A1 (de) 3D-Objektrekonstruktion unter Nutzung einer fotometrischen Netzdarstellung
DE112018001050T5 (de) System und verfahren zur virtuell erweiterten visuellen gleichzeitigen lokalisierung und kartographierung
US20190251675A1 (en) Image processing method, image processing device and storage medium
DE102014014944A1 (de) Füllen eines Zielbereichs unter Verwendung von Transformationen
DE112018007721T5 (de) Aufnehmen und modifizieren von 3D-Gesichtern unter Verwendung neuronaler Bild-und Zeitverfolgungsnetze
US9437034B1 (en) Multiview texturing for three-dimensional models
DE102004049676A1 (de) Verfahren zur rechnergestützten Bewegungsschätzung in einer Vielzahl von zeitlich aufeinander folgenden digitalen Bildern, Anordnung zur rechnergestützten Bewegungsschätzung, Computerprogramm-Element und computerlesbares Speichermedium
US9846974B2 (en) Absolute rotation estimation including outlier detection via low-rank and sparse matrix decomposition
US9519996B2 (en) Virtual view generating method and apparatus
US10169891B2 (en) Producing three-dimensional representation based on images of a person
CN104424640A (zh) 对图像进行虚化处理的方法和装置
Tehrani et al. Correcting perceived perspective distortions using object specific planar transformations
CN116152121B (zh) 基于畸变参数的曲面屏生成方法、矫正方法
DE102023105068A1 (de) Bewegungsvektoroptimierung für mehrfach refraktive und reflektierende Schnittstellen
DE112009005423T5 (de) Modellierung konkaver Oberflächen in bildbasierten visuellen Hüllen
CN113077504A (zh) 基于多粒度特征匹配大场景深度图生成方法
DE112018003790T5 (de) Verfahren und System zur Einschätzung einer Kopfhaltung
Kim et al. Memory efficient stereoscopy from light fields
CN114445560A (zh) 一种头戴设备及其三维重建方法、装置、系统及介质
DE102016224268A1 (de) Verfahren zum Transformieren einer Zeichnung zwischen zwei Zeichenflächen

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R081 Change of applicant/patentee

Owner name: ADOBE INC., SAN JOSE, US

Free format text: FORMER OWNERS: ADOBE SYSTEMS INCORPORATED, SAN JOSE, CALIF., US; UNIVERSITY OF SCIENCE AND TECHNOLOGY ACADEMY-INDUSTRY FOUNDATION, POHANG, GYUNBBUK, KR

Owner name: UNIVERSITY OF SCIENCE AND TECHNOLOGY ACADEMY-I, KR

Free format text: FORMER OWNERS: ADOBE SYSTEMS INCORPORATED, SAN JOSE, CALIF., US; UNIVERSITY OF SCIENCE AND TECHNOLOGY ACADEMY-INDUSTRY FOUNDATION, POHANG, GYUNBBUK, KR

R082 Change of representative

Representative=s name: MUELLER-BORE & PARTNER PATENTANWAELTE PARTG MB, DE

R016 Response to examination communication