Robotok fejlesztésével - archív - kamera kalibrálás OpenCV

Robotok fejlesztésével - archív - kamera kalibrálás OpenCV
Amikor létrehoz egy mobil robot néha a kísértés, hogy felvették a látás rendszer. De mint kiderült, hogy STZ munka nem könnyű, így fogunk kezdeni egy egyszerű -, hogy építsenek egy matematikai modellt a kamera és jelentésének meghatározása az összes paraméter a modellben, a OpenCV. Ez a modell nagyon hasznos, ha azt akarjuk, hogy bizonyos mérések segítségével a fényképezőgépet.


Kezdjük a fényképezőgép típusától.

Képsík - CCD mátrix kamera;

Lyukra sík - a sík a vékony lencse

X - megfigyelhető pont;

f - fókusztávolság;

Optikai tengely - a fő optikai tengellyel.

Robotok fejlesztésével - archív - kamera kalibrálás OpenCV

Ha emlékszel az iskola során geometriai optika, perspektivikus vetítés egyenlet így néz ki:

Most vesszük figyelembe azt a tényt, hogy általában a fő optikai tengely átmegy a ponton a CCD tömb koordinátái (0, 0).

Ahol c - a koordináta a metszéspont a fő optikai tengelye a CCD.

Mi összerakható egyenletek X és Y koordinátái, tekintettel arra, hogy mivel a gyártási folyamat hibák mátrix pixelek téglalap alakú kissé.

Su és sv - pixel méretarányt.

Írunk egyenlete perspektivikus vetítés egy mátrix formában, nekik könnyebb volt dolgozni. És OpenCV barátok főleg mátrixok.


- pont koordinátáit a külső koordináta-rendszerben,

- koordinálja a vetületi pontjához

- perspektivikus vetítés mátrix-egyenlettel

Most vesszük figyelembe azt a tényt, hogy a lencse nem vékony, és torzítja a képet.

Robotok fejlesztésével - archív - kamera kalibrálás OpenCV

Ez a típusú torzítás nevezik radiális. Úgy kezeljük az alábbiak szerint:

Itt r - távolság a metszéspontja a fő optikai tengely a CCD, hogy a pont a nyúlvány; K1, K2 - radiális torzítást együtthatók.

Most, a mátrix-egyenlettel perspektivikus vetítés a formája:

Amellett, hogy a radiális torzítás létezik több tangenciális. Ez abból adódik, hogy a gép a CCD nem merőleges a fő optikai tengelyre. Ő modell, én nem kell figyelembe venni: ez nagyon kicsi. OpenCV határozza meg és a tangenciális torzítás együtthatók.

Amikor a kamera telepítése is vannak hibák - figyelembe veszi a modell és azok.

Robotok fejlesztésével - archív - kamera kalibrálás OpenCV

Az így kapott mátrix körüli forgás a kívánt kamera koordináta-rendszerben:

Vector kamera nullaponteltolásokat kívánt koordináta-rendszerben:

Most a kamera modellt, figyelembe véve a radiális torzítás és a telepítési hibák a következők:

Térjünk át a homogén koordináták:

Ott rij - megfelelő komponenseket a kapott mátrix kamera forgás a kívánt koordinátarendszer.

tx, ty, tz - alkatrészek a kamera ellensúlyozza a kívánt koordináta-rendszert.

Tehát megvan a fényképezőgép típusától.

Ez magában foglalja a belső paraméterek:

fu, fv - gyújtótávolság

cu, cv - a helyzet az optikai centrum

Külső opciók: 3 Euler szögek, 3 sugárzott a vektor komponense.

És most a meghatározására ezen paraméterek OpenCV, azaz a kamera kalibráció.

Az elv nagyon egyszerű kalibrálás - látjuk, hogy egyes képeket a sakktábla, raspoznaom sarkát. És tudta, hogyan kell ténylegesen elhelyezett sarkából a sakktábla, numerikusan kiválaszthatja a fényképezőgép beállításait. OpenCV egy sor beépített támogatása ennek a kalibrációs modell. Fogom használni OpenCV felületet C ++.

Kapcsolódó cikkek