Você está na página 1de 86

UNIVERSIDADE CATLICA DE GOIS DEPARTAMENTO DE COMPUTAO GRADUO EM CINCIA DA COMPUTAO

RECONHECIMENTO E RASTREAMENTO DE OBJETOS

ANA CAROLINA CORREIA RZIO

DEZEMBRO, 2008

UNIVERSIDADE CATLICA DE GOIS DEPARTAMENTO DE COMPUTAO GRADUO EM CINCIA DA COMPUTAO

RECONHECIMENTO E RASTREAMENTO DE OBJETOS

Trabalho de Trabalho de Concluso de Curso apresentado por Ana Carolina Correia Rzio Universidade Catlica de Gois, como requisito parcial para obteno do ttulo de Bacharel em Cincia da Computao aprovado em 12/12/2008 pela Banca Examinadora: Professor Alexandre Ribeiro, MsC. UCG Orientador Professor Leandro Luis Galdino de Oliveira, Dr. UCG Professor Augusto Silva. UCG

ii

RECONHECIMENTO E RASTREAMENTO DE OBJETOS

ANA CAROLINA CORREIA RZIO

Trabalho de Concluso de Curso apresentado por Ana Carolina Correia Rzio Universidade Catlica de Gois Departamento de Computao, como parte dos requisitos para obteno do ttulo Bacharel em Cincia da Computao.

Professor Alexandre Ribeiro, MsC Orientador

Professor Jeov Martins Ribeiro, MsC Coordenador do TCC

iii

DEDICATRIA

Dedico este trabalho, aos meus pais, Ana Lcia e Jos Rzio pelo amor, carinho, dedicao, compreenso e principalmente por acreditarem em meu sucesso e ajudarem a realizar mais um dos meus sonhos.

Ao meu amigo e professor Alexandre Ribeiro pela amizade, companheirismo e considerao.

iv

EPGRAFE

O sucesso nasce do querer, da determinao e persistncia em se chegar a um objetivo. Mesmo no atingindo o alvo, quem busca e vence obstculos, no mnimo far coisas admirveis. Jos de Alencar

AGRADECIMENTOS

Agradeo primeiramente a Deus por ter me sustentado durante todo esse perodo.

Agradeo aos meus pais, irmos e cunhada, pelo amor, carinho, pacincia e apoio em todos os momentos, principalmente naqueles em que tive que dedicar parte do meu tempo a este projeto.

Agradeo aos meus professores e orientadores Augusto Silva e Alexandre Ribeiro pela pacincia, ateno e dedicao oferecida.

Agradeo ao Alexandre Ribeiro, que desde meu ingresso universidade, esteve ao meu lado, incentivando, apoiando e aconselhando em todos os aspectos.

minha amiga Maressa, agradeo pela amizade, confiana, apoio, incentivo e pelos bons momentos proporcionados.

E aos demais, agradeo pela compreenso, apoio, carinho, amizade e companheirismo em especial ao Max, Jean, Yuriana, Thiago Rodrigues, Iury, Paulo e Shilene.

vi

RESUMO

Este trabalho tem como propsito o estudo e a apresentao de algumas tcnicas de rastreamento de padro fundamentadas na teoria de viso computacional. Com o objetivo de contextualizar o projeto de futebol de robs promovido pela FIRA [6], dentre as tcnicas apresentadas, a escolhida foi baseada na representao das cores dos objetos (Algoritmo CamShift). O algoritmo utiliza tcnicas de processamento para localizar e identificar os alvos pertencentes cena do jogo e assim, determinar suas trajetrias baseando-se na distribuio das cores e na semelhana com um modelo especificado. O principal objetivo garantir que as aes atribudas a cada rob sero executadas corretamente.

Palavras-chave: Viso Computacional, Rastreamento de Objetos e Algoritmo CamShift.

vii

ABSTRACT

This work has the purpose of studying and presentation of some techniques of pattern tracking based in the theory of vision computational. With the objective of contextualize the robots soccer project promoted for FIRA [6], within the presented techniques, the chosen was basing on the representation of the colors of the objects or targets (CamShift Algorithm). The algorithm uses processing techniques to locate and to identify the objects that belong to a games scene, in order to determine their paths basing on the colors distribution and on the similarity with a model specified. The main objective is to guarantee that the actions attributed to each robot will be done correctly.

Key word: Computer Vision, Target Tracking and CamShift Algorithm.

viii

RECONHECIMENTO E RASTREAMENTO DE OBJETOS

SUMRIO

LISTA DE FIGURAS .............................................................................................................. xii LISTA DE TABELAS ............................................................................................................xiii LISTA DE ABREVIATURAS E SIGLAS ............................................................................. xiv LISTA DE SMBOLOS ........................................................................................................... xv 1. INTRODUO ...................................................................................................................... 1 1.1. Viso Computacional .................................................................................................... 2 1.2. Caracterizao do problema .......................................................................................... 2 1.3. Objetivos do projeto ...................................................................................................... 3 1.4. Estrutura e contedo do trabalho ................................................................................... 4 1.5. Concluso ...................................................................................................................... 4 2. PROCESSAMENTO DIGITAL DE IMAGENS ................................................................... 6 2.1. Aquisio da Imagem .................................................................................................... 6 2.1.1. Digitalizao da Imagem ............................................................................................ 6 2.2. Espao de cores ............................................................................................................. 7 2.2.1. Escala de cinza............................................................................................................ 7 2.2.2. Espao RGB ............................................................................................................... 8 2.2.3. Espao HSV................................................................................................................ 9 2.3. Convoluo .................................................................................................................. 10 2.4. Filtro Gaussiano ........................................................................................................... 10 2.5. Segmentao ................................................................................................................ 11 2.5.1. Subtrao .................................................................................................................. 11 2.5.2. Binarizao ............................................................................................................... 12 2.6. Morfologia Matemtica ............................................................................................... 12 2.6.1. Dilatao ................................................................................................................... 12 2.6.2. Eroso ....................................................................................................................... 13 2.6.3. Abertura .................................................................................................................... 14 ix

2.6.4. Fechamento ............................................................................................................... 15 2.7. Conectividade .............................................................................................................. 15 2.8. Histograma .................................................................................................................. 16 2.9. Retroprojeo............................................................................................................... 17 2.10. Concluso .................................................................................................................. 17 3. FUTEBOL DE ROBS ....................................................................................................... 19 3.1. Estrutura Fsica Definida ............................................................................................. 19 3.2. Estrutura Funcional ..................................................................................................... 20 3.3. Concluso .................................................................................................................... 21 4. SISTEMA FUNCIONAL ..................................................................................................... 22 4.1. Subsistema de Viso Computacional .......................................................................... 22 4.1.1. Segmentao dos Alvos ............................................................................................ 23 4.2. Subsistema Estrategista ............................................................................................... 25 4.3. Subsistema de Comando e Comunicao .................................................................... 25 4.4. Concluso .................................................................................................................... 25 5. RASTREAMENTO DE OBJETOS ..................................................................................... 27 5.1. Segmentao pelo Contorno ........................................................................................ 27 5.1.1. Modelo de Observao ............................................................................................. 27 5.1.2. Modelo de Movimento ............................................................................................. 29 5.1.3. Estimao do Movimento ......................................................................................... 31 5.1.4. Estimao da Forma ................................................................................................. 32 5.2. Segmentao pela Cor ................................................................................................. 33 5.2.1. Mean-Shift ................................................................................................................ 33 5.2.2. CamShift ................................................................................................................... 35 5.3. Algoritmos Estudados ................................................................................................. 37 5.3.1. Algoritmo de BEM e COSTA .................................................................................. 37 5.3.1.1. Etapas do Algoritmo .............................................................................................. 38 5.3.2. Algoritmo de CamShift ............................................................................................ 39 5.3.2.1. Etapas do Algoritmo .............................................................................................. 39 5.4. Avaliao dos Algoritmos ........................................................................................... 40 5.4.1. Avaliao do CamShift............................................................................................. 40 5.4.2. Avaliao do Filtro de Kalman ................................................................................. 41 5.5. Concluso .................................................................................................................... 41 x

6. ESTRUTURA DO CENRIO ............................................................................................. 42 6.1. Estrutura Utilizada ....................................................................................................... 42 6.2. Ferramentas e Componentes ........................................................................................ 44 6.2.1. Biblioteca OpenCV................................................................................................... 44 6.2.1.1. CxCore ................................................................................................................... 45 6.2.1.2. Cv .......................................................................................................................... 46 6.2.1.3. Highgui .................................................................................................................. 46 6.2.1.4. CvAux.................................................................................................................... 47 6.3. Mtodos e funes ....................................................................................................... 47 6.4. Concluso .................................................................................................................... 48 7. APLICAO DESENVOLVIDA ....................................................................................... 49 7.1. Localizao .................................................................................................................. 49 7.2. Identificao ................................................................................................................ 56 7.3. Rastreamento ............................................................................................................... 58 7.4. Resultados.................................................................................................................... 60 7.5. Concluso .................................................................................................................... 61 8. CONCLUSO ...................................................................................................................... 63 REFERNCIAS BIBLIOGRFICAS ..................................................................................... 65 APNDICE .............................................................................................................................. 67

xi

LISTA DE FIGURAS

Figura 1 Processo de digitalizao da imagem...................................................................... 7 Figura 2 Imagem na escala de cinza ...................................................................................... 7 Figura 3 Espao de cores RGB[10]........................................................................................ 8 Figura 4 Espao de cores HSV[10] ........................................................................................ 9 Figura 5 Processo de convoluo a) Primeiro passo. b) Segundo passo. ............................ 10 Figura 6 Processo de Dilatao[9] ...................................................................................... 13 Figura 7 Processo de Eroso[9] .......................................................................................... 14 Figura 8 Processo de Abertura[9] ........................................................................................ 14 Figura 9 Processo de Fechamento[9] .................................................................................. 14 Figura 10 Vizinhana............................................................................................................ 16 Figura 11 Cenrio de uma partida de futebol robtico segundo categoria MiroSot [6] ..... 18 Figura 12 Medidas e marcaes segundo as regras da Mirosot[6] ..................................... 19 Figura 13 Esquema do funcionamento do futebol de robs [17] ......................................... 20 Figura 14 Etapas do sistema de viso computacional ......................................................... 22 Figura 15 Tcnicas de processamento. ................................................................................. 24 Figura 16 Estimativa do contorno dos alvos [18] . ............................................................... 28 Figura 17 Regio de interesse, centro de massa e vetor Mean-Shift[22] ............................ 33 Figura 18 Convergncia no procedimento de Mean-Shift [22]............................................ 34 Figura 19 Fluxograma do algoritmo CamShift [8] .............................................................. 35 Figura 20 Cenrio utilizado no projeto ................................................................................ 42 Figura 21 Definio das marcas superiores do rob ........................................................... 43 Figura 22 Objetos da cena.................................................................................................... 43 Figura 23 OpenCV: Arquitetura e seus componentes[7] ..................................................... 45 Figura 24 Diagrama de atividade. ....................................................................................... 49 Figura 25 Subtrao ............................................................................................................. 50 Figura 26 Resultado da subtrao........................................................................................ 50 Figura 27 Algoritmo da subtrao entre imagens ................................................................ 51 Figura 28 Mscara de convoluo gaussiana ...................................................................... 52 Figura 29 Funo de convoluo gaussiana ........................................................................ 52 Figura 30 Filtro Gaussiano .................................................................................................. 53 Figura 31 Resultado da aplicao do Filtro Gaussiano ...................................................... 53 Figura 32 Binarizao .......................................................................................................... 53 Figura 33 Resultado da binarizao .................................................................................... 54 Figura 34 Resultado da abertura.......................................................................................... 54 Figura 35 4-Conectividade ................................................................................................... 55 Figura 36 Resultado da 4-conectividade .............................................................................. 55 Figura 37 Converso RBG para HSV................................................................................... 56 Figura 38 Imagem no espaoHSV ........................................................................................ 57 Figura 39 Histograma de cor ............................................................................................... 57 Figura 40 (a) Back-Projection (b) Identificao .................................................................. 57 Figura 41 Processo de rastreamento .................................................................................... 58 Figura 42 Cores menos saturadas e mais escuras ............................................................... 60 Figura 43 Cores mais saturadas e mais claras .................................................................... 61

xii

LISTA DE TABELAS

Tabela 1 Especificaes de hardware ................................................................................... 44

xiii

LISTA DE ABREVIATURAS E SIGLAS

CAMSHIFT Continuously Adaptive Mean Shift Algorithm. CCD CTI FIRA HSV MAP MIROSOT OpenCV RGB ROBOCUP Charge Coupled Device. Centro Tecnolgico da Informtica. Federation of International Robotsoccer Association. Hue, Saturation e Value. Mximo a posterioi. MicroRobot Soccer Tournament. Open Source Computer Vision Library. Red, Green e Blue. Robot World Cup Initiative.

xiv

LISTA DE SMBOLOS

Processo de dilatao. Processo de eroso. Processo de abertura. Processo de fechamento. 4-Vizinhos. 4-Vizinhos diagonais. 8-Vizinhos diagonais. Funo Base. Ponto na Imagem. Ponto central. Velocidade de translao. Fator de escala. Matriz de rotao e mudana de escala. Representa o estado do contorno. O vetor de estado do movimento do alvo. Matriz de covarincia. Ganho de Kalman. Vetor de observao do sistema. Rudo da observao. Nmero de robs da equipe. Momento ou instante. Probabilidade do pixel (x,y). Centride da regio de interesse.

N4 Nd N8 s P A u

( , )

xv

RECONHECIMENTO E RASTREAMENTO DE OBJETOS

CAPTULO I INTRODUO

O projeto de futebol de robs foi criado em 1996 pelo professor Jong-Hwan Kim do Departamento de Engenharia Eltrica do Kaist, da Repblica da Coria do Sul. Em 1997, o Instituto de Automao da Fundao Centro Tecnolgico da Informtica (CTI), Campinas-SP, trouxe a idia para o Brasil [1].

Atualmente, os principais times existentes no Brasil so o UFPR e o Guaran. Este ltimo, resultado da unio entre as equipes FUTEPOLI (EPUSP) e UNESP (UNESP-Bauru), foi vice-campeo do campeonato mundial realizado na Frana em 1998 [2].

Os campeonatos de futebol de robs podem ser regulamentados por dois rgos, o ROBOCUP (Robot World Cup Initiative) e a FIRA (Federation of International Robotsoccer Association), ambos com os mesmos objetivos: desenvolver um time de robs capazes de jogar contra um time de seres humanos. No presente projeto a FIRA foi adotada por ter suas normas aceitas pela maioria das instituies acadmicas do Brasil. O jogo regulamentado por essa federao possui suas regras especificadas de acordo com a categoria adotada [3].

Dentre as reas de desenvolvimento propcias para este projeto, destacam-se a Robtica, Viso Computacional e a Inteligncia Artificial. Embasado nas teorias de viso computacional e com o objetivo de dar continuidade e aperfeioamento na tcnica utilizada para o processamento de imagens, do projeto de MELO e FERREIRA [4], foi proposto o presente trabalho tendo como enfoque o processo de rastreamento de objetos. O objetivo localizar, identificar e rastrear um ou mais objetos pertencentes cena do jogo a partir de uma seqncia de imagens capturadas por uma cmera de vdeo cuja principal restrio o processamento em tempo real.

Durante uma partida de futebol, a central de processamento de cada equipe responsvel pelo reconhecimento de imagens, rastreamento de objetos, processamento dos dados e transmisso das informaes [4]. Um dos problemas cruciais o rastreamento da trajetria do rob devido necessidade de garantir que as instrues enviadas para cada rob sejam realizadas corretamente. A rea de fundamental importncia para solucionar este problema a Viso Computacional (Seo 1.1).

O contedo abordado de grande importncia para sistemas inteligentes, principalmente no que refere s inferncias realizadas sobre o ambiente. Tais sistemas inteligentes podem ser utilizados em vrias aplicaes entre elas: sistema de segurana, sistema de vigilncia, anlise de movimentos humanos, sistema de deteco e rastreamento de pedestres ou veculos, dentre outros [5].

1.1. Viso Computacional

A viso computacional abrange uma variedade de tcnicas e mtodos para reconhecimento e rastreamento de imagem [4]. Seu objetivo consiste principalmente na determinao das caractersticas dos objetos representados em uma imagem, distinguindo-os pelas suas cores e formas.

Atravs da viso computacional, uma imagem captada de um cenrio por um sensor ptico (cmera), pode ser tratada e nela podem ser identificados objetos por meio de padres (por exemplo, a cor e a forma). Este objeto reconhecido pode ter sua trajetria monitorada atravs de algoritmos de reconhecimento e rastreamento de alvos. Tais algoritmos consistem basicamente em associar modelos definidos quadro-a-quadro em uma seqncia de imagens processadas a fim de descrever o movimento de um ou mais objetos em uma cena, ou ainda, gerar inferncia sobre este movimento [1].

1.2. Caracterizao do problema

O campeonato de futebol de robs promovido pela Federao Internacional de Associaes de Futebol Robtico (FIRA), fundada por pesquisadores coreanos, dividido em categorias, dentre elas a categoria Mirosot (MicroRobot Soccer Tournament) [6].

Na categoria Mirosot os jogos so disputados entre duas equipes, composta cada qual por trs robs em formato de cubo, um computador e um sensor ptico (cmera de vdeo digital) para captar as informaes. Nesta categoria existem ainda trs sub-categorias Small League, Middle League e Large League, diferindo no nmero de robs, 3, 5 e 7 respectivamente, e no tamanho do campo 150cm x 130cm, 220cm x 180cm e 280cm e 220cm respectivamente. A sub-categoria escolhida, por exigir menos recursos, foi a Small League.

De posse das informaes e da identificao dos elementos padronizados dentro do campo de viso [4], surge a necessidade de determinar suas trajetrias. Essas trajetrias so determinadas a fim de obter-se a direo, sentido e velocidade de cada objeto, garantindo o monitoramento do ambiente. O resultado deste processamento utilizado para definir a melhor estratgia a ser aplicada e garantir que as decises, tomadas pelo sistema estrategista e enviadas via rdio ao sistema de comunicao, sero traduzidas em aes aplicadas de forma eficiente.

O problema resume-se no rastreamento de alvos em movimento que obtido pelo reconhecimento de objetos atravs das imagens fornecidas pelas cmeras de vdeo. Cada imagem da seqncia deste vdeo denominada de quadro. Baseado nas teorias de viso computacional e nas tcnicas de rastreamento, este projeto consiste na pesquisa e anlise terica sobre o tema e na implementao de um algoritmo de rastreamento.

Foram estudadas duas tcnicas de rastreamento de objetos sendo uma baseada no contorno do objeto e a outra baseada na cor (vide Captulo 5). O processo de localizao e identificao foi realizado segundo algumas adaptaes aos passos proposto por BEM e COSTA e o processo de rastreamento utilizado, devido ao seu desempenho, foi o algoritmo CAMSHIFT (Continuously Adaptive Mean Shift Algorithm) que baseia-se na cor do objeto identificado.

1.3. Objetivos do projeto

O objetivo do projeto consiste em implementar um algoritmo para aquisio e anlise da imagem com padres reconhecidos para ento determinar a trajetria do objeto

identificado, a fim de garantir, por exemplo, que as aes que foram definidas pelo sistema de estratgia sero executadas corretamente pelos robs.

As atividades realizadas no projeto foram:

apresentao terica do mdulo de viso computacional; estudo e anlise de algoritmos de rastreamento de alvos; implementao de uma aplicao que a partir de um ou mais objetos

reconhecidos por padres estabelecidos rastreie as suas trajetrias;

1.4. Estrutura e contedo do trabalho

O presente trabalho est estruturado de forma a ilustrar a teoria envolvida no estudo do tema, viso computacional. O Captulo 2 apresenta os fundamentos do processamento digital de imagens essenciais para entendimento da aplicao desenvolvida. O Captulo 3 apresenta de forma detalhada os sistemas envolvidos no jogo de futebol de robs, as regras e os padres utilizados. No Captulo 4 apresentada uma viso detalhada sobre o sistema funcional e seus subsistemas, dentre eles o subsistema de viso computacional e sua aplicao no problema a ser tratado. O Captulo 5 apresenta um estudo e a anlise de duas tcnicas de rastreamento de objetos, dentre elas, a que foi utilizada.

Toda estrutura do cenrio, ferramentas e componentes utilizados para simulao so especificados no Captulo 6. O Captulo 7 contm os detalhes da implementao utilizada para o desenvolvimento da aplicao e os resultados alcanados. O Captulo 8 apresenta a concluso dos estudos e as sugestes para os trabalhos futuros.

1.5. Concluso

Utilizando a teoria de viso computacional, os objetos pertencentes a uma determinada cena, capturada por uma cmera de vdeo, podem ser identificados e diferenciados pela suas cores e formas. Alm disso, estes objetos podem ter sua trajetria determinada a partir das tcnicas de rastreamento de objetos apresentadas no Captulo 5. Neste projeto, a tcnica escolhida e detalhada nos prximos captulos realizada a partir da segmentao das cores

[7][8]. Esta tcnica foi escolhida devido principalmente ao desempenho computacional proporcionado.

Este trabalho est contextualizado no ambiente do projeto de futebol de robs promovido pela FIRA. Os detalhes da estrutura fsica e funcional do jogo de futebol de robs so apresentados no Captulo 3 e a fundamentao terica, necessria para o entendimento da aplicao desenvolvida, apresentada no prximo captulo.

CAPTULO II PROCESSAMENTO DIGITAL DE IMAGENS

As sees contidas neste captulo tm por objetivo apresentar os fundamentos da imagem digital que serviro como suporte para compreenso dos prximos captulos.

2.1. Aquisio da Imagem

A aquisio da imagem realizada a partir de um sensor e um digitalizador, onde o sensor responsvel por converter a informao ptica em sinal eltrico e o digitalizador transformar a imagem analgica em imagem digital. Assim, o resultado dessa etapa produzir uma imagem digitalizada (Seo 2.1.1), ou seja, uma representao numrica adequada para o processamento digital.

Normalmente, os sensores utilizados nas cmeras digitais so monocromticos, ou seja, a radiao emitida produzida por apenas uma cor (um comprimento de onda). O sensor CCD (Charge Coupled Device) encontrado na Webcam empregada no projeto um exemplo de sensor monocromtico. Esse sensor transforma a luz refletida em sinais eltricos que sero convertidos em bits pelo conversor analgico-digital ou digitalizador [9].

2.1.1. Digitalizao da Imagem

A digitalizao da imagem consiste basicamente de trs passos. A partir da imagem original analgica (Figura 1-a) realizado o processo de amostragem no qual a imagem amostrada matriz de pixel (Figura 1-b). Depois de realizada a amostragem inicia o processo de ponderao, onde cada pixel da imagem (ou amostra) ponderado (Figura 1-c). O ltimo passo consiste da quantizao no qual os pixels so convertidos forma numrica (Figura 1d).

Figura 1 Processo de digitalizao da imagem. FONTE: Desconhecida

2.2. Espao de cores

Embora a imagem seja monocromtica, a cor pode ser registrada atravs de filtros de cor. A descrio de algumas teorias relacionada escala de cinza e aos espaos de cores RGB (Red, Green, Blue) e HSV (Hue, Saturation, Value) se faz necessria para o melhor entendimento dos algoritmos relacionados.

2.2.1. Escala de cinza

A imagem monocromtica, resultante da digitalizao, pode ser descrita em sua forma matricial como uma funo de intensidade luminosa f(x,y), sendo x e y coordenadas espaciais, e o valor da funo no ponto (x,y) proporcional ao brilho (ou nvel de cinza) da imagem naquele ponto (Figura 2) [9].

Figura 2 Imagem na escala de cinza

A imagem apresentada (Figura 2) pode ser considerada como uma matriz, no qual os ndices de linha e de coluna identificam um ponto da imagem, e o correspondente da matriz identifica o nvel de cinza daquele ponto. Nesta matriz, cada elemento chamado de pixel.

Como pode ser observado, este espao de cor apresenta um nico canal, o nvel de cinza, este canal representa a variao de intensidade do valor preto para o branco. Este valor pode ser obtido por uma imagem no espao RGB, apresentada prxima seo, atribuindo-se o mesmo valor para os canais R, G e B [9].

2.2.2. Espao RGB

No espao de cores RGB cada pixels da imagem digital dividido em trs canais de cores RGB (vermelho, verde e azul). Cada canal varia de 0 a 255, que corresponde a intensidade da cor, no qual o 0 representa a ausncia de cor (preto), enquanto que o 255 representa a tonalidade mxima dessa cor (branco) [10]. Este espao utiliza um sistema de coordenadas R, G, B, cujo subespao de interesse representado pelo cubo unitrio ilustrado na Figura 3.

Figura 3 Espao de cores RGB[10]

As cores primrias RGB so aditivas. A diagonal principal do cubo (vide Figura 3), que vai do preto ao branco, representa a escala de cinza e possui quantidades iguais de cores primarias.

2.2.3. Espao HSV

O modelo HSV (Hue, Saturation, Value) possui a componente de intensidade V desacoplada da informao de cor na imagem e as componentes matiz (H) e saturao (S) so relacionadas percepo humana de cores [10].

O termo hue (matiz) distingue entre azul, ciano, verde, amarelo, vermelho e magenta; representa a cor da imagem. A saturation da cor, denominada pureza ou saturao, indica o afastamento da cor. Uma cor vermelha pura altamente saturada enquanto o rosa pouco saturada. O value (brilho) representa a intensidade da luz refletida pela superfcie dos objetos [11].

O sistema de coordenadas um cilindro, e o subconjunto sobre o qual o modelo definido um hexgono, ou uma pirmide de seis lados como ilustrado na Figura 4.

Figura 4 Espao de cores HSV[10] O eixo V representa a escala de tons de cinza, no qual o ponto V = 0 e S = 0 corresponde ao preto e V = 1 e S = 0 ao branco. No topo do hexgono encontram-se as cores de maior intensidade.

A matiz fornecida pelo ngulo ao redor do eixo vertical, sendo o vermelho igual a 0, o amarelo 60 e assim por diante. O valor da saturao (eixo V) varia entre 0 a 1.

10

2.3. Convoluo

A convoluo uma operao na qual uma mscara (elemento estruturante) g(x,y) percorre a imagem f(x,y) desde o seu canto superior esquerdo at seu canto inferior direito (vide Figura 5). A cada posio relativa da mscara sobre a imagem, o pixel central da subrea da imagem naquele instante ser substitudo pelo valor calculado na Equao 1 [12]. , , ,

(1)

Figura 5 Processo de convoluo a) Primeiro passo. b) Segundo passo. FONTE: Desconhecida

2.4. Filtro Gaussiano

O filtro gaussiano aplicado para melhorar a qualidade da imagem de entrada, eliminando caractersticas indesejveis como sujeira no dedo, excesso ou pouca fora aplicada pelo dedo no sensor entre outras, as quais podem induzir a erros de anlise. O objetivo do filtro suavizar os valores associados a cada pixel [13].

Este filtro definido por uma mscara gaussiana quadrada, nos quais os coeficientes so proporcionais a uma densidade gaussiana bivariada de mdia nula e matriz de covarincia. Aps definida, inicia o processo de convoluo (Seo 2.3), na qual a mscara utilizada para calcular o desvio do pixel central em relao aos vizinhos na janela [13]. Todos os pixels so visitados e posicionados no centro da janela e um novo valor para o pixel obtido a partir da Equao 2. , ,

(2)

11

onde:

o tamanho (mpar) da mscara; o efeito da borragem da imagem.

e , a constante de padronizao que garante , 1;

o espalhamento da densidade gaussiana. Quanto maior o espalhamento, maior ser

2.5. Segmentao A segmentao de imagem consiste em dividir a imagem em dois ou mais subconjuntos (segmentos: objetos e regies) de acordo com um determinado critrio. Desta forma, cada subconjunto composto pelos pixeis da imagem que satisfazem uma mesma condio, que pode ser por exemplo, ter a mesma cor, ter a mesma textura, apresentar transies bruscas, entre outros.

Dentre as tcnicas mais conhecidas destacam-se a deteco de descontinuidade, a deteco de limiares (binarizao), a segmentao baseada em regies (subtrao) e watersheds [14].

2.5.1. Subtrao

O processo de subtrao entre duas imagens digitalizadas consiste de uma operao aritmtica na qual o resultado a diferena dos valores de intensidade entre as duas imagens.

A segmentao por subtrao de fundo consiste em subtrair a imagem atual de uma imagem de referncia, a qual apresenta apenas o fundo da cena. O resultado desta subtrao so os objetos no pertencentes ao fundo, ou seja, os objetos que esto em movimento no cenrio. Um problema muito comum encontrado neste processo a mudana da iluminao. Caso ocorra variao da iluminao, depois de adquirida a imagem de referncia, os pixels pertencentes ao fundo podem ser definidos como pertencentes ao objeto por distanciarem do brilho original. Por isso, para se obter um bom resultado necessrio manter a iluminao constante [4].

12

2.5.2. Binarizao

O processo de binarizao realizado a partir da tcnica de deteco de limiares. Essa tcnica uma das tcnicas mais simples de segmentao e consiste em agrupar os diferentes objetos e regies da imagem conforme a similaridade de tonalidades entre os mesmos [14].

A operao de limiarizao corresponde definio de um valor L de limiar para o nvel de intensidade luminosa ao qual se deseja realizar o ponto de corte (binarizao) da imagem [14]. Um limiar (L) utilizado na imagem de 256 tons de cinza significa que todas as tonalidades onde f(x,y) < L tornam-se informao de fundo da imagem (valor 0 binrio, ou cor preta). Os demais valores (f(x,y) >= L) tornam-se correspondente aos objetos da imagem (valor 1 binrio ou cor branca).

2.6. Morfologia Matemtica

A morfologia matemtica tem como objetivo extrair caractersticas importantes da estrutura de alguns componentes da imagem. Esta morfologia baseia-se principalmente na teoria de conjunto e em operaes lgicas e mais utilizada em imagens binrias [14].

Dentre os operadores morfolgicos mais comuns encontram-se a eroso, dilatao, abertura e fechamento, apresentadas nas prximas sees. De modo geral, os operadores baseiam-se no conceito da aplicao de um elemento estruturante percorrendo sobre uma imagem, de modo anlogo ao que ocorre com as mscaras de convoluo apresentada na Seo 2.3. 2.6.1. Dilatao

A dilatao o processo no qual se aplica um elemento estruturante de forma homocntrica sobre um conjunto definido de pontos (brancos ou pretos) em uma imagem, de modo que o elemento estruturante adicione informaes sobre a vizinhana destes pontos. Isso significa que o elemento estruturante desliza sobre um conjunto de pontos dilatando sua vizinhana numa proporo que varia conforme as dimenses do elemento. Esta operao

13

mais utilizada quando se deseja preencher intervalos e lacunas indesejveis na imagem [9, 14]. A Figura 6 ilustra o resultado do processo de dilatao () , no qual representa

equivale sua reflexo. a imagem, representa o elemento estruturante e

Figura 6 Processo de Dilatao[9] 2.6.2. Eroso

A operao de eroso o inverso da dilatao. Neste caso o elemento estruturante aplicado a fim de retirar informao gerando eroso nas reas percorridas, ao invs de dilatar a vizinhana do ponto percorrido inserindo informao como acontece na dilatao. Essa operao mais utilizada para eliminar detalhes irrelevantes, como rudos, e abrir intervalos ou lacunas em regies de conexo indesejada [9, 14]. A Figura 7 ilustra o resultado do processo de eroso () , no qual representa a

equivale sua reflexo. imagem, representa o elemento estruturante e

14

Figura 7 Processo de Eroso[9] 2.6.3. Abertura A operao de abertura ( ) derivada das operaes de dilatao e eroso. Esta

operao consiste da aplicao da eroso seguida da dilatao. Atravs da eroso, a abertura elimina pequenos rudos na imagem e abre lacunas em regies de fraca conexo entre objetos,

e posteriormente tenta restaurar as dimenses reais dos objetos da imagem atravs da dilatao. Os rudos e as fracas conexes eliminados com a operao de eroso no retornam imagem depois de realizado a dilatao [9] [14]. Vide Figura 8.

Figura 8 Processo de Abertura[9]

15

2.6.4. Fechamento

A operao de fechamento derivada das operaes de dilatao e eroso. Esta operao consiste na aplicao da dilatao seguida da eroso, processo inverso da operao de Abertura. Objetivo desta operao visa restaurar conexes fracas entre os objetos da imagem [9][14]. O processo ( ) ilustrado na Figura 9.

Figura 9 Processo de Fechamento[9]

2.7. Conectividade

Antes de falar do conceito de conectividade importante definir o que vem ser vizinhana. Um pixel p, de coordenadas (x, y), tem 4 vizinhos horizontais e verticais, cujas coordenadas so (x+1, y), (x-1, y), (x, y+1) e (x, y-1). Os 4-vizinhos so formados por estes pixels de p, tambm designado por N4(p), vide Figura 10-a [9]. Os quatros vizinhos diagonais de p so os pixels de coordenadas (x-1, y-1), (x-1, y+1), (x+1, y-1) e (x+1, y+1), e constituem o conjunto Nd(p), vide Figura 10-b. J os 8-vizinhos de p definida por: N8(p) = N4(p) Nd(q), conforme Figura 10-c.

16

(a)

(b)

(c)

Figura 10 Vizinhana Conectividade um importante conceito utilizado para estabelecer limites de objetos e componentes de regies na imagem. Para determinar se dois pixels esto conectados, necessrio determinar se eles so vizinhos (adjacentes) segundo algum critrio e se obedecem a um critrio de similaridade dentro de uma escala de cor, ou seja, seus valores esto dentro de um conjunto pr-estabelecido de valores de cinza [9]. Considerando V = {G1, G2, ..., Gk} como o conjunto de k valores de nveis de cinza utilizado para definir a conectividade. So definidos trs tipos de conectividade: 4-conectividade: dois pixels p e q com valores em V e q N4(p); 8-conectividade: dois pixels p e q com valores em V e q N8(p); m-conectividade: dois pixels p e q com valores em V e: i) ii) q Nd(p) e N4(p) N4(q) = q N4(p) ou

Em resumo: dois pixels podem ser 4-vizinhos, mas somente sero considerados 4conectados se possurem o mesmo valor.

2.8. Histograma

O histograma de uma imagem, tambm conhecido como funo de distribuio de freqncia (probabilidade), muitas vezes representado por um grfico de barras que mostra a quantidade de pixels que representam um determinado nvel de cinza. Atravs do histograma de uma imagem pode-se obter uma idia da qualidade da imagem com relao ao seu nvel de contraste e brilho [9].

17

Para cada nvel de cinza, pertencente imagem, a probabilidade calculada por: Onde: o k-simo nvel de cinza (0 1); a probabilidade do k-simo nvel; n o nmero total de pixels na imagem e;

(3)

o nmero de pixels na imagem com o nvel de cinza ;

k = 0, 1, 2, ..., L 1, onde L o nmero de nveis de cinza da imagem digitalizada.

2.9. Retroprojeo

A retroprojeo produzida por uma imagem colorida e um histograma de cor normalizado. A imagem resultante tambm chamada de Back-Projetcion. Esta imagem consiste da distribuio de probabilidade de um modelo na imagem colorida, ou seja, cada pixel da imagem contm a probabilidade do mesmo pertencer s cores representadas pelo histograma. No caso em que se tem a certeza de pertencer o valor 255. No caso de no pertencer o valor zero. Os demais valores correspondem a proximidade da cor com o histograma, resultando em uma imagem com a probabilidade para cada pixel (i,j) [15].

2.10. Concluso

O contedo apresentado neste Captulo est relacionado a processamento digital de imagem e a viso computacional. Aqui foram descritas as caractersticas da imagem, o processo de aquisio, a converso para o formato digital, as principais propriedades e algumas tcnicas de segmentao e operaes que podem ser realizadas sobre imagem.

Os conceitos e definies abordados sero utilizados nos prximos Captulos e de fundamental importncia para o entendimento da aplicao desenvolvida (vide detalhes no Captulo 7).

18

CAPTULO III FUTEBOL DE ROBS

Este Captulo tem como documentao bsica as regras especificadas segundo a categoria MiroSot [6]. Em 1998, com o incio dos campeonatos de futebol de robs, surgiu a necessidade de criar regras definidas para garantir a compatibilidade dos times. Pesquisadores coreanos fundaram ento a Federation of International Robotsoccer Association (FIRA).

Atualmente a FIRA possui as categorias: HuroCup, KheperaSot, MiroSot, NaroSot, AndroSot, RoboSot e SimuroSot. Em cada categoria so estabelecidas especificaes como cores, medidas e marcaes dos objetos. A categoria utilizada neste projeto a categoria MiroSot porque foi a mesma proposta por MELO e FERREIRA [4].

O cenrio apresentado na Figura 11 ilustra, segunda a categoria Mirosot, como cada equipe se dispe e como esto estruturadas. Como pode ser observado, existe um campo e uma bola e cada equipe composta por trs robs, uma central de processamento (computador) e um sensor (cmera de vdeo digital).

As cmeras de cada equipe so posicionadas a uma altura de 2m acima do campo, na mesma altura onde posicionada iluminao. Segundo o regulamento, deve-se garantir uma qualidade de 1,000 lux de iluminao.

Figura 11 Cenrio de uma partida de futebol robtico segundo categoria MiroSot [6]

19

3.1. Estrutura Fsica Definida Todas as medidas e marcaes so definidas e padronizadas (Figura 12). Na subcategoria Small League Mirosot o campo um tablado de madeira de formato retangular com 150 centmetros de comprimento e 130 centmetros de largura de cor preta e suas demarcaes possuem colorao branca com 3,0 milmetros de espessura. Todo o campo delimitado por paredes nas extremidades laterais com 5,0 centmetros de altura e 2,5 centmetros de largura.

Figura 12 Medidas e marcaes segundo as regras da Mirosot[6] A bola utilizada uma bola de golfe de cor laranja com 42 milmetros de dimetro. Os robs possuem formato cbico com 7,5 centmetros de aresta. Em suas superfcies superiores so colocadas etiquetas, figuras geomtricas coloridas, em uma rea mnima de 3,5cm x 3,5cm que definem as camisetas dos robs. Tais camisetas permitem ao sistema de viso computacional identificar os robs em uma equipe.

Para identificar um rob na equipe utiliza-se a combinao da camiseta e a identificao individual do rob. Essa identificao tambm representada por uma figura geomtrica colorida situada na superfcie superior do rob.

20

Segundo as regras da FIRA, as cores utilizadas para identificar as equipes (cor da camiseta) so amarela e azul. Para a identificao id individual do rob na a equipe so utilizadas marcaes (etiquetas) com colorao diferente das cores: amarela, azul, preta, branca e laranja, pois as mesmas j esto reservadas.

As cmeras, utilizadas durante a partida, capturam imagens do campo para aquisio e identificao de padres. O computador responsvel por todo o reconhecimento de imagens e cores, rastreamento de objetos em um plano, processamento dos dados e transmisso das informaes via rdio aos agentes. 3.2. Estrutura Funcional

De forma resumida, cada equipe realiza a aquisio, aquisio, processamento e anlise da imagem e processa a imagem usando tcnicas de viso computacional. Com as informaes fornecidas pelo subsistema sistema de viso computacional, um sistema de deciso define a melhor estratgia a ser aplicada e os movimentos de cada rob. Em seguida, o subsistema de comando e comunicao que responsvel por enviar, via rdio, a deciso tomada para os robs [16]. A Figura 13 mostra o esquema de funcionamento do futebol de robs. rob

rob [17] Figura 13 Esquema do funcionamento do futebol de robs

21

Entre os desafios e problemas a serem estudados destacam-se que os robs precisam realizar processos de reconhecimento visuais em tempo real, navegar em um espao dinmico, rastrear objetos em movimento, colaborar com outros robs e ter controle para acertar a bola na direo correta [16].

No presente trabalho o problema que ser abordado consiste no rastreamento de objetos em movimento utilizando para tanto o subsistema de viso computacional que ser descrito no prximo Captulo.

3.3. Concluso

Uma partida de futebol de robs realizada entre dois times sendo cada time composto por trs robs. A estrutura fsica definida possui, alm dos robs, um campo com as dimenses impostas pela MiroSot, uma bola, um computador e um sensor. utilizada uma bola de golfe de cor laranja e os robs so pequenos cubos e em suas superfcies superiores so colocadas etiquetas coloridas. Uma etiqueta utilizada para definir a camiseta (amarela ou azul) do rob permitindo ao subsistema de viso computacional identificar a qual time pertence. A outra etiqueta utilizada, combinada com a cor da camiseta, na identificao individual do rob.

No prximo Captulo ser detalhado o sistema funcional para o controle da partida de futebol. Este sistema subdivide-se em trs subsistemas, subsistema de viso computacional, subsistema estrategista e subsistema de comando e comunicao, que sero apresentados com mais detalhes no prximo Captulo. Dentre os problemas encontrados e destacados no sistema funcional, o rastreamento de objetos o tema deste projeto e ser abordado no Captulo 5.

22

CAPTULO IV SISTEMA FUNCIONAL

Um time de futebol de robs possui um sistema computacional (software) que se subdivide em outros trs subsistemas. O subsistema de viso computacional, detalhado na Seo 4.1, resume-se na localizao, identificao e rastreamento dos objetos presentes na cena do jogo. O subsistema estrategista, apresentado na Seo 4.2, tem como funo principal traduzir as informaes, recebidas pelo subsistema de viso computacional, em tomadas de decises que definem a melhor estratgia para a prxima jogada. Por fim, o subsistema de comando e comunicao (Figura 13), descrito na Seo 4.3, baseia-se na converso das informaes recebidas do subsistema estrategista em aes ou movimentaes para executar a estratgia definida na Seo 4.2.

4.1. Subsistema de Viso Computacional

Durante o processo de viso computacional a imagem adquirida atravs de uma cmera digital disposta sobre o campo, Figura 12 (pg. 19). Aps a aquisio, a imagem processada, segmentada e os objetos so ento reconhecidos (localizados), assim como ilustrado na Figura 14.

Figura 14 Etapas do sistema de viso computacional

23

Os objetos so reconhecidos pela sua forma e identificados pela sua cor podendo distinguir os robs da equipe dos robs adversrios. Depois de identificados os robs da equipe, o processo de rastreamento realizado a partir da cor de identificao dos robs da equipe.

4.1.1. Segmentao dos Alvos

No processo de segmentao o principal objetivo identificar os alvos na imagem adquirida pela cmera de vdeo. Este objetivo pode ser inicialmente alcanado a partir da subtrao das duas primeiras imagens da seqncia (processo apresentado na Seo 2.5.1). A partir da terceira imagem da seqncia, inicia-se o processo de rastreamento, no qual os alvos no so mais segmentados, mas sim rastreados atravs cor da marcao individual de cada alvo. Este processo ser discutido no prximo captulo.

Depois de realizada a subtrao das imagens e identificados os alvos, sobre a imagem resultante (Figura 15-a) so aplicadas tcnicas de processamento para determinar a rea correspondente aos alvos com baixo rudo. Na imagem resultante a primeira tcnica aplicada o filtro espacial gaussiano (Figura 15-b) cujo objetivo borrar a imagem para remover os detalhes e eliminar os rudos impulsivos (vide Seo 2.4).

Em seguida a imagem binarizada (Seo 2.5.2), ou seja, transformada em uma imagem com apenas dois tons (ex: preto e branco) como pode ser vista na Figura 15-c. Depois de binarizada, a imagem submetida tcnica de processamento denominada operao morfolgica de abertura.

A operao morfolgica de abertura (Seo 2.8.3) resume-se em eliminar os componentes isolados com reas muito menores do que a rea do objeto e eliminar da imagem as salincias de espessura reduzida, mesmo que as mesmas estejam ligadas aos alvos [18]. O resultado da aplicao desta tcnica apresentado na Figura 15-d.

24

Figura 15 Tcnicas de processamento.

Depois de aplicadas as tcnicas (Figura 15), os objetos caracterizados como robs, so identificados pelas suas cores como pertencentes equipe amarela ou equipe azul. Assim como foi apresentado no Captulo 3, na superfcie de cada rob esto localizadas uma etiqueta cuja cor (azul ou amarela) define o time ao qual o rob pertence e uma etiqueta de cor variada que identifica cada componente do time.

Para identificar os objetos segmentados e com o objetivo de contornar os problemas de variao de iluminao, os pixels da cor so projetados no espao de cores HSV (huesaturation-value). Neste espao de cores, a intensidade isolada na banda V e a saturao na banda S e sua distribuio passa a ser definida no espao 1D H, passando a apresentar um grau de constncia em relao a alteraes de iluminao.

O mtodo escolhido para estimao da densidade de probabilidade foi o mtodo do histograma, por no haver muitos indcios sobre a forma da funo de densidade de probabilidade dos objetos. A classificao feita determinando-se o time ao qual um objeto tem maior probabilidade de pertencer, de acordo com a densidade de probabilidade estimada. Este mtodo chamado de mximo a posteriori (MAP) [18].

25

4.2. Subsistema Estrategista

O algoritmo responsvel pelo subsistema estrategista recebe as informaes do subsistema de viso computacional e as traduz em decises de jogadas que resultam em aes que os robs devero executar, incluindo ttica de jogo, definies de trajetria dos jogadores e tendncia de movimentao da bola [19] [16]. Como resultado final dessa etapa tem-se as informaes de velocidade e ngulo de deslocamentos necessrios para cumprir as aes solicitadas [17].

4.3. Subsistema de Comando e Comunicao O subsistema de comando e comunicao tem como objetivo converter as instrues fornecidas pelo subsistema estrategista em comandos de movimentao para os robs. Essa movimentao determinada pelo clculo das velocidades e dos ngulos de deslocamento dos motores dos robs. O resultado ento transmitido para o rob via transmissor de rdio.

O subsistema de comando acoplado aos robs interpreta as informaes recebidas via rdio freqncia e determina o quanto cada rob dever se deslocar e em que sentido, efetuando o deslocamento do rob [17]. Este subsistema deve permitir que o rob siga trajetrias com o mnimo de erro possvel.

4.4. Concluso

O componente primordial do sistema funcional o subsistema de viso computacional. Este subsistema consiste basicamente na aquisio e processamento de imagem, no reconhecimento (localizao), identificao e rastreamento dos objetos pertencentes mesma, utilizando tcnicas de viso computacional. A partir das informaes geradas, o subsistema de deciso define a melhor estratgia e encaminha a deciso ao subsistema de comando e comunicao. Este ltimo, por sua vez, envia a deciso tomada aos robs.

No subsistema de viso computacional, aps a aquisio da imagem, os alvos so identificados atravs da segmentao caracterizada pelo processo de subtrao entre duas

26

imagens da seqncia. Sobre a imagem resultante so aplicadas tcnicas de processamento tais como, filtro espacial gaussiano, binarizao e operao morfolgica de abertura, a fim reduzir os rudos gerados pela subtrao e permitir o reconhecimento dos alvos. Entre os alvos localizados na imagem, os que so caracterizados como robs so identificados pelas cores contidas em suas superfcies. Depois de localizados e identificados inicia-se o processo de rastreamento dos alvos, apresentado no prximo captulo.

27

CAPTULO V RASTREAMENTO DE OBJETOS

Para o desenvolvimento deste projeto foram estudados dois algoritmos de rastreamento, sendo que um deles utiliza a segmentao baseada no contorno dos alvos (apresentada na Seo 5.1) e o outro utiliza a segmentao pelas cores dos alvos (apresentada na Seo 5.2).

5.1. Segmentao pelo Contorno

O processo de segmentao pelo contorno, proposto por BEM e COSTA [18], utilizado para garantir o rastreamento dos objetos durante a partida. Para cada objeto mvel identificado na cena, atravs do processo apresentado na Seo 4.1.1 definida uma regio de interesse descrita por um quadriltero englobando toda rea, que ser utilizada para definir o contorno do objeto (Seo 5.1.1). Alm disso, como foi apresentado, cada rea identificada como correspondente a um dos times do jogo, de acordo com a sua cor, e esta identificao ser mantida no processo de rastreamento (Seo 5.1.2). Depois deste ponto no processo, o modelo de observao baseado nos contornos dos objetos empregado para extrair as informaes das imagens.

5.1.1. Modelo de Observao

No modelo de observao, os alvos so descritos por seus contornos, modelados como B-splines quadrticas, permitindo uma boa aproximao das suas projees no plano da imagem [20]. Uma funo B-splines de ordem k gerada a partir da soma ponderada de M

funes base (B-splines) , 0, , 1 e definida como:

, 0 1,

28 onde representa o ponto de controle, aplicado s respectivas funes base . A curva gerada medida que o parmetro u variado. Cada funo base formada por cpias transladadas de segmentos de funes

0 1, onde t a parametrizao local de u:


, 0,

, , , com , polinomiais de ordem k em um intervalo u denotadas por

Como descrito na Seo 4.1.1, o modelo inicial de cada objeto determinado pela segmentao dos objetos mveis nas duas primeiras imagens da seqncia. A partir dessa imagem, so definidos alguns pontos de controle, igualmente espaados ao longo do permetro da regio de interesse, que sero utilizados para construo da estimativa inicial do contorno do alvo. A Figura 16-a mostra o quadriltero envolvente da regio de interesse, os pontos de controle definidos.

Figura 16 Estimativa do contorno dos alvos [18] . Os pontos de controle definem a configurao do contorno do alvo. Com o objetivo de reduzir o custo computacional e o tempo de processamento, a observao dos alvos nas imagens realizada atravs de linhas de medida construdas sobre os pontos de controle do contorno, como visto na Figura 16-b. Um detector de bordas unidimensional, filtro passa-alta, aplicado a cada uma das linhas de medida. Este filtro atenua as freqncias espaciais mais baixas de uma imagem e acentua as mais altas. Assim os detalhes das imagens so realados

29

tornando as transies entre regies diferentes mais ntidas, ou seja, as alteraes bruscas na intensidade dos pixels so localizadas [18] [21].

5.1.2. Modelo de Movimento O objetivo deste modelo definir um modelo nico e simples, aplicvel a todos os alvos, utilizando poucas informaes a priori. Considerando o campo de viso usado, alvos com movimentos limitados pelo plano do campo e independentes entre si, as alteraes de velocidade e de forma dos alvos mveis na seqncia de imagens podem ser aproximadas por transformaes lineares. Sendo , um ponto da imagem localizado em uma rea correspondente a um ,

alvo, o movimento neste ponto pode ser aproximado por:

(6)

onde o centro da rea, o deslocamento de c na direo e e A a matriz de rotao e mudana de escala. Considerando-se que h pouca alterao do alvo entre quadros consecutivos, a matriz A fica restrita mudana de escala. Assim, a Equao 6 pode ser reduzida para: ,

(7)

onde o fator de escala.

Desta forma, a translao e a mudana de escala dos alvos na seqncia de imagens so representadas por e .

diminuio e 0, ao aumento da rea estimada do objeto, envolvida pelo contorno.

Quando 0 significa que no h mudana de escala, enquanto 0 corresponde

O rastreamento dos objetos realizado durante a partida de futebol, proposto por BEM e COSTA, baseia-se na descrio de seus contornos. Durante este processo so instanciados

30

dois Filtros de Kalman (estimador recursivo Bayesiano) para cada alvo, um para estimao da forma do contorno e outro para estimao do movimento [18].

O processo inicia-se com a descrio do sistema em dois vetores, chamados vetores de estado. Estes vetores so dados por: , , , , , , , , , , , , , ,

(8) (9)

ponto de controle, com , , , , tem-se:

o vetor de estado do movimento do alvo, definido pela velocidade de 1, , ; e translao u e o fator de escala s. Considerando a Equao 7, do captulo anterior, para um

representa o estado do contorno, definido por seus pontos de controle , com onde

, , , , ,

(10)

, , corresponde ao centro de todos onde o ndice k denota o tempo e , ,

na forma matricial para o contorno de um alvo:

define a posio que ser ocupada pelo ponto de controle , no tempo , pode ser descrita ,

os pontos de controle do alvo i, o qual estima o centro de rea do alvo. A Equao 10, que

sendo uma matriz identidade de dimenso 2 x 2.

, , , , ,

(11)

Os sistemas de estimao do movimento e forma so apresentados nas prximas sees.

31

5.1.3. Estimao do Movimento

O modelo de movimento, apresentado na Seo 5.1.2, possui como parmetros, que compe o vetor de estado do movimento do alvo, constantes locais. Assim o sistema descrito pelas equaes:

o vetor de observao do estimao, com mdia zero e covarincia : ~ 0, . sistema; e uma varivel aleatria gaussiana, representando o rudo da observao, com dos pontos de controle do contorno acrescida do rudo da observao [18].

onde, no tempo k, uma varivel aleatria gaussiana, representando o rudo do processo de corresponde posio mdia zero e covarincia : ~ 0, . O vetor de observao

(12) (13)

Na aplicao do Filtro de Kalman, cada iterao executa trs etapas: predio, assimilao e atualizao. Uma vez que o filtro um estimador gaussiano linear, a e pela matriz de covarincia , . Assim, o processo de estimao dado pelas seguintes equaes caractersticas do Filtro de Kalman: totalmente definida pela mdia distribuio de probabilidade sobre o vetor de estado

Predio:

, ,

(14) (15)

Assimilao (Clculo do Ganho de Kalman):


, ,

(16)

32

Atualizao:

, ,

(17) (18)

5.1.4. Estimao da Forma

A estimao do contorno rastreia os n pontos de controle do alvo e modelada como: , ,

(19) (20)

onde uma varivel aleatria gaussiana, representando o rudo na estimao, com mdia rudo da observao como mencionado anteriormente. o vetor de observao do sistema; e zero e covarincia : ~ 0, . representa o

As etapas do Filtro de Kalman para estimao da forma do contorno so definidas como:

Predio:

, ,

(21) (22)

Assimilao (Clculo do Ganho de Kalman): , , Atualizao: , ,

(23)

(24)

33

5.2. Segmentao pela Cor

O processo de segmentao pela cor proposto por DIAS [7] e CARREIRAS [8] para garantir o rastreamento dos objetos, implementa o algoritmo CamShift. Este algoritmo detecta o modelo de distribuio de probabilidade aplicando o Mean-Shift (mximo do gradiente da distribuio de probabilidade), enquanto ajusta dinamicamente os parmetros da distribuio da cor a ser rastreada.

5.2.1. Mean-Shift

Mean-Shift (deslocamento pela mdia) tambm conhecido como estimao do gradiente de uma funo densidade, desenvolvido por Fukunaga e Hostetler (1975) um algoritmo de rastreamento utilizado para achar modas (regies mais densas) em um conjunto de dados, manifestando uma funo densidade de probabilidade.

Para explicar o algoritmo, Ukrainitz e Sarel (2004), propem uma descrio intuitiva: uma regio de interesse qualquer, escolhida sobre uma distribuio de bolas de bilhar idnticas, conforme Figura 17. O algoritmo, atravs do histograma de cores, detecta a regio com mais densidade de pontos de uma determinada cor e calcula uma mdia ponderada para encontrar o centro de massa desta regio mais densa. Em seguida, traado um vetor entre o centro da regio de interesse e o centro de massa obtido, conhecido como vetor de Mean-Shift. Este vetor aponta sempre na direo do maior incremento na densidade, ou seja, descobre o caminho que leva ao local de densidade mxima [22].

Figura 17 Regio de interesse, centro de massa e vetor Mean-Shift[22]

34

Na seqncia, como pode ser observado na Figura 18, a regio de interesse transladada at que seu centro coincida com o centro de massa, atingindo a convergncia. Esse processo repete at que no se encontre regies com maior densidade do que a regio j obtida, ou seja, o centro de massa coincide com o centro da regio ou a diferena entre eles insignificante.

Figura 18 Convergncia no procedimento de Mean-Shift [22] Este procedimento vantajoso, visto que no necessria uma avaliao da imagem por inteiro, o que caracteriza o seu bom desempenho.

A estimao de densidade do gradiente realizada por este algoritmo no-paramtrica, onde as probabilidades da funo de densidade so extradas diretamente do conjunto de dados reais. Assim, as regies mais densas correspondem aos mximos da funo e as menos densas correspondem aos mnimos. Isso significa que quanto mais densa a regio, maior o valor na funo densidade de probabilidade, utilizada para representar a distribuio de probabilidade.

35

5.2.2. CamShift

Como apresentado na seo anterior, o algoritmo Mean-Shift opera na distribuio de probabilidade. Para rastrear objetos coloridos em seqncia de quadros de vdeo, os dados da imagem colorida tm de ser representados como uma distribuio de probabilidade (por exemplo: histograma de cor). O algoritmo Mean-Shift foi modificado para adaptar dinamicamente a distribuio da probabilidade no rastreamento que varia conforme as seqncias da imagem gerada pelo vdeo. O novo algoritmo chamado de CAMSHIFT [23].

O algoritmo CamShift[7][8] utilizado para rastreamento do objeto, robusto, noparamtrico, baseado no seguimento do mximo do gradiente da distribuio de probabilidade (Mean-Shift). O algoritmo inicia a partir do estabelecimento de uma regio de interesse (objeto que se pretende rastrear). Em seguida aplica-se o algoritmo de Mean-Shift (Seo 5.2.1) e determina a distribuio de probabilidade desta regio. Neste ponto, inicia o processo de iterao do Mean-Shift at que no haja alterao significativa do centro da massa e do centro do objeto. Esta passa a ser a nova regio de interesse e o processo repete enquanto se pretende rastrear o objeto [8]. O fluxograma simplificado deste algoritmo encontra-se na Figura 19.

Figura 19 Fluxograma do algoritmo CamShift [8]

36

No entanto, para realizar este processo necessrio determinar a distribuio de probabilidade da imagem. O mtodo deve associar a cada pixel o valor da probabilidade do mesmo pertencer ao alvo, para tanto foi utilizado o Histogram Back-Projection. Este mtodo aplicado ao canal HUE da imagem no espao de cores HSV (vide Seo 1.10).

pixel analisado. O Histogram Back-Projection consiste em atribuir, a cada pixel da imagem, a probabilidade de que pertena ao objeto. O clculo da probabilidade realizado pela razo dos histogramas (Equao 25). A imagem resultante (escala de cinza) normalmente composta por zonas em que os pixels recebem valores mais elevados quando correspondem regio do objeto que se pretende identificar [8].

histograma da cor do objeto ( ) e o histograma da Imagem ( ), onde i representa a cor do

Esta tcnica, desenvolvida por Swain e Ballar em 1991, recorre razo entre o

(25)

Para viabilizar o rastreamento com o CamShift ainda necessrio que o tamanho da regio de interesse se adapte ao alvo que est sendo rastreado, uma vez que o tamanho ideal da regio varia conforme o objeto se encontra mais perto ou mais afastado das cmeras.

Esta adaptao feita com base no instante zero, que pode ser interpretado como a rea sobre a regio de interesse (Figura 17). Desta forma o comprimento e a altura da regio so determinados em funo deste instante, que consiste na soma das probabilidades de todos os pixels na regio de interesse [8] (vide Equao 29). Considerando , a probabilidade do pixel , , onde x e y abrange toda a regio

de interesse. O instante zero e primeiro instante representado pela Equao 26 e 27 respectivamente.

Instante zero: ,

(26)

37

Primeiro instante: , ; ,

(27)

dimenso do objeto calculada pela Equao 29.

O centride ( , ) da regio de interesse determinado pela Equao 28 e a

Centride da regio de interesse: Dimenso do objeto: ; 2 ;

(28)

(29)

(30)

5.3. Algoritmos Estudados

Durante o estudo deste projeto, foram identificadas e detalhadas duas tcnicas de rastreamento de objetos cujos algoritmos so apresentados nas prximas sees. Dentre estas tcnicas, encontra-se a que foi escolhida como melhor soluo para o rastreamento (Seo 5.3.2).

5.3.1. Algoritmo de BEM e COSTA

Como especificado na Seo 5.1, o objetivo do algoritmo consiste em rastrear os objetos descritos por seus contornos, sem a determinao a priori da sua forma, ao invs de utilizar apenas a informao de cor. Para isso, o modelo de observao utilizado baseado em bordas de intensidade extradas ao longo de linhas de medidas fixas do contorno e o processo

38

de rastreamento realiza-se a partir de dois Filtros de Kalman a fim de estimar a forma e o movimento.

5.3.1.1. Etapas do Algoritmo 1) Aquisio da imagem . 3) Subtrao das imagens da seqncia .

2) Aquisio da imagem .

4) Segmentao para determinar as reas correspondentes aos alvos.

a. O filtro gaussiano aplicado sobre a com o objetivo de eliminar rudos impulsivos. b. binarizada, ou seja, transformada em uma imagem com dois tons.

c. Operaes Morfolgicas:

i. Abertura da rea: elimina componentes isolados, com reas menores que a rea dos alvos; ii. Abertura: elimina salincias de espessuras reduzidas; 5) Uso do Mtodo Mximo a posteriori, um mtodo histograma para a estimao das densidades de probabilidade. A classificao feita determinando-se o time ao qual um objeto tem maior probabilidade de pertencer, de acordo com a densidade de probabilidade estimada, utilizando o espao de cores HSV. 6) Para cada alvo mvel definida uma regio de interesse que ser usada para definio do contorno do objeto. Cada rea identificada como correspondente a um dos times do jogo, de acordo com a sua cor, e esta identificao ser mantida no processo de rastreamento. 7) Modelo de observao: so definidos alguns pontos de controle, igualmente espaados ao longo do permetro da regio de interesse, que sero utilizados para construo da estimativa inicial do contorno do alvo. 8) Modelo de movimento: considerando o campo de viso usado, alvos com movimentos limitados pelo plano do campo e independentes entre si, as alteraes da velocidade e da forma dos objetos na seqncia das imagens so aproximadas por transformaes lineares (vide Equao 7). 9) Rastreamento com filtro de Kalman a. Filtro de Kalman para estimar o movimento;

39

10) Aquisio da imagem , i > 1. 11) Retornar passo 7.

b. Filtro de Kalman para estimar a forma.

5.3.2. Algoritmo de CamShift

A prxima seo apresenta os passos do algoritmo utilizado no projeto para o rastreamento de objetos em tempo real, esses passos foram realizados segundo adaptaes ao algoritmo proposto por BEM e COSTA. Conforme descrio apresentada na Seo 5.2 o algoritmo utilizado no processo de rastreamento realizado a partir da cor do alvo segmentado.

5.3.2.1. Etapas do Algoritmo 1) Aquisio da imagem . 3) Subtrao das imagens da seqncia .

2) Aquisio da imagem .

4) Segmentao para determinar as reas correspondentes aos alvos.

a. O filtro gaussiano aplicado sobre a com o objetivo de eliminar rudos impulsivos. b. binarizada, ou seja, transformada em uma imagem com dois tons.

i. Operao Morfolgica de abertura: elimina componentes isolados, com reas menores que a rea dos alvos e as salincias de espessuras reduzidas;

5) Uso do Mtodo Mximo a posteriori, um mtodo histograma para a estimao das densidades de probabilidade. A classificao feita determinando-se o time ao qual um objeto tem maior probabilidade de pertencer, de acordo com a densidade de probabilidade estimada, utilizando o espao de cores HSV. 6) Define rea de interesse nos objetos. 7) Aplica algoritmo de CamShift. 8) Aquisio da imagem , i > 1.

40

9) Retornar passo 7. 5.4. Avaliao dos Algoritmos Como apresentado, o algoritmo escolhido para a implementao foi o CamShift. Essa escolha foi embasada nas avaliaes apresentadas a seguir. 5.4.1. Avaliao do CamShift O algoritmo CamShift, escolhido para a implementao, robusto,

computacionalmente eficiente e de simples abordagem. Este algoritmo baseado na distribuio de cores e na semelhana com um modelo especificado. Sua complexidade , onde uma constante numrica e N a representa a dimenso da imagem [24].

Neste algoritmo, problemas como variao no tamanho do objeto, presena de rudos, ocluso do objeto e variao da iluminao so assim prevenidos [24]:

Objeto de diferentes tamanhos: a regio de interesse adequa ao tamanho do objeto; Rudos: o modelo de cores utilizado tenta eliminar boa parte dos rudos e o CamShift tende ignorar o restante. Ocluso: se a ocluso no for 100%, o CamShift tende a seguir o que est mais a esquerda do objeto. Variao da iluminao: CamShift tem alta tolerncia a variao da iluminao, j que usa apenas o canal hue do espao HSV e ignora os pixels com alta e baixo brilho.

Uma grande desvantagem do algoritmo CamShift que o mesmo depende apenas da distribuio da cor, por este motivo, erros na cor (iluminao colorida, pouca e muita iluminao) iro causar erro no rastreamento. No entanto, segundo as regras de FIRA a iluminao deve ser constante e de no mnimo 1,000 lux.

41

5.4.2. Avaliao do Filtro de Kalman

Segundo BEM e COSTA [18] a experincia com o Filtro de Kalman no foi como esperado. Embora o algoritmo apresente um baixo custo computacional, uma caracterstica essencial tratando-se de uma aplicao em tempo real, no teve o sucesso esperado porque o mesmo no se mostrou estvel e no apresentou a robustez necessria em um ambiente real. Dentre os problemas identificados destacam-se: variaes de iluminao, restrio de espao entre os robs e necessidade de cores totalmente distintas [18].

Devido s vantagens e desvantagens dos algoritmos estudados e pelo Filtro de Kalman j ter sido implementado em outros trabalhos e no ter apresentado o desempenho esperado, o algoritmo CamShift foi escolhido para esta implementao. A principal motivao consiste na anlise do seu desempenho considerando o cenrio apresentado no prximo captulo. 5.5. Concluso

Para o presente projeto foram estudados dois algoritmos de rastreamento de objetos. O primeiro algoritmo apresentado foi o algoritmo de BEM e COSTA, no qual o processo de rastreamento dos objetos baseia-se descrio dos seus contornos e caracterizado pela instncia de dois Filtros de Kalman sendo uma para estimar a forma do contorno e o outro para estimar o movimento. Na aplicao do Filtro de Kalman, cada iterao executa trs etapas: predio, assimilao e atualizao.

O segundo algoritmo estudado e escolhido para ser implementado foi o algoritmo de Camshift, um algoritmo robusto e eficiente que a partir da cor do objeto, previamente estabelecida, rastreia-o pela anlise da probabilidade da imagem gerada pelo vdeo. Esta anlise utilizada a cada nova imagem gerada. A busca na nova imagem desenvolvida levando em considerao as proximidades da regio na imagem antiga em que o objeto com a referida cor se encontrava [25].

42

CAPTULO VI ESTRUTURA DO CENRIO

6.1. Estrutura Utilizada

Como especificado no Captulo 3, neste projeto, o jogo regulamentado segundo a categoria Mirsot (Small League). No mesmo captulo so especificadas as regras como cores, medidas e dimenses, conforme regulamentao da FIRA.

Neste projeto, o cenrio utilizado no foi exatamente o mesmo definido pela FIRA. Os componentes (campo e robs) necessrios para as simulaes e comprovao da funcionalidade da aplicao desenvolvida foram construdos de forma similar. A representao do cenrio utilizado para simular o jogo est ilustrada na Figura 20.

Figura 20 Cenrio utilizado no projeto O ambiente em que foi montado possui iluminao boa e constante, conforme previsto pela FIRA. O campo foi construdo em placa de madeira de 72,5 cm x 94,0cm e 1,0cm de espessura. Os robs foram construdos em blocos de isopor de 7,5cm x 7,5cm e 2,0cm de altura.

Para simular o jogo foram utilizados dois robs da equipe (camiseta amarela) e um rob adversrio (camiseta azul). Sobre a superfcies superiores dos robs da equipe

43

encontram-se duas etiquetas: uma, a marca da equipe, representa a camiseta do rob (cor do time) com rea de 3,5cm x 3,5cm e a outra etiqueta, marca de identificao, identifica o rob na equipe sobre a rea de 7,5cm x 7,5cm (Figura 21).

Figura 21 Definio das marcas superiores do rob No prottipo desenvolvido, a cor utilizada na marca da equipe foi amarela e as cores utilizadas nas marcas de identificao foram salmo e verde, cores no reservadas pela FIRA (Figura 22-a). Para a equipe adversria a nica marcao relevante a marca da camiseta, representada por um nico crculo central de dimetro 3,5cm (Figura 22-b). A Figura 22-c ilustra os robs utilizados nos teste.

(a)

(b)

(c) Figura 22 Objetos da cena.

44

O mdulo de viso foi representado por uma webcam 1300k Multilaser com conexo USB. A webcam colocada a uma altura capaz de obter a viso global do cenrio. Na simulao este sensor est localizado a 1,05 metros acima da linha central do campo, sua funo captar as imagens do campo que sero utilizadas para obter informaes sobre o ambiente, permitindo tomadas de deciso pelo subsistema estrategista.

A central de processamento ligada ao sensor (especificada na prxima seo) um dos componentes mais importantes da partida, o mesmo responsvel pelo reconhecimento de padres, rastreamento de objetos, processamento de dados e transmisso de informaes.

6.2. Ferramentas e Componentes

Para atender aos requisitos do projeto, foram selecionados e utilizados diversos equipamentos e ferramentas para o desenvolvimento. O hardware utilizado nas simulaes e desenvolvimento est com sua especificao detalhada na Tabela 1 abaixo.

Tabela 1 Especificao de hardware


Microcomputador Processador :

Intel(R) Celeron M 1.4GHz Memria : 512MB DDR-SDRAM


Integrada USB 2.0

Placa de vdeo : Interface de conexo : Cmera : Taxa de captura:

Webcam 1300k Multilaser 30 frames/sec

A linguagem utilizada para a implementao foi C++, uma linguagem orientada a objeto com boa performance e alta disponibilidade de recursos. Para tanto, foi utilizada a plataforma de desenvolvimento Dev-C++. Para atender aos requisitos do mdulo de viso computacional foi usada a biblioteca OpenCv(Open Source Computer Vision Library), descrita na prxima seo.

6.2.1. Biblioteca OpenCV

45

A biblioteca OpenCV [26] contm uma coleo de funes em C e mtodos em C++ que implementam alguns algoritmos populares de processamento e manipulao de imagem e de viso computacional. Esta biblioteca foi criada por Gary Bradski da Intel Corporation em 2000 e desde ento tem tido sucessivos lanamentos de novas verses com novos algoritmos e tcnicas de processamento de imagem bem como o melhoramento das tcnicas j existentes [7].

A biblioteca, alm de muito eficiente, compatvel com a maioria das plataformas populares entre elas Linux, Windows e MacOSX e tambm compatvel com os ambientes de desenvolvimento: Visual Studio, Dev, .Net, Eclipse, entre outros.

Sua arquitetura, conforme apresentado na Figura 23, composta por quatro componentes Cv, CvAux, HighGui e CxCore [7].

Figura 23 OpenCV: Arquitetura e seus componentes[7] 6.2.1.1. CxCore

A componente CxCore define e implementa as estruturas e operaes bsicas que permitem realizar a edio e manipulao de imagem. Esta componente fornece a estrutura de suporte para o processamento de imagem. Nela definido um tipo bsico chamado IplImage que representa a imagem que ser processada. Esse tipo permite representar a imagem em diferentes resolues, definies e sistemas de cores.

Esta componente disponibiliza funes para fazer cpia, comparao, alteraes de tamanho, converso de cores e inverso de coordenadas entre imagens. Nela tambm so disponibilizados mdulos estticos para calcular diversas caractersticas como: valor mdio de

46

cor, ponto de mxima intensidade, multiplicao de imagens, entre outros. Tambm existem primitivas que permitem o desenho de figuras geomtricas (linhas, crculos, elipses, retngulos) assim como de fontes de texto e contornos poligonais. A componente CxCore vem ainda provida de estruturas de apoio ao processamento. Dentre as estruturas oferecidas destacam-se a estrutura de armazenamento em memria e em disco (ficheiros). O armazenamento em memria serve como auxiliar para acumular resultados intermedirios de processamento e o armazenamento em disco serve para tornar permanentes os dados calculados anteriormente.

6.2.1.2. Cv

A componente Cv disponibiliza as primitivas de anlise, processamento e reconhecimento de imagem que so realizadas sobre os tipos bsicos definidos na componente CxCore.

Nesta componente, as diferentes vertentes da viso computacional esto divididas nos seguintes grupos:

Processamento de imagem: neste grupo, dentre outras funcionalidades, contm as funes para deteco e comparao de contornos e decomposio de imagem em componentes de cor;

Deteco de objetos: contm um detector de objetos baseado em cor, um acumulador de imagens e respectivo processador para deteco de regies com movimento em imagens e outras funcionalidades;

Deteco de padres: permite aplicar um motor de reconhecimento sobre uma imagem e em tempo real obter uma identificao positiva ou negativa do padro fornecido por um conjunto alargado de imagens.

6.2.1.3. Highgui

A componente Highgui permite a criao de simples interfaces com janelas e barras deslizantes e manipulao (movimentao, criao e ampliao), assim como a captura e

47

reproduo de vdeo ou imagens. Esta componente tambm fornece mtodos para a captura de eventos do teclado e mouse.

Esta componente tambm possibilita a gravao de imagens para o disco, ou seja, as imagens representadas no formato interno (IplImage) so gravadas em uma variedade de formatos como JPEG, BMP, PNM entre outros.

A captura e a reproduo de vdeo so asseguradas, a baixo nvel, por funes que permitem selecionar cmeras ou carregar vdeos. O acesso s imagens das cmeras feito por uma funo que permite recuperar as imagens seqencialmente dos dispositivos de captura.

6.2.1.4. CvAux

Nesta componente encontram-se as funes que j fizeram parte do mdulo principal da biblioteca, mas que por estarem desatualizadas ou sem desenvolvimento futuro, foram abandonadas. A CvAux tambm define e implementam as funes que sero includas, na componente Cv, em verses futuras.

6.3. Mtodos e funes A seguir alguns mtodos e funes que devem ser considerados para o entendimento da implementao (Apndice) [27]: cvLoadImage: realiza leitura da imagem armazenada; cvCreateImage: cria objeto IplImage que tem o endereo da imagem e seus atributos como: dimenso, largura, altura, nmero de canais entre outros; cvCvtColor: converte imagem de entrada de um espao de cor para outro. cvCreateHist: cria o histograma conforme tamanho especificado e retorna ponteiro para o histograma criado; cvCalcHist: calcula o histograma de uma imagem com um ou mais canais; cvGetMinMaxHistValue: encontra a valor mximo e mnimo do histograma; cvSplit: divide os canais das cores da imagem; cvCalcBackProject: calcula o Back-Projection do histograma;

48

cvRectangle: desenha um retngulo na imagem conforme posio especificada; cvCreateStructuringElementEx: aloca um elemento estruturante; cvErode: aplica o processo de eroso atravs do elemento estruturante; cvDilate: aplica o processo de dilatao atravs do elemento estruturante; cvCamShift: implementa o algoritmo de rastreamento de objetos (CAMSHIFT). Primeiro encontra o centro do objeto usando o Mean-Shift, depois calcula o tamanho do objeto e a orientao;

6.4. Concluso

A aplicao desenvolvida foi realizada segunda regras especificadas pela FIRA na categoria MiroSot. Devido aos custos dos recursos, a mesma foi simulada segundo cenrio similar ao especificado.

Foram utilizados trs robs sendo dois da equipe (time amarelo) e um adversrio (time azul). Para atender o mdulo de viso, foi utilizada a biblioteca open source: OpenCv. Esta biblioteca possui funes e mtodos em C/C++ relacionados Viso Computacional e ao Processamento de Imagens Digitais que foram essenciais para o desenvolvimento da aplicao.

49

CAPTULO VII APLICAO DESENVOLVIDA

Para alcanar o objetivo do projeto, a aplicao desenvolvida consiste de trs mdulos: localizao, identificao e rastreamento dos objetos (Figura 24). A implementao foi realizada a partir de algumas adaptaes no algoritmo proposto por BEM e COSTA. BEM e COSTA propuseram o processo de rastreamento baseado no contorno dos objetos, utilizando para isso o Filtro de Kalman para estimar a forma e o movimento dos alvos. Este processo foi modificado para o algoritmo CamShift, baseado na cor do objeto.

Figura 24 Diagrama de atividade. 7.1. Localizao

A localizao dos objetos foi realizada a partir da classificao de todos os pixels da imagem como pertencente ao campo ou pertencente ao objeto. Essa classificao foi realizada a partir da subtrao entre as duas primeiras imagens adquiridas na seqncia, sendo a primeira imagem correspondente ao campo (Figura 25-a) no qual no se encontram objetos e a segunda imagem contendo os objetos inicialmente isolados (Figura 25-b). O processo de subtrao detalhado na Seo 2.5.1.

50

(a) Figura 25 Subtrao

(b)

O resultado da subtrao das duas primeiras imagens da seqncia (Figura 25) ilustrado na Figura 26-a.

(a)

(b)

Figura 26 Resultado da subtrao

A partir do processo de subtrao das duas imagens subseqentes, na qual uma delas caracterizada como fundo da cena (Figura 25-a), possvel extrair os objetos que se movimentam no cenrio. Para tanto, o cenrio ideal para realizar este processo deve ser totalmente esttico e os nicos movimentos permitidos devem ser dos objetos que se deseja localizar, identificar e rastrear.

Como pode ser observado no algoritmo utilizado e apresentado na Figura 27, a subtrao consiste na comparao, pixel a pixel, da imagem de referncia (fundo da cena) com a imagem em anlise. Os pixels da imagem analisada que possuem valores prximos aos valores da imagem de referncia so considerados pertencentes ao cenrio, os outros so

51

inicialmente considerados como pertencentes aos objetos do cenrio que esto em movimento. Considerando que a imagem de referncia e a imagem de anlise esto no espao de cores RGB (Seo 2.2.2) a subtrao foi realiza considerando os trs canais.
1. i <- 0 2. Enquanto i < alturaImagem Faa 3. j <- 0 4. Enquanto j < larguraImagem Faa 5. difR <- |Imagem1[i][j][R]Imagem2[i][j][R]| 6. difG <- |Imagem1[i][j][G]Imagem2[i][j][G]| 7. difB <- |Imagem1[i][j][B]Imagem2[i][j][B]| 8. Se difR>=0 e difR<=20 e difG>=0 e difG<=20 e difB>=0 e difB<=20 9. ImagemR[i][j][R] <- 0 10. ImagemR[i][j][G] <- 0 11. ImagemR[i][j][B] <- 0 12. Seno 13. ImagemR[i][j][R] <- Imagem2[i][j][R] 14. ImagemR[i][j][G] <- Imagem2[i][j][G] 15. ImagemR[i][j][B] <- Imagem2[i][j][B] 16. j <- j + 1 17. FimEnquanto 18. i <- i + 1 19. FimEnquanto

Figura 27 Algoritmo da subtrao entre imagens Um problema muito comum encontrado neste algoritmo a mudana da iluminao. Caso ocorra variao da iluminao, depois de adquirida a imagem de referncia, os pixels pertencentes ao fundo podem ser definidos como pertencentes ao objeto por distanciarem do brilho original. Por isso, para se obter um bom resultado necessrio manter a iluminao constante.

Mesmo mantendo a iluminao constante algumas sombras que os objetos criam no cenrio so classificadas como sendo parte de um objeto. Para tentar controlar esse problema, no algoritmo apresentado (Figura 27) foi adotado um limiar igual a 20 para realizar essa classificao.

Como pode ser observado, o resultado da subtrao no foi suficiente para classificar os pixels como pertencentes ao fundo da cena ou pertencentes aos objetos. Neste processo alguns pixels do fundo erroneamente so classificados como pertencentes ao objeto.

Para tentar diminuir os erros gerados no processo de subtrao foram aplicados o Filtro Gaussiano (Seo 2.4) e a operao morfolgica de abertura (Seo 2.6.3). O objetivo

52

do Filtro Gaussiano consiste em suavizar os valores associados a cada pixel a fim de eliminar os rudos deixados pela subtrao.

A Figura 30 ilustra o algoritmo do Filtro Gaussiano aplicado sobre a imagem resultante do processo de subtrao convertida para a escala de cinza (Seo 2.2.1), Figura 26b. O algoritmo do Filtro consiste da convoluo (Seo 2.3) da Imagem, cuja funo est representada na Figura 29, com a mscara gerada pelo algoritmo da Figura 28.

1. mascaraGaussiana (k, sigma) 2. cont <- 0 3. Enquanto i < k Faa 4. j <- 0 5. Enquanto j < k Faa 6. a[i][j] <- exp(-((i*i+j*j)/(2*sigma*sigma) 7. cont <- cont + Imagem[i][j] 8. j <- j + 1 9. FimEnquanto 10. i <- i + 1 11. FimEnquanto 12. i <- 0 13. Enquanto i < alturaImagem Faa 14. j <- 0 15. Enquanto j < larguraImagem Faa 16. a[i][j] <- exp(-((i*i+j*j)/(2*sigma*sigma)*z 17. j <- j + 1 18. FimEnquanto 19. i <- i + 1 20. FimEnquanto 21. return a

Figura 28 Mscara de convoluo gaussiana


1. convolucionar (k, l, imagem, Li, Lf, Ci, Cf, mascara) 2. max <- Lf-Li+1 3. kM <- k + trunca(max/2) + 1 4. lM <- l + trunca(max/2) + 1 5. i <- Li 6. g <- 0 7. Enquanto i <= max+Li Faa 8. j <- Ci 9. Enquanto j <= max+Ci Faa 10. a <- i-Li+1 11. b <- j-Ci+1 12. g[a][b] <- g[a][b]+ mascara[a][b]*imagem[kM-i][lM-j] 13. j <- j + 1 14. FimEnquanto 15. i <- i + 1 16. FimEnquanto 17. return g[k][l]

Figura 29 Funo de convoluo gaussiana

53

1. filtroGaussiano (imagem, k, sigma) 2. mascara <- mascaraGaussiana(k,sigma) 3. min <- (k+1)/2 4. Ymax <- larguraImagem min 5. Xmax <- alturaImagem min 6. i <- min 7. Enquanto i < Xmax Faa 8. j <- min 9. Enquanto j < Ymax Faa 10. a <- (k-1)/2 11. v <-convolucionar(min,min,imagem,i-a,i+a,j-a,j+a,mascara) 12. imagem[i][j] <- v 13. j <- j + 1 14. FimEnquanto 15. i <- i + 1 16. FimEnquanto

Figura 30 Filtro Gaussiano O resultado da aplicao do Filtro Gaussiano sobre a imagem na escala de cinza est ilustrado na Figura 31.

Figura 31 Resultado da aplicao do Filtro Gaussiano Para aplicar a operao morfolgica de abertura, a partir do resultado gerado pelo Filtro Gaussiano, a imagem foi binarizada (Seo 2.5.2), ou seja, adotou-se um limite (limiar) e os valores inferiores a este limite foram classificados como pertencentes ao fundo da cena e caso contrrio foram classificados com pertencentes aos objetos. O algoritmo utilizado para este processo est ilustrado na Figura 32, no qual o valor do limite foi 90.
1. i <- 0 2. Enquanto i < alturaImagem Faa 3. j <- 0 4. Enquanto j < larguraImagem Faa 5. Se Imagem[i][j] < 90 /*Limiar*/ 6. Imagem[i][j] <- 0 7. Seno 8. Imagem[i][j] <- 255 9. j <- j + 1 10. FimEnquanto 11. i <- i + 1 12. FimEnquanto

Figura 32 Binarizao

54

A Figura 33 representa o resultado do processo de binarizao. Como pode ser observada, a definio do corte ou limiar suficiente para dividir a imagem em duas regies: fundo da cena e objetos.

Figura 33 Resultado da binarizao Como ilustrado na Figura 33, alguns pixels do fundo foram classificados como pertencentes aos objetos. Para eliminar esses pixels foi aplicado o processo de abertura, uma operao matemtica morfolgica proveniente da eroso seguida da dilatao (vide Seo 2.8.3). O resultado do processo de abertura foi satisfatrio, ou seja, os rudos deixados pelo processo de subtrao e no corrigidos pelo Filtro Gaussiano e pela binarizao foram eliminados de forma a permitir a segmentao dos alvos e sua localizao (vide Figura 34).

Figura 34 Resultado da abertura Depois de realizada a operao morfolgica de abertura (Figura 34) para localizar os objetos, inicialmente dispostos de forma isolada, foi realizado o processo de conectividade (vide Seo 2.7). Como detalhado no algoritmo da Figura 35, os pixels que esto 4conectados, ou seja, so similares e adjacentes conforme Figura 10-a (pg. 16) recebem o mesmo valor.

55

1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39.

conectividade4(ImagemAux) cont <- 15000 ant <- 0 i <- 0 Enquanto i < alturaImagem faa cont <- cont + 1 ant <- 0 j <- 0 Enquanto i < larguraImagem faa Se (ImagemAux[i][j] == 255) Se (ant != 0) cont <- cont + 1 ant <- 1 Imagem[i][j] <- cont Seno ant <- 0 FimEnquanto FimEnquanto j < 1 Enquanto j < alturaImagem faa i <- 0 Enquanto i < larguraImagem faa valor1 <- Imagem[y][x] valor1 <- Imagem[y-1][x] Se (valor1 <= valor2) valormenor <- valor1 valormaior <- valor2 Seno valormenor <- valor2 valormaior <- valor1 Se (valormenor != valormaior) c <- 0 Enquanto c < larguraImagem faa Se Imagem[y][c] == valormaior Imagem[y][c] <- valormenor FimEquanto FimEquanto FimEquanto return Imagem

Figura 35 4-Conectividade O resultado deste processo (Figura 36) permite adquirir informaes do objeto como: valor da rea, ponto central, pontos que limitam o quadriltero que o define e outros.

Figura 36 Resultado da 4-conectividade

56

7.2. Identificao

Este mdulo corresponde ao processo de identificao dos objetos localizados na cena como robs da equipe, os quais sero utilizados no processo de rastreamento. Este processo realizado pela cor da marca da equipe (camiseta). Todo rob da equipe possui em sua superfcie superior um quadriltero de cor amarela em um dos quatro cantos da superfcie conforme Figura 21. Para identificar os robs da equipe, a imagem analisada (Figura 25-b) convertida para escala HSV (Seo 2.2.3), no qual o canal H (matiz) isolado do canal S (saturao) e V (brilho) a fim de tentar contornar o problema de variao de iluminao. O algoritmo para realizar esta conversar est ilustrado na Figura 37.

1. i <- 0 2. Enquanto i < alturaImagem Faa 3. j <- 0 4. Enquanto j < larguraImagem Faa 5. max <- maximo(Imagem[i][j],Imagem[i][j+1],Imagem[i][j+2]) 6. min <- minimo(Imagem[i][j],Imagem[i][j+1],Imagem[i][j+2]) 7. V <- max /*Brinho*/ 8. S <- (max-min)/max /*Saturao*/ 9. Se (S != 0) 10. R1 <- (max Imagem[i][j])/(max-min) 11. G1 <- (max Imagem[i][j+1])/(max-min) 12. B1 <- (max Imagem[i][j+2])/(max-min) 13. Se (R1 = max and G1 = min) 14. H <- 5 + B1 15. Seno Se (R1 = max and G1 != min) 16. H <- 1 G1 17. Seno Se (G1 = max and B1 = min) 18. H <- 1 + R1 19. Seno Se (G1 = max and B1 != min) 20. H <- 3 B1 21. Seno Se (B1 = max and R1 = min) 22. H <- 5 R1 23. Seno 24. H <- 0 25. H <- H*60 26. ImagemR[i][j] <- H 27. ImagemR[i][j+1] <- S 28. ImagemR[i][j+2] <- V 29. j <- j + 3 30. FimEnquanto 31. i <- i + 3 32. FimEnquanto

Figura 37 Converso RBG para HSV A Figura 38 ilustra o resultado obtido pela converso da escala RGB para a escala HSV.

57

Figura 38 Imagem no espaoHSV Depois de convertido para a escala HSV, os robs da equipe so identificados a partir da imagem Back-Projection (Seo 2.9). Essa imagem gerada em funo do histograma da cor do time na escala HSV sobre o canal H (Figura 39) e da imagem de anlise na escala HSV (Figura 38). A rea segmentada, definida por um quadriltero, que possui em um dos quatros cantos uma regio mais densa, ou seja, uma maior concentrao de pixels de cor branca (Figura 40-a) identificada como rob da equipe (Figura 40-b). Isso significa que os pixels daquela regio possuem maior probabilidade de pertencer cor especificada (histograma da Figura 39).

Figura 39 Histograma de cor

Figura 40 (a) Back-Projection (b) Identificao

58

7.3. Rastreamento

Para cada objeto identificado com rob da equipe (o que se deseja rastrear) definido uma regio de interesse, descrita por um quadriltero sobre o ponto central do alvo envolvendo a combinao (nica) da marca da equipe e a marca de identificao (vide Figura 41-a e Figura 41-d), permitindo identificar os robs na equipe para iniciar o processo de rastreamento.

Figura 41 Processo de rastreamento Como apresentado na Seo 5.2.2, o algoritmo de rastreamento dos alvos utilizado foi o Camshift. Para cada quadriltero definido foi calculado e armazenado o histograma 1D no espao HSV no qual a banda H foi isolada das demais (Figura 41-b e Figura 41-e). Depois de calculado o histograma de todos os robs da equipe, conforme parmetro especificado no algoritmo Camshift, foi determinada a imagem Back-Projection (Figura 41-c e Figura 41-f), indicando a regio que tem maior probabilidade de conter as cores definidas nos histogramas. O algoritmo Camshift (uma adaptao realizada no algoritmo Mean-Shift) ento aplicado sobre todos os alvos mveis.

59

O algoritmo Mean-Shift (Seo 5.2.1) possui as seguintes etapas [28]:

1- Escolhe o tamanho de uma regio de interesse que ser utilizada como um campo, onde os pontos sero verificados a fim de analisar se pertencem a esse campo de trabalho. 2- Seleciona um ponto onde ser localizada a regio. 3- Calcula a mdia local dos pontos dentro da regio. Na seqncia calcula o centro de massa (local onde existe uma maior concentrao dos pontos). 4- Desloca a regio para o ponto mdio calculado na etapa anterior. 5- Executa o passo trs e quatro at que todos os pontos tenham convergidos para o mesmo valor (cor) do ponto mdio ou at que a diferena seja menor que um limite estabelecido. Aps ter realizado todos os passos, o conjunto de pontos da imagem original se reduzir. Isso ocorre porque foi utilizado como parmetro alguma caracterstica do ponto central (por exemplo: cor), levando todos os outros pontos pertencentes a essa janela a ficarem com as mesmas caractersticas dele, reduzindo assim, a quantidade de pontos existentes na imagem [29].

Como apresentado na Seo 5.2.2 o algoritmo CamShift uma adaptao realizada sobre o Mean-Shift, a fim de ajustar dinamicamente a distribuio de probabilidade durante o rastreamento, j que esta distribuio varia conforme a seqncia de imagens geradas pelo vdeo. O algoritmo composto pelos seguintes passos [28]:

1- Determina a distribuio de probabilidade da imagem capturada atravs do histograma da cor definida para ser rastreada; 2- Inicializa a regio de interesse, a ser utilizada no processo iterativo; 3- Determinar a distribuio de probabilidade na regio; 4- Utiliza o algoritmo Mean-Shift para determinar o centro da regio. Guardar a rea da regio e a localizao do centro; 5- Para a seguinte imagem capturada, centrar a regio de interesse na localizao calculada em 4 e atribuir, para o tamanho da regio, a rea calculada em 4; 6- Retorna ao 3.

60

7.4. Resultados

O resultado obtido na simulao, utilizando o cenrio apresentado no Captulo 6 e os mdulos descritos neste captulo, foi satisfatrio. Para alcanar este resultado foram realizados alguns testes com cores variadas e foi verificado que os melhores resultados correspondem s cores mais saturadas, uma vez que o histograma calculado apenas pela componente hue do espao HSV (Seo 2.2.3). Alm disso, verificou-se que o desempenho do algoritmo piora utilizando-se cores mais escuras (Figura 42). Isto ocorre porque ao diminuir a saturao, a rea do cone (Figura 4) diminui, tornando a componente hue menos imune ao rudo [8].

Figura 42 Cores menos saturadas e mais escuras Coforme ilustraes apresentadas na Figura 43, as cores mais saturadas (cores puras) e mais claras possuem maior preciso durante o rastreamento. J na Figura 42, pode-se notar que para as cores mais escuras e menos saturadas existem momentos em que, durante o processo, a regio de interesse confunde o alvo identificado (Figura 42-b e Figura 42-d) e momentos em que o centro de massa diferencia muito do centro do alvo (Figura 42-a e Figura 42-c).

61

Figura 43 Cores mais saturadas e mais claras Embora robusto, o algoritmo de Camshift possui algumas limitaes, uma bastante considervel est no movimento dos alvos. Este movimento no pode ser muito brusco e nem rpido, para garantir que os alvos no saiam da regio de interesse do CamShift na transio entre duas imagens consecutivas. Se isso ocorrer, o alvo deixa de ser rastreado e s volta quando o mesmo retornar posio em que perdeu o rastreamento, porque como caracterstica do bom desempenho do Camshift a imagem no avaliada por inteiro, mas sim nas proximidades da regio de interesse.

7.5. Concluso

Um dos objetivos do projeto apresentados foi a implementao de uma aplicao que rastreia os objetos reconhecidos na cena. Esses objetos so robs no qual a cor da marcao da equipe amarela. A implementao desenvolvida foi dividida em trs mdulos: localizao, identificao e rastreamento.

A localizao consiste no processo de subtrao de duas imagens da seqncia. Em seguida, com o objetivo de eliminar os rudos deixados na subtrao, so aplicados: o filtro gaussiano, a binarizao e a operao morfolgica de abertura. Sobre a imagem resultante realizado a conectividade dos pixels que distingue os objetos, inicialmente dispostos de forma isolada. O resultado deste mdulo uma lista de todos os objetos da cena.

Dentre os objetos (robs) encontrados, para identificar os robs da equipe e os robs adversrios foi desenvolvido o mdulo de identificao. Essa identificao realizada pela cor da marcao da equipe no canal hue do espao HSV, para tentar controlar o problema da iluminao a imagem de interesse tambm convertida para a escala HSV. Em seguida

62

gerada a imagem Back-Projection. Essa imagem gerada pela razo do histograma da imagem de interesse e o histograma da cor do time, ambos na escala HSV. O resultado consiste em identificar quais os robs tem maior probabilidade de pertencer cor do time especificada.

De posse da identificao dos robs da equipe definido um quadriltero sobre o centro dos robs envolvendo as duas marcas (combinao nica). Esse quadriltero ento utilizado no algoritmo Camshifit para iniciar o processo de rastreamento dos objetos.

Com os testes realizados sobre o cenrio utilizado na simulao (Captulo 6) pode-se observar que embora existam algumas limitaes o resultado alcanado foi satisfatrio.

63

CAPTULO VIII CONCLUSO

O reconhecimento e o rastreamento de objetos em tempo real, durante uma partida de futebol de robs, so processos importantes realizados pelo mdulo de viso computacional. Determinar as trajetrias um fato imprescindvel para garantir o monitoramento do ambiente. O resultado deste processamento utilizado para definir a melhor estratgia a ser aplicada e garantir que as decises, tomadas pelo subsistema estrategista e enviadas via rdio ao subsistema de comunicao, sero traduzidas em instrues que, enviadas aos robs, sero executadas corretamente.

O processo de reconhecimento dos objetos utilizado, com algumas alteraes, foi proposto de BEM e COSTA. O algoritmo de rastreamento escolhido para implementao (Algoritmo CamShift) demonstrou ser robusto e computacionalmente eficiente atendendo aos requisitos do projeto. Este algoritmo baseia-se nas cores dos objetos identificados. O mesmo detecta o modelo de distribuio de probabilidade, enquanto ajusta dinamicamente os parmetros de distribuio da cor a ser rastreada.

Os testes e a adequao dos limiares e outros parmetros como as cores dos objetos so de extrema importncia, tendo em vista que a definio destes interfere diretamente no desempenho e eficcia do algoritmo. Atravs dos testes e dos resultados apresentados nas simulaes, pode-se notar o desempenho adquirido. Embora os problemas gerados pela variao da iluminao tenham sido minimizados com a utilizao do espao HSV no qual a matiz (cor) isolada da saturao e do brilho, as taxas de acerto mostraram-se mais estveis quando foram utilizadas cores mais saturadas e mais claras.

O tempo de execuo do algoritmo foi satisfatrio. Considerando-se que o sistema deve operar em uma partida de futebol de robs em tempo real, a monitorao realizada pelo sistema em boas condies do ambiente responde ao esperado desde que os parmetros e limiares estejam ajustados corretamente.

64

importante ressaltar que o processo de rastreamento de objetos implementado pode ser utilizado no apenas ao projeto de futebol de robs, mas pode ter outras aplicaes como: sistemas de monitoramento, sistemas de segurana, anlise de movimentos, anlise de desempenho dos jogadores entre outras. Para tanto, tais aplicaes devem atender as condies do algoritmo e, como apresentado, os parmetros devem ser ajustados corretamente.

O contedo abordado de grande importncia para sistemas inteligentes, principalmente no que refere s inferncias realizadas sobre o ambiente. Tais sistemas inteligentes podem ser utilizados em vrias aplicaes entre elas: sistema de segurana, sistema de vigilncia, anlise de movimentos humanos, sistema de deteco e rastreamento de pedestres ou veculos, dentre outros [5].

As sugestes para trabalhos futuros so: anlise da direo e sentido dos jogadores, anlise e avaliao da trajetria, implementar o Filtro de Kalman e analisar seu desempenho, comparando com o CamShift e alterar o clculo da distribuio para os canais 2D HS, isolando apenas o value (brilho) e comparar desempenhos, exatido e preciso dos resultados encontrados.

65

REFERNCIAS BIBLIOGRFICAS

[1]. MORAIS, ERIKSON FREITAS DE. Rastreamento e contagem de peixes utilizando filtro preditivo. Dissertao apresentada ao curso de Ps-Graduao da Universidade Federal de Minas Gerais. Belo Horizonte BH, 2005.

[2]. CBFR98 Copa Brasil de Futebol de Robs. Disponvel em: <http:// http://www.pcs.usp.br/~cbfr98/>. Acesso em: 30 de outubro de 2008.

[3]. BIANCO, JOS ROBERTO DEL; DOURADO LUIZA MOREIRA DE ABREU. Desenvolvimento tecnolgico de um time de futebol de robs categoria MiroSot. Monografia apresentada no curso de graduao, Bacharelado em Engenharia da Computao. Goinia GO, 2003.

[4]. CUNHA, YURIANA DE MELO; SILVA, ALAN HENRIQUE FERREIRA. Reconhecimento de Imagens. Projeto final de curso apresentado Universidade Catlica de Gois, para obteno do ttulo de Bacharel em Cincia da Computao. Goinia GO, 2007.

[5]. Teoria: Processamento de imagens. Disponvel em: <http://www.dpi.inpe.br/spring/ teoria/filtrage/filtragem.htm>. Acessado em: 10 de maio de 2008.

[6]. FIRA Small League MiroSot Game Rules. Disponvel em: <http://www.fira.n et/soccer/mirosot/rules_slm.html>. Acesso em: 12 de maro de 2008.

[7]. DIAS, AMADEU JOS LABRINCHA. LiMA Livros Multimodais Aumentados. Projeto do Laboratrio de Sistemas Informticos de Grande Escala. Campo Grande Lisboa, 2005.

[8]. CARREIRAS, PAULO JORGE PEREIRA. PREDGRAB Predio de Trajectrias de Alvos Mveis. Dissertao para obteno de grau de Mestre em Engenharia Electrotcnica e de Computadores. Campo Grande Lisboa, 2007.

66

[9]. MARQUES FILHO, OG; VIEIRA NETO, HUGO. Processamento Digital de Imagens. Rio de Janeiro: Brasport, 1999.

[10]. AZEVEDO, EDUARDO; AZEVEDO, AURA CONCI. Computao Grfica teoria e prtica. Rio de Janeiro: Elsevier, 2003. [11]. GOMES, MRCIO LUIZ ROSSATO. Recuperao de vdeos por contedo com base em informaes estticas e dinmicas. Curitiba: Pontifcia Universidade Catlica do Paran do Campus de Curitiba, Ps-Graduao em Informtica Aplicada, 2006. 103p.

[12]. SOUZA, EDER JONCK DE. Uma alternativa de Interface Homem-Mquina utilizando uma cmera de baixo custo. Joinville: Universidade do Estado de Santa Catarina, Graduao em Cincia da Computao, 2005. 76p.

[13]. VIEIRA, BRUNO LOPES; ALMEIDA, ELIANA SILVA DE; FRERY, ALEJANDRO CSAR. Deteco de Paralelismo para Filtros Convolucionais. In: Anais XIII Simpsio Brasileiro de Sensoriamento Remoto. Florianpolis, Brasil. INPE, 2007, p. 6257-6264.

[14]. PAVIM, ALBERTO XAVIER; ROLOFF, MRIO LUCIO. Curso de Processamento e Anlise de Imagens. Florianpolis SC, 2005.

[15]. VIEIRA, BERNARDO CUNHA. VRemote Interface Humano-Computador utilizando reconhecimento de gestos com Hidden-Markov Models. Belo Horizonte MG, 2005.

[16]. SOBREIRA, RODOLFO MARENGO. Futebol de robs, uma aplicao de robtica. Monografia apresentada no curso de graduao, Bacharelado em Sistemas de Informao. Presidente Prudente SP, 2003.

[17]. SOBREIRA, RODOLFO MARENGO; SILVA, FRANCISCO ASSIS DA; ROS, RENATO LUCIANO. Futebol de robs, uma aplicao de robtica. Universidade do Oeste Paulista e Faculdade de Informtica de Presidente Prudente. Presidente Prudente SP, 2002.

67

[18]. BEM, RODRIGO ANDRADE DE; COSTA, ANNA HELENA REALI. Rastreamento visual de mltiplos objetos baseado em contornos aplicado ao futebol de robs. In: Anais do XXVI Congresso da Sociedade Brasileira de Computao. Campo Grande, Brasil. SBC, 2006. v. 1, p. 163 - 172

[19]. KAICK, OLIVER MATIAS VAN; SCHWARTZ, WILLIAM ROBSON; SILVA, MURILO VICENTE GONALVES DA; PEDRINI, HLIO. Identificao e rastreamento em tempo real de mltiplos agentes autnomos. Curitiba PR, 2005.

[20]. BEM, RODRIGO ANDRADE DE. Uma abordagem livre de modelo para rastreamento de objetos em seqncias de imagens. Dissertao apresentada Escola Politcnica da Universidade de So Paulo. So Paulo SP, 2007.

[21]. COSTA, ANNA HELENA REALI; PEGORARO, REN. Construindo robs autnomos para partidas de futebol: O time Guaran. 2000.

[22]. MATTOS, MARCELO HORNE. Viso Computacional: Estudo do Filtro de Kalman em Conjunto ao Mean-Shift no Rastreamento de Jogadores em Esportes Coletivos. Monografia apresentada no curso de graduao, Bacharelado em Cincia da Computao. Pelotas, 2007.

[23]. FRANOIS, ALEXANDRE R. J.. CamShift Tracker Design Experiments with Intel OpenCV and SAI. Califrnia, 2004.

[24]. BRADSKI, GARY R.. Computer Vision Face Tracking for use in a Perceptual user Interface. Califrnia, 1999.

[25]. COSTA, HIGOR DTALLES. Controle de um Rob Mvel Utilizando a Tecnologia ZIGBEE e a Viso Computacional. Monografia apresentada no curso de graduao, Bacharelado em Engenharia Eltrica. Vitria - ES, 2007.

[26]. Intel Corporation. OpenCV Open Computer Vision Library. Disponvel para download em: <http://sourceforge.net/projects/opencvlibrary/>. Acessado em: 24 de julho de 2008.

68

[27]. Tutorial OpenCV.: <http://www.tecgraf.puc-rio.br/~malf/opencv>. Acessado em: 24 de julho de 2008.

[28]. GONALVES, PAULO J. SEQUEIRA; CORREIA LUS M. P. M.. Controlo em tempo real, baseado em viso, de um rob mvel. Castelo Branco, 2006.

[29]. LOUREGA, LUCIANA VESCIA; FREITAS, GABRIELLE DIAS; DORNELHAS, MARCOS CORDEIRO. Segmentao de imagens usando o processamento linear e no-linear no auxlio ao diagnstico de patologias. Santa Maria - RS, 2006.

69

APNDICE

CDIGOS-FONTE DA APLICAO
Mtodos para o Processamento de Imagem
/********************** Conectividade **********************/ void Imagem::conectividade4(IplImage *imagem) { int i,j; int cont = 15000; int ant = 0; for (i = 0; i < imagem->height; i++){ cont ++; ant = 0; for( j = 0; j < imagem->width; j++) { if( (int)((uchar*)(imagem->imageData + imagem->widthStep*i))[j] == 255){ if(!ant) { cont ++; ant = 1; } setData_s(i, j, cont ); } else { ant = 0; } } } for(int y=1; y < imagem->height; y++) { for(int x=0; x < imagem->width; x++) { short valor1 = valor2 = 0; valor1 = getData_s(y, x); valor2 = getData_s(y-1, x); compara_valor(valor1, valor2); if(valormenor != valormaior) { for(int c = 0 ; c < img->width; c++) { if ((short)getData_s(y, c) == valormaior) { setData_s(y, c, valormenor ); } } } } } } /********************** Subtrao **************************/ void Imagem::subtrairImagem(IplImage *imagem1, IplImage *imagem2){ uchar* tempR = (uchar*) img->imageData; uchar* temp1 = (uchar*) imagem1->imageData; uchar* temp2 = (uchar*) imagem2->imageData; for( int i=0; i < imagem2->height*imagem2->width; i++ ) { uchar *R = *temp1-*temp2; uchar *G = *temp1+1-*temp2+1; uchar *B = *temp1+2-*temp2+2; if (abs(R)>=0&&abs(R)<20&&abs(G)>=0&&abs(G)<20&&abs(B)>=0&&abs(B)<20){ *tempR = 0; *(tempR+1) = 0; *(tempR+2) = 0; } else { *tempR = *temp2; *(tempR+1) = *(temp2+1); *(tempR+2) = *(temp2+2); } tempR+=3; temp1+=3; temp2+=3; } }

70

/****************** Identificar Time ***********************/ void Imagem::identifyTeam(){ IplImage *hue = 0; IplImage *mask = 0; IplImage *hsv_aux = 0; CvHistogram *hist = 0; CvRect ROI; IplImage *aux = cvLoadImage("CorDoTime.bmp",-1); hsv_aux = cvCreateImage( cvGetSize(aux), 8, 3 ); ROI = cvRect(186 , 165, 20, 20); cvCvtColor( aux, hsv_aux, CV_BGR2HSV ); int hdims = 16; float hranges_arr[] = {0,180}; float* hranges = hranges_arr; int vmin = 10, vmax = 256, smin = 30; float max_val = 0.f; hist = cvCreateHist( 1, &hdims, CV_HIST_ARRAY, &hranges, 1 ); hue = cvCreateImage( cvGetSize(image.getImagem()), 8, 1 ); mask = cvCreateImage( cvGetSize(image.getImagem()), 8, 1 ); int i, bin_w, c; int _vmin = vmin, _vmax = vmax; cvInRangeS(hsv_aux,cvScalar(0,smin,MIN(_vmin,_vmax),0), cvScalar(180,256,MAX(_vmin,_vmax),0), mask ); cvSplit( hsv_aux, hue, 0, 0, 0 ); cvSetImageROI( hue, ROI ); cvSetImageROI( mask, ROI ); cvCalcHist( &hue, hist, 0, mask ); cvGetMinMaxHistValue( hist, 0, &max_val, 0, 0 ); cvConvertScale( hist->bins, hist->bins, max_val ? 255. / max_val : 0., 0 ); cvSplit( hsv.getImagem(), hue, 0, 0, 0 ); //Imagem de projeo cvCalcBackProject( &hue, backProjection.getImagem(), hist ); //Verifica se um dos quatro cantos do objeto branco, ou seja, se o objeto pertence ao time backProjection.identificarJogador(objAux.getLista()); } /********************* Rastreamento ************************/ void Imagem::rastreamento (IplImage *cena, Imagem hsv, IplImage *mask, IplImage *hue, CvHistogram hist, CvRect ROI) { CvConnectedComp track_comp; CvBox2D track_box; cvCvtColor(cena, hsv.getImagem(), CV_BGR2HSV); int _vmin = 10, _vmax = 256, smin = 30; cvInRangeS( hsv.getImagem(), cvScalar(0,smin,MIN(_vmin,_vmax),0), cvScalar(180,256,MAX(_vmin,_vmax),0), mask ); cvSplit( hsv.getImagem(), hue, 0, 0, 0 ); IplImage *project = cvCreateImage( cvGetSize(cena.getImagem()), 8, 1 ); cvCalcBackProject( &hue, project, hist); cvAnd( project, mask, project, 0 ); cvCamShift( project, ROI, cvTermCriteria(CV_TERMCRIT_EPS|CV_TERMCRIT_ITER,10,1), &track_comp, &track_box ); ROI = track_comp.rect; if( cena->origin ) track_box.angle = -track_box.angle; CvPoint Inicio; CvPoint Fim; Inicio = cvPoint((int)(track_box1.center.x - track_box1.size.width/2), (int)(track_box1.center.y - track_box1.size.height/2)); Fim = cvPoint((int)(track_box1.center.x + track_box1.size.width/2), (int)(track_box1.center.y + track_box1.size.height/2)); CvScalar cor; cor = cvScalar(0, 0, 255,0); cvRectangle( cena, Inicio, Fim, cor, 2, CV_AA,0); }

71

/*********************** Binarizar *************************/ void Imagem::binarize() { uchar* temp = (uchar*) img->imageData ; for( int i=0; i < img->height*img->width; i++ ) { *temp = (*temp > 90) ? 255 : 0 ; temp++ ; } } /*********************** Abertura **************************/ void Imagem::abertura(IplImage *src, int an) { //elemento retangular IplConvKernel* elemento=cvCreateStructuringElementEx(an*2+1,an*2+1,an,an,CV_SHAPE_RECT,0); cvErode(src,img,elemento,3); cvDilate(img,img,elemento,3); } /*********************** Identificar ***********************/ void Imagem::identificarJogador(Lista l) { Objeto *aux = l.getInicio(); int eq = ad = 1; int centro_x, centro_y; while (aux) { l.procura_codigo(aux->getCodigo()); centro_x = aux->getX3(); centro_y = aux->getY1(); if (getData_c(centro_y,centro_x)==255 && getData_c(centro_y-2,centro_x)==255&& getData_c(centro_y+2,centro_x)==255 && getData_c(centro_y,centro_x+2)==255&& getData_c(centro_y,centro_x-2)==255){ aux->setAdversario(false); aux->setJogador(eq++); } else { centro_x = aux->getX4(); centro_y = aux->getY1(); if (getData_c(centro_y,centro_x)==255 && getData_c(centro_y-2,centro_x)==255&& getData_c(centro_y+2,centro_x)==255 && getData_c(centro_y,centro_x+2)==255&& getData_c(centro_y,centro_x-2)==255){ aux->setAdversario(false); aux->setJogador(eq++); } else { centro_x = aux->getX3()+5; centro_y = aux->getY2()-5; if (getData_c(centro_y,centro_x)==255 && getData_c(centro_y-2,centro_x)==255&& getData_c(centro_y+2,centro_x)==255 && getData_c(centro_y,centro_x+2)==255&& getData_c(centro_y,centro_x-2)==255){ aux->setAdversario(false); aux->setJogador(eq++); } else { centro_x = aux->getX4()-5; centro_y = aux->getY2()-5; if(getData_c(centro_y,centro_x)==255&&getData_c(centro_y-2,centro_x)==255 &&getData_c(centro_y+2,centro_x)==255&&getData_c(centro_y,centro_x+2)==255 &&getData_c(centro_y,centro_x-2)==255){ aux->setAdversario(false); aux->setJogador(eq++); } else { aux->setAdversario(true); aux->setJogador(ad++); } } } } aux = aux->getProximo(); } }

Você também pode gostar