Visão estéreo - correspondência e reconstrução -

Slides:



Advertisements
Apresentações semelhantes
Presenter’s Notes Some Background on the Barber Paradox
Advertisements

Departamento de Informática
Alinhamento de nuvens de pontos
Visão computacional.
RECONSTRUÇÃO 3D Visão Computacional e Realidade Aumentada
Visão estéreo - correspondência e reconstrução -
A.4. Trabalhando com elementos de biblioteca STL – Standard Template Libraby Disponibiliza um conjunto de classes templates, provendo algoritmos eficientes.
Tópicos Especiais em Aprendizagem Reinaldo Bianchi Centro Universitário da FEI 2012.
Universidade de Brasília Laboratório de Processamento de Sinais em Arranjos 1 Subspace based Multi-Dimensional Model Order Selection in Colored Noise Scenarios.
Universidade de Brasília Laboratório de Processamento de Sinais em Arranjos 1 Adaptive & Array Signal Processing AASP Prof. Dr.-Ing. João Paulo C. Lustosa.
Avaliação Constituição dos grupos de trabalho:
Lecture 4 Pressure distribution in fluids. Pressure and pressure gradient. Hydrostatic pressure 1.
Reconstrução Tridimensional usando IPP Trabalho final do curso de Visão Computacional DCC / UFMG Apresentação: Antônio Wilson Vieira.
Ambrósio et al e-POSTER Enhanced Screening for Refractive Candidates based on Corneal Tomography and Biomechanics Renato Ambrósio Jr., MD, PhD Ruiz Alonso,
Aula Teórica 18 & 19 Adimensionalização. Nº de Reynolds e Nº de Froude. Teorema dos PI’s , Diagrama de Moody, Equação de Bernoulli Generalizada e Coeficientes.
IEEE PES General Meeting, Tampa FL June 24-28, 2007 Conferência Brasileira de Qualidade de Energia Santos, São Paulo, Agosto 5-8, Chapter 8: Procedure.
Visão estéreo - correspondência e reconstrução -.
Limit Equlibrium Method. Limit Equilibrium Method Failure mechanisms are often complex and cannot be modelled by single wedges with plane surfaces. Analysis.
Universidade de Brasília Laboratório de Processamento de Sinais em Arranjos 1 Adaptive & Array Signal Processing AASP Prof. Dr.-Ing. João Paulo C. Lustosa.
Universidade de Brasília Laboratório de Processamento de Sinais em Arranjos 1 Adaptive & Array Signal Processing AASP Prof. Dr.-Ing. João Paulo C. Lustosa.
Geometria Epipolar Correspondência a partir da calibração das câmeras ou Forma a partir de correspondências.
APPLICATIONS OF DIFFERENTIAL EQUATIONS - ANIL. S. NAYAK.
APPLICATIONS OF DIFFERENTIAL EQUATIONS PRESENTED TO:DR.SADIA ARSHAD PRESENTED BY:ASHHAD ABBAS GILANI(026) SHAHAB ARSHAD(058) RIAZ HUSSAIN(060) MUHAMMAD.
Sec 3.6 Determinants. TH2: the invers of 2x2 matrix Recall from section 3.5 :
Programação Orientada a Objetos com C++ Descrição do Trabalho Final.
Pesquisa Operacional aplicada à Gestão de Produção e Logística Prof. Eng. Junior Buzatto Case 3.
“Eles não aprendem português quanto mais inglês” Moita Lopes, L.P Oficina de Linguística Aplicada Mercado de Letras. pp
Part I Object of Plasma Physics BACK. I. Object of Plasma Physics 1. Characterization of the Plasma State 2. Plasmas in Nature 3. Plasmas in the Laboratory.
Learning english with comics …………….. Aprendendo inglês com quadrinhos.
Phases of Hackers. Module 1: Today’s Threat Landscape Module 2: Key Principles of Security Module 3: Understanding your enemy! Module 4: Phases of Hackers.
Confiabilidade Estrutural
Planejamento de Próteses Endoluminais Personalizadas Através da Reconstrução 3D de Aneurismas de Aorta Herculano De Biasi Aldo v. Wangenheim Pierre Galvagni.
Regressão Linear com Várias variáveis
Prof. Eduardo Bezerra CEFET/RJ Departamento de Informática Inteligência Artificial (GTSI1306, GCC1734) Prof. Eduardo Bezerra
Equação de Evolução e método do volume-finito.
Calibração de Câmera Como determinar o modelo e os parâmetros que transformam a radiância da cena 3D numa imagem digital.
Visão geral do Aprendizado de máquina
Prof. Eduardo Bezerra CEFET/RJ - Departamento de Informática Inteligência Artificial (GTSI1306, GCC1734) Outras Estratégias de Busca.
Continuations Programação Funcional Avançada Vítor De Araújo
Regressão Linear com Uma Variável
ERSS, 2004/05 Gestão de Requisitos
LIÇÃO DE PROGRAMAÇÃO INTERMEDIÁRIA
Teste e Qualidade de Software
FEUP/LEEC Algoritmos e Estruturas de Dados 2001/2002
Decision trees to classify multitemporal imagery
Blind Deblurring of Natural Images
Teoria de Onda Viajantes
Escoamentos Turbulentos Reativos/ Turbulent Reactive Flows
TQS - Teste e Qualidade de Software (Software Testing and Quality) Geração Automática de Casos de Teste com a Ferramenta.
Correlação Medida de ASSOCIAÇÃO LINEAR entre variáveis
Three analogies to explain reactive power Why an analogy? Reactive power is an essential aspect of the electricity system, but one that is difficult to.
Fundamentos de CG Prof Marcelo Gattass 2007-s01
Grammar Reference Simple Future Future Continuous Upgrade 2 - Unit 2
Alex F. V. Machado Curvas e Superfícies Alex F. V. Machado
Neither one of us Nenhum de nós Glady's Knight AdsRcatyb.
Aula Prática Modelagem de Duração
Reconhecimento ótico de caracteres
Tópicos Avançados em Engenharia de Software
Top-Down Parsing Teoría de Autómatas y Lenguajes Formales
Adição e Multiplicação
Introduction to Machine learning
Modelação EcoLÓGICA Aula 7 TP 5 AuLA
Rapid Deployment Solution Real Estate Q1 and Q Best Practice Flow Diagrams.
Introduction to density estimation Modelação EcoLÓGICA
Chapter Six Pipelining Harzard
R. A. R. Ramos, D. S. Rodrigues, L. C. L. Souza,
Aula 13 Goodies* * Goodies related to animals, plants and numbers…
Pesquisadores envolvidos Recomenda-se Arial 20 ou Times New Roman 21.
Redução de Dimensionalidade
Transcrição da apresentação:

Visão estéreo - correspondência e reconstrução -

Reconstrução da forma

Captura de movimento

Basic principle to recover position from stereo images: Triangulation Requires correspondence and camera calibration

Disparidade x Profundidade Mapa de profundiade Disparidade x Profundidade

Profundidade versus disparidade Z xl xr cl cr f ol or x x z z T

Uso do mapa de profundidade Cesar Palomo Larry Zitnick

Time slice, bullet-time or frozen time effects

Correpondência por semelhança Sum of Square Differences – SSD ou Correlação

Correspondência por vizinhança correlacionada

Semelhança de duas regiões WW (SSD – Sum of Squared Difference) x0+u y0+v y0 x0

Semelhança de duas regiões WW (correlação) constante constante

Semelhança de duas regiões WW (Normalização) Normalizando:

Correspondence between points With characteristics - 

Correspondence problems: Oclusion - 

Correspondence problem: lack of characterists -  Ostridge egg on a Chinese checker board 

Correspondência com luz estruturada Estéreo Ativo

Taxonomy of active range acquisition methods Transmissive Sonar Non-contact Non-optical Microwave radar Reflective Shape from focus Shape from shading Active shape acquisition Passive Shape from silhouettes Slices … Destructive Optical Radar Contact Active Triangulation Non destructive Active depth from defocus Active stereo CMM … Asla Sá et al, Coded Structure Light for 3D-Photograpy: an Overview, Revista de Informática Teórica e Aplicada, Volume IX, Número 2, Porto Alegre, 2002 Brian Curless. New Methods for Surface Reconstruction from Range Images. PhD Dissertation. Stanford University. 1997

Active stereo solution Use a light source to mark corresponding points uncalibrated light source calibrated light source One point at the time: long capture process. 

Active stereo: capturing many points Use of a digital projector as a structured light source Pattern with several elements in a way where each element can be identified univocally point coding: prone to errors stripes: more robust

Methods for light coding: temporal codification Project, in sequence, a series of slides that code in the image a binary number. n slides for 2n stripes. Two ilumination levels. Static scene. Code one axis. can be also 111 or 001! slide1 slide2 slide3 code problem: all transitions occur in the same place! Posdamer, J. L. Altschuler, M. D. Surface Measurement by Space-Encoded Projected Beam Systems. Comput. Graphics Image Process. 18, pp. 1-17, 1982.

Código de Gray  código binário 1 bit: 0 1 2 bits: 00 01 10 11 3 bits: 000 001 010 011 100 101 110 111 Código de Gray 2 bits: 00 01 11 10 3 bits: 000 001 011 010 110 111 101 100 ordem invertida

Código de Gray  código binário Código binário Código de Gray

Robust temporal codification: Gray coding transitions occur in different places Inokuchi, Seiji. Sato, Kosuki. Matsuda, Fumio. Range Imaging for 3D Object Recognition. Proc. Int. Conf. on Pattern Recognition, pp.806-808, 1984.

Example of Gray coding needs too many slides! 

http://community.middlebury.edu/~schar/papers/structlight/p1.html A 10-bit horizontal Gray-code sequence.

Color Gray coding  reduces the number of slides by 3 better yet…

(b,s)-BCSL Coding 20 Sá, Asla Medeiros. Medeiros, Esdras Soares. Carvalho, Paulo Cezar Pinto. Velho, Luiz. Coded Structured Light for 3D-Photography: an Overview. Revista de Informática Teórica e Aplicada, Vol. 9, No. 2, outubro 2002

A practical difficulty in the border detection example with the monochrome Gray code

Edge detection Projecting positive and negative slides is a robust way to recover edges. 5 1 60 40 41 21 18 16

32rgb-BCSL coding (+) (-) slide 1 slide 2

Recovering colored codes ambient light reflection factors projected light  negative slide  positive slide

Implementação do BCSL //A função getBcslStripeCode retorna o código de transição de faixa conforme a seqüência de cores fornecida. //Observe a ordem em que as cores devem ser passadas: // Primeiro as cores da imagem 1 e depois da imagem 2 // Primeiro a faixa da esquerda e depois a faixa da direita // //O código das cores e das bases é conforme a tabela abaixo. //Padrão 3_2 //base 3 //1 - vermelho //2 - verde //3 - azul //Padrão 4_2 //base 4 //4 - magenta //Padrão 6_2 //base 6 //4 - ciano //5 - magenta //6 - amarelo int getBcslStripeCode(int base, int colorLeft1, int colorRight1,int colorLeft2, int colorRight2);

teoria pode ser complicada mas a implementação é muito simples! int matrix3_2[4*9]={ 0, 3, 6, 9, 14, 17, 19, 11, 28, 34, 22, 24, 26, 29, 18, 21, 1, 31, 33, 35, 15, 4, 8, 13, 16, 23, 32, 12, 27, 5, 7, 25, 2, 10, 20, 30 }; …. int getBcslStripeCode(int base, int colorLeft1, int colorRight1,int colorLeft2, int colorRight2) { int aux1, aux2,linha,coluna; colorLeft2--; colorRight2--; colorLeft1--; colorRight1--; linha = (colorLeft1 * base) + colorLeft2; aux1 = (colorRight2 - colorLeft2); aux2 = (colorRight1 - colorLeft1); aux1 = (aux1>0)?(aux1-1):((base-1)+aux1); aux2 = (aux2>0)?(aux2-1):((base-1)+aux2); coluna = ((aux2) * (base-1)) + (aux1); switch(base){ case 3: return matrix3_2[linha *4+coluna]; break; case 4: return matrix4_2[linha *9 +coluna]; case 6: return matrix6_2[linha *25 +coluna]; default: printf("Error: invalid BCSL base\n"); return -1; } teoria pode ser complicada mas a implementação é muito simples!

Correspondência pela Geometria das Câmeras Geometria Epipolar Correspondência pela Geometria das Câmeras

Epipolar Geometry ctd. Guido Gerig

Geometria Epipolar: notação Pl pl Linha epipolar pr Pr ycl xcr ycr zcr xcl el er Or Ol zcl

Example: converging cameras

Example: motion parallel with image plane

Example: forward motion

Geometria Epipolar: relações básicas xcl ycl zcl xcr ycr zcr

Produto Vetorial forma de lembrar Computação Gráfica Interativa - Gattass 10/5/2017 Produto Vetorial forma de lembrar MGattass Transformações Geométricas

Matriz do produto vetorial Computação Gráfica Interativa - Gattass 10/5/2017 Matriz do produto vetorial MGattass Transformações Geométricas

Produto misto (revistado) h

Matriz Essencial Pl Pr P Matriz essencial ycr xcr zcr ycl xcl er el eye l P eye r Pl pl xcl ycl zcl xcr ycr zcr pr Pr el er Matriz essencial

Rotação de a para b (left to right)

Vetor do eye de b em a ycl xcl eye l Z w zcl ycr Y w xcr eye r zcr X w

Matriz essencial (código C) Matrix epiEssencialMatrix( Matrix Ra, Vector eye_a, Matrix Rb, Vector eye_b) { Matrix Rba = algMult(Rb,algTransp(Ra)); Vector eye = algMult(Ra,algSub(eye_b,eye_a); Matrix S = algVectorProductMatrix(eye); Matrix E = algMult(Rba,S); return E; }

Matriz Essencial P Pl Pr pl pr xcl ycl zcl xcr ycr zcr el er Ol T Or

Câmera para imagem

Geometria Epipolar: Matriz Fundamental

Matriz fundamental Pode ser estimada diretamente se conhecermos pelo menos oito pares de pontos correspondentes

Matriz Fundamental (código C) Matrix epiFundamentalMatrix( Matrix Ma, Matrix Ra, Vector eye_a, Matrix Mb, Matrix Rb, Vector eye_b) { Matrix E = epiEssencialMatrix(Ra,eye_a,Rb,eye_b); Matrix invMa = algInv(Ma); Matrix invMbTransp = algTransp(algInv(Mb)); Matrix tmp = algMult(invMbTransp,E); Matrix F = algMult(tmp,invMa); return F; }

Estimativa direta da Matriz Fundamental O algoritmo de 8 pontos

Estimating Fundamental Matrix The 8-point algorithm Each point correspondence can be expressed as a linear equation

Estimating Fundamental Matrix The 8-point algorithm F é a coluna de V correspondente ao menor valor singular

Estimating Fundamental Matrix The 8-point algorithm deveria ter posto 2! Seja D' = D com o menor valor singular = 0

The Normalized 8-point Algorithm Richard Hartley

The Normalized 8-point Algorithm Richard Hartley centro escale para a distância média ficar em

Retificação de Imagens

Retificação UNC-CH

Rectification ctd. before after Guido Gerig

Retificação de imagens Trucco e Verri y' yc z' zc O O' x' xc ponto principal

Retificação de imagens Trucco e Verri P ycl pl xcr ycr zcr pr xcl el T er Or Ol zcl

Retificação de imagens Trucco e Verri 1. Construa: Pr= R(Pl - T) 2. Defina: 3. Aplique: 3. Aplique:

Reconstrução

Reconstrução por triangulação

Reconstrução por triangulação

Outro processo de reconstrução Miguel Ribo, Axel Pinz, Anton L. Fuhrmann “A new Optical Tracking System for Virtual and Augmented Reality Applications”,

Reconstruction up to a Scale Factor Assume that intrinsic parameters of both cameras are known Essential Matrix is known up to a scale factor (for example, estimated from the 8 point algorithm). Steve Seitz, University of Washington

Reconstruction up to a Scale Factor Steve Seitz, University of Washington

Reconstruction up to a Scale Factor Let It can be proved that Steve Seitz, University of Washington

Reconstruction up to a Scale Factor We have two choices of t, (t+ and t-) because of sign ambiguity and two choices of E, (E+ and E-). This gives us four pairs of translation vectors and rotation matrices. Steve Seitz, University of Washington

Reconstruction up to a Scale Factor Given and Construct the vectors w, and compute R Reconstruct the Z and Z’ for each point If the signs of Z and Z’ of the reconstructed points are both negative for some point, change the sign of and go to step 2. different for some point, change the sign of each entry of and go to step 1. both positive for all points, exit. Steve Seitz, University of Washington

Proposed system: equipament 2 cameras and 1 projector (fast) 1 moving camera and 1 projector (slow)

Proposed system: 32rgb-BCSL coding positive slide positive slide negative slide left right

Where is a point in the other image? u u

One solution: (u,v) coordinates double the number of photos!

Epipolar geometry P Pl Epipolar Pr Line pl ycr ycl pr xcr xcl er el zcr xcl el er eyer eyel zcl

Epipolar correspondence

Reconstruction by triangulation: ideia

Reconstruction by triangulation: algebra

Captured data

Alinhamento de nuvens de pontos

Problema de alinhamento Dadas duas nuvens de pontos P e Q, encontrar o movimento rígido (R, t) que minimiza o erro de ajuste onde q(pi) é o ponto em Q correspondente ao ponto pi de P. Dificuldade: não se sabe, a priori, qual é o ponto em Q que corresponde a pi

Algoritmo ICP (Iterative Closest Point) inicia com estimativa grosseira para R e t a cada iteração, q(pi) é escolhido como o ponto em Q mais próximo de Rpi + t R e t são recalculados de modo a minimizar o erro de ajuste P. J. Besl and N. D. McKay, A Method for Registration of 3-D Shapes, IEEE Transactions on Pattern Analysis and Machine Intelligence, Vol. 14, No. 12, February 1992

Algoritmo ICP (Iterative Closest Point)

Algoritmo ICP (Iterative Closest Point) Também se aplica a ajuste de nuvens de pontos a modelos (por exemplo, cilindros)

Subproblema fundamental: alinhamento de pontos correspondentes Dados os pares de pontos correspondentes pi, qi (i = 1, ..., n), determinar R e t que minimizam Resolvido por Horn[88, 89]

Alinhamento de pontos correspondentes Obter os centróides p0 e q0 Definir pi’= pi – p0 , qi’= qi – q0 Definir onde

Alinhamento de pontos correspondentes Rotação: R = M(MT M) –1/2 Translação: t = q0– Rp0 Observação: se a transformação é escrita na forma R(p + t), R não muda e t é simplesmente q0– p0

Alinhamento de pontos correspondentes Pode ser incluído um fator de escala: Rotação: R = M(MT M) –1/2 Escala: Translação: t = q0– sRp0

Exemplo (2D)

Exemplo (2D) (q = 18o)

Exemplo (2D)

Variantes do ICP ICP funciona melhor quando todo ponto em P corresponde a algum ponto em Q (não é o caso no alinhamento de malhas obtidas por fotografia 3D) Diversas estratégias para melhorar o desempenho para alinhamento de malhas com superposição parcial

Variantes do ICP Tomar pontos em ambas as malhas Usar outros critérios para casamento (textura, normal) Atribuir pesos às correspondências Rejeitar outliers Alterar a medida de distância (ponto-superfície no lugar de ponto-ponto)

Cylinder model covariance matrix: centroid: axis of the points pi:

Initial cylinder adjustment tangent plane perpendicular to ê3: first guess for cc: first guess for zc:

Results of the initial cylinder adjustment

Projection of a point on a cylinder Given : Plane : Compute : Axis : 

Results

Direct measure

http://vision.middlebury.edu/stereo/data/scenes2006/