• Nenhum resultado encontrado

2014.2 Italo da Silva Santos

N/A
N/A
Protected

Academic year: 2021

Share "2014.2 Italo da Silva Santos"

Copied!
46
0
0

Texto

(1)

ITALO DA SILVA SANTOS

SISTEMA DE CONTROLE DE UMA CÂMERA PAN-TILT UTILIZANDO REALIMENTAÇÃO VISUAL

FEIRA DE SANTANA 2014

(2)

SISTEMA DE CONTROLE DE UMA CÂMERA PAN-TILT UTILIZANDO REALIMENTAÇÃO VISUAL

Trabalho de Conclusão de Curso apresentado ao Colegiado de Engenharia de Computação como requisito parcial para obtenção do grau de Bacharel em Engenharia de Computação da Universidade Estadual de Feira de Santana.

Orientador: Anfranserai Morais Dias

FEIRA DE SANTANA 2014

(3)

Este documento descreve o desenvolvimento de um sistema de controle para uma câmera pan-tilt usando realimentação visual. Câmeras pan-tilt tem a capacidade de apontar para qualquer ponto do espaço, essa característica permite o rastreamento de objetos em movimento no espaço. Levando em conta essa capacidade de deslocamento da câmera, foi proposta a utilização da câmera pan-tilt como ferramenta que auxilie no sistema de deslocamento para os robôs do projeto Colônia de Robôs. Este trabalho apresenta uma técnica de controle de câmeras pan-tilt baseado em realimentação visual, onde inicialmente são utilizadas informações obtidas através do processamento de imagens capturadas pela câmera, para determinar a posição do objeto. Em seguida, é feito o controle da câmera. O controle é feito através de cálculos que determinam os ângulos de rotação dos motores, possibilitando que a câmera possa apontar para qualquer ponto do espaço. Como resultado foi desenvolvido o software para o processamento de vídeo em tempo real, que é capaz de extrair as informações provindas da câmera pan-tilt. Esse processamento inclui a determinação dos graus de liberdade do robô que permitem o alinhamento da câmera com o alvo, através da cinemática inversa.

(4)

This document describes the development of a control system for a pan-tilt camera using visual feedback. Pan-tilt cameras have the ability to point any object in space, this feature allows tracking objects while moving in space. Given this ability to move the camera, it was proposed to use the pan-tilt camera as a tool to assist in the displacement system for the colony of robots Robots project. This paper presents a control technique based on visual feedback pan-tilt, where information initially obtained by processing images captured by the camera are used cameras to determine the position of the object. Then is made camera control. The control is done through calculations that determine the rotation angles of the motors, allowing the camera can point to any point in space. As a result was developed the software for processing video in real time, which is able to extract the information originated in the pan-tilt camera. This processing includes determining the degrees of freedom of the robot allow the alignment of the target with the camera, by inverse kinematics.

(5)

Figura 1 Processamento digital de imagens. 10

Figura 2 Detecção de bordas. 11

Figura 3 Processo para detecção de padrões através da Transformada de Hough. 14

Figura 4 Formação da imagem no modelo pin-hole. 15

Figura 5 Formação da imagem no modelo simplificado pin-hole. 15

Figura 6 Modelo da câmera. 16

Figura 7 Transformação do SCM para o SCC. 20

Figura 8 Transformação do SCC para o SCI. 20

Figura 9 Transformação do SCI para o SCP. 20

Figura 10 Transformação do SCM para o SCP. 20

Figura 11 Protótipo do sistema. 22

Figura 12 Câmera xp TAG 23

Figura 13 Robô Pipneer P3-AT. 24

Figura 14 Etapas do sistema de visão. 25

Figura 15 Rotina de comunicação. 25

(6)

Figura 18 Transformações de coordenadas. 29

Figura 19 Sistema Pan-tilt. 32

Figura 20 Controlador SSC32 e o Pan-Tilt. 33

Figura 21 Imagem capturada da câmera. 33

Figura 22 Resultado do pré-processamento. 33

Figura 23 Rastreamento do objeto. 34

Figura 24 Vídeo original. 34

Figura 25 Calibração da câmera usando chessboard. 35

Figura 26 Imagem filtrada. 37

Figura 27 Imagem convertida para tons de cinza. 37

Figura 28 Bordas detectadas. 38

Figura 29 Círculos detectados. 38

Figura 30 Resultado do módulo de processamento de imagem. 39

(7)

USB Universal Serial Bus

(8)

1 INTRODUÇÃO . . . . 8

1.1 OBJETIVOS DO TRABALHO . . . 8

2 FUNDAMENTAÇÃO . . . 10

2.1 PROCESSAMENTO DIGITAL DE IMAGENS . . . 10

2.2 DETECÇÃO DE BORDAS . . . 11

2.2.1 Detector de bordas de Canny . . . 12

2.3 TRANSFORMADA DE HOUGH . . . . 13

2.3.1 Identificação de Círculos . . . 14

2.4 CAMERA PIN-HOLE . . . . 14

2.4.1 Parâmetros intrínsecos da câmera . . . 16

2.4.2 Parâmetros Extrínsecos da câmera . . . 17

2.5 CALIBRAÇÃO DA CÂMERA . . . 18 2.5.1 Transformações de câmera . . . 19 3 METODOLOGIA E DESENVOLVIMENTO . . . . 22 3.1 REVISÃO BIBLIOGRÁFICA . . . 22 3.2 DEFINIÇÃO DA ARQUITETURA . . . 22 3.2.1 Câmera pan-tilt . . . . 23 3.2.2 O Robô . . . 24 3.3 SISTEMA DE VISÃO . . . 24 3.3.1 Comunicação . . . 25

3.3.2 Ferramentas e configurações utilizadas . . . 26

3.4 DEFINIÇÃO DO SISTEMA DE SOFTWARE . . . . 26

3.4.1 Estrutura geral do software de processamento de imagem . . . . 26

3.5 CINEMÁTICA INVERSA DA CÂMERA PAN-TILT . . . . 28

3.6 TESTES . . . 31

4 RESULTADOS E DISCUSSÕES . . . . 32

4.1 ESTRUTURA MONTADA . . . 32

4.2 RESULTADOS DO PROCESSAMENTO DE IMAGENS . . . 34

4.2.1 Calibração da Câmera . . . 35

4.2.2 Processamento das imagens . . . 36

4.2.3 Pré-processamento . . . 36

(9)

5 CONSIDERAÇÕES FINAIS . . . 43 REFERÊNCIAS . . . 44

(10)

1 INTRODUÇÃO

O desenvolvimento da tecnologia de visão computacional tem despertado o interesse da sociedade em elaborar ferramentas que ajudem na solução de problemas no campo da robótica que possam melhorar a qualidade de vida e que também auxiliem em processos industriais e das engenharias. A busca por novas aplicações no campo da robótica viabilizou a inserção de técnicas de visão computacional ao sistema de sensoriamento dos robôs, com o objetivo de auxiliar o desenvolvimento de funções desempenhadas pelos seres vivos, bem como, identificar padrões, obstáculos ou deslocar-se por regiões inóspitas ou inacessíveis para desempenharem atividades de exploração ou salvamento, o que confere uma maior autonomia aos robôs.(CRAIG, 2004)

1.1 OBJETIVOS DO TRABALHO

Desenvolver um sistema que controle uma câmera pan-til que é capaz de manter um objeto no centro da imagem. Isso possibilita aos robôs o rastreamento de objetos e facilita o desenvolvimento de atividades, como se deslocar de um ponto ao outro. É proposto um sistema capaz de adquirir imagens em tempo real, serão aplicadas técnicas de processamento digital de imagens, para converter dados provenientes da câmera em informação que norteiem o deslocamento do robô. Para isso serão aplicados conceitos de controle para garantir o posicionamento correto da câmera pan-tilt em relação ao objeto (CORKE, 1994).

O sistema que processa as imagens e controla os motores será embarcado em um robô, isso permitirá ao mesmo identificar objetos e rastreá-los, com isso é possível fazer com que o robô se desloque em ambientes sem intervenção humana além de capturar objetos presentes no ambiente.

A câmera funciona como um sensor que auxilia o deslocamento do robô, pois a partir das informações do ambiente capturadas pela câmera é possível realizar medidas, sem a necessidade de contato direto com o ambiente, permitindo escolher a trajetória mais adequada ao robô quando se deslocar em ambientes diversos, pois é necessário identificar caminhos que o robô possa transpor, pois as dimensões do mesmo podem definir qual o melhor caminho a ser escolhido, evitando, assim o recálculo da trajetória, além de possibilitar a identificação das dimensões de possíveis obstáculos, permitindo contorná-lo da maneira menos custosa. Uma grande desvantagem em se utilizar câmeras como sensores é o alto custo computacional para uma aplicação em tempo real. Isso fica evidenciado no processo de desenvolvimento do projeto, onde são necessárias medidas com o intuito

(11)

de minimizar o impacto no processamento da aplicação, como por exemplo definir bem o espaço de trabalho e simulação.

Esta monografia está dividida da seguinte forma: no Capítulo 2, Fundamentação Teórica, onde são abordados os principais conceitos e técnicas utilizadas na concepção do projeto. No capítulo 3, Metodologia e desenvolvimento, apresenta as etapas do projeto, bem como, a modelagem do sistema e decisões de projeto, além da implementação dos conceitos discutidos no Capitulo 2, a descrição dos módulos do sistema, desafios encontrados e as decisões de projetos. No Capítulo 4, Resultados e Discussões, apresenta os resultados alcançados juntamente com uma análise dos mesmos. Por fim, no Capítulo 5, Considerações Finais, estão as conclusões do trabalho, dificuldades encontradas e possíveis melhorias como trabalhos futuros.

(12)

2 FUNDAMENTAÇÃO

Neste capitulo serão abordados os principais conceitos utilizados no desenvolvimento deste trabalho. As seções seguintes descrevem, de forma geral, os conceitos abordados no desenvolvimento do trabalho.

2.1 PROCESSAMENTO DIGITAL DE IMAGENS

O processamento digital de imagens envolve processos onde as entradas e saídas são imagens e, além disso, envolve processos de extração de características das imagens até o reconhecimento de objetos individuais. O processamento de imagens consiste de diversas etapas, Figura 1:

Figura 1 - Etapas do processamento digital de imagens.

Fonte: Adaptado de (GONZALEZ; WOODS, 2010).

A Figura 1 demostra as etapas do processamento de imagens digitais, onde, a primeira etapa, a Aquisição da Imagem é caracterizada pela utilização de dispositivos eletrônicos dotados de sensores, que identificam espectros de energia eletromagnética, para, posteriormente, digitalizar o sinal elétrico obtido (GONZALEZ; WOODS, 2010).

O Pré-processamento é a fase onde são realizadas transformações sobre a imagem, visando um melhoramento na imagem para o sucesso das etapas posteriores. Este melhoramento pode ser obtido, por exemplo, realçando contrastes ou reduzindo ruídos.

A Segmentação é responsável por dividir a imagem em regiões disjuntas com algum significado para a aplicação, o significado refere-se à região de interesse da imagem. Esta fase é totalmente dependente do domínio do problema.

Na etapa da descrição, procura-se extrair características das regiões segmentadas que tenham relevância para o processo. Também conhecida como seleção de

(13)

características, procura extrair detalhes que resultem em alguma informação quantitativa de interesse.

A última etapa envolve o reconhecimento e a interpretação. O reconhecimento é o processo em quep atribuído um rótulo ao objeto, baseado na informação fornecida pelo seu descritor. A interpretação envolve a atribuição de significado a um conjunto de objetos reconhecidos. A base de conhecimento é a codificação do domínio do problema em um sistema de processamento de imagem (GONZALEZ; WOODS, 2010). A seguir será discutida uma técnica de segmentação utilizada no desenvolvimento do Trabalho apresentado.

2.2 DETECÇÃO DE BORDAS

É o processo de localização e realce dos pixels de borda, aumentando o contraste entre a borda e o fundo. Uma borda em uma imagem é caracterizada por uma mudança abrupta no nível de intensidade dos pixels, é o limite entre duas regiões que apresentam propriedades distintas de níveis de cinza e são provenientes do resultado de mudanças física ou espacial de superfícies iluminadas (MARENGONI; STRINGHINI, 2010). A Figura 2 demostra as bordas detectadas de uma imagem.

Figura 2 - Bordas detectadas da imagem.

Fonte: (MARENGONI; STRINGHINI, 2010).

Os detectores de bordas são definidos para encontrar este tipo de variação nos pixels de uma imagem, quando estes estão próximos, eles podem ser conectados formando uma borda ou contorno e, assim, definindo uma região ou objeto.

A maioria das técnicas de detecção de bordas emprega operadores diferenciais de primeira ou de segunda ordem. Os operadores diferenciais ressaltam os contornos das bordas mas também amplificam o ruído da cena. Deste modo, é comum utilizar algum tipo de suavização da imagem, através de filtros, antes da operação diferencial.

Uma forma de detecção de bordas é através do uso de operadores de gradiente. O operador é um vetor que indica onde os níveis de cinza sofrem maior variação. Para a detecção de borda, geralmente utiliza-se a magnitude do gradiente. A magnitude do vetor

(14)

gradiente é denotado por:

5f =qG2

x+ G2y (1)

Onde Gx representa a derivada parcial na direção x, enquanto Gy, a derivada parcial na direção y (GONZALEZ; WOODS, 2010).

Em geral para implementar a derivada de forma numérica, são utilizadas máscaras 2 × 2 ou 3 × 3, uma para cada direção. Como exemplo tem-se o operador de Sobel, que é uma máscara 3 × 3. Gx =      −1 0 +1 −2 0 +2 −1 0 −1      (2) Gy =      +1 +2 +1 0 0 0 −1 −2 −1      (3)

Para calcular o Gx, de um pixel cujas coordenadas são (x, y), por exemplo, a máscara deve ser posicionada de forma que este pixel fique no centro dela. O valor de cada pixel, presente na região onde a máscara está localizada, é multiplicado pelo peso correspondente à sua posição na máscara e todos esses resultados são somados. Como resultado é obtido o novo valor do pixel correspondente ao processo aplicado (GONZALEZ; WOODS, 2010). A seguir será apresentada a técnica de detecção de borda utilizada.

2.2.1 Detector de bordas de Canny

O detector de bordas de Canny surgiu através dos trabalhos de Marr e Hildreth. Ele é um operador gaussiano de primeira ordem que suaviza os ruídos e localiza as bordas (CANNY, 1986). Para desenvolver este algoritmo, primeiramente Marr e Hildreth concentraram seus estudos em bordas ideais, cuja representação pode ser feita por funções em uma dimensão 1-D. Na prática este não é um modelo exato, mas representa muito bem os efeitos causados pelos ruídos.

O processo de detecção de bordas de Canny está divido em quatro etapas, sendo Uniformização da imagem, Diferenciação, Omissão de pontos de mínima intensidade e Limiarização da borda:

• Uniformização da imagem: É caracterizada pela redução de ruídos presentes na imagem, através de um filtro Gaussiano. Na prática, são aplicadas convoluções

(15)

gaussianas bidimensionais à matriz de pixels da imagem.

• Diferenciação: A imagem uniformizada é separada nas direções x e y. Assim, é possível calcular o gradiente da superfície uniforme da imagem convoluída. Considerando também a aproximação unidimensional apresentada no estágio de uniformização da imagem, os valores uniformizados na direção x são convoluídos utilizando a primeira derivada da função gaussiana unidimensional com mesmo alinhamento na direção y. Da mesma maneira, os valores uniformizados na direção y são convoluídos utilizando a primeira derivada da função gaussiana unidimensional com mesmo alinhamento, agora na direção x. Para somar os valores dos gradientes de x e y, a magnitude e o ângulo da inclinação podem ser calculados através da hipotenusa e arcotangente do ângulo, similarmente ao operador de Sobel.

• Omissão de pontos de mínima intensidade: Etapa onde é feita a localização dos pontos de máxima intensidade, ou de maneira inversa, pelos pontos de mínima intensidade, que precisam ser omitidos. Um valor de máxima intensidade ocorre no local mais alto da função gradiente ou onde a derivada da função gradiente possui valor zero. Entretanto, desejamos omitir os pontos de mínima intensidade ou pontos de mínimas direções perpendiculares com a borda.

• Limiarização da borda: É uma forma de threshold. Considerando um segmento de borda, para todo valor situado acima do limite superior de limiarização, ele é aceito. Para todo valor situado abaixo do limite inferior de limiarização, ele é rejeitado. Pontos situados entre os dois limites serão aceitos se eles estiverem relacionados com pixels que apresentem respostas fortes.

2.3 TRANSFORMADA DE HOUGH

A transformada de Hough é um método utilizado para detectar formas geométricas, que podem ser representadas por curvas paramétricas, como exemplo: retas, círculos e elipses (HOUGH, 1962). A transformada mapeia pontos entre o espaço cartesiano e o espaço de parâmetros no qual a curva foi definida.

Dessa maneira, os pontos que compõem a curva desejada são concentrados no espaço de parâmetros de acordo com as características que unem tais pontos no espaço cartesiano. O conceito principal da Transformada de Hough, está em definir um mapeamento entre o espaço de imagem (espaço cartesiano) e o espaço de parâmetros. Cada borda de uma imagem é transformada pelo mapeamento para determinar células no espaço de parâmetros, indicadas pelas primitivas definidas através do ponto analisado.

(16)

Essas células são incrementadas e indicarão, no final do processo, através das células com valor máximo no acumulador, são definidos quais os parâmetros correspondem a forma especificada (HOUGH, 1962).

2.3.1 Identificação de Círculos

A Figura 3 demostra as etapas da Transformada de Hough para a identificação de círculos, onde inicialmente é realizado um pré-processamento da imagem adquirida.

Figura 3 - Processo para detecção de padrões através da Transformada de Hough.

Fonte: Próprio autor.

Logo após o pré-processamento, é necessária a detecção de bordas da imagem e limiarização. A limiarização consiste em converter imagens em tons de cinza para imagens binárias, por isso essa técnica também é chamada limiarização. Feito isso, pode-se aplicar a Transformada de Hough, onde os pixels de cada borda que estão no espaço da imagem (x, y) são mapeados em células em um espaço de parâmetros (EP). Essas células são mapeadas em forma de acumulador, o acumulador que armazena as coordenadas dos pontos obtidos após o cálculo da Transformada de Hough. O mapeamento faz com que pontos pertencentes à mesma forma geométrica correspondam a uma única célula no espaço de parâmetros. Os parâmetros são detectados buscando no vetor acumulador as células que possuem valores máximos armazenados no mesmo. Esses parâmetros correspondem a forma do objeto especificada (HOUGH, 1962).

2.4 CAMERA PIN-HOLE

Esse modelo de câmera baseia-se na passagem dos raios luminosos por um pequeno orifício na entrada da câmera e na sua projeção em uma superfície plana, chamado o plano da imagem. Esse tipo de câmera também é conhecido como câmera perspectiva. A Figura 4 demonstra o funcionamento desse tipo de câmera (LAGANIèRE, 2011).

(17)

Figura 4 - Formação da imagem no modelo pin-hole.

Fonte: Adaptado de (LAGANIèRE, 2011).

Onde di é a distância da lente ao plano da imagem, do é a distância da lente ao objeto e f , é a distância focal. Em computação visual utiliza-se o modelo simplificado, Figura 5.

Figura 5 - Formação da imagem no modelo simplificado pin-hole.

Fonte: Adaptado de (LAGANIèRE, 2011).

Utilizando a semelhança de triângulos pode-se encontrar a equação que relaciona a projeção do objeto no plano da imagem com o objeto, através da Equação 4:

hi = fho

do (4)

O tamanho de hi no plano da imagem representa a altura do objeto na perspectiva da câmera, enquanto que o ho representa a distancia do centro do objeto ao eixo do centro óptico da câmera no sistema de coordenadas do mundo. Sendo que hi é inversamente proporcional a ho. Essa relação permite que as coordenadas do objeto no mundo 3D possam ser convertidas para o plano 2D da câmera, através de mapeamento geométrico

(18)

do mundo 3D para o plano da imagem 2D, conhecido como projeção perspectiva, por isso esse tipo de câmera também e conhecida como câmera perspectiva.

2.4.1 Parâmetros intrínsecos da câmera

A Figura 6 ilustra o modelo de uma câmera pin-hole ou Estenopeica, onde estão representados os parâmetros intrínsecos da câmera, c representa o centro de projeção, ponto em que todas as retas intersectam-se, também conhecido como centro da câmera ou centro óptico. Considerando que c está na origem, o plano Z = f , conhecido como plano da imagem ou plano focal, é posicionado em frente ao centro de projeção e f é a distância focal. A reta que passa por c e é perpendicular ao plano da imagem é chamada de eixo principal ou eixo óptico e o ponto onde o eixo principal encontra o plano da imagem é chamado de ponto principal p (MARQUES, 2011).

Figura 6 - Modelo da câmera.

Fonte: Adaptado de (MARQUES, 2011).

Tomando o modelo da câmera e considerando que o centro de projeção está localizado na origem do sistema de coordenadas 3D, e o eixo óptico é colinear ao eixo Z, um ponto no espaço com as coordenadas (X, Y, Z) é mapeado para um ponto no plano da imagem (u, v), tomando como referência a Equação 5, tem-se que:

(u, v) =  fX Z, f Y Z  (5) Se os pontos no espaço 3D e os pontos no plano da imagem são representados por coordenadas homogêneas, a Equação 5 pode ser escrita em notação matricial como:

λ      u v 1      =      fx 0 0 0 0 fy 0 0 0 0 1 0               X Y Z 1          (6)

(19)

Nas Equações 6 e 7, assume-se que a origem das coordenadas no plano da imagem é o ponto principal. Entretanto, a maioria dos sistemas de imagens define a origem como sendo o pixel com a coordenada mais à esquerda e mais acima, exigindo um mapeamento para converter o sistema de coordenadas no plano da imagem, quando necessário. Através de coordenadas homogêneas, este mapeamento é expresso por:

λ      u v 1      =      fx 0 px 0 0 fy py 0 0 0 1 0               X Y Z 1          (7)

Onde (px, py) são as coordenadas do ponto principal.

Outro fator a ser considerado é a inclinação da imagem, embora na maioria das câmeras esse parâmetro seja zero, ou seja, não há inclinação. Com isso, levando em consideração o parâmetro de inclinação τ , a Equação 7 pode ser escrita como:

λ      u v 1      =      fx τ px 0 0 fy py 0 0 0 1 0               X Y Z 1          = [K|03] Q (8) K =      fx τ px 0 fy py 0 0 1      (9)

Em que 03é um vetor nulo, Q = (X, Y, Z, 1) é um ponto no espaço 3D e K representa

os parâmetros intrínsecos da câmera, também conhecidos como matriz de calibração da câmera, onde fx fy representam a distância focal, em seus respectivos eixos, px e py,

representam as coordenadas do ponto principal da imagem. 2.4.2 Parâmetros Extrínsecos da câmera

Os parâmetros extrínsecos relacionam o sistema de coordenadas da câmera com o sistema de coordenadas do mundo, descrevem a posição e orientação da câmera em relação ao espaço 3D do mundo (SANTOS, 2012). A Equação 8 considera que a câmera está na origem do sistema de coordenadas no mundo e o plano Z = f é o plano da câmera, como detalhado na subseção 2.4.1. Para (SANTOS, 2012), a posição e orientação da câmera no sistema de coordenadas no mundo podem ser escritas como:

(20)

λq = [K|03]   R −RC 03 1            X Y Z 1          = KRhI −CiQ (10)

Sendo K a matriz que define os parâmetros intrínsecos discutidos na subseção 2.4.1, R e C representam os parâmetros extrínsecos da câmera, em que R é uma matriz de rotação 3 × 3 em relação a algum eixo do sistema de coordenadas, C define o centro de projeção da câmera no mundo em coordenadas não-homogêneas, I é uma matriz identidade 3 × 3, q = (x, y, 1) e Q = (X, Y, Z, 1) representam o mesmo ponto nos sistemas de coordenadas da câmera e no mundo 3D, respectivamente (SANTOS, 2012).

A Equação 10 define o mapeamento da câmera, relacionando os parâmetros intrínsecos e extrínsecos, considerando a matriz P = KRhI −Ci de dimensão 3 × 4, onde P é conhecida como a matriz de projeção da câmera, em que um ponto Q do mundo 3D é mapeado para um ponto q no plano da imagem 2D por q = P Q.

Com isso é feita a calibração da câmera, através de um processo onde são mostradas à câmera, um conjunto de imagens que possuem alguns pontos conhecidos, onde serão mapeadas as posições desses pontos pertencentes à imagem, com o espaço 3D, com o intuito de determinar os parâmetros intrínsecos e extrínsecos da câmera.

Esse processo se fez necessário ao projeto, pois as rotações dos motores são feitas com base na posição do centro da câmera e o centro do objeto. A partir das coordenadas 3D do centro da câmera e do centro de massa do objeto, será realizada a cinemática inversa para calcular os ângulos de rotação dos motores, que são os ângulos pan-tilt. 2.5 CALIBRAÇÃO DA CÂMERA

A calibração de câmera é o processo de determinar informações métricas tridimensionais 3D a partir de uma imagem bidimensional 2D (ZHANG, 1998). Nesse processo, é obtido um conjunto de parâmetros que serão utilizados para converter pontos de uma imagem 2D em métricas 3D do ambiente. Esse procedimento fornece os parâmetros extrínsecos e intrínsecos da câmera. Os parâmetros extrínsecos referenciam as informações da posição e orientação da câmera em relação a um sistema de coordenadas global.

(21)

2.5.1 Transformações de câmera

No processo de calibração, onde é baseado em transformações de câmera é possível identificar 4 sistemas de coordenadas, de modo que a correspondência entre esses pontos possa ser expressa como uma composição de transformações que associe os pontos 3D aos 2D correspondentes (MARQUES, 2011), sendo elas:

• Sistema de Coordenadas do Mundo (SCM): Refere-se a um sistema de coordenadas tridimensionais escolhidos de forma conveniente a definir as coordenadas de cada ponto da cena. As coordenadas de um ponto Pw neste sistema

serão denotadas como (xw, yw, zw).

• Sistema de Coordenadas da Câmera (SCC): é formado por um sistema de coordenadas com origem no centro óptico da câmera. Os eixos x e y são escolhidos de forma que sejam paralelos ao plano da imagem, e o eixo z sendo o mesmo do eixo óptico. Denotaremos como f a distância entre a origem deste sistema, e o plano de projeção. Essa distância é usualmente denominada a distância focal, e (x, y, z) como as coordenadas do ponto P neste sistema.

• Sistema de Coordenadas da Imagem (SCI): é um sistema de coordenadas bidimensional situado no plano de projeção. A origem deste sistema corresponde à projeção ortogonal do centro óptico no plano de projeção. Iremos denotar as coordenadas de um ponto neste referencial por (X, Y ). Denota-se também (Xu, Yu)

como as coordenadas da imagem, quando usamos uma câmera do tipo pin-hole, e (Xd, Yd) como as coordenadas da imagem com as distorções existentes.

• sistema de coordenadas em pixels (SCP): também consiste de um sistema de coordenadas bidimensional. As coordenadas de um ponto da imagem neste sistema são expressas em pixel. Usualmente, toma-se como centro deste sistema o canto superior esquerdo da imagem. As coordenadas de um ponto neste referencial serão denotadas por (Xf, Yf).

De acordo com (GONÇALVES, 2011) um ponto 3D pode ser mapeado em seu ponto 2D correspondente. Para isso é preciso realizar transformações de câmera entre os sistemas discutidos acima, afim de obter uma transformação do SCM para o SCP. As Figuras 7, 8, 9 e 10, representam as transformações discutidas acima.

(22)

Figura 7 - Transformação do SCM para o SCC.

Fonte: Adaptado de (MARQUES, 2011).

Figura 8 - Transformação do SCC para o SCI.

Fonte: Adaptado de (MARQUES, 2011).

Figura 9 - Transformação do SCI para o SCP.

Fonte: Adaptado de (MARQUES, 2011).

Figura 10 - Transformação do SCM para o SCP.

(23)

Segundo (MARQUES, 2011), após efetuar as transformações de câmera, obtemos a matriz de projeção na sua forma geral:

     x y 1      =      fx 0 u0 0 fy v0 0 0 1           r1 r2 r3 t1 r4 r5 r6 t2 r7 r8 r9 t3               X Y Z 1          (11)

A matriz de projeção é composta pela matriz K de parâmetros intrínsecos da câmera, a matriz que corresponde aos parâmetros extrínsecos da câmera, conhecida como matriz de Homografia, e o vetor que corresponde ao ponto no sistema de coordenadas do mundo (MARQUES, 2011).

(24)

3 METODOLOGIA E DESENVOLVIMENTO

O desenvolvimento do projeto foi dividido em cinco etapas, sendo que a fase inicial caracterizou-se pelo levantamento do referencial teórico, para a definição da arquitetura. A segunda fase consistiu na preparação do ambiente e dos instrumentos, a terceira foi feita a definição dos sistemas de software, a penúltima etapa concentrou-se no desenvolvimento e teste do sistema. Por fim, foi feita a integração do sistema. Nas próximas seções, serão descritas detalhadamente essas etapas.

3.1 REVISÃO BIBLIOGRÁFICA

Nessa etapa do projeto foi realizado o levantamento teórico envolvendo os principais conceitos a serem tratados no seu desenvolvimento, bem como o estudo das técnicas de processamento digital de imagem, rastreamento de objetos através de câmeras, além dos conceitos discutidos no tópico da fundamentação teórica. Essa etapa também incluiu a busca por ferramentas adequadas ao desenvolvimento do projeto, o estudo de técnicas de controle aplicadas aos motores, além do estudo da cinemática envolvida na câmera pan-tilt que possibilita o deslocamento da câmera ao alvo.

3.2 DEFINIÇÃO DA ARQUITETURA

O processo de definição da arquitetura baseou-se no referencial teórico levantado para a tomada de decisões de projeto, bem como, o levantamento dos possíveis equipamentos utilizados e suas restrições, além dos requisitos do sistema. Isso possibilitou a realização da análise de viabilidade da implementação do projeto da câmera. Com isso, foi possível chegar a arquitetura que está representada na Figura 11, que é formada por três subsistemas: A câmera pan-tilt, o Robô e a Rede de comunicação.

Figura 11 - Protótipo do sistema

(25)

Após a análise dos requisitos do sistema, foi feita a modelagem do sistema, levando em consideração as necessidades do sistema proposto e limitações dos equipamentos disponíveis no laboratório.

3.2.1 Câmera pan-tilt

Esse subsistema é composto por uma câmera de vídeo, a webcam Clone 11149, que é capaz de adquirir imagens coloridas numa resolução de 640x480 pixels numa taxa de 30 quadros por segundos.

Para a montagem do sistema pan-tilt foi utilizada uma base cilíndrica e suportes de alumínio para fixar os componentes. A câmera foi instalada no suporte de metal, que permite angulações em relação a um eixo vertical para possibilitar rotações em relação ao eixo que representa o ângulo tilt, este deslocamento é feito através de um motor. A estrutura de alumínio onde está fixada a câmera e o motor foi montada em cima da base móvel cilíndrica, que possui um motor capaz de rotacionar no eixo pan. Esse sistema possibilita que o centro ótico da câmera possa apontar para qualquer ponto do espaço.

O projeto original propunha a utilização da Câmera XP TAG F00954, Figura 12. Essa câmera possui o Windows embarcado. Ela permite a instalação de programas e monitoramento do sistema da câmera remotamente.

Figura 12 - Câmera XP TAG - F00954

Fonte: Próprio autor.

Devido a falta de exito na comunicação da câmera com o robô, causada pela incompatibilidade entre os sistemas Linux e Windows, pois as rotinas de acesso às imagens da câmera são desenvolvidas em Visual Basic que é incompatível com sistemas Linux, foi feita a tentativa de implementar um programa na linguagem da câmera que enviasse as informações pela porta serial, porém, não foi possível acessar o buffer onde ficam armazenadas as informações na câmera. Assim, foi necessária a mudança de abordagem no desenvolvimento do projeto, onde optou-se pela utilização de uma webcam comum, a Clone 11149.

(26)

Para controlar os movimentos da câmera foi utilizada a placa SSC32, que é um circuito controlador de servo motores e possui 32 canais de 1uS de resolução. A comunicação é feita de forma bidirecional possibilitando consultas sobre a posição dos motores através da interface serial. O controlador recebe informações referente aos ângulos de rotação dos motores através da interface serial e os executa.

Inicialmente, no projeto original, foi proposto o desenvolvimento de um sistema de controle próprio, onde seria utilizado como base o projeto de iniciação cientifica do egresso do curso (SANTOS, 2010). Durante esse processo foi confeccionada a placa de circuito que contém um microcontrolador que é responsável pela comunicação entre o robô e os motores. Devido a complexidade do projeto aliado à limitação de tempo, foi definida a mudança de abordagem, com isso surgiram duas alternativas; a utilização de uma placa Arduino UNO ou a placa SSC32. Decidiu-se utilizar o controlador SSC32, pois já possuía o equipamento, além de conhecê-lo.

3.2.2 O Robô

O sistema também contém um robô pioneer P3-AT, Figura 13, que possui um computador embarcado, onde são processadas as imagens recebidas da câmera através do barramento USB .

Figura 13 - Robô Pioneer P3-AT

Fonte: Próprio autor.

Por meio das imagens adquiridas, todo o processamento das imagens é feito servindo para calcular os parâmetros pan e tilt com base na posição do objeto em relação ao centro da imagem. Isso permite o rastreamento do objeto no espaço de trabalho através do sistema de realimentação visual.

3.3 SISTEMA DE VISÃO

O processamento das imagens inclui a calibração da câmera, pré-processamento das imagens, além da detecção de bordas e círculos na imagem. Foi aplicada a transformada

(27)

de Hough com o intuito de detectar figuras circulares, para posteriormente calcular a trajetória da câmera. O sistema de visão proposto é composto por seis etapas, Figura 14.

Figura 14 - Etapas do sistema de visão.

Fonte: Próprio autor.

3.3.1 Comunicação

A comunicação é feita entre o circuito da câmera e o computador do Robô. A transferência dos dados é feita através do protocolo de comunicação Serial RS232, com taxa de transmissão 115200. Toda informação processada pelo robô, é submetida à rotina implementada, que é capaz de encaminhar o dado ao controlador do sistema pan-tilt para atualizar a posição da câmera em relação ao objeto que se pretende rastrear no espaço de trabalho, Figura 15.

Figura 15 - Rotina de comunicação

(28)

3.3.2 Ferramentas e configurações utilizadas

As ferramentas utilizadas no projeto são open source (código aberto). Foi utilizado o sistema operacional ubuntu 12.04, Opencv 2.4.1 e QTCreator 5.2, que foi a (IDE) utilizada para a implementação dos códigos. A escolha foi devida a grande quantidade de documentação e à familiaridade com estas ferramenta, além de possuírem comunidades de desenvolvedores que disponibilizam matérias de forma gratuita.

3.4 DEFINIÇÃO DO SISTEMA DE SOFTWARE

A definição do sistema de software baseou-se nos conceitos de processamento de imagens digitais. Com isso, foram definidas as rotinas necessárias ao processo com o objetivo de extrair as características desejáveis da imagem através da segmentação e otimizar o desempenho do sistema. Por se tratar de uma aplicação em tempo real foi necessário reduzir o tempo de resposta do sistema para garantir a relevância das informações obtidas, que são resultantes das etapas de processamento de imagem.

3.4.1 Estrutura geral do software de processamento de imagem

O software de processamento de imagem está dividido em nove fases, Figura 16. Figura 16 - Fluxo do software

Fonte: Próprio autor.

A fase inicial é caracterizada pelas rotinas de aquisição e calibração da câmera, técnica discutida na fundamentação teórica. Nela são adquiridos os parâmetros extrínsecos e intrínsecos da câmera para possibilitar relacionar a posição real do objeto

(29)

com a imagem adquirida. A aquisição da imagem é feita por meio de métodos disponíveis na biblioteca do Opencv.

O processo de calibrarão da câmera foi feito também com o auxilio da biblioteca de processamento de imagem OpenCV. O algoritmo de calibração implementado está dividido em dois passos, e utiliza como padrão de calibração, o padrão de tabuleiro de xadrez, (Figura 17), que tem uma superfície plana, sua geometria é conhecida e possui quadrados alternados em branco e preto. O primeiro passo da calibração consiste na captura de diversas imagens do padrão de calibração adotado, em diversas orientações e posições. Na segunda etapa, os cantos de cada quadrado são detectados nas imagens e a correspondência entre os pontos 2D nas imagens e os 3D no plano do tabuleiro é computada, atribuindo a origem do sistema de coordenadas do mundo para um ponto relativo ao canto de um quadrado no tabuleiro, ( Figura 17), e assim, fazendo com que todos os pontos no tabuleiros estejam sobre o plano.

Figura 17 - Calibração da câmera

Fonte: Próprio autor.

A segunda fase é composta pelas rotinas de processamento e segmentação do vídeo. Essa fase converte o vídeo em uma sequência de frames para serem processados na etapa posterior.

Feito o processo de captura dos frames do vídeo obtido pela câmera pan-tilt, é necessária a etapa de pré-processamento das imagens adquiridas, nessa etapa é aplicado um filtro gaussiano através do Opencv, onde foi aplicada uma mascara 5x5.

A etapa seguinte é a conversão da imagem RBG para tons de cinza. Isso é feito para preparar a imagem para a próxima etapa, a detecção de bordas. Nessa etapa, a imagem original possui três canais e é convertida para tons de cinza. Esse processo é necessário devido as características do detector de bordas de Canny implementado pela

(30)

biblioteca Opencv.

A etapa de detecção de bordas é responsável por identificar as mudanças bruscas de intensidade nos pixels da imagem. Essa mudança brusca é caracterizada como a borda. A detecção é feita por meio do método de detecção de bordas de Canny, que utiliza um operador gaussiano para suavizar os ruídos, possibilitando a detecção das bordas.

A identificação dos círculos é a etapa caracterizada pelo o uso da Transformada de Hough, que é feita pela identificação de figuras geométricas através de curvas paramétricas que representam possíveis figuras geométricas. Nessa etapa é feita a detecção de círculos com base no mapeamento dos pontos entre o espaço cartesiano e o espaço de parâmetros no qual a curva foi definida. A figura que se enquadrar nas características desejadas será selecionada como o círculo procurado.

Após ter obtido o círculo, a próxima etapa será encontrar as coordenadas do centro da imagem no sistema de coordenadas do mundo, que representa o centro ótico da câmera, e as coordenadas 3D centrais do objeto, que é conhecido como centroide do objeto.

A penúltima etapa é caracterizada por traçar uma reta que liga os pontos encontrados na fase anterior. Essa reta possui os parâmetros que possibilitam o rastreamento do objeto, pois essa reta define o deslocamento da câmera. As coordenadas (x, y) da reta presentes na imagem serão convertidas em uma coordenada (xm, ym, zm)

do mundo real, para permitir o cálculo da cinemática inversa do sistema pan-tilt. A cinemática gera os valores de ângulo para a rotação dos motores, e é feita baseada em operações matriciais, onde é tomado como referência o ponto no espaço que pretende-se alcançar para calcular as rotações dos eixos, de maneira que se ajustem até a posição desejada.

Por fim, os dados gerados são convertidos para os valores de ângulos correspondentes ao controlador SSC32, que controla os motores, possibilitando que a câmera realize o rastreamento do objeto no espaço de trabalho.

3.5 CINEMÁTICA INVERSA DA CÂMERA PAN-TILT

A cinemática inversa define os ângulos de rotação dos motores necessários para apontar a câmera em um ponto do espaço de trabalho. Para isso foi necessária a modelagem do sistema pan-tilt, onde foi definida a orientação dos eixos das juntas rotacionais em relação a base da câmera.

Câmeras pan-tilt possuem sistema de coordenadas móvel, onde é descrito através da transformação de um ponto 3D visto pela câmera, sendo ele o ponto Mc= h

Xc Yc Zc 1 iT

(31)

h

Xm Ym Zm 1 iT

.

A Figura 18 mostra os sistemas de coordenadas utilizados no processo de transformação ou enquadramento do ponto no centro da câmera. Onde inicialmente o sistema de coordenadas da base da câmera está sendo relacionado com as coordenadas do mundo.

Figura 18 - Transformações de coordenadas.

Fonte: (VICENTE, 2009).

O segundo grupo de eixos representa a transformação inicial executada no processo, onde será feita a rotação da base da câmera. Essa rotação implica na mudança do valor do ângulo pan. O terceiro grupo de sistema de coordenadas representa a rotação que implica na mudança do valor do ângulo tilt. Por fim, o último grupo representa o alinhamento do centro da câmera ao ponto 3D no sistema de coordenadas do mundo.

Matematicamente utilizou-se matrizes de transformação 4 × 4 para executar as transformações descritas acima, onde tem-se:

mM =mT

b.bTpan(α).panTtilt(β).tiltTc.cM (12)

Onde α e β denotam os valores atuais dos ângulos pan e tilt, assumindo que não há movimento de translação no sistema, então tem-se somente rotações. A nova equação será:

mM =mR

b.bRpan(α).panRtilt(β).tiltRc.cM (13)

SendomRb= diag(1, −1, −1), tiltRc a matriz identidade, as outras transformações

(32)

bR pan=      cos(α) 0 − sin(α) 0 1 0 sin(α) 0 cos(α)      (14) panR tilt=      1 0 0 0 cos(β) − sin(β) 0 sin(β) cos(β)      (15)

Utilizando as transformações apresentadas, a matriz projeção de perspectiva da câmera pode ser obtida através de P =hcR

m 03x1 i

, onde cRm corresponde a inversa de mR

c.

Dada a definição dos sistemas de coordenadas, a centralização de um objeto na imagem é dada simplesmente pela regulação dos ângulos de pan e tilt, de forma que a câmera se desloque posicionando o centro do objeto para o centro da imagem. Utilizando a equação de projeção do objeto na imagem, que é dada por:

     u v 1      = P   D 0  = KDR ⇒ (KR)−1      u v 1      (16)

Sendo que D é uma direção e é dada por D =hX Y Zi

t

, os demais parâmetros já foram descritos na seção 2.4. Através do ponto obtido com a equação da projeção, são encontrados os valores dos ângulos pan e tilt, em termos formais tem-se:

m

D =mRb.bRpan(α+δα).panRtilt(β+δβ).tiltRc. [00kmDk]T (17)

Onde δα e δβ denotam o valor de incremento dos ângulos pan e tilt, que precisam ser incrementados para alcançar a nova posição no espaço.

Esse processo pode ser simplificado, pois considerando que o incremento do ângulo pan é independente do ângulo tilt, pode-se posicionar os ângulos para qualquer posição. Levando isso em consideração, assume-se que os ângulos são iguais e estão na posição zero. Aplicando essa inferência na Equação 17, é possível chegar nas seguintes relações:

δα = − arctan(Dx Dz ) (18) δβ = − arctan(q Dy D2 x+ Dz2 ) (19)

(33)

3.6 TESTES

Os testes foram realizados em paralelo ao desenvolvimento do sistema, e de forma incremental, onde à cada passo foram executados testes referentes a resposta do sistema tomando como entrada diferentes parâmetros. Durante o processo de testes foram necessários ajustes no programa e redefinição de parâmetros do sistema, pois se fez necessária a definição dos thresholds. A definição dos thresholds foi baseada no histograma da imagem, onde é calculado o tom de cinza médio do histograma, com isso a imagem será segmentada em dois grupos de pixels que serão separados pelo thresholds encontrado. Após adquirir esses valores eles serão aplicados ao sistema e validados, através da comparação de resultados.

Os testes inicialmente foram feitos em um ambiente Estruturado, sempre mantendo as mesmas características, com o intuito de garantir a confiabilidade das respostas do sistema.

O ambiente estruturado conta com lampadas, para garantir que os testes sejam executados em um ambiente que possui condições semelhantes de iluminação. O posicionamento da bola para a captura dos dados foi feito através de um tipé, onde, a bola foi fixada através de um barbante ao tipé, com isso, a bola foi fixada em uma posição. O tripé foi necessário pois ao tentar fixar a bola em uma posição, o barbante estará sujeito a vibrações provenientes do braço do usuário que testa o sistema, isto justifica a utilização do tripé. Os testes foram realizados em uma bancada e parede branca, isso ajuda no processo de detecção da bola.

(34)

4 RESULTADOS E DISCUSSÕES

Este capítulo apresenta os resultados obtidos no projeto proposto. As seções seguintes estão organizadas de acordo com a modelagem de hardware e software descrita na Seção 3. A Seção 4.1 apresenta os resultados relacionados a estrutura criada do projeto e o processamento de imagens para o sistema proposto. Na Seção 4.2 serão apresentados os resultados referentes à cinemática inversa dos motores em relação às coordenadas adquiridas através do processamento das imagens.

4.1 ESTRUTURA MONTADA

As figuras a seguir representam a simulação do processo de rastreamento visual do objeto e a estrutura montada para o desenvolvimento das atividades propostas, através de uma câmera pan-tilt. A Figura 19, representa a base móvel da câmera. Ela é chamada de pan-tilt, e é composta por dois servomotores.

Figura 19 - Sistema Pan-Tilt, Base da câmera.

Fonte: Próprio autor.

Através da Figura 19 é possível observar que o servomotor superior executa rotações referentes ao ângulo Tilt. Já o motor responsável pelo movimento referente ao ângulo Pan, está embutido na base circular.

A Figura 20, representa o pan-tilt e o controlador SSC32. É possível observar o controlador conectado ao cabo e conector DB9, que é responsável pela comunicação com o computador, uma vez que as simulações foram realizadas no computador, com um sistema operacional semelhante ao do robô.

(35)

Figura 20 - Controlador SSC32 e o Pan-Tilt.

Fonte: Próprio autor.

A imagem a seguir, Figura 21, representa a imagem capturada pela câmera antes do pré-processamento.

Figura 21 - Imagem capturada da câmera.

Fonte: Próprio autor.

A Figura 22 representa a imagem após a aplicação dos algoritmos implementados. Devido ao movimento do objeto, o screenshot não exibe as bordas em sua totalidade, porém foi demonstrado no exemplo acima o funcionamento da mesma ao utilizar imagem estática como entrada para o método.

Figura 22 - Resultado do pré-processamento.

(36)

A Figura 23 representa o resultado final após todas as etapas do processamento da imagem. É possível observar o objeto identificado, bem como a trajetória entre o centro da imagem e o centro do objeto.

Figura 23 - Rastreamento do objeto.

Fonte: Próprio autor.

4.2 RESULTADOS DO PROCESSAMENTO DE IMAGENS

Como resultado deste trabalho tem-se um algoritmo que é capaz de receber informações de vídeo através da câmera e processá-las, de maneira a extrair as características das imagens capturadas. Esse algoritmo possibilita a identificação e o rastreamento do objeto na imagem. A aquisição do vídeo é realizada através da câmera, e em tempo real. A captura das imagens de vídeo foi feita através de um algoritmo implementado que é capaz de separar o vídeo em frames e passá-lo para uma função que realiza o pré-processamento e em seguida todas as outras etapas do processamento de imagem desenvolvido. A Figura 24 representa um frame do vídeo original.

Figura 24 - Vídeo original.

(37)

4.2.1 Calibração da Câmera

Como resultado da calibração da câmera que fui feito através da exibição de uma imagem com o padrão chessbroad, 20 vezes em diferentes posições a câmera, Figura 25, foi obtida a matriz de parâmetros intrínsecos que é expressa pela Equação 20.

Figura 25 - Calibração da câmera usando chessboard.

Fonte: Próprio autor.

K ≈      1068 0 343 0 1086 347 0 0 1      (20)

Os valores encontrados para a matriz K foram obtidos através de aproximações, sendo que quanto maior a quantidade de amostras, melhores serão os resultados. Os valores encontrados estão em pixels (px) e foram convertidos para centímetros (cm) para poderem ser utilizados na etapas posteriores. Nesse trabalho foram utilizadas 20 amostras como foi discutido. O Quadro 1 apresenta os valores encontrados para cada amostra apresentada na Figura 25, onde é possível observar que há uma variação considerável nos valores dos parâmetros intrínsecos encontrados. Com isso, o valor utilizado foi baseado na media ponderada desses valores, isso justifica os valores aproximados da matriz de calibração.

(38)

Quadro 1 - Relação amostras e resultados da calibração da câmera. Amostras fx (px) fy (px) u0 (px) v0 (px) 1 949 947 353 185 2 1253 1247 419 276 3 960 962 353 285 4 1066 1078 339 327 5 1126 1142 338 350 6 1108 1139 325 382 7 1193 1246 323 440 8 1055 1077 354 386 9 1028 1055 331 377 10 993 991 410 306 11 1088 1127 317 389 12 1081 1100 335 363 13 1089 1110 333 371 14 1080 1099 337 364 15 1033 1044 336 351 16 1048 1071 324 385 17 1014 1025 330 344 18 1062 1085 313 362 19 1073 1066 385 336 20 1110 1089 371 333

A matriz K encontrada é essencial para o sistema proposto, pois é com base nessa matriz que é aplicada a cinemática inversa para obter as relações dos ângulos pan-tilt. Por isso, se faz necessário que os valores da matriz sejam muito próximos da realidade para garantir a confiabilidade dos ângulos encontrados.

4.2.2 Processamento das imagens

Para realizar o processamento das imagens, inicialmente foi desenvolvido um método responsável por separar os frames do vídeo em imagens. Posteriormente, as imagens são pré-processadas através de uma função callback, que é responsável por executar as operações sobre a imagem, bem como realizar a degradação da imagem, alterar sistemas de cores, com o objetivo de obter um melhor resultado final na fase posterior. Esse método é aplicado a cada frame presente no vídeo.

4.2.3 Pré-processamento

O pré-processamento das imagens foi dividido em duas etapas. A etapa inicial consiste em degradar a imagem através de um processo de filtragem, onde a imagem é suavizada através de um filtro gaussiano, com o intuito de remover os ruídos. A Figura 26

(39)

demostra o resultado obtido após aplicar a filtragem. Figura 26 - Imagem filtrada.

Fonte: Próprio autor.

Após a remoção de ruídos da imagem, foi feita a conversão da imagem RGB para Tons de cinza. A Figura 27 representa o resultado obtido após o processo de conversão. Esse conversão se faz necessária para as próximas etapas, principalmente no processo de detecção de bordas.

Figura 27 - Imagem convertida para tons de cinza.

Fonte: Próprio autor.

4.2.4 Detecção de círculos

Inicialmente, foi implementada uma técnica de segmentação, onde são obtidas as bordas da imagem para facilitar a tarefa de identificação do objeto e região de interesse na imagem. O processo aplicado foi discutido na Seção 2.2, através do método de Canny são obtidas as bordas das imagens. A Figura 28 representa o resultado do método aplicado na imagem.

(40)

Figura 28 - Bordas detectadas.

Fonte: Próprio autor.

Na Figura 28 é possível notar a presença de um círculo na imagem, porém para o programa, são apenas conjuntos de pixels. Com isso, surgiu a necessidade de se implementar um algoritmo capaz de realizar a detecção de círculos. Após a obtenção das bordas, fez-se necessária a implementação de um algoritmo de detecção de círculos, no qual foi utilizada a Transformada de Hough, discutida na Seção 2.3. Esse método da transformada recebe como parâmetro um vetor referente à imagem com as bordas detectadas, onde será feita a detecção dos círculos baseada nos parâmetros definidos, como o raio do círculo que se pretende identificar, a menor distância entre os círculos identificados, bem como a maior limiarização ou máximo Threshold baseado no algoritmo de Canny.

A Figura 29 representa os círculos detectados através da transformada de Hough, além de exibir a trajetória calculada entre o centro do círculo e o centro da imagem, que representa o centro da câmera.

Figura 29 - Círculos detectados.

Fonte: Próprio autor.

Após a finalização do processamento de imagem, foram feitos testes com o intuito de analisar os resultados do processamento da imagem referente a confiabilidade dos dados

(41)

adquiridos. A Figura 30 representa os estágios do processo descrito para algumas amostras utilizadas. Inicialmente foram utilizadas 15 amostras, onde a bola foi posicionada em posições diversas no campo de visão da câmera.

Figura 30 - Resultado do módulo de processamento de imagem.

Fonte: Próprio autor.

O Quadro 2 apresenta os valores encontrados para as coordenadas do objeto no plano da imagem.

(42)

Quadro 2 - Relação amostras e resultados da calibração da câmera. Amostras Coordenada x (px) Coordenada y (px)

1 -85 -167 2 51 -167 3 -207 -167 4 3 -167 5 -233 123 6 -81 123 7 -51 29 8 -51 195 9 43 161 10 139 167 11 47 135 12 -27 -45 13 139 -59 14 -79 39 15 47 285

4.2.5 Transformações entre sistemas de coordenadas

Após finalizar o processamento de imagem, o próximo passo foi desenvolver um método que transformasse as coordenas da imagem 2D para o plano do mundo. Esse método utiliza a matriz de transformação discutida na fundamentação teórica. Para realizar a projeção de perspectiva do ponto no plano 2D para o sistema de coordenadas do mundo. Com base nas informações obtidas após o processo de transformação, onde foram obtidos as coordenadas 3D do centroide do circulo no sistema de coordenada do mundo, foram feitos cálculos da cinemática da câmera pan-tilt. O quadro 2 apresenta os valores dos pontos do centroide do objeto obtido em relação ao centro óptico da câmera, e seus respectivos ângulos de rotação, que possibilita a câmera pan-tilt apontar para o centro do objeto.

Após ter adquirida as coordenas do mundo, foi necessário calcular os valores dos ângulos de rotação que posicionam a câmera no centro do objeto. O método implementa as equações que descrevem os ângulos δα e δβ apresentados na Sessão 3.5. A seguir serão apresentados os resultados obtidos após o processo de rastreamento do objeto que consistiu em manter a bola no centro da câmera.

O Quadro 3 representa os dados obtidos antes da câmera executar o deslocamento, onde as distâncias x e y representam a distância do objeto em relação ao centro da câmera, sendo que cada eixo contém informações para o cálculo da rotação dos servomotores, que são dados em graus. Os valores que pertencem as colunas pan e tilt representam os graus necessários para que os servomotores se desloquem e coincida com o centro do objeto ao

(43)

Quadro 3 - Relação distância e ângulo calculado.

Amostras Distância x (px) Distância y (px) Pan (◦) Tilt (◦)

1 -45 44 -9 9 2 -45 16 -1 3 3 -63 0 -10 0 4 -66 -17 -13 -3 5 -17 -34 -3 -6 6 -64 -46 -12 -9 7 62 -31 12 -6 8 9 -2 7 -8 9 35 -40 7 -8 10 6 51 1 10 11 12 22 2 4 12 44 40 8 -8 13 8 34 2 7 14 33 46 6 9 15 15 -15 3 -3 da câmera.

O Quadro 4 representa os dados obtidos após a execução do movimento da câmera para posicionar o objeto no centro da câmera.

É possível notar que o valores referentes a distância do centro do objeto em relação a câmera foi reduzida, o mesmo ocorre com os valores dos ângulos necessários para o deslocamento dos servomotores.

Os valores apresentados nos Quadros 1 e 2, demonstram que o resultado se aproxima dos valores desejados, porém não conseguem alcançar o valor ótimo que seria a distância x = y = 0 e ângulos de rotação igual a zero, isso foi devido a problemas com a estrutura montada, que não permitiu o posicionamento da câmera no centro do suporte, além de algumas limitações dos servomotores e arredondamentos de valores obtidos.

A Figura 31 apresenta a posição inicial do objeto na imagem no primeiro quadro mais a esquerda, o segundo quadro representa a posição câmera após o deslocamento no eixo pan, é possível notar a aproximação do objeto ao centro da câmera.

O último quadro representa o segundo deslocamento, que é feito no eixo tilt. Essa sequencia de imagens agregadas expressam alguns valores apresentados nas tabelas descritas nessa sessão.

Por fim, foi desenvolvido um método para comunicação do robô com os servomotores do pan-tilt. Como resultado foi implementada uma rotina que realiza comunicação serial entre a placa SSC32 e o robô. A comunicação é feita através da transmissão de caracteres através da interface serial, seguindo as especificações do

(44)

Quadro 4 - Relação distância e ângulo calculado apos o deslocamento da câmera. Amostras Distância x (px) Distância y (px) Pan (◦) Tilt (◦)

1 -7 -10 -1 0 2 -8 -8 -1 0 3 -8 -8 -1 0 4 -10 -6 -1 -1 5 -9 -8 -1 0 6 -8 -8 -1 -1 7 12 2 2 0 8 5 -2 1 0 9 7 -7 1 -1 10 5 -2 1 0 11 7 0 1 0 12 7 0 1 0 13 7 0 1 -3 14 2 0 0 0 15 6 0 1 0

Figura 31 - Deslocamento da câmera.

Fonte: Próprio autor.

fabricante do controlador, sendo que é necessário utilizar um formato de dados, para que o controlador entenda a instrução que o usuário pretende executar. Os caracteres enviados representam os valores correspondentes aos ângulos de rotação desejado para posicionar a câmera em determinado ponto do espaço de trabalho.

(45)

5 CONSIDERAÇÕES FINAIS

Após o desenvolvimento do projeto foi possível compreender os principais fatores que influenciam no processo de aquisição e processamento de informações em tempo real. Um grande desafio é o processamento de imagem em tempo hábil para o sistema, o que demandou um alto custo computacional. Isso sugeriu que bons resultados no processamento de imagens dependem bastante das condições do ambiente de testes, pois, variações de iluminação influenciaram bastante nos resultados da detecção de borda, muitas vezes a sombra do objeto acabou sendo detectada como sendo um objeto válido para o sistema, além de ocorrem problemas que exigem que o desenvolvedor refaça os ajustes dos threshold a todo momento, esse problema é resolvido quando utiliza-se iluminação artificial, pois a luz é distribuída uniformemente pelo ambiente de teste, esses fatores acabam por agregar limitações ao sistema.

Outro fator a ser destacado é o fato que na imagem, a depender da distância do objeto a câmera a bola possuirá dimensões diferentes, necessitando uma analise maior da informação obtida. Durante o processo de transformação de sistemas de coordenadas foi necessária a conversão entre unidades de medidas diferentes a exemplo da conversão dos pixels em centímetros.

Com a finalização do projeto foi possível constatar que o sistema proposto atendeu as expectativas, porém foi preciso mudar de abordagem durante o processo, como foi discutido na metodologia. Essa mudança foi caracterizada pela mudança de câmera e controlador utilizado durante o projeto.

Por fim é importante ressaltar que os equipamentos utilizados foram escolhidos com base nos equipamentos disponíveis no laboratório, com isso, é possível obter melhores resultados com a utilização de uma câmera com melhor qualidade, pois a câmera utilizada possui distorções que aumentam o erro.

(46)

REFERÊNCIAS

CANNY, J. A computational approach to edge detection. 1986. IEEE Transactions on Pattern Analysis and Machine Intelligence, v.8, n. 6, p.679-698.

CORKE, P. I. Visual control of robot manipulators a review. 1994. In: HASHIMOTO, K. (Ed.). Visual Servoing: Real-Time Control of Robot Manipulators Based on Visual Sensory Feedback. [S.l.]: World Scientific, (Robotics and Automated Systems, v. 7). p.1-31.

CRAIG, J. J. Introduction to Robotics, Mechanics and Control. [S.l.]: Addison-Wesley, 2004.

GONZALEZ, R. C.; WOODS, R. E. Processamento digital de imagens. São Paulo: Pearson Prentice Hall, 2010.

GONÇALVES, I. S. Desenvolvimento de um sistema reativo para desvio de obstáculo. 2011. Dissertação (Bacharelado) - Universidade Estadual de Feira de Santana , Feira de Santana, BA.

HOUGH, P. V. C. Method and means for recognizing complex patterns. 1962. U.S. Patent 3 069 654, Dec. 18.

LAGANIèRE, R. OpenCV 2 Computer Vision Application Programming Cookbook. [S.l.]: Packt Publishing, 2011.

MARENGONI, M.; STRINGHINI, D. Tutorial: Introdução à visão computacional usando opencv. Revista de Informática Teórica e Aplicada, v. 16, n. 1, 2010. MARQUES, C. C. S. C. Análise Comparativa das Técnicas de Controle Servo Visual de Manipuladores Robóticos Baseadas em Posição e em Imagem. 2011. Dissertação (Mestrado) - Universidade de Brasilia, Brasília, DF.

SANTOS, M. C. Revisão de Conceitos em Projeção, Homografia, Calibração de Câmera, Geometria Epipolar, Mapas de

Profundidade e Varredura de Planos. 2012. Disponível em:

<http://www.ic.unicamp.br/ rocha/teaching/2012s1/mc949/aulas/additional-material -revision-of-concepts-homography-and-related-topics.pdf>. Acesso em: 20 jun. 2014. SANTOS, V. A. B. Ajuste dos Parâmetros de Controle para um Motor de Corrente Continua. 2010. Trabalho de Iniciação Científica.

VICENTE, D. A. P. Event Detection with Pan-Tilt Cameras. 2009. Dissertação (Mestrado) - UNIVERSIDADE TÉCNICA DE LISBOA INSTITUTO SUPERIOR TE ÉCNICO , Lisboa, LIS, PT.

ZHANG, Z. A flexible new technique for camera calibration. 1998. Technical report, Microsoft Corporation.

Referências

Documentos relacionados

Esta realidade exige uma abordagem baseada mais numa engenharia de segu- rança do que na regulamentação prescritiva existente para estes CUA [7], pelo que as medidas de segurança

Here, we aim to understand how expression of RA degradation enzymes (Cyp26) can be correlated with RA distribution and functions during amphioxus (B. lanceolatum)

F REQUÊNCIAS PRÓPRIAS E MODOS DE VIBRAÇÃO ( MÉTODO ANALÍTICO ) ... O RIENTAÇÃO PELAS EQUAÇÕES DE PROPAGAÇÃO DE VIBRAÇÕES ... P REVISÃO DOS VALORES MÁXIMOS DE PPV ...

The Development Journals are also proud to present an interview with economist and professor Wilson Cano, one of the most important proponents of Brazilian develop-

nesse contexto, principalmente em relação às escolas estaduais selecionadas na pesquisa quanto ao uso dos recursos tecnológicos como instrumento de ensino e

O Programa de Avaliação da Rede Pública de Educação Básica (Proeb), criado em 2000, em Minas Gerais, foi o primeiro programa a fornecer os subsídios necessários para que

Na experiência em análise, os professores não tiveram formação para tal mudança e foram experimentando e construindo, a seu modo, uma escola de tempo

O funcionamento com baterias não estará disponível quando o no-break estiver no modo bypass (consulte a seção de Solução de problemas).. Fault (falha) O no-break está