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.

Zhangova kalibrace

Do roku 1998 se kamery kalibrovaly na drahém trojrozměrném etalonu. Zhang ukázal, že stačí vytisknout šachovnici na papír a párkrát s ní pohnout před kamerou — a je to dodnes to, co dělá každá knihovna, která to umí.

Odkud se vezme K, když se nezná ani jedna póza

Homografie sama o sobě nestačí: má osm stupňů volnosti a póza jich spotřebuje šest, takže na vnitřní parametry zbudou jen dva. Ale ty dva jsou zadarmo z každého snímku a berou se z jediného faktu — r₁ a r₂ jsou ortonormální:

h₁ᵀ K⁻ᵀK⁻¹ h₂ = 0      h₁ᵀ K⁻ᵀK⁻¹ h₁ = h₂ᵀ K⁻ᵀK⁻¹ h₂Zhang, rov. (3) a (4)

Označ B = K⁻ᵀK⁻¹. Ta matice je symetrická, takže má šest nezávislých prvků, a obě rovnice jsou v nich lineární. Z n snímků vznikne soustava 2n×6, jejíž řešení je vlastní vektor nejmenšího vlastního čísla. Z B se pak K vytáhne uzavřenými vzorci — Zhangova příloha B.

Proč zrovna ortonormalita. B je obrazem takzvané absolutní kuželosečky — objektu, který se projekcí nemění a nese v sobě všechnu metrickou informaci o kameře. Geometricky ty dvě rovnice říkají, že kruhové body roviny leží na obrazu té kuželosečky. Prakticky stačí vědět, že jsou to jediné dvě věci, které jde o kameře zjistit z jednoho pohledu na rovinu, a že jsou v šesti neznámých lineární — což je důvod, proč to má uzavřené řešení a nepotřebuje počáteční odhad.

Celý postup

  1. Vytiskni šachovnici a nalep ji na něco rovného.
  2. Nasnímej ji v různých natočeních — příští kapitola říká, jak různých.
  3. Najdi rohy (to tenhle nástroj nedělá, dostane je zadané).
  4. Z každého snímku spočítej homografii.
  5. Slož soustavu, vyřeš b, vytáhni K.
  6. Z K a homografií dopočítej pózy.
  7. Odhadni zkreslení a nakonec všechno dolaď nelineárně na reprojekční chybu.

Tenhle nástroj dělá kroky 4 až 6, tedy uzavřené řešení, a to nelineární doladění vynechává — a je to vědomé. Na přesných datech je uzavřené řešení přesné, což testy ukazují na 1e−9, takže je z něj vidět algebra bez toho, aby ji zakrývala optimalizace. Na zašuměných datech by doladění pomohlo a poslední kapitola to přiznává.

Vzorce v této kapitole

B — obraz absolutní kuželosečky
B = K⁻ᵀK⁻¹ [—] Zhang, rov. (5)
— — dvě omezení z jedné homografie
h₁ᵀBh₂ = 0, h₁ᵀBh₁ = h₂ᵀBh₂ [—] Zhang, rov. (3)–(4)
v_ij — řádek soustavy
hᵢᵀBhⱼ = v_ijᵀ·b [—] Zhang, rov. (7)
α — extrakce z B
v₀ = (B₁₂B₁₃−B₁₁B₂₃)/(B₁₁B₂₂−B₁₂²), α = √(λ/B₁₁) [px] Zhang, příloha B