Kamerakalibrering är uppgiften att erhålla kamerans interna och externa parametrar från tillgängliga foton eller videor som tagits av den.
Kamerakalibrering används ofta i det inledande skedet av att lösa många problem inom datorseende och i synnerhet i augmented reality . Dessutom hjälper kamerakalibrering att korrigera distorsion i foton och videor [1] .
Som regel används en kolumnvektor av formen för att representera 2D-koordinaterna för en punkt på planet , och för att ange positionen för en 3D-punkt i världskoordinaterna . Det bör noteras att dessa uttryck är skrivna i den utökade notationen av homogena koordinater , vilket är det vanligaste inom robotteknik och problem med omvandling av stela kroppar. Speciellt i camera obscura -modellen används kameramatrisen för att projicera punkter i tredimensionellt utrymme på bildplanet:
Den interna kalibreringsmatrisen A innehåller 5 signifikanta parametrar. Dessa parametrar motsvarar brännvidden , pixlarnas lutningsvinkel och huvudpunkten (skärningspunkten mellan bildplanet och den optiska axeln, som sammanfaller med mitten av fotografiet. I verkliga kameror är det som regel är något förskjuten på grund av optiska förvrängningar). I synnerhet, och motsvarar brännvidden uppmätt i bredden och höjden av en pixel, och motsvarar koordinaterna för huvudpunkten , och , där är lutningsvinkeln för pixeln [2] . Icke-linjära interna kalibreringsparametrar såsom distorsionskoefficienter är också viktiga, även om de inte kan inkluderas i den linjära modellen som beskrivs av den interna kalibreringsmatrisen. De flesta moderna kamerakalibreringsalgoritmer bestämmer dem tillsammans med parametrarna för den linjära delen av modellen.
De interna kalibreringsparametrarna är kameraspecifika, inte scenspecifika, så de ändras bara när motsvarande kamerainställningar ändras.
(där är en 1 × 3 vektor eller en 3 × 3 rotationsmatris, är en 3 × 1 translationsvektor) är externa kalibreringsparametrar som bestämmer koordinattransformationen som överför koordinaterna för scenpunkterna från världskoordinatsystemet till koordinatsystemet associerad med kameran [2] . Eller, motsvarande den tidigare definitionen, de externa kalibreringsparametrarna ställer in kamerans position i världskoordinatsystemet.
Externa kalibreringsparametrar är direkt relaterade till scenen som fotograferas, därför (till skillnad från interna kalibreringsparametrar) har varje foto sin egen uppsättning av dessa parametrar.
När du använder kameran fokuseras och fångas ljuset från scenen som filmas. Denna process minskar antalet dimensioner av data som tas emot av kameran från tre till två (ljus från en 3D-scen omvandlas till en 2D-bild). Därför motsvarar varje pixel i den resulterande bilden en ljusstråle i den ursprungliga scenen. Under kamerakalibrering sker en sökning efter en matchning mellan scenens tredimensionella punkter och bildens pixlar.
I fallet med en idealisk camera obscura räcker det med en projektionsmatris för att ställa in en sådan korrespondens. Men i fallet med mer komplexa kameror kan distorsionen som introduceras av linserna i hög grad påverka resultatet. Således antar projektionsfunktionen en mer komplex form och skrivs ofta som en sekvens av transformationer, till exempel: , där
Det finns flera olika tillvägagångssätt för att lösa kalibreringsproblemet.
Kalibreringsalgoritmen för en kamera, såväl som stereokalibreringsalgoritmen, är implementerade i OpenCV-biblioteket .
Huvudstegen i denna metod: