390 likes | 567 Views
Computer Vision. Presentatie titel. Technische Informatica www.hogeschool-rotterdam.nl/cmi. Rotterdam, 00 januari 2007. Les 4. Hoofdstukken 2.1 Introductie Algoritmen 2.2 Camera model en Kalibratie. Introductie Algoritmen.
E N D
Computer Vision Presentatie titel Technische Informatica www.hogeschool-rotterdam.nl/cmi Rotterdam, 00 januari 2007
Les 4 Hoofdstukken 2.1 Introductie Algoritmen 2.2 Camera model en Kalibratie
Introductie Algoritmen • De vorige hoofdstukken gingen over het technisch perspectief van beeldverwerking • Dit gedeelte gaat over hoe beelden worden verwerkt met de computer • Het wiskundig model hoe een scene afgebeeld wordt op een beeldsensor • Ook de decodering van afbeeldingen wordt uitgelegd • De modellen en de methoden vormen de basis voor de implementatie
Camera model en kalibratie • Als metingen gedaan worden m.b.v. beelden dan is het noodzakelijk om de modellen te begrijpen die scènes afbeelden op een beeld • Voor het herkennen van barcodes is het beeld voldoende • In alle andere gevallen is het wiskundig model van belang
Pinhole camera model • Het perspectief model ligt ten grondslag aan alle wiskundige modellen van camera afbeeldingen • Alle punten worden geprojecteerd in een rechte lijn op het object vlak door een oneindig klein punt (projectie centrum Z) • Het projectie centrum ligt tussen scene en het beeldvlak (sensor) • Daarom is het beeld altijd een spiegel (zie fig 2.1)
Pinhole camera model • Het beeld is 1800 gedraaid. • Het beeld wordt in de omgekeerde volgorde verzonden voor een digitale camera • De formule voor de afbeelding is : • Hierin zijn u,v de beeldcoördinaten • Hierin zijn x,y,z de coördinaten van een punt in de scene van een 3D coördinaten systeem • De oorsprong ligt in projectiecentrum • De parameter f is de cameraconstante • f is de afstand van projectiecentrum tot beeldvlak
Pinhole camera model • Normaal ligt beeldvlak achter Z ( u,v negatief) • Hier is een positieve positie gekozen(zie fig 2.2) • z is de afstand van projectiecentrum tot object vlak (scene)
Uitgebreid camera model • Een aantal termen en coordinaatsystemen: • Principe as: Dit is de rechte lijn loodrecht op het beeldvlak en door het projectiecentrum • Principe punt: Dit het snijpunt van de principe as met het beeldvlak • Beeld coordinatensysteem: Dit is een 2 dimensionaal systeem. De oorsprong is linksboven ( de u-as rechts; de v-as naar beneden) • Camera coordinatensysteem: Dit is een 3-dimensionaal systeem. De oorsprong ligt in projectiecentrum Z
Uitgebreid camera model • De x-y-as zijn parallel met de u-v-as. De z-as wijst naar voren naar de scene. • Wereld coördinatensysteem: Dit is een 3-dimensionaal systeem. Dit is het basis coördinaten systeem en kan overal zijn. (maten in mm.) • Intrinsieke camera parameters : Onafhankelijk van de wereldcoördinaten • Extrinsieke camera parameters: het model transformeert wereldcoördinaten in cameracoördinaten
Uitgebreid camera model • f is intrinsiek • tot nu toe zijn intrinsieke parameters constant en hebben we geen extrensieke parameters • Maar: • Geen ideale lens • Pixels zijn niet vierkant (fx en fy) • Principepunt ligt niet op de oorsprong van beeldcoordinaten systeem (cx en cy) • Pixel zijn rechhoekig • Het centrum van de chip ligt niet op de principe-as. cx en cy geven de afwijking aan
Uitgebreid camera model • xc en yc ,zc zijn de coordinaten van de oorsprong van Z (camera coordinaten) • fx en fy geven de factoren van de rechthoekige pixel • u,v zijn de beeldcoordinaten • Hieruit volgt: • u = cx + fx/zc. xc v = cy + fy/zc. yc
Uitgebreid camera model • Omwerken naar homogene coordinaten : • Waarbij K gelijk is aan: • De inverse K-1 is:
Uitgebreid camera model • Dan volgt hieruit: • xc=K-1u • Hierin is zc de onbekende variable • Als zc bekend is wordt ieder punt xc, yc getransformeerd in het punt u,v • Formule 2.4 kan ook als volgt geschreven worden .
Uitgebreid camera model • De camera coordinaten xc zijn gedefinieerd binnen een wereld coordinaten systeem xw • Waarbij xc een vector (xc,yc,zc) is en xw ook een vector (x,y,z) is • Het verband hiertussen is een willekeurige rotatie R en een translatie t • xc = Rxw + t (2.6) • Hiermee is de camerapositie bekend
Uitgebreid camera model • Je kunt dit ook schrijven als: • xc =(R| t) xw • Nu is: • u=K xc met u is vector (u.s, v.s , s) • s=zc is scherptediepte • De afbeelding van het beeldpunt u is • u=K(R| t) xw= Pxw • Hierin P de projectiematrix: P=K(R| t)
Uitgebreid camera model • De inverse van P bepalen • xc = Rxw + t • vermenigvuldigen met RT ( de transponeerde matrix geeft: • RT xc = RT Rxw + RT t • Nu is voor een rotatie: RT R=E • RT xc = Exw + RT t • RT xc = xw + RT t • xw = RT xc - RT t = RT(xc – t) • xc=K-1u • xw = RT(K-1u – t)
Uitgebreid camera model • xw = RT(K-1|– t) u (a) • Nu is u= Pxw • xw= P-1u (b) • Uit (a ) en (b) volgt: P-1 =RT (K-1|- t)
Camera Kalibratie • Kalibratie betekent bepalen van de intrinsieke parameters cx,cy,fx,fy en de extrensieke parameters R, t • Ook intrinsiek is de niet lineaire vervorming van de lens • Kalibratie gaat uit van een verzameling paren: • {pw,i,Pb,i} i є {1,….n} • pw,i = punt in wereld coordinaten • Pb,i = punt is de projectie op beeldvlak • Alsn>6 is het mogelijk de parameters te bepalen met • Direct Lineaire Transformatie (DLT)
Camera Kalibratie • In de praktijk meer punten • Een schaakbord patroon ( fig 2.3) is nodig • De relatieve posities zijn moeilijk te bepalen • Daarom een rechthoekige glasplaat gebruiken met bekende dikte (fig 2.5)
Camera Kalibratie • Ook 3-dimensionaal object is mogelijk (fig 2.4
Camera Kalibratie • De volgende methode wordt gebruikt: • De relatieve beweging tussen kalibratie patronen op basis van corresponderende punten wordt gebruikt (geen hardware nodig) • Elk paar pw en pb geldt: • Dit wordt omgezet naar:
Camera Kalibratie • Bij homogene coordinaten kan L12=1 worden • Dit geeft: • De paren u1,v1, en x1 ,y1, z1 (in dit n keer) zijn bekend (gemeten) . Hieruit moet L1-L11 bepaald worden. • Dan kun je onderstaande vergelijkingen opstellen (2.13)
Camera Kalibratie • Korter A.x=b • Dit zijn meer vergelijkingen dan onbekenden • Hieruit kun je de meest optimale oplossing x* bepalen met de methode van kleinste kwadraten. (Appendix B)
Camera Kalibratie • Hiervoor moet onderstaande vergelijking opgelost worden ( beide zijden met AT vermenigvuldigen geeft:) • Dit kan opgelost worden met de Cholesky decompositie (Appendix B). De oplossing is: • x* is de oplossing voor L1-L11 • Als de DLT parameters zijn bepaald kan voor elk punt Pw ook Pb bepaald worden met (2.11)
Camera Kalibratie • Ook het omgekeerde kan, als Pb bekend is kan Pw bepaald worden • De volgende vergelijking met te weinig vergelijkingen moet dan worden opgelost: • De oplossing van dit stelsel vergelijkingen is de rechte lijn g van alle mogelijke Pw punten en kan als volgt worden opgelost: • Eerst definieeren:
Camera Kalibratie • Door uit 2.16 x te elimineren krijgt men: • Er is vergelijking tekort .Deze wordt gekozen uit • G=L4-u • Met de volgende definities:
Camera Kalibratie • Met de volgende definities: • Wordt de parameter voorstelling van de rechte lijn: • Hiermee kunnen we de calibratie testen
Camera Kalibratie • Als L1-L11 bekend zijn kunnen hieruit de intrensieke en extrensieke parameters bepaald worden. Bepaling volgens Moré • Intrensiek: cx,cy,fx,fy • Extrensiek R,t
Lens vervorming • Er zijn niet-ideale lenzen , die leiden tot niet-lineaire vervorming • De belangrijkste is radiale lensvervorming (2-4 mm) ( komt door de vorm van de lens)
Lens vervorming • Tangentiale lensvervorming is minder belangrijk ( komt door de fabricage van de camera)
Lens vervorming • u,v zijn beeldcoordinaten verkregen door afbeelding van 3D naar 2D • Vervormde beeld coordinaten zijn ud en vd • ud,vd= f(u,v) • De projectie van u en v op het vlak z=1 in het camera coordinaten systeem dient als basis voor de berekeningen. • De coordinaten zijn: • Dit is dezelfde formule als (2.5) maar xc=xn , yc=yn , zc=1
Lens vervorming • xn ,yn= orginele locatie (op het beeldvlak) • xd,yd = vervormde lokatie (op het beeldvlak) • Voor de vervormde beeldcoordinaten ud,vd geldt: • Deze wordt bepaald uit (2.23) door voor u=ud en v=vd in te vullen. Deze zijn het gevolg van de vervormde locatie xd,yd, • Voor xn wordt xd en voor yn wordt yd ingevuld
Lens vervorming • Men neemt aan dat de vervorming binnen een cirkel ligt met straal r • f(r) kun je in een Taylor-reeks plaatsen • f(r)=a0 + a1r1+a2r2 +a3r3 +a4r4… enz • Nu is r klein t.o.v. de lensgrootte ,zodat termen verwaarloosd mogen worden f(r)=1 +a2r2 +a4r4 • Nu worden 2 parameters d1(a2) en d2(a4) gebruikt . Het verband tussen het vervormde punt en orginele punt is dan:
Lens vervorming • Op identieke wijze geldt voor tangentiale vervorming met d3 en d4 : • OpenCv combineert die 2:
Lens vervorming • De berekening van de vervormde beeldcoordinaten ud,vd vanuit de onvervormde coordinaten u,v is in algoritme 1: