documenttg

26
EXPERIMENTO PARA A DISCIPLINA MPS-36 MODELAGEM E SIMULA ¸ C ˜ AO DE SISTEMAS DIN ˆ AMICOS Identifica¸c˜ao dos comprimentos focais de cˆ ameras Luiz Manoel Santos Santana S˜ ao Jos ´ e dos Campos - SP 26 de Junho de 2016

Upload: luiz-santana

Post on 24-Jan-2017

89 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Documenttg

EXPERIMENTO PARA ADISCIPLINA MPS-36

MODELAGEM E SIMULACAODE SISTEMAS DINAMICOS

Identificacao dos comprimentos focais de

cameras

Luiz Manoel Santos Santana

Sao Jose dos Campos - SP

26 de Junho de 2016

Page 2: Documenttg

Sumario

Sumario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

Lista de ilustracoes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1 INTRODUCAO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2 COMPONENTES DO EXPERIMENTO . . . . . . . . . . . . . . . . . 5

2.1 Microsoft Lifecam Cinema . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.2 Computador com MATLAB . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2.3 Boards de Identificacao das Posicoes . . . . . . . . . . . . . . . . . . . . 6

3 IDENTIFICACAO DOS COMPRIMENTOS FOCAIS . . . . . . . . . . 7

3.1 Processamento de Imagem . . . . . . . . . . . . . . . . . . . . . . . . . . 7

3.1.1 Deteccao de Cantos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

3.1.2 Segmentacao de Cores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

3.2 Modelo de Camera Pinhole . . . . . . . . . . . . . . . . . . . . . . . . . . 10

3.3 Metodo dos Mınimos Quadrados . . . . . . . . . . . . . . . . . . . . . . . 12

4 EXPERIMENTO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

4.1 Preparacao e Parametros do Experimento . . . . . . . . . . . . . . . . . 14

4.2 Programa em linguagem MATLAB . . . . . . . . . . . . . . . . . . . . . 15

4.3 Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

5 CONCLUSAO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

REFERENCIAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

6 ANEXOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

6.1 Anexo A – Instalacao dos Complementos . . . . . . . . . . . . . . . . . . 22

6.2 Anexo B – Programa de Calibracao das Cameras . . . . . . . . . . . . . 22

Page 3: Documenttg

Lista de ilustracoes

Figura 1 – Visao geral do experimento. . . . . . . . . . . . . . . . . . . . . . . . . . . 5

Figura 2 – Microsoft Lifecam Cinema. . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

Figura 3 – Boards Utilizadas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

Figura 4 – Metodo de Harris para Identificacao de Cantos. . . . . . . . . . . . . . . . 7

Figura 5 – Exemplo de Separacao de Objetos Utilizando Limiarizacao. . . . . . . . . . 8

Figura 6 – Matiz. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

Figura 7 – Saturacao da Cor Vermelha. . . . . . . . . . . . . . . . . . . . . . . . . . . 9

Figura 8 – Luminosidade. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

Figura 9 – Modelo de Cor HSV. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

Figura 10 – Elementos das Cameras Escuras – Pinhole. . . . . . . . . . . . . . . . . . . 11

Figura 11 – Camera Pinhole. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

Figura 12 – Comprimento Focal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

Figura 13 – Determinacao do Comprimento Focal. . . . . . . . . . . . . . . . . . . . . 14

Figura 14 – Possıveis Layouts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

Figura 15 – Centralizacao da Camera. . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

Figura 16 – Fluxograma. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

Figura 17 – Checkerboard: Cantos Identificados. . . . . . . . . . . . . . . . . . . . . . 18

Figura 18 – Todos os Cırculos: Imagem binaria e Cırculos Identificados. . . . . . . . . 18

Figura 19 – Cırculos Vermelhos: Imagem binaria e Cırculos Identificados. . . . . . . . . 18

Figura 20 – Cırculos Verdes: Imagem binaria e Cırculos Identificados. . . . . . . . . . . 19

Figura 21 – Cırculos Azuis: Imagem binaria e Cırculos Identificados. . . . . . . . . . . 19

Figura 22 – MATLAB – versao R2015a. . . . . . . . . . . . . . . . . . . . . . . . . . . 22

Figura 23 – Opcoes de instalacao dos pacotes para o Matlab de comunicacao com ca-

meras USB e do sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

Page 4: Documenttg

1 Introducao

O presente relatorio tem como objetivo mostrar o desenvolvimento teorico e pratico de um

experimento para a disciplina MPS-36: Modelagem e Simulacao de Sistemas Dinamicos,

do curso de graduacao em Engenharia Mecanica Aeronautica do Instituto Tecnologico de

Aeronautica (ITA), sendo o experimento um dos requisitos do estagio docencia da instituicao.

O intuito do experimento e a identificacao de parametros intrınsecos de uma camera

(comprimentos focais). Para a identificacao dos mesmos sao utilizados metodos de visao

computacional, processamento de imagem e estimacao otima de parametros.

Os comprimentos focais sao parametros importantes para determinar a posicao de um

objeto com utilizacao de cameras. Em (1) os comprimentos focais sao utilizados para a

determinacao da posicao e velocidade de um robo aereo multirotor.

Os proximos capıtulos mostrarao a teoria, o desenvolvimento, e o funcionamento do ex-

perimento.

Page 5: Documenttg

2 Componentes do Experimento

Os tres principais componentes utilizados para a realizacao do experimento de estimacao

dos comprimentos focais sao: uma webcam microsoft lifecam cinema para a aquisicao das

imagens; um computador com o software MATLAB instalado, sendo o mesmo responsavel

pelo tratamento da imagem, identificacao das coordenadas e calculo dos comprimentos focais;

uma board de identificacao, onde, em um lado ha marcas coloridas, sendo os centros dessas

marcas posicoes bem conhecidas, e do outro lado uma checkerboard com as posicoes dos

cantos dos quadrados negros tambem bem conhecidas. A Figura 1 ilustra o sistema descrito.

Figura 1 – Visao geral do experimento.

2.1 Microsoft Lifecam Cinema

A camera utilizada e a Microsoft lifecam cinema, essa webcam tem como principais caracte-

rısticas um sensor CMOS; uma taxa de aquisicao de imagem de 30 frames por segundo; um

campo de visao (FOV) em diagonal de 730; e uma resolucao padrao de imagem de 640x480

pixels. A sua utilizacao no sistema e a captura das imagens e o envio das mesmas via cabo

USB para um microcomputador. A Figura 2 mostra uma foto da webcam.

Page 6: Documenttg

Figura 2 – Microsoft Lifecam Cinema.

2.2 Computador com MATLAB

O microcomputador recebe os dados enviado pela camera via interface USB. No software

MATLAB ha tratamentos distintos para as imagens capturadas na checkerbord das captura-

das na board de marcas coloridas. Na checkerbord e utilizado um metodo para identificacao

de cantos, ja a identificacao dos cırculos coloridos e realizada seguindo os seguintes passos:

segmentacao da cor desejada e a transformada circular de Hough. A partir das coordenadas

xI e yI encontradas, utilizando o modelo de camera pinhole em conjunto com o metodo dos

mınimos quadrados, sao calculados os valores otimos dos comprimentos focais fx e fy .

2.3 Boards de Identificacao das Posicoes

A board de identificacao e um plano no qual estao os pontos a serem identificados pelos

metodos de visao computacional. Foram utilizadas duas boards no experimento. Uma em

um padrao quadriculado em preto e branco e a outra com cırculos vermelhos, azuis e verdes,

conforme ilustrado na Figura 3.

Figura 3 – Boards Utilizadas.

Page 7: Documenttg

3 Identificacao dos Comprimentos Focais

O experimento de identificacao dos comprimentos focais e dividido em tres partes principais:

processamento de imagem, determinacao do comprimento focal a partir do modelo de camera

pinhole e a estimacao otima com o metodo dos mınimos quadrados.

3.1 Processamento de Imagem

O processamento de imagem e a etapa na qual os elementos de interesse sao separados

computacionalmente de outros elementos da imagem, com o intuito da identificacao de suas

coordenadas x(i)I , y

(i)I em pixel. Foram utilizados metodos distintos para a identificacao das

marcas coloridas e do checkerboard. Os principais metodos utilizados foram a deteccao de

cantos e a segmentacao de cores. No caso dos cırculos, para a deteccao das coordenadas dos

centros, foi utilizada a transformada circular de Hough.

3.1.1 Deteccao de Cantos

O algoritmo para a deteccao de cantos e baseado no metodo Harris corner detector. O metodo

de Harris identifica cantos pela variacao do gradiente de intensidade da imagem nas direcoes

Xi e Yi. O algoritmo varre todos os pixels da imagem com uma janela n x n pixels. Quando

encontrada uma grande variacao no gradiente da imagem em uma unica direcao, isso implica

que foi encontrada uma borda. Quando ha uma grande variacao do gradiente de intensidade

nas direcoes Xi e Yi simultaneamente, isso resulta que um canto foi detectado.

A Figura 4 demonstra os tres casos possıveis:

Figura 4 – Metodo de Harris para Identificacao de Cantos.

Page 8: Documenttg

1 – Nenhuma grande variacao, em nenhum dos dois sentidos, do gradiente de intensidade

da imagem;

2 – Grande variacao do gradiente de intensidade da imagem em um sentido (borda);

3 – Grande variacao do gradiente de intensidade da imagem nos dois sentidos (canto);

Com os cantos identificados, sao coletadas as suas respectivas coordenadas x(i)I e y

(i)I .

3.1.2 Segmentacao de Cores

Na board de marcas coloridas sao utilizados quatro formas de reconhecimento dos cırculos.

1 – Identificar e coletar a posicao de todos os cırculos;

2 – Identificar e coletar a posicao dos cırculos vermelhos;

3 – Identificar e coletar a posicao dos cırculos verdes;

4 – Identificar e coletar a posicao dos cırculos azuis.

No caso no 1, e utilizado limiarizacao na imagem em escala de cinza, para a distincao dos

cırculos dentre os outros elementos da imagem.

A limiarizacao e um metodo de segmentacao de imagem onde os elementos da imagem

sao separados pelos seus respectivos nıveis de cinza. Adotando um valor para o limiar (T ),

os pixels da imagem sao divididos em dois grupos, no qual o valor do limiar e o separador

dos grupos. Com isso, a imagem torna-se binaria, sendo os valores maiores que T iguais a

um, e os valores menores ou igual a T com valor zero (2).

Figura 5 – Exemplo de Separacao de Objetos Utilizando Limiarizacao.

Page 9: Documenttg

Uma imagem limiarizada pode ser representada pela seguinte funcao (onde F (xI , yI) e a

imagem em escala de cinza):

g(xI , yI) =

0, se F (xI , yI) ≤ T,

1, se F (xI , yI) > T.

Portanto, os pixels de g(xI , yI) com valores igual a um correspondem ao fundo da imagem,

enquanto os valores igual a zero sao os pixels correspondentes aos elementos desejados. A

Figura 5 mostra um exemplo de limiarizacao com tres valores distintos de limiar.

Nos casos no 2, 3 e 4 e utilizado o mesmo metodo de segmentacao. Sendo o mesmo a

segmentacao de cor no modelo HSV.

Para a sintonizacao via histogramas, e realizada a conversao da imagem coletada pela

camera no modelo de cor RGB para o modelo de HSV.

O modelo de cor HSV e uma extensao do modelo RGB. O modelo RGB realiza a combina-

cao das cores primarias para a decomposicao de outras cores. O modelo HSV, alem de ter a

matiz de cores (H) como no modelo RGB, utiliza mais dois elementos principais, a saturacao

(S) e a luminosidade (V) (2).

A matiz e o estado puro da cor, e um atributo associado a longitude de onda dominante

na mistura das ondas luminosas. A Figura 6 mostra as cores da matiz com os seus respectivos

angulos no cırculo cromatico.

Figura 6 – Matiz.

A saturacao representa a pureza/intensidade de uma cor em particular. Quando uma cor

pura e misturada a cores neutras o seu grau de saturacao diminui. A Figura 7 mostra a

saturacao da cor vermelha para um valor de V = 1.

Figura 7 – Saturacao da Cor Vermelha.

A luminosidade e o termo utilizado para descrever o tao claro uma cor parece, o termo

refere-se a quantidade de luz percebida. A luminosidade representa o tao claro ou escuro

uma cor esta com relacao a sua cor pura. A Figura 8 mostra a luminosidade para um valor

de S=0.

Page 10: Documenttg

Figura 8 – Luminosidade.

O modelo HSV e amplamente utilizado em visao computacional devido sua robustez na

identificacao de tonalidade (mistura de uma cor pura com uma cor neutra). Sendo esse

processo impossıvel de ser realizado no modelo RGB. A Figura 9 mostra o modelo de cor

HSV.

Figura 9 – Modelo de Cor HSV.

Para fazer as mascaras de cor, foram determinados valores maximos e mınimos para o H,

S e V. Com isso, somente o intervalo de coloracao desejado e identificado.

Apos o processo de segmentacao, a imagem e binarizada para se aplicar a transformada

circular de Hough. Com a transformada circular de Hough sao identificadas as coordenadas

x(i)I e y

(i)I dos centros dos cırculos.

3.2 Modelo de Camera Pinhole

O modelo de camera pinhole e um dos modelos mais simples e antigo de camera. Ele e

baseado nas cameras fotograficas escuras com um pequeno furo ao lado oposto do filme. a

distancia entre o furo e o filme fotografico e chamado de comprimento focal f , como pode

ser visualizando na Figura 10, o comprimento focal, o angulo do campo de visao da camera

(FOV) e as dimensoes do plano da imagem sao elementos dependentes entre si.

Page 11: Documenttg

Figura 10 – Elementos das Cameras Escuras – Pinhole.

As figuras 11 e 13 (3) mostram a analise de um ponto i, em dois SCC. SC e o sistema de

coordenadas da camera, onde sua origem se localiza no ponto C (centro da camera), sendo

SC = {XC , YC , ZC}. SI e o sistema de coordenadas da imagem com sua origem no ponto P ,

ponto no qual o eixo principal intercepta o plano da imagem, SI = {XI , YI} . S(i)C sao as

coordenadas {xiC , yi

C , ziC} do ponto i no sistema SCC da camera, e S

(i)I sao as coordenadas

do ponto i no sistema SCC da imagem {xiI , yi

I}.

𝐘𝐂

𝐗𝐂 𝐘𝐈

𝐗𝐈

𝐏 𝐂

𝐙𝐂

𝐒𝐂(𝐢)

𝐩𝐫𝐢𝐧𝐜𝐢𝐩𝐚𝐥 𝐚𝐱𝐢𝐬

𝐢𝐦𝐚𝐠𝐞 𝐩𝐥𝐚𝐧𝐞

𝐒𝐈(𝐢)

𝐜𝐚𝐦𝐞𝐫𝐚 𝐜𝐞𝐧𝐭𝐞𝐫

Figura 11 – Camera Pinhole.

Analisando a Figura 13, e facilmente perceptıvel que ha uma relacao trigonometrica entre

as coordenadas S(i)I e S

(i)C .

Por semelhanca de triangulos chega-se a seguinte relacao entre o comprimento focal f e

Page 12: Documenttg

𝐘𝐂

𝐙𝐂

𝐢𝐦𝐚𝐠𝐞 𝐩𝐥𝐚𝐧𝐞

𝐏

𝐂

𝐒𝐂(𝐢)

𝐒𝐈(𝐢)

𝐟

𝐲𝐂(𝐢)

𝐳𝐂(𝐢)

𝐟𝐲𝐂(𝐢)

𝐳𝐂(𝐢)

Figura 12 – Comprimento Focal.

as coordenadas nos dois sistemas (3):

x(i)I = fx

x(i)C

z(i)C

(3.1)

e

y(i)I = fy

y(i)C

z(i)C

. (3.2)

3.3 Metodo dos Mınimos Quadrados

Utilizando o processamento de imagens sao obtidas as coordenadas dos centros dos cırculos

(no caso do board de marcas coloridas), ou as coordenadas dos cantos dos quadrados (na chec-

kerboard). De acordo com as equacoes 3.1 e 3.2, adotando como conhecidas as coordenadas

S(i)C e a distancia ZC como um valor fixo. As coordenada x

(i)I e y

(i)I dos pontos i identificado,

onde i = {1, 2, ..., n}, podem ser representadas no seguinte formato matricial

[x

(1)I x

(2)I ... x

(n)I

]T= fx

[x

(1)C

zC

x(2)C

zC...

x(n)C

zC

]T

(3.3)

e

[y

(1)I y

(2)I ... y

(n)I

]T= fy

[y

(1)C

zC

y(2)C

zC...

y(n)C

zC

]T

. (3.4)

Page 13: Documenttg

Onde as equacoes 3.3 e 3.4 podem ser reescritas como

Λx = fxϕx (3.5)

e

Λy = fyϕy. (3.6)

Usando o metodo dos mınimos quadrados (4) e possıvel encontrar o valor otimo dos

comprimentos focais.

fx ,[

ϕTx ϕx

]−1 [ϕT

x Λx

](3.7)

fy ,[

ϕTy ϕy

]−1 [ϕT

y Λy

]. (3.8)

Page 14: Documenttg

4 Experimento

Nesse capıtulo sera mostrado o desenvolvimento e funcionalidade do sistema proposto nos

capıtulos anteriores.

4.1 Preparacao e Parametros do Experimento

Para um desempenho correto do sistema, deve-se seguir algumas especificacoes. A board

deve ser posicionada paralela ao plano da imagem, perpendicular ao eixo ZC , e o eixo ZG

coincidente com o eixo ZC(vide Figura 13 ). Os valores das posicoes dos elementos a serem

detectados pelos metodos de processamento de imagem no SCC SG devem ser conhecidos

(sendo SG , {XG, YG, ZG}). Com esses pre-requisitos satisfeitos, as coordenadas dos pontos

de interesse no SCC SC tornam-se iguais as coordenadas no SCC SG (sendo excecao as

coordenadas zi).

𝐂

𝐗𝐂

𝐘𝐂

𝐘𝐈 𝐗𝐈

𝐗𝐆

𝐘𝐆

𝐒𝐈(𝟏)

𝐒𝐈(𝟐)

𝐒𝐈(𝐧)

𝐒𝐂(𝟏)

𝐒𝐂(𝐧)

𝐒𝐂(𝟐)

𝐙𝐂 𝐎

𝐏

Figura 13 – Determinacao do Comprimento Focal.

As boards utilizadas no experimento tem as seguintes caracterısticas:

1 – A checkerboard e um plano com 17 quadrados brancos e 18 quadrados pretos, inter-

calados e com dimensoes 56x56 mm.

2 – A board de marca coloridas e um plano formado por 54 cırculos, sendo 18 vermelhos,

18 azuis e 18 verdes, nao havendo logica em sua distribuicao de cores. O diametro de cada

cırculo tem 19 mm. As distancias entre o centro de um cırculo em relacao ao centro dos

cırculos mais proximos e de 40 mm.

Page 15: Documenttg

3 – A distancia entre a board e a camera (valor de zC) foi medido com uma trena, e seu

valor medido foi de 715 mm.

4 – Para a evitar interferencia de cores, a board deve estar a frente de um fundo branco.

Para a segmentacao de imagem foram adotados os seguintes parametros:

1 – No modo 1 de identificacao de cırculos, o valor do limiar e de T = 0.37.

2 – No modo 2 de identificacao de cırculos, o intervalo da matiz ficou em 0.060 ≥ H ≥0.868 . O intervalo da saturacao ficou em 1 ≥ S ≥ 0.444. O intervalo da luminosidade ficou

em 1 ≥ V ≥ 0.

3 – No modo 3 de identificacao de cırculos, o intervalo da matiz ficou em 0.533 ≥ H ≥0.147 . O intervalo da saturacao ficou em 1 ≥ S ≥ 0.253 . O intervalo da luminosidade ficou

em 0.923 ≥ V ≥ 0.

4 – No modo 4 de identificacao de cırculos, o intervalo da matiz ficou em 0.756 ≥ H ≥0.449 . O intervalo da saturacao ficou em 1 ≥ S ≥ 0.288. O intervalo da luminosidade ficou

em 1 ≥ V ≥ 0.

Para melhorar a imagem apos a segmentacao, foi utilizado em conjunto os metodos mor-

fologicos erosao e dilatacao.

Os dois layouts possıveis do experimento sao mostrados na Figura 14

Figura 14 – Possıveis Layouts.

4.2 Programa em linguagem MATLAB

Apos a inicializacao do script,conforme pode ser visualizado na Figura 17 ,e mostrado uma

janela com um vıdeo em tempo real da camera para que o usuario possa centralizar a mesma

em relacao a board utilizada.

Apos a camera estar bem centralizada, o programa solicita que seja digitado o valor da

distancia entre a board e a camera (valor de zC).

Page 16: Documenttg

Figura 15 – Centralizacao da Camera.

Dado o valor de zC , o usuario tem a opcao de escolher entre as marcas coloridas e a

checkerboard. Caso o usuario escolha pela opcao 2 (marcas coloridas), o usuario deve escolher

um entre os quatros metodos de identificacao de cırculos.

Apos o usuario dar todos os dados necessarios, uma nova tela abrira com os pontos

detectados e os valores dos comprimentos focais.

A Figura 16 mostra o fluxograma de funcionamento do programa.

4.3 Resultados

Esta secao ira mostrar as imagens binarias apos a realizacao da segmentacao, e os compri-

mentos focais (em pixel) estimados em cada um dos modos.

A Figura 17 mostra os pontos identificados na checkerboard.

A Figura 18 mostra os circulo identificados pelo primeiro modo de segmentacao com sua

respectiva imagem binaria.

A Figura 18 mostra os circulo identificados pelo segundo modo de segmentacao com sua

respectiva imagem binaria.

A Figura 18 mostra os circulo identificados pelo terceiro modo de segmentacao com sua

respectiva imagem binaria.

A Figura 18 mostra os circulo identificados pelo quarto modo de segmentacao com sua

respectiva imagem binaria.

Os valores otimos calculados dos comprimentos focais sao mostrados na Tabela 1.

Page 17: Documenttg

Aquisição da Câmera

1–CheckerBoard

2-Color Marks

Carrega as posições reais das

intersecções dos cantos

Detecta as coordenadas das

intersecções dos cantos

Valor de Zc

1

Centralização

da Câmera

Mostra a imagem

com os pontos

encontrados

2

1–Todas; 2- Red;

3-Blue; 4-Green

1

Carrega as posições

reais dos círculos

Transforma imagem

em escala de cinza

Detecta os círculos e

as coordenadas dos

centros

4

Carrega as posições

reais dos círculos

Segmentação e

binarização da

Imagem

Detecta os círculos e

as coordenadas dos

centros

Mostra a

imagem e os

círculos

Calcula ϕx e ϕy

Calcula λx e λy

Calcula fx e fy Mostra fx e fy

2

Carrega as posições

reais dos círculos

Segmentação e

binarização da

Imagem

Detecta os círculos

e as coordenadas

dos centros

3

Carrega as posições

reais dos círculos

Segmentação e

binarização da

Imagem

Detecta os círculos

e as coordenadas

dos centros

Figura 16 – Fluxograma.

Page 18: Documenttg

Figura 17 – Checkerboard: Cantos Identificados.

Figura 18 – Todos os Cırculos: Imagem binaria e Cırculos Identificados.

Figura 19 – Cırculos Vermelhos: Imagem binaria e Cırculos Identificados.

Page 19: Documenttg

Figura 20 – Cırculos Verdes: Imagem binaria e Cırculos Identificados.

Figura 21 – Cırculos Azuis: Imagem binaria e Cırculos Identificados.

Tabela 1 – Tabela dos Comprimentos Focais Identificados para Cada Modo.

Modo de Identificacao fx fy

Deteccao de cantos 588 586Segmentacao - 1 585 585Segmentacao - 2 586 586Segmentacao - 3 586 588Segmentacao - 4 586 586

Page 20: Documenttg

5 Conclusao

O sistema para estimacao dos comprimentos focais utilizou metodos de identificacao de cantos

e segmentacao de imagem para identificar as coordenadas dos pontos de interesse nas imagens

(centro dos cırculos ou cantos dos quadrados). Utilizando o modelo de camera pinhole e

possıvel identificar os comprimentos focais, quando sao conhecidos as coordenadas do objeto

no sistema da imagem e do objeto no sistema da camera. Para a estimacao otima dos

comprimentos focais a partir das coordenadas dos i pontos de interesse foi utilizado o metodo

dos mınimos quadrados.

O processamento de imagem se mostrou robusto para identificacao de cantos e separacao

dos objetos de interesse de outros elementos da imagem. A transformada de Hough identificou

todos os cırculos nas imagens binarias sem problemas.

Nos cinco testes realizados, o sistema mostrou que os valores encontrados do comprimento

focal, para pontos de interesse distintos, ficaram com media 586 pixels e um desvio padrao

de 1 pixel.

Page 21: Documenttg

Referencias

1 SANTANA, L. M. S. et al. A low-cost position and velocity estimation system formultirotor aerial vehicles using a static kinect sensor. Congresso Brasileiro de Automatica,2016.

2 GONZALEZ, R. C.; RICHARD, E. Digital image processing. ed: Prentice Hall Press,ISBN 0-201-18075-8, 2002.

3 HARTLEY, R.; ZISSERMAN, A. Multiple view geometry in computer vision. ed:Cambridge university press, ISBN 0-521-54051-8, 2003.

4 LJUNG, L. System identification: theory for the user. ed: Pearson Education, ISBN0-132-44053-9, 1998.

Page 22: Documenttg

6 Anexos

6.1 Anexo A – Instalacao dos Complementos

Esse anexo apresenta o procedimento de instalacao dos Apps necessarios a execucao dos

algoritmos de calibracao de camera com o Maltab. A versao do Matlab utilizada para os

procedimentos descritos nesse relatorio e a R2015a, apresentada na Figura 22.

Figura 22 – MATLAB – versao R2015a.

O processo de calibracao necessita a conexao do MATLAB com cameras USB e um AddOn

de calibracao. A instalacao desses pacotes pode ser feita atraves do download dos respectivos

instaladores, disponıveis no site da MathWorks, desenvolvedora do MATLAB (Figura 23a),

ou por meio do proprio MATLAB, que oferece um mecanismo de busca e instalacao a partir

do ambiente do MATLAB (Figura 23b). Ambas funcionalidades fazem parte dos pacotes

de Processamento de Imagem e Visao Computacional do MATLAB, como apresentado na

Figura 23b.

6.2 Anexo B – Programa de Calibracao das Cameras

Este anexo apresenta o programa de calibracao implementado no Matlab e apresenta uma

breve descricao de seu funcionamento.

Page 23: Documenttg

(a) (b)

Figura 23 – Opcoes de instalacao dos pacotes para o Matlab de comunicacao com camerasUSB e do sistema

O programa abaixo esta divido em quarto etapas:

1 – Capturar imagem de calibracao.

2 – Escolher metodo a ser utilizado.

3 – Calcular os parametros de calibracao.

4 – Apresentar os resultados em um grafico misto.

A conexao do Matlab com uma camera e efetuada atraves de uma variavel que recebe o

resultado da funcao webcam(1). Essa funcao possuı um parametro que representa o device a

que o Matlab devera ser conectado. Nesse caso o argumento da funcao e 1, e esse argumento

esta relacionado a qual camera voce deseja que o Matlab se conecte, sendo esse numero

variavel para o numero de cameras instaladas no sistema.

Como descrito no corpo deste relatorio, esse programa foi desenvolvido para efetuar o

calculo dos parametros da camera sob duas situacoes. Uma e utilizando uma funcao pronta

do pacote de processamento de imagens e visao computacional, utilizando o dashboard como

ferramenta. A outra e utilizando um conjunto de marcadores e implementando as funcoes de

calculo manualmente.

O procedimento de calculo e efetuado e por fim, o programa apresenta o foco em x e y

calculados.

//

imaqreset; clear; close; clc; warning(’off’)

cam = webcam(1);

cam.FocusMode = ’manual’;

for i = 1:5 pause (0.30) IM = snapshot(cam); end

DlgH = figure; title = title(’Camera Centralization’); set(title,’FontSize’,12); Button =

uicontrol(’Style’, ’PushButton’,’String’, ’OK’, ’Callback’, ’delete(gcbf)’);

hold on

while (ishandle(Button)) IM = snapshot(cam); imshow(IM)

Page 24: Documenttg

hold on

line([0 640],[240 240],’LineWidth’,2) line([320 320],[0 480],’LineWidth’,2) end

close clear

prompt2 = ’What is the distance (in METERS!) between the Camera and the Calibration

board? ’;

zc = input(prompt2); clc

prompt1 = ’ For Checkerboard Calibration mode, enter 1.For ColorMark Calibration

mode, enter 2: ’; choose = input(prompt1); clc

cam = webcam(1);

cam.FocusMode = ’manual’;

for i = 1:10

pause (0.3)

IM = snapshot(cam);

end

if choose == 1 || choose == 2

if choose == 1

load(’xcCheckerboardcoordinates.mat′)load(’ycCheckerboardcoordinates.mat′)IM = snapshot(cam);

imshow(IM)

hold on

imagePoints = detectCheckerboardPoints(IM);

for j = 1:length(imagePoints)

viscircles(imagePoints(j,:),4,’EdgeColor’,’g’);

hold on

end

title = title(’Identified Points’);

set(title,’FontSize’,14);

else

prompt3 = ’ For Calibration using all ColorMaks, enter 1.For Calibration using Red

ColorMarks, enter 2. For Calibration using Green ColorMarks, enter 3: For Calibration

using Blue ColorMarks, enter 4:’; choosecircle = input(prompt3);clc

if choosecircle == 1load(’xcT otalColorMarks.mat′)load(’ycT otalColorMarks.mat′)IM = snapshot(cam);

Page 25: Documenttg

imshow(IM)

hold

[BW] = AllMask(IM);

[imagePoints, radii] = imfindcircles(BW,[2, 25],’ObjectPolarity’,’bright’);

run(’OrdenaCirculos.m’)

raio = mean(radii)-3;

end

if choosecircle == 2load(’xcRED.mat′)load(’ycRED.mat′)IM = snapshot(cam); imshow(IM) hold on

BW = RedMask(IM);

[imagePoints, radii] = imfindcircles(BW,[2, 25],’ObjectPolarity’,’bright’);

run(’OrdenaCirculos.m’)

raio = mean(radii)-3;

end

if choosecircle == 3load(’xcGREEN.mat′)load(’ycGREEN.mat′)IM = snapshot(cam);

imshow(IM)

hold on

BW = GreenMask(IM);

[imagePoints, radii] = imfindcircles(BW,[2, 25],’ObjectPolarity’,’bright’);

run(’OrdenaCirculos.m’)

raio = mean(radii)-3;

end

if choosecircle == 4load(’xcBLUE.mat′)load(’ycBLUE.mat′)IM = snapshot(cam);

imshow(IM)

hold on

BW = BlueMask(IM);

[imagePoints, radii] = imfindcircles(BW,[2, 25],’ObjectPolarity’,’bright’);

run(’OrdenaCirculos.m’)

raio = mean(radii)-3;

Page 26: Documenttg

end

for j = 1:length(imagePoints) viscircles(imagePoints(j,:),raio+4,’EdgeColor’,’black’);

hold on

pause(0.2)

end

title = title(’Identified ColorMarks’); set(title,’FontSize’,14);

end

phix = xc/zc;phiy = yc/zc;xi(:,1) = imagePoints(:,1) - 320*ones(length(imagePoints),1);

yi(:,1) = imagePoints(:,2) - 240*ones(length(imagePoints),1);

Lambdax = round(xi);Lambday = round(yi);fx = abs((phi′x ∗ phix)phi′x ∗ Lambdax));fy = abs((phi′y ∗ phiy)phi′y ∗ Lambday));fprintf(’Focal Length in x (fx):’)

disp(fx)

fprintf(’Focal Length in y (fy):’)

disp(fy)

else

clear ; close;

pause(1)

fprintf(’Calibration Mode not identified !!! ’)

pause(8)

clc;

end

clear cam;

imaqreset;