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.

Triangulace a chyba hloubky

Dva paprsky se v prostoru protnou — až na to, že v reálných datech se neprotnou nikdy. Triangulace hledá bod, který je jim oběma nejblíž.

Hloubka z disparity

Z = f·bdb je základna, d disparita v pixelech

Vzorec je jednoduchý a jeho derivace je celý příběh stereovidění:

σZ = Z²·σdf·bnejistota roste s DRUHOU mocninou vzdálenosti
1002005001.0k2.0k5.0k0.0050.010.020.050.100.200.501.02.05.0102050100200500vzdálenost Z [mm]nejistota hloubky [mm]zvolená základnadvojnásobná základna
Na 1 m je nejistota hloubky 1,85 mm, na 2 m už 7,41 mm — čtyřnásobek. Disparita na 1 m je 108,0 px.
σZ = Z²·σdf·bnejistota roste s DRUHOU mocninou vzdálenosti
Ta druhá mocnina je celý příběh stereovidění. Základna a ohnisko pomáhají lineárně, vzdálenost škodí kvadraticky — takže stereo, které je na půl metru výborné, je na třech metrech k ničemu, a nedá se to vylepšit lepším algoritmem. Přiblížit se pomůže osmkrát víc než zdvojnásobit základnu.
Obě osy logaritmicky. Základna a ohnisko posunou křivku dolů, ale sklon je pořád dva — a ten spraví jen přiblížení.

Co z té druhé mocniny plyne

  • Stereo výborné na půl metru je na třech metrech k ničemu, a není to vada algoritmu.
  • Zdvojnásobit základnu pomůže dvakrát. Přiblížit se na polovinu pomůže čtyřikrát. Kdykoli to jde, patří kamera blíž.
  • Delší ohnisko pomůže lineárně, ale zúží zorné pole — obojí naráz mít nejde.

Velká základna má svou cenu. Čím dál od sebe kamery jsou, tím míň scény vidí obě naráz a tím víc věcí je v jedné zakrytých. U hodně šikmého pohledu navíc vypadá tentýž povrch v každé kameře jinak a párování přestane fungovat. Základna se proto nevolí co největší, ale tak, aby poměr základny ku vzdálenosti vyšel zhruba 1:5 až 1:10.

Co dělá tenhle nástroj. Triangulaci lineární metodou: každý pohled dá dvě rovnice na homogenní 3D bod a řeší se nejmenšími čtverci. Není to statisticky optimální — to je střed společné kolmice nebo dvoupohledový bundle — ale je to metoda, která se zobecňuje na víc kamer a na přesných datech je přesná, což testy ukazují.

Vzorce v této kapitole

Z — hloubka z disparity
Z = f·b/d [mm] podobné trojúhelníky
σ_Z — nejistota hloubky
σ_Z = Z²·σ_d/(f·b) [mm] derivace předchozího