VisionLab kamera jako měřidlo

Tohle je statická kopie kapitoly pro vyhledávače. Interaktivní verze má animované obrázky, kontrolní otázky a tlačítka, která příklad načtou do kalkulačky.

Co tenhle nástroj nepočítá, a zdroje

Nemodeluje se

  • Hledání rohů. Žádné zpracování obrazu tady není — rohy přicházejí jako souřadnice. V praxi je to polovina práce a její přesnost rozhoduje o všem ostatním.
  • Nelineární doladění. Nástroj počítá Zhangovo uzavřené řešení a končí; krok 6 jeho postupu, minimalizace reprojekční chyby přes všechny parametry, tu není. Na přesných datech je uzavřené řešení přesné, takže je vidět algebra — na zašuměných by doladění pomohlo.
  • Bundle adjustment. Společná optimalizace kamer a bodů přes mnoho pohledů. Patří sem koncepčně, ale je to samostatná disciplína.
  • Tangenciální zkreslení a rybí oko. Jen dva radiální členy, jak doporučuje Zhang. Širokoúhlá optika za zhruba 120° potřebuje jiný model, ne víc členů.
  • RANSAC a robustnost. Každé zadané korespondenci se věří. Jediný špatný pár rozhodí výsledek a nástroj to neodhalí.
  • Rolling shutter, synchronizace, teplota. Popsané v předchozí kapitole, nepočítané.

Jak se to ověřovalo

Kamera je jediná úloha v celé akademii, kde jde vyrobit dokonalá data. Zvol matici K, zvol pózy desky, promítni body přesně tím vzorcem, který se má invertovat — a pravda je známá do posledního bitu. Testy (test-vision.cjs, 120 kontrol) toho využívají naplno:

  1. Kruh na strojovou přesnost. Kalibrace na bezšumových datech musí vrátit tutéž K, ze které data vznikla — ne v toleranci, ale na 1e−9. Ověřeno na třech různých kamerách a včetně obou extrinzik.
  2. Dva nezávislé algoritmy. Hand-eye přes osy a úhly (Tsai–Lenz) a přes maticový logaritmus (Park–Martin). Nesdílejí nic než řešič soustavy.
  3. AX = XB z definice. Zvol X, zvol pohyby A, dopočítej B = X⁻¹AX — rovnice teď platí přesně — a řešič musí X najít zpátky.
  4. Identity, které nejdou ohnout. x′ᵀFx = 0 pro body ze známé dvojice kamer, undistort(distort(x)) = x, rotační matice je sama sobě nejbližší rotací.
  5. A degenerace musí selhat. Kdyby kalibrace z rovnoběžných desek prošla, netestuje se to, co si testy myslí.

Nález, kvůli kterému ta labka stojí za to. Dvěma snímky kalibrace projde jen tehdy, když jsou desky nakloněné kolem různých os. Čelní deska je degenerovaná sama o sobě a dva náklony kolem téže osy taky — soustava zůstane rank-deficientní a uzavřený tvar nemá řešení. Každý návod říká „nakloň desku různě" a žádný neřekne proč. Není to rada, je to podmínka hodnosti. V Zhangově článku je vypsaný jen případ rovnoběžných rovin (propozice 1); tenhle je o krok jemnější a vypadl až z ověřování kruhem.

Zdroje

  • Z. Zhang, „A Flexible New Technique for Camera Calibration", Microsoft Research MSR-TR-98-71, 1998, naposledy opraveno 2008. Odsud je celá kapitola o kalibraci — rovnice (2) až (8), příloha B (extrakce z B), příloha C (nejbližší rotační matice) i model zkreslení. Výchozí kamera nástroje má čísla z jeho tabulky 1. microsoft.com
    Pozor: v příloze B byl překlep opravený až v roce 2002 a v kapitole 3.3 další opravený 2008. Kopie po webu je často nemají.
  • R. Tsai, R. Lenz — hand-eye osově-úhlovou formulací.
  • F. Park, B. Martin — tentýž problém přes Lieovu teorii.
  • R. Hartley, A. Zisserman, „Multiple View Geometry" — epipolární geometrie, triangulace a normalizace v DLT.

Kam dál. KineLab vezme transformaci, kterou tady hand-eye vyrobil, a zařadí ji do řetězu rámů. RotLab je o tom, jak se ty rotace zapisují. FilterLab je o šumu v čase — tady byl statický.

Vzorce v této kapitole

— — co se nemodeluje
detekce rohů, nelineární doladění, bundle adjustment, RANSAC, rolling shutter [—] vědomé omezení