Post on 04-Jan-2016
description
Implementação de um dispositivo de Implementação de um dispositivo de rastreamento Óptico com 6 graus de rastreamento Óptico com 6 graus de
liberdadesliberdades
Manuel Eduardo Loaiza FernándezManuel Eduardo Loaiza FernándezOrientador: Prof. Marcelo GattassOrientador: Prof. Marcelo Gattass
Co - Orientador: Prof. Alberto Barbosa RaposoCo - Orientador: Prof. Alberto Barbosa Raposo
MotivaçãoMotivação
Tem se dispositivos usados para Tem se dispositivos usados para permitir ao usuário uma interação permitir ao usuário uma interação com um cenário virtual.com um cenário virtual.
Os dispositivos baseados em Os dispositivos baseados em diferentes tecnologias: sonoras, diferentes tecnologias: sonoras, magnéticas, mecânicas, ópticas.magnéticas, mecânicas, ópticas.
Procura se um dispositivo que Procura se um dispositivo que permita melhorar flexibilidade em permita melhorar flexibilidade em referencia aos movimentos naturais referencia aos movimentos naturais que o usuário quisera fazer.que o usuário quisera fazer.
ObjetivoObjetivo
A Implementação de um dispositivo de A Implementação de um dispositivo de rastreamento óptico para a detecção do rastreamento óptico para a detecção do movimento de um grupo de marcadores movimento de um grupo de marcadores em seus 6 graus de liberdade. em seus 6 graus de liberdade.
A Implementação deve detectar e mostrar na tela as translações (3 graus de liberdade ) e rotações (3 graus de liberdade) feitas
pelo grupo de marcadores.
Tópicos ChaveTópicos Chave
Captura e processamento da Imagem.Captura e processamento da Imagem.
Calibração de câmeras.Calibração de câmeras.
Reconhecimento de formas.Reconhecimento de formas.
Correlação entre marcadores. Correlação entre marcadores.
Reconstrução da posição 3D de cada marcador.Reconstrução da posição 3D de cada marcador.
Equipamento Utilizado de para o Equipamento Utilizado de para o TrabalhoTrabalho
Para a Para a implementação implementação utilizamos 3 câmeras utilizamos 3 câmeras web, CCD e CMOS.web, CCD e CMOS.
E marcadores E marcadores esféricos.esféricos.
Pipeline (Seqüência de Trabalho)Pipeline (Seqüência de Trabalho)
Captura da Imagem.Captura da Imagem.
Processamento da imagem.Processamento da imagem.
Reconhecimento e identificação de pontos de Reconhecimento e identificação de pontos de referencia para calibração das câmeras.referencia para calibração das câmeras.
Calibração das câmeras.Calibração das câmeras.
Detecção dos marcadores dentro das imagens Detecção dos marcadores dentro das imagens capturadas.capturadas.
Pipeline (Seqüência de Trabalho)Pipeline (Seqüência de Trabalho)
Correlação entre os marcadores detectados nas Correlação entre os marcadores detectados nas diferentes imagens capturadas.diferentes imagens capturadas.
Reconstrução 3D dos marcadores detectados.Reconstrução 3D dos marcadores detectados.
Seguimento e detecção dos movimentos do Seguimento e detecção dos movimentos do grupo de marcadores. grupo de marcadores.
Captura das ImagensCaptura das Imagens
O primeiro passo é a captura das imagens de O primeiro passo é a captura das imagens de vídeo dos dispositivos.vídeo dos dispositivos.
Captura das ImagensCaptura das Imagens
A captura é feita a A captura é feita a uma resolução de uma resolução de 320 x 240 pixels.320 x 240 pixels.
O frame rate das 3 O frame rate das 3 câmeras esta numa câmeras esta numa media de 29 – 30 fps.media de 29 – 30 fps.
Captura das ImagensCaptura das Imagens
Observações:Observações:
A resolução ficou restrita a resolução 320 A resolução ficou restrita a resolução 320 x 240,porque em base as experiências x 240,porque em base as experiências feitas, aumentar a resolução diminuía o feitas, aumentar a resolução diminuía o frame rate global a metade 15fps.frame rate global a metade 15fps.
As câmeras estão conectadas a um só As câmeras estão conectadas a um só computador pelas portas USB.computador pelas portas USB.
Processamento das imagensProcessamento das imagensAplicação de filtros sobre as imagens com a Aplicação de filtros sobre as imagens com a finalidade de deixar só a informação relevante finalidade de deixar só a informação relevante para nossa implementação.para nossa implementação.
Grey Scale Gaussiano
Inversão Threshold
Processamento das imagensProcessamento das imagensFiltro Gauss : foi utilizado para suavizar a imagem Filtro Gauss : foi utilizado para suavizar a imagem resolvendo possíveis problemas de sombras e brilhos resolvendo possíveis problemas de sombras e brilhos que se vem dentro do espaço capturado. que se vem dentro do espaço capturado.
Threshold : foi utilizado para binarizar a imagem, em Threshold : foi utilizado para binarizar a imagem, em base ao contraste que gera entre as escalas de base ao contraste que gera entre as escalas de cinzas que se tem para o fundo o as que se tem para cinzas que se tem para o fundo o as que se tem para os marcadores.os marcadores.
Processamento das imagensProcessamento das imagens
A partir das imagens em binário A partir das imagens em binário extraímos as áreas brancas que extraímos as áreas brancas que aparecem nela. aparecem nela. A estratégia é extrair o centro das A estratégia é extrair o centro das áreas brancas como pontos de áreas brancas como pontos de referencia em coordenadas da referencia em coordenadas da imagem.imagem.A extração é feita por um A extração é feita por um algoritmo de aproximação de algoritmo de aproximação de elipses, aplicado as áreas brancas elipses, aplicado as áreas brancas encontradas da imagem e cujo encontradas da imagem e cujo centro é o extraído como ponto de centro é o extraído como ponto de referencia.referencia.
Reconhecimento de Pontos para Reconhecimento de Pontos para CalibraçãoCalibração
A partir de pontos de referencia se faz a A partir de pontos de referencia se faz a calibração das 3 câmeras web em relação a calibração das 3 câmeras web em relação a um único mundo de referencia.um único mundo de referencia.
Reconhecimento de Pontos para Reconhecimento de Pontos para CalibraçãoCalibração
O padrão proposto inicialmente foi o seguinte:O padrão proposto inicialmente foi o seguinte:
Reconhecimento de Pontos para Reconhecimento de Pontos para CalibraçãoCalibração
Os pontos de referencia são os centro das áreas Os pontos de referencia são os centro das áreas brancas que se tem na imagem.brancas que se tem na imagem.As vantagens do padrão, que utilizo, é a fácil As vantagens do padrão, que utilizo, é a fácil identificação e correlação que se pode fazer dos pontos identificação e correlação que se pode fazer dos pontos de referencia.de referencia.A estratégia usada para identificar os pontos que eles A estratégia usada para identificar os pontos que eles aparecem na imagem com suas coordenadas Y sempre aparecem na imagem com suas coordenadas Y sempre crescente um em relação ao outro.crescente um em relação ao outro.
Reconhecimento de Pontos para Reconhecimento de Pontos para CalibraçãoCalibração
Observações:Observações:
O padrão permite capturar pontos bem O padrão permite capturar pontos bem distribuídos nos três planos do mundo de distribuídos nos três planos do mundo de referencia.referencia.
O padrão não precisa de técnicas O padrão não precisa de técnicas adicionais para ser reconhecido. adicionais para ser reconhecido. (algoritmo de linhas, cantos, etc.)(algoritmo de linhas, cantos, etc.)
A captura do padrão é feita só uma vez. A captura do padrão é feita só uma vez.
Calibração das CâmerasCalibração das Câmeras
Se calibrara as câmeras a partir dos pontos de Se calibrara as câmeras a partir dos pontos de referencia.referencia.Para a calibração das câmeras se utilizara o Para a calibração das câmeras se utilizara o método TSAI 3D noncoplanar.método TSAI 3D noncoplanar.
u
v
Yw(mm)
Xw(mm)
Zw(mm)
Pixels
Calibração das CâmerasCalibração das Câmeras
A calibração da câmera consiste na estimativa A calibração da câmera consiste na estimativa dos parâmetros extrínsecas e intrínsecos de dos parâmetros extrínsecas e intrínsecos de nossa câmera.nossa câmera.Os parâmetros extrínsecos estão compostos por Os parâmetros extrínsecos estão compostos por uma matriz rotação e um vetor de translação, uma matriz rotação e um vetor de translação, que nos ajudam a levar coordenadas do mundo que nos ajudam a levar coordenadas do mundo a coordenadas da câmera.a coordenadas da câmera.Os parâmetros intrínsecos estão compostos por Os parâmetros intrínsecos estão compostos por vários fatores internos da câmera, que nos vários fatores internos da câmera, que nos ajudam a levar coordenadas do mundo da ajudam a levar coordenadas do mundo da câmera para coordenadas na imagem 2D.câmera para coordenadas na imagem 2D.
Calibração das CâmerasCalibração das CâmerasMatriz de Parâmetros Extrínsecos Matriz de Parâmetros Extrínsecos
T
z
y
x
PR
Z
Y
X
P wc
Calibração das CâmerasCalibração das Câmeras
O método TSAI NonCoplanar é O método TSAI NonCoplanar é utilizado para fazer o calculo utilizado para fazer o calculo dos parâmetros extrínsecos de dos parâmetros extrínsecos de nossa câmera.nossa câmera.Para este processo se utiliza os Para este processo se utiliza os pontos de referencia, em pontos de referencia, em coordenadas da imagem que coordenadas da imagem que capturamos, e que estão capturamos, e que estão corretamente em correlação, corretamente em correlação, com seus equivalentes em com seus equivalentes em coordenadas no mundo.coordenadas no mundo.
11, yx
22 , yx
33 , yx
NN yx ,
www ZYX111
,,
www ZYX222
,,
www ZYX333
,,
www
NNNZYX ,,
Calibração das CâmerasCalibração das Câmeras
Assim o método TSAI NonCoplanar tentará Assim o método TSAI NonCoplanar tentará montar um sistema de equações com o qual montar um sistema de equações com o qual calculara os elementos que compõem a matriz calculara os elementos que compõem a matriz de rotação e o vetor de translação, parâmetros de rotação e o vetor de translação, parâmetros extrínsecos. extrínsecos.
zwww
ywww
yi
zwww
xwww
xi
TZrYrXr
TZrYrXrfy
TZrYrXr
TZrYrXrfx
iii
iii
iii
iii
333231
232221
333231
131211
Calibração das CâmerasCalibração das Câmeras
ywww
i
yz
www
xwww
i
xz
www
TZrYrXry
fTZrYrXr
TZrYrXrx
fTZrYrXr
iiiiii
iiiiii
232221333231
131211333231
xwww
xiywww
yi TZrYrXrfyTZrYrXrfx iiiiii 131211232221
xiw
iw
iw
iyiw
iw
iw
i TyrZyrYyrXyTxrZxrYxrXx iiiiii 131211232221
xiw
iw
iw
iyiw
iw
iw
i TyrZyrYyrXyTxrZxrYxrXx iiiiii 131211232221
1
Calibração das CâmerasCalibração das Câmeras
087654321 vyvZyvYyvXyvxvZxvYxvXx iw
iw
iw
iiw
iw
iw
i iiiiii
xw
13w
12w
11w
33w
32w
31 TZrYrXrZrYrXr iiiiii i
x
x
fzT
T131211c rrri
T131211c rrrj
T131211c rrrk
xy TvTv
rvrv
rvrv
rvrv
84
137233
126222
115211
0v0Av
Calibração das CâmerasCalibração das CâmerasAssim conseguimos achar o seguinte:Assim conseguimos achar o seguinte: Matriz de RotaçãoMatriz de Rotação Vetor TranslaçãoVetor Translação
z
y
x
w
w
w
c
c
c
T
T
T
Z
Y
X
rrr
rrr
rrr
Z
Y
X
333231
332221
131211
1333231
232221
131211
w
w
w
z
y
x
c
c
c
Z
Y
X
Trrr
Trrr
Trrr
Z
Y
X
Definindo a Matriz de Parâmetros Definindo a Matriz de Parâmetros Extrínsecos :Extrínsecos :
Calibração das CâmerasCalibração das CâmerasMatriz de Parâmetros IntrínsecosMatriz de Parâmetros Intrínsecos
Calibração das CâmerasCalibração das Câmeras
Os parâmetros intrínsecos são aqueles que Os parâmetros intrínsecos são aqueles que estão em relação às características próprias do estão em relação às características próprias do hardware com o qual trabalhamos.hardware com o qual trabalhamos.Assim precisamos das seguintes informações:Assim precisamos das seguintes informações: dxdx e e dydy , que é a distancia horizontal e vertical entre , que é a distancia horizontal e vertical entre
os centros das células contidas no chip CCD dentro os centros das células contidas no chip CCD dentro da câmera.da câmera.
NcxNcx, que é o numero de células contidas numa fila no , que é o numero de células contidas numa fila no chip CCD.chip CCD.
NfxNfx, que é o numero de pixels contido numa fila na , que é o numero de pixels contido numa fila na imagem.imagem.
Calibração das CâmerasCalibração das Câmeras
Para as câmeras com as que Para as câmeras com as que trabalhamos temostrabalhamos temosCâmera Câmera Logitech QuickCam Pro Logitech QuickCam Pro - 4000- 4000:: Modelo do chip: Modelo do chip: Sony ICX098AK, Sony ICX098AK,
Sony ICX098BQ, Sharp LZ24BP.Sony ICX098BQ, Sharp LZ24BP. Na horizontal Na horizontal dxdx = 0.0056 µm, na = 0.0056 µm, na
vertical vertical dydy = 0.0056 µm. = 0.0056 µm. O número de pixels efetivo utilizado O número de pixels efetivo utilizado
dentro do chip foi dentro do chip foi NcxNcx = 659 (pixels), = 659 (pixels), e o tamanho do frame buffer com o e o tamanho do frame buffer com o qual trabalha a câmera é de qual trabalha a câmera é de NfxNfx = = 640 (pixels).640 (pixels).
Calibração das CâmerasCalibração das Câmeras
Câmera Câmera Creative Webcam Nx -ProCreative Webcam Nx -Pro:: Modelo do chip:Modelo do chip: Hyundai HV7131B. Hyundai HV7131B. Na horizontal Na horizontal dxdx = 0.008 µm, na vertical = 0.008 µm, na vertical
dydy = 0.008 µm. = 0.008 µm. O número de pixels efetivo utilizado O número de pixels efetivo utilizado
dentro do chip foi dentro do chip foi NcxNcx = 642 (pixels), e = 642 (pixels), e o tamanho do frame buffer com o qual o tamanho do frame buffer com o qual trabalha a câmera é de trabalha a câmera é de NfxNfx = 640 = 640 (pixels).(pixels).
Calibração das CâmerasCalibração das Câmeras
Com estes valores podemos criar nossa Com estes valores podemos criar nossa matriz de parâmetros intrínsecos da matriz de parâmetros intrínsecos da seguinte forma:seguinte forma: O primeiro passo que expressar nossas O primeiro passo que expressar nossas
coordenadas de câmera para coordenadas coordenadas de câmera para coordenadas da imagem.da imagem.
)v,u(pZ)Y,(X,Pc~~
Z
Yfv
Z
Xfu
~
~
Calibração das CâmerasCalibração das Câmeras
O segundo passo é expressar nossas O segundo passo é expressar nossas coordenadas da imagem distorcidas para coordenadas da imagem distorcidas para coordenadas da imagem sem distorção.coordenadas da imagem sem distorção.
Aqui é importante definir o valor da constante Aqui é importante definir o valor da constante de distorção radial de distorção radial kk11..
)~,~()~,~( ddd vupvup vDv
uDu
yd
xd
~~
~~
Onde o calculo da distorção em é:
yx DD ,22
42
21
42
21
~~
...)(~...)(~
dd
dy
dx
vur
rKrKvD
rKrKuD
Calibração das CâmerasCalibração das Câmeras
O terceiro passo é calcular a transformação O terceiro passo é calcular a transformação das coordenadas reais da imagem em das coordenadas reais da imagem em coordenadas da imagem no computador coordenadas da imagem no computador levando em consideração os tamanhos dos levando em consideração os tamanhos dos pixels da tela.pixels da tela.
)~,~()~,~( fffddd vupvup
Calibração das CâmerasCalibração das Câmeras Os parâmetros que são calculados são: Os parâmetros que são calculados são:
O fator de incerteza, introduzido para tratar os casos O fator de incerteza, introduzido para tratar os casos como: o retardo entre o tempo de captura das como: o retardo entre o tempo de captura das imagens e o tempo real de exploração dentro do imagens e o tempo real de exploração dentro do hardware do dispositivo de captura.hardware do dispositivo de captura.
xS
Nfx
Ncxdd xx
A escala entre o tamanho da célula do chip de A escala entre o tamanho da célula do chip de captura e o número de pixel que representa.captura e o número de pixel que representa.
Calibração das CâmerasCalibração das Câmeras
Assim definimos esta terceira etapa como:Assim definimos esta terceira etapa como:
)~,~()~,~( fffddd vupvup ydyf
xdxxf
Cvdv
CudSu
~~
~~
1
1
Nossa matriz de parâmetros intrínsecos ficara Nossa matriz de parâmetros intrínsecos ficara então como:então como:
100
0
0
int yy
xx
x
Cd
f
Cd
Sf
M
Calibração das CâmerasCalibração das Câmeras
Como produto final desta etapa teremos:Como produto final desta etapa teremos:
1
z
y
x
P
1000
trrr
trrr
trrr
1
Z
Y
X
Pw
w
w
wz987
y654
x321
c
c
c
c
c
c
c
cyy
xx
x
f
f
f
Z
Y
X
P
100
Cd
f0
C0d
Sf
1
v
u
p ~
~
Calibração das CâmerasCalibração das CâmerasAqui temos as imagens das câmeras, com os Aqui temos as imagens das câmeras, com os eixos do mundo de referencia, desenhados a eixos do mundo de referencia, desenhados a partir das matrizes de OpenGL.partir das matrizes de OpenGL.
Detecção de MarcadoresDetecção de MarcadoresAqui aplicaremos filtros sobre as imagens para Aqui aplicaremos filtros sobre as imagens para extrair a informação que precisamos sobre os extrair a informação que precisamos sobre os marcadores.marcadores.Se utilizo a extração de contornos para a Se utilizo a extração de contornos para a detecção dos marcadores.detecção dos marcadores.
Correlação dos MarcadoresCorrelação dos Marcadores
Uma vez detectados os marcadores , se fará a Uma vez detectados os marcadores , se fará a correlação dos mesmos entre as 3 imagens correlação dos mesmos entre as 3 imagens capturadas.capturadas.Se utilizara a geometria epipolar para Se utilizara a geometria epipolar para implementação desta etapa. implementação desta etapa.
Intuitivo
Precisa se criar estratégias de correlação
2
1
3
4
1 2
3
4
?
Reconstrução dos MarcadoresReconstrução dos MarcadoresA partir da correlação dos marcadores , se A partir da correlação dos marcadores , se utilizará esta informação para obter a posição utilizará esta informação para obter a posição 3D de cada marcador.3D de cada marcador.
Reconstrução dos MarcadoresReconstrução dos Marcadores