modelodecameras& ecalibração&geraldo/vc/18.cameras.pdf · distânciafocal •...

31
Modelo de Cameras e Calibração Prof. Dr. Geraldo Braz Junior Slides baseados em nas notas de aula de FeiFei li

Upload: dokhanh

Post on 28-Jan-2019

216 views

Category:

Documents


0 download

TRANSCRIPT

Modelo  de  Cameras  e  Calibração  Prof.  Dr.  Geraldo  Braz  Junior  

Slides  baseados  em  nas  notas  de  aula  de  Fei-­‐Fei  li    

Cameras  reais  

2  

Distância  Focal  • do  representa  a  distância  da  lente  para  o  objeto  • di  representa  a  distância  da  lente  para  o  plano  da  imagem  (distancia  focal  f)  

3  

Simpli8icações  • do  >>  di  • plano  da  imagem  pode  ficar  localizado  sobre  a  distância  focal  

• Simplificação:  posiciona  o  plano  da  imagem  sobre  o  plano  da  lente  para  não  obter  imagens  inverIdas  •  inverte  o  sinal  de  f  

4  

Pinhole  

5  

plano de projeção

centro de projeção

Projeção cônica

caixa

filme

objeto pinhole

raios de luz

imagem

Câmera

“pinhole”

Notação  

6  ZYfy

ZXfx == ,

xc

yc

zc p’ ⎟

⎟⎟

⎜⎜⎜

=

ZYX

P

y'

x'

ZYfy

ZXfx −=−= ,

Modelo  Visão  

Notação  

7  

Como  relacionar  3D  -­‐>  2D?  • Coordenadas  homogêneas  

8  

Então  precisa  aplicar  projeção!  

9  

M  é  a  matriz  ideal  • Assume  que:  • tamanho  de  pixel  uniforme  • centro  óIco  em  (0,0)  • sem  distorções  • sem  rotações  • camera  em  (0,0,0)  

10  

Analisando:  decompondo  

11  K  é  conhecido  como  parâmetros  intrinsecos  da  câmera  

Incluindo  centro  variável  

12  

Pixels  retangulares  

13  

Minimizando  Distorção  

14  

Parâmetros  Intrinsecos  

15  

Parâmetros  Extrínsecos:  Rotação  e  Translação  

16  

Parâmetros  Extrínsecos  

17  

Como  estimar?  

• São  ao  todo  5+9+3  variáveis  • Simplificações  aplicáveis?  

18  

Projeção  ortográ8ica  • Aplicáveis  de  acordo  com  a  aplicação  • distância  infinita,  projeção  paralela  

19  

Projeção  Ortográ8ica  Escalada  • Dimensões  dos  objetos  são  pequenas  se  comparadas  com  a  distância  •   paralela  

20  

E  se  não  for  ortogonal?  • Calibração  de  câmera  •  Problema:  obter  os  parâmetros  extrínsecos  (R,  T)  e  intrínsecos  (K)  da  transformação  projeIva  de  câmera.  •  Dados:  n  pares  de  pontos  correspondentes  (Pi,  pi)  na  cena  e  na  imagem.  

 

21  

Calibração  de  câmeras  • Calibração  ↔  esImação  de  parâmetros  →  oImização  • Alguns  métodos:  Tsai,  Zhang  

22  

2,,

,,|)(|min iTRKi

TRKPfp −∑

pontos da cena

pontos da imagem

projeção (função não linear)

Calibração  com  Opecv  • Usa  uma  função  básica  com  o  padrão  de  um  tabuleiro  de  xadrez  (marcador)  • Necessita  de  várias  projeções  (Zhang)  

23  

Detectando  o  tabuleiro  vector<cv::Point2f>  imageCorners;  Size  boardSize(6,4);    

bool  found  =  findChessboardCorners(image,  boardSize,  imageCorners);    -­‐>  imagem  com  o  tabuleiro  num  ponto  de  vista  -­‐>  boardSize:  quantos  cantos  deseja  detectar  

24  

Detectando  o  tabuleiro  • drawChessboardCorners  (image,  boardSize,  imageCorners,  found)  

25  

Para  calibrar  • Deve  inserir  um  conjunto  de  imagens  como  esta  

• Duas  listas  1.  pontos  num  modelo  ideal  em  3D  2.  pontos  localizados  na  imagem  

• As  duas  configuram  a  correspondência  do  modelo  para  a  imagem  

26  

Calibrando  vector<Mat>  rvecs,  tvecs;    

calibrateCamera(    objectPoints,    //3D    imagePoints,    //  pontos  na  imagem    imageSize,        //  tamanho  da  imagem    cameraMatrix,  //  output  parâmetros  intrinsecos    distCoeffs,      //  output  matriz  de  distorção    rvecs,  tvecs,  //  parâmetros  extrínsecos    flag);                //    

27  

Reduzindo  distorção  initUndistortRec9fyMap(  

 cameraMatrix,    //  parâmetros  intrinsecos    distCoeffs,  //  parâmetros  de  distorção    cv::Mat(),    //  opcional    cv::Mat(),    //  opcional  

                       image.size(),    //  tamanho  da  imagem  distorcida                          CV_32FC1,            //  Ipo  de  saida                          map1,  map2);      //  funções  de  mapeamento  para  x  e  y    

remap(image,  undistorted,  map1,  map2,                    cv::INTER_LINEAR);  //  Ipo  de  interpolação  

28  

29  

Outras  abordagens  –  Use  keydetector  

30  

Some  o  Opengl    

31