Mi a kamerakalibráció?
A kamerakalibráció olyan folyamat, amely egy kamera geometriai paramétereit becsli, hogy a képpontok összefüggésbe hozhatók legyenek a jelenet pontjaival.
Egy kamera akkor kalibrált, ha ismert a főtávolsága, a főpont eltolása és a lencsetorzítása (Remondino és Fraser, 2006). A főtávolság a fotogrammetriában használt fókusztávolság. Ez az oldal a paraméterekkel, a torzítási modellekkel, a kalibrációs módszerekkel, az eredmény ellenőrzésével és a drónos felmérésekre gyakorolt hatásával foglalkozik. Ugyanezt a szót használják a radiometriai kalibrációra is, amely másik eljárás (lásd a Geometriai és radiometriai kalibráció szakaszt).
Mit becsül a kamerakalibráció
A belső paraméterek egy kamerához és egy lencséhez tartoznak. Nem függnek a jelenettől. Ezek a fókusztávolság, az optikai középpont (főpont) és a lencsetorzítás. A USGS-útmutató belső tájékozási paramétereknek nevezi őket.
A külső paraméterek egy forgatás és egy eltolás. Ezek alakítják át a jelenet koordinátáit a kamera koordinátarendszerébe. Minden képnél mások, mert a kamera mozog.
Az OpenCV a lyukkamera-modellt (pinhole) használja. A fókusztávolságok (fx, fy) pixelben vannak kifejezve. A főpont (cx, cy) általában a képközéphez közel van. A két csoport alkotja a kameramátrixot, amelyet K vagy A jelöl:
- sor: fx, 0, cx
- sor: 0, fy, cy
- sor: 0, 0, 1
Zhang változatában van még egy tag. Ez egy ferdeségi érték, amely azt írja le, mennyire térnek el a képtengelyek a derékszögtől. Az OpenCV-ben ez nulla. A USGS-modell két tagot használ a pixelek x- és y-irányú méretkülönbségére. Remondino és Fraser szerint az affinitás- és nyírási tagok a modern digitális kameráknál ritkán jelentősek.
A szoftver a paramétereket pixelben becsli. A fókusztávolságot távolságegységben úgy kapjuk meg, hogy megszorozzuk a pixel fizikai méretével (USGS). Ha a fókusztávolság rögzített, a kameramátrix újra felhasználható. Ha a képet méretezik, a mátrix értékeit ugyanazzal a tényezővel kell skálázni. A torzítási együtthatók nem változnak a felbontással.
Lencsetorzítás
A lencse sok elemből áll, ezért a jelenet egyenes vonala nem mindig marad egyenes a képen. Ezt a hatást torzításnak nevezzük. Két fő része van.
- Radiális torzítás a képpontokat a főponttól kiinduló egyenes mentén mozgatja. Az egyenes vonalakat görbének mutatja, és a kép széle felé nő. Az OpenCV a két gyakori formát a hordótorzítás és a párnatorzítás néven írja le. A fogyasztói lencsék szokásos hordótorzítása főként az első radiális tag, a k1 (Remondino és Fraser).
- Tangenciális (decentrálási) torzítás akkor jelenik meg, ha a lencseelemek nincsenek az optikai tengelyre központosítva. Az OpenCV szerint az ok az, hogy a lencse nincs párhuzamosan az érzékelővel. Általában egy nagyságrenddel vagy többszörösen kisebb a radiális torzításnál.
Az alap OpenCV-modell öt együtthatót használ: k1, k2, p1, p2 és k3. A k tagok radiálisak, a p tagok tangenciálisak. A kiterjesztett OpenCV-modell hozzáadja a k4–k6 tagokat, négy vékony prizmatikus tagot (s1–s4) és egy dőlési tagot. Az OpenCV külön halszem-modellt is tartalmaz a nagyon széles látószögű lencsékhez.
A fotogrammetria egy nyolctagos modellt használ, amelyet Brown 1971-ben fogalmazott meg. Ennek része a főtávolság, a főpont eltolása (xp, yp), három radiális együttható és két decentrálási együttható (Remondino és Fraser). A USGS-útmutató ugyanezeket a radiális és decentrálási tagokat írja le. Az OpenCV a Brown-Conrady-modellt az egyik olyan modellként nevezi meg, amelyet racionális torzítási modellje egyesít. A másik az osztásos (division) modell.
A torzítás a lencsebeállítással változik. A radiális torzítás a fókusztávolsággal, a decentrálási torzítás a fókusszal változik, de jóval kisebb mértékben. A kalibráció csak arra a lencsebeállításra érvényes, amelynél elvégezték.
Kalibrációs módszerek
| Módszer | Mire van szükség | Hol használják |
|---|---|---|
| Síkbeli mintázat (Zhang) | Lapos mintázat, például sakktábla, különböző állásokból fényképezve | A földön, repülés előtt |
| Laboratóriumi tesztmező | Kalibrációs kalitka kódolt célpontokkal és rögzített kamerapozícióval | Kalibrációs teremben |
| Helyszíni kalibrációs pálya | Sűrű, pontos vezérlőpont-halmaz | Nagy kamerák légi platformon |
| Önkalibráció | A felmérési képek, a kötőpontok és néhány földi vezérlőpont | A legtöbb drónos térképezésben |
Síkbeli mintázat. A kamera különböző állásokból lát egy lapos mintázatot. Zhang módszerének legalább kettő kell. Zárt alakban adja az első megoldást, majd maximum-likelihood becsléssel finomítja. Az OpenCV útmutatói elméletben két felvételt elegendőnek mondják. A gyakorlatban a valódi képeken zaj van, ezért legalább 10 jó felvétel szükséges. Az OpenCV támogatja a sakktáblát, a ChArUco-táblát és a körrácsokat, a körrács kevesebb képet igényel. Ha a mintázat az első helyzetével párhuzamos marad, vagy csak eltolódik, az új kép nem ad új feltételt (Zhang, 4. szakasz). Ezért a képek között a mintázatot el kell forgatni.
Az OpenCV-kódban a mintázat a Z = 0 síkban fekszik. Ha a négyzetméret ismert, például 30 mm, az eredmény milliméterben lesz. Ha nem ismert, az eredmény egy négyzet egységében lesz.
Laboratóriumi tesztmező. A USGS egy kalibrációs kalitkát ír le három párhuzamos táblával. A táblákon retroreflexiós és kódolt célpontok vannak. A lencse végtelenre van fókuszálva. A kamera három szögállásból készít képeket, a szoftvernek pedig legalább négy, a képeken közös kódolt célpont kell.
Helyszíni kalibrációs pálya. A kalibrációs pálya sűrű, pontos vezérlőpontokat tartalmaz. Egy legkisebb négyzetes blokkkiegyenlítés adja a paramétereket. A USGS szerint ehhez légi képek kellenek a pálya felett, ami kényelmetlen lehet, és a pályát gondosan karban kell tartani.
Önkalibráció. A struktúra-mozgásból szoftver kötőpontokat keres sok képen. Egyszerre becsli a belső tájékozást, a torzítást és a külső tájékozást. A USGS szerint ez a legelterjedtebb módszer a UAS-alapú térképezésben. Azt is megmagyarázza, miért nem elég a laboratóriumi kalibráció a drónhoz. A paraméterek a laboratórium és a terep között megváltozhatnak, mert az érzékelők nem stabilak.
Az önkalibráció csak erős képhálózat esetén működik. Remondino és Fraser felsorolja: konvergáló képek, egymásra merőleges dőlésszögek és sok, jól eloszló pont. A USGS szerint a kötőpontoknak stabil felületeken kell lenniük, és legalább hat helyzetből kell látszaniuk.
Az eredmény ellenőrzése
Az újravetítési hiba mutatja meg, mennyire pontosak a paraméterek. A szoftver a becsült paraméterekkel vetíti az ismert tárgypontokat a képre. Ezután megméri a távolságot a képen megtalált pontokig. Minél közelebb van a hiba a nullához, annál pontosabbak a paraméterek (OpenCV). Az OpenCV a négyzetes középhibát (RMSE) adja eredményként.
Az önkalibrált felmérést földi pontokkal ellenőrzik. A USGS néhány földi vezérlőpontot kiveszi a kalibrációból, és ellenőrző pontokként használja. A USGS azt is javasolja, hogy a kalibrációs paramétereket és azok bizonytalanságát az adatkészlet metaadatai között tárolják.
Domborulat és a repülési terv
Az önkalibráció akkor hibázhat, ha az összes kép közel azonos irányba néz. A torzítási becslés ekkor hibás lesz, a 3D-modell pedig széles, függőleges domborulatot mutat. James és Robson (2014) azt találta, hogy ez a hiba a közel párhuzamos képalkotási irányokból és a radiális torzítás pontatlan korrekciójából ered. A domborulat lineáris összefüggésben van a radiális torzítással. A ferde képek csökkentik. Vezérlőpontok nélkül a repülési terveikben a hiba legfeljebb két nagyságrenddel csökkent.
A USGS két, egymásra merőleges irányú repülési magasságot javasol. Példájában az észak-déli repülések 50 százalékkal magasabbak, mint a kelet-nyugati repülések. A kötőpontokat így sokszor, a képkocka különböző részein fényképezik le. Ez megbízhatóbb becslést ad a belső tájékozásra.
Miért fontos a kalibráció a pontosság szempontjából
A USGS szerint pontos ortofotó-termékek jól kalibrált kamera nélkül is lehetségesek, de ehhez sűrű vezérlőpont-hálózat kell. A USGS szerint egy ilyen hálózat a projektet megfizethetetlenül drágává teszi.
A pontosság nem csak a talajfelbontástól (GSD) függ. A földi vezérlőpontoknak legalább háromszor pontosabbnak kell lenniük, mint amilyen pontosságot a képeknek el kell érniük. Vegyünk egy 1 cm GSD-jű adatkészletet. Mondjuk, a vezérlőpontok pontossága 2 cm (1 szigma) vagy jobb. Az adatkészlet pontossága ekkor kevesebb lehet, mint 6 cm (1 szigma). Az valós idejű kinematikus (RTK) megoldásokból származó vezérlőpontok pontossága körülbelül 2–3 cm (1 szigma). Ezekkel a USGS szerint a képek csak körülbelül 6 cm-ig ellenőrizhetők.
Geometriai és radiometriai kalibráció
A geometriai kalibráció a fénysugár útját írja le a kameráig. A radiometriai kalibráció külön eljárás. A szenzor nyers értékeit (digitális számokat) a célpont fizikai tulajdonságaihoz köti, például a sugárzási sűrűséghez (radianciához), a reflektanciához vagy a hőmérséklethez. A USGS szerint enélkül a digitális számoknak nincs jelentésük a tudományos elemzéshez. A geometriai kalibráció ezt a kapcsolatot nem adja meg.
Használat a drónos vizsgálatban
Egy repülőtér drónos felmérése távolságokat, területeket és pozíciókat mér a képekből. A képek geometriáját a kamerakalibráció adja, ezért ez minden, a képekből végzett mérést befolyásol. Az oldal forrásai nem írnak elő repülőtérre vonatkoző kalibrációs követelményt a vizsgálókamerákra. Felmérésnél három dolgot kell megkérdezni a szolgáltatótól:
- Melyik módszert használták, önkalibrációt vagy laboratóriumi kalibrációt.
- Hogyan ellenőrizték az eredményt, például olyan ellenőrző pontokkal, amelyek nem vettek részt a kalibrációban.
- Hol tárolják a kalibrációs paramétereket és azok bizonytalanságát.
Gyakran Ismételt Kérdések
- Mi a kamerakalibráció?
- A kamerakalibráció olyan folyamat, amely egy kamera geometriai paramétereit becsli, hogy a képpontok összefüggésbe hozhatók legyenek a jelenet pontjaival. Egy kamera akkor kalibrált, ha ismert a főtávolsága, a főpont eltolása és a lencsetorzítása (Remondino és Fraser, 2006).
- Melyek a kamerakalibráció paraméterei?
- Három csoport van. A belső paraméterek a fókusztávolság (fx, fy) és a főpont (cx, cy), amelyeket 3x3-as kameramátrixként írnak le. A lencsetorzítási együtthatók az alap OpenCV-modellben k1, k2, p1, p2 és k3. A külső paraméterek egy forgatás és egy eltolás. Ezek helyezik el a kamerát a jelenetben, és minden képnél változnak.
- Melyek a kamerakalibráció módszerei?
- Négy van. Egy síkbeli mintázatot, például sakktáblát különböző állásokból fényképeznek (Zhang módszere). Kódolt célpontokkal ellátott laboratóriumi tesztmezőt rögzített pozíciókból fényképeznek. Sűrű vezérlőpontokkal rendelkező helyszíni kalibrációs pályát repülnek be. Az önkalibráció a felmérési képekből becsüli a paramétereket, és ez a leggyakoribb módszer a drónos térképezésben.
- Hány képre van szükség sakktáblás kalibrációhoz?
- A Zhang-módszerhez egy síkbeli mintázat legalább két állása kell. Az OpenCV útmutatója legalább 10 jó képet kér, mert a valódi képekben zaj van. A mintázatot képek között el kell forgatni, mert egy párhuzamos mintázatú második kép nem ad új feltételt.
- Kalibrálható-e a drónkamera a felmérés közben?
- Igen. A legtöbb struktúra-mozgásból (structure from motion) szoftver a felmérési képekből becsüli a kamera paramétereit. Ez az önkalibráció, és az USGS felhasználói jellemzően erre támaszkodnak. A közel párhuzamos képek hibás torzítási becslést és domborodó felületet eredményezhetnek. Ferde képek hozzáadása csökkenti ezt a hibát (James és Robson, 2014).
- Mi a Brown-Conrady torzítási modell?
- Ez egy lencsetorzítási modell, amely radiális és decentrálási (tangenciális) tagokat tartalmaz. Brown (1971) fogalmazta meg a nyolctagos fotogrammetriai változatot. Három radiális együtthatója, két decentrálási együtthatója, a főtávolsága és a főpont eltolása van. Az OpenCV a Brown-Conrady-modellt racionális torzítási modelljének egyik részeként nevezi meg.
- Hogyan írható fel a kameramátrix a fókusztávolságból és a főpontból?
- A fókusztávolságok a főátlóba kerülnek, a főpont pedig az utolsó oszlopba. A mátrix [fx 0 cx / 0 fy cy / 0 0 1], minden érték pixelben. Legyen fx = fy = 721.5, a főpont pedig (609.6, 172.9). Ekkor a mátrix [721.5 0 609.6 / 0 721.5 172.9 / 0 0 1].
- Hogyan kalibrálható kamera C++-ban az OpenCV-vel?
- Az OpenCV C++-útmutató minden képben megkeresi a mintázat sarkait a cv::findChessboardCorners vagy a cv::findCirclesGrid függvénnyel. Ezután a cv::calibrateCameraRO függvényt hívja, amely visszaadja a kameramátrixot, a torzítási együtthatókat és az átlagos újravetítési hibát. A mintaprogram a samples/cpp/tutorial_code/calib3d/camera_calibration könyvtárban van.
Hivatkozások
- opencv-calibration
- Camera Calibration (OpenCV-Python tutorial) OpenCV
- opencv-calibration-cpp
- Camera calibration With OpenCV (C++ tutorial) OpenCV
- opencv-calib3d
- Camera Calibration and 3D Reconstruction (calib3d module) OpenCV
- zhang-2000
- A Flexible New Technique for Camera Calibration (MSR-TR-98-71) Microsoft Research
- remondino-fraser-2006
- Digital camera calibration methods: considerations and comparisons ISPRS Commission V Symposium, IAPRS Volume XXXVI, Part 5, pp. 266-272
- usgs-ofr-2023-1033
- Guidelines for Calibration of Uncrewed Aircraft Systems Imagery (Open-File Report 2023-1033) U.S. Geological Survey
- james-robson-2014
- Mitigating systematic error in topographic models derived from UAV and ground-based image networks Earth Surface Processes and Landforms 39(10), 1413-1420 (DOI 10.1002/esp.3609)
Ez egy referenciabejegyzés. A TarmacView drónos ellenőrzési szolgáltatásokat nyújt, és nem árulja az ebben a szószedetben leírt felszereléseket vagy anyagokat.
