Minimierung der essentiellen Matrix

7

Ein Problem bei der Bildverarbeitung und 3D-Rekonstruktion besteht darin, die Eigenparameter der Kamera abzurufen. Eine übliche Lösung besteht darin, ein Objekt zu verwenden, bei dem die Maße der Form vorab bekannt sind, z. B. ein Schachbrett. Das Problem bei dieser Methode ist, dass sie jedes Mal durchgeführt werden muss, wenn sich der Kameraparameter ändert, z. B. Brennweite und Vergrößerung.

Ich versuche, die in A Simple Technique for Self-Calibration beschriebene Selbstkalibrierung der Kamera zu implementieren . Die essentielle Matrix wird durch ihre zwei Singularwerte eingeschränkt. Dies kann verwendet werden, um die Eigenschaften der Kamera wiederherzustellen, ohne eine manuelle Kalibrierung durchzuführen (dh mit einem Schachbrett). Ich bin ein wenig verwirrt darüber, wie die Kostenfunktion minimiert werden kann. Folgendes verstehe ich bisher:

essentielle Matrix

E.=K.2T.F.K.1

intrinsische Matrix

K.=[αxsu00ϵαxv0001]]
  • αx Produkt aus Brennweite und Vergrößerungsfaktor [lösen]
  • ϵ Seitenverhältnis [vorausgesetzt vorausgesetzt, ich denke von Kamera- oder EXIF-Daten?]
  • u0v0 sind die Koordinaten des Hauptpunktes [0, 0 annehmen]
  • s Schrägstellung [0 annehmen]

Kostenfunktion

C.(K.ich,ich=1 ..n)=ichjn(σ1ichj- -σ2ichj)/.σ1ichj
das σs sind die Singularwerte von K.jT.F.ichjK.j

Frage: Wie wird diese Kostenfunktion minimiert?

Zusammenfassung des Algorithmus

Athena
quelle
Gute Frage. Dies könnte es wert sein, bei math.SE nachzufragen , da dies ein ziemlich reines mathematisches Problem zu sein scheint, wenn Sie die anwendungsspezifischen Details herausarbeiten können.
Jason R
Vielen Dank, ich habe ursprünglich versucht, mich zwischen den beiden Standorten zu entscheiden. Ich habe einige neue Dinge entdeckt, die ich in separaten Fragen verwenden kann.
Athene

Antworten:

3

Ich denke, dies ist ein einfaches nichtlineares Optimierungsproblem (das mit Newton-Variationen wie Trust-Region-Methoden gelöst werden muss), bei dem Sie den Jacobi nicht einmal analytisch berechnen müssen. Es scheint mir, dass das Optimierungsproblem überschrieben istK.ichund ist somit die Eingabe in die Kostenfunktion. Um die Kosten zu berechnen, berechnen Sie bei jedem Aufruf dieser Funktion grundsätzlich die Singularwerte vonK.ich und berechnen Sie die Kosten gemäß der Gleichung 4(in der Zeitung). Wie Ihr Eingabeparameter istK.werden die Ableitungen über die Elemente von berechnet K.. Das macht Ihre Optimierung4 dimensional (oder 5wenn Sie den Versatz berücksichtigen) pro Kamera. Die Ableitungen werden automatisch berechnet, und Sie müssen sich nicht darum kümmern. Wenn Sie MATLAB verwenden,lsqnonlin würde für Sie arbeiten.

Die Gewichtsberechnung wird im Artikel ausführlich erläutert, daher überspringe ich diesen Teil.

Nachdem ich das Papier noch einmal überprüft habe , habe ich festgestellt, dass die Autoren tatsächlich das von mir erwähnte numerische Differenzierungsschema verwenden. Wenn Sie möchten , tiefer verstehen , wie eine SVD zu unterscheiden, können Sie gerne prüfen , dieses eine oder diese .

Tolga Birdal
quelle