-
Gebiet der Erfindung:
-
Die
vorliegende Erfindung bezieht sich auf Kameras und hierbei insbesondere
auf ein System und ein Verfahren zum Bestimmen der Eigenschaften
von Kameras.
-
Hintergrund der Erfindung:
-
Panoramabilder
können
erzeugt werden, indem mehrere Einzelbilder miteinander verbunden
werden. Es existieren Mehrlinsenkameras, die gleichzeitig mehrere
Einzelbilder aufnehmen können.
Die Bilder, die von einer solchen Kamera aufgenommen wurden, können anschließend zu
einem Panoramabild verbunden werden. Die Patentanmeldung mit der
Seriennummer 09/338,790, zu den Akten genommen am 23. Juni 1999
(veröffentlicht
unter der Patentnummer
US 6,323,858 )
beschreibt eine Mehrlinsenkamera.
-
Es
ist praktisch unmöglich,
einen Satz von Einzelbildern zu erhalten, die sich perfekt zu einem
Panorama zusammenfügen.
Parameter wie beispielsweise Heading, Pitch, Bank, Versatz, Helligkeit
und Kontrast eines jeden Bildes müssen angepasst werden, damit
sich die Bilder zu einem Panorama zusammenfügen. Einer der Gründe dafür, dass
die Parameter der einzelnen Bilder angepasst werden müssen ist
der, dass die einzelnen Kameraelemente in den Kameras, welche die
Bilder aufgenommen haben, ihre eigenen Besonderheiten und Eigenarten
haben. Im Allgemeinen besitzt jede einzelne Kamera und jede einzelne
Kameralinse Parameter und Eigenarten, die ausschließlich und
speziell diese Linse allein aufweist.
-
Wenn
man die Einstellungen bestimmt, mit Hilfe derer ein Satz von Bildern
(aufgenommen von einer speziellen Kamera) zusammengefügt werden
kann um ein Panorama zu bilden, werden diese Einstellungen im Allgemeinen
eine akzeptable Modifikation für
einen anderen Satz von Bildern von der gleichen Kamera bereitstellen,
so dass der zweite Satz von Bildern in ein Panorama passen wird.
-
Zusammenfassung der Erfindung:
-
Die
vorliegende Erfindung stellt ein Verfahren zum Kalibrieren einer
Mehrlinsenkamera nach Anspruch 1 bereit sowie ein computerlesbares
Medium, das ein Softwareprogramm enthält, nach Anspruch 6.
-
Ausführungen
der vorliegenden Erfindung stellen ein Verfahren zum Bestimmen der
Einstellungen bereit, welche an den einzelnen, von einer Mehrlinsenkamera
aufgenommenen Bildern vorgenommen werden müssen, damit die sich Bilder
zu einem Panorama zusammenfügen.
Bei der vorliegenden Erfindung wird die Kamera in der Mitte einer
Struktur platziert, deren Kanten mindestens eine Reihe von Referenzpunkten
aufweisen. Jede Kamera nimmt ein Bild auf, das die Referenzpunkte
entlang jeder Kante umfasst, die mit der Kante eines weiteren Bildes
zusammengefügt
wird, um ein Panorama zu bilden. Jede Kante der Struktur, die sich entlang
eines Randes befindet, der mit einer Kante eines anderen Bildes
verbunden wird, wird von zwei Linsen auf der Kamera aufgezeichnet.
Anschließend
wird die Größe der Einstellung
bestimmt, die erforderlich ist, damit die Referenzpunkte in den
beiden Bildern zusammenpassen. Die Werte dieser Einstellungen werden
zusammen mit einer Identifizierung der Kamera aufgezeichnet, welche
die Bilder aufgenommen hat. Aufeinander folgende Sätze von
Bildern, die von dieser selben Kamera aufgezeichnet wurden, können dann
unter Verwendung der gleichen Einstellungen miteinander verbunden
werden.
-
Ein
weiteres Merkmal der vorliegenden Erfindung umfasst die Bereitstellung
von zwei Reihen von Referenzpunkten entlang der Kanten des Würfels. Die
zwei Reihen von Referenzpunkten beabstanden einander um eine Größe gleich
dem Abstand zwischen den Linsen auf der Kamera. Somit wird die Notwendigkeit
eliminiert, eine Parallaxenkorrektur durchzuführen oder die Kamera in der
exakten Mitte des Würfels
zu positionieren.
-
Ein
weiteres Merkmal dieser Erfindung ist, dass die Form der Referenzpunkte
verzerrt ist, so dass bei Aufzeichnung der Referenzpunkte durch
ein Fischaugenobjektiv die Punkte unverzerrt erscheinen, und dadurch
eine exakte Ausrichtung der Bilder ermöglichen.
-
Kurzbeschreibung der Zeichnungen:
-
1 ist
ein Flussdiagramm des gesamten Prozesses.
-
2A ist
ein Gesamtdiagramm des Kalibrationswürfels.
-
2B ist
eine detailliertere Ansicht eines Abschnitts des Kalibrationswürfels.
-
2C ist
eine Abbildung zur Veranschaulichung, warum die Reihen von Punkten
einander beabstanden.
-
3A zeigt
ein Bild, das durch eine einzelne Linse auf der Kamera aufgenommen
wurde.
-
3B stellt
zwei Bilder dar, die nebeneinander angezeigt werden, so dass korrespondierende
Punkte identifiziert werden können.
-
3C zeigt
eine leere Einheitskugel und die Standardparameter, die verwendet
werden, um die Bilder zu Anfang zu einem Panorama zu verbinden.
-
4 zeigt
mehrere Bilder, die mit Hilfe der Standardparameter verbunden wurden
und deren Reihen von Punkten nicht übereinstimmen.
-
5 zeigt
die Verzeichnung der Punkte, verursacht durch eine Linse.
-
6 ist
ein Flussdiagramm, das die Funktionsweise des Programms darstellt.
-
7 ist
ein Flussdiagramm einer alternativen Ausführung der Erfindung.
-
Detaillierte Beschreibung:
-
Ein
Flussdiagramm des gesamten Prozesses, ausgeführt von einer bevorzugten Ausführung der
vorliegenden Erfindung, ist in 1 dargestellt.
Die verwendete Kalibrationsstruktur ist in den 2A und 2B dargestellt.
Die Kalibrationsstruktur 200 ist würfelförmig. Zunächst wird, wie in Block 101 angezeigt,
eine spezielle Kamera 213 verwendet, um Bilder der Kanten
des Kalibrationswürfels 200 aufzunehmen.
Die so aufgenommenen Bilder können
als Kalibrationsbilder bezeichnet werden.
-
Bei
der Kamera handelt es sich um eine Mehrlinsenkamera, bei der eine
Linse in Richtung einer jeden Seite des Würfels
200 zeigt. Eine
detaillierte Beschreibung der Kamera
213 ist in der Parallelanmeldung
mit der Seriennummer 09/338,790 zu finden, zu den Akten genommen
am 23. Juni 1999 (veröffentlicht
unter Patentnummer
US 6,323,858 ).
-
Die
Kamera 213 verfügt über sechs
Linsen, und sechs Bilder, eines an jeder Seite des Würfels 200, werden
gleichzeitig aufgenommen. Zwei Linsen der Kamera 213 nehmen
ein Bild von jeder Kante des Würfels 200 auf.
-
3A zeigt
ein Beispiel eines Bildes 331, aufgenommen von einer Linse
der Kamera 213. An der Kante des Bildes 331 (und
an der Kante jedes von der Kamera 213 aufgenommenen Bildes)
sind zwei Reihen von Punkten, die mit den Punkten entlang einer
Kante des Würfels 200 korrespondieren.
Da zwei Linsen jede Kante des Würfels 200 aufnehmen,
gibt es für
jede Kante des Würfels 200 zwei
Bilder, welche die gleiche Reihe von Punkten zeigen.
-
Nachdem
die Bilder aufgenommen worden sind, zeigt die Bedienperson dem Programm
(wie in Block 102 angezeigt) manuell an, welche Punkte
in den verschiedenen Bildern miteinander korrespondieren.
-
In
diesem Schritt werden die beiden Bilder, welche dieselbe Kante des
Würfels
abbilden, nebeneinander angezeigt, wie in 3B dargestellt.
Die Bedienperson zeigt dem Programm manuell an, welche Punkte in
den zwei Bildern übereinstimmen.
Die Bedienperson tut dies, indem sie zunächst auf eine Schaltfläche "Start" (mit einer Maus)
klickt und anschließend
die zwei korrespondierenden Punkte in Folge "anklickt". Das Programm erkennt die aufeinanderfolgenden "Klicks" als Anzeige, dass
die Punkte korrespondieren.
-
Wie
in Block 104 dargestellt, findet die Bedienperson als nächstes die
Einstellungen der verschiedenen Parameter, die benötigt werden,
um die Bilder solcherart auszurichten, dass sie ohne Artefakte zu
einem Panorama verbunden werden können. Die gefundenen Korrekturfaktoren
werden zusammen mit einer Identifizierung der Kamera aufgezeichnet,
welche die aufgenommenen Bilder erzeugt hat. In der ersten bevorzugten Ausführung sind
die Kameraparameter, die für
jede der sechs Kameralinsen bestimmt werden:
- a)
Kameraausrichtung, umfassend Heading, Pitch und Bank,
- b) Sichtfeld,
- c) Versatz der Kameralinse zum CCD,
- d) Größe der Kissenverzeichnung
in der Kameralinse,
- e) Größe von Pitch,
Roll, Heading und Versatz.
-
Wenn
in der folgenden Erörterung
Bezug auf Kameraparameter genommen wird, handelt es sich um die
oben genannten Parameter. Es sei jedoch angemerkt, dass die Erfindung
auf andere Kameraparameter erweitert werden kann (oder einige weggelassen
werden könnten),
je nachdem, wie es für
spezielle Anwendungen notwendig ist.
-
Eine
Kamera, die den oben beschriebenen Prozess durchlaufen hat, kann
anschließend
verwendet werden, um einen anderen Satz von Bildern aufzunehmen
und die wie oben beschrieben bestimmten Parameter können verwendet
werden, um diesen neuen Satz von Bildern zu verbinden. Das heißt, der
letzte in 1 gezeigte Schritt 105 wird
an einem neuen Satz von Bildern durchgeführt, die mit einer zuvor kalibrierten Kamera
aufgezeichnet wurden. An diesem Punkt werden die zuvor bestimmten
Korrekturfaktoren auf den neuen Satz von Bildern angewendet.
-
2A ist
ein Gesamtdiagramm des Kalibrationswürfels 200 und zeigt
die zwölf
Kantenpanels, gekennzeichnet mit 201 bis 212.
Eine Kamera 213 wird ungefähr in der Mitte des Würfels positioniert.
Alle zwölf Panels 201 bis 212 sind
identisch und daher wird nur Panel 202 detailliert beschrieben. 2B zeigt
Panel 202 und die sich daran anschließenden Panels detaillierter.
Panel 202 weist zwei Reihen von Punkten auf, gekennzeichnet
mit 202A und 202B. Die Panels sind in einem 45
Grad Winkel im Verhältnis
zu den Seiten des Würfels
positioniert. Zöge
man eine Linie von der Mitte eines jeden Panels (zum Beispiel von
Punkt 202C) im rechten Winkel zu der Oberfläche des
Panels, würde
die Linie zur Mitte der Kamera 213 führen.
-
Bei
Auslösung
nimmt die Kamera 213 ein Bild von jeder Seite des Würfels 200 auf.
Jedes so aufgezeichnete Bild umfasst die vier Panels, welche die
Seiten des aufgenommenen Würfels
umgeben. Ein Beispiel eines solchen Bildes ist in 3A dargestellt.
Es ist wichtig, anzumerken, dass jedes Kantenpanel von zwei Linsen
von Kamera 213 aufgezeichnet wird. Somit erscheint jede
Kante des Würfels
auf zwei Bildern.
-
Der
Abstand zwischen den zwei Reihen von Punkten auf jedem Panel entspricht
dem Abstand zwischen den Linsen auf der Kamera 213. Dies
ist der Fall, um die Notwendigkeit für durch die Parallaxe bedingte Einstellungen
zu eliminieren. Der Grund hierfür
ist in 2C dargestellt, in der zwei
Linsen 213A und 213B auf Kamera 213 gezeigt
werden und die zwei Punkte 202A und 202B auf Panel 202.
Da die Punkte einander um die gleiche Distanz beabstanden wie die
Linsen, welche die Punkte aufgenommen haben, besteht keine Notwendigkeit
für eine
Parallaxeneinstellung, um den Abstand der Kamera 213 von
dem Panel 202 einzukalkulieren. Natürlich muss das Programm, das
die von den zwei Linsen aufgenommenen Bilder zusammenfügt, berücksichtigen,
dass die zwei Reihen von Punkten durch einen Abstand von einer gewissen
Größe voneinander
getrennt sind.
-
3B stellt
dar, wie die Bedienperson dem Programm aufzeigt, welche Punkte in
benachbarten Bildern korrespondieren. Die in 3B dargestellten
Bilder sind ein Beispiel der Bilder, die bei dem in Block 102 in 2 angezeigten Vorgang verwendet werden.
Wie in 3B dargestellt, zeigt das Programm
zwei Bilder 331 und 332 nebeneinander an, so dass
die Bedienperson zumindest einen Teil beider Reihen von Punkten
in beiden Bildern sehen kann. 3B zeigt
zum Beispiel das von Linse 213A aufgenommene Bild neben
dem von Linse 213B aufgenommenen Bild. Die Reihen von Punkten
auf Panel 202 erscheinen in beiden Bildern. Das Programm
enthält
eine Form-Erkennungslogik, welche die Position jedes Punktes lokalisiert
und in einer Tabelle aufzeichnet.
-
Ein
Beispiel der Hauptelemente einer solchen Tabelle ist in Tabelle Eins
unten dargestellt.
Bild
ID # | Punkt
ID # | X
Position | Y
Position | Kor-Punkt
ID |
IM0097 | D301 | 456 | 237 | D302 |
IM0098 | D302 | 159 | 857 | D301 |
| | | | |
| | | | |
TABELLE
EINS
-
In
der oben abgebildeten Tabelle bezieht sich jede Reihe auf einen
speziellen Punkt. Die Spalten in der Tabelle liefern die folgenden
Informationen:
- Bild ID #
- Eine eindeutige Zahl,
die ein bestimmtes Bild identifiziert
- Punkt ID #
- Eine eindeutige Zahl,
die einen bestimmten Punkt identifiziert
- X Position
- Die X-Position des
bestimmten Punktes
- Y Position
- Die Y-Position des
bestimmten Punktes
- Kor-Punkt ID
- Die Punkt-ID-Nummer
eines korrespondierenden Punktes auf einem anderen Bild. Die Information
in dieser Spalte wird eingegeben, nachdem die Bedienperson dem Programm
aufgezeigt hat, welche Punkte in den zwei Bildern korrespondieren.
-
Wenn,
wie in 3B dargestellt, die Bilder nebeneinander
angezeigt werden, kann eine Bedienperson die korrespondierenden
Punkte problemlos optisch identifizieren. Beispielsweise stimmt
Punkt 301 mit Punkt 302 überein. Nach Klicken auf eine
Schaltfläche "Start", um den Vorgang
zu initiieren, "klickt" die Bedienperson zunächst auf
Punkt 301 und anschließend
auf Punkt 302. Dies sagt dem Programm, dass diese zwei
Punkte korrespondieren, und das Programm zeichnet in der letzten
Spalte der oben abgebildeten Tabelle die Tatsache auf, dass diese
zwei Punkte korrespondieren. Die Bedienperson verfährt so mit
jedem Punkt entlang der Kante 202P nacheinander. Der Vorgang
wird für
jede der zwölf
Kanten des Würfels 200 wiederholt.
-
Es
sei angemerkt, dass nicht jedes Bild unbedingt eine komplette Abbildung
beider Reihen von Punkten enthalten muss.
-
Beispielsweise
enthält
der untere Teil von Bild 331, dargestellt in 3A und 3B,
keine komplette Abbildung beider Reihen von Punkten. Es kann so
betrachtet werden, dass die zwei benachbarten Punkte (beispielsweise
die Punkte 271 und 272 in 2B) eine
hypothetische Schranke oder einen Bereich konstituieren, der an
einem Punkt beginnt und an dem anderen Punkt endet. Wenn die Bedienperson
nacheinander auf die Punkte 301 und 302 klickt
(siehe 3B), zeigt die Bedienperson
dem Programm an, dass die zwei "hypothetischen
Schranken" oder
der Bereich korrespondierende Punkte in den zwei Bildern enthalten.
Da jedes Bild zumindest die innere Reihe von Punkten auf jedem Panel
zeigt, und der Abstand zwischen den Reihen von Punkten dem Programm
bekannt ist, kann das Programm den Ort aller Punkte bestimmen, auch
wenn diese nicht explizit auf dem Bild zu sehen sind.
-
Anschließend verbindet
das Programm die Bilder unter Verwendung eines Satzes von Standardparametern
zu einem Panorama. Wenn das Programm initiiert ist, zeigt es das
in 3C dargestellte Fenster. Das Fenster zeigt ein
Panorama, in dem noch keine Bilder geladen wurden. Auf der rechten
Seite des Bildschirms sind verschiedene Einstellungen, die an Bildern
vorgenommen werden können,
welche zu einem Panorama zusammengefügt werden sollen. Diese Parameter
werden zu Beginn auf einen Satz von Standardparametern eingestellt,
wie unten dargestellt.
-
Die
sechs Kameras werden als oben, vorne, unten, hinten, links und rechts
definiert. Das Sichtfeld (SF), Heading, Pitch, Bank, x-Versatz und
y-Versatz für
die Kameras werden zu Beginn auf Werte eingestellt, die in der folgenden
Tabelle dargestellt sind. Es versteht sich, dass die folgenden Anfangswerte
nur Beispiele sind, und es bei den Werten für verschiedene Kameratypen
am besten experimentell bestimmt wird, welche zu den besten Ergebnissen
führen.
Kamera | SF | Heading | Pitch | Bank | x-Versatz | y-Versatz |
Oben | 95 | 180 | 90 | 0 | 0 | 0 |
Vorne | 95 | 0 | 0 | 0 | 0 | 0 |
Unten | 95 | 0 | –90 | 0 | 0 | 0 |
Hinten | 95 | 180 | 0 | 0 | 0 | 0 |
Links | 95 | –90 | 0 | 0 | 0 | 0 |
Rechts | 95 | 90 | 0 | 0 | 0 | 0 |
Tabelle
Zwei
-
Es
sind auch Vorkehrungen für
weitere Parameter getroffen, die auf Wunsch verwendet werden können. Beispielsweise
kann die Größe der Fischaugeneinstellung
oder Kissenverzeichnung eingestellt werden.
-
Die
unter Verwendung der Standardparameter verbundenen Bilder werden
der Bedienperson angezeigt, wie in 3C dargestellt.
Wie in 4 zu sehen, wurden die Bilder verbunden, die Punkte
auf den verschiedenen Bildern korrespondieren jedoch nicht. So sollte
beispielsweise Punkt 304D aus Bild 304 mit Punkt 305D aus
Bild 305 übereinstimmen.
Die Standardparameter, mit Hilfe derer das Panorama in 4 erzeugt wurde,
haben die Bilder nicht so miteinander verbunden, wie es sein sollte
und somit stimmen Punkt 304D und Punkt 305D nicht überein.
Die Bedienperson kann dann die verschiedenen, beim Verbinden verwendeten
Parameter ändern,
damit die Punkte übereinstimmen.
-
6 ist
ein Flussdiagramm des Programms, das detailliert darstellt, wie
das Programm die durch die Blöcke 102, 104 und 105 in 1 angezeigten
Vorgänge
ausführt.
Das heißt, 6 ist
ein Flussdiagramm, das zeigt, wie die korrespondierenden Punkte
auf einem Satz von Bildern identifiziert werden, die entsprechenden
Korrekturfaktoren bestimmt werden, damit die Punkte übereinstimmen
(d. h. die entsprechenden Korrekturfaktoren werden bestimmt, um
die Bilder richtig zu verbinden) und wie schließlich diese Parameter verwendet
werden, um einen weiteren Satz von Bildern, aufgezeichnet von derselben
Kamera, zu verbinden. Wie in Block 601 angezeigt werden
zunächst
die sechs Bitmaps (d. h. die sechs Bilder), aufgezeichnet von einer
bestimmten Kamera 213, in dem Programm geladen. Diese Bilder
zeigen die Kanten des Kalibrationswürfels 200. Jede Kante
erscheint in zwei der Bilder. Dann wird, wie in Block 602 angezeigt,
eine herkömmliche
Form-Erkennungsroutine
verwendet, um zu identifizieren, wo sich die Mitte der Punkte an
der Peripherie jedes Bildes befindet.
-
Anschließend zeigt
die Bedienperson dem Programm korrespondierende Punkte an, wie angezeigt
in Block 603. Die Bedienperson kann zum Beispiel optisch
bestimmen, dass es sich bei den Punkten 301 und 302,
dargestellt in 3B, tatsächlich um ein und denselben
Punkt auf der Rahmenkante handelt, und dass diese Punkte übereinstimmen
sollten. Die Bedienperson verwendet eine Maus, um nacheinander auf
die übereinstimmenden
Punkte zu klicken. Das Programm erkennt die Klicks als Anzeige,
dass die zwei Punkte, auf welche die Bedienperson geklickt hat,
korrespondieren. Die Identität
der korrespondierenden Punkte wird dann in einer Tabelle, wie zum
Beispiel der oben abgebildeten Tabelle Eins, aufgezeichnet. Übereinstimmende Punkte
werden als Ausrichtungspunkte bezeichnet.
-
Wie
in Block 605 angezeigt, werden anschließend die Ausrichtungspunkte
auf einer Kugel mit einem Einheitsradius abgebildet. Das Abbilden
geschieht unter Verwendung eines Standardsatzes von Parametern für Kamerarichtung,
Sichtfeld, Linsenverzeichnung, etc. Heading und Pitch eines jeden
Ausrichtungspunktes auf der Kugel werden bestimmt. Null Pitch und
Null Heading werden als lotrecht zu der Mitte eines jeden Bildes genommen.
-
Die
nächste
Folge von Schritten, 606A bis 606D, ist der Kern
des Kalibrationsvorgangs. Ein Anpassungsprozess nach der Methode
der kleinsten Quadrate wird angewendet, um die verschiedenen Parameter zu ändern, so
dass die korrespondierenden Punkte in den Bildern miteinander übereinstimmen.
Zunächst
wird, wie in Block 606A angezeigt, ein Vektor zwischen
jedem Paar von korrespondierenden Punkten gebildet. So wird beispielsweise
ein Vektor zwischen 301 und 302 in 3B berechnet.
In ähnlicher
Weise wird für
jedes Paar von Punkten ein Vektor berechnet. Die Länge des
Vektors stellt die Größe des Fehlers
in der Ausrichtung der Punkte dar.
-
Anschließend wird,
wie in Block 606B angezeigt, die Größe der Änderung in jedem Vektor bestimmt, die
aus einer kleinen Änderung
in jedem Linsenparameter resultiert. Das heißt, jeder der Linsenparameter
wie zum Beispiel Heading, Sichtfeld, etc. wird um ein kleines Inkrement
geändert
und die daraus resultierende Änderung
der Vektorlänge
wird bestimmt. Die Linsenparameter werden einer nach dem anderen
verändert,
und die resultierende Änderung
in jedem Vektor wird bestimmt.
-
Eine
Anpassung für
die Fehlervektoren nach der herkömmlichen
Methode der kleinsten Quadrate wird berechnet, um die Änderungen
der Kameraparameter zu bestimmen, welche die Fehlervektoren auf
die kleinsten Werte reduzieren. Dies ist in Block 606C angezeigt.
Anschließend
werden die Änderungen
auf die Parameter angewendet, wie in Block 606D angezeigt.
Wäre der
Effekt der Änderungen
bei den Kameraparametern auf die Fehlervektoren linear, müssten die
Schritte 606A bis 606D lediglich einmal durchlaufen
werden. Der Effekt auf die Fehlervektoren bei Änderung der Kameraparameter
ist jedoch nicht linear, und daher werden die Schritte 606A bis 606D dreimal
ausgeführt,
wie in Block 607 angezeigt. Jedes Mal, wenn die Schritte 606A bis 606D ausgeführt werden,
nähert
sich das Ergebnis den Optimalwerten mehr an. Für Fachleute versteht es sich natürlich, dass
die Auswahl von drei Mal zufällig
ist und auf Erfahrung beruht und dass eine Anzahl ausgewählt wird,
welche zu einem Ergebnis von ausreichender Genauigkeit führt.
-
Nachdem
der Prozess in den Blöcken 606A bis 606D dreimal
wiederholt wurde, wird das daraus resultierende Panorama der Bedienperson
angezeigt, um sicherzustellen, dass der Prozess erfolgreich war. Wenn
das angezeigte Panorama nicht befriedigend ist, werden die Vorgänge wiederholt.
Ist das resultierende Panorama akzeptabel, speichert die Bedienperson
die Werte der Parameter, die das befriedigende Panorama erzeugt
haben.
-
Es
hat sich gezeigt, dass, lässt
man das Programm alle Kameraparameter ändern, das Ergebnis eine relativ
große Änderung
im Sichtfeld von einer bestimmten Kamera zu einer anderen bestimmten
Kamera sein kann. Zwar werden die Bilder zusammengefügt, doch
erhält
das Bild so eine gewisse Größenverzeichnung. Dieses
potenzielle Problem kann vermieden werden, wenn die Bedienperson
die Möglichkeit
erhält,
einige der Kamera-Versatzparameter während des Anpassungsvorgangs
nach der Methode der kleinsten Quadrate auszuschließen (nicht
zu nutzen). Andere Ausführungen
stellen einen Mechanismus bereit, bei dem das Programm automatisch
bestimmt, welche Versatzparameter während des Anpassungsvorgangs
nach der Methode der kleinsten Quadrate auszuschließen sind.
-
Ein
weiteres Merkmal der vorliegenden Erfindung ist, dass die Punkte
an den Kanten des Würfels 200 faktisch
nicht rund sind. Es ist bekannt, dass, betrachtet man einen Kreis
durch ein Fischaugenobjektiv, das Bild des Kreises nicht rund ist.
Die durch ein Fischaugenobjektiv verursachte Verzeichnung wird deutlich,
wenn man 5 betrachtet. 5 zeigt
eine Anordnung von Punkten, die solcherart verzerrt wurden, dass
sie als eine quadratische Anordnung erscheinen, betrachtet man sie
durch ein Fischaugenobjektiv. Die Größe der theoretisch von einem
Fischaugenobjektiv erzeugten Verzeichnung ist Fachleuten bekannt.
Jeder in 5 abgebildete Punkt weist eine
Form auf, die rund erscheint, wenn der Punkt durch ein Fischaugenobjektiv
betrachtet wird. Dieselbe Art von Verzeichnung ist für die Punkte
auf den Panels 201 bis 212 vorgesehen. Das heißt, jeder Punkt
auf den Panels 201 bis 212 weist eine Form auf,
die rund erscheint, wenn der Punkt durch ein Fischaugenobjektiv
betrachtet wird. Dies ermöglicht
die Erkennung und Lokalisierung der Punkte durch das Programm. Es
sei angemerkt, dass die Reihen von Punkten in 5 nicht
gerade sind, das heißt,
die Reihen sind konkav. Die Form der einzelnen Punkte auf den Panels 201 bis 212 ist
verzerrt wie oben beschrieben, die Reihen der Punkte sind jedoch
gerade. Da die Reihen der Punkte auf den Panels 201 bis 212 gerade
sind, sind die Reihen von Punkten auf den Bildern, wie in 3A gezeigt,
konvex aufgrund der Wirkung des Fischaugenobjektivs. Wenn natürlich ein anderer
Linsentyp als ein Fischauge in dem System verwendet würde, hätten die
Punkte eine Verzeichnung entsprechend der Verzeichnung, die von
dem speziellen, verwendeten Linsentyp verursacht würde.
-
In
einer alternativen Ausführung
der Erfindung ist ein Programm vorgesehen, das die korrespondierenden
Punkte in benachbarten Bildern automatisch identifiziert, wodurch
die Notwendigkeit eliminiert wird, dass eine Bedienperson dem Programm
die korrespondierenden Punkte anzeigt.
-
Es
sei angemerkt, dass die Kalibrationsstruktur, die in der bevorzugten
Ausführung
verwendet wird, die Form eines Würfels
hat. Der Grund dafür
ist der, dass die Kamera 213 die Form eines Würfels hat.
Das heißt,
die Linsen auf der Kamera 213 sind an den Seiten eines
Würfels
positioniert. Wären
die Linsen anders positioniert, hätte die Struktur eine andere
Form. Mit dem Ausdruck "zu
verbindende Kante" ist
die Kante eines Bildes gemeint, das mit der Kante eines anderen
Bildes verbunden wird, um ein Panorama zu bilden. Die Struktur muss
eine solche Form aufweisen, dass (a) jede zu verbindende Kante von
zwei Linsen aufgenommen wird, und (b) das von jeder Kamera aufgenommene
Bild zumindest eine Reihe von Punkten entlang jeder zu verbindenden
Kante enthält.
In der bevorzugten Ausführung
wird jedes Kantenpanel 201 bis 212 von zwei Linsen
aufgenommen, und das von jeder Linse aufgenommene Bild enthält zumindest
eine Reihe von Punkten entlang jeder Kante. Wären die Linsen einer Kamera
in einer Konfiguration positioniert, die zu anderen Linsenpositionen
als bei Kamera 213 führt,
hätte die
Kalibrationsstruktur eine andere Form. Der wesentliche Punkt ist,
dass die Kalibrationsstruktur eine solche Form aufweisen würde, dass
(a) jede zu verbindende Kante von zwei Linsen aufgenommen wird,
und (b) das von jeder Kamera aufgenommene Bild zumindest eine Reihe
von Punkten entlang jeder zu verbindenden Kante enthält. Es ließen sich
viele Alternativen finden, welche die oben genannten Kriterien erfüllen. Um
ein einfaches Beispiel zu nennen: wenn die Kamera ein Würfel mit
zwei Linsen auf der Oberseite des Würfels wäre, von denen jede 45 Grad
aufnähme,
wäre die
Kalibrationsstruktur ein Würfel
mit einem Panel in der Mitte der Oberseite des Würfels.
-
Es
sei angemerkt, dass in der bevorzugten Ausführung die Referenzpunkte entlang
den Kanten des Würfels
die Form von Punkten aufweisen, welche als rund auf den aufgenommenen
Bildern erscheinen (nachdem sie durch ein Fischaugenobjektiv verzerrt
wurden). Alternativ können
auch Referenzpunkte mit anderen Formen verwendet werden. Beispielsweise
könnten
die Referenzpunkte auf den Panels 201 bis 212 die
Form von Stäben
besitzen. Diese Stäbe
könnten
vor-verzerrt sein, so dass sie nach Verzeichnung durch ein Fischaugenobjektiv
rechteckig erscheinen. Diese Vor-Verzerrung ist lediglich erforderlich,
um die Erkennungslogik in dem Programm einfacher zu gestalten, sie
wird für
die Funktionsweise der Erfindung nicht benötigt. Für die Referenzpunkte gibt es
eine große
Vielfalt an Formen, die alternativ zu der in der bevorzugten Ausführung verwendeten
Form genutzt werden könnten.
-
Die
Identifizierung der Kamera, welche einen bestimmten Satz von Bildern
aufgenommen hat, kann manuell aufgezeichnet werden, und anschließend kann
diese Identifizierung auf einen wie oben beschrieben bestimmten
Satz von Kameraparametern angewendet werden. In einer alternativen
Ausführung,
beschrieben mit Bezug auf 7, zeichnet
die Mehrlinsenkamera automatisch eine Identifizierung auf jedem
Bild auf.
-
Es
sei angemerkt, dass die Bilder, die von den hier beschriebenen Kameras
aufgezeichnet werden, digitaler Natur sind. Infolgedessen können die
aufgenommenen Bilder in einer Datei gespeichert werden. Die Kameraidentifizierung
wird in einem Header in dieser Datei platziert.
-
Bei
dieser Ausführung
liest das Kalibrationsprogramm diese Kameraidentifizierung aus dem
Datei-Header der Datei, welche die Bilder enthält. Das Kalibrationsprogramm
speichert anschließend
die Kameraidentifizierung zusammen mit den Kalibrationsparametern
für diese
spezielle Kamera. Das Ergebnis ist eine Tabelle mit den Kameraidentifizierungsnummern
und entsprechenden Kalibrationsparametern. Wenn ein Satz von Bildern
von dem Verbindungs-Programm gelesen wird, liest das Programm automatisch
die Kameraidentifizierung aus dem Datei-Header der Datei, welche
die Bilder enthält.
Der Prozess ist in 7 dargestellt. Zunächst, wie
in Block 761 angezeigt, zeichnet eine Kamera ein Bild von
dem Kalibrationswürfel
auf, wie oben beschrieben. Die erzeugten Einzelbilder werden zusammen
mit der Kameraidentifizierung aufgezeichnet, wie in der oben angeführten Patentanmeldung
beschrieben. Der nächste
Schritt ist in Block 762 angezeigt: Die Kamerakalibrationsparameter
werden bestimmt, wie oben beschrieben.
-
Wie
in Block 765 angezeigt, wird eine Tabelle erzeugt, welche
die Kamerakalibrationsparameter und die Kameraidentifizierung angibt.
Zu einem späteren
Zeitpunkt wird ein weiterer Satz von Bildern mit derselben Kamera
aufgenommen, wie in Block 766 angezeigt. Die Kameraidentifizierung
wird zusammen mit den Bildern aufgezeichnet. Abschließend werden
die Bilder, wie in Block 767 angezeigt, zu einem Verbindungs-Programm gesendet,
welches die Kameraidentifizierung zusammen mit den Bilddaten liest.
Das Verbindungs-Programm fragt die Tabelle ab, um die korrekten Parameter
zu finden, um die Bilder unter Verwendung der entsprechenden Parameter
miteinander zu verbinden.
-
Die
vorliegende Erfindung wurde zwar unter Bezug auf die bevorzugten
Ausführungen
aufgezeigt und beschrieben, doch wird es für Fachleute ersichtlich sein,
dass zahlreiche Veränderungen
in Bezug auf Form und Details vorgenommen werden können.
-
Es
sind zahlreiche verschiedene Ausführungen der Erfindung des Anmelders
möglich
und die Erfindung ist nicht nur auf die hier beschriebene Ausführung beschränkt.