RECONHECIMENTO E RASTREAMENTO DE OBJETOS



Documentos relacionados
Manual Processamento de Imagem. João L. Vilaça

Processamento de Imagem. Prof. MSc. André Yoshimi Kusumoto

Aula 2 Aquisição de Imagens

SEGMENTAÇÃO DE IMAGENS EM PLACAS AUTOMOTIVAS

Universidade Federal do Rio de Janeiro - IM/DCC & NCE

Detecção e Rastreamento de Objetos coloridos em vídeo utilizando o OpenCV

Atividade: matrizes e imagens digitais

Transformada de Hough. Cleber Pivetta Gustavo Mantovani Felipe Zottis

Universidade Federal de Goiás Instituto de Informática Processamento Digital de Imagens

Capítulo II Imagem Digital

Informática Aplicada a Radiologia

CorelDRAW UM PROGRAMA DE DESIGN

FILTRAGEM ESPACIAL. Filtros Digitais no domínio do espaço

Filtragem. pixel. perfil de linha. Coluna de pixels. Imagem. Linha. Primeiro pixel na linha

Processamento e Análise de Imagens (MC940) Análise de Imagens (MO445)

Filtragem Espacial. (Processamento Digital de Imagens) 1 / 41

REPRESENTAÇÃO DA IMAGEM DIGITAL

PROCESSAMENTO DIGITAL DE IMAGENS

UFGD FCA PROF. OMAR DANIEL BLOCO 4 PROCESSAMENTO DE IMAGENS

MÓDULO 7 Modelo OSI. 7.1 Serviços Versus Protocolos

Codificação/Compressão de Vídeo. Tópico: Vídeo (Codificação + Compressão)

Engenharia de Sistemas Computacionais

Arquitetura de Rede de Computadores

4 Segmentação Algoritmo proposto

Luz e Cor. Sistemas Gráficos/ Computação Gráfica e Interfaces FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO

Fotografia digital. Aspectos técnicos

RECONHECIMENTO DE PLACAS DE AUTOMÓVEIS ATRAVÉS DE CÂMERAS IP

Visão Artificial Para a Indústria. Manual do Utilizador

Fundamentos de Hardware

UFGD FCA PROF. OMAR DANIEL BLOCO 6 CLASSIFICAÇÃO DE IMAGENS

29/08/2011. Radiologia Digital. Princípios Físicos da Imagem Digital 1. Mapeamento não-linear. Unidade de Aprendizagem Radiológica

1 Transmissão digital em banda base

Controle de Múltiplos Pivôs Centrais com um único Conjunto Motor-Bomba

RUÍDOS EM IMAGENS FILTRAGEM DE RUÍDOS. o Flutuações aleatórias ou imprecisões em dados de entrada, precisão numérica, arredondamentos etc...

Processamento de histogramas

Processamento de Imagem Morfológica (Morfologia Matemática) Tsang Ing Ren UFPE - Universidade Federal de Pernambuco CIn - Centro de Informática

UNIVERSIDADE CATÓLICA DE PETRÓPOLIS CENTRO DE ENGENHARIA E COMPUTAÇÃO

UNIVERSIDADE DO EXTREMO SUL CATARINENSE. Correção geométrica de imagens

Simulação Gráfica. Morfologia Matemática. Julio C. S. Jacques Junior

6. Geometria, Primitivas e Transformações 3D

CADEX. Consultoria em Logística Interna. Layout de armazém. Objectivos. Popularidade. Semelhança. Tamanho. Características

Tratamento da Imagem Transformações (cont.)

Aula 5 - Classificação

Universidade Federal de Pernambuco

Processamento digital de imagens. introdução

Oficina de Multimédia B. ESEQ 12º i 2009/2010

Shutter: É o tempo de exposição da foto. Pode ser fixo ou automático.

Profa. Dra. Soraia Raupp Musse Thanks to Prof. Dr. Cláudio Rosito Jung

Algoritmos e Estrutura de Dados III. Árvores

Trabalho 2 Fundamentos de computação Gráfica

Desenvolvimento de Estratégia para Programação do Futebol de Robôs da Mauá

ATENÇÃO: * Arquivos com tamanho superior a 500 KB NÃO SERÃO ACEITOS * SOMENTE serão aceitos documentos do formato: PDF

Introdução do Processamento de Imagens. Julio C. S. Jacques Junior

Operações Algébricas e Lógicas. Guillermo Cámara-Chávez

Processamento de Imagem. Prof. Herondino

Módulo de captura de imagens do sistema Scisoccer

UNIVERSIDADE FEDERAL DE SANTA CATARINA GRADUAÇÃO EM SISTEMAS DE INFORMAÇÃO DEPARTAMENTO DE INFORMÁTICA E ESTATÍSTICA DATA MINING EM VÍDEOS

Curso de Instalação e Gestão de Redes Informáticas

Guia de qualidade de cores

Sensoriamento 55. Este capítulo apresenta a parte de sensores utilizados nas simulações e nos

Classificação de Imagens

A cor e o computador. Teoria e Tecnologia da Cor. Unidade VII Pág. 1 /5

2.1.2 Definição Matemática de Imagem

1 Problemas de transmissão

Funções de Posicionamento para Controle de Eixos

REGRAS GERAIS REDE 2 horas e 30 minutos. Os desafios deverão ser entregues conforme instrução: Exemplo: desafio1_equipepentagrama

MORFOLOGIA MATEMÁTICA. Adair Santa Catarina Curso de Ciência da Computação Unioeste Campus de Cascavel PR

Chow&Kaneko buscam as modas da imagem para separar os objetos. Admite que os tons na vizinhança de cada moda são do mesmo objeto.

VCA Treinamento em Algoritmo

)LJXUD8PGRVSDUHV'SDUDFRQYROXomRTXHWHPRPHVPRHIHLWRGR NHUQHOGD)LJXUD

Organização e Arquitetura de Computadores I

Fluxo de trabalho do Capture Pro Software: Indexação de OCR e separação de documentos de código de correção

O ESPAÇO NULO DE A: RESOLVENDO AX = 0 3.2

O tornado de projeto é admitido, para fins quantitativos, com as seguintes características [15]:

FILTRAGEM NO DOMÍNIO DAS FREQUÊNCIAS (TRANSFORMADA DE FOURIER) Daniel C. Zanotta 04/06/2015

Fundamentos de Imagens Digitais. Aquisição e Digitalização de Imagens. Aquisição e Digitalização de Imagens. Aquisição e Digitalização de Imagens

Título: Controle de um sistema Bola- Barra com realimentação através de imagem

PROJETO DE REDES

Visão humana. Guillermo Cámara-Chávez

Francisco Ramos. 100 Problemas Resolvidos de Matemática

TRANSMISSOR ECF. Sistema de transmissão de arquivos Nota Fiscal Paulista. Manual de Utilização

Departamento de Matemática - UEL Ulysses Sodré. Arquivo: minimaxi.tex - Londrina-PR, 29 de Junho de 2010.

Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES

Modelagem Digital do Terreno

O Laboratório de Garagem

Multiplexador. Permitem que vários equipamentos compartilhem um único canal de comunicação

Coerência temporal: Uma característica importante

PONTIFÍCIA UNIVERSIDADE CATÓLICA DO PARANÁ

FACULDADE DE ENGENHARIA DE COMPUTAÇÃO. PROJETO FINAL I e II PLANO DE TRABALHO <NOME DO TRABALHO> <Nome do Aluno> <Nome do Orientador>

PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO DE JANEIRO DEPARTAMENTO DE INFORMÁTICA PÓS GRADUAÇÃO EM INFORMÁTICA

Universidade Federal de Alagoas Instituto de Matemática. Imagem. Prof. Thales Vieira

WEBGIS Sistema Informativo Territorial

Análise e Projeto Orientados por Objetos

Sistemas Operacionais e Introdução à Programação. Vetores e matrizes

Thales Trigo. Formatos de arquivos digitais

Pesquisa e organização de informação

2. Função Produção/Operação/Valor Adicionado

Classificação da imagem (ou reconhecimento de padrões): objectivos Métodos de reconhecimento de padrões

Transcrição:

UNIVERSIDADE CATÓLICA DE GOIÁS DEPARTAMENTO DE COMPUTAÇÃO GRADUÇÃO EM CIÊNCIA DA COMPUTAÇÃO RECONHECIMENTO E RASTREAMENTO DE OBJETOS ANA CAROLINA CORREIA RÉZIO DEZEMBRO, 2008

UNIVERSIDADE CATÓLICA DE GOIÁS DEPARTAMENTO DE COMPUTAÇÃO GRADUÇÃO EM CIÊNCIA DA COMPUTAÇÃO RECONHECIMENTO E RASTREAMENTO DE OBJETOS Trabalho de Trabalho de Conclusão de Curso apresentado por Ana Carolina Correia Rézio à Universidade Católica de Goiás, como requisito parcial para obtenção do título de Bacharel em Ciência da Computação aprovado em 12/12/2008 pela Banca Examinadora: Professor Alexandre Ribeiro, MsC. UCG Orientador Professor Leandro Luis Galdino de Oliveira, Dr. UCG Professor Augusto Silva. UCG ii

RECONHECIMENTO E RASTREAMENTO DE OBJETOS ANA CAROLINA CORREIA RÉZIO Trabalho de Conclusão de Curso apresentado por Ana Carolina Correia Rézio à Universidade Católica de Goiás Departamento de Computação, como parte dos requisitos para obtenção do título Bacharel em Ciência da Computação. Professor Alexandre Ribeiro, MsC Orientador Professor Jeová Martins Ribeiro, MsC Coordenador do TCC iii

DEDICATÓRIA Dedico este trabalho, aos meus pais, Ana Lúcia e José Rézio pelo amor, carinho, dedicação, compreensão e principalmente por acreditarem em meu sucesso e ajudarem a realizar mais um dos meus sonhos. consideração. Ao meu amigo e professor Alexandre Ribeiro pela amizade, companheirismo e iv

EPÍGRAFE O sucesso nasce do querer, da determinação e persistência em se chegar a um objetivo. Mesmo não atingindo o alvo, quem busca e vence obstáculos, no mínimo fará coisas admiráveis. José de Alencar v

AGRADECIMENTOS Agradeço primeiramente a Deus por ter me sustentado durante todo esse período. Agradeço aos meus pais, irmãos e cunhada, pelo amor, carinho, paciência e apoio em todos os momentos, principalmente naqueles em que tive que dedicar parte do meu tempo a este projeto. Agradeço aos meus professores e orientadores Augusto Silva e Alexandre Ribeiro pela paciência, atenção e dedicação oferecida. Agradeço ao Alexandre Ribeiro, que desde meu ingresso à universidade, esteve ao meu lado, incentivando, apoiando e aconselhando em todos os aspectos. À minha amiga Maressa, agradeço pela amizade, confiança, apoio, incentivo e pelos bons momentos proporcionados. E aos demais, agradeço pela compreensão, apoio, carinho, amizade e companheirismo em especial ao Max, Jean, Yuriana, Thiago Rodrigues, Iury, Paulo e Shilene. vi

RESUMO Este trabalho tem como propósito o estudo e a apresentação de algumas técnicas de rastreamento de padrão fundamentadas na teoria de visão computacional. Com o objetivo de contextualizar o projeto de futebol de robôs promovido pela FIRA [6], dentre as técnicas apresentadas, a escolhida foi baseada na representação das cores dos objetos (Algoritmo CamShift). O algoritmo utiliza técnicas de processamento para localizar e identificar os alvos pertencentes à cena do jogo e assim, determinar suas trajetórias baseando-se na distribuição das cores e na semelhança com um modelo especificado. O principal objetivo é garantir que as ações atribuídas a cada robô serão executadas corretamente. Palavras-chave: Visão Computacional, Rastreamento de Objetos e Algoritmo CamShift. vii

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

RECONHECIMENTO E RASTREAMENTO DE OBJETOS SUMÁRIO LISTA DE FIGURAS... xii LISTA DE TABELAS... xiii LISTA DE ABREVIATURAS E SIGLAS... xiv LISTA DE SÍMBOLOS... xv 1. INTRODUÇÃO... 1 1.1. Visão Computacional... 2 1.2. Caracterização do problema... 2 1.3. Objetivos do projeto... 3 1.4. Estrutura e conteúdo do trabalho... 4 1.5. Conclusão... 4 2. PROCESSAMENTO DIGITAL DE IMAGENS... 6 2.1. Aquisição da Imagem... 6 2.1.1. Digitalização da Imagem... 6 2.2. Espaço de cores... 7 2.2.1. Escala de cinza... 7 2.2.2. Espaço RGB... 8 2.2.3. Espaço HSV... 9 2.3. Convolução... 10 2.4. Filtro Gaussiano... 10 2.5. Segmentação... 11 2.5.1. Subtração... 11 2.5.2. Binarização... 12 2.6. Morfologia Matemática... 12 2.6.1. Dilatação... 12 2.6.2. Erosão... 13 2.6.3. Abertura... 14 ix

2.6.4. Fechamento... 15 2.7. Conectividade... 15 2.8. Histograma... 16 2.9. Retroprojeção... 17 2.10. Conclusão... 17 3. FUTEBOL DE ROBÔS... 19 3.1. Estrutura Física Definida... 19 3.2. Estrutura Funcional... 20 3.3. Conclusão... 21 4. SISTEMA FUNCIONAL... 22 4.1. Subsistema de Visão Computacional... 22 4.1.1. Segmentação dos Alvos... 23 4.2. Subsistema Estrategista... 25 4.3. Subsistema de Comando e Comunicação... 25 4.4. Conclusão... 25 5. RASTREAMENTO DE OBJETOS... 27 5.1. Segmentação pelo Contorno... 27 5.1.1. Modelo de Observação... 27 5.1.2. Modelo de Movimento... 29 5.1.3. Estimação do Movimento... 31 5.1.4. Estimação da Forma... 32 5.2. Segmentação pela Cor... 33 5.2.1. Mean-Shift... 33 5.2.2. CamShift... 35 5.3. Algoritmos Estudados... 37 5.3.1. Algoritmo de BEM e COSTA... 37 5.3.1.1. Etapas do Algoritmo... 38 5.3.2. Algoritmo de CamShift... 39 5.3.2.1. Etapas do Algoritmo... 39 5.4. Avaliação dos Algoritmos... 40 5.4.1. Avaliação do CamShift... 40 5.4.2. Avaliação do Filtro de Kalman... 41 5.5. Conclusão... 41 x

6. ESTRUTURA DO CENÁRIO... 42 6.1. Estrutura Utilizada... 42 6.2. Ferramentas e Componentes... 44 6.2.1. Biblioteca OpenCV... 44 6.2.1.1. CxCore... 45 6.2.1.2. Cv... 46 6.2.1.3. Highgui... 46 6.2.1.4. CvAux... 47 6.3. Métodos e funções... 47 6.4. Conclusão... 48 7. APLICAÇÃO DESENVOLVIDA... 49 7.1. Localização... 49 7.2. Identificação... 56 7.3. Rastreamento... 58 7.4. Resultados... 60 7.5. Conclusão... 61 8. CONCLUSÃO... 63 REFERÊNCIAS BIBLIOGRÁFICAS... 65 APÊNDICE... 67 xi

LISTA DE FIGURAS Figura 1 Processo de digitalização da imagem.... 7 Figura 2 Imagem na escala de cinza... 7 Figura 3 Espaço de cores RGB[10]... 8 Figura 4 Espaço de cores HSV[10]... 9 Figura 5 Processo de convolução a) Primeiro passo. b) Segundo passo.... 10 Figura 6 Processo de Dilatação[9]... 13 Figura 7 Processo de Erosão[9]... 14 Figura 8 Processo de Abertura[9]... 14 Figura 9 Processo de Fechamento[9]... 14 Figura 10 Vizinhança... 16 Figura 11 Cenário de uma partida de futebol robótico segundo categoria MiroSot [6]... 18 Figura 12 Medidas e marcações segundo as regras da Mirosot[6]... 19 Figura 13 Esquema do funcionamento do futebol de robôs [17]... 20 Figura 14 Etapas do sistema de visão computacional... 22 Figura 15 Técnicas de processamento.... 24 Figura 16 Estimativa do contorno dos alvos [18].... 28 Figura 17 Região de interesse, centro de massa e vetor Mean-Shift[22]... 33 Figura 18 Convergência no procedimento de Mean-Shift [22]... 34 Figura 19 Fluxograma do algoritmo CamShift [8]... 35 Figura 20 Cenário utilizado no projeto... 42 Figura 21 Definição das marcas superiores do robô... 43 Figura 22 Objetos da cena.... 43 Figura 23 OpenCV: Arquitetura e seus componentes[7]... 45 Figura 24 Diagrama de atividade.... 49 Figura 25 Subtração... 50 Figura 26 Resultado da subtração... 50 Figura 27 Algoritmo da subtração entre imagens... 51 Figura 28 Máscara de convolução gaussiana... 52 Figura 29 Função de convolução gaussiana... 52 Figura 30 Filtro Gaussiano... 53 Figura 31 Resultado da aplicação do Filtro Gaussiano... 53 Figura 32 Binarização... 53 Figura 33 Resultado da binarização... 54 Figura 34 Resultado da abertura... 54 Figura 35 4-Conectividade... 55 Figura 36 Resultado da 4-conectividade... 55 Figura 37 Conversão RBG para HSV... 56 Figura 38 Imagem no espaçohsv... 57 Figura 39 Histograma de cor... 57 Figura 40 (a) Back-Projection (b) Identificação... 57 Figura 41 Processo de rastreamento... 58 Figura 42 Cores menos saturadas e mais escuras... 60 Figura 43 Cores mais saturadas e mais claras... 61 xii

LISTA DE TABELAS Tabela 1 Especificações de hardware... 44 xiii

LISTA DE ABREVIATURAS E SIGLAS CAMSHIFT Continuously Adaptive Mean Shift Algorithm. CCD Charge Coupled Device. CTI Centro Tecnológico da Informática. FIRA Federation of International Robotsoccer Association. HSV Hue, Saturation e Value. MAP Máximo a posterioi. MIROSOT MicroRobot Soccer Tournament. OpenCV Open Source Computer Vision Library. RGB Red, Green e Blue. ROBOCUP Robot World Cup Initiative. xiv

LISTA DE SÍMBOLOS Processo de dilatação. Processo de erosão. N 4 N d N 8 u s A P, Processo de abertura. Processo de fechamento. 4-Vizinhos. 4-Vizinhos diagonais. 8-Vizinhos diagonais. Função Base. Ponto na Imagem. Ponto central. Velocidade de translação. Fator de escala. Matriz de rotação e mudança de escala. Representa o estado do contorno. O vetor de estado do movimento do alvo. Matriz de covariância. Ganho de Kalman. Vetor de observação do sistema. Ruído da observação. Número de robôs da equipe. Momento ou instante. Probabilidade do pixel (x,y). (, ) Centróide da região de interesse. xv

1 RECONHECIMENTO E RASTREAMENTO DE OBJETOS CAPÍTULO I INTRODUÇÃO O projeto de futebol de robôs foi criado em 1996 pelo professor Jong-Hwan Kim do Departamento de Engenharia Elétrica do Kaist, da República da Coréia do Sul. Em 1997, o Instituto de Automação da Fundação Centro Tecnológico da Informática (CTI), Campinas-SP, trouxe a idéia para o Brasil [1]. Atualmente, os principais times existentes no Brasil são o UFPR e o Guaraná. Este último, resultado da união entre as equipes FUTEPOLI (EPUSP) e UNESP (UNESP-Bauru), foi vice-campeão do campeonato mundial realizado na França em 1998 [2]. Os campeonatos de futebol de robôs podem ser regulamentados por dois órgãos, o ROBOCUP (Robot World Cup Initiative) e a FIRA (Federation of International Robotsoccer Association), ambos com os mesmos objetivos: desenvolver um time de robôs capazes de jogar contra um time de seres humanos. No presente projeto a FIRA foi adotada por ter suas normas aceitas pela maioria das instituições acadêmicas do Brasil. O jogo regulamentado por essa federação possui suas regras especificadas de acordo com a categoria adotada [3]. Dentre as áreas de desenvolvimento propícias para este projeto, destacam-se a Robótica, Visão Computacional e a Inteligência Artificial. Embasado nas teorias de visão computacional e com o objetivo de dar continuidade e aperfeiçoamento na técnica utilizada para o processamento de imagens, do projeto de MELO e FERREIRA [4], foi proposto o presente trabalho tendo como enfoque o processo de rastreamento de objetos. O objetivo é localizar, identificar e rastrear um ou mais objetos pertencentes à cena do jogo a partir de uma seqüência de imagens capturadas por uma câmera de vídeo cuja principal restrição é o processamento em tempo real.

2 Durante uma partida de futebol, a central de processamento de cada equipe é responsável pelo reconhecimento de imagens, rastreamento de objetos, processamento dos dados e transmissão das informações [4]. Um dos problemas cruciais é o rastreamento da trajetória do robô devido à necessidade de garantir que as instruções enviadas para cada robô sejam realizadas corretamente. A área de fundamental importância para solucionar este problema é a Visão Computacional (Seção 1.1). O conteúdo abordado é de grande importância para sistemas inteligentes, principalmente no que refere às inferências realizadas sobre o ambiente. Tais sistemas inteligentes podem ser utilizados em várias aplicações entre elas: sistema de segurança, sistema de vigilância, análise de movimentos humanos, sistema de detecção e rastreamento de pedestres ou veículos, dentre outros [5]. 1.1. Visão Computacional A visão computacional abrange uma variedade de técnicas e métodos para reconhecimento e rastreamento de imagem [4]. Seu objetivo consiste principalmente na determinação das características dos objetos representados em uma imagem, distinguindo-os pelas suas cores e formas. Através da visão computacional, uma imagem captada de um cenário por um sensor óptico (câmera), pode ser tratada e nela podem ser identificados objetos por meio de padrões (por exemplo, a cor e a forma). Este objeto reconhecido pode ter sua trajetória monitorada através de algoritmos de reconhecimento e rastreamento de alvos. Tais algoritmos consistem basicamente em associar modelos definidos quadro-a-quadro em uma seqüência de imagens processadas a fim de descrever o movimento de um ou mais objetos em uma cena, ou ainda, gerar inferência sobre este movimento [1]. 1.2. Caracterização do problema O campeonato de futebol de robôs promovido pela Federação Internacional de Associações de Futebol Robótico (FIRA), fundada por pesquisadores coreanos, é dividido em categorias, dentre elas a categoria Mirosot (MicroRobot Soccer Tournament) [6].

3 Na categoria Mirosot os jogos são disputados entre duas equipes, composta cada qual por três robôs em formato de cubo, um computador e um sensor óptico (câmera de vídeo digital) para captar as informações. Nesta categoria existem ainda três sub-categorias Small League, Middle League e Large League, diferindo no número de robôs, 3, 5 e 7 respectivamente, e no tamanho do campo 150cm x 130cm, 220cm x 180cm e 280cm e 220cm respectivamente. A sub-categoria escolhida, por exigir menos recursos, foi a Small League. De posse das informações e da identificação dos elementos padronizados dentro do campo de visão [4], surge a necessidade de determinar suas trajetórias. Essas trajetórias são determinadas a fim de obter-se a direção, sentido e velocidade de cada objeto, garantindo o monitoramento do ambiente. O resultado deste processamento é utilizado para definir a melhor estratégia a ser aplicada e garantir que as decisões, tomadas pelo sistema estrategista e enviadas via rádio ao sistema de comunicação, serão traduzidas em ações aplicadas de forma eficiente. O problema resume-se no rastreamento de alvos em movimento que é obtido pelo reconhecimento de objetos através das imagens fornecidas pelas câmeras de vídeo. Cada imagem da seqüência deste vídeo é denominada de quadro. Baseado nas teorias de visão computacional e nas técnicas de rastreamento, este projeto consiste na pesquisa e análise teórica sobre o tema e na implementação de um algoritmo de rastreamento. Foram estudadas duas técnicas de rastreamento de objetos sendo uma baseada no contorno do objeto e a outra baseada na cor (vide Capítulo 5). O processo de localização e identificação foi realizado segundo algumas adaptações aos passos proposto por BEM e COSTA e o processo de rastreamento utilizado, devido ao seu desempenho, foi o algoritmo CAMSHIFT (Continuously Adaptive Mean Shift Algorithm) que baseia-se na cor do objeto identificado. 1.3. Objetivos do projeto O objetivo do projeto consiste em implementar um algoritmo para aquisição e análise da imagem com padrões reconhecidos para então determinar a trajetória do objeto

4 identificado, a fim de garantir, por exemplo, que as ações que foram definidas pelo sistema de estratégia serão executadas corretamente pelos robôs. As atividades realizadas no projeto foram: apresentação teórica do módulo de visão computacional; estudo e análise de algoritmos de rastreamento de alvos; implementação de uma aplicação que a partir de um ou mais objetos reconhecidos por padrões estabelecidos rastreie as suas trajetórias; 1.4. Estrutura e conteúdo do trabalho O presente trabalho está estruturado de forma a ilustrar a teoria envolvida no estudo do tema, visão computacional. O Capítulo 2 apresenta os fundamentos do processamento digital de imagens essenciais para entendimento da aplicação desenvolvida. O Capítulo 3 apresenta de forma detalhada os sistemas envolvidos no jogo de futebol de robôs, as regras e os padrões utilizados. No Capítulo 4 é apresentada uma visão detalhada sobre o sistema funcional e seus subsistemas, dentre eles o subsistema de visão computacional e sua aplicação no problema a ser tratado. O Capítulo 5 apresenta um estudo e a análise de duas técnicas de rastreamento de objetos, dentre elas, a que foi utilizada. Toda estrutura do cenário, ferramentas e componentes utilizados para simulação são especificados no Capítulo 6. O Capítulo 7 contém os detalhes da implementação utilizada para o desenvolvimento da aplicação e os resultados alcançados. O Capítulo 8 apresenta a conclusão dos estudos e as sugestões para os trabalhos futuros. 1.5. Conclusão Utilizando a teoria de visão computacional, os objetos pertencentes a uma determinada cena, capturada por uma câmera de vídeo, podem ser identificados e diferenciados pela suas cores e formas. Além disso, estes objetos podem ter sua trajetória determinada a partir das técnicas de rastreamento de objetos apresentadas no Capítulo 5. Neste projeto, a técnica escolhida e detalhada nos próximos capítulos é realizada a partir da segmentação das cores

5 [7][8]. Esta técnica foi escolhida devido principalmente ao desempenho computacional proporcionado. Este trabalho está contextualizado no ambiente do projeto de futebol de robôs promovido pela FIRA. Os detalhes da estrutura física e funcional do jogo de futebol de robôs são apresentados no Capítulo 3 e a fundamentação teórica, necessária para o entendimento da aplicação desenvolvida, é apresentada no próximo capítulo.

6 CAPÍTULO II PROCESSAMENTO DIGITAL DE IMAGENS As seções contidas neste capítulo têm por objetivo apresentar os fundamentos da imagem digital que servirão como suporte para compreensão dos próximos capítulos. 2.1. Aquisição da Imagem A aquisição da imagem é realizada a partir de um sensor e um digitalizador, onde o sensor é responsável por converter a informação óptica em sinal elétrico e o digitalizador transformará a imagem analógica em imagem digital. Assim, o resultado dessa etapa produzirá uma imagem digitalizada (Seção 2.1.1), ou seja, uma representação numérica adequada para o processamento digital. Normalmente, os sensores utilizados nas câmeras digitais são monocromáticos, ou seja, a radiação emitida é produzida por apenas uma cor (um comprimento de onda). O sensor CCD (Charge Coupled Device) encontrado na Webcam empregada no projeto é um exemplo de sensor monocromático. Esse sensor transforma a luz refletida em sinais elétricos que serão convertidos em bits pelo conversor analógico-digital ou digitalizador [9]. 2.1.1. Digitalização da Imagem A digitalização da imagem consiste basicamente de três passos. A partir da imagem original analógica (Figura 1-a) é realizado o processo de amostragem no qual a imagem é amostrada à matriz de pixel (Figura 1-b). Depois de realizada a amostragem inicia o processo de ponderação, onde cada pixel da imagem (ou amostra) é ponderado (Figura 1-c). O último passo consiste da quantização no qual os pixels são convertidos à forma numérica (Figura 1- d).

7 Figura 1 Processo de digitalização da imagem. FONTE: Desconhecida 2.2. Espaço de cores Embora a imagem seja monocromática, a cor pode ser registrada através de filtros de cor. A descrição de algumas teorias relacionada à escala de cinza e aos espaços de cores RGB (Red, Green, Blue) e HSV (Hue, Saturation, Value) se faz necessária para o melhor entendimento dos algoritmos relacionados. 2.2.1. Escala de cinza A imagem monocromática, resultante da digitalização, pode ser descrita em sua forma matricial como uma função de intensidade luminosa f(x,y), sendo x e y coordenadas espaciais, e o valor da função no ponto (x,y) é proporcional ao brilho (ou nível de cinza) da imagem naquele ponto (Figura 2) [9]. Figura 2 Imagem na escala de cinza

8 A imagem apresentada (Figura 2) pode ser considerada como uma matriz, no qual os índices de linha e de coluna identificam um ponto da imagem, e o correspondente da matriz identifica o nível de cinza daquele ponto. Nesta matriz, cada elemento é chamado de pixel. Como pode ser observado, este espaço de cor apresenta um único canal, o nível de cinza, este canal representa a variação de intensidade do valor preto para o branco. Este valor pode ser obtido por uma imagem no espaço RGB, apresentada próxima seção, atribuindo-se o mesmo valor para os canais R, G e B [9]. 2.2.2. Espaço RGB No espaço de cores RGB cada pixels da imagem digital é dividido em três canais de cores RGB (vermelho, verde e azul). Cada canal varia de 0 a 255, que corresponde a intensidade da cor, no qual o 0 representa a ausência de cor (preto), enquanto que o 255 representa a tonalidade máxima dessa cor (branco) [10]. Este espaço utiliza um sistema de coordenadas R, G, B, cujo subespaço de interesse é representado pelo cubo unitário ilustrado na Figura 3. Figura 3 Espaço de cores RGB[10] As cores primárias RGB são aditivas. A diagonal principal do cubo (vide Figura 3), que vai do preto ao branco, representa a escala de cinza e possui quantidades iguais de cores primarias.

9 2.2.3. Espaço HSV O modelo HSV (Hue, Saturation, Value) possui a componente de intensidade V desacoplada da informação de cor na imagem e as componentes matiz (H) e saturação (S) são relacionadas à percepção humana de cores [10]. O termo hue (matiz) distingue entre azul, ciano, verde, amarelo, vermelho e magenta; representa a cor da imagem. A saturation da cor, denominada pureza ou saturação, indica o afastamento da cor. Uma cor vermelha pura é altamente saturada enquanto o rosa é pouco saturada. O value (brilho) representa a intensidade da luz refletida pela superfície dos objetos [11]. O sistema de coordenadas é um cilindro, e o subconjunto sobre o qual o modelo é definido é um hexágono, ou uma pirâmide de seis lados como ilustrado na Figura 4. Figura 4 Espaço de cores HSV[10] O eixo V representa a escala de tons de cinza, no qual o ponto V = 0 e S = 0 corresponde ao preto e V = 1 e S = 0 ao branco. No topo do hexágono encontram-se as cores de maior intensidade. A matiz é fornecida pelo ângulo ao redor do eixo vertical, sendo o vermelho igual a 0º, o amarelo 60º e assim por diante. O valor da saturação (eixo V) varia entre 0 a 1.

10 2.3. Convolução A convolução é uma operação na qual uma máscara (elemento estruturante) g(x,y) percorre a imagem f(x,y) desde o seu canto superior esquerdo até seu canto inferior direito (vide Figura 5). A cada posição relativa da máscara sobre a imagem, o pixel central da subárea da imagem naquele instante será substituído pelo valor calculado na Equação 1 [12].,,, (1) Figura 5 Processo de convolução a) Primeiro passo. b) Segundo passo. FONTE: Desconhecida 2.4. Filtro Gaussiano O filtro gaussiano é aplicado para melhorar a qualidade da imagem de entrada, eliminando características indesejáveis como sujeira no dedo, excesso ou pouca força aplicada pelo dedo no sensor entre outras, as quais podem induzir a erros de análise. O objetivo do filtro é suavizar os valores associados a cada pixel [13]. Este filtro é definido por uma máscara gaussiana quadrada, nos quais os coeficientes são proporcionais a uma densidade gaussiana bivariada de média nula e matriz de covariância. Após definida, inicia o processo de convolução (Seção 2.3), na qual a máscara é utilizada para calcular o desvio do pixel central em relação aos vizinhos na janela [13]. Todos os pixels são visitados e posicionados no centro da janela e um novo valor para o pixel é obtido a partir da Equação 2.,,, (2)

11 onde:, e, é a constante de padronização que garante, 1; é o tamanho (ímpar) da máscara; é o espalhamento da densidade gaussiana. Quanto maior o espalhamento, maior será o efeito da borragem da imagem. 2.5. Segmentação A segmentação de imagem consiste em dividir a imagem em dois ou mais subconjuntos (segmentos: objetos e regiões) de acordo com um determinado critério. Desta forma, cada subconjunto é composto pelos pixeis da imagem que satisfazem uma mesma condição, que pode ser por exemplo, ter a mesma cor, ter a mesma textura, apresentar transições bruscas, entre outros. Dentre as técnicas mais conhecidas destacam-se a detecção de descontinuidade, a detecção de limiares (binarização), a segmentação baseada em regiões (subtração) e watersheds [14]. 2.5.1. Subtração O processo de subtração entre duas imagens digitalizadas consiste de uma operação aritmética na qual o resultado é a diferença dos valores de intensidade entre as duas imagens. A segmentação por subtração de fundo consiste em subtrair a imagem atual de uma imagem de referência, a qual apresenta apenas o fundo da cena. O resultado desta subtração são os objetos não pertencentes ao fundo, ou seja, os objetos que estão em movimento no cenário. Um problema muito comum encontrado neste processo é a mudança da iluminação. Caso ocorra variação da iluminação, depois de adquirida a imagem de referência, os pixels pertencentes ao fundo podem ser definidos como pertencentes ao objeto por distanciarem do brilho original. Por isso, para se obter um bom resultado é necessário manter a iluminação constante [4].

12 2.5.2. Binarização O processo de binarização é realizado a partir da técnica de detecção de limiares. Essa técnica é uma das técnicas mais simples de segmentação e consiste em agrupar os diferentes objetos e regiões da imagem conforme a similaridade de tonalidades entre os mesmos [14]. A operação de limiarização corresponde à definição de um valor L de limiar para o nível de intensidade luminosa ao qual se deseja realizar o ponto de corte (binarização) da imagem [14]. Um limiar (L) utilizado na imagem de 256 tons de cinza significa que todas as tonalidades onde f(x,y) < L tornam-se informação de fundo da imagem (valor 0 binário, ou cor preta). Os demais valores (f(x,y) >= L) tornam-se correspondente aos objetos da imagem (valor 1 binário ou cor branca). 2.6. Morfologia Matemática A morfologia matemática tem como objetivo extrair características importantes da estrutura de alguns componentes da imagem. Esta morfologia baseia-se principalmente na teoria de conjunto e em operações lógicas e é mais utilizada em imagens binárias [14]. Dentre os operadores morfológicos mais comuns encontram-se a erosão, dilatação, abertura e fechamento, apresentadas nas próximas seções. De modo geral, os operadores baseiam-se no conceito da aplicação de um elemento estruturante percorrendo sobre uma imagem, de modo análogo ao que ocorre com as máscaras de convolução apresentada na Seção 2.3. 2.6.1. Dilatação A dilatação é o processo no qual se aplica um elemento estruturante de forma homocêntrica sobre um conjunto definido de pontos (brancos ou pretos) em uma imagem, de modo que o elemento estruturante adicione informações sobre a vizinhança destes pontos. Isso significa que o elemento estruturante desliza sobre um conjunto de pontos dilatando sua vizinhança numa proporção que varia conforme as dimensões do elemento. Esta operação é

13 mais utilizada quando se deseja preencher intervalos e lacunas indesejáveis na imagem [9, 14]. A Figura 6 ilustra o resultado do processo de dilatação ( ), no qual representa a imagem, representa o elemento estruturante e equivale sua reflexão. Figura 6 Processo de Dilatação[9] 2.6.2. Erosão A operação de erosão é o inverso da dilatação. Neste caso o elemento estruturante é aplicado a fim de retirar informação gerando erosão nas áreas percorridas, ao invés de dilatar a vizinhança do ponto percorrido inserindo informação como acontece na dilatação. Essa operação é mais utilizada para eliminar detalhes irrelevantes, como ruídos, e abrir intervalos ou lacunas em regiões de conexão indesejada [9, 14]. A Figura 7 ilustra o resultado do processo de erosão ( ), no qual representa a imagem, representa o elemento estruturante e equivale sua reflexão.

14 Figura 7 Processo de Erosão[9] 2.6.3. Abertura A operação de abertura ( ) é derivada das operações de dilatação e erosão. Esta operação consiste da aplicação da erosão seguida da dilatação. Através da erosão, a abertura elimina pequenos ruídos na imagem e abre lacunas em regiões de fraca conexão entre objetos, e posteriormente tenta restaurar as dimensões reais dos objetos da imagem através da dilatação. Os ruídos e as fracas conexões eliminados com a operação de erosão não retornam à imagem depois de realizado a dilatação [9] [14]. Vide Figura 8. Figura 8 Processo de Abertura[9]

15 2.6.4. Fechamento A operação de fechamento é derivada das operações de dilatação e erosão. Esta operação consiste na aplicação da dilatação seguida da erosão, processo inverso da operação de Abertura. Objetivo desta operação visa restaurar conexões fracas entre os objetos da imagem [9][14]. O processo ( ) é ilustrado na Figura 9. Figura 9 Processo de Fechamento[9] 2.7. Conectividade Antes de falar do conceito de conectividade é importante definir o que vem ser vizinhança. Um pixel p, de coordenadas (x, y), tem 4 vizinhos horizontais e verticais, cujas coordenadas são (x+1, y), (x-1, y), (x, y+1) e (x, y-1). Os 4-vizinhos são formados por estes pixels de p, também designado por N 4 (p), vide Figura 10-a [9]. Os quatros vizinhos diagonais de p são os pixels de coordenadas (x-1, y-1), (x-1, y+1), (x+1, y-1) e (x+1, y+1), e constituem o conjunto N d (p), vide Figura 10-b. Já os 8-vizinhos de p é definida por: N 8 (p) = N 4 (p) N d (q), conforme Figura 10-c.

16 (a) (b) (c) Figura 10 Vizinhança Conectividade é um importante conceito utilizado para estabelecer limites de objetos e componentes de regiões na imagem. Para determinar se dois pixels estão conectados, é necessário determinar se eles são vizinhos (adjacentes) segundo algum critério e se obedecem a um critério de similaridade dentro de uma escala de cor, ou seja, seus valores estão dentro de um conjunto pré-estabelecido de valores de cinza [9]. Considerando V = {G1, G2,..., Gk} como o conjunto de k valores de níveis de cinza utilizado para definir a conectividade. São definidos três tipos de conectividade: 4-conectividade: dois pixels p e q com valores em V e q є N 4 (p); 8-conectividade: dois pixels p e q com valores em V e q є N 8 (p); m-conectividade: dois pixels p e q com valores em V e: i) q є N 4 (p) ou ii) q є N d (p) e N 4 (p) N 4 (q) = Em resumo: dois pixels podem ser 4-vizinhos, mas somente serão considerados 4- conectados se possuírem o mesmo valor. 2.8. Histograma O histograma de uma imagem, também conhecido como função de distribuição de freqüência (probabilidade), é muitas vezes representado por um gráfico de barras que mostra a quantidade de pixels que representam um determinado nível de cinza. Através do histograma de uma imagem pode-se obter uma idéia da qualidade da imagem com relação ao seu nível de contraste e brilho [9].

17 Para cada nível de cinza, pertencente à imagem, a probabilidade é calculada por: (3) Onde: é o k-ésimo nível de cinza (0 1); é o número de pixels na imagem com o nível de cinza ; é a probabilidade do k-ésimo nível; n é o número total de pixels na imagem e; k = 0, 1, 2,..., L 1, onde L é o número de níveis de cinza da imagem digitalizada. 2.9. Retroprojeção A retroprojeção é produzida por uma imagem colorida e um histograma de cor normalizado. A imagem resultante é também chamada de Back-Projetcion. Esta imagem consiste da distribuição de probabilidade de um modelo na imagem colorida, ou seja, cada pixel da imagem contém a probabilidade do mesmo pertencer às cores representadas pelo histograma. No caso em que se tem a certeza de pertencer o valor é 255. No caso de não pertencer o valor é zero. Os demais valores correspondem a proximidade da cor com o histograma, resultando em uma imagem com a probabilidade para cada pixel (i,j) [15]. 2.10. Conclusão O conteúdo apresentado neste Capítulo está relacionado a processamento digital de imagem e a visão computacional. Aqui foram descritas as características da imagem, o processo de aquisição, a conversão para o formato digital, as principais propriedades e algumas técnicas de segmentação e operações que podem ser realizadas sobre imagem. Os conceitos e definições abordados serão utilizados nos próximos Capítulos e é de fundamental importância para o entendimento da aplicação desenvolvida (vide detalhes no Capítulo 7).

18 CAPÍTULO III FUTEBOL DE ROBÔS Este Capítulo tem como documentação básica as regras especificadas segundo a categoria MiroSot [6]. Em 1998, com o início dos campeonatos de futebol de robôs, surgiu a necessidade de criar regras definidas para garantir a compatibilidade dos times. Pesquisadores coreanos fundaram então a Federation of International Robotsoccer Association (FIRA). Atualmente a FIRA possui as categorias: HuroCup, KheperaSot, MiroSot, NaroSot, AndroSot, RoboSot e SimuroSot. Em cada categoria são estabelecidas especificações como cores, medidas e marcações dos objetos. A categoria utilizada neste projeto é a categoria MiroSot porque foi a mesma proposta por MELO e FERREIRA [4]. O cenário apresentado na Figura 11 ilustra, segunda a categoria Mirosot, como cada equipe se dispõe e como estão estruturadas. Como pode ser observado, existe um campo e uma bola e cada equipe é composta por três robôs, uma central de processamento (computador) e um sensor (câmera de vídeo digital). As câmeras de cada equipe são posicionadas a uma altura de 2m acima do campo, na mesma altura onde é posicionada iluminação. Segundo o regulamento, deve-se garantir uma qualidade de 1,000 lux de iluminação. Figura 11 Cenário de uma partida de futebol robótico segundo categoria MiroSot [6]

19 3.1. Estrutura Física Definida Todas as medidas e marcações são definidas e padronizadas (Figura 12). Na subcategoria Small League Mirosot o campo é um tablado de madeira de formato retangular com 150 centímetros de comprimento e 130 centímetros de largura de cor preta e suas demarcações possuem coloração branca com 3,0 milímetros de espessura. Todo o campo é delimitado por paredes nas extremidades laterais com 5,0 centímetros de altura e 2,5 centímetros de largura. Figura 12 Medidas e marcações segundo as regras da Mirosot[6] A bola utilizada é uma bola de golfe de cor laranja com 42 milímetros de diâmetro. Os robôs possuem formato cúbico com 7,5 centímetros de aresta. Em suas superfícies superiores são colocadas etiquetas, figuras geométricas coloridas, em uma área mínima de 3,5cm x 3,5cm que definem as camisetas dos robôs. Tais camisetas permitem ao sistema de visão computacional identificar os robôs em uma equipe. Para identificar um robô na equipe utiliza-se a combinação da camiseta e a identificação individual do robô. Essa identificação também é representada por uma figura geométrica colorida situada na superfície superior do robô.

20 Segundo as regras da FIRA, as cores utilizadas para identificar as equipes (cor da camiseta) são amarela e azul. Para a identificação individual do robô na equipe são utilizadas marcações (etiquetas) com coloração diferente das cores: amarela, azul, preta, branca e laranja, pois as mesmas já estão reservadas. As câmeras, utilizadas durante a partida, capturam imagens do campo para aquisição e identificação de padrões. O computador é responsável por todo o reconhecimento de imagens e cores, rastreamento de objetos em um plano, processamento dos dados e transmissão das informações via rádio aos agentes. 3.2. Estrutura Funcional De forma resumida, cada equipe realiza a aquisição, processamento e análise da imagem e processa a imagem usando técnicas de visão computacional. Com as informações fornecidas pelo subsistema sistema de visão computacional, um sistema de decisão define a melhor estratégia a ser aplicada e os movimentos de cada robô. Em seguida, o subsistema de comando e comunicação que é responsável por enviar, via rádio, a decisão tomada para os robôs [16]. A Figura 13 mostra o esquema de funcionamento do futebol de robôs. Figura 13 Esquema do funcionamento do futebol de robôs [17]

21 Entre os desafios e problemas a serem estudados destacam-se que os robôs precisam realizar processos de reconhecimento visuais em tempo real, navegar em um espaço dinâmico, rastrear objetos em movimento, colaborar com outros robôs e ter controle para acertar a bola na direção correta [16]. No presente trabalho o problema que será abordado consiste no rastreamento de objetos em movimento utilizando para tanto o subsistema de visão computacional que será descrito no próximo Capítulo. 3.3. Conclusão Uma partida de futebol de robôs é realizada entre dois times sendo cada time composto por três robôs. A estrutura física definida possui, além dos robôs, um campo com as dimensões impostas pela MiroSot, uma bola, um computador e um sensor. É utilizada uma bola de golfe de cor laranja e os robôs são pequenos cubos e em suas superfícies superiores são colocadas etiquetas coloridas. Uma etiqueta é utilizada para definir a camiseta (amarela ou azul) do robô permitindo ao subsistema de visão computacional identificar a qual time pertence. A outra etiqueta é utilizada, combinada com a cor da camiseta, na identificação individual do robô. No próximo Capítulo será detalhado o sistema funcional para o controle da partida de futebol. Este sistema subdivide-se em três subsistemas, subsistema de visão computacional, subsistema estrategista e subsistema de comando e comunicação, que serão apresentados com mais detalhes no próximo Capítulo. Dentre os problemas encontrados e destacados no sistema funcional, o rastreamento de objetos é o tema deste projeto e será abordado no Capítulo 5.

22 CAPÍTULO IV SISTEMA FUNCIONAL Um time de futebol de robôs possui um sistema computacional (software) que se subdivide em outros três subsistemas. O subsistema de visão computacional, detalhado na Seção 4.1, resume-se na localização, identificação e rastreamento dos objetos presentes na cena do jogo. O subsistema estrategista, apresentado na Seção 4.2, tem como função principal traduzir as informações, recebidas pelo subsistema de visão computacional, em tomadas de decisões que definem a melhor estratégia para a próxima jogada. Por fim, o subsistema de comando e comunicação (Figura 13), descrito na Seção 4.3, baseia-se na conversão das informações recebidas do subsistema estrategista em ações ou movimentações para executar a estratégia definida na Seção 4.2. 4.1. Subsistema de Visão Computacional Durante o processo de visão computacional a imagem é adquirida através de uma câmera digital disposta sobre o campo, Figura 12 (pág. 19). Após a aquisição, a imagem é processada, segmentada e os objetos são então reconhecidos (localizados), assim como é ilustrado na Figura 14. Figura 14 Etapas do sistema de visão computacional

23 Os objetos são reconhecidos pela sua forma e identificados pela sua cor podendo distinguir os robôs da equipe dos robôs adversários. Depois de identificados os robôs da equipe, o processo de rastreamento é realizado a partir da cor de identificação dos robôs da equipe. 4.1.1. Segmentação dos Alvos No processo de segmentação o principal objetivo é identificar os alvos na imagem adquirida pela câmera de vídeo. Este objetivo pode ser inicialmente alcançado a partir da subtração das duas primeiras imagens da seqüência (processo apresentado na Seção 2.5.1). A partir da terceira imagem da seqüência, inicia-se o processo de rastreamento, no qual os alvos não são mais segmentados, mas sim rastreados através cor da marcação individual de cada alvo. Este processo será discutido no próximo capítulo. Depois de realizada a subtração das imagens e identificados os alvos, sobre a imagem resultante (Figura 15-a) são aplicadas técnicas de processamento para determinar a área correspondente aos alvos com baixo ruído. Na imagem resultante a primeira técnica aplicada é o filtro espacial gaussiano (Figura 15-b) cujo objetivo é borrar a imagem para remover os detalhes e eliminar os ruídos impulsivos (vide Seção 2.4). Em seguida a imagem é binarizada (Seção 2.5.2), ou seja, transformada em uma imagem com apenas dois tons (ex: preto e branco) como pode ser vista na Figura 15-c. Depois de binarizada, a imagem é submetida à técnica de processamento denominada operação morfológica de abertura. A operação morfológica de abertura (Seção 2.8.3) resume-se em eliminar os componentes isolados com áreas muito menores do que a área do objeto e eliminar da imagem as saliências de espessura reduzida, mesmo que as mesmas estejam ligadas aos alvos [18]. O resultado da aplicação desta técnica é apresentado na Figura 15-d.

24 Figura 15 Técnicas de processamento. Depois de aplicadas as técnicas (Figura 15), os objetos caracterizados como robôs, são identificados pelas suas cores como pertencentes à equipe amarela ou à equipe azul. Assim como foi apresentado no Capítulo 3, na superfície de cada robô estão localizadas uma etiqueta cuja cor (azul ou amarela) define o time ao qual o robô pertence e uma etiqueta de cor variada que identifica cada componente do time. Para identificar os objetos segmentados e com o objetivo de contornar os problemas de variação de iluminação, os pixels da cor são projetados no espaço de cores HSV (huesaturation-value). Neste espaço de cores, a intensidade é isolada na banda V e a saturação na banda S e sua distribuição passa a ser definida no espaço 1D H, passando a apresentar um grau de constância em relação a alterações de iluminação. O método escolhido para estimação da densidade de probabilidade foi o método do histograma, por não haver muitos indícios sobre a forma da função de densidade de probabilidade dos objetos. A classificação é feita determinando-se o time ao qual um objeto tem maior probabilidade de pertencer, de acordo com a densidade de probabilidade estimada. Este método é chamado de máximo a posteriori (MAP) [18].

25 4.2. Subsistema Estrategista O algoritmo responsável pelo subsistema estrategista recebe as informações do subsistema de visão computacional e as traduz em decisões de jogadas que resultam em ações que os robôs deverão executar, incluindo tática de jogo, definições de trajetória dos jogadores e tendência de movimentação da bola [19] [16]. Como resultado final dessa etapa tem-se as informações de velocidade e ângulo de deslocamentos necessários para cumprir as ações solicitadas [17]. 4.3. Subsistema de Comando e Comunicação O subsistema de comando e comunicação tem como objetivo converter as instruções fornecidas pelo subsistema estrategista em comandos de movimentação para os robôs. Essa movimentação é determinada pelo cálculo das velocidades e dos ângulos de deslocamento dos motores dos robôs. O resultado é então transmitido para o robô via transmissor de rádio. O subsistema de comando acoplado aos robôs interpreta as informações recebidas via rádio freqüência e determina o quanto cada robô deverá se deslocar e em que sentido, efetuando o deslocamento do robô [17]. Este subsistema deve permitir que o robô siga trajetórias com o mínimo de erro possível. 4.4. Conclusão O componente primordial do sistema funcional é o subsistema de visão computacional. Este subsistema consiste basicamente na aquisição e processamento de imagem, no reconhecimento (localização), identificação e rastreamento dos objetos pertencentes à mesma, utilizando técnicas de visão computacional. A partir das informações geradas, o subsistema de decisão define a melhor estratégia e encaminha a decisão ao subsistema de comando e comunicação. Este último, por sua vez, envia a decisão tomada aos robôs. No subsistema de visão computacional, após a aquisição da imagem, os alvos são identificados através da segmentação caracterizada pelo processo de subtração entre duas

26 imagens da seqüência. Sobre a imagem resultante são aplicadas técnicas de processamento tais como, filtro espacial gaussiano, binarização e operação morfológica de abertura, a fim reduzir os ruídos gerados pela subtração e permitir o reconhecimento dos alvos. Entre os alvos localizados na imagem, os que são caracterizados como robôs são identificados pelas cores contidas em suas superfícies. Depois de localizados e identificados inicia-se o processo de rastreamento dos alvos, apresentado no próximo capítulo.

27 CAPÍTULO V RASTREAMENTO DE OBJETOS Para o desenvolvimento deste projeto foram estudados dois algoritmos de rastreamento, sendo que um deles utiliza a segmentação baseada no contorno dos alvos (apresentada na Seção 5.1) e o outro utiliza a segmentação pelas cores dos alvos (apresentada na Seção 5.2). 5.1. Segmentação pelo Contorno O processo de segmentação pelo contorno, proposto por BEM e COSTA [18], é utilizado para garantir o rastreamento dos objetos durante a partida. Para cada objeto móvel identificado na cena, através do processo apresentado na Seção 4.1.1 é definida uma região de interesse descrita por um quadrilátero englobando toda área, que será utilizada para definir o contorno do objeto (Seção 5.1.1). Além disso, como foi apresentado, cada área é identificada como correspondente a um dos times do jogo, de acordo com a sua cor, e esta identificação será mantida no processo de rastreamento (Seção 5.1.2). Depois deste ponto no processo, o modelo de observação baseado nos contornos dos objetos é empregado para extrair as informações das imagens. 5.1.1. Modelo de Observação No modelo de observação, os alvos são descritos por seus contornos, modelados como B-splines quadráticas, permitindo uma boa aproximação das suas projeções no plano da imagem [20]. Uma função B-splines de ordem k é gerada a partir da soma ponderada de M funções base ( B -splines), 0,, 1 e definida como:, 0 1, 4

28 onde representa o ponto de controle, aplicado às respectivas funções base. A curva é gerada à medida que o parâmetro u é variado. Cada função base é formada por cópias transladadas de segmentos de funções polinomiais de ordem k em um intervalo u denotadas por,,,, com 0 1, onde t é a parametrização local de u:,, 5 0, Como descrito na Seção 4.1.1, o modelo inicial de cada objeto é determinado pela segmentação dos objetos móveis nas duas primeiras imagens da seqüência. A partir dessa imagem, são definidos alguns pontos de controle, igualmente espaçados ao longo do perímetro da região de interesse, que serão utilizados para construção da estimativa inicial do contorno do alvo. A Figura 16-a mostra o quadrilátero envolvente da região de interesse, os pontos de controle definidos. Figura 16 Estimativa do contorno dos alvos [18]. Os pontos de controle definem a configuração do contorno do alvo. Com o objetivo de reduzir o custo computacional e o tempo de processamento, a observação dos alvos nas imagens é realizada através de linhas de medida construídas sobre os pontos de controle do contorno, como visto na Figura 16-b. Um detector de bordas unidimensional, filtro passa-alta, é aplicado a cada uma das linhas de medida. Este filtro atenua as freqüências espaciais mais baixas de uma imagem e acentua as mais altas. Assim os detalhes das imagens são realçados

29 tornando as transições entre regiões diferentes mais nítidas, ou seja, as alterações bruscas na intensidade dos pixels são localizadas [18] [21]. 5.1.2. Modelo de Movimento O objetivo deste modelo é definir um modelo único e simples, aplicável a todos os alvos, utilizando poucas informações a priori. Considerando o campo de visão usado, alvos com movimentos limitados pelo plano do campo e independentes entre si, as alterações de velocidade e de forma dos alvos móveis na seqüência de imagens podem ser aproximadas por transformações lineares. Sendo, um ponto da imagem localizado em uma área correspondente a um alvo, o movimento neste ponto pode ser aproximado por:, (6) onde é o centro da área, é o deslocamento de c na direção e e A é a matriz de rotação e mudança de escala. Considerando-se que há pouca alteração do alvo entre quadros consecutivos, a matriz A fica restrita à mudança de escala. Assim, a Equação 6 pode ser reduzida para:, (7) onde é o fator de escala. Quando 0 significa que não há mudança de escala, enquanto 0 corresponde à diminuição e 0, ao aumento da área estimada do objeto, envolvida pelo contorno. Desta forma, a translação e a mudança de escala dos alvos na seqüência de imagens são representadas por e. O rastreamento dos objetos realizado durante a partida de futebol, proposto por BEM e COSTA, baseia-se na descrição de seus contornos. Durante este processo são instanciados

30 dois Filtros de Kalman (estimador recursivo Bayesiano) para cada alvo, um para estimação da forma do contorno e outro para estimação do movimento [18]. O processo inicia-se com a descrição do sistema em dois vetores, chamados vetores de estado. Estes vetores são dados por:,,,,,,,,,, (8),,,, (9) onde representa o estado do contorno, definido por seus pontos de controle, com 1,, ; e o vetor de estado do movimento do alvo, definido pela velocidade de translação u e o fator de escala s. Considerando a Equação 7, do capítulo anterior, para um ponto de controle, com,,,, tem-se:,,,,, (10) onde o índice k denota o tempo e,,,, corresponde ao centro de todos os pontos de controle do alvo i, o qual estima o centro de área do alvo. A Equação 10, que define a posição que será ocupada pelo ponto de controle, no tempo, pode ser descrita na forma matricial para o contorno de um alvo:,,,, (11),, sendo uma matriz identidade de dimensão 2 x 2. seções. Os sistemas de estimação do movimento e forma são apresentados nas próximas

31 5.1.3. Estimação do Movimento O modelo de movimento, apresentado na Seção 5.1.2, possui como parâmetros, que compõe o vetor de estado do movimento do alvo, constantes locais. Assim o sistema é descrito pelas equações: (12), (13) onde, no tempo k, é uma variável aleatória gaussiana, representando o ruído do processo de estimação, com média zero e covariância : ~ 0,. é o vetor de observação do sistema; e é uma variável aleatória gaussiana, representando o ruído da observação, com média zero e covariância : ~ 0,. O vetor de observação corresponde à posição dos pontos de controle do contorno acrescida do ruído da observação [18]. Na aplicação do Filtro de Kalman, cada iteração executa três etapas: predição, assimilação e atualização. Uma vez que o filtro é um estimador gaussiano linear, a distribuição de probabilidade sobre o vetor de estado é totalmente definida pela média e pela matriz de covariância,. Assim, o processo de estimação é dado pelas seguintes equações características do Filtro de Kalman: Predição: (14),, (15) Assimilação (Cálculo do Ganho de Kalman):,, (16)

32 Atualização: (17),, (18) 5.1.4. Estimação da Forma A estimação do contorno rastreia os n pontos de controle do alvo e é modelada como:, (19), (20) onde é uma variável aleatória gaussiana, representando o ruído na estimação, com média zero e covariância : ~ 0,. é o vetor de observação do sistema; e representa o ruído da observação como mencionado anteriormente. como: As etapas do Filtro de Kalman para estimação da forma do contorno são definidas Predição: (21),, (22) Assimilação (Cálculo do Ganho de Kalman):,, (23) Atualização:,, (24)

33 5.2. Segmentação pela Cor O processo de segmentação pela cor proposto por DIAS [7] e CARREIRAS [8] para garantir o rastreamento dos objetos, implementa o algoritmo CamShift. Este algoritmo detecta o modelo de distribuição de probabilidade aplicando o Mean-Shift (máximo do gradiente da distribuição de probabilidade), enquanto ajusta dinamicamente os parâmetros da distribuição da cor a ser rastreada. 5.2.1. Mean-Shift Mean-Shift (deslocamento pela média) também conhecido como estimação do gradiente de uma função densidade, desenvolvido por Fukunaga e Hostetler (1975) é um algoritmo de rastreamento utilizado para achar modas (regiões mais densas) em um conjunto de dados, manifestando uma função densidade de probabilidade. Para explicar o algoritmo, Ukrainitz e Sarel (2004), propõem uma descrição intuitiva: uma região de interesse qualquer, escolhida sobre uma distribuição de bolas de bilhar idênticas, conforme Figura 17. O algoritmo, através do histograma de cores, detecta a região com mais densidade de pontos de uma determinada cor e calcula uma média ponderada para encontrar o centro de massa desta região mais densa. Em seguida, é traçado um vetor entre o centro da região de interesse e o centro de massa obtido, conhecido como vetor de Mean-Shift. Este vetor aponta sempre na direção do maior incremento na densidade, ou seja, descobre o caminho que leva ao local de densidade máxima [22]. Figura 17 Região de interesse, centro de massa e vetor Mean-Shift[22]

34 Na seqüência, como pode ser observado na Figura 18, a região de interesse é transladada até que seu centro coincida com o centro de massa, atingindo a convergência. Esse processo repete até que não se encontre regiões com maior densidade do que a região já obtida, ou seja, o centro de massa coincide com o centro da região ou a diferença entre eles é insignificante. Figura 18 Convergência no procedimento de Mean-Shift [22] Este procedimento é vantajoso, visto que não é necessária uma avaliação da imagem por inteiro, o que caracteriza o seu bom desempenho. A estimação de densidade do gradiente realizada por este algoritmo é não-paramétrica, onde as probabilidades da função de densidade são extraídas diretamente do conjunto de dados reais. Assim, as regiões mais densas correspondem aos máximos da função e as menos densas correspondem aos mínimos. Isso significa que quanto mais densa a região, maior o valor na função densidade de probabilidade, utilizada para representar a distribuição de probabilidade.

35 5.2.2. CamShift Como apresentado na seção anterior, o algoritmo Mean-Shift opera na distribuição de probabilidade. Para rastrear objetos coloridos em seqüência de quadros de vídeo, os dados da imagem colorida têm de ser representados como uma distribuição de probabilidade (por exemplo: histograma de cor). O algoritmo Mean-Shift foi modificado para adaptar dinamicamente a distribuição da probabilidade no rastreamento que varia conforme as seqüências da imagem gerada pelo vídeo. O novo algoritmo é chamado de CAMSHIFT [23]. O algoritmo CamShift[7][8] utilizado para rastreamento do objeto, é robusto, nãoparamétrico, baseado no seguimento do máximo do gradiente da distribuição de probabilidade (Mean-Shift). O algoritmo inicia a partir do estabelecimento de uma região de interesse (objeto que se pretende rastrear). Em seguida aplica-se o algoritmo de Mean-Shift (Seção 5.2.1) e determina a distribuição de probabilidade desta região. Neste ponto, inicia o processo de iteração do Mean-Shift até que não haja alteração significativa do centro da massa e do centro do objeto. Esta passa a ser a nova região de interesse e o processo repete enquanto se pretende rastrear o objeto [8]. O fluxograma simplificado deste algoritmo encontra-se na Figura 19. Figura 19 Fluxograma do algoritmo CamShift [8]

36 No entanto, para realizar este processo é necessário determinar a distribuição de probabilidade da imagem. O método deve associar a cada pixel o valor da probabilidade do mesmo pertencer ao alvo, para tanto foi utilizado o Histogram Back-Projection. Este método é aplicado ao canal HUE da imagem no espaço de cores HSV (vide Seção 1.10). Esta técnica, desenvolvida por Swain e Ballar em 1991, recorre à razão entre o histograma da cor do objeto ( ) e o histograma da Imagem ( ), onde i representa a cor do pixel analisado. O Histogram Back-Projection consiste em atribuir, a cada pixel da imagem, a probabilidade de que pertença ao objeto. O cálculo da probabilidade é realizado pela razão dos histogramas (Equação 25). A imagem resultante (escala de cinza) é normalmente composta por zonas em que os pixels recebem valores mais elevados quando correspondem à região do objeto que se pretende identificar [8]. (25) Para viabilizar o rastreamento com o CamShift é ainda necessário que o tamanho da região de interesse se adapte ao alvo que está sendo rastreado, uma vez que o tamanho ideal da região varia conforme o objeto se encontra mais perto ou mais afastado das câmeras. Esta adaptação é feita com base no instante zero, que pode ser interpretado como a área sobre a região de interesse (Figura 17). Desta forma o comprimento e a altura da região são determinados em função deste instante, que consiste na soma das probabilidades de todos os pixels na região de interesse [8] (vide Equação 29). Considerando, a probabilidade do pixel,, onde x e y abrange toda a região de interesse. O instante zero e primeiro instante é representado pela Equação 26 e 27 respectivamente. Instante zero:, (26)

37 Primeiro instante:, ;, (27) O centróide (, ) da região de interesse é determinado pela Equação 28 e a dimensão do objeto é calculada pela Equação 29. Centróide da região de interesse: ; (28) Dimensão do objeto: ; 2 ; (29) ; (30) 5.3. Algoritmos Estudados Durante o estudo deste projeto, foram identificadas e detalhadas duas técnicas de rastreamento de objetos cujos algoritmos são apresentados nas próximas seções. Dentre estas técnicas, encontra-se a que foi escolhida como melhor solução para o rastreamento (Seção 5.3.2). 5.3.1. Algoritmo de BEM e COSTA Como especificado na Seção 5.1, o objetivo do algoritmo consiste em rastrear os objetos descritos por seus contornos, sem a determinação a priori da sua forma, ao invés de utilizar apenas a informação de cor. Para isso, o modelo de observação utilizado é baseado em bordas de intensidade extraídas ao longo de linhas de medidas fixas do contorno e o processo

38 de rastreamento realiza-se a partir de dois Filtros de Kalman a fim de estimar a forma e o movimento. 5.3.1.1. Etapas do Algoritmo 1) Aquisição da imagem. 2) Aquisição da imagem. 3) Subtração das imagens da seqüência. 4) Segmentação para determinar as áreas correspondentes aos alvos. a. O filtro gaussiano é aplicado sobre a com o objetivo de eliminar ruídos impulsivos. b. é binarizada, ou seja, transformada em uma imagem com dois tons. c. Operações Morfológicas: i. Abertura da área: elimina componentes isolados, com áreas menores que a área dos alvos; ii. Abertura: elimina saliências de espessuras reduzidas; 5) Uso do Método Máximo a posteriori, um método histograma para a estimação das densidades de probabilidade. A classificação é feita determinando-se o time ao qual um objeto tem maior probabilidade de pertencer, de acordo com a densidade de probabilidade estimada, utilizando o espaço de cores HSV. 6) Para cada alvo móvel é definida uma região de interesse que será usada para definição do contorno do objeto. Cada área é identificada como correspondente a um dos times do jogo, de acordo com a sua cor, e esta identificação será mantida no processo de rastreamento. 7) Modelo de observação: são definidos alguns pontos de controle, igualmente espaçados ao longo do perímetro da região de interesse, que serão utilizados para construção da estimativa inicial do contorno do alvo. 8) Modelo de movimento: considerando o campo de visão usado, alvos com movimentos limitados pelo plano do campo e independentes entre si, as alterações da velocidade e da forma dos objetos na seqüência das imagens são aproximadas por transformações lineares (vide Equação 7). 9) Rastreamento com filtro de Kalman a. Filtro de Kalman para estimar o movimento;

39 b. Filtro de Kalman para estimar a forma. 10) Aquisição da imagem, i > 1. 11) Retornar passo 7. 5.3.2. Algoritmo de CamShift A próxima seção apresenta os passos do algoritmo utilizado no projeto para o rastreamento de objetos em tempo real, esses passos foram realizados segundo adaptações ao algoritmo proposto por BEM e COSTA. Conforme descrição apresentada na Seção 5.2 o algoritmo utilizado no processo de rastreamento é realizado a partir da cor do alvo segmentado. 5.3.2.1. Etapas do Algoritmo 1) Aquisição da imagem. 2) Aquisição da imagem. 3) Subtração das imagens da seqüência. 4) Segmentação para determinar as áreas correspondentes aos alvos. a. O filtro gaussiano é aplicado sobre a com o objetivo de eliminar ruídos impulsivos. b. é binarizada, ou seja, transformada em uma imagem com dois tons. i. Operação Morfológica de abertura: elimina componentes isolados, com áreas menores que a área dos alvos e as saliências de espessuras reduzidas; 5) Uso do Método Máximo a posteriori, um método histograma para a estimação das densidades de probabilidade. A classificação é feita determinando-se o time ao qual um objeto tem maior probabilidade de pertencer, de acordo com a densidade de probabilidade estimada, utilizando o espaço de cores HSV. 6) Define área de interesse nos objetos. 7) Aplica algoritmo de CamShift. 8) Aquisição da imagem, i > 1.

40 9) Retornar passo 7. 5.4. Avaliação dos Algoritmos Como apresentado, o algoritmo escolhido para a implementação foi o CamShift. Essa escolha foi embasada nas avaliações apresentadas a seguir. 5.4.1. Avaliação do CamShift O algoritmo CamShift, escolhido para a implementação, é robusto, computacionalmente eficiente e de simples abordagem. Este algoritmo é baseado na distribuição de cores e na semelhança com um modelo especificado. Sua complexidade é, onde é uma constante numérica e N é a representa a dimensão da imagem [24]. Neste algoritmo, problemas como variação no tamanho do objeto, presença de ruídos, oclusão do objeto e variação da iluminação são assim prevenidos [24]: Objeto de diferentes tamanhos: a região de interesse adequa ao tamanho do objeto; Ruídos: o modelo de cores utilizado tenta eliminar boa parte dos ruídos e o CamShift tende ignorar o restante. Oclusão: se a oclusão não for 100%, o CamShift tende a seguir o que está mais a esquerda do objeto. Variação da iluminação: CamShift tem alta tolerância a variação da iluminação, já que usa apenas o canal hue do espaço HSV e ignora os pixels com alta e baixo brilho. Uma grande desvantagem do algoritmo CamShift é que o mesmo depende apenas da distribuição da cor, por este motivo, erros na cor (iluminação colorida, pouca e muita iluminação) irão causar erro no rastreamento. No entanto, segundo as regras de FIRA a iluminação deve ser constante e de no mínimo 1,000 lux.

41 5.4.2. Avaliação do Filtro de Kalman Segundo BEM e COSTA [18] a experiência com o Filtro de Kalman não foi como esperado. Embora o algoritmo apresente um baixo custo computacional, uma característica essencial tratando-se de uma aplicação em tempo real, não teve o sucesso esperado porque o mesmo não se mostrou estável e não apresentou a robustez necessária em um ambiente real. Dentre os problemas identificados destacam-se: variações de iluminação, restrição de espaço entre os robôs e necessidade de cores totalmente distintas [18]. Devido às vantagens e desvantagens dos algoritmos estudados e pelo Filtro de Kalman já ter sido implementado em outros trabalhos e não ter apresentado o desempenho esperado, o algoritmo CamShift foi escolhido para esta implementação. A principal motivação consiste na análise do seu desempenho considerando o cenário apresentado no próximo capítulo. 5.5. Conclusão Para o presente projeto foram estudados dois algoritmos de rastreamento de objetos. O primeiro algoritmo apresentado foi o algoritmo de BEM e COSTA, no qual o processo de rastreamento dos objetos baseia-se descrição dos seus contornos e é caracterizado pela instância de dois Filtros de Kalman sendo uma para estimar a forma do contorno e o outro para estimar o movimento. Na aplicação do Filtro de Kalman, cada iteração executa três etapas: predição, assimilação e atualização. O segundo algoritmo estudado e escolhido para ser implementado foi o algoritmo de Camshift, um algoritmo robusto e eficiente que a partir da cor do objeto, previamente estabelecida, rastreia-o pela análise da probabilidade da imagem gerada pelo vídeo. Esta análise é utilizada a cada nova imagem gerada. A busca na nova imagem é desenvolvida levando em consideração as proximidades da região na imagem antiga em que o objeto com a referida cor se encontrava [25].

42 CAPÍTULO VI ESTRUTURA DO CENÁRIO 6.1. Estrutura Utilizada Como especificado no Capítulo 3, neste projeto, o jogo é regulamentado segundo a categoria Mirsot (Small League). No mesmo capítulo são especificadas as regras como cores, medidas e dimensões, conforme regulamentação da FIRA. Neste projeto, o cenário utilizado não foi exatamente o mesmo definido pela FIRA. Os componentes (campo e robôs) necessários para as simulações e comprovação da funcionalidade da aplicação desenvolvida foram construídos de forma similar. A representação do cenário utilizado para simular o jogo está ilustrada na Figura 20. Figura 20 Cenário utilizado no projeto O ambiente em que foi montado possui iluminação boa e constante, conforme previsto pela FIRA. O campo foi construído em placa de madeira de 72,5 cm x 94,0cm e 1,0cm de espessura. Os robôs foram construídos em blocos de isopor de 7,5cm x 7,5cm e 2,0cm de altura. Para simular o jogo foram utilizados dois robôs da equipe (camiseta amarela) e um robô adversário (camiseta azul). Sobre a superfícies superiores dos robôs da equipe

43 encontram-se duas etiquetas: uma, a marca da equipe, representa a camiseta do robô (cor do time) com área de 3,5cm x 3,5cm e a outra etiqueta, marca de identificação, identifica o robô na equipe sobre a área de 7,5cm x 7,5cm (Figura 21). Figura 21 Definição das marcas superiores do robô No protótipo desenvolvido, a cor utilizada na marca da equipe foi amarela e as cores utilizadas nas marcas de identificação foram salmão e verde, cores não reservadas pela FIRA (Figura 22-a). Para a equipe adversária a única marcação relevante é a marca da camiseta, representada por um único círculo central de diâmetro 3,5cm (Figura 22-b). A Figura 22-c ilustra os robôs utilizados nos teste. (a) (b) (c) Figura 22 Objetos da cena.