Professional Documents
Culture Documents
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
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
Trabalho de Iniciao Cientfica do Curso de Cincia da Computao. Supervisor de estgio: Prof. Msc. Jos Martins Junior
ii
Analisado por: Orientadores: Prof. Msc. Jos Martins Junior Prof. Dra. Maria Cristina A. Batocchio Supervisor de Estgio: Prof. Msc. Jos Martins Junior
Assinatura:
Data:
/ /
/ /
iii
iv
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.
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.
vi
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.
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
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
Anlise de Imagens
Imagens ...
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).
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.
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).
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.
Sistema de Viso Humano Limitado faixa de luz visvel (300 nm 700 nm) do espectro de ondas eletromagnticas
Flexibilidade
Habilidade
Cor Sensibilidade
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
Filtragem e Pr processamento
mtodos conhecidos.
13
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
f (0,0)
K (m x n) =
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
&
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.
16
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
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.
18
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
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
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.
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
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
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.
P r ( rk ) = nk / n
onde : 0 rk 1; k
(6)
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
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
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
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
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.
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
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:
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
32
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.
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.
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.
35
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
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).
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.
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.
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
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.
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)
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.
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)
45
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.
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)
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.
48
Imagem Capturada
Imagem Filtrada
Deteco de Borda
Vetorizao da Regio
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.
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
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).
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
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
58
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.
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:
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.
63
64
65
66
67
68
69
70
71
72
// 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
73
74
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
Imagem apresentada aps a captura e aplicao dos filtros de brilho, contraste e gama.
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
78
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.
79
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
81
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
Cor
Representao Long
83
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
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
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
I Mx 36 4 4 100 4
85
86
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.
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.
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
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
92
Ponto 1
Ponto 2
Ponto 3
Check Sun
Centro Bola
Centro
Frente
Centro
Check Sun
Rob 1
Rob 2
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
93
94
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
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 )
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
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.