You are on page 1of 122

ESCOLA DE ENGENHARIA DE PIRACICABA - EEP/FUMEP BACHARELADO EM CINCIA DA COMPUTAO ESTGIO SUPERVISIONADO

Davi Cardoso e Vanderlei Vitrio Gomes

Estudo de Sistemas de Viso Artificial e a implementao de um software de viso para o uso no Futebol de Robs.

Orientadores Prof. Msc. Jos Martins Junior e Prof. Dra. Maria Cristina A. Batocchio

Piracicaba, Novembro de 2005

ESCOLA DE ENGENHARIA DE PIRACICABA - EEP/FUMEP BACHARELADO EM CINCIA DA COMPUTAO ESTGIO SUPERVISIONADO

Davi Cardoso e Vanderlei Vitrio Gomes

Estudo de Sistemas de Viso Artificial e a implementao de um software de viso para o uso no Futebol de Robs.
Relatrio Final do trabalho acadmico apresentado ao Programa de Estgio Supervisionado Bacharelado do em curso Cincia de da

Computao da Escola de Engenharia de Piracicaba EEP/FUMEP.

Trabalho de Iniciao Cientfica do Curso de Cincia da Computao. Supervisor de estgio: Prof. Msc. Jos Martins Junior

Piracicaba, Novembro de 2005.

ii

ESCOLA DE ENGENHARIA DE PIRACICABA - EEP/FUMEP BACHARELADO EM CINCIA DA COMPUTAO ESTGIO SUPERVISIONADO

Para uso dos Orientadores:

Analisado por: Orientadores: Prof. Msc. Jos Martins Junior Prof. Dra. Maria Cristina A. Batocchio Supervisor de Estgio: Prof. Msc. Jos Martins Junior

Assinatura:

Data:

/ /

/ /

Piracicaba, Novembro de 2005.

iii

ESCOLA DE ENGENHARIA DE PIRACICABA - EEP/FUMEP BACHARELADO EM CINCIA DA COMPUTAO ESTGIO SUPERVISIONADO

O que sabemos uma gota, o que ignoramos um oceano Isaac Newton

Piracicaba, Novembro de 2005.

iv

ESCOLA DE ENGENHARIA DE PIRACICABA - EEP/FUMEP BACHARELADO EM CINCIA DA COMPUTAO ESTGIO SUPERVISIONADO

Dedico este trabalho aos meus pais, Isabel e Antonio, que sem diplomas ou ttulos demonstraram serem mais que doutores na minha educao e com pacincia e amor me ensinaram a viver.

Davi Cardoso
Dedico este trabalho aos meus pais, Ciro e Clia, que com suas beno me guiaram, conduziram, protegeram e apoiaram atravs dos atenuantes mas gratificantes caminhos pela vida.

Vanderlei Vitrio Gomes

Piracicaba, Novembro de 2005.

ESCOLA DE ENGENHARIA DE PIRACICABA - EEP/FUMEP BACHARELADO EM CINCIA DA COMPUTAO ESTGIO SUPERVISIONADO

Queremos expressar nossos profundos agradecimentos ao Sr. Osvaldo e a Sra. Lgia pela pacincia, compreenso e espao cedido para o desenvolvimento deste projeto e tambm a professora Ellen Cristina Andrade pela ateno dedicada realizao deste trabalho. Agradecemos aos professores, Pedro Grosso, Francisco Arnold, Wagner Cavalcante, Luis Camolesi e em especial aos nossos orientadores, Jos Martins Junior e Maria Cristina Aranda Batocchio pelo apoio e incentivo concedido. Por fim agradecemos aos integrantes da banca examinadora pela ateno e disponibilidade dedicada a leitura e avaliao deste trabalho.

Davi Cardoso e Vanderlei Vitrio Gomes

Piracicaba, Novembro de 2005.

vi

ESCOLA DE ENGENHARIA DE PIRACICABA - EEP/FUMEP BACHARELADO EM CINCIA DA COMPUTAO ESTGIO SUPERVISIONADO

Agradeo primeiramente a Deus pela proteo e oportunidade de vida que tenho hoje. minha amada noiva e futura esposa Ellen, que com amor, pacincia e profissionalismo me auxiliou com suas pertinentes observaes a respeito dessa dissertao. Aos outros integrantes do grupo 1G1, Andrs, Ivan, Thiago e especialmente Vanderlei pelas horas de dedicao e esforos em um trabalho particular e mpar que trouxe muito mais do que 101 motivos para a alegria de todos. Aos meus irmos. Ao Ezequiel pela alegria transmitida com suas rpidas piadas e especialmente ao Samuel que com criatividade e capricho demonstrou ser um mestre em nosso projeto e implementao mecnica inicial. E finalmente aos melhores amigos que um homem pode ter: Tilly, Lobo e Bisqui pelas imagens concedidas para ilustrao deste trabalho.

Davi Cardoso
Agradeo primeiramente a Deus, que com tanta sabedoria e distino, me concebeu virtudes, oportunidades, proteo e uma tima famlia. Aos meus pais que com muito esforo me ofereceram essa estrutura familiar e pessoal que possuo hoje e a meu irmo, que com sua irreverncia soube me respeitar e apoiar nas horas necessrias. A minha namorada e melhor amiga Angela, que soube compreender minhas ausncias e sempre esteve me apoiando e amando. Aos outros integrantes do grupo 1G1, Andrs Villalobos, Davi Cardoso, Ivan Santos e Thiago Richter, pois sem suas amizades, apoios e cobranas nada se concretizariam. Com especial agradecimento ao meu amigo e companheiro Davi Cardoso, pessoa marcante na vida de todos os que o conhece, mesmo conhecendo-o pouco como eu conheo. E ao grande amigo Ricardo Albuquerque, pessoa com a qual tenho um profundo respeito e carinho.

Vanderlei Vitrio Gomes


Piracicaba, Novembro de 2005.

Resumo
Este trabalho procura direcionar a uma leitura amigvel e fluente para o to complexo e obscuro tema da Viso Computacional. Desde seu incio, onde se aborda a conceituao dos aspectos histricos e as metodologias aplicadas atualmente nesta rea, at a implementao das tcnicas bsicas de viso em um software voltado ao uso do futebol de robs, buscou-se facilitar a compreenso e viabilizar o domnio, na prtica, das tcnicas de digitalizao e dimensionamento de imagens, aplicao de filtros por convoluo, reconhecimento de borda, segmentao por cor e vetorizao, muito conhecidas no mundo dos Sistemas de Viso Computacional. Para tanto, faz-se necessrio o uso de funes pr-determinadas pelas APIs (Aplication Program Interface- Interface de Programas Aplicativos) grficas e de um compilador amigvel ao ambiente grfico do Microsoft Windows . A elaborao do software de viso para este trabalho procura tambm seguir as regras e a utilizao dos diagramas comumente aplicados na prtica da linguagem UML (Unified Modeling Language Linguagem Unificade de Modelagem). A ttulo informativo, este trabalho encontra-se no contexto de um projeto maior que previu a integrao de outros dois trabalhos de iniciao cientfica. Um dos trabalhos objetivou a construo do hardware e do mecanismo para agentes robticos. O outro props a aplicao de mtodos de aprendizado para a definio de estratgias e trajetrias no jogo. Tal integrao permitiu a soluo de vrios problemas envolvidos no jogo de futebol de robs e viabilizou a execuo deste trabalho de viso computacional.

ii

Abstract
This work aims to direct a friendly and fluent reading for the complex and obscure subject of computational vision. Since the beginning of computational vision, the conceptualization of the historic aspects and the applied methodologies currently used in this area are approached, up to the implementation of the basic vision techniques in a software used for robot soccer. In order to do so it was attempted to ease the comprehension and to enable the control in practicing the following techniques: image digitalization and dimensioning, filter application by convolution, outline recognition, color segmentation and vectoring, well know in the world of computational vision systems. For that, it is necessary to use the predetermined functions of the graphic APIs (Application Program Interface) and a friendly compiler for the graphic environment of Microsoft Windows . The vision software design for this project, also aims to follow the rules, and the use of diagrams commonly applied in UML (Unified Modeling Language). For informative subject, this work belong in a bigger project context, that integrate others
two works of scientific initiation. One of then, describes the hardware construction and the works for robotics agents. The other one proposed the application of apprenticeships methods for the definition of strategy and trajectories of robotics soccers game. This integration allowed the problems solution engaged on the robot soccer game and makes possible the execution of this work of computational vision.

iii

ndice dos assuntos.


1. Introduo.................................................................................................................................. 1 1.1. Histrico da Computao Grfica. ...................................................................................... 1 2. Objetivo ..................................................................................................................................... 3 3. Justificativa................................................................................................................................ 4 4. Reviso de Literatura................................................................................................................. 5 4.1. A Computao Grfica. ....................................................................................................... 5 4.2. A viso humana ................................................................................................................... 9 4.2.1. Conhecendo a estrutura do olho humano. .................................................................. 9 4.3. O Sistema de Viso Artificial e suas estruturas................................................................. 12 4.3.1. Aquisio e digitalizao de imagens....................................................................... 13 4.3.2. Propriedades de uma imagem................................................................................... 15 4.3.3. Convoluo com mscaras ....................................................................................... 18 4.3.4. Deteco de borda por convoluo........................................................................... 20 4.3.5. Ampliao e reduo geomtrica de imagens .......................................................... 24 4.3.6. Histograma e Tcnicas de filtragem de imagem ...................................................... 25 4.3.7. Sistemas de cores...................................................................................................... 36 4.3.8. Segmentao de imagens por cor ............................................................................. 45 4.3.9. Vetorizao baseada na diferena entre pixels ......................................................... 45 5. Materiais e Mtodos. ............................................................................................................... 49 5.1. Tcnicas para implementao do software de viso.......................................................... 49 5.2. Recursos computacionais para o tratamento grfico ......................................................... 50 5.3. Um pouco sobre UML....................................................................................................... 53 5.4. O Visual Basic e a Orientao a Objeto ............................................................................ 55 6. Desenvolvimento do software de viso computacional .......................................................... 57 6.1. Problemas de estrutura mnima de software e hardware ................................................... 57 6.1.1. Soluo adotada para hardware e software............................................................... 57 6.1.2. As classes e as APIs para o software........................................................................ 59 6.1.3. Planejamento e engenharia do software ................................................................... 62 6.1.4. Resultados obtidos na implementao do hardware e software ............................... 72 6.2. Problemas relativos captura, digitalizao e filtros por software ................................... 72

iv

6.2.1. Soluo para captura de imagens reais seqenciais.................................................. 75 6.2.2. Soluo para escolha de filtros para o ambiente....................................................... 77 6.2.3. Resultados obtidos com a captura, digitalizao e aplicao de filtros.................... 79 6.3. Problemas relativos calibrao dos elementos................................................................ 80 6.3.1. Soluo para os problemas de calibrao ................................................................. 82 6.3.2. Resultados obtidos na calibrao.............................................................................. 83 6.4. Problemas de limites do campo, busca e processamento de imagens ............................... 85 6.4.1. Soluo adotada para determinao de limites, busca e processamento .................. 85 6.4.2. Resultados obtidos com limites, busca e processamento de imagens ...................... 87 6.5. Problemas relativos Comunicao.................................................................................. 91 6.5.1. Soluo para Comunicao e Protocolo definido..................................................... 91 6.5.2. Resultados obtidos na comunicao ......................................................................... 92 7. Planejamento do Trabalho ....................................................................................................... 93 8. Concluses, Resultados Finais, Dificuldades e Pretenses Futuras ........................................ 94 9. Referncias Bibliogrficas....................................................................................................... 96 10. 11. Anexo A............................................................................................................................. 99 Anexo B........................................................................................................................... 103

Lista de Figuras.
Figura 1 Diviso proposta por Persiano e Oliveira, 1989......................................................... 6 Figura 2 Resultado do sistema viso computacional moderno.................................................. 8 Figura 3 Olho Humano e suas divises (adaptao de Gonzles, R.C., Woods, R.E, 1992). ... 9 Figura 4 Faixa de adaptao do olho intensidade luminosa. ................................................ 10 Figura 5 Esquema bsico para um Sistema de Viso Artificial............................................... 12 Figura 6 Eixos para identificao matricial de valores discretos dos nveis de cinza. ............ 14 Figura 7 Vizinhanas de um pixel de uma imagem digitalizada. ............................................ 16 Figura 8 Aplicao lgica aplicada a imagens binrias........................................................... 17 Figura 9 Resultado da primeira operao de convoluo de A por B. .................................... 20 Figura 9 Deteco de bordas por mscaras de convoluo. .................................................... 24 Figura 10 Ampliao de 2 X aplicada a um pixel p(x,y);........................................................ 24 Figura 11a Histograma de imagem predominantemente escura;............................................. 26 Figura 11b Histograma de imagem predominantemente clara; ............................................... 26 Figura 11c Histograma de imagem pouco contratante; ........................................................... 27 Figura 11d Histograma de imagem muito contrastante;.......................................................... 27 Figura 12 Exemplo de funo injetora monotnica;................................................................ 28 Figura 13 Exemplos de funes lineares aplicadas a imagens em tons de cinza .................... 29 Figura 14 Exemplo de Funo nolinear aplicada a imagens em tons de cinza.................... 29 Figura 15a Histograma gerado a partir dos valores da imagem original................................. 31 Figura 15b Histograma gerado a partir dos valores calculados pela equalizao. .................. 32 Figura 16a, 16b Resultado do realce de contraste com equalizao de histograma. ............... 32 Figura 17 Expanso do histograma, realce de contraste.......................................................... 33 Figura 18 compresso do histograma, diminuio de contraste. ............................................. 33 Figuras 19a Imagem original; Figura 19b Aplicao da mscara de convoluo; .............. 34 Figuras 19c, Figura 19d com as respectivas mscaras de convoluo; .................................. 35 Figura 20a Imagem original; Figura 20b Aplicao da mscara de convoluo;................. 36 Figura 21 Espectro de decomposio da luz branca por um prisma de vidro. ........................ 37 Figura 22 Comprimentos de onda e a diviso entre luz visvel, ultravioleta e infravermelho. 37 Figura 23 Mistura de cores primrias aditivas....................................................................... 38 Figura 24 Mistura de cores primrias subtrativas.................................................................. 38

vi

Figura 25 Grfico de padronizao da C.I.E. para coeficientes de cromaticidade. ................. 40 Figura 26 Distribuio do sistema de cores RGB.................................................................... 41 Figura 27 Representao espacial do modelo de cor HSI. ...................................................... 43 Figura 28 Definio dos vetores elementares.......................................................................... 46 Figura 29 Contribuio de cada elemento para o clculo da rea ........................................... 47 Figura 30 Resultados de um processo de vetorizao de imagem........................................... 48 Figura 31 Viso geral do hardware do sistema de futebol de robs........................................ 58 Figura 32 Diagrama de Atividades, Captura de Imagem ........................................................ 62 Figura 33 Diagrama de Atividades, Limites de Campo .......................................................... 63 Figura 34 Diagrama de Atividades, Calibrar Elementos ......................................................... 64 Figura 35 Diagrama de Atividades, Processamento de Imagens............................................. 65 Figura 36 Diagrama de Atividades, Enviar Dados .................................................................. 66 Figura 37 Diagrama de Seqncia, Ativar Captura ................................................................. 66 Figura 38 Diagrama de Seqncia, Limites de Campo ........................................................... 67 Figura 39 Diagrama de Seqncia, Cores dos Elementos ....................................................... 67 Figura 40 Diagrama de Seqncia, Enviar Dados ................................................................... 68 Figura 41 Diagrama de Classe, Ativar Captura ....................................................................... 68 Figura 42 Diagrama de Classe, Limites de Campo ................................................................. 69 Figura 43 Diagrama de Classe, Cores dos Elementos ............................................................. 70 Figura 44 Diagrama de Classe, Enviar Dados ......................................................................... 71 Figura 45 Pontos de mxima e mnima luminosidade incidentes sobre o campo. ................. 73 Figura 46 Binarizao da imagem para demonstrao dos pontos de luminosidade. ............ 74 Figura 47 Apresentao da imagem original capturada X tratamento com filtro.................... 75 Figura 48 Imagem real capturada. .......................................................................................... 78 Figura 49 Imagem adquirida aps a aplicao de filtros corretivos. ...................................... 79 Figura 50 Imagem ampliada 1600 vezes e os tons de cores encontrados na imagem. ............ 81 Figura 51 - Pontos de calibrao dos elementos......................................................................... 83 Figura 52 Tela de calibrao dos elementos............................................................................ 84 Figura 53 Limites do campo. ................................................................................................... 85 Figura 54a Pontos de delimitao do campo. .......................................................................... 86 Figura 54b - Varredura da imagem com filtros de correo e campo delimitado. ..................... 86

vii

Figura 55 Tela de configurao dos pontos limites do campo. ............................................... 87 Figura 56a Uso normal do processador. .................................................................................. 88 Figura 56b Uso do processador durante a busca e o processamento de imagem. ................... 88

viii

Lista de Tabelas.
Tabela 1- Comparao entre o Sistema de Viso Humano e o Sistema artificial de Viso. ...... 11 Tabela 2- Resultados das aplicaes aritmticas de imagens em tons de cinza. ........................ 17 Tabela 3 - Tipos de mscaras utilizadas na aproximao do gradiente e laplaciano.................. 23 Tabela 4 -Valores originais do histograma em Pr(rk) e os resultados da euqlizao (Sk). ........ 31 Tabela 5 - Valores da contribuio de rea de cada elemento.................................................... 48 Tabela 6 - Descrio dos valores de ao para funes API ...................................................... 61 Tabela 7 - Resultado das medies da variao luminosa do campo . ....................................... 73 Tabela 8a - Resultados de tempo obtidos das etapas de processamento e filtros por hardware. 80 Tabela 8b - Resultados de tempo obtidos das etapas de processamento e filtros por software.. 80 Tabela 9 - Extrao da cor RGB em R,G,B e I........................................................................... 82 Tabela 10 - Extrao da cor RGB em R, G, B e I....................................................................... 84 Tabela 11 - Protocolo usado para a comunicao RS232........................................................... 92

ix

Abreviaturas Utilizadas.
2D- Duas dimenses. 3D- Trs dimenses. ADC- Analogical Digital Converter - Conversor Analgico Digital API- Application Program Interface - Interface de Programas Aplicativos AVI- Audio Video Interleave - Licenciamento de Vdeo e udio BMP- Bitmap - Mapa de Bits CCD- Charge Coupled Device - Dispositivo de Cargas Acopladas CDF- Cumulative Distribution Function - Funo de Distribuio Acumulativa CIE- Comission Internationale de IEclairage - Comisso Internacional de Iluminao CMY- Cyan, Magenta e Yellow - Ciano, Margenta e Amarelo DC- Device Context- Dispositivo de Contexto DLL- Dynamic Link Libraries - Biblioteca de Ligaes Dinmicas EIA- Electronic Industries Association - Associao das Indstrias de Eletrnicas. HDC- Handle Device Context - Dispositivo de Contexto Mnusevel HSI- Hue, Saturation, Intensity - Matiz ou Colorao, Saturao, Intensidade ou Brilho. HWND- Handle Window - Janela Manusevel NTSC- National Television Standards Committee - Comit Nacional de Padres de Televiso. OpenCV- Open Source Computer Vision - Cdigo Aberto de Viso Computacional OpenGl- Open Graphics Library - Cdigo Aberto de Biblioteca Grfica. P & B- Preto e Branco. PAL- Phase Alternating Line - Linha de Fases Alternadas. RC- Rendering Context - Contexto de Renderizao RGB- Red Green Blue- Vermelho, Verde e Blue. RS- Recommended Standards - Padres Recomendados. SVA- System of Artificial Vision- Sistema de Viso Artificial UML- Unified Modeling Language Linguagem Unificada de Modelagem YIQ- padro NTSC de Televiso

1. Introduo.
1.1. Histrico da Computao Grfica.
As reas da computao grfica e de processamento de imagens apresentam at hoje um crescimento de interesses e de tecnologias em vrios campos de aplicaes. As primeiras utilizaes registradas do processamento de imagens datam de meados de 1929, onde imagens eram codificadas em cinco nveis de intensidade distintos, a fim de serem enviadas atravs do sistema Bartlane de Transmisso, que ligava Londres a Nova Iorque por cabos submarinos. Mas somente trs dcadas mais tarde o grande impulso da computao grfica ocorreria com o incio do sistema espacial americano e o advento dos computadores de grande porte (MARQUES FILHO & VIEIRA NETO; 1999). Segundo Marques Filho e Vieira Neto (1999) as tcnicas computacionais de aprimoramento de imagens comearam a serem elaboradas pelo Jet Propulsion Laboratory (Pasadena, Califrnia EUA) em 1964, quando imagens enviadas pela sonda Ranger2 da lua eram corrigidas devido a distores inerentes cmera de TV acoplada ela. De 1964 at os dias atuais, a rea de processamento de imagens vem apresentando um crescimento em quase todos os ramos da atividade humana. Na Medicina, no uso de diagnsticos mdicos, a utilizao de tcnicas de processamento permitiram o desenvolvimento de novos equipamentos e maior facilidade na interpretao de imagens produzidas por equipamentos mais antigos como, por exemplo, o Raio X. Outro exemplo se v na Biologia, com a contagem do nmero de clulas atravs do processamento automtico de imagens recebidas de um microscpio, e obteno de maior fidelidade e velocidade na execuo de tarefas laboratoriais. Para esses mesmos autores, o processamento e a interpretao de imagens recebidas de satlites auxiliam dentre outras reas as de Geografia, Sensoriamento Remoto, Geoprocessamento e Meteorologia. Alm disso, o uso de tcnicas de restaurao de imagens auxilia a arqueologia na recuperao de fotos humanamente ilegveis de artefatos raros encontrados em estado de deteriorao. O uso de robs dotados de viso artificial para a execuo de diversas tarefas tais como controle de fluxo de materiais, controle de qualidade, segurana e proteo, tem crescido a cada ano com o frentico avano da automao industrial (MARQUES FILHO & VIEIRA NETO; 1999).

V-se, ento, que o avano das tcnicas de processamento de imagens tende a ser cada vez maior nas mais diversas reas de aplicao, consolidando ainda mais o uso do processamento de imagens e da viso computacional no mundo atual.

2. Objetivo
O trabalho em questo tem por objetivo a elaborao de uma verso simplificada de um software de viso computacional capaz de capturar, analisar e repassar informaes de posicionamento das imagens de agentes robticos envolvidos no futebol de robs. Em especfico, o objetivo deste trabalho capturar, filtrar e analisar imagens, fornecendo as coordenadas x e y do centro de um ou mais identificadores coloridos provenientes dos robs e de uma bola em tempo hbil, a fim de transmiti-las ao computador responsvel pelo sistema estratgico, permitindo assim, que cada rob enxergue o que o cerca.

3. Justificativa
Atualmente existem inmeras tcnicas e equipamentos caros para desenvolvimento de softwares de viso computacional onde so abordados modelos complexos e no genricos em diferentes reas de aplicabilidade prtica, dificultando o entendimento e o caminho a seguir na iniciao dos estudos de sistemas de viso. Basicamente, este trabalho possibilita uma interao inicial e simplificada aos interessados no aprendizado da viso computacional que, historicamente falando, ainda se encontra em seus primrdios, abordando a utilizao de segmentao por cor e vetorizao de imagens 2D. Alm disso, permite aos aprendizes obterem maior nimo ao notar que tcnicas simples podem ser implementadas e utilizadas praticamente em conjunto com equipamentos relativamente baratos existentes hoje no mercado, proporcionando resultados aceitveis ao sistema desenvolvido.

4. Reviso de Literatura.
4.1. A Computao Grfica.
A Computao Grfica a rea da cincia da computao que estuda a gerao, manipulao e interpretao de modelos e imagens de objetos ou ambientes utilizando computador. Uma variedade de disciplinas como fsica, matemtica, engenharia e arquitetura contribuem para a formulao de tais modelos (TRAINA & OLIVEIRA, 2003). A Computao Grfica pode ser subdividida em trs reas (ver Figura 1) segundo Persiano e Oliveira (1989): Sntese de imagens: rea que se preocupa com a produo de representaes visuais a partir das especificaes geomtrica e visual de seus componentes; Processamento de imagens: envolve tcnicas de transformao de imagens, em que tanto a imagem original quanto a imagem resultante apresentam-se geralmente sob uma representao matricial. Ela visa melhorar as caractersticas visuais da imagem, aumentando ou diminuindo contraste, foco, rudos ou distores; Anlise de imagens: procura obter as especificaes dos componentes de uma imagem a partir da representao visual e das informaes pictricas da prpria imagem produzindo informaes matemticas a partir, por exemplo, das primitivas geomtricas que compem essa imagem.

6
Imagens ...

Sntese de Imagens

Processamento de Imagens

especificaes de imagens ...

Anlise de Imagens

Imagens ...

Figura 1 Diviso proposta por Persiano e Oliveira, 1989.

Na ltima dcada somou-se a esse contexto a rea da Visualizao de Dados, conhecida como Viso Computacional (SCHROEDER et al., 1996 apud TRAINA & OLIVEIRA, 2003) que se utiliza as das tcnicas de Computao Grfica para representar informaes de forma a facilitar o entendimento de conjuntos de dados numricos de alta complexidade. Dessa maneira, a visualizao de dados partilha das caractersticas da sntese, do processamento e da anlise de dados. Hoje, a computao grfica passou a ser altamente interativa, onde o usurio pode controlar o contedo, a estrutura e a aparncia dos objetos e das imagens visualizadas. Os displays grficos de baixo custo possibilitaram o desenvolvimento de inmeros aplicativos baratos e relativamente fceis de usar, que dispunham de interfaces grficas como planilhas, processadores de texto e programas de desenho. Em tais interfaces, atravs de um gerenciador, o usurio pode criar e posicionar janelas que atuam como terminais virtuais, cada qual executando aplicativos independentes. Abstraes de objetos de um escritrio como arquivos, caixas de correio, impressoras e latas de lixo, que executam operaes anlogas da vida real, so implementadas por meios controles grficos de imagens. Aplicativos que manipulam texto (como processadores de texto) ou dados numricos (como planilhas) usam interfaces grficas, reduzindo sensivelmente a interao textual por meio de teclados alfanumricos (TRAINA & OLIVEIRA, 2003).

Como dito anteriormente, segundo Traina e Oliveira (2003) a manipulao com elementos grficos na computao nem sempre foi to acessvel assim, devido principalmente ao alto custo do hardware. Poucos programas aplicativos exploravam o uso de sistemas grficos mais complexos e atualizados. Com o advento dos computadores pessoais de baixo custo, como o IBM-PC e o Apple Macintosh, que utilizavam terminais grficos de varredura (Raster Graphics Displays), houve a popularizao do uso de sistemas grficos por usurios, permitindo a estes o desenvolvimento de novas tcnicas no campo da computao grfica e da viso computacional. Atualmente, pesquisadores esto desenvolvendo novas tecnologias que podero dar aos robs a capacidade visual quase humana, permitindo que eles monitorem reas pobremente iluminadas e at mesmo pilotem veculos em condies ambientais extremas. Nos dias atuais, planeja-se construir um chip que elimine os efeitos de uma iluminao ambiente arbitrria, permitindo que a viso robtica saia de seus estreitos limites atuais, funcionando bem apenas nas condies controladas dos laboratrios e passe a funcionar perfeitamente nas condies de iluminao do mundo real. O chip funcionar muito mais como uma retina do que como um sensor CCD (Charge Coupled Device - Dispositivo de Cargas Acopladas) tradicional, do tipo usado em cmeras digitais at agora. Da mesma forma que as clulas do olho humano processam informaes antes de enviar os sinais para o crebro, os pixels do novo chip "conversaro" entre si sobre o que eles esto vendo. Um programa foi utilizado para processar cerca de 80.000 imagens de lugares e objetos ao redor do mundo, balanceando a exposio entre as imagens, retirando "rudos" e melhorando o contraste. O algoritmo que est por trs desse novo programa permite que os pixels "percebam" a reflexo - uma propriedade da superfcie que determina quanto da luz incidente sobre um objeto ser refletida. Ele revelou texturas indecifrveis, exps indivduos escondidos e descobriu at caractersticas obscuras em chapas de raios-X. como mostra a (Figura 2 ) (Viso Artificial quase Humana..., 2005).

Figura 2 Resultado do sistema viso computacional moderno.

Segundo Brajovic no artigo Viso Artificial quase Humana...,(2005) "A maioria dos problemas na viso robtica pode ser resumida em ter-se muita luz em algumas partes da imagem e muito pouca luz em outras,"... "Mesmo assim ns precisamos da luz para mostrar os objetos em um campo de viso." Portando, a viso computacional no mais uma raridade: parte essencial de muitas reas de aplicao como educao, cincias, engenharia, medicina, publicidade, lazer e militar em tarefas que antes somente poderiam ser realizadas pela viso humana.

4.2. A viso humana


4.2.1. Conhecendo a estrutura do olho humano.
Segundo Gonzles e Woods (1992) o globo ocular tem um dimetro aproximado de 20mm, envolvido por trs membranas, a camada externa (crnea e esclertica), camada mediana (coride) e a camada interna que a retina. A coride revestida com uma forte pigmentao que garante o controle da quantidade de luz que entra no olho feito pelo diafragma da ris. O dimetro de abertura e controle da ris pode variar de 2 a 8 mm, sendo que a parte frontal da ris determina a cor do olho que nos visvel e a parte posterior possui um pigmento negro. A Figura 3 mostra detalhes do olho humano.

Figura 3 Olho Humano e suas divises (adaptao de Gonzles, R.C., Woods, R.E, 1992).

Para esses autores, ao focalizar uma cena, a retina que se localiza na parede posterior do olho recebe a projeo de uma imagem correspondente. A retina composta de dois tipos de sensores de luz discretos, os cones e os bastonetes. Os 75 a 150 milhes de bastonetes no so suscetveis cor, mas so sensveis a baixos nveis de iluminao, estando distribudos em toda a superfcie da retina. Na fvea, rea circular de aproximadamente 1,5 mm localizada na retina, esto localizados cerca de trezentos e quarenta mil cones. Estes so altamente sensveis cor e esto

10

conectados um a um terminaes nervosas. Seu nmero pode ser de seis a sete milhes em cada olho. Para se ter uma idia geral, hoje, sensores de CCD, com rea de 7 mm atingem facilmente este valor. De acordo com os autores citados acima, um fato interessante na identificao da cor pelos cones no olho humano o de basear-se nas trs componentes bsicas de cor - R (redVermelho), G (green- Verde) e B (blue- Azul). Outro fato muito relevante ao sistema de viso humana sua grande capacidade de percepo luminosa do ambiente, onde os valores de intensidade luminosa atingem a ordem de 1010, adaptando-se rapidamente - mas no simultaneamente - aos diferentes nveis intensidade e brilho. A faixa de intensidade luminosa que olho consegue identificar simultaneamente relativamente pequena em relao a sua faixa total de adaptao (vide Figura 4).

Figura 4 Faixa de adaptao do olho intensidade luminosa.

Levando-se em considerao que atualmente sistemas eletrnicos e computacionais possibilitam o reconhecimento de cor e a distino de intensidade luminosa do ambiente, nota-se a possibilidade da elaborao de um sistema artificial de viso que se assemelhe ao sistema

11

humano. A tabela abaixo apresenta uma idia geral e comparativa da capacidade dos elementos de viso artificial em relao ao sistema de viso humano.
Tabela 1- Comparao entre o Sistema de Viso Humano e o Sistema artificial de Viso.

Capacidades envolvidas Espectro Luminoso

Sistema de Viso Humano Limitado faixa de luz visvel (300 nm 700 nm) do espectro de ondas eletromagnticas

Flexibilidade

Habilidade

Cor Sensibilidade

Tempo de Resposta Percepo

2-D e 3-D

Sistema de Viso Artificial Pode operar praticamente em todos os espectros de radiaes eletromagnticas, dos raios X ao infravermelho. Extremamente Flexvel Normalmente inflexvel, apresentando bom desempenho somente para a tarefa que foi planejada. Pode estabelecer estimativas Efetua medies exatas, relativamente precisas em baseadas em contagem de assuntos subjetivos. pixels e, portanto, depende da resoluo da imagem. Capacidade de interpretao Medio objetiva dos subjetiva de cores componentes R, G e B para determinao da cor. Capaz de se adaptar a diferentes Sensvel ao nvel e padro de condies de luminosidade, iluminao, bem como caractersticas fsicas do objeto distancia em relao ao objeto e e distancia do mesmo. Limitasuas caractersticas fsicas. se a distino de muitos nveis Pode trabalhar com centenas de diferentes de cinza tons de cinza ao mesmo tempo simultaneamente. conforme o tipo de projeto. Elevado, da ordem de 0,1s. Depende de aspectos de hardware e software, podendo ser to baixo quanto 0,001 s Percebe variaes de brilho em Pode perceber brilho em escala escala logartmica. A linear e logartmica, baseandointerpretao subjetiva de se no sistema de cor utilizado. brilho depende da rea ao redor do objeto. Pode executar tarefas 3-D com Executa tarefas 2-D com mltiplos comprimentos de relativa facilidade, mas pode onda (dentro do espectro de luz ser lento e limitado no espao visvel ) com facilidade. 3-D.

12

4.3. O Sistema de Viso Artificial e suas estruturas


Baseada na proposta de Marques Filho e Vieira Neto (1999) a Figura 5 apresenta o esquema bsico para funcionamento de um Sistema de Viso Artificial (SVA) na soluo de problemas especficos.

Aquisio e Digitalizao de Imagem

Filtragem e Pr processamento

A melhoria do sistema baseia-se no conhecimento adquirido e aplicao dos

Segmentao de Imagem por Cor ou Forma

mtodos conhecidos.

Extrao e Armazenamento das Caractersticas de Comparao.

Reconhecimento e Interpretao de Valores

Figura 5 Esquema bsico para um Sistema de Viso Artificial.

13

4.3.1. Aquisio e digitalizao de imagens


Dois elementos bsicos so necessrios para aquisio de uma imagem e sua digitalizao (GONZLES & WOODS, 1992). O primeiro diz respeito ao dispositivo fsico sensvel a uma faixa do espectro eletromagntico luminoso como, por exemplo, raio X, ultravioleta, infravermelho ou a luz visvel, capaz de converter os valores captados em sinais eltricos proporcionais. O segundo se trata dos conhecidos digitalizadores ou ADC (Analogical Digital Conversor Conversor Analgico Digital), que so dispositivos capazes de converter sinais analgicos de entrada como os gerados pelos sensores luminosos acima descritos, em sinais digitais reconhecidos pelo sistema computacional. No processo de aquisio de imagem, os sensores do tipo CCD so os mais utilizados atualmente. Um CCD composto de uma matriz de clulas semicondutoras foto sensveis que geram um sinal analgico que posteriormente tratado por dispositivos eletrnicos, convertendo este em um sinal conhecido de vdeo. De acordo com esses autores, uma cmera monocromtica consiste basicamente em um conjunto de lentes para a focalizao da imagem em um CCD. J uma cmera colorida requer o uso de prismas e filtros de cor capazes de decompor a imagem nos componentes R, G e B que sero focalizados cada um em CCDs distintos. Os sinais eltricos ento so posteriormente combinados conforme cada padro de cor utilizado, como por exemplo, o NTSC (National Television Standards Commitee - Comit Nacional de Padres de Televiso) e o Pal (Phase Alternating Line Linha de Fases Alternadas) ou as variaes baseadas nestes. Para digitalizao de imagens monocromticas necessrio primeiramente levar em considerao que existe a perda de uma dimenso da imagem 3D do objeto para sua representao eletrnica analgica 2D e, alm disso, deve-se compreender a representao matemtica da imagem para esses valores analgicos como sendo uma funo f (x,y) da intensidade luminosa, onde a f (x,y) representa o produto da iluminncia i (x,y) (luz incidente sobre o objeto) e a refletncia (r) do ponto especfico (x, y) do objeto representado. Matematicamente:
f (x,y) = i ( x,y ) * r ( x,y ) onde : 0 < i (x,y) < 0 < r (x,y) < 1 e
(1)

14

Assim, para Gonzles e Woods (1992) os nveis de cinza (Nc ) podem ser representados analgica e proporcionalmente intensidade de luz de uma imagem monocromtica em cada ponto (x,y) pela f (x,y), determinando um intervalo de variaes para Nc :Nc min< Nc (x,y) < Nc Max. Agora, para digitalizao dos sinais analgicos obtidos, deve-se realizar a converso em valores discretos do intervalo de Nc para identificao espacial e de amplitude. Basicamente, esses valores passam a ser representados na forma matricial K (m
x n)

onde os valores de
mn)

identificao espacial determinam a quantidade de pixels (elementos k elemento k mn assumir, conforme mostra a matriz na equao 2.

da matriz e a

identificao de amplitude determina o valor discreto da faixa de 0 a 2n -1 que cada pixel ou


(2)

f (0,0)

f (0,1) f (1,1) .... f (m,1)

... .... .... .....

f (0, n-1) f (1, n-1) ... f (m-1,n-1)

K (m x n) =

f (1,0) .... f (m,0)

Onde os valores m e n esto distribudos na imagem como mostra a Figura 6 .

Figura 6 Eixos para identificao matricial de valores discretos dos nveis de cinza.

15

Observando-se a formao da matriz imagem em relao qualidade da mesma, fica fcil perceber que quanto maior a quantidade de elementos (pixels) e maior a faixa de nveis de cinza utilizado, maior ser a qualidade final da imagem digitalizada. Porm, preciso levar em considerao qual a finalidade de uso para tal digitalizao e o espao de memria ocupado por essa imagem. Para se ter uma idia da qualidade de uma imagem digital em relao quantidade de pixels e nveis de cinza utilizados, em uma imagem de televiso P
&

B tem-se uma matriz de

512 x 512 pixels, com 128 nveis de cinza. Em geral, para o olho humano, 64 nveis de cinza so considerados suficientes para uma boa interpretao da imagem (MARQUES FILHO & VIEIRA NETO,1999). Tendo-se o entendimento do processo de digitalizao de uma imagem monocromtica descrito acima, pode-se expandir tal processo para os diferentes nveis discretos dos intervalos de R, G e B independentes entre si, de forma anloga feita no processo de aquisio da imagem monocromtica para a colorida pelos sensores CCD, descrita nesta sesso.

4.3.2. Propriedades de uma imagem.


Para iniciao no processo de processamento de imagem requerido o conhecimento de algumas propriedades relacionais entre os pixels da imagem discreta digitalizada, descritas por Marques Filho e Vieira Neto (1999) tais como: vizinhana, conectividade, adjacncia, caminho e os tipos de medies de distncia. A vizinhana de um pixel pode ser dividida em vizinhana vertical / horizontal e vizinhana diagonal. A vizinhana vertical / horizontal, trata dos quatro vizinhos do pixel (x,y) em questo que so ( x+1, y ), ( x-1, y ), ( x , y+1 ) e ( x , y-1 ). A vizinhana diagonal trata dos pontos ( x-1, y -1 ), ( x-1, y + 1 ), ( x+1 , y-1 ) e ( x+1 , y+1 ) em relao ao pixel (x, y). De acordo com esses autores, a vizinhana total do pixel (x,y) passa ento a ser a unio entre a vizinhana vertical / horizontal e a vizinhana diagonal ( Vt = Vv/h U Vd ). A Figura 7 ilustra os tipos de vizinhana para um pixel p de (x,y).

16

Figura 7 Vizinhanas de um pixel de uma imagem digitalizada.

A conectividade permite estabelecer os limites de objetos e componentes de uma regio em uma imagem. Para determinar a conectividade entre os pixels, necessrio estabelecer um critrio de comparao e similaridade entre os nveis de cinza dos pixels vizinhos. A conectividade pode se dar entre dois ou mais pixels pela comparao desses nveis adotados como critrio entre as vizinhanas vertical /horizontal, diagonal ou a unio delas. A adjacncia de um pixel p a outro q existe se estes forem conectados, portanto pode-se assim determinar se um subconjunto N de pixels da imagem adjacente a outro subconjunto M de pixels dessa mesma imagem. O caminho de pixel p de coordenadas (x,y) at atingir um pixel q de coordenadas (k,l) constitudo por uma seqncia de pixels i (xi,yi) distintos e adjacentes entre si, onde: (xi, yi) adjacente a (xi-1,yi-1) | 1 i n , n determina o comprimento do caminho. Os tipos de medies mais comumente utilizados so: a distncia euclidiana entre os pontos p (x,y) e q (k,l) dada por: D(p,q) = (xk) + (yl) ; a distncia tipo D4 dada por: D4 (p,q) = | x k | + | y l | e a D8 dada por: D8 = max (| x k |,| y l |). Pode-se tambm utilizar algumas operaes aritmticas como adio, multiplicao, subtrao e diviso pixel a pixel obtendo os resultados demonstrados na Tabela 2, ou ainda operaes lgicas (Not, And , Or , Xand , Xor), representadas na Figura 8, tanto em imagens binrias como em imagens de diferentes tons de cinza desde que se observe a normalizao dos diferentes intervalos utilizados.

17

Tabela 2- Resultados das aplicaes aritmticas de imagens em tons de cinza.

Operao Adio

Subtrao

Multiplicao Diviso

Resultados Obtidos. Normalizao de brilho da imagem a uma faixa prdefinida. Auxilio na remoo de rudos. Permite a deteco de diferenas entre duas imagens adquiridas de forma consecutivas em uma cena. Possibilita a calibrao do brilho da imagem. Normalizao do brilho for um fator K escolhido.

Figura 8 Aplicao lgica aplicada a imagens binrias.

18

4.3.3. Convoluo com mscaras


Uma das operaes muito teis no processamento de imagem a chamada convoluo com mscara. O termo convoluo determinado por um processo finito de operaes matemticas feitas pixel a pixel na matriz imagem, obtendo-se um valor resultante para cada um dependendo diretamente do tipo de mscara (matriz quadrada com valores pr-determinados) aplicada. Para compreender melhor as operaes realizadas com a convoluo, observe inicialmente o exemplo proposto por Marques Filho e Vieira Neto (1999), em um vetor unidirecional e em seguida sua aplicao feita em uma matriz imagem elaborada para este exemplo: Dado um vetor A = { 0,1,2,3,2,1,0 } como sendo um vetor imagem, e uma mscara a aplicar por convoluo, B = {1,3,-1}, obtm-se o resultado Cv(AB) realizando as seguintes operaes: 1 - O vetor B deve ser espelhado, ficando B(esp) = {-1,3,1}; 2 - Alinha-se o centro do vetor B ao elemento inicial de A como abaixo;
v.B(esp) v.A Cv(AB) -1 3 0 1 1 2 3 2 1 0

3- Multiplica-se cada elemento de B ao elemento logo abaixo de A, considerando a falta de elementos como valor 0 (zero), somando-se os resultados obtidos de todos os produtos e posicionando este logo abaixo do elemento correspondente de A ao qual a convoluo foi centralizada. Matematicamente: (0*-1) + (3*0) + (1*1) = 1
v.B(esp) v.A Cv(AB) -1 3 0 1 1 1 2 3 2 1 0

4 Repete-se o procedimento anterior, deslocando a mscara do vetor B(esp), centralizando este em cada elemento do vetor A at o seu final. Agora (-1* 0 ) + (3*1)+(1*2)=5;
v.B(esp) v.A Cv(AB) -1 0 1 3 1 5 1 2 3 2 1 0

19

5 Ao final do processo repetitivo do 3 e 4 acima descritos obtm-se o vetor resultante da convoluo de A por B,Cv(AB)= {1,5,8,9,4,1,-1}, mostrado abaixo:
v.B(esp) v.A Cv(AB) 0 1 1 5 2 8 3 9 2 4 -1 1 1 3 0 -1 1

Como dito anteriormente, este processo pode ser expandido do caso unidirecional para o caso bidirecional, utilizando-se de uma matriz imagem e uma mscara de convoluo matricial quadrtica para realizao dos clculos, como mostra o exemplo abaixo: Seja a matriz A, uma suposta matriz imagem em tons de cinza dada por:

5 3 0 Amn = 4 9 5 1 3

8 2 9 2 7 2 8 7

3 1 5 7 9 1 5 1

4 1 3 2 8 8 4 2

6 9 0 1 0 4 9 3

2 5 4 9 4 1 2 4

3 1 8 0 2 0 3 4

7 0 3 6 4 9 8 6

Seja a matriz B utilizada como mscara dada a seguir:


2 Bij = 1 0 1 1 -1 0 -1 -2

Lembrando que a mscara deve ser espelhada para iniciar-se o processo de convoluo, a Figura 9 mostra o clculo a ser realizado para o primeiro elemento da convoluo Cv(AB) das matrizes.

20

Figura 9 Resultado da primeira operao de convoluo de A por B.

A matriz resultante no final do processo de convoluo de A por B dada por:


20 18 14 Cv(AB) = 29 21 15 21 9 10 1 22 21 1 -9 9 -5 2 -8 5 9 16 -3 1 -25 26 2 -1 -9 -1 7 6 -10 23 7 9 10 -3 -6 -2 -12 6 3 -2 12 -4 1 -1 -15 9 3 8 -9 2 17 23 -1 4 -11 -1 -9 5 9 2 -12

Finalmente, com o uso de diferentes mscaras no processo de convoluo, podem-se obter alteraes interessantes da imagem original a fim de realar detalhes da mesma como linhas, bordas ou outros pontos isolados como apresentado no prximo item.

4.3.4. Deteco de borda por convoluo.


Em uma anlise de imagens, o primeiro passo a se realizar a separao ou a segmentao dos objetos dentro da imagem. Com o uso de algoritmos de segmentao como, por exemplo, os de deteco de borda, pode-se achar as diferenas entre dois ou mais objetos. A segmentao baseia-se em dois conceitos bsicos, a descontinuidade e a similaridade (SEARA, 1998).

21

Segundo a autora no existe um modelo formal para a segmentao, o processo emprico e dever ser ajustado a diferentes tipos de imagem e suas modificaes. Assim, as tcnicas de segmentao tornam-se relativamente complexas porque tentam traduzir para o computador um processo extremamente sofisticado e cognitivo realizado pela viso humana. O conceito de descontinuidade pode apresentar-se basicamente de trs formas, a descontinuidade de um ponto isolado, de uma linha, ou da borda de um objeto. Na deteco de pontos isolados, uma das mais simples tcnica de deteco, busca-se uma mudana drstica do valor de cinza de um pixel em relao aos seus vizinhos. Na deteco de linhas, um processo pouco mais complicado que o anterior, necessrio achar os pixels que so semelhantes, testando-os para verificar se estes fazem parte de uma mesma linha. A deteco de bordas uma das tcnicas utilizadas pela viso humana no reconhecimento de objetos, que consiste no processo de localizao e realce dos pixels da borda de determinado objeto, aumentado o contraste entre a borda deste e o fundo, atravs da verificao da variao dos valores de luminosidade da imagem (PRATT, 1991, apud MARQUES FILHO & VIEIRA NETO, 1999). Os prximos pargrafos detalham algumas tcnicas de interesse a este trabalho utilizadas no processo de deteco de borda, tais como, reconhecimento por gradiente, operador laplaciano e a interessante aplicao de mscaras de convoluo. O reconhecimento de um a borda pelo gradiente f de uma imagem f (x,y) na localizao (x, y) determinado pelo vetor gradiente ( 3 ):
(3)

onde Gx e Gy so as mscaras que podem variar de acordo com o tipo de deteco (OLIVEIRA, 2003). Na deteco da borda pelo gradiente, a magnitude e a direo do vetor f so de grande importncia, fornecendo informaes da taxa de aumento da f (x,y) na direo de f ( 4 ) e a direo do mesmo ( 5 ). As respectivas equaes de magnitude e direo esto representadas a seguir:

22
(4)

e,

(5)

Segundo Neves e Pelaes (2001) uma das prticas utilizadas a aproximao do gradiente por um valor absoluto determinado por:
(6)

o que facilita sua implementao. O operador laplaciano utilizado na deteco de borda para uma imagem 2-D dada por f (x,y) a derivada de segunda ordem definida como:
(7)

Embora o laplaciano seja capaz de realar ou detectar bordas em qualquer direo, seu uso restrito devido a sua grande suscetibilidade a rudos, que so pequenos distrbios randmicos de nveis de cinza, estatisticamente independente dos dados da imagem e normalmente ocasionados quando esta transmitida eletronicamente de um lugar para outro (SEARA, 1998). Tanto o gradiente quanto o mtodo do laplaciano costumam ser aproximados com a aplicao de mscaras de convoluo geralmente de 3 ordem (3 x 3), detalhadas na sesso anterior. As mscaras de Roberts, Sobel, Prewitt e Frei-chen, bem como as especficas mscaras de laplaciano, so as mais utilizadas para as aplicaes descritas anteriormente, e esto apresentadas na Tabela 3.

23

Tabela 3 - Tipos de mscaras utilizadas na aproximao do gradiente e laplaciano.

Para se ter uma idia dos resultados obtidos com aplicao de algumas destas mscaras, as Figuras 9-b e 9-c, apresentam respectivamente o uso das mscaras de Prewitt (vertical OR horizontal) e Sobel (vertical OR horizontal), aplicadas a uma imagem original (Figura 9-a).

24

Figura 9-a (Imagem Original);

Figura 9-b (Prewitt);

Figura 9-c (Sobel);

Figura 9 Deteco de bordas por mscaras de convoluo.

4.3.5. Ampliao e reduo geomtrica de imagens


O processo de ampliao e reduo de imagens consiste basicamente no aumento ou diminuio das dimenses lineares desta apenas para fins de visualizao. Um mtodo simples de se ampliar uma imagem a duplicao dos valores de cada pixel p de (x,y) nas direes de x ou de y, ou ainda em ambas. Diferentes fatores de ampliao ou reduo utilizados numa mesma imagem nas direes de x e y que respectivamente podem ocasionar alteraes no aspecto da proporcionalidade desta (MARQUES FILHO & VIEIRA NETO, 1999). A ampliao de uma imagem utilizando um fator 2 em ambas as direes, consiste na copia de cada pixel da imagem original, quatro vezes na imagem a ser gerada (Figura 11).

Figura 10 Ampliao de 2 X aplicada a um pixel p(x,y);

25

Para aplicar-se a reduo basta utilizar o processo inverso, ou seja, agrupar quatro pixels da imagem original, de preferncia com mesma conectividade, a um nico pixel da imagem a ser gerada. A proporcionalidade para a cpia de pixels em uma ampliao ou zoom pode ser descrita atravs da frmula de (F), onde a F o fator de zoom a se obter. Exemplificando: se se deseja obter um zoom de uma imagem da ordem de 4 x, ento a cpia de pixels vizinhos a ser gerada em nmero da ordem de (4) = 16 pixels. A ampliao e reduo da imagem por fatores no inteiros, ou seja, fracionrios perfeitamente possvel, porm muito mais complexa e requer o uso de algoritmos e tcnicas de interpolao no condizentes com as justificativas deste trabalho.

4.3.6. Histograma e Tcnicas de filtragem de imagem


O histograma de uma imagem em tons de cinza consiste basicamente na obteno do percentual de pixels de uma imagem que se apresenta em um determinado valor de nvel de cinza. Segundo Gonzles e Woods (1992) para cada elemento encontrado no conjunto dos valores especficos de nveis de cinza vale a seguinte regra:

P r ( rk ) = nk / n
onde : 0 rk 1; k

(6)

0,1...... L-1, sendo L a quantidade de nveis de cinza da imagem;

n o total de pixels da imagem digitalizada;

P r ( rk ) a probabilidade do K-simo nvel de cinza;


nk o numero de cinza cujo nvel de cinza corresponde a k. assim, pela concentrao de pixels em determinada faixa do grfico discreto obtido dos valores de probabilidade para os nveis de cinza da imagem (Figura 11a 11d ), possvel determinar se uma imagem apresenta-se de forma predominantemente clara, escura, muito ou pouco contrastante. Por exemplo, se a maior concentrao est nos valores mais baixos de cinza, a imagem predominantemente escura e se a concentrao est nos valores mais altos, a imagem predominantemente clara.

26

Histograma de Imagem
0,8 0,7 0,6 0,5 0,4 0,3 0,2 0,1 0 1 2 3 4 5 6 7 8 Faixas de Nveis de Cinza

Probabilidade

Figura 11a Histograma de imagem predominantemente escura;

Histograma de Imagem
0,8 0,7 0,6 0,5 0,4 0,3 0,2 0,1 0 1 2 3 4 5 6 7 8 Faixas de Nveis de Cinza

Probabilidade

Figura 11b Histograma de imagem predominantemente clara;

27

Histograma de Imagem
0,9 0,8 0,7 0,6 0,5 0,4 0,3 0,2 0,1 0 1 2 3 4 5 6 7 8 Faixas de Nveis de Cinza

Probabilidade

Figura 11c Histograma de imagem pouco contratante;

Histograma de Imagem
0,6 0,5 Probabilidade 0,4 0,3 0,2 0,1 0 1 2 3 4 5 6 7 8 Faixas de Nveis de Cinza

Figura 11d Histograma de imagem muito contrastante;

Portanto, conhecendo-se o histograma de uma imagem e aplicando os valores dos nveis de cinza desta em determinadas funes matemticas, pode-se obter algumas transformaes visuais de contraste, brilho e intensidade. Filtros como equalizao, compresso e expanso dos tons de cinza em imagens so baseados na transformao de histogramas (MARQUES FILHO, & VIEIRA NETO, 1999). Outros filtros como passa alta, passa baixa e filtro da mdia descritos por Gonzles e Woods (1992), so baseados na aplicao de mscaras de convoluo ou de aproximaes matemticas de determinadas funes. As tcnicas de filtros apresentadas a seguir

28

esto descritas apenas para imagens em tons de cinza, mas podem ser expandidas para um sistema colorido do tipo RGB, respeitando-se os valores dos nveis para cada cor independentemente. Como dito anteriormente, as transformaes de intensidade podem ocorrer a partir da aplicao de determinadas funes aos valores de tons de cinza de cada pixel da imagem. Assim, pode-se descrever funes tanto lineares como no lineares que respeitem s seguintes exigncias: 1 - Elas devem ser funes injetoras, ou seja, se x1 x2 f(x1) f(x2) V x1,x2 f original. 2 - Devem ser monotonicamente crescentes dentro do intervalo padronizado para os histogramas: 0 f 1. A Figura 12 mostra um exemplo de uma funo que obedece aos critrios acima descritos.

Figura 12 Exemplo de funo injetora monotnica;

Para as transformaes lineares, seguindo a regra g (x) = c * f (x) + b, onde a g (x) a resultante da transformao linear dos valores da imagem f (x) pode-se obter os seguintes grficos da Figura 13:

29

Figura 13 Exemplos de funes lineares aplicadas a imagens em tons de cinza

Para as transformaes no-lineares, seguindo a regra g (x) = c * log( f (x) + 1) definida por Gonzles e Woods (1992), tal que a g (x) a resultante da transformao no-linear dos valores da imagem f (x) multiplicada por uma constante (c) onde pode-se obter o seguinte grfico da Figura 14:

Figura 14 Exemplo de Funo nolinear aplicada a imagens em tons de cinza.

30

Uma das funes utilizadas para o auto-ajuste dos valores do histograma da imagem, conhecida como auto-escala pode ser implementada uma imagem, respeitando-se a seguinte equao:
(8)

sendo que f max e f min so os nveis mximos e mnimos de cinza da imagem original respectivamente. A equalizao de um histograma busca a redistribuio uniforme dos valores atribudos a cada pixel da imagem. Uma funo de distribuio acumulativa cdf (cumulative distribution function), baseada na probabilidade que gerou o histograma, mostrada abaixo, comumente utilizada para realizar a equalizao dos tons de cinza:
(9)

onde: Sk a resultante do tratamento feito a todos os pixels da imagem original; 0 rk 1; k 0,1...... L-1, sendo L a quantidade de nveis de cinza da imagem.

A Tabela 4 apresenta os dados obtidos para um histograma de uma imagem de 8 tons de cinza e a resultante da aplicao de equalizao desta imagem.

31

Tabela 4 -Valores originais do histograma em Pr(rk) e os resultados da euqlizao (Sk). Nvel de Cinza 1 2 3 4 5 6 7 8 Total nk(quant. Pixel) 1120 3214 4850 3425 1995 784 541 455 16384 Pr(rk) Original 0,068 0,196 0,296 0,209 0,122 0,048 0,033 0,028 1 Result. (Sk) 0,068 0 0,196 0 0,296 0,209 0,122 0,109 1

Seguem tambm os histogramas destes valores Figura 15a e 15b:

Histograma de Imagem Original


0,3 0,25 Probabilidade 0,2 0,15 0,1 0,05 0 1 2 3 4 5 6 7 8 Faixas de Nveis de Cinza

Figura 15a Histograma gerado a partir dos valores da imagem original.

32

Histograma de Imagem Equalizada


0,3 0,25 Probabilidade 0,2 0,15 0,1 0,05 0 1 2 3 4 5 6 7 8 Faixas de Nveis de Cinza

Figura 15b Histograma gerado a partir dos valores calculados pela equalizao.

Abaixo apresentada uma equalizao de imagem, na qual possvel visualizar o realce dos contrastes desta. A Figura 16a mostra uma imagem pouco contrastante e seu respectivo histograma. A figura 16b mostra o resultado da equalizao desta.

Figura 16a, 16b Resultado do realce de contraste com equalizao de histograma.

33

Outras tcnicas como expanso e compresso de histogramas podem ser utilizadas para o realce e diminuio do contraste de imagens respectivamente. Na expanso de histograma, os valores so organizados de forma que ocupem toda faixa do histograma uniformemente, respeitando-se as proporcionalidades dos tons de cinza. No processo de compresso, esses valores so reagrupados para ocupar uma determinada faixa do histograma. As Figuras 17 e 18 apresentam respectivamente a aplicao das tcnicas de expanso e compresso e seus devidos histogramas.

Figura 17 Expanso do histograma, realce de contraste.

Figura 18 compresso do histograma, diminuio de contraste.

34

Para efeitos de suavizao, remoo de rudos de imagens e detalhamento desta, so aplicados alguns filtros do tipo passa-baixa, filtros da mdia e passa-alta, que esto baseadas na aplicao de mscaras de convoluo, detalhadas anteriormente neste trabalho. Os filtros denominados de passa baixa e filtros da mdia atenuam ou eliminam os componentes de alta freqncia que correspondem regio de bordas e/ou detalhes mais finos da imagem, tratando-se assim dos efeitos de suavizao da imagem. As Figuras 19b, 19c e 19d mostram o resultado de um filtro da mdia pela convoluo das mscaras da M-1, M-2 e M-3 respectivamente, onde possvel notar que quanto maior a mscara aplicada maior o grau de atenuao da imagem pelo filtro feito imagem original Figura 19a.

Figuras 19a Imagem original; Figura 19b Aplicao da mscara de convoluo;

35

Figuras 19c, Figura 19d com as respectivas mscaras de convoluo;

Os filtros do tipo passa-alta evidenciam detalhes finos da imagem e podem ser utilizados como mtodos de diferenciao entre linhas, como por exemplo, no reconhecimento de digitais humanas. Assim, uma mscara bsica de convoluo para este pode ser elaborada, apresentando coeficientes positivos no centro e suas proximidades, e coeficiente negativo fora destes. A Figura 20 apresenta uma mscara de convoluo bsica para passa-alta e sua aplicao.

36

Figura 20a Imagem original; Figura 20b Aplicao da mscara de convoluo;

4.3.7. Sistemas de cores


A cor um poderoso diferenciador no instante do reconhecimento de objetos e padres em sistemas de processamento de imagem. A segmentao por cor baseada no processamento de imagens coloridas adquiridas por meio de equipamentos (cmeras) j dotadas de um sistema de reconhecimento de cores por hardware, ou na pseudocolorizao de imagens em tons de cinza, onde se atribui a cada tom uma cor diferente, permitindo-se assim a sua segmentao (GONZLES & WOODS, 1992). Para entender como so classificados os sistemas de cores mais conhecidos atualmente, preciso antecipadamente compreender alguns princpios bsicos do reconhecimento da cor. Mesmo tendo o domnio destes princpios, vale lembrar que as tcnicas para o processamento de imagens coloridas ainda so relativamente recentes, apesar dos aspectos fsicos da cor estarem sendo estudados h muitos anos, e constiturem hoje um forte embasamento terico (MARQUES FILHO & VIEIRA NETO, 1999).

37

Segundo Gonzles e Woods (1992) os estudos sobre a cor iniciaram-se por volta de 1666, quando Sir Isaac Newton utilizou--se de um prisma de vidro para decompor a luz branca, visualizando assim o conhecido espectro de cores que vai do violeta ao vermelho (Figura 21).

Figura 21 Espectro de decomposio da luz branca por um prisma de vidro.

Como dito anteriormente, a luz vista pelo olho humano a luz refletida pelos objetos. Assim, ao ver a cor azul em um objeto, significa que a luz refletida por este apenas a faixa correspondente ao azul que se v e o restante do espectro luminoso absorvido pelo objeto. A teoria proposta por Yong em 1801, sugere que a percepo humana da cor est baseada na diviso dos cones (clulas fotossensveis do olho) em trs faixas de percepo, RGB. A percepo dessas trs cores, denominadas de primrias aditivas, permitem atravs de determinadas combinaes, que o olho humano perceba diferentes cores de uma determinada faixa de luz, conhecida como luz visvel. Em 1931, a CIE (Comission Internationale de IEclairage Comisso Internacional de Iluminao), padronizou os comprimentos de ondas para as cores primrias como sendo: vermelho de 700 nm, verde de 546,1 nm e azul de 435,8 nm. A Figura 22 apresenta a classificao dos diferentes comprimentos de onda para o espectro da luz branca.

Figura 22 Comprimentos de onda e a diviso entre luz visvel, ultravioleta e infravermelho.

38

Com a combinao das cores primrias sendo feita duas a duas obtm-se as chamadas cores secundrias, margenta (R + B), amarelo (R + G) e o ciano (G + B). A mistura de todas as cores produz a luz branca, conforme a Figura 23. Esse o tipo de combinao utilizado pelos dispositivos luminosos, monitores de computador e televisores (FOLEY et al.,1990). Outra combinao a chamada de subtrativa, utilizada em dispositivos de pigmentao, como impressoras coloridas e equipamentos de fabricao de tinta, onde cada pigmento depositado subtrai parte da luz branca refletida pelo papel ou base, permitindo assim que somente a luz da cor desejada seja refletida. A mistura de todas as cores primrias subtrativas, margenta, amarelo e ciano, diferentemente como ocorre na mistura das cores primrias aditivas, levam ao preto, ou seja, a ausncia de reflexo da luz pelo papel ou base. As Figuras 23 e 24 mostram as combinaes das cores primrias aditivas e subtrativas, respectivamente.

Figura 23 Mistura de cores primrias aditivas.

Figura 24 Mistura de cores primrias subtrativas.

39

Basicamente, no processamento de imagens coloridas, a distino entre cores com mesma quantidade de mistura R, G e B pode ser obtida pela identificao de outras caractersticas destas como os valores de I (Intensity - Intensidade ou Brilho), H (hue - Matiz ou Colorao) e S (Saturation - Saturao). A intensidade representa a quantidade luminosa da radiao, a matiz est associada ao comprimento de onda predominante da combinao de luz, enquanto a saturao expressa a pureza da matiz. A relao Matiz AND Lgico Saturao recebe o nome de cromaticidade e assim pode-se dizer que possvel identificar uma cor pelo brilho e sua cromaticidade. De acordo com Foley e colaboradores (1990) as porcentagens de R, G e B presentes em determinada cor recebem o nome de coeficientes tricromticos, e so padronizadas numa escala de 0 1 seguindo respectivamente as seguintes regras:
(10)

(11)

(12)

onde r + g + b = 1. Os coeficientes exatos de cromaticidade para cada cor so padronizados de acordo com o Diagrama de cromaticidade da C.I.E, apresentados na Figura 25.

40

Figura 25 Grfico de padronizao da C.I.E. para coeficientes de cromaticidade.

A fim de padronizar a especificao para os sistemas de cores desenvolvidos atualmente para hardware criaram-se modelos de representao tridimensional, onde cada cor representada por um ponto de coordenadas do sistema.

41

Os pargrafos seguintes apresentam alguns modelos utilizados para representao de cores como o RGB, HSI, CMY (cyan-ciano, margenta-margenta, yellow-amarelo) e o YIQ (padro NTSC de TVs). O modelo RGB utilizado por cmeras e monitores de vdeo, baseia-se em um sistema de coordenadas cartesianas tridimensional (x,y,z), onde um cubo de lado 1 plotado (ver Figura 26) e os eixo x , y e z do sistema so as trs arestas do cubo que representam as escalas de R, G e B individualmente. A origem (0,0,0) determina a cor preta e o vrtice mais afastado desta, a cor branca. Assim, para o modelo RGB, as escalas de tons de cinza assumem os valores dispostos na linha diagonal de (0,0,0) (1,1,1) do cubo representado na Figura 26 e as cores secundrias, ciano, margenta e amarelo resultam da interao entre as cores primrias como visto anteriormente.

Figura 26 Distribuio do sistema de cores RGB.

42

O sistema de cores HSI fortemente utilizado em sistemas de viso artificial baseado na segmentao por cor, uma vez que permite identificar as componentes de matiz, saturao e intensidade, atravs das cores obtidas de um sistema RGB. Para se obter o sistema HSI a partir do modelo RGB, deve-se primeiramente ter uma viso do espao vetorial de onde esto os elementos HSI no sistema RGB. A intensidade (I) o vetor representado no RGB pela prpria diagonal dos tons de cinza, que vai de (0,0,0) (1,1,1). Assim sendo, se um vetor (c) determinar a cor por c=(r, g, b), a intensidade (I), determinada pelo vetor pc(i, i, i), o mdulo da projeo do vetor c(r, g, b) sobre o vetor I. A saturao (S) a distncia do ponto (r, g, b) ao ponto (i, i, i) encontrado, definida tambm pelo mdulo de do vetor c-pc. Para determinar-se a Matiz (H), cria-se um plano () perpendicular diagonal passando pela origem e define-se o valor (H) como sendo o ngulo entre as projees do vetor c(r,g,b) e do vetor r(1,0,0) ao plano . O Anexo A O Sistema de Cor HSI, apresenta em maiores detalhes a demonstrao dos clculos vetoriais das converses de RGB para HSI. Praticamente, pode-se obter tais converses atravs das equaes seguintes:
(13) (14)

(15)

onde o vetor (u,v) dado por :


(16)

e ainda,

(17)

43

Outra forma mais simples de se de se obter os valores da matiz (H) e da saturao (S) a equivalente proposta de Marques Filho & Vieira Neto (1999), onde:
(18)

(19)

sabendo-se que para ( B / I ) > ( G / I ), deve-se fazer H = 360 - H, tal que sua normalizao faz-se por H = H / 360. A Figura 27 apresenta uma idia espacial de representao do modelo HSI, onde os cortes horizontais, como o corte AA representado, produzem as imagens vistas direita.

Figura 27 Representao espacial do modelo de cor HSI.

44

O modelo CMY a base para os dispositivos de pigmentao, como impressoras coloridas e equipamentos de fabricao de tinta, uma vez que este usa as cores ciano, margenta e amarelo como sendo cores primrias do princpio de deposio de pigmentos em um papel ou base. Para possibilitar a correta interpretao dos dispositivos baseados na adio de luz, como os monitores de computador e os dispositivos baseados na deposio de pigmentos, ou seja, subtrao da luz, necessrio realizar a converso do modelo RGB para o modelo CMY, baseada na seguinte igualdade:
(20)

onde R,G e B esto padronizados no intervalo [0..1]. O modelo YIQ foi desenvolvido para permitir a compatibilidade do sistema utilizado nos televisores preto & branco e o novo sistema NTFC que estava sendo desenvolvido para os televisores coloridos. Baseado nisso, o sistema YIQ aproveitou-se da informao de brilho (Y) necessria para gerao de imagens monocromticas, e acrescentou a essa as informaes de cromaticidade representadas por (I e Q). Uma vantagem da utilizao do sistema YIQ a capacidade de alterar o brilho (Y) de imagens coloridas sem alterar as informaes de cromaticidade, utilizando as tcnicas de histograma descritas no item 4.3.6. Para tanto, a converso do modelo RGB para o YIQ faz-se necessria e segue a seguinte regra:
(21)

onde R,G e B esto padronizados no intervalo [0..1].

45

4.3.8. Segmentao de imagens por cor


Agora, com o conhecimento dos diferentes sistemas de cores e das tcnicas bsicas de converso entre os modelos, torna-se possvel realizar o processamento e a segmentao de imagens coloridas em busca do reconhecimento de determinados detalhes da imagem. Segundo Ballard e Brown (1982) a idia de segmentao de uma imagem o termo usado em viso computacional para o agrupamento de partes de uma imagem genrica em unidades que so homogneas com respeito a uma ou vrias caractersticas (ou atributos), que resulta em uma imagem segmentada. Comumente, duas maneiras bsicas so utilizadas para realizar a segmentao de uma imagem. A anlise da imagem, baseada na similaridades entre regies desta - essas regies so normalmente definidas como reas de conectividade entre pixels, como j descritas anteriormente - e a anlise baseada na descontinuidades na imagem, que utiliza as variaes bruscas nos valores de intensidade dos pixels para selecionar uma imagem (BIANCHI, 2001). Como visto anteriormente, existem modelos que so mais adequados para a segmentao, ou reconhecimento da cor em sistemas de viso artificial, o caso dos modelos HSI e YIQ, que isolam a intensidade (I), muito utilizada nesses sistemas, das demais componentes de cromaticidade de uma imagem. Assim, com a decomposio de imagens coloridas (full color images) nas diferentes componentes dos modelos de cor, torna-se possvel aplicar diversas tcnicas existentes para imagens em tons de cinza, como a busca de pixels por vizinhana, adjacncia, conectividade e caminho, alm do reconhecimento de borda e equalizao de histogramas (MARQUES FILHO & VIEIRA NETO, 1999). A utilizao do modelo RGB em conjunto com outros modelos como o HSI e o YIQ, ou at mesmo componentes individuais destes, possibilita o reconhecimento da similaridade e diferenciao entre pixels e a classificao de regies da imagem por um sistema de viso artificial. O desenvolvimento do software se viso artificial deste trabalho baseia-se no uso dos modelos RGB e HSI para a segmentao por similaridade e a segmentao por diferenciao dos elementos de cor envolvidos no jogo de futebol de robs (BIANCHI, 2001).

4.3.9. Vetorizao baseada na diferena entre pixels


O processo de vetorizao de regies baseado na diferena consiste inicialmente na filtragem de imagem e o reconhecimento de bordas, como por exemplo, a convoluo utilizando

46

a mscara de Sobel. Aps realizar tais processos, pode-se utilizar um limiar de cor para a busca da descontinuidade da conectividade entre os pixels, encontrando-se todas as regies da imagem que possuem um contorno fechado (Bianchi, 2001). Os pargrafos seguintes descrevem um processo bsico para se encontrar o permetro, a rea e o centro dessas regies. Obtendo-se uma imagem binarizada (imagem, preto e branco) pelo processo de reconhecimento de borda possvel fazer uso do algoritmo de chain code proposto por Ballard e Brown (1982) e baseado no descrito em Rillo (1998 apud Bianchi, 2001). Basicamente, este algoritmo considera que qualquer ponto na matriz da imagem binarizada a ser considerado para fins de clculo deve estar conectado aos oito pontos imediatamente a sua volta atravs de um vetor elementar, cuja direo foi rotulada (de v1 at v8), apresentados na Figura 28.

Figura 28 Definio dos vetores elementares

Atravs destes vetores, inicia-se um procedimento que segue os contornos de uma imagem, criando uma corrente de vetores ligados. Portanto, basta ter um ponto inicial da corrente e a seqncia dos vetores para se determinar precisamente uma regio. Para evitar a perda constante da seqncia dos elos da corrente, quando a borda possui mais de um pixel de espessura este procedimento segue o contorno um pouco mais externo que o contorno esperado. O clculo da rea de uma regio para este procedimento semelhante ao realizado pela integral definida entre pontos, onde a rea total ento dada pela somatria da contribuio de cada vetor elementar. O permetro de uma regio pode ser encontrado atravs dos algoritmos baseados em chain-codes, onde o permetro total definido por:

47

(22)

Permetro Total = Permetro Par + Permetro Impar *

ou seja, a soma do nmero de vetores com rtulo par (que esto na horizontal ou vertical e por isso tem tamanho unitrio) mais a soma do vetores com permetro mpar (que esto nas diagonais) vezes o tamanho destes, que .O centro da pode ser calculado com o uso de vetores de contribuio positiva ou negativa em uma somatria que inicia-se dos pontos x, y de cada pixel pertencente corrente encontrada. A Figura 29 mostra as contribuies destes vetores e a Tabela 5 apresenta os valores desta contribuio.

Figura 29 Contribuio de cada elemento para o clculo da rea

48

Tabela 5 - Valores da contribuio de rea de cada elemento

A Figura 30 apresenta um exemplo do processo de vetorizao de imagem descrito acima.

Imagem Capturada

Imagem Filtrada

Deteco de Borda

Vetorizao da Regio

Figura 30 Resultados de um processo de vetorizao de imagem.

49

5. Materiais e Mtodos.
5.1. Tcnicas para implementao do software de viso
O futebol de robs visto como uma plataforma para elaborao de projetos ligados rea de pesquisa e desenvolvimentos de tcnicas para robtica e automao industrial inteligente. A proposta do futebol de robs inspirada em trabalhos realizados por diversos pesquisadores como Prof. Dr. Roberto Tavares Filho, Profa. Dra. Anna Helena Reali Costa e Profa. Dra. Manuela M. Veloso e de universidades como Carnegie Mellon University, Cornell University, Universidade de So Paulo (USP), Universidade Estadual de Campinas (UNICAMP) e Universidade Estadual Paulista Julio de Mesquita Filho (UNESP). De uma forma geral, para este trabalho, desenvolveu-se uma plataforma de software que permitiu a interao entre as reas envolvidas no futebol de robs, viso, estratgia e mecatrnica. As normas utilizadas para dimensionamento do campo e dos elementos envolvidos no jogo (robs e bola) foram baseados na F-180 (normatizao para futebol de robs). Uma viso geral mais detalhada dos equipamentos utilizados e relacionamentos entre eles no sistema de futebol de robs pode ser obtida no Anexo B - Controle e Deciso de Estratgias Aplicveis a Agentes Robticos Jogadores de Futebol em Ambiente Simulado e Real. (SANTOS & RICHTER, 2005). Basicamente, o software desenvolvido utiliza os conceitos de digitalizao de imagens descritos anteriormente e filtros de imagens por convoluo propostos por Marques Filho e Vieira Neto (1999) para a aquisio e tratamento das imagens recebidas pelo computador. Para a calibrao de cada um dos elementos envolvidos no jogo, as tcnicas de ampliao de imagens de Marques Filho e Vieira Neto (1999) e de histogramas de Gonzles e Woods (1992) permitiram determinar os limites mximos e mnimos do padro de cor definido em 1931 pela CIE, atravs das converses de RGB e HSI descritas anteriormente. A segmentao por cor para a busca e reconhecimento da posio dos elementos no campo, teve por base os o conceito de agrupamento homogneo de pixels segundo Ballard e Brown (1982) e a descontinuidade de regies da imagem definida por Bianchi (2001). Para a busca por vetorizao, foi utilizado o mtodo de chain code e as definies de vetores elementares baseadas no descrito por Rillo(1998 apud Bianchi, 2001).

50

A transmisso dos dados adquiridos pelo software realizada atravs da porta serial do microcomputador em modo RS-232.

5.2. Recursos computacionais para o tratamento grfico


Biblioteca Grfica OpenGL: em 1992 a biblioteca de suporte grfico OpenGL, introduzida no mercado pela empresa Silicon Graphics, implementou uma API grfica independente do dispositivo de exibio. O intuito foi criar uma ligao entre a modelagem geomtrica dos objetos e as rotinas de exibio e criao de imagens. Para Manssour (2003) o OpenGl uma biblioteca de rotinas grficas e de modelagem bidimensional e tridimensional. O OpenGl no uma ferramenta de programao, um conjunto de API, descrita mais adiante, para criao de animaes grficas. Assim, o OpenGl tem em suas funes internas os mesmos nomes e parmetros para todos os sistemas operacionais compatveis (WANGENHEIM, 2001). Essas funes so implementadas em baixo nvel pelo OpenGL, proporcionando maior eficincia em desenhos grficos computacionais (MATTOS NETO, 2004 apud FREIRE, 2004). Segundo esses autores, a biblioteca OpenGL dispe os seguintes conjuntos de recursos grficos disponveis:
modos de desenho de pontos; ajustes de largura de linhas; aplicao de transparncia; ativao e desativao de serrilhamento; mapeamento de superfcie com textura; seleo de janela (window) de desenho; manipulao de fontes, tipos de iluminao e sombreamento; transformaes de sistemas de coordenadas; transformaes em perspectivas; combinaes de imagens.

A configurao para o uso do OpenGl em um ambiente de programao especfico e diferente para os mais diversos ambientes, mas basicamente em todos os casos requer-se a criao de um DC (Device Context Dispositivo de Contexto). O DC do OpenGL uma estrutura utilizada pelo Sistema Operacional Windows como HDC (Handle Device Context

51

Dispositivo de Contexto Manusevel) que representa a sada direta do sistema operacional para um dispositivo ou uma interface grfica (window). Aps criao do DC, deve-se determinar para o ambiente de programao que este DC a sada para o ambiente grfico utilizado. Alm disso, para o OpenGL deve-se criar um RC (Rendering Context - Contexto de Reenderizao) a fim de guardar as configuraes do sistema de cor est sendo utilizado. Assim, aps criao e configurao do DC e RC, a imagem pode ser criada e mostrada no dispositivo grfico de sada simplesmente com chamadas diretas feitas s funes da biblioteca grfica OpenGL. Plataforma Grfica OpenCV: o OpenCV (Open Source Computer Vision Cdigo Aberto de Viso Computacional) uma plataforma aberta da Intel que permite a construo de aplicativos educacionais e comerciais com o uso de pacotes grficos. Essa biblioteca consiste em uma caixa de ferramentas com funes de gerao e manipulao de imagens, que possibilita pesquisadores comerciais e industriais o desenvolvimento de aplicaes com o que h de mais moderno em algoritmos para viso computacional de desempenho otimizado (ROLLOF, 2004). Segundo o manual de referncia da Intel, essa biblioteca dispe das seguintes funcionalidades:
operaes e estruturas bsicas para captura de imagens; anlise de imagens; anlises estruturais de imagens Raster; reconhecimento de objetos; anlise de movimento e deteco de objetos mveis; reconstruo de ambientes 3D.

O OpenCV foi desenvolvido inicialmente no padro de programao ANSI C para a plataforma Windows. Porm, segundo o seu manual, possvel realizar sua aplicao em outros sistemas operacionais e plataformas com algumas modificaes. APIs do Windows32: uma API do Windows32 (Aplication Program Interface pr-definidas do sistema Interface de Programas Aplicativos) um conjunto de funes

operacional Windows para controle do comportamento dos componentes deste, que vai desde a alterao da aparncia das janelas da rea de trabalho at a alocao de memria para novos processos. Observa-se ento que, neste sistema, em cada ao do usurio ocorre a execuo de uma ou mais funes de API em resposta requisio.

52

As funes de API residem em DLLs (como as User32.dll, GDI32.dll, Shell32.dll) do sistema operacional Windows e podem ser requisitada como qualquer outra funo existente em DLL pelos programas criados em diversos ambientes de programao, como por exemplo no Visual C, Builder C, Visual Basic ou no Delphi. Destes, o Visual Basic destaca-se devido a facilidade de uso e implementao das APIs atravs do editor API Text View deste ambiente para o Windows 32. Segundo Oliveira (2000) o uso das APIs do Windows em algumas operaes executadas pelo Visual Basic torna estas mais rpidas do que se as mesmas fossem realizadas por funes similares do prprio ambiente de programao. Para esta autora, as funes APIs podem ser divididas nos seguintes conjuntos:
funes de execuo de aplicaes; funes de comunicao; funes de erro; funes de entrada e sada em arquivos; funes de informao sobre o sistema; funes de manipulao de recursos de memria; funes de arquivo de inicializao e registro; funes de impresso; funes de controle de janelas; funes de manipulao de strings; funes de controle de imagens como bitmap (mapa de bits).

Outra facilidade implementada pelo ambiente do Visual Basic a converso dos tipos utilizados pelas APIs para os tipos mais comuns do Visual Basic e ainda a criao da nova sintaxe de comando realizada pelo prprio API Text View, como mostra o exemplo a seguir: A funo API original :
BOOL GetComputerName( LPSTR lpBuffer, LPDWORD nSize); onde para o Visual Basic os tipos LPDWORD e BOOL assumem o tipo LONG e o tipo LPSTR assume o tipo String. Sendo que o API Text View disponibiliza a seguinte sintaxe: Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long.

53

Outro tipo comumente utilizado pelas APIs

o HWnd (Handle Window - Janela

Manusevel), que representa o endereamento do sistema operacional para um formulrio ou janelas. O Windows usa handles (valores inteiros nicos de 32 bits) como indexadores para se referenciar a objetos que so armazenados em uma tabela de ponteiros. Desta forma uma API do Windows pode se referir a uma janela ou formulrio somente atravs de seu handle, ou at mesmo fazer uma referncia direta aos componentes internos desta pelo uso do tipo similar ao HWnd, como o HDC (OLIVEIRA , 2000).

5.3. Um pouco sobre UML


Para Booch e Colaboradores (2000) a UML (Unified Modeling Language - Linguagem Unificada de Modelagem) uma linguagem-padro para elaborao de projetos de software e pode ser aplicada para visualizao, especificao e documentao de sistemas complexos de software. Como considerada uma linguagem, ela apenas parte do mtodo para desenvolvimento de softwares e pode ser utilizada tanto em processos orientados a casos de uso como em processos centrados na arquitetura interativa e incremental. Para tanto, a UML disponibiliza basicamente nove diagramas para visualizao de um sistema sob diferentes perspectivas. Na prtica, o uso dos diagramas pode se restringir apresentao dos que proporcionam ao sistema uma viso mais ampla e dinmica do mesmo. A seguir apresenta-se uma breve descrio para cada um dos nove diagramas divididos em dois grupos, apresentada por Booch et al. (2000):
Diagramas Estruturais: so compostos por quatro diagramas (Classe, Objetos, Componentes e Implantao). Servem para visualizar, especificar, construir e documentar os aspectos estticos de um sistema, tais aspectos estticos representam o esqueleto e as estruturas estveis do sistema. o Diagrama de classes: exibe um conjunto de classes utilizadas, bem como a relao entre elas. So diagramas geralmente utilizados em projetos com modelagem voltada para a orientao ao objeto a fim de abranger uma viso esttica da estrutura do sistema; o Digrama de objetos: exibe um conjunto de objetos utilizados e seus relacionamentos, objetivado a mostrar uma viso esttica mais prxima dos casos reais e de seus prottipos;

54

o Diagrama de componentes: exibe a relao e as dependncias do sistema ou parte dele a um conjunto de componentes externos mapeados por uma ou mais classes, interfaces ou colaboraes; o Diagrama de implantao: apresenta a configurao dos ns de um sistema em tempo de execuo e os componentes nele existentes. Diagramas Comportamentais: so compostos por cinco diagramas (casos de uso, seqncia, colaborao, grfico de estados e atividades), que servem para visualizar, especificar, construir e documentar os aspectos dinmicos de um sistema, ou seja, as partes que sofrem alteraes. o Diagrama de casos de uso: exibe um conjunto de caso de uso e atores (um tipo especial de classes) e seus relacionamentos. Utilizados principalmente para organizao do sistema, servem como apoio visualizao da interao entre atores e seus casos; o Diagrama de seqncia e diagrama de Colaborao: esses dois diagramas so definidos como diagramas de interao. A diferena entre eles est na nfase que cada um aplica viso dinmica do sistema a ser implementado. Para o de seqncia, a nfase ocorre na ordenao temporal das mensagens enquanto para o de colaborao, ela ocorre na organizao dos objetos e suas mensagens de comunicao; o Diagramas de grfico de estados: apresenta uma mquina de estado, com transies eventos e atividades a fim de abranger uma viso dinmica do sistema com nfase a projetos orientados a eventos; o Diagrama de atividades: um tipo especial de grfico de estados que exibe o fluxo de uma atividade para a outra, com nfase ao fluxo de controle entre objetos de um sistema.

Segundo Booch e Colaboradores (2000) as regras de UML incentivam - mas no obrigam - o usurio a considerar as questes mais importantes de anlise, projeto e implementao que levam esses modelos a se tornarem bem-formados ao longo do tempo. Assim, tambm comum que uma equipe de desenvolvimento de software utilize muitas vezes modelos parciais e at mesmo incompletos, a fim de simplificar a viso e omitir elementos no relevantes.

55

5.4. O Visual Basic e a Orientao a Objeto


Assim como outras ferramentas, o Microsoft Visual Basic um ambiente de programao e desenvolvimento de aplicaes grficas para o ambiente do Microsoft Windows que possui vantagens adicionais que facilitam a produo de aplicaes corporativas de forma simples e rpida (NUNES, 1995 apud SATO, 2002). Inicialmente, o Microsoft Visual Basic era considerado como um brinquedo pelos profissionais de programao. Dizia-se constantemente, Faa um prottipo em VB; faa a verso de produo em C. Porm, atualmente no bem assim. Desde que foi lanado em outubro 1998, o uso do Visual Basic 6.0 chegou a alcanar um nmero no oficial de 3 milhes de licenas j no incio de 1999, e estimou-se um nmero de 6,8 milhes para 2003. Por esse motivo a Microsoft implementou nesta plataforma alteraes como o uso de recursos orientados a objeto, compilao de cdigo nativo e um suporte razovel para a lgica comercial (REED JR, 2000). Para este autor o Visual Basic 6.0 uma plataforma de programao que rene vrias caractersticas orientadas a objeto, mesmo que para muitos da indstria ele seja considerado como baseado em objeto e no orientado a objeto. Existe tambm quem diga que as nicas linguagens verdadeiramente orientadas a objeto so a SmallTalk e o Eiffel e que todas as outras se autodenominam orientadas a objeto. Porm, no cabe a este trabalho a discusso sobre a comparao entre linguagens e sim, a viabilizao prtica de um software de viso computacional. Segundo Reed Jr (2000) no existe uma definio globalmente aceita sobre o que faz com que uma linguagem seja orientada a objeto. Assim, praticamente utiliza-se um conjunto de critrios para avaliar se uma linguagem ou no orientada a objeto. Especificamente, uma linguagem orientada a objeto deve conter:
classes de Objetos; criao de Tipos Complexos baseados em classes; encapsulamento; herana; passagem de mensagem entre objetos e classes; polimorfismo.

56

De forma simples, ou por similaridade, o Microsoft Visual Basic 6.0 possibilita implementar as tcnicas de UML acima citadas desde sua verso 5.0, com o uso de componentes ActiveX (uma aplicao que expe objetos e seus componentes para outras aplicaes compatveis com um servidor OLE Automation) (SWARTZFAGER, 1997). De acordo com Reed Jr (2000) a UML e o VB se encaixam muito bem e o valor que a UML acrescenta realado pelo uso de uma ferramenta de modelagem visual que suporta tanto a engenharia direta quanto a reversa, como o caso do VB. Para o mesmo autor o VB tem mais do que o necessrio em exame de objetos para se beneficiar das tcnicas da linguagem UML aumentando dramaticamente a qualidade e as chances de sucesso de um projeto implementado nesta linguagem. Jim Rumbaugh disse certa vez, Voc no pode esperar que um mtodo lhe diga tudo o que tem de fazer. Escrever um software um processo criativo, como pintar, escrever, ou fazer um projeto arquitetnico. H princpios de pintura, por exemplo, que fornecem as diretrizes para composio, seleo de cores e perspectivas, mas eles no o transformam em um Picasso. Portanto, escolha uma ferramenta e torne-a parte de seu processo.

57

6. Desenvolvimento do software de viso computacional


6.1. Problemas de estrutura mnima de software e hardware
A elaborao de um software relativamente rpido e confivel tanto para o uso da viso relativa ao futebol de robs como para o uso de sistemas de viso comerciais est diretamente ligada base de hardwares com que este ir interagir. Existem atualmente no mercado equipamentos com qualidade relativamente baixa comparada ao custo de aquisio e implementao deste. Este trabalho, no entanto, buscou equilibrar custo e qualidade.

6.1.1. Soluo adotada para hardware e software


O hardware envolvido no sistema de viso artificial a que se destinou este trabalho consta de uma cmera de VHS comum, compacta da JVC tipo GR-AX827 que disponibiliza uma imagem colorida analgica de vdeo no formato do padro 3 x 4 NTSC na ordem de trinta quadros por segundo. Esta est conectada ao computador por um cabo coaxial e uma placa de captura de vdeo modelo TView CPH057 PCI, baseada no conversor BT878 da Philips que permite a captura de forma analgica da imagem do campo de futebol e dos elementos (robs e bola) envolvidos e realiza a converso para o sistema digital em um quadro de 240 x 320 pixels. Para que a captura seja realizada o campo de ao dos elementos e cada identificador deles deve estar devidamente iluminado permitindo um IRC (ndice de reproduo de cores) de aproximadamente 90%. A Figura-31 apresenta uma idia do campo utilizado.

58

Figura 31 Viso geral do hardware do sistema de futebol de robs.

Os quadros de imagem do vdeo capturados pela placa so convertidos pelo software de viso desenvolvido para um padro conhecido de imagem e cor do sistema operacional utilizado, a fim de permitir o tratamento desta pela aplicao de alguns dos filtros descritos anteriormente neste trabalho. O padro que o software utiliza para armazenamento de imagens em movimento o conhecido formato AVI da Microsoft (udio Vdeo Interleave - Licenciamento de Vdeo e udio) e para imagens estticas e anlise destas o BMP (Bitmap - Mapa de bits). Como dito anteriormente, o software permite a captura de imagens reais advindas diretamente da cmera para anlise bem como o armazenamento para posterior anlise destas, tanto em vdeo digital (capture.avi) como em imagem esttica (nome.bmp). Para o processamento das imagens utilizou-se um microcomputador do tipo AMD XP com 2.7 GHz de processamento, 1.0 GB de memria RAM e placa aceleradora de vdeo AGP de 256 MB. Tendo-se as imagens digitalizadas o software permite a calibrao atravs do reconhecimento, armazenamento e segmentao dos dados de cor (RGBI) de cada elemento envolvido no jogo. Basicamente, a identificao do rob feita por meio de adesivos de diferentes cores e de forma circular com dimetro de 65 mm. So adotados dois pontos na parte superior do mesmo, sendo que um identifica o centro do rob e outro a parte dianteira dele. A finalidade dos dois pontos de identificao em cada rob de possibilitar a criao de um vetor de posio pelo

59

software de estratgia. A cor da bola seguiu o padro para o futebol de robs (normas da F-180), e laranja, sendo esta basicamente a sua nica identificao para o software de viso. A implementao do software de viso artificial para este trabalho foi realizada no Microsoft Visual Basic 6.0, e contem as seguintes partes:
Captura: parte responsvel pela captura, digitalizao e armazenamento da imagem de vdeo fornecida pela cmera acima descrita; Filtros: responsvel pelo ajustes de cromaticidade da imagem colorida digitalizada e aplicao de filtros e efeitos na mesma de forma contnua (on-line); Calibrao: responsvel pela captura das configuraes de cor dos elementos utilizados no jogo e de posies estratgicas do campo (marcas de gol, centro, limites de cantos); Busca e Localizao: responsvel pela segmentao de cor e a localizao do centro (x, y) dos elementos calibrados acima, de forma mais rpida possvel, seguindo pelo menos duas tcnicas j descritas, a segmentao por cor e a vetorizao;

Comunicao: responsvel pela transmisso dos dados aquisitados pelo software de viso computacional ao software de estratgia desenvolvido por Santos e Richter

(2005). Para cada uma das partes descritas acima, criou-se classes de objetos no Visual Basic baseando-se nos diagramas da UML, a fim de facilitar a troca de mensagens entre as classes deste software. O uso de diversas funes de APIs do Windows 32 fez-se necessrio para possibilitar que as imagens capturadas e o tratamento das mesmas fosse feito diretamente em memria, com o intuito de agilizar a execuo dos procedimentos aplicados a estas pelo Visual Basic. O item seguinte descreve algumas classes implementadas e as APIs utilizadas para elaborao deste software de viso para o uso no futebol de robs.

6.1.2. As classes e as APIs para o software.


Para facilitar a compreenso deste cdigo nomeou-se cada classe com a letra inicial c seguida de um nome de identificao especfico para o servio a que esta se destina. (Exemplo: cVideoCapture). A seguir so mencionadas as classes criadas e a descrio da tarefa que estas realizam:

60

cVideoCapture: inicializa as configuraes de Captura de imagem entre a cmera e a placa de vdeo utilizada; cElementClass: possibilita a identificao, armazenamento e calibrao dos valores dos elementos coloridos escolhidos para o jogo; cFieldClass: permite a identificao, armazenamento e configurao dos pontos elementares (centro, posio do gol) do campo de futebol em uso; cColorClass: possibilita a converso entre os sistemas de cores utilizados, RGB e HSI; cPalette: possibilita o reconhecimento do padro de imagem Bitmap do Windows; cPictureEx: cria, destri e altera os valores de memria correspondente imagem capturada e j convertida para os padres utilizados; cFilter: permite a aplicao de filtros especiais na imagem; cImageProcess: realiza o tratamento dos valores de memria da imagem para alteraes como brilho, contraste, intensidade e tons de cinza; cFindClass: realiza a busca contnua dos valores de centro (x,y) dos elementos escolhidos e calibrados pela cElementClass; cComunication: auxilia as configuraes de comunicao entre o sistema de viso e o de estratgia pela porta serial.

Para o tratamento das imagens adquiridas pelo software de viso em questo as seguintes APIs do Windows j reescritas para o Visual Basic foram utilizadas:
Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (lpvDest As Any, lpvSource As Any, ByVal cbCopy As Long) Public Declare Function GetTickCount Lib "kernel32" () As Long Public Declare Function GetPixel Lib "gdi32" (ByVal hDC As Long, ByVal X As Long, ByVal Y As Long) As Long Public Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long

61

Public Declare Function SetPixelV Lib "gdi32" (ByVal hDC As Long, ByVal X As Long, ByVal Y As Long, ByVal crColor As Long) As Long

Public Declare Function StretchBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal xD As Long, ByVal yD As Long, ByVal nWidthD As Long, ByVal nHeightD As Long, ByVal hSrcDC As Long, ByVal xS As Long, ByVal yS As Long, ByVal nWidthS As Long, ByVal nHeightS As Long, ByVal dwRop As Long) As Long

Public Declare Function Polyline Lib "gdi32" (ByVal hDC As Long, lpPoint As POINTAPI, ByVal nCount As Long) As Long

Baseado nas especificaes de Oliveira (2000) as variveis das APIs acima discriminadas assumem:
hDC: identifica o dispositivo de contexto da janela ativa; hDestDC: identifica o dispositivo de contexto do destino; hSrcDC: identifica o dispositivo de contexto da origem; X: especifica a coordenada lgica x do canto superior esquerdo do retngulo de destino; Y: especifica a coordenada lgica y do canto superior esquerdo do retngulo de destino; XSrc: especifica a coordenada lgica x do canto superior esquerdo do retngulo de origem; YSrc: especifica a coordenada lgica y do canto superior esquerdo do retngulo de origem; nWhidth: especifica a largura lgica dos dispositivos e do retngulo de destino; nHeigth: especifica a altura lgica dos dispositivos e do retngulo de destino; dwRop: especifica um cdigo de ao para a funo, como mostra a Tabela 6 abaixo:

Tabela 6 - Descrio dos valores de ao para funes API

Cdigo e Valor SRCAND = &H8800C6 SRCOPY = &HC0020 SRCERASE = &H440328 SRCINVERT =&H660046 SRCPAINT=&HEE0086

Descrio Efetua um operador lgico E com os dois parmetros de cor (destino e origem). Copia uma imagem exatamente como ela . Faz a inverso entre duas imagens (destino e origem). Faz um operador lgico XOR entre os dois parmetros de cor (destino e origem). Faz um operador lgico OR entre os dois parmetros de cor (destino e origem).

62

crColor: especifica a cor a ser utilizada; lpvDest: especifica o valor de posio de memria do destino; lpvSource: especifica o valor de posio de memria da origem.

6.1.3. Planejamento e engenharia do software


As classes e diagramas das pginas seguintes esto baseados na linguagem UML e apresentam os principais diagramas utilizados na implementao do software de viso no contexto deste trabalho.

Figura 32 Diagrama de Atividades, Captura de Imagem

63

Figura 33 Diagrama de Atividades, Limites de Campo

64

Figura 34 Diagrama de Atividades, Calibrar Elementos

65

Figura 35 Diagrama de Atividades, Processamento de Imagens

66

Figura 36 Diagrama de Atividades, Enviar Dados

Figura 37 Diagrama de Seqncia, Ativar Captura

67

Figura 38 Diagrama de Seqncia, Limites de Campo

Figura 39 Diagrama de Seqncia, Cores dos Elementos

68

Figura 40 Diagrama de Seqncia, Enviar Dados

Figura 41 Diagrama de Classe, Ativar Captura

69

Figura 42 Diagrama de Classe, Limites de Campo

70

Figura 43 Diagrama de Classe, Cores dos Elementos

71

Figura 44 Diagrama de Classe, Enviar Dados

72

6.1.4. Resultados obtidos na implementao do hardware e software


A definio das classes e o uso de APIs proporcionou uma implementao prtica do cdigo do software de maneira mais rpida e fcil. Pelos trechos dos cdigos abaixo possvel verificar que o envio de mensagens uma classe para a execuo de determinada tarefa facilita o entendimento do cdigo e que tambm o uso das APIs resolve questes de implementaes relativamente demoradas.
// API que copia toda imagem de PicEx diretamente para PicImage BitBlt PicImage.hdc, 0, 0, 320, 240, PicEx.m_BoundedPB.hdc, 0, 0, vbSrcCopy

// Classe FindEL de busca de elementos j calibrados da posio X,Y do inicio ao X,Y do fim da imagem Public Sub ContinuosF( ) FindEl.BrazilianFind myXini, myYini, myXend, myYend End Sub

6.2. Problemas relativos captura, digitalizao e filtros por software


A transferncia das imagens seqenciais reais advindas da cmera para digitalizao em um padro conhecido pelo sistema operacional utilizado deve ser feita de maneira mais rpida possvel para viabilizar seu uso no jogo de futebol de robs. Alm disso, o uso de filtros torna-se imprescindvel para melhoria da imagem real capturada. Alm da velocidade de transferncia e filtragem das imagens reais para o software outro problema relativo ao uso de imagens reais capturadas a variao da luminosidade em diferentes pontos de ao dos agentes robticos no campo. A Tabela 7 apresenta os valores de intensidade luminosa (LUX) relativos aos pontos da Figura 45. A Figura 46 apresenta de forma visivelmente clara a variao dos pontos de mxima e mnima luminosidade incidentes sobre o campo no ambiente utilizado.

73

Tabela 7 - Resultado das medies da variao luminosa do campo .

Pontos de intensidade luminosa, medidos em lux.


Ponto 1 Ponto 2 Ponto 3 Ponto 4 Ponto 5 210 222 200 225 220 Ponto 6 Ponto 7 Ponto 8 Ponto 9 Ponto 10 230 220 230 250 250 Ponto 11 Ponto 12 Ponto 13 Ponto 14 Ponto 15 250 240 240 235 232

Figura 45 Pontos de mxima e mnima luminosidade incidentes sobre o campo.

74

Figura 46 Binarizao da imagem para demonstrao dos pontos de luminosidade.

Na Figura 47 a tela superior apresenta a imagem original capturada e a inferior o seu tratamento pelos filtros de brilho, contraste e gama realizados pelo software. possvel perceber que dependendo do tipo de filtro aplicado para correo da variao luminosa (dos pontos de maior intensidade para os pontos de menor intensidade) o reconhecimento de certas cores pode ficar prejudicado, como no caso do amarelo. Devido a isto, tornou-se necessria a execuo de testes prticos, tanto do tipo de filtro a ser aplicado como da intensidade deste em relao as cores utilizadas para identificao dos elementos no campo. Em um prximo item ser detalhado o procedimento de escolha das cores dos elementos.

75

Seleo do tipo de filtro e nvel de aplicao.

Imagem original antes da aplicao dos filtros de brilho, contraste e gama.

Imagem apresentada aps a captura e aplicao dos filtros de brilho, contraste e gama.

Figura 47 Apresentao da imagem original capturada X tratamento com filtro.

6.2.1. Soluo para captura de imagens reais seqenciais


Para a transferncia da imagem real obtida pela placa de captura ao software desenvolvido utilizou-se um componente que possibilitou o armazenamento e recuperao das posies de memria especfica utilizada pelo Windows em um lwndc (endereo nico de 4 bytes para a janela do dispositivo de contexto). Esse endereo corresponde localizao dos dados que compem a formao da imagem no dispositivo de visualizao (Display LDC ou Monitor). Uma vez conhecida tal posio de memria tornou-se possvel adequar a imagem a um padro conhecido (como, por exemplo, um Bitmap de 24 bits True-Color). Isto possibilitou realizar interaes com os valores do mapa de bits implementando diversos filtros por software na imagem real e apresent-los novamente no monitor com os novos valores.

76

As partes do cdigo a seguir demonstram respectivamente o reconhecimento da rea de memria utilizado bem como a converso para o padro de imagem conhecido e alterao dos valores dos RGB desta por um filtro de ajuste de contraste.
Procedimento de carregamento da imagem real de vdeo pelo componente auxiliar EZVideo_Cap:
Private Sub EZVideo_Capture() Dim lpszName As String Dim lpszVer As String Dim Caps As CAPDriverCAPS 'Cria constante de Captura pelo Windows capGetDriverDescriptionA 0, lpszName, 100, lpszVer, 100 ' Coleta as informaes dos drivers lwndC = capCreateCaptureWindowA (lpszName, WS_CAPTION Or WS_THICKFRAME _ Or WS_VISIBLE Or WS_CHILD, 80, 70, 320, 240, Me.hWnd, 0) //lwndc - Endereo correspondente da janela de exibio do video pelo Windows, posio e //tamanho da imagem apresentada. SetWindowText lwndC, "Sistema de viso 1G1" //Determinda um nome para a Janela capSetCallbackOnError lwndC, AddressOf MyErrorCallback //Verifica erros no carregamento If capDriverConnect(lwndC, 0) Then capPreviewRate lwndC, 30 capPreview lwndC, True ResizeCaptureWindow lwndC End If End Sub //Tratamento de erros //Seleciona a taxa de refresh ( milisec) //Inicia a visualizao da imagem //Corrige dimenses de amostragem capDriverGetCaps lwndC, VarPtr(Caps), Len(Caps)

77

Funo de converso para padro conhecido: Retorna Matriz Imagem abPicture():


Public Function Get_TrueBits(pb As PictureBox, abPicture() As Byte, BI As BITMAPINFO) As Boolean Dim bmp As BITMAP Call Get_ObjectAPI(pb.Picture, Len(bmp), bmp) ReDim BI.bmiColors(0) With BI.bmiHeader // Determina um padro conhecido para a imagem a ser filtrada .biSize = Len(BI.bmiHeader) .biWidth = bmp.bmWidth .biHeight = bmp.bmHeight .biPlanes = 1 .biBitCount = 24 .biCompression = BI_RGB ReDim abPicture(BytesPerScanLine(.biWidth) - 1, .biHeight - 1) End With Get_TrueBits = Get_DIBits(pb.hDC, pb.Picture, 0, BI.bmiHeader.biHeight, abPicture(0, 0), BI, DIB_RGB_COLORS) // Funo para montagem da Matriz Imagem abPicture( ) End Function

6.2.2. Soluo para escolha de filtros para o ambiente


A aplicao dos filtros corretivos possibilitou ajustes de brilho, contraste e intensidade, converso de imagens para tons de cinza, negativao, colorizao e ativao de efeitos, (filtros especiais) como passa alta e passa baixa, de forma contnua sem oscilao da imagem entre um filtro e outro. Para contornar as diferenas de luminosidade procurou-se utilizar o mnimo de filtros possveis, uma vez que cada filtro aplicado demanda um uso de tempo considervel de processamento que pode variar de dcimos de segundos at alguns segundos, prejudicando a velocidade de resposta do software de viso em relao movimentao real no campo. O cdigo a seguir apresenta um procedimento de transformao nos valores relativos ao contraste da matriz imagem contida em abPicture( ). interessante ressaltar a necessidade de um controle de posies dos valores originais de R, G e B, uma vez que estes foram armazenados em colunas separadas e de forma seqencial, exemplo: abPicture(1,1)R, abPicture(3,1)B para cada ponto da imagem de 320x240 pixels. Assim, se utilizarmos todos os pontos, ou seja, de 0-320 e de 0-240, teremos cerca de ((321 * 3) * 241) = 232083 valores a serem manipulados pelo software de variveis em Byte para aplicao de um nico filtro. abPicture(2,1) G,

78

Procedimento para Ajuste de Contraste:


Public Sub Change_Contrast(abPicture() As Byte, ByVal lAmount As Long, Optional clrIdx As Integer) Dim X As Long, Y As Long Dim xMax As Long, yMax As Long Dim iStep As Integer xMax = UBound(abPicture, 1) //Valores RGB da Imagem alinhados ( 3 * nX ) por colunas (R,G,B) yMax = UBound(abPicture, 2) //Valores RGB normais para as linhas da imagem If clrIdx Then iStep = 3 xStart = 3 - clrIdx Else iStep = 1 End If For X = xStart To xMax Step iStep If (X Mod 3 = 0) Then X = (X + (3 * FJumper)) //Posiciona Coluna Correta de R,G ou B For Y = 0 To yMax abPicture(X, Y) = cTable(lAmount, abPicture(X, Y)) //Incremento de Valor para R,G,B Y = Y + FJumper //da Matriz Imagem abPicture( ) Next Y Next X End Sub

As Figuras 48 e 49 apresentam respectivamente a imagem real e o resultado da aplicao dos filtros corretivos realmente utilizados para a localizao dos agentes robticos e bola no campo de ao.

Figura 48 Imagem real capturada.

79

Figura 49 Imagem adquirida aps a aplicao de filtros corretivos.

6.2.3. Resultados obtidos com a captura, digitalizao e aplicao de filtros.


Para a parte da captura utilizou-se um componente auxiliar EZVideo_Cap, o qual configurou automaticamente as interrupes necessrias para acesso ao vdeo da placa de captura facilitando o reconhecimento da regio de memria correspondente imagem real capturada.
Como dito anteriormente, a aplicao dos filtros possibilitou ajustes de brilho, contraste e intensidade, converso de imagens para tons de cinza, negativao, colorizao e ativao de efeitos, (filtros especiais) como passa alta e passa baixa, de forma contnua sem oscilao da imagem entre a aplicao dos diferentes filtros. Nos testes realizados com aplicao de filtros corretivos por software, averiguou-se que o uso destes diminuiu consideravelmente o rendimento do processamento de captura e localizao como um todo, visto o grande nmero de variveis a serem manipuladas. Sendo assim, decidiu-se utilizar os

recursos que a placa de captura fornece para a aplicao de filtros por hardware, mantendo as mesmas caractersticas dos resultados obtidos dos testes feitos com filtros por software. Os tempos de captura e anlise das imagens com processamento de filtros por hardware ou por software podem ser vistos nas Tabelas 8a e 8b. Desenvolveu-se tambm um procedimento de saltos dos pontos da imagem real a serem processados, tanto para a parte de aplicao dos filtros quanto para a parte de busca e localizao dos elementos coloridos dos robs e da bola, diminuindo consideravelmente o tempo gasto com o processamento sem interferir na qualidade e robustez dos resultados.

80

Tabela 8a - Resultados de tempo obtidos das etapas de processamento e filtros por hardware.

Salto

Criar Matriz Imagem & Localizao ( s ) Round(FPS) 1,468 0,400 0,188 0,125 0,094 0,078 0,040 1 3 4 5 6 7 8

Filtro por Hardware (FPS) Tempo/Frame( s ) 1,000 0,333 0,250 0,200 0,167 0,143 0,125 Captura & Dig. em ( s ) 0,468 0,067 0,062 0,075 0,073 0,065 0,085

0 1 2 3 4 5 10

Tabela 8b - Resultados de tempo obtidos das etapas de processamento e filtros por software.

Salto

Criar Matriz Imagem & Localizao ( s ) Round(FPS) 1,468 0,400 0,188 0,125 0,094 0,078 0,040 1 2 3 4 5 5 6

Filtro por Software (FPS) Tempo/Frame ( s ) 1,000 0,500 0,333 0,250 0,200 0,200 0,167 Captura & Dig. em ( s ) 0,468 0,100 0,145 0,125 0,106 0,122 0,127

0 1 2 3 4 5 10

6.3. Problemas relativos calibrao dos elementos


Como j discutido nos itens anteriores referentes aos problemas decorrentes da m iluminao homognea presente no campo, a colorao das identificaes dos agentes robticos bem como da bolinha -sofrem alteraes naturais de cor devido a incidncia da luz no objeto, muitas vezes imperceptveis ao olho nu, mas perfeitamente decifrvel quando a cor decomposta na formao RGBI. A Figura 50 ampliada 1600 vezes representa a bolinha do jogo na cor laranja. Nela observou-se a existncia de diferentes tons, como por exemplo, o preto, a rosa e o vermelho, o que prejudica o reconhecimento da similaridade dos pixels, j discutida.

81

Figura 50 Imagem ampliada 1600 vezes e os tons de cores encontrados na imagem.

O cdigo a seguir representa o procedimento de extrao da cor RGB no formato Long (4 bytes, entre -2,147,483,648 e 2,147,483,647) decompondo-os em R,G,B e I do tipo byte (1 byte, entre 0 e 255). Procedimento para extrao do RGBI da cor RGB.
Public Function SetColorComponent(Color As Long) bytRed = Color And 255 '// Retorna o Red da cor RGB do tipo long bytBlue = Color \ 256 \ 256 '// Retorna o Blue da cor RGB do tipo long bytGreen = (Color - bytBlue * 65536) \ 256 '// Retorna o Green da cor RGB do tipo long intSum = CInt(bytBlue) + CInt(bytGreen) + CInt(bytRed) 'Soma RGB intIntensity = CInt(intSum / 3) '// Calcula a mdia das cores - intensidade End Function

A tabela 9 representa a extrao das cores amarelo e ouro (rob 1), azul e verde (rob 2) e laranja (bolinha).

82

Tabela 9 - Extrao da cor RGB em R,G,B e I

Cor

Representao Long

(Byte) (Byte) (Byte) (Byte)

Amarelo Ouro Azul Verde Laranja

5283730 7575198 13275529 9607809 9141438

148 154 128 125 190

153 145 145 154 124

91 112 169 142 138

128 141 255 133 191

6.3.1. Soluo para os problemas de calibrao


A extrao das cores R,G,B e da intensidade a partir da cor RGB no formato long, possibilitou a captura dos mnimos e mximos de R, de G, de B e de I da cor referente a iluminao presente naquele ponto de calibrao. Como o jogo de futebol de robs exige a movimentao dos agentes robticos para a obteno do objetivo, os mesmos atingiro reas com iluminao depreciada. Conseqentemente, a comparao da extrao R, G, B, I desses pontos com a extrao R, G, B, I realizada no ponto calibrado ser diferente, tornando impossvel a localizao do elemento em pontos com iluminao diferentes do ponto de calibrao. Para resolver esse problema efetuada a calibrao de mximos e mnimos das cores R, G, B, I de todos os elementos do jogo em trs diferentes pontos de iluminao do campo. Optouse por utilizar a calibrao atravs dos mnimos e mximos da cor para se criar uma faixa aceitvel de identificao da cor, evitando assim o reconhecimento de uma cor ao invs de outra com a qual possuem proximidades. Os pontos de calibrao dos elementos podem ser analisados na Figura 51, aps a obteno dos mximos e mnimos de cada um dos trs pontos de calibrao. O software realiza a comparao do mnimo e mximo dos trs pontos, utilizando somente a faixa estipulada pelo menor dos trs mnimos calibrados e o maior dos trs mximos calibrados para realizar a busca dos elementos dentro da rea de atuao do campo.

83

Figura 51 - Pontos de calibrao dos elementos.

A seguir podemos analisar o procedimento que compara se uma determinada cor transformada em R, G, B, I pertence a algum elemento previamente calibrado.
Private Function Exist_Color(ByRef IDxObj As Byte, ByVal intXimg As Integer, ByVal intYimg As Integer) As Boolean Exist_Color = False If ElementoID(IDxObj).ActEl Then '// Comparao dos mnimos e mximos. If (MatImg(intXimg, intYimg).PiCor.Intens <= ElementoID(IDxObj).MaxIntens _ And MatImg(intXimg, intYimg).PiCor.Intens >= ElementoID(IDxObj).MinIntens) _ And (MatImg(intXimg, intYimg).PiCor.Red < ElementoID(IDxObj).MaxRed _ And MatImg(intXimg, intYimg).PiCor.Red >= ElementoID(IDxObj).MinRed) _ And (MatImg(intXimg, intYimg).PiCor.Green <= ElementoID(IDxObj).MaxGreen _ And MatImg(intXimg, intYimg).PiCor.Green >= ElementoID(IDxObj).MinGreen) _ And (MatImg(intXimg, intYimg).PiCor.Blue <= ElementoID(IDxObj).MaxBlue _ And MatImg(intXimg, intYimg).PiCor.Blue >= ElementoID(IDxObj).MinBlue) Then Exist_Color = True End If End If End Function

6.3.2. Resultados obtidos na calibrao


Dentre o processo de escolha da cor que melhor suprisse as necessidades aqui discutidas, foram analisadas as coloraes e brilhos de diferentes materiais, como por exemplo, papel cartolina, papel carto, papel color set, papel laminado, papel lustroso, tinta para tecidos e finalmente tinta plsticas de alto relevo. Observou-se que cores foscas ou com pouco brilho,

84

independentes do tipo de material, apresentaram resultados indesejados aos objetivos do projeto, tais como reconhecimentos de sombra como pseudo-cores para o sistema, e que a tinta plstica de alto relevo, com propriedades de fluorescncia e metlica apresentaram melhor desempenho no processo de calibrao do software. As cores escolhidas nos testes realizados bem como os mnimos e mximos das mesmas podem ser analisadas na Tabela 10, e a Figura 52 apresenta a tela de calibrao dos elementos.
Tabela 10 - Extrao da cor RGB em R, G, B e I

Elemento Rob 1 Rob 2 Bolinha

Cor Azul (Centro) Verde (Direo) Ouro (Centro) Amarelo (Direo) Laranja

R Mn 123 108 158 140 172 Mx 140 132 177 151 212 Mn 148 155 143 155 122

G Mx 156 170 149 166 139 Mn 189 136 96 63 102

B Mx 239 162 124 108 134 Mn 4 0 0 0 0

I Mx 36 4 4 100 4

Figura 52 Tela de calibrao dos elementos

85

6.4. Problemas de limites do campo, busca e processamento de imagens


O tamanho do campo compreendido por 2430 mm por 1600 mm, sendo a rea de atuao compreendida por 2230 mm x 1600 mm devido marcao das sadas do campo, como mostra a Figura 53.

Figura 53 Limites do campo.

6.4.1. Soluo adotada para determinao de limites, busca e processamento


Tendo em vista a otimizao do sistema para busca e processamento dos elementos atuantes no jogo, optou-se por delimitar a rea de varredura da imagem conforme mostrada na Figura 54a. A Figura 54b representa a varredura da imagem com filtros de correo e o campo delimitado. importante ressaltar que aps a modificao dos pontos limites de varredura da imagem, o ponto de origem (0,0) no transladado e continua sendo no canto Noroeste.

86

Figura 54a Pontos de delimitao do campo.

Figura 54b - Varredura da imagem com filtros de correo e campo delimitado.

87

Os dez pontos elementares definidos na calibrao dos limites do campo foram estipulados pelo sistema de controle de estratgia e controle. Esses pontos so enviados via serial RS232 durante o processo de calibrao e configurao do sistema, conforme mostra a Figura 55.

Figura 55 Tela de configurao dos pontos limites do campo.

6.4.2. Resultados obtidos com limites, busca e processamento de imagens


Alm da fcil configurao dos limites do campo, o software possibilita salvar as configuraes definidas do campo para uma posterior carga dessas configuraes, agilizando assim o processo como um todo. A busca e processamento das imagens tanto pela segmentao de cor como pela vetorizao ocupa um notvel tempo de processamento do computador devido quantidade de aes tomadas para a realizao da busca dos elementos, e tambm devido aos processos normais

88

decorrentes do Sistema Operacional, como por exemplo o antivrus, o gerenciador de servios, gerenciador de logon, entre outros. A Figura 56a apresenta o uso normal do processador pelo Sistema Operacional e a Figura 56b, mostra o grfico de utilizao do processador durante a busca e localizao dos agentes, utilizando o processo de segmentao por cor e um salto de 1 pixel na imagem.

Figura 56a Uso normal do processador.

Figura 56b Uso do processador durante a busca e o processamento de imagem.

O cdigo a seguir responsvel pelas estatsticas apresentadas acima e tem como funcionalidade a busca e processamento de imagens dos elementos utilizando a tcnica de segmentao por cor.

89

Public Sub BrazilianFind(ByVal xIni As Integer, ByVal yIni As Integer, ByVal xEnd As Integer, ByVal yEnd As Integer)

Dim iD, pass As Byte Dim crono As Long Dim intYimg, intXimg, intYBimg, intXBimg As Integer crono = GetTickCount

CaptureMatriz_Cmode xIni, yIni, xEnd, yEnd 'Determina limites do campo para varredura

intXimg = 0 intYimg = 0 intXBimg = MaxI

For intXimg = 0 To (MaxI \ 2) ' captura valores da matriz image intXBimg = MaxI - intXimg intYBimg = MaxJ For intYimg = 0 To MaxJ intYBimg = MaxJ - intYimg SetPixelV FrmImageCap.PicImage.hDC, MatImg(intXimg, intYimg).PiX, intYimg).PiY, rgb(0, 255, 0)

MatImg(intXimg,

For IDxObj = 0 To 5 If Exist_Color(IDxObj, intXimg, intYimg) Then 'IFO ElementoID(IDxObj).control = ElementoID(IDxObj).control + 1 ElementoID(IDxObj).Xcenter = MatImg(intXimg, intYimg).PiX ElementoID(IDxObj).Ycenter = MatImg(intXimg, intYimg).PiY If ElementoID(IDxObj).control <= CInt(FrmFind.Ccalc.Text) Then LastXY(IDxObj).LastX = LastXY(IDxObj).LastX + (ElementoID(IDxObj).Xcenter) LastXY(IDxObj).LastY = LastXY(IDxObj).LastY + (ElementoID(IDxObj).Ycenter) End If GoTo nextOBJ End If

90

If Exist_Color(IDxObj, intXBimg, intYBimg) Then ElementoID(IDxObj).control = ElementoID(IDxObj).control + 1 ElementoID(IDxObj).Xcenter = MatImg(intXBimg, intYBimg).PiX ElementoID(IDxObj).Ycenter = MatImg(intXBimg, intYBimg).PiY If ElementoID(IDxObj).control <= CInt(FrmFind.Ccalc.Text) Then LastXY(IDxObj).LastX = LastXY(IDxObj).LastX + (ElementoID(IDxObj).Xcenter) LastXY(IDxObj).LastY = LastXY(IDxObj).LastY + (ElementoID(IDxObj).Ycenter) End If End If nextOBJ: Next IDxObj SetPixelV FrmImageCap.PicImage.hDC, intYBimg).PiY, rgb(255, 255, 0) Next intYimg Next intXimg MatImg(intXBimg, intYBimg).PiX, MatImg(intXBimg,

For IDxObj = 0 To 5 '// Seleciona elementos de cor de 0 a 5 With ElementoID(IDxObj) If .control >= CInt(FrmFind.Ccalc.Text) Then .Xcenter = LastXY(IDxObj).LastX \ CInt(FrmFind.Ccalc.Text) '// Calcula a mdia dos n ltimos pontos selecionados no combobox .Ycenter = LastXY(IDxObj).LastY \ CInt(FrmFind.Ccalc.Text) '// Calcula a mdia dos n ltimos pontos selecionados no combobox FrmFind.LblX(IDxObj).Caption = Str$(.Xcenter) '// Valor a ser enviado. FrmFind.lblY(IDxObj).Caption = Str$(.Ycenter) '// Valor a ser enviado. FrmImageCap.PicImage.Circle (.Xcenter, .Ycenter), 4 .control = 0 LastXY(IDxObj).LastX = 0 LastXY(IDxObj).LastY = 0 End If End With Next With FrmFind MasterForm.Comm.elementos .LblX(0).Caption, .lblY(0).Caption, .LblX(2).Caption, .lblY(2).Caption, _ .LblX(3).Caption, .lblY(3).Caption, .LblX(4).Caption, .lblY(4).Caption, _ .LblX(5).Caption, .lblY(5).Caption End With crono = (GetTickCount - crono) FrmFind.lbltime.Caption = Format(crono / 1000, "##0.000") & " sec." End Sub

91

6.5. Problemas relativos Comunicao


Para a comunicao precisou-se elaborar diferentes mtodos que permitiram a transmisso configurvel e confivel tanto dos dados de posio (X,Y) adquiridos no processamento da imagem, quanto da calibrao dos limites de campo.

6.5.1. Soluo para Comunicao e Protocolo definido


O tipo de comunicao utilizado entre o sistema de viso aqui descrito e o de estratgia desenvolvido por Santos e Richter (2005) foi o conhecido RS-232. O RS uma abreviao de Recommended Standard e relata uma padronizao de uma interface comum para comunicao de dados entre equipamentos por um comit conhecido atualmente como (EIA) (Electronic Industries Association - Associao das Indstrias de Eletrnica). O padro RS232 especifica as tenses, temporizaes, funes dos sinais, um protocolo para troca de informaes e as conexes mecnicas a serem utilizadas (CAZIAN, 2004). Para garantir a validao dos dados transmitidos, utilizou-se o mtodo de deteco de erros pelo clculo do checksum (checagem por somatria). Segundo Cazian (2004) os valores que constituem uma mensagem so adicionados aritmeticamente. O nmero de checksum ento adicionado a seqncia do pacote de dados de tal forma que a soma dos dados mais o checksum zero. Quando recebidos, os dados devem ser adicionados pelo processador local e se a soma do pacote der um resultado diferente de zero, caracteriza-se ento um erro. Neste caso o pacote recebido ser descartado. A Tabela 11 apresenta o protocolo utilizado para o envio dos dados de calibrao do campo e de localizao dos elementos envolvidos no jogo:

92

Tabela 11 - Protocolo usado para a comunicao RS232.

Protocolo proposto para a transmisso dos pontos calibrados do campo :


#1 Cabealho x1 y1 x2 y2 x3 y3 ... x10 y10 Ponto 10 Byte High Byte Low

Ponto 1

Ponto 2

Ponto 3

Check Sun

Protocolo proposto para a transmisso dos elementos calibrados e localizados:


#1 Cabealho x1 y1 x1 y1 X2 y2 x3 y3 x10 y10 Frente Byte High Byte Low

Centro Bola

Centro

Frente

Centro

Check Sun

Rob 1

Rob 2

6.5.2. Resultados obtidos na comunicao


Com o uso do checksum obteve-se uma boa garantia dos dados transmitidos para a equipe de estratgia mesmo com as taxas mais altas de transferncias pela porta serial. A fcil alterao do tempo de envio (baund rate) dos valores (x,y) encontrados, possibilitou uma interao configurvel entre as velocidades do sistema de viso e estratgia. Nos testes realizados verificou-se que uma maior taxa de transmisso possibilita ao sistema de estratgia a execuo de um processamento com dados mais prximos aos do acontecimento no ambiente real.

Sem/ Fase 2 3 4

Abril

Maio

Junho

Julho

Agosto

Setembro

Outubro

Novembro

1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1

7. Planejamento do Trabalho

Fase 1 Pesquisas e especificao de requisitos

Fase 2 Prototipao e desenvolvimento dos mdulos de Viso.

Fase 3 Integrao dos trs mdulos (Viso, Estratgia e Hardware).

Fase 4 Avaliao do sistema e realizao de ajustes.

Fase 5 Finalizao da documentao e preparativos para apresentao.

93

94

8. Concluses, Resultados Finais, Dificuldades e Pretenses Futuras


Verificou-se que o uso de um ambiente com iluminao controlada facilita em muito a aplicao das tcnicas de viso para localizao dos agentes robticos, porm a falta de tal ambiente no impede a implementao de tais tcnicas. Concluiu-se tambm que para o jogo gol-a-gol executado, uma velocidade de processamento de imagens e transmisso de valores X,Y da ordem de 5 FPS apresentou um bom desempenho comparado ao valor de 30 FPS comumente utilizado por equipes de universidades estrangeiras de renome, como por exemplo a Cornell University e a Carnegie Mellon University. Verificou-se tambm que anlise da imagem utilizando saltos de pixels permitiu boa preciso dos pontos localizados, e facilitou em muito o processamento de cada frame de imagem. Uma grande vantagem desse sistema de viso desenvolvido em relao aos sistemas comerciais existentes no mercado, sem dvida o baixo custo financeiro, j que este utilizou-se de equipamentos de imagens comuns como cmeras, computador e placas de captura que possuem preos acessveis no mercado. O uso da calibrao por limites mximos e mnimos da faixa de R, G, B, I para cada elemento de cor possibilitou o reconhecimento de tais elementos mesmo em condies de baixa luminosidade no ambiente em que os mesmos estavam atuando. importante ressaltar que em um ambiente de iluminao com 230 LUX em mdia, as cores definidas para os robs e para a bola foram bem localizadas. Considerando que num ambiente profissional da ROBOCUP a iluminao da ordem de 2000 LUX, somente neste ano este torneio comeou a diminuir a iluminao utilizada para chegar mais prximo possvel de ambientes reais onde as sombras coexistem com as imagens. A capacidade de armazenamento de imagens seqenciais implementadas no software permitiu e auxiliou o processo de testes, tanto da calibrao das cores dos elementos como dos limites do campo. Graas a essa capacidade tais calibraes que antes s poderiam ser realizadas em ambientes reais puderam ser feitas em um ambiente simulado. Assim, pelos resultados apresentados acima, pode-se concluir que foi possvel a implementao de um sistema de viso artificial para a anlise de imagens reais e seqenciais. Alm disso, tal implementao pode ser realizada em equipamentos de custo relativamente baixo que apresentam um bom desempenho para o sistema de viso como um todo.

95

A ttulo informativo, a realizao do projeto geral encontrou vrias dificuldades que no impediram a realizao desse trabalho. Dentre as dificuldades encontradas podemos citar a falta de incentivo e apoio financeiro por parte da instituio de ensino como sendo uma das principais, a disponibilidade de espao fsico e tempo para a realizao do projeto geral, a dificuldade de locomoo dos equipamentos pessoais (computadores, campo e agentes robticos) at o local de realizao do projeto. A falta de uma abordagem mais especfica nas reas de Computao Grfica e Linguagem de Programao em C++, prejudicou o desenvolvimento de um software que apresentasse um maior desempenho. Sugere-se aqui que, se possvel, a instituio de ensino antecipe e priorize a instruo dos tpicos embasados das matrias supra citadas, melhorando assim o desempenho em trabalhos futuros. Com base nos conhecimentos adquiridos com a execuo deste trabalho, almeja-se a implementao de um software de viso computacional em uma linguagem mais apropriada para sistemas de tempo real, ou sua elaborao em sistemas de hardware.

96

9. Referncias Bibliogrficas
Ballard, D. H. & Brown, C. M. (1982).Computer Vision Prentice-Hall, Englewood Cliffs, 1982. Bianchi, R. A. C. (2001). Viso Computacional Aplicada ao Controle de Micro Robs; Faculdade de Engenharia Industrial, Departamento de Engenharia Eltrica, So Bernardo do Campo, Brasil. Booch. G. et al (2000). UML, Guia do Usurio; Rio de Janeiro, Brasil: Ed. Campus Ltda. Cazian E. (2004). Comunicao Serial RS-232; Apostila do Curso de comunicao Ministrado pela CNZ Engenharia e Informtica Ltda., So Paulo. Disponvel em <http://www.apostilando.com/download.php?cod=333&categoria=Outras%20Apostilas >. Acessado em: 28 agosto 2004. Freire, J. J. (2004). Simulao do Controle de Trfico de Automveis em uma Malha Rodoviria Urbana; Trabalho de Concluso de Curso submetido Universidade Regional de Blumenau. Foley, J. D. et al. (1990). Computer Graphics: principles and pratice; United States of America, Ed. Addison-Wesley Publishing Company, Inc. Gonzales, R. C. & Woods R. E. (1992). Digital Image Processing; United States of America, Ed. Addison-Wesley Publishing Company, Inc. Jarol, S (1995). Visual Basic para Multimdia; Traduo PubliCare Servios de Informtica, Rio de Janeiro, Brasil: Ed. Campus Ltda. Manssour, I. H. (2003). Introduo a OpenGl; Porto Alegre. Disponvel em:

<http://www.inf.pucrs.br/~manssour/OpenGL/>. Acessado em: 28 agosto. 2004. Marques Filho, O. & Vieira Neto, H. (1999). Processamento Digital de Imagens; Rio de Janeiro, Brasil: Ed. Brasport Livros e Multimdia. Neves, S. C. M. & Pelaes, E. G.(2001). Estudo e Implementao de Tcnicas de Segmentao de imagens; Departamento de Engenharia Eltrica e de Computao, Revista Virtual de Iniciao Acadmica da UFPA, Universidade Federal do Par. Disponvel em: <http://www.ufpa.br/revistaic>. Acessado em: 28 agosto. 2004.

97

Oliveira, I. N. S. (2003). Metodologia para Deteco Rpida de Movimento em Seqncias de Imagens; USP, Instituto de Fsica de So Carlos, So Carlos, Brasil. Oliveira, A. G. (2000). Usando a API do Windows, Avanado no Visual Basic; Florianpolis: Ed Advanced Books. Persiano, R. C. M. & Oliveira, A. A. F. (1989). Introduo Computao Grfica; Livros Tcnicos e Cientficos Editora Ltda. Reed, Jr P. R. (2000) Desenvolvendo Aplicativos com Visual Basic e UML; So Paulo, Brasil: Ed Makron Books do Brasil Ltda. Rollof, M.L.(2004) Pesquisa e Desenvolvimento de uma Biblioteca de Processamento de Imagens Aplicada a Sistemas de Viso Embutidos; Departamento de Automao e Sistemas Universidade Federal de Santa Catarina, Florianpolis. Disponvel em: <http://www.das.ufsc.br/~ferdes/artigo_sbai2005.doc>. Acessado em: 28 agosto. 2004. Sato, F. H. (2002). Automao do Sistema de Carregamento em Ensaios Estruturais; Dissertao de Mestrado apresentada Faculdade de Engenharia de Ilha Solteira, Ncleo de Estudos e Pesquisa da Alvenaria Estrutural. Disponvel em: <http://www.feis.unesp.br/dec/nepae> Acessado em: 28 de agosto de 2005. Santos, I. S.G. & Richter, T. (2005). Controle e Deciso de Estratgias Aplicveis a Agentes Robticos Jogadores de Futebol em Ambiente Simulado e Real; Trabalho de Iniciao Cientfica apresentado Escola de Engenharia de Piracicada como trabalho de concluso do curso de Cincia da Computao. Seara, D. M. (1998) Algoritmos para Deteco de Bordas; Universidade Federal de Santa Catarina, Departamento de Informtica e Estatstica; Florianpolis. Disponvel em: <http://www.inf.ufsc.br/~visao/1998/seara/index.html>. Acessado em: 28 de agosto de 2005. Smallsize ROBOCUP (2004). Laws of the F180 League 2004 - Release 4.00. Disponvel em: <http://www.itee.uq.edu.au/%7Ewyeth/F180%20Rules/f180rules400.pdf>. Acessado em: 28 agosto de 2005. Swartzfager, G (1997). Visual Basic 5 Programao Orientada a Objeto; Rio de Janeiro, Brasil: Ed. Cincia Moderna Ltda..

98

Traina, A.J.M. & Oliveira M.C.F (2003).

Apostila de Computao Grfica; Instituto de

Cincias Matemticas e de Computao, ICMC-USP. Venetianer, T. (1998). Desmistificando a Computao Grfica; So Paulo, Brasil:Ed.McGraw Will. Novo chip dar aos robs viso artificial quase humana; Da Redao da Revista Eletrnica Inovao Tecnolgica (2005), Campinas. Disponvel em:<http://www.inovacaotecnologica. com.br/noticias/noticia.php?artigo=010180050222> . Acessado em: 28 agosto de 2005. Wangenheim, A. V. (2001). The Cyclops Project - Seminrio de Introduo Viso Computacional, Universidade Federal de Santa Catarina, Departamento de Informtica e Estatstica. Disponvel em: <http://www.inf.ufsc.br/~visao>. Acessado em: 28 de agosto de 2005.

99

10.

Anexo A
O Sistema de Cor HSI+ (Hue, Saturation and Intensity) Outubro de 2002, por Antonio Escao Scuri
(scuri@tecgraf.puc-rio.br) A descrio informal de cor pelo ser humano segue naturalmente suas capacidades

perceptuais e caracteriza uma determinada cor atravs de sua matiz, saturao e brilho. Por isso os sistemas de especificao de cor em interfaces com o usurio utilizam sistemas de cor com essas caractersticas. S que quando esses sistemas foram criados era fundamental que a converso para RGB fosse o mais rpida possvel. Com isso, os mesmos realizam vrias simplificaes que por sua vez de formam o cubo RGB, ora em um hexacone (HSV), ora em um hexacone de duas pontas (HLS). Qualquer processamento tcnico de matiz, saturao e brilho em imagens, baseado nestes sistemas, possui resultados questionveis, devido a deformao do cubo. Tambm nos sistemas HSV e HLS, quando mantm-se H e, L ou V (dependendo do sistema), fixos e varia-se S, a intensidade luminosa no se mantm constante devido a essa deformao. Assim, gostaramos de um sistema que mantivesse o espao de cor no formato de um cubo, mas posicionasse seus eixos de maneira a obter uma representao caracterizada por matiz, saturao e brilho. Esse sistema no existe na literatura, talvez por ser bvio demais e parecido demais com os outros sistemas tais como HLS e HSV. Ou talvez por no ser um sistema perceptual e essas caractersticas s fazerem sentido em sistemas perceptuais? Eu gostaria de um sistema que no deformasse o cubo, e por isso fosse inversvel. No Gonzalez existe um sistema HSI, mas deforma o cubo para duas pirmides achatando o centro do mesmo. Por isso chamamos esse de HSI+. A CIE tambm possui sistemas com essas caractersticas baseado em uma modificao do Luv. S que so sistemas perceptuais de cor e no tem relao com o cubo RGB. At por que o RGB que estamos falando aqui no est calibrado e assim no tem relao com o CIE-RGB.

100

As cores no sistema HSI+ so exatamente as mesmas do sistema RGB, ou seja, no um novo sistema de cor apenas uma re-escrita do sistema RGB. No deformando o cubo, e sendo plenamente inversvel, me pareceu ser o sistema ideal para processamento de imagens cientficas coloridas usando informaes de matiz, saturao e brilho, onde ser necessrio inverter os resultados. O sistema de coordenadas HSI+ um sistema cilndrico, que um cubo visto pela sua diagonal (0,0,0)-(1,1,1). Essa diagonal justamente o eixo de I. Assim a primeira coisa a fazer projetar o vetor c=(r,g,b) sobre a diagonal. I a distncia do ponto encontrado origem, ou o mdulo do vetor pc=(i,i,i). S a distncia do ponto (r,g,b) ao ponto (i,i,i), ou o mdulo do vetor c-pc. Em seguida criamos um plano perpendicular diagonal passando pela origem. H definido como o ngulo entre as projees de c e do r=(1,0,0) sobre nesse plano. Usando o produto vetorial:

101

O ideal seria normalizarmos S pelo seu valor mximo, que por sua vez depende de H e de I. Esse valor mximo estar sempre nas faces do cubo. Esta normalizao tornaria S coerente com a definio de saturao feita sobre o diagrama de cromaticidade. Repare que dessa forma o eixo de S possuir uma escala no linear, que reflete a prpria disponibilidade de variaes da saturao para um determinado H e I. Mas perceptualmente o resultado da normalizao torna a saturao visualmente difcil de aceitar. Assim deixamos a normalizao disponvel para uso no controle de overflow mas no usamos na converso RGB2HSI. O clculo de Smax no complicado mas trabalhoso. Deixamos a cargo do cdigo fonte. Quando S=0 ou I=1 ou I=0, H no faz sentido, por padronizao adota-se o valor de 360. Isso facilitar mais tarde a criao de uma palette para visualizao de ngulos usando cores. Quando H=0 deve coincidir com o vermelho, depois H=120o deve ser o verde, depois H=240 deve ser o azul. Escrevendo os vetores (1,0,0), (0,1,0) e (0,0,1) na base do plano u-v perpendicular a diagonal e v alinhado com R, temos:

102

Assim temos, H variando de 0 a 360 graus. Aqui vemos a funo ANSI C atan2 que permite o clculo correto do ngulo baseado em duas componentes, mas que retorna valores de a . Um outro clculo possvel para S aproveitar os eixos u e v para calcular:

OBS: Para evitar erros de quantizao e prezervar a informao RGB original importante trabalhar com nmeros de ponto flutuante.

103

11.

Anexo B

Controle e Deciso de Estratgias Aplicveis a Agentes Robticos Jogadores de Futebol em Ambiente Simulado e Real
por Santos & Richter, 2005 sob Orientao do Prof. Msc. Jos Martins Junior ( ivansalera@yahoo.com, thirichter@yahoo.com.br, jmartins@sc.usp.br )

2.1 - Futebol de Robs


A idia de robs jogando futebol data do incio da dcada de 90 quando foi mencionada por Mackworth em seu artigo On Seeing Robots [MACKWORTH, 1992]. Paralelamente s pesquisas, um grupo de pesquisadores japons organizou em outubro de 1992 o seminrio (Grand Challange in Artificial Intelligence) Principais Desafios na Inteligncia Artificial em Tokyo, Japo, para discutir possveis grandes problemas a serem abordados no campo de Inteligncia Artificial (IA). O jogo de futebol foi um assunto seriamente discutido para promover a cincia e a tecnologia e em junho de 1993 pesquisadores decidiram dar inicio s competies no Japo. Alguns meses depois, estudiosos de vrias partes do mundo solicitaram a extenso da iniciativa a um projeto internacional, surgindo, ento, a Robot World Cup (RoboCup). Atualmente existem duas organizaes internacionais principais que promovem as competies, a Federation of International Robot-soccer Association (FIRA) e a Robot World Cup (Robocup). A FIRA, iniciou suas atividades em 1995 e realizou sua primeira competio internacional em 1996 no Instituto Avanado de Cincia e Tecnologia da Coria do Sul (KAIST), Daejeon, e teve a participao de 20 equipes. A FIRA atualmente dividida em 7 categorias: Hurosot, Kheperasot, Mirosot, Narosot, Quadrosot, Robosot e Simurosot. A RoboCup iniciou suas atividades em 1993 e realizou sua primeira competio internacional de futebol de robs (Robot Soccer World Cup I) em 1997 contando com a participao de mais de 40 equipes. A RoboCup dividida atualmente em 3 domnios principais (RoboCupSoccer, RoboCupRescue e RoboCupJunior). O domnio do futebol de robs, o RoboCupSoccer, dividido em 5 categorias: Simulation League, Small Size Robot League (F180), Middle Size Robot League (F-2000), Four Legged Robot League, Humanoid League. Tanto a RoboCup quanto a FIRA possuem regulamentos especficos para cada categoria que so

104

atualizados constantemente para as competies. O desenvolvimento do projeto ser parcialmente baseado nas regras da liga F-180 da RoboCup (SMALLSIZE, 2004). Este projeto reflete, ento, um esforo mundial de pesquisa que consiste em desenvolvimento nas reas de IA e robtica inteligente atravs da adoo de um problema padro. Esse problema permite avaliar o progresso da pesquisa permitindo aprimorar teorias, algoritmos e arquiteturas onde uma grande variedade de tecnologias pode ser integrada. Os principais temas de pesquisas na atualidade, alm de inteligncia artificial, viso computacional, estratgia, planejamento e eletrnica, os quais sero abordados, so sistemas multiagentes e colaborativos, respectivamente, objetiva prover princpios para a construo de sistemas complexos envolvendo mltiplos agentes e mecanismos para coordenar o funcionamento de agentes independentes (VELOSO; STONE, 2000) e executar uma determinada tarefa de modo sincronizado envolvendo dois ou mais robs autnomos (RAUSCH; LEVI, 1996).

2.1.2 - No Brasil
O Brasil tem vrios grupos de pesquisa na rea de robtica e especificamente em futebol de robs. Algumas equipes j foram formadas e a equipe Guaran, (unio da equipe FUTEPOLI, UPUSP, e UNESP), foi vice-campe em 1998 no torneio da FIRA realizada em Paris, sendo esse o ttulo mais importante conquistado por uma equipe brasileira. Em 1999, o Brasil sediou a Copa do Mundo 99 de Robs, onde participaram diversos pases entre eles Coria do Sul, Alemanha, Inglaterra e Canad. O Brasil foi representado por trs equipes: a Bravo, de Campinas, a MineiroSoft, de Belo Horizonte, e o Carrossel Caipira, de Bauru [poca, 1999]. Outra participao significativa do Brasil no futebol de robs foi o ttulo de campeo na 2 Competio Estudantil Latino-Americana de Robs, ocorrida em Bauru, sendo a equipe Bravo campe da categoria Soccer I e vice na categoria Soccer II. A diferena dessas categorias est no tamanho dos robs. Na primeira os agentes robticos medem at 7,5 cm cbicos e, na segunda, at 180 cm cbicos, sendo classificados de F180. [UNESP, 1999].

105

2.1.3 - Ambiente Robocup


A Robocup possui inmeras regras parecidas com as regras de um jogo de futebol. Cada modalidade possui as suas e ser especificado apenas as do Smallsize, que a mais prxima do presente trabalho. As dimenses do campo so de 4900 mm de comprimento por 3400 mm de largura e tem aumentado a cada competio. O campo verde e pode ser de madeira ou coberto com um carpete. Existem linhas brancas de marcao com 10 mm de espessura. A rea de defesa demarcada com um semicrculo com raio de 500 mm. A marca do pnalti feita a 450 mm da linha do gol. Existem tambm duas barras verticais de 4000 mm que formam a estrutura onde so colocadas as luzes e cmeras. Especificaes dos objetos: A bola utilizada uma bola oficial de golfe, laranja com 46 g de massa e 43 mm de dimetro. O rob deve caber em um cilindro de 180 mm de dimetro e altura menor que 225 mm. Uma cor destinada a cada time, sendo colocada uma marca circular de 50 mm de dimetro em cima do rob. As cores branco e preto podem ser usadas livremente no rob e marcaes em verde claro, rosa claro e ciano tambm. As rodas do rob devem ser feitas em material que no danifiquem o material do campo. Dispositivos de chute so permitidos. O uso de um sistema de captura de imagens opcional que pode ficar junto com o rob ou colocado na estrutura do campo. O jogo tem durao de 20 minutos, sendo dividido em dois tempos de 10 minutos cada um. Cada time pode pedir um tempo, que seria uma interrupo no jogo. O time pode pedir no mximo quatro tempos e a soma no pode exceder 10 minutos. O gol acontece quando a bola passa, em sua totalidade, a linha do gol. No h regras para impedimento.

106

Davi Cardoso, Cincia da Computao, e-mail: davi_cardoso@terra.com.br; Vanderlei Vitrio Gomes, , Cincia da Computao, e-mail: gomes_va@terra.com.br.
Piracicaba, Novembro de 2005.

You might also like