Specific Algorithms in Image-Based Measurement • • • • Camera Calibration Fundamental Matrix Estimation Camera Pose ( Tracking) Structure and Motion ( Real-Time) Orientierung, Kamerakalibrierung • Insgesamt 11 Parameter – 5 für innere Orientierung K – 6 für äußere Orientierung R, t • Evtl. zus. Par (k1,…, P1,…) für Linsenverzeichnung • Kalibrierung – Kalibrierobjekt (“calibration target”, flach oder 3D) • Punktkorrespondenzen (mind. 6 Punkte) • Lin. Gleichungssystem (überbestimmt) – Unbekannte Szene • Mehrere Ansichten (mind. 2) • Punktkorrespondenzen • Bekannte / unbekannte Kamerabewegung (“self-calibration”) Kamerakalibrierung • Algorithmus nach Tsai 1987 – 3D Kalibrier-Target, 1 Bild – 2D Target, mehrere Bilder, bekannte Translation • Algorithmus nach Zhang 1998 – 2D Target, mehrere Bilder, unbek. Bewegung • “Self-Calibration” – z.B. Algorithmus nach Pollefeys et al. 1999 Algorithmen Kamerakalibrierung Tsai’s camera calibration method revisited B.K.P. Horn 2000 A flexible new technique for camera calibration Z. Zhang 2000 Self-calibration and metric reconstruction … M. Pollefeys et al. 1999 Tsai (1) - Überblick • Aufnahme eines Kalibrier-Targets – Bekannte Geometrie – 2D, mehrere Bilder, bekannte Translation, besser 3D • Punktkorrespondenzen Target-Bild • Möglichst viele Parameter schätzen – DLT (direct linear transform) – Linear least-squares fitting wenn mehr Punkte als nötig – Keine constraints zwischen Parametern • Optimierung aller Parameter – Nonlinear optimization • Ergebnis: R, t, x0, y0, f, “horizontal scale” s, k1, k2 Tsai (2) - DLT • Schätzung des Hauptpunktes (x0,y0) x´I = xI – x0 y´I = yI – y0 • Richtung eines Bildpunktes zum Hauptpunkt – Unabhängig von f, und von radialer Verzeichnung xc xI' s f zc yc y I' f zc xc xI' s ' yI yc • Punktkorrespondenzen einsetzen, div. Tricks R, t x , t y , s • Planares Target: s kann nicht geschätzt werden Tsai (3) • Schätzung von tz,f – Mind. 1 weitere Punktkorrespondenz – Einsetzen in xI' ... f yI' ... f • Nichtlineare Optimierung aller Parameter – Minimieren der Fehler im Bild: Bildpunkte – Projektion der Target-Punkte – Levenberg-Marquardt Zhang (1) - Überblick • • • • Ebenes Kalibrier-Muster Mehrere Bilder ( 2), beliebige Bewegung Radiale Linsenverzerrung k1, k2 Vorteile: + Einfaches, billiges Target + Einfach durchzuführen + Flexibel + “Desktop 3D”, “Desktop vision system DVS” • Ergebnis: R, t, , , , u0, v0, k1, k2 Zhang (2) - Algorithmus 1. Geschlossene, analytische Lösung (DLT) 2. Optimierung - nichtlinear, maximum likelihood inklusive Linsenverzeichnung Zhang (3) - Vorgangsweise 1. Muster ausdrucken, eben aufbringen 2. Einige Bilder aufnehmen Kamera / Muster bewegen 3. Korrespondenzen in allen Bildern Punkte im Bild – im bekannten Muster 4. 11 Parameter schätzen Innere, äußere Orientierung, ohne Linsenverzeichnung 5. Optimierung aller 13 Parameter inklusive radiale Verzeichnung k1, k2 Achtung: geht nicht bei reiner Translation !! (parallele Muster-Ebenen) Zhang (4) - Homographie • Projektive Abbildung (“Homography”) Musterebene Bildebene u0 ~ ~ sm HM A 0 v0 0 0 1 o.B.d.A. : Z 0 H Ar1 r2 t 3x3, 8DoF – 1 Bild: • 6 Parameter Ä.O.: R, t • 2 constraints I.O. 2 Parameter, z.B. , – 2 Bilder: “skewless constraint” = 0 – 3 Bilder: , , , u0, v0, k1, k2 Zhang (5) – Schätzen von H sm = HM gilt nicht genau (Rauschen in den extrahierten Punkten) max. likelihood estimation H v0, (), , , , u0 A R, t Nach dieser algebraischen Lösung genügt R nicht den Eigenschaften einer Rot.Matrix Aber: Schätzwert für nachfolgende Optimierung Zhang (6) - Optimierung • R parametrisieren n • Minimieren von m || p i 1 j 1 ij ^ p ( A, Ri , ti , Pj ) || ^ n Bilder, m Punkte im Muster, p ... Projektion des Punktes Pj • Nichtlineare Minimierung Levenberg – Marquart • Benötigt Initialisierung Zhang (7) - Linsenverzeichnung • Linsenverzeichnung in der Optimierung berücksichtigen: n m || p i 1 j 1 ij ^ p( A, k1 , k 2 , Ri , ti , Pj ) || n Bilder, m Punkte im Muster, ^ p ... Projektion des Punktes Pj , gefolgt vo n Verzerrung (k1 , k 2 ) Verständnis von [Zhang 2000] • Paper (wiss. Publikation) • Viel Vorwissen nötig • Verweis auf TR für Details Wie gut ist die Kalibrierung ? • Vergleich (A, B, A+B) • Tabelle – … Geschätzte Standardabweichung, Unsicherheit des “final result” – RMS … Distanzen in Pixel zwischen detektierten Punkten und projizierten Punkten • Was bedeutet ein RMS von 0.3 pixel ? – Abhängig von der Anwendung !! A B arc cot Vergleich mit [Heikkilä 2000] Geometric camera calibration using circular control points J. Heikkilä, IEEE T-PAMI, Vol.22, No.10, 1066-1077 • Kreise sind besser als Ecken • Genauigkeit 1/50 Pixel • 3D Target mit Punktpositionen genauer als 2 m !! • Auch tangentiale Verzeichnung (P1,P2) • Besser als Zhang Pollefeys - Überblick • • • • • Metrische Rekonstruktion (Euklid.+Skalierung) Zoom + Autofokus Skew = 0, (aspect ratio = 1 or known) Beliebige, unbekannte Trajektorie Beliebige, unbekannte Szene – “use the absolute conic as a virtual calibration pattern which is always present in the scene” !! • Linearer Algorithmus für u0,v0 im Zentrum • Nichtlineare Optimierung für u0,v0 • Es gibt kritische Trajektorien ! Fundamental Matrix F • “general stereo rig” – Beliebige Hauptachsen – Unterschiedliche Kameras, unbekannte Kalibrierung K, K‘ uT ( K 1 )T S (t) R 1 ( K ' ) 1 u' 0 F ( K 1 )T S (t ) R 1 ( K ' ) 1 u Fu' 0 T • Rang 2, F e’ = 0, eT F = 0 Schätzen von F • • • • 7 Freiheitsgrade Punktkorrespondenzen 7 Punkte [Faugeras 1992] – unstabil ! 8-Punkt Algorithmus [Hartley 1995] – Stabil – Normalisierung nötig ! • Probleme: – Falsche Korrespondenzen – Ungünstige Konfigurationen ! 8-Point Algorithmus In defense of the 8-point algorithm R. Hartley, 1997 • [Longuet-Higgins 1981] 8 Punktkorrespondenzen Essential Matrix E • ebenso geeignet für F • unstabiles Verhalten durch geeignete Normierung (Translation + Skalierung) entschärfen “normalized 8-point algorithm” [Hartley 1997] • Lineare Lösung f.d. Schätzung von F 8-Point Überblick 1) Lineare Lösung - 8 Punkt-Matches u’i ui u’iT F ui = 0 F 2) “constraint enforcement” F F’ - || F – F’ || minimieren Rang F’ = 2 erzwingen, det F’ = 0 Lineare Lösung (1) u'T Fu 0 u1T (u1 , v1 ,1) u'1T (u'1 , v'1 ,1) u1u '1 F11 u1v'1 F21 u1 F31 ... F33 0 f ( F11, F21, F31, F31,..., F33 ) u1u '1 ... . . . . . u u ' ... 8 8 v'1 1 F11 . . . . 0 . . . v'8 1 F33 Af 0 A ... 8 9, Rang 8 Lineare Lösung (2) • F … 3 x 3, Rang 2, 8 Parameter (aber nur 7 Freiheitsgrade) • 2 Möglichkeiten – || f || = 1 – F33 = 1 Perfekte Daten Ungenaue Daten Lineare Lösung (3) Ungenaue Daten • A hat Rang 9, einzige Lösung f = 0 Suche f, sodass ||Af|| min. unter der Bedingung dass ||f|| = 1 Jacobi / SVD • f als Einheits-Eigenvektor zum kleinsten Eigenwert von ATA Lineare Lösung (4) Ungenaue Daten • F hat Rang 3 wie oben für A: SVD, sodass F’ mit || F – F’ || min. unter der Bedingung dass det F’ = 0 Normalized 8-Point • [Hartley, section 3]: 8-Point ist nicht immun gegen Koordinaten-Translation / -Skalierung Normalisierung nötig ! • ATA ist inhomogen in Bildkoordinaten z.B. : u T u 'T (100,100,1) Zeile in A : (10 4 ,10 4 ,10 2 ,10 4 ,10 4 ,10 2 ,10 2 ,10 2 ,1) T 8 8 4 8 8 4 4 4 Diagonale in A A : (10 ,10 ,10 ,10 ,10 ,10 ,10 ,10 ,1) Normalisierung 1) Translation t, sodass Bildmittelpunkt im Ursprung (0,0,1) 2) Skalierung a) isotrop • • durchschnittliche Distanz aller Punkte zu (0,0,1) ist 2 „durchschnittlicher Punkt“ (1,1,1) b) anisotrop “two principal moments = 1” – Experimentelle Verifikation: gleich gut 8-Point - Zusammenfassung • 8-Point unbrauchbar • Normalized 8-Point ähnlich genau wie andere (iterative) Verfahren • ~20x schneller als iterative Verfahren • Einfacher zu implementieren Camera Pose Estimation • Pose estimation ~ Schätzung der Ä.O. bei bekannter / unbekannter Szene finde R, t • “inside-out” tracking ~ camera pose in real-time • Lineare Algorithmen [Quan, Lan, 1999] • Iterative Algorithmen [Lu et al., 2000] • Punkt-basierte Methoden – Keine Geometrie, nur 3D Punkte • Modellbasierte Methoden – Objekt-Modell, z.B. CAD PnP – Perspective n-Point Problem • Kalibrierte Kamera K, C = (KKT)-1 • n Punktkorrespondenzen Szene Bild • Bekannte Szenenkoordinaten der Punkte pi, Distanzen dij = || pi – pj || • Jedes Paar von Punkten gibt einen Winkel , der in der kalibr. Kamera aus dem Bild gemessen werden kann constraint für die Entfernung ||c – pi|| PnP (2) gesucht : xi p i c , constraint : d ij2 xi2 x 2j 2 xi x j cos ij xj p j c f ij ( xi , x j ) xi2 x 2j 2 xi x j cos ij d ij2 0 kalibriert e Kamera : cos ij uTi Cu j uTi Cu i uTj Cu j PnP (3) • P3P, 3 Punkte: unterbestimmt, 4 Lösungen f12 ( x1 , x2 ) 0 f13 ( x1 , x3 ) 0 f 23 ( x2 , x3 ) 0 • P4P, 4 Punkte: überbestimmt, 6 Gleichungen, 4 Unbekannte 1,2,3 1,2,4 1,3,4 2,3,4 4 x P3P, dann gemeinsame Lösung finden • Allgemein: PnP, n Punkte PnP (4) Wenn die xi gelöst sind: 1) p’i = xi K-1 ui 2) Finde “homography” R, t für p’i pi Real-Time (1) Messen von – Pose – 3D Position – abgeleiteten Größen – mehreren Trajektorien –… in Echtzeit „Echt“-Zeit ist problemspezifisch, zB Videorate 30Hz Real-Time (2) kann erreicht werden durch: – sehr einfache Probleme – schnelle (einfache, lineare, direkte) Algorithmen – Kleine Bildausschnitte ( CMOS) – Spezialhardware –… Anwendungsbeispiel: Real-Time Tracking Online Structure + Motion