Você está na página 1de 62

UNIVERSIDADE FEDERAL DE PERNAMBUCO CENTRO DE INFORMTICA

APLICANDO SEGMENTAO DE IMAGENS PARA DETERMINAO DA ROTA DE UM ROB

AUTOR: THIAGO FIGUEREDO CARDOSO TRABALHO DE GRADUAO DO CURSO DE ENGENHARIA DA COMPUTAO Orientador: Prof. Dr. Aluizio Fausto Ribeiro Arajo
Recife, 23 de janeiro de 2008.

THIAGO FIGUEREDO CARDOSO

APLICANDO SEGMENTAO DE IMAGENS PARA DETERMINAO DA ROTA DE UM ROB

Trabalho de concluso de curso apresentado como parte das atividades para obteno do ttulo de Bacharel em Engenharia da Computao do Centro de Informtica da Universidade Federal de Pernambuco

Prof. orientador: Aluizio Fausto Ribeiro Arajo


Recife, 2008

ASSINATURAS

Este trabalho o resultado dos esforos do estudante Thiago Figueredo Cardoso, sob a orientao do Prof. Aluizio Fausto Ribeiro Arajo, intitulado Aplicando Segmentao de Imagens para a Determinao da Rota de um Rob e conduzido no Centro de Informtica da Universidade Federal de Pernambuco (CIn-UFPE). As pessoas listadas abaixo reconhecem o contedo deste documento e os resultados do Trabalho de Graduao.

_______________________________________________________ Thiago Figueredo Cardoso

________________________________________________________ Aluizio Fausto Ribeiro Arajo

AGRADECIMENTOS

Agradeo minha famlia, meu pai Valter, minha me Vanda e meu irmo Lucas, por estarem a postos sempre que precisei e por todo o esforo que me permitiu estar nesta cidade. minha namorada Paula pela pessoa maravilhosa que e de diversas formas ajudou a mim e a este trabalho, pelos inmeros momentos agradveis e pela compreenso da minha ausncia e cansao em vrios momentos. Aos meus colegas de apartamento, Fernando, Jlio e Vincius, minha segunda famlia, que agentaram minha baguna durante este trabalho e que me levaram para tomar umas cervejas quando era necessrio me distrair. Aos amigos do GER que participaram do ENECA. Sem a crena de vocs nessa loucura dificilmente este trabalho teria sido levado adiante. Ao meu orientador Aluzio Arajo pela pacincia e auxlio, e por ter aceitado meu trabalho. Aos meus grandes amigos, Flvia, Alisson e Denise, que mesmo a distncia no separou e que sempre me receberam de braos abertos. Aos (quase-)engenheiros da minha turma com quem compartilhei alegrias e inquietaes ao longo do curso.

Isso oba oba!


Prof. Jos Dias

RESUMO

Este trabalho trata da aplicao de algoritmos de segmentao de imagens, em particular os Mapas Auto-Organizveis e o Local Adaptive Receptive Field Self-Organizing Map, para a deteco de objetos. A deteco baseada na cor dos objetos e utilizada para guiar um rob mvel, autnomo e inteligente em um ambiente controlado. Neste documento ser apresentada uma breve reviso sobre tcnicas de navegao de robs, de redes neurais no-supervisionadas e de segmentao de imagens coloridas. Em seguida o leitor encontrar os detalhes da construo do rob e os resultados dos testes executados. Palavras-chave: Robtica, Segmentao de Cores, Deteco de Objetos, Mapas AutoOrganizveis (SOM), Viso de Mquina.

ABSTRACT

This work is about the application of image segmentation algorithms, in particular the Self-Organizing Maps and the Local Adaptive Receptive Field Self-Organizing Map, to detect objects. The detection is based on the color of the objects and is used to guide a mobile, autonomous and intelligent robot in a controlled environment. In this document a short review on techniques for robot navigation, unsupervised neural networks and color image segmentation is presented. Following this, the reader will find the details of the construction of the robot and the results of the tests executed. Keywords: Robotics, Color Segmentation, Object Detection, Self-Organizing Maps (SOM), Machine Vision

LISTA DE ILUSTRAES

Figura 2-1. Exemplo de ambiente interno complexo .................................................................................... 17 Figura 2-2. Vencedores do DARPA Grand Challenge ................................................................................. 20 Figura 3-1. Arquitetura do SOM................................................................................................................... 22 Figura 4-1. Representao cilndrica do espao HSI .................................................................................... 28 Figura 5-1. O Rob Figa ............................................................................................................................... 37 Figura 5-2. O objeto a ser buscado ............................................................................................................... 38 Figura 5-3. Viso fsica. Imagem gentilmente criada e cedida por Vincius Fabrino ................................... 38 Figura 5-4. Vises da estrutura. a) viso traseira b) viso lateral e c) viso isomtrica Modelo criado e gentilmente cedido por Paula Souza Teixeira ....................................................................................................... 39 Figura 5-5. Placa de controle dos motores.................................................................................................... 41 Figura 5-6. Viso lgica. Imagem gentilmente criada e cedida por Vincius Fabrino.................................. 42 Figura 5-7. Relao entre pulso recebido e angulao de um servomotor.................................................... 42 Figura 5-8. Imagem dividida em regies ...................................................................................................... 44 Figura 5-9. Interface grfica do Figa Vision................................................................................................. 46 Figura 6-1. Imagens utilizadas nos testes. a) House b) Pepper c) Lena d) Baboon ...................................... 49 Figura 6-2. Resultados da aplicao do SOM (a)-(d), e do LARFSOM (e)-(h) na imagem House.............. 50 Figura 6-3. Resultados da aplicao do SOM (a)-(d), e do LARFSOM (e)-(h) na imagem Pepper............. 51 Figura 6-4. Resultados da aplicao do SOM (a)-(d), e do LARFSOM (e)-(h) na imagem Lena ................ 52

Figura 6-5. Resultados da aplicao do SOM (a)-(d), e do LARFSOM (e)-(h) na imagem Baboon ........... 53 Figura 6-6. Imagem utilizada para os testes no ambiente do rob................................................................ 55 Figura 6-7. a) Imagem 6-6 segmentada pelo SOM b) Imagem 6-6 segmentada pelo LARFSOM ............. 56 Figura 6-8. Histogramas do tempo de execuo e de classificao do LARFSOM ..................................... 57

LISTA DE TABELAS

Tabela 6-1. Resultados da aplicao do SOM e do LARFSOM na imagem House ..................................... 50 Tabela 6-2. Resultados da aplicao do SOM e do LARFSOM na imagem Pepper .................................... 51 Tabela 6-3. Resultados da aplicao do SOM e do LARFSOM na imagem Lena ....................................... 53 Tabela 6-4. Resultados da aplicao do SOM e do LARFSOM na imagem Baboon ................................... 54 Tabela 6-5. Estatsticas da execuo do LARFSOM na mquina com processador Intel Core 2 Duo......... 56 Tabela 6-6. Estatsticas da execuo do SOM na mquina com processador Intel Core 2 Duo ................... 56 Tabela 6-7. Estatsticas da execuo do LARFSOM na mquina com processador Vortex 86.................... 57 Tabela 6-8. Estatsticas da execuo do SOM na mquina com processador Vortex 86.............................. 57

SUMRIO

1
1.1 1.2 1.3

Introduo ..........................................................................................................13
Contexto ........................................................................................................................13 Objetivos........................................................................................................................14 Organizao do Documento ..........................................................................................14

2
2.1

Navegao de Robs.........................................................................................16
Ambientes Internos........................................................................................................16
Navegao Baseada em Mapas................................................................................................17 Navegao Baseada na Construo de Mapas ........................................................................18 Navegao sem Mapas .............................................................................................................18

2.1.1 2.1.2 2.1.3

2.2

Ambientes Externos.......................................................................................................19

3
3.1

Redes Neurais No-supervisionadas...............................................................21


Mapas Auto-Organizveis..............................................................................................22
Arquitetura .................................................................................................................................22 Treinamento ...............................................................................................................................22 Propriedades do mapa...............................................................................................................23

3.1.1 3.1.2 3.1.3

4
4.1

Segmentao de Imagens Coloridas ...............................................................25


Representao de Cores...............................................................................................26
RGB Normalizado ......................................................................................................................26 HSI .............................................................................................................................................27 Cores CIE ..................................................................................................................................28 YIQ e YUV..................................................................................................................................29

4.1.1 4.1.2 4.1.3 4.1.4

4.2 4.3 4.4 4.5 4.6


4.6.1 4.6.2

Segmentao Baseada no Espao de Caractersticas .................................................30 Segmentao Baseada em Regies .............................................................................31 Segmentao Baseada em Fronteiras ..........................................................................31 Segmentao Baseada em Caractersticas Fsicas ......................................................32 Redes Neurais para Segmentao de Imagens ............................................................32
SOM ...........................................................................................................................................33 LARFSOM..................................................................................................................................33

5
5.1 5.2

O Rob Figa .......................................................................................................37


O Ambiente ....................................................................................................................38 Viso Fsica ...................................................................................................................38
Estrutura e Motores ...................................................................................................................39 Cmera ......................................................................................................................................40 Processamento Central .............................................................................................................40 Controle dos Motores.................................................................................................................40 Controle Remoto e Monitoramento e Figa Vision......................................................................41

5.2.1 5.2.2 5.2.3 5.2.4 5.2.5

5.3
5.3.1 5.3.2 5.3.3 5.3.4

Viso Lgica ..................................................................................................................41


Controle dos Motores.................................................................................................................42 Deteco de Objetos .................................................................................................................43 Navegao.................................................................................................................................44 Controle Remoto e Monitoramento e Figa Vision......................................................................45

6
6.1

Testes e Resultados ..........................................................................................48


Resultados em Imagens da USC-SIPI Image Database ...............................................48
Imagem House...........................................................................................................................49 Imagem Pepper .........................................................................................................................50 Imagem Lena .............................................................................................................................52 Imagem Baboon.........................................................................................................................53 Observaes..............................................................................................................................54

6.1.1 6.1.2 6.1.3 6.1.4 6.1.5

6.2

Resultados no Ambiente do Rob .................................................................................55

Consideraes finais.........................................................................................59

INTRODUO

Durante muito tempo a robtica foi aplicada na indstria, como forma de automatizar os processos, porm este cenrio est mudando e cada vez mais se v robs no dia-a-dia. Apenas para ilustrar pode-se citar o V-R4000, limpador vcuo da LG, a linha WowWee Robotics de brinquedos da WowWee 1 , ou a Gibson Robot Guitar 2 . medida que as interaes se tornam mais complexas, cresce a necessidade de sistemas sensoriais poderosos. natural pensar na viso como um desses sistemas, por ser ela um dos sentidos mais poderosos dos animais e igualmente complexo. A viso permite a interao inteligente com o ambiente sem a necessidade de contato direto [HORN 1986]. Baseado nisso muitas pesquisas surgiram na tentativa de acrescentar viso a um sistema robtico como uma forma de auxiliar em seu controle, tais como [MALIS 2002] e [DESOUZA 2002], e hoje diversos trabalhos so impulsionados por iniciativas como a RoboCup 3 .

1.1

Contexto
Durante o ano de 2007 o Grupo de Estudos em Robtica 4 (GER) da UFPE desenvolveu

pesquisas na rea aplicadas ao contexto da competio Desafio Inteligente, sediada em Recife

1 2 3

Empresa que desenvolve brinquedos com alta tecnologia. Para mais informaes ver http://www.wowwee.com Guitarra capaz de se auto-afinar. Ver http://www.gibson.com/robotguitar/ Iniciativa para desenvolver a Inteligncia Artificial que pretende construir um time de robs at 2050 para vencer o atual campeo mundial de futebol. Mais em http://www.robocup.org Grupo de estudos independente formado por estudantes de cursos de engenharia da UFPE. Mais em http://groups.google.com/group/ger-ufpe

no ano em questo, que consistia em criar um rob subaqutico que fosse capaz de resgatar objetos de uma dada cor, evitando capturar outros objetos presentes no ambiente. Ao longo do desenvolvimento, o autor deste trabalho iniciou pesquisas na rea de viso para a resoluo do problema citado, mas devido aos recursos humanos e tempo disponveis, um sistema desse tipo no pode ser criado. Os resultados dos estudos feitos e a possvel continuidade do GER em competies como a RoboCup foram definitivos para a definio deste trabalho.

1.2

Objetivos
Sendo assim, o objetivo deste trabalho desenvolver um sistema robtico capaz de

detectar objetos simples baseados em suas cores. Para isso sero aplicadas novas tcnicas no-supervisionadas de segmentao de imagens coloridas, em particular o Local Adaptive Receptive Field Self-Organizing Maps (LARFSOM) [ARAJO & COSTA, 2006], no processo de deteco de objetos e ser feita uma anlise de seu uso e comparao com o Mapa Auto-Organizvel (SOM, do Ingls, Self-Organizing Maps).

1.3

Organizao do Documento
O prximo captulo fala sobre a taxonomia de sistemas de viso aplicados navegao de

robs, de forma a ser possvel identificar o tipo de rob que dever ser desenvolvido e quais suas limitaes. O captulo 3 aborda as caractersticas bsicas de redes neurais no-supervisionadas e introduz o modelo bsico utilizado no trabalho, o Mapa Auto-Organizvel. O captulo 4 trata de segmentao de imagens coloridas, mostrando os vrios tipos de tcnicas existentes e avaliando o uso de redes neurais para este objetivo. Ao fim do captulo dois modelos de interesse so vistos em detalhe. O captulo 5 detalha toda a construo do rob Figa, objetivo deste trabalho, mostrando os componentes usados e suas conexes, bem como todos os sistemas que nele executam.

O captulo 6 apresenta os resultados dos testes executados para os algoritmos estudados em imagens conhecidas e no ambiente para o qual o rob foi construdo. Por fim consideraes so feitas no captulo 7 e propostas para trabalhos futuros so expostas.

NAVEGAO DE ROBS

A localizao e movimentao de robs em um dado ambiente so feitas com o auxlio de diversos dispositivos e tcnicas, tais como sensores de obstculos e distncias, odometria e viso computacional. Embora a viso no seja obrigatria, muitos problemas so mais facilmente resolvidos a partir de seu uso para navegao e/ou controle de um rob [HORN, 1986]. Por tal razo, nestes trabalhos so abordadas apenas as tcnicas que se baseiam em sistemas de viso. A viso uma das ferramentas mais poderosas que os animais possuem. Prov uma enorme quantidade de informaes, mas tambm extremamente complicada, de tal forma que vrias tentativas de imit-la no foram bem sucedidas [HORN, 1986]. No existe, at agora, a tentativa de criar um sistema de viso geral, mas sim aplicado a certos problemas ou certos ambientes. Assim a discusso neste trabalho separa as abordagens utilizadas para viso na navegao em funo do ambiente no qual o rob dever atuar. A seguir esto as tcnicas utilizadas em ambientes internos e externos.

2.1

Ambientes Internos
Seguindo um fluxo natural, esses foram os primeiros ambientes utilizados nas pesquisas.

Grandes avanos foram alcanados nessa frente (ver [DESOUZA & KAK, 2002]) e hoje robs conseguem se localizar em ambientes internos complexos, como a da figura a seguir.

Figura 2-1. Exemplo de ambiente interno complexo

As tcnicas de navegao em ambientes internos so divididas em trs: baseada em mapas, baseada na construo de mapas e navegao sem mapas (baseada na deteco de marcadores).

2.1.1

Navegao Baseada em Mapas

Nesta categoria esto os sistemas que dependem de um modelo do ambiente inserido pelo usurio. Estes modelos podem ter diversos graus de complexidade, variando de um modelo CAD (Computer-Aided Design) completo a um simples grafo de conexes entre os objetos presentes no ambiente. O papel de tais mapas prover ao rob uma forma de calcular sua posio e conseguir determinar um caminho at seu objetivo. Quatro passos so definidos nesses sistemas [BORENSTEIN et al., 1996]: Adquirir informaes dos sensores: principalmente da cmera, para o caso deste trabalho. Detectar caractersticas. Efetuar busca pelos modelos a partir das caractersticas extradas. Calcular posio.

A forma como as tcnicas executam o terceiro passo e geram os dados para a quarta etapa demanda especificao de sub etapas: clculo de posio absoluta, clculo incremental de posio e busca de marcadores. As tcnicas de clculo absoluto de posio consideram que a posio inicial do rob no conhecida. Assim necessrio fazer a localizao dos marcadores e, por tcnicas de triangulao, encontrar a localizao do rob. Devido ao erro da deteco e do prprio clculo necessrio efetuar novas observaes quando o erro cresce acima de um limiar. Quando a posio inicial do rob conhecida, torna-se possvel calcular a posio de forma incremental, acumulando as incertezas das posies em cada instante, at que um certo limite seja excedido, quando o rob dever recalcular sua posio. A terceira tcnica utilizada quando tanto a posio inicial do rob e a identidade dos marcadores conhecida e pode ser rastreada [DESOUZA & KAK, 2002].

2.1.2

Navegao Baseada na Construo de Mapas

Nem sempre possvel construir uma representao do ambiente, principalmente quando se devem informar relaes mtricas entre os objetos, sobretudo em ambientes dinmicos. Por conta disso, pesquisas foram feitas acerca da construo (semi-)automtica de representaes do ambiente. Para mais informaes sobre tcnicas de construo de mapas sugere-se ao leitor a referncia [THRUN, 2003]. Aps a construo do mapa, a navegao feita por tcnicas similares s descritas na seo anterior.

2.1.3

Navegao sem Mapas

A navegao sem mapas feita quando no h nenhuma descrio prvia sobre o ambiente. Tambm no possui tal descrio a tcnica descrita na seo anterior, porm existe o passo de construo de um mapa antes de qualquer locomoo. Sem a existncia de uma descrio do ambiente, trs classes de tcnicas so definidas em [DESOUZA & KAK, 2002]: navegao utilizando o fluxo ptico, navegao baseada em aparncia e navegao utilizando o reconhecimento de objetos.

A primeira utiliza o conceito de determinao do movimento dos objetos presentes na cena para estimar o caminho a ser feito. Fluxo ptico um campo de vetores que indicam a direo e magnitude da variao das mudanas de intensidade na imagem [TEMIZER, 2001]. Na pesquisa feita em [DESOUZA & KAK, 2002], apresenta-se o exemplo do robee, um rob que tenta imitar o reflexo centralizador de uma abelha. A navegao baseada em aparncia visa memorizar o ambiente, guardando localizaes para determinao do caminho a ser seguido. Por ltimo, a navegao utilizando o reconhecimento de objetos, cujo nome autoexplicativo, utiliza uma abordagem diferente da navegao baseada em aparncia. No lugar de memorizar a localizao de objetos na cena, o rob recebe objetivos, tais como v at a porta, e ento faz a busca pelo objeto porta e assim determina seu caminho.

2.2

Ambientes Externos
Em ambientes externos aparecem dificuldades no existentes em ambientes internos,

normalmente mais controlados. Por exemplo, raramente se conhece um mapa completo [DESOUZA & KAK, 2002], alm dos problemas causados pela variao de iluminao, que dependem da hora do dia, das condies climticas, entre outros (uma discusso sobre trabalhos que endeream esse problema pode ser encontrada em [DESOUZA & KAK, 2002]) Os ambientes externos so de dois tipos: estruturados e no-estruturados. Um dos primeiros trabalhos para ambientes estruturados endereava o problema de um rob para dirigir um carro em uma estrada. Hoje existem diversas solues para tal problema, como nos mostram os competidores do DARPA Grand Challenge 5 .

Visite http://www.darpa.mil/GRANDCHALLENGE Para mais informaes sobre o DARPA Grande Challenge

Figura 2-2. Vencedores do DARPA Grand Challenge

Os ambientes no-estruturados so aqueles que no possuem propriedades regulares que possam ser extradas. Viagens atravs de pases ou interplanetrias so exemplos de situaes em que o ambiente no-estruturado. No caso de explorao interplanetria, como o caso de Marte, o rob deve apenas explorar o ambiente sem nenhum objetivo especfico. Quando o rob possui um objetivo, tal como ir de um lugar a outro, tcnicas de localizao so necessrias, tais como observao por cmera externa, triangulao por marcadores distantes e Global Positioning System (GPS).

REDES NEURAIS NO-SUPERVISIONADAS

Aprendizagem no-supervisionada procura extrair informao de dados no-classificados [DUDA et al., 2000]. Em contraste com a aprendizagem supervisionada ou por reforo, no h um professor ou um crtico para auxiliar no treinamento. Seu estudo de grande importncia, pois aparenta ser mais comum no crebro que sistemas de aprendizagem supervisionada, como por exemplo na viso [DAYAN, 1999]. Alm disso, de acordo com [DUDA et al., 2000], h ao menos cinco razes bsicas para o uso desse tipo de aprendizagem: A coleta a classificao de um grande conjunto de dados para utilizar no treinamento pode ser extremamente custoso; Com aprendizagem no-supervisionada possvel criar as classes a serem utilizadas por um mtodo supervisionado; Se os dados mudarem com o tempo, a performance de um classificador pode ser melhorada utilizando uma tcnica no-supervisionada que seja capaz de capturar as mudanas; Um mtodo no-supervisionado pode ser utilizado para a extrao de caractersticas dos dados analisados; Nos estgios iniciais da investigao pode ser importante visualizar as caractersticas bsicas do dados. Em redes neurais, dois algoritmos no-supervisionados se destacam: Adaptive Resonance Theory e Mapas Auto-Organizveis. Neste trabalho ser dado foco ao segundo algoritmo, descrito nas seguintes sees.

3.1

Mapas Auto-Organizveis
As idias de auto-organizao foram propostas por von der Malsburg e Willshaw na

dcada de 70 para explicar o funcionamento de certas partes do crtex visual. Mais tarde, na dcada de 80, Kohonen introduziu seu modelo chamado Self-Organizing Maps (SOM) que captura as caractersticas essenciais do modelo de von der Malsburg e Willshaw, mas mantendo o problema computacionalmente tratvel [HAYKIN, 1998]. O SOM tem como objetivo mapear dados multi-dimensionais em um mapa de, predominantemente, duas dimenses, atravs de um processo de aprendizagem competitivo e no-supervisionado.

3.1.1

Arquitetura

Os neurnios esto organizados em uma grade, onde todas as entradas se conectam a todos os ns e feedback restrito s conexes laterais imediatas [BEALE & JACKSON, 1990]. Todos os neurnios da grade so ns de sada, como mostrado na figura seguinte.

Figura 3-1. Arquitetura do SOM

3.1.2

Treinamento

O algoritmo de aprendizagem competitivo (winner-take-all) e possui os passos a seguir. Passo 1: Inicializar pesos e parmetros. Defina o tamanho da grade e a taxa de aprendizagem .

Passo 2: Para cada padro da entrada repita os seguintes passos. Passo 3: Calcule a distncia do padro de entrada a todos os ns e aquele cuja a distncia seja a menor a Best Matching Unit (BMU). Passo 4: Atualize os pesos da BMU e de seus vizinhos Passo 5: Ajuste o tamanho da vizinhana e a taxa de aprendizagem . A inicializao dos pesos influncia na forma como o mapa vai se formar. Para diminuir esta dependncia, algumas tcnicas so utilizadas: inicializar os pesos com o mesmo valor; iniciar os pesos com valores aleatrios; ou adicionar rudo aos dados de entrada [BEALE & JACKSON, 1990]. O passo 5 possui comportamento distinto de acordo com a fase em que a rede se encontra, a saber: fase de ordenao e fase de convergncia. Na primeira, a taxa de aprendizagem deve decrescer gradualmente, mas ficar sempre acima de 0,01, enquanto o tamanho da vizinhana inicia com o mesmo valor do tamanho do mapa e decai vagarosamente. Kohonen sugere que esta fase dure pelo menos 1000 iteraes. Na fase seguinte, o tamanho da vizinhana e a taxa de aprendizagem permanecem pequenos, permitindo um ajuste fino da rede, at que o treinamento termine.

3.1.3

Propriedades do mapa

O SOM cria uma representao do espao de dados de entrada com as seguintes propriedades [HAYKIN, 1998]: Boa aproximao dos espao de dados de entrada; Possui ordenamento topolgico; Representao de densidade dos dados de entrada; Efetua a seleo de caractersticas que melhor representam os dados de entrada.

Tais propriedades fazem do SOM uma poderosa ferramenta para agrupamento, em especial pela representao de densidade [XU & WUNSCH, 2005]. No prximo captulo, este algoritmo ser revisitado, aplicado ao agrupamento de cores em imagens.

SEGMENTAO DE IMAGENS COLORIDAS

A segmentao de imagens um dos primeiros passos em um sistema de viso ou de anlise de imagens, a ponte entre as operaes de baixo nvel e as anlises de alto nvel, tais como reconhecimento de objetos e entendimento da cena. Seu papel crtico e determina a qualidade das operaes posteriores [CHENG et al., 2001]. Define-se segmentao como o processo que tem como objetivo separar a imagem em regies que satisfaam um critrio de uniformidade [SKARBEK & KOSCHAN, 1994]. Mais formalmente [LUCCHESE & MITRA, 2001]: Seja I uma imagem e H um dado predicado de homogeneidade; a segmentao de I a partio P de I em um conjunto de N regies Rn , n = 1..N , tal que: 1.

N n =1

Rn = I , com Rn Rm , n m

2. H ( Rn ) verdadeiro para qualquer n 3. H ( Rn Rm ) falso para qualquer Rn adjacente a Rm Duas propriedades so desejveis s tcnicas de segmentao [DONG & XIE, 2005]: homogeneidade, como explicitado na definio, e compactao espacial, propriedade que se refere a quo compactas so as regies formadas. Seguindo estes conceitos, diversas tcnicas foram propostas e podem ser dispostas em trs classes de acordo com a utilizao dos elementos da imagem para o propsito da segmentao, a saber: baseada no espao de caractersticas, baseada no domnio da imagem e baseada em caractersticas fsicas.

A seguir neste captulo encontram-se algumas representaes de cores, caracterstica bsica de uma imagem colorida, e em seguida entramos em mais detalhes sobre as abordagens citadas no pargrafo anterior.

4.1

Representao de Cores
A viso humana percebe as cores como a representao de trs estmulos: R (Red), G

(Green) e B (Blue). Essas componentes so extradas da cena a partir da aplicao de trs filtros, descritos pelas seguintes equaes:

R = E ( ) SR ( ) d

G = E ( ) SG ( ) d

B = E ( ) SB ( ) d

onde E ( ) representa a radiao da luz, S X ( ) , X = {R, G, B} o filtro passa-banda na freqncia de X, e o comprimento de onda. A representao (espao de cores) RGB adequada para exibio de cores, mas no para anlise, devido alta correlao entre suas componentes [CHENG et al., 2001]. Diversos outros espaos, que podem ser mais adequados segmentao, so derivados a partir do RGB atravs de transformaes lineares e no-lineares, mas nenhum melhor em todas as situaes. A seguir esto listados alguns espaos de cores.

4.1.1

RGB Normalizado

Para diminuir a dependncia da iluminao na segmentao, normaliza-se o espao RGB. O espao normalizado formulado como:
R ( R + G + B) G g= ( R + G + B) B b= ( R + G + B) r=

Embora sejam relativamente robusto a variaes de iluminao, as cores normalizadas apresentam bastante rudo quando esto em baixas intensidades.

4.1.2

HSI

HSI (hue-saturation-intensity) outro espao de cores baseado no modelo de percepo humana. Hue (colorao) representa a cor bsica, saturation (saturao) indica o grau de pureza, ou seja, a quantidade de branco que est misturado com a cor, e intensity (intensidade) indica a quantidade de luz presente. Este sistema derivado do RGB a partir de [SKARBEK & KOSCHAN, 1994]:

( R + G + B) 3 min ( R, G, B ) S = 1 I 3(G B) H = arctan ( R G) + ( R B) I=


Este espao de cores possui boa capacidade de representar as cores perceptveis pelos humanos. Por permitir uma separao entre a noo de cor e iluminao, adequado para o uso em segmentao, inclusive diminuindo a dimenso do problema para uma varivel, por exemplo, a segmentao de tons de cinza pode ser feita com a anlise da componente I, enquanto a segmentao de cores com a componente H. A desvantagem deste modelo est na instabilidade da componente H para cores prximas do eixo do cilindro (ver Figura 4-1), onde uma pequena variao de R, G ou B gera uma grande mudana em H. Se as cores estiverem muito prximas de branco ou preto H e S no so muito teis na distino de cores [CHENG et al., 2001].

Figura 4-1. Representao cilndrica do espao HSI

4.1.3

Cores CIE

O sistema RGB exclui certas cores visveis, alm de depender da resoluo dos sensores. Por estes motivos, o Commission Internationale de l'clairage (CIE) fixou as coordenadas XYZ, que podem ser obtidas a partir de uma transformao linear do espao RGB, porm a matriz deve ser determinada empiricamente [SKARBEK & KOSCHAN, 1994]. O sistema NTSC (National Television System Commission) utiliza a seguinte matriz, derivada a partir de experimentos:

X 0, 607 0,174 0, 200 R Y = 0, 299 0,587 0,114 G Z 0, 000 0, 066 1,116 B


A partir das coordenadas XYZ possvel construir os espaos CIE. Dois espaos muito conhecidos so o CIE Lab, onde L corresponde iluminao, a corresponde relao entre vermelho/verde e b relao entre verde/azul, e o CIE Luv, cujas coordenadas possuem o mesmo significado que as do CIE Lab, porm so calculadas de forma diferente.

Y L = 116 3 16 Y 0 X Y 3 a = 500 3 Y0 X0 Y Z b = 200 3 3 Z0 Y0

Y L = 116 3 16 Y 0 4X u = 13W 0,199 X + 15Y + 3Z 6Y v = 13W 0,308 X + 15Y + 3Z onde ( X 0 , Y0 , Z 0 ) so os valores de XYZ para o branco. Esses espaos so ditos uniformes, o que permite a utilizao da distncia euclidiana como boa mtrica para definir diferena entre as cores. O uso do CIE Lab prov bons resultados na segmentao de imagens coloridas [SKARBEK & KOSCHAN, 1994].

4.1.4

YIQ e YUV

Os espaos descritos anteriormente possuam como caracterstica o uso de uma transformao no-linear para obteno de seus parmetros. Para sistemas que possuem pouco poder computacional, transformaes lineares so desejveis. Estes dois espaos, utilizados para codificao de cor nos sistemas de televiso americano e europeu, respectivamente, so obtidos pelas seguintes transformaes:

0,114 R Y 0, 299 0,587 I = 0,596 0, 274 0,322 G Q 0, 211 0, 253 0,312 B


onde 0 R 1, 0 0 G 1, 0 0 B 1, 0

0,114 R Y 0, 299 0,587 U = 0,147 0, 289 0, 437 G V 0, 615 0,515 0,100 B


onde 0 R 1, 0 0 G 1, 0 0 B 1, 0 As componentes I e Q (U e V) descrevem conjuntamente a saturao e colorao, enquanto a componente Y descreve a iluminao.

4.2

Segmentao Baseada no Espao de Caractersticas


Tambm conhecida por baseada em pixel, assume que cada regio forma um

agrupamento no espao de caractersticas, que pode ser um dos espaos de cores descritos anteriormente ou um espao induzido por outras caractersticas de cores, mas no considera nenhuma relao espacial entre os pixels. Esse tipo de segmentao mais simples de implementar e a classificao direta, porm no garante que as regies sejam contguas por no considerar informaes espaciais. As tcnicas mais comuns de segmentao baseada em pixel so limiarizao de histograma e agrupamento. A primeira, bastante utilizada em imagens monocromticas, consiste em encontrar picos e vales no histograma gerado a partir das informaes de cor da imagem. Em histogramas de uma dimenso, encontrar picos vales uma tarefa facilmente executada, mas em imagens coloridas os histogramas so normalmente irregulares, devido a rudos principalmente, o que d origem a falsos picos, e por sua vez ambigidade na segmentao [LUCCHESE & MITRA, 2001]. Agrupamento tem sido usado como uma importante tcnica para reconhecimento de padres [CHENG et al., 2001]. Consiste em classificar objetos em parties de forma no supervisionada, sem nenhum conhecimento a priori. Um dos algoritmos mais conhecidos o k-means (ou c-means). Variaes de algoritmos de agrupamento utilizando lgica difusa tambm so muito empregados, como o fuzzy c-means, de tal forma que algumas anlises dedicam sees separadas para esses algoritmos.

4.3

Segmentao Baseada em Regies


Esta classe de tcnicas considera, alm das informaes fornecidas pelo espao de

caractersticas, as relaes espaciais entre os pixels. Duas abordagens so utilizadas: splitand-merge e crescimento de regies. Split-and-merge consiste em iniciar com uma partio no homognea, usualmente a imagem inteira, e dividi-la at que se obtenham apenas parties homogneas. Neste ponto, uma heurstica de unio (merge) utilizada para juntar as parties correlatas. A maior desvantagem desse mtodo que a imagem resultante tenta imitar a estrutura utilizada para representar a imagem [CHENG et al., 2001] Crescimento de regies faz o caminho inverso de split-and-merge. Inicia de uma semente pr-selecionada e aplica tcnicas para aglomerar pontos vizinhos que satisfaam um critrio de homogeneidade. A vantagem desse tipo de tcnica que as regies geradas so conexas e compactas, mas clara a dependncia na escolha da semente e da ordem de apresentao dos pixels [LUCCHESE & MITRA, 2001].

4.4

Segmentao Baseada em Fronteiras


Em contraste com as outras descritas anteriormente, as tcnicas de segmentao de

fronteiras (ou deteco de bordas) se utilizam da descontinuidade entre os pixels vizinhos para efetuar a segmentao. Embora a deteco de bordas em imagens monocromticas tenha sido largamente investigada e tcnicas robustas tenham sido propostas, este tipo de tcnica de segmentao apresenta limitaes. Se uma imagem colorida possui regies adjacentes com o mesmo brilho mas diferentes nveis de colorao e saturao, tal fronteira no seria identificada em sua verso monocromtica. Por tal razo vrias tcnicas foram propostas para imagens coloridas, entre elas extenses de tcnicas utilizadas em imagens monocromticas, como o clculo de gradiente em trs dimenses.

4.5

Segmentao Baseada em Caractersticas Fsicas


Todas as tcnicas anteriores esto sujeitas a erros causados por reflexos ou sombras dos

objetos presentes na cena. Por exemplo, uma esfera pode ser segmentada em vrias regies devido s diferenas de iluminao. Para contornar esse problema, as tcnicas baseadas em caractersticas fsicas adicionam propriedades fsicas, tais como modelos de reflexo de certos materiais. Esta abordagem eficiente em situaes em que os modelos fsicos dos materiais constituintes dos objetos da cena sejam bem conhecidos. Porm tal premissa to rgida que limita bastante a aplicao dessas tcnicas [CHENG et al., 2001].

4.6

Redes Neurais para Segmentao de Imagens


As redes neurais possuem algumas desvantagens em relao a outras tcnicas quando

utilizadas para a segmentao de imagens, como por exemplo o tempo de treinamento muito longo e a sensibilidade aos parmetros de inicializao [CHENG et al., 2001]. No entanto o alto grau de paralelismo, a capacidade de mapeamento no-linear, a capacidade de autoadaptao, a tolerncia a erros e a simplicidade de implementao dos algoritmos [DONG & XIE, 2005] fazem das redes neurais uma alternativa bastante interessante. Assim como para agrupamento [XU & WUNSCH, 2005], o SOM e suas variantes se destacam na resoluo do problema da segmentao de cores. Sua capacidade de descrio do conjunto de dados de forma no-supervisionada aliado ao pequeno custo computacional foram decisivos na escolha desse mtodo. Por possuir um treinamento rpido, que pode ser executado online, no pertence classe das redes com a primeira desvantagem listada acima, porm sensvel aos parmetros de inicializao. Outra tcnica no-supervisionada para segmentao o Local Adaptive Receptive Field Self-Organizing Map (LARFSOM). O LARFSOM combina caractersticas do SOM com Grow When Required (GWR), permitindo um maior grau de adaptatividade que o SOM e convergncia mais rpida [ARAJO & COSTA, 2006]. Por tais motivos, decidiu-se analisar esse algoritmo e confront-lo com o SOM.

As prximas sees detalham como esses dois algoritmos so utilizados para a segmentao de imagens coloridas.

4.6.1

SOM

O algoritmo bsico do SOM encontra-se no captulo 3. Nesta seo pretende-se falar dos detalhes da aplicao deste mtodo segmentao de imagens coloridas. Como esta rede utilizada como um algoritmo de segmentao baseado em pixel, os valores RGB de cada pixel constituem o vetor de entrada. Dois so os parmetros que devem ser passados rede: tamanho da grade e taxa de aprendizagem inicial. O tamanho da grade define a quantidade de cores que o mapa pode representar e tambm o tamanho inicial da vizinhana. Ambos os parmetros decaem linearmente 6 com o nmero de iteraes. A segmentao feita do seguinte modo: Passo 1. Inicialize a rede com o tamanho da grade e a taxa de aprendizado inicial. Passo 2: Treine a rede segundo o algoritmo descrito no captulo 2, passando como entrada um pixel da imagem escolhido aleatoriamente, at que todos sejam apresentados. Passo 3: Substitua a cor de cada pixel pelos pesos da Best Matching Unit (BMU) referente a tal pixel.

4.6.2

LARFSOM

Assim como o SOM, o LARFSOM um algoritmo de segmentao baseado no espao de caractersticas. A descrio completa do modelo presente em [ARAJO & COSTA, 2006] contm um segundo estgio para a segmentao de fronteiras que no ser abordado neste texto.

Embora outras formas de variao desses parmetros so sugeridas em [HAYKIN, 1998], o decaimento linear deu resultados satisfatrios e evitou o uso de operaes custosas como a exponenciao e radiciao.

O LARFSOM contm as caractersticas interessantes do SOM e de GWR. Do primeiro a aprendizagem por competio, a capacidade de agrupamento e a distribuio topolgica, e do segundo a capacidade de aumentar o mapa apenas quando necessrio. Assim como no SOM, o tamanho do mapa define a quantidade de cores que o algoritmo pode representar. As relaes entre o tamanho do mapa e a quantidade de cores relevantes determinam a qualidade da classificao. Se o primeiro for maior que o segundo, classificaes falsas podem ocorrer, e se for o contrrio regies distintas podem ser unidas em uma s. Por isso, a capacidade de dinamicamente modificar o tamanho do mapa representa uma propriedade muito til desta tcnica. O algoritmo do LARFSOM divido em 10 passos: a inicializao dos parmetros, seleo do padro de entrada, procura pela Best Matching Unit (BMU), insero da conexo entre as BMUs, clculo do campo receptivo local da BMU, possvel insero de um novo n ou atualizao dos pesos, checagem do critrio de parada, construo da paleta de cores e construo da imagem segmentada. Passo 1: Inicialize os parmetros: taxa de aprendizagem final ( f ), modulador da taxa de aprendizagem ( ), limiar de atividade ( aT ), quantidade de vitrias do n i ( di ), mxima quantidade de vitrias de um n ( d m ), erro mnimo ( emin ) e o nmero inicial de ns conectados ( N = 2 ). Os ns iniciais so aleatoriamente escolhidos da imagem. Passo 2: Selecione aleatoriamente um padro = [ r
g b ] e apresente-o rede.
T

Passo 3: Calcule a distncia Euclidiana para todos os ns da rede de forma a encontrar a BMU s1 , que corresponde quele n cuja distncia a menor.
d ( , w i ) = w i
2

wi

= ( r wir ) + ( g w ig ) + ( b wib )
2 2

Passo 4: Insira uma conexo entre as duas BMUs, s1 e s2 . Passo 5: Calcule o campo receptivo local da BMU utilizando a frmula abaixo. O campo receptivo local indica a similaridade entre as duas BMUs.

rs1 =

(w

s1r

ws2 r

) + (w
2

s1 g

ws2 g

) + (w
2

s1b

ws2b

Passo 6: Calcule a atividade da BMU s1 com a seguinte frmula:

as1 =

exp w s1 rs1

Passo 7: Insira um novo n se a atividade for menor que o limiar de ativao, seno atualize os pesos. A insero de um novo n feita em cinco passos: Adicione um novo n com o peso igual ao valor RGB normalizado do padro de entrada atual . Incremente o contador de ns, N = N + 1 ; Remova a conexo entre as duas BMUs s1 e s2 . Logo adiante as conexes sero refeitas, ou entre as duas BMUs, ou entre elas e o novo n; Calcule as distncias dois a dois entre o novo n, e as duas BMUs. Insira uma conexo entre os ns que correspondem s menores distncias A atualizao de pesos feita pela seguinte frmula: w s1 = w s1

di f dm , di d m onde = di > d m f ,

Passo 8: Verifique o critrio de parada, definido pela frmula abaixo e volte ao Passo 2 a menos que ele seja satisfeito.
e= 1 N

w
i =0

N 1

icurrent

w iformer

emin = 104

Este o ltimo passo para o treinamento da rede. Para seu uso, considere os prximos passos: Passo 9: Aplique a cada n uma cor da paleta que mais se aproxime de seus pesos.

Passo 10: Atribua a cada pixel da imagem a cor mais prxima na paleta. Em [ARAJO & COSTA, 2006] h uma discusso sobre a interpolao de valores RGB para gerar mais cores, porm no de interesse deste trabalho executar esse passo, pois o objetivo reduzir bastante o nmero de cores. A descrio do algoritmo extensa e aparentemente deve demorar muito mais que o SOM para terminar seu treinamento, no entanto os resultados em [ARAJO & COSTA, 2006] mostram que a convergncia desse algoritmo muito rpida. Mais a frente, no captulo de resultados uma comparao feita entre o LARFSOM e SOM implementados para este trabalho.

O ROB FIGA

A partir do estudo relatado nas sees anteriores, foi desenvolvido o rob Figa, plataforma sobre a qual um sistema de deteco de objetos baseado em suas cores foi implantado.

Figura 5-1. O Rob Figa

Figa um rob mvel, terrestre, criado para ambientes internos, com navegao sem mapas baseada na deteco de objetos. Para que seja possvel control-lo devidamente a partir da deteco de objetos, impe-se a restrio de que este processo no deve demorar mais que dois segundos, ou seja, as imagens consigam ser processadas em uma taxa de 0,5 frames por segundo (fps). Nas sees seguintes detalha-se o ambiente e a implementao do rob.

5.1

O Ambiente
Em funo da complexidade da criao de um rob para ambientes externos,

principalmente relacionado aos problemas de iluminao, decidiu-se por testar o sistema robtico em um ambiente controlado. O ambiente formado por um piso branco, feito de um material no reflexivo, de forma a evitar confuso acerca de reflexos do objeto. Neste local esto distribudos de forma aleatria dois ou mais cubos verdes de aresta 3,5cm. Os cubos verdes representam os objetos a serem identificados pelo rob.

Figura 5-2. O objeto a ser buscado

5.2

Viso Fsica
A viso fsica do sistema apresenta os componentes utilizados em sua construo e suas

interdependncias.

Figura 5-3. Viso fsica. Imagem gentilmente criada e cedida por Vincius Fabrino

O bloco central da Figura 5-3, o Vortex 86, responsvel pelo processamento do rob. Ele se conecta atravs da porta serial ao microcontrolador PIC 16F877A, responsvel pelo controle dos motores. A comunicao entre o microcontrolador e os servos-motores feita por General Purpose Input/Output (GPIO). O Vortex 86 se conecta cmera atravs da porta USB e atravs da rede permite a conexo com o sistema Figa Vision. Nas sees seguintes cada bloco desses visto em detalhe.

5.2.1

Estrutura e Motores

Todos os componentes do Figa esto montados em uma estrutura construda com peas de MDF (Medium Density Fiberboard), material derivado da madeira. A estrutura possui formato de paraleleppedo.

Figura 5-4. Vises da estrutura. a) viso traseira b) viso lateral e c) viso isomtrica Modelo criado e gentilmente cedido por Paula Souza Teixeira

Na frente encontra-se uma roda livre, para auxiliar no equilbrio do rob. Nas laterais esto fixados dois servo-motores azuis da marca Motor Tech conectados a duas rodas, formando o sistema de trao. Os servo-motores precisaram ser adaptados para atingir o giro contnuo. A adaptao foi feita segundo o tutorial [PATSKO, 2006]. Estes servo-motores possuem o giro mais forte para uma direo e na montagem os motores ficam invertidos, ou seja, um possua o giro mais forte para frente enquanto o outro para trs. Por isso foi necessrio tambm inverter a polaridade do motor de corrente contnua (ou motor DC) contido em um dos servo-motores, de forma a proporcionar um movimento mais preciso.

5.2.2

Cmera

A cmera utilizada uma Quickcam for Notebooks Deluxe do fabricante Logitech. Possui um sensor CMOS, com resoluo mxima de 1.3MP e foco manual. A cmera est localizada em cima da roda livre, na regio frontal do rob.

5.2.3

Processamento Central

O processamento do rob feito em um processador Vortex 86 de 200MHz em um sistema All-in-one Single Board Computer, chamado eBox II, fornecido pela ICOP Technology. Esse sistema possui as interfaces bsicas de um desktop, tais como porta serial, porta paralela, porta PS/2, VGA, USB e ethernet, e o processador capaz de executar instrues de um processador x86 genrico. Nesta plataforma est rodando um sistema operacional Linux mnimo, baseado na distribuio Gentoo, chamado TinyGentoo. O TinyGentoo compilado com a biblioteca bsica de C uCLibc, verso micro da GNU Libc.

5.2.4

Controle dos Motores

Devido s restries temporais do acionamento dos motores, detalhados adiante, foi necessrio utilizar um microcontrolador. Por questes de familiaridade do autor e disponibilidade, escolheu-se o microcontrolador PIC 16F877A, do fabricante Microchip A placa, na qual o PIC est instalado, formada por um sistema de regulao de tenso, uma fonte de tempo, um sistema de compatibilizao de tenso para RS-232 e o microcontrolador.

Figura 5-5. Placa de controle dos motores

O sistema de regulao de tenso garante que a tenso fique estvel em 5V, caso sua entrada seja maior que esse valor. Tal nvel de tenso o nominal para o funcionamento de todos os outros sistemas. A fonte de tempo tem como principal componente um cristal de 20MHz montado conforme o manual do PIC [MICROCHIP, 1997]. A essa freqncia o PIC executa uma instruo a cada 200ns. O sistema de compatibilizao de tenso para RS-232 utilizado para a comunicao do PIC com a porta serial do computador onde executada a inteligncia do rob. Sua montagem segue o tutorial em [MESSIAS].

5.2.5

Controle Remoto e Monitoramento e Figa Vision

O rob possui um mdulo que permite controle remoto e monitoramento do processamento visual. As operaes so disponibilizadas atravs de uma rede ethernet. Em um processador separado, encontra-se o software que se conecta ao sistema controle remoto e monitoramento do rob, o Figa Vision.

5.3

Viso Lgica
Na viso lgica, os componentes esto separados em funcionalidades, como se pode ver

na Figura 5-6.

Figura 5-6. Viso lgica. Imagem gentilmente criada e cedida por Vincius Fabrino

So quatro os mdulos funcionais bsicos do sistema: mdulo de deteco de objetos, mdulo de navegao, mdulo de controle dos motores e mdulo de controle remoto e monitoramento. Para ter acesso ao ltimo necessrio o uso de um outro sistema chamado Figa Vision, que ser detalhado adiante. O mdulo de controle remoto e monitoramento e o Figa Vision esto marcados como opcionais pois no so parte essencial do sistema.

5.3.1

Controle dos Motores

Os motores so acionados por modulao em largura de pulso (PWM Pulse Width Modulation). Tal modulao permite a transmisso de informao a partir da modificao da largura de um pulso.

Figura 5-7. Relao entre pulso recebido e angulao de um servomotor

Os servomotores recebem o pulso PWM e convertem em um angulo em relao posio inicial. No entanto os servomotores deste projeto so modificados para alcanar o giro contnuo. Assim, se o pulso for abaixo de 1ms o motor ir girar no sentido anti-horrio; caso contrrio, no sentido horrio. O sistema de controle dos motores feito em dois mdulos: comunicao com a porta serial e gerao do PWM. A comunicao com a porta serial feita utilizando a Universal Asynchronous Receiver Transmiter (UART) presente no PIC. O dado recebido corresponde a uma direo (direita, esquerda, frente, trs) ou ao comando pare. O PIC responde com o (OK), se o dado estiver correto, ou n (Not OK), caso contrrio. O valor recebido pela porta serial armazenado para que o sistema de gerao do PWM utilize-o para enviar os sinais corretos a cada motor. O PIC possui um mdulo de gerao de PWM, porm permite apenas uma sada e como necessrio controlar dois motores, a gerao do sinal PWM feita via software. De forma a garantir o perodo do pulso, a gerao do PWM feita utilizando a interrupo de tempo.

IF tempo = 0.5 ms THEN Nvel lgico 0 para as portas que desejam duty cycle de 0.5ms ELSIF tempo = 1.5 ms THEN Nvel lgico 0 para as portas que desejam duty cycle de 0.5ms ELSIF tempo = 20 ms THEN Nvel lgico 1 em todas as portas Reinicie a contagem de tempo Como percebe-se pelo pseudo-cdigo acima, esse mdulo gera apenas sinais PWM com duty cycle de 0,5ms ou 1,5ms, mas esses so os valores necessrios para esta aplicao.

5.3.2

Deteco de Objetos

A deteco de objetos feita em trs passos: aquisio da imagem, segmentao em cores e busca por regio vencedora. A imagem capturada da cmera possui tamanho 320x240 pixels, codificada no sistema RGB com 8 bits para cada componente. Um ajuste de brilho feito automaticamente pela cmera, dispensando esse pr-processamento.

Em seguida, a imagem utilizada para segmentao de regies. Para isso foram implementados dois algoritmos: o SOM e o LARFSOM. Ambos possuem dois estgios: treinamento da rede e classificao das instncias. O estgio de treinamento feito utilizando pixels selecionados aleatoriamente. Com a rede treinada, cada pixel da imagem submetido rede e sua cor substituda pelos pesos do n vencedor. A busca por regio vencedora se inicia com a binarizao da imagem, transformando o que verde em preto e o resto em branco. A cor verde definida pela seguinte frmula:
1 R > L R 2 > G 2 + B 2 V ( R, G , B ) = caso contrrio 0

onde L um limiar empiricamente escolhido. Em seguida a imagem dividida em 9 retngulos. Para cada um calculada a porcentagem de pixels pretos. Aquele retngulo com a maior porcentagem torna-se a regio vencedora. Se a maior porcentagem estiver abaixo de 25%, nenhum retngulo dito vencedor.

Figura 5-8. Imagem dividida em regies

5.3.3

Navegao

A estratgia de navegao no utiliza mapas, mas a deteco de objetos. A sada do processo de deteco o retngulo da imagem com maior chance de conter um objeto verde, ou nenhum retngulo.

O rob segue a seguinte estratgia: IF no existe retngulo THEN IF estava buscando em frente THEN Vire a esquerda por alguns segundos ELSE Siga em frente por alguns segundos ELSE IF retngulo = 1 ou retngulo = 4 THEN vire esquerda; ELSIF retngulo = 3 ou retngulo = 6 THEN vire direita; ELSIF retngulo = 2 ou retngulo = 5 THEN v em frente; ELSE pare; (estgio final, encontrou o objeto) Se no existir objetos na cena, o rob inicia um processo de explorao do ambiente at que um objeto seja enquadrado. Quando isso acontecer, o rob centraliza o objeto e segue em sua direo, parando quando estiver prximo.

5.3.4

Controle Remoto e Monitoramento e Figa Vision

Para ajudar nos estgios iniciais de desenvolvimento e como forma de visualizao e apresentao dos resultados, foi criada uma interface de controle remoto e monitoramento do rob. Essa interface prov atravs de uma rede ethernet os seguintes servios: Comandos de movimentao (frente, trs, esquerda, direita e pare); Comandos de ajuste da imagem (brilho, contraste, colorao e whiteness); Visualizao da imagem capturada e do resultado do processamento. Os servios esto disponveis atravs de um sistema do tipo cliente/servidor, em que o rob faz o papel de servidor e o sistema Figa Vision faz o papel de cliente. O servidor permite a conexo de um usurio por vez atravs das portas 1024, utilizada para requisio de operaes e suas respostas, e 1025, para o envio de imagens. As mensagens trocadas pelos sistemas so as seguintes:

GET CAPTURE: enviada do cliente ao servidor requisitando o incio do envio das imagens; GET WINDOW INFO: enviada do cliente ao servidor requisitando as informaes da janela da imagem, isto , a largura e altura; GET IMAGE INFO: enviada do cliente ao servidor requisitando os parmetros utilizados na captura da imagem, ou seja, brilho, contraste, colorao e whiteness; SET IMAGE INFO: enviada do cliente ao servidor requisitando a mudana dos parmetros da captura para os valores passados; MOVE: enviada do cliente ao servidor requisitando a movimentao do rob na direo especificada; QUIT: pode ser enviada pelas duas partes para indicar o trmino da conexo; INVALID: mensagem enviada pelas duas partes para indicar recebimento de mensagem invlida. O Figa Vision uma interface grfica para tais comandos, mostrada na figura a seguir.

Figura 5-9. Interface grfica do Figa Vision

Os controles da esquerda permitem o ajuste da cmera para a captura da imagem. Os da direita permitem controlar a movimentao do rob. Embora este seja autnomo, durante a

fase de testes foi preciso control-lo remotamente. Na parte inferior encontra-se o controle de conexo com o Figa. A imagem da esquerda a capturada pela cmera e a da direita o resultado do processamento. No exemplo acima, o rob reconhece o retngulo pintado de preto como o predominante.

TESTES E RESULTADOS

Este captulo apresenta os resultados obtidos com a aplicao dos algoritmos de segmentao. A anlise desses resultados ser feita levando em considerao o tempo de execuo e a qualidade da segmentao. Dois tipos de testes foram executados. Primeiro aplicaram-se os algoritmos s imagens coletadas da USC-SIPI Image Database em um modo stand-alone, ou seja, separado da aplicao do rob. Aproveita-se para fazer uma comparao com os resultados obtidos pelos autores do LARFSOM. Em seguida sero analisados os resultados da aplicao dos algoritmos na segmentao de imagens capturadas no ambiente de execuo do rob. A execuo dos testes foi feita em duas mquinas: a eBox II, descrita no captulo anterior, e em um Intel Core 2 Duo E6300 1.87GHz com 2GB de memria RAM.

6.1

Resultados em Imagens da USC-SIPI Image Database


Quatro imagens, comumente utilizadas em anlises de algoritmos de processamento de

imagens, foram selecionadas: House (a), Pepper (b), Lena (c) e Baboon (d), mostradas na figura abaixo.

Figura 6-1. Imagens utilizadas nos testes. a) House b) Pepper c) Lena d) Baboon

Os parmetros escolhidos para o LARFSOM foram: = 0, 05 , = 0,3 , d m = 100 e


quatro valores para aT , 4,65, 3,65, 2,65 e 1,65. Os limiares de ativao 2,65, 1,65 foram sugeridos em [ARAJO & COSTA, 2006] e os outros foram escolhidos nos experimentos deste trabalho por motivos justificados adiante. Para o SOM foram utilizados trs tamanhos de mapa, 2x2, 3x3, 4x4 e 5x5, e a taxa de aprendizagem inicial de 0,7, valor escolhido empiricamente. Nesta seo ser dado um enfoque qualidade da segmentao, porm sem desconsiderar o tempo de execuo. Os testes foram executados apenas na mquina com Intel Core 2 Duo.

6.1.1

Imagem House

a imagem mais simples de segmentar. Possui 33.925 cores e poucas so dominantes [ARAJO & COSTA, 2006]. Seu tamanho 256x256 pixels. A Figura 6-2 mostra os resultados do SOM esquerda e do LARFSOM direita. Os tamanhos da grade do SOM so 2x2 para (a), 3x3 para (b), 4x4 para (c) e 5x5 para (d). Os limiares de ativao ( aT ) so 1,65 para (e), 2,65 para (f), 3,65 para (g) e 4,65 para (h).

Figura 6-2. Resultados da aplicao do SOM (a)-(d), e do LARFSOM (e)-(h) na imagem House.

Ambos conseguem bons resultados para a segmentao. O LARFSOM consegue com apenas duas cores, em (a), consegue diferenciar no s o fundo da casa, mas tambm as janelas. O SOM por outro lado consegue uma representao muito boa da imagem com 25 cores (d).
Image m N de ns Iterae s Tempo de Treinamento (s) 0,060 0,060 0,070 0,090 ~0,000 ~0,000 ~0,000 ~0,000 Tempo de Classificao (s) ~0,000 0,020 0,020 0,030 ~0,000 0,010 0,010 0,020

a) b) c) d) e) f) g) h)

4 9 16 25 2 5 5 7

65536 65536 65536 65536 18 97 57 155

Tabela 6-1. Resultados da aplicao do SOM e do LARFSOM na imagem House

6.1.2

Imagem Pepper

A imagem pepper possui tamanho 512x512 pixels e 183.525 cores. Como percebe-se as bordas dos objetos so definidas por grandes contrastes de cores. A Figura 6-3 mostra os resultados do SOM esquerda e do LARFSOM direita. Os tamanhos da grade do SOM so

2x2 para (a), 3x3 para (b), 4x4 para (c) e 5x5 para (d). Os limiares de ativao ( aT ) so 1,65 para (e), 2,65 para (f), 3,65 para (g) e 4,65 para (h).

Figura 6-3. Resultados da aplicao do SOM (a)-(d), e do LARFSOM (e)-(h) na imagem Pepper.

Novamente os dois conseguem bons resultados para a segmentao. O SOM com um mapa 5x5 (d) separa melhor as regies como os brilhos. No resultado com 25 ns do LARFSOM (g) aparece uma borda escura no existente na imagem original ao redor do brilho do pimento vermelho central. Por outro lado o LARFSOM consegue detectar a tonalidade de vermelho dominante em todos os experimentos e a utiliza para a representao dessa classe.
Image m N de ns Iterae s Tempo de Treinamento (s) 0,390 0,410 0,430 0,470 ~0,000 ~0,000 0,010 0,020 Tempo de Classificao (s) 0,030 0,040 0,060 0,100 0,060 0,050 0,140 0,210

a) b) c) d) e) f) g) h)

4 9 16 25 4 4 25 48

262144 262144 262144 262144 121 37 4228 11532

Tabela 6-2. Resultados da aplicao do SOM e do LARFSOM na imagem Pepper

6.1.3

Imagem Lena

A imagem Lena possui mais cores que os casos anteriores e vrias cores similares, tornando a segmentao mais difcil. Seu tamanho 512x512 pixels. A Figura 6-4 mostra os resultados do SOM esquerda e do LARFSOM direita. Os tamanhos da grade do SOM so 2x2 para (a), 3x3 para (b), 4x4 para (c) e 5x5 para (d). Os limiares de ativao ( aT ) so 1,65 para (e), 2,65 para (f), 3,65 para (g) e 4,65 para (h).

Figura 6-4. Resultados da aplicao do SOM (a)-(d), e do LARFSOM (e)-(h) na imagem Lena

Comparando os resultados com 4 cores do LARFSOM, imagens (f) e (g), com o resultado com o mesmo nmero de cores do SOM, imagem (a), percebe-se que o primeiro foi capaz de selecionar melhor as cores. Aqui percebe-se que a escolha dos parmetros fundamental para o resultado e deve ser orientada pela aplicao. Enquanto com duas cores possvel separar a casa do fundo e das janelas, na Figura 6-2 (e), acima em (e) algumas regies foram perdidas, unindo parte do rosto e costas com o cabelo abaixo do chapu. No entanto nessa mesma imagem, percebemos uma boa separao das regies iluminadas e das no iluminadas, independente de sua cor bsica.
Image m N de ns Iterae s Tempo de Treinamento (s) 0.360 Tempo de Classificao (s) 0.030

a)

262144

b) c) d) e) f) g) h)

9 16 25 2 4 4 9

262144 262144 262144 47 62 62 126

0.380 0.410 0.440 ~0.000 ~0.000 ~0.000 ~0.000

0.050 0.070 0.110 0.040 0.550 0.060 0.070

Tabela 6-3. Resultados da aplicao do SOM e do LARFSOM na imagem Lena

6.1.4

Imagem Baboon

Esta a imagem mais complexa devido ao grande nmero de cores (230.427) e s abruptas mudanas de cor [ARAJO & COSTA, 2006]. Seu tamanho 512x512 pixels. A Figura 6-5 mostra os resultados do SOM esquerda e do LARFSOM direita. Os tamanhos da grade do SOM so 2x2 para (a), 3x3 para (b), 4x4 para (c) e 5x5 para (d). Os limiares de ativao ( aT ) so 1.65 para (e), 2.65 para (f), 3.65 para (g) e 4.65 para (h).

Figura 6-5. Resultados da aplicao do SOM (a)-(d), e do LARFSOM (e)-(h) na imagem Baboon

Contrariando as expectativas, o LARFSOM no gerou bons resultados com essa imagem. At mesmo com um maior nmero de cores, como na imagem (h), as cores mais relevantes no se sobressaram. Da mesma forma como diferentes limiares de ativao foram necessrios para esta implementao, pois os resultados encontrados em [ARAJO & COSTA, 2006] no puderam

ser reproduzidos com os parmetros sugeridos, novas combinaes de parmetros precisam ser exploradas para esta imagem. Sugere-se a modificao dos parmetros de aprendizagem,

e , uma vez que o nmero de ns no foi o que determinou a qualidade do resultado,


como pode ser visto na tabela 6-4.

Image m

N de ns

Iterae s

a) b) c) d) e) f) g) h)

4 9 16 25 5 12 13 34

262144 262144 262144 262144 150 1163 514 3687

Tempo de Treinamento (s) 0.350 0.430 0.460 0.680 ~0.000 ~0.000 ~0.000 ~0.000

Tempo de Classificao (s) 0.020 0.040 0.060 0.110 0.570 0.100 0.090 0.360

Tabela 6-4. Resultados da aplicao do SOM e do LARFSOM na imagem Baboon

6.1.5

Observaes

Nos resultados mostrados acima percebe-se que a qualidade da segmentao aparentemente boa para os dois algoritmos. V-se tambm a capacidade do LARFSOM de encontrar as cores relevantes, mesmo com um nmero reduzido de ns, como observado em [ARAJO & COSTA, 2006]. A grande diferena est na rpida convergncia do LARFSOM, o que capacita este algoritmo a ser utilizado em aplicaes onde tempo crtico. Mas deve-se observar as diferenas entre os resultados obtidos neste trabalho e os resultados do autor do LARFSOM. Primeiramente, em [ARAJO & COSTA, 2006] os testes foram executados com os limiares de ativao 1.0, 1.65 e 2.65. Devido a resultados fracos obtidos com o limiar 1.0, tal valor para o parmetro foi desconsiderado e novos valores, como mostrados nos experimentos acima foram utilizados. As outras diferenas esto nas situaes excepcionais que foram percebidas: a primeira em que a convergncia muito rpida, em cerca de duas iteraes, resultando em uma segmentao pobre, e a segunda em que o algoritmo fica preso em um mnimo local. A primeira acontece freqentemente ao se utilizar o limiar de ativao de 1.0, motivo pelo qual

ele foi evitado. Para contornar a segunda situao foi includa outra condio de parada que o nmero de iteraes ser igual quantidade de pixels na imagem. Embora o SOM, da forma como foi implementado neste trabalho, possua uma grande desvantagem em relao ao tempo de computao, problemas como os citados no pargrafo anterior no aconteceram. Os resultados obtidos nesses experimentos guiaram os experimentos no ambiente do rob, tratados em mais detalhes na prxima seo.

6.2

Resultados no Ambiente do Rob


Nesta seo faremos uma anlise mais profunda em relao ao tempo de execuo dos

algoritmos e a influncia de cada um no processo de encontrar a regio da imagem com predominncia da cor verde, assim como no mtodo descrito no captulo anterior. No ambiente do rob foi analisada a aplicao dos algoritmos em uma situao em que dois cubos verdes aparecem, situao ilustrada na Figura 6-6. Os parmetros utilizados no LARFSOM so os mesmos dos testes anteriores, mas com o limiar de ativao aT = 2, 65 . Para o SOM utilizou-se uma grade de 3x3.

Figura 6-6. Imagem utilizada para os testes no ambiente do rob

A aplicao dos algoritmos nesse ambiente resulta nas seguintes imagens.

Figura 6-7. a) Imagem 6-6 segmentada pelo SOM b) Imagem 6-6 segmentada pelo LARFSOM

Como possvel perceber, o LARFSOM diminuiu drasticamente o nmero de cores e conseguiu separar o fundo dos objetos, bem como as sombras. O SOM classificou a sombra de um objeto como sendo verde e tambm a regio mais escura do fundo. Para tal situao foi capturado um conjunto massivo de dados que est sumarizado nas tabelas a seguir. Essas tabelas mostram algumas medidas estatsticas extradas das seguintes caractersticas: nmero de iteraes que o algoritmo teve que rodar, nmero de cores final, tempo de treinamento da rede e tempo de classificao dos pixels.
Caracterstica Mdia Desvio-padro Valor mximo 76800 19 0,120002 0.060001 Valor mnimo

263,5977 Iteraes 4,0181 N de cores Tempo de treinamento 0,000471 Tempo de 0,014377 classificao

2660,6561 1,4025 0,004175 0,005116

2 2 ~0,000000 0.010000

Tabela 6-5. Estatsticas da execuo do LARFSOM na mquina com processador Intel Core 2 Duo

Caracterstica

Mdia

Desvio-padro

Tempo de treinamento 0,098402 Tempo de 0,023215 classificao

0,016905 0,008321

Valor mximo 0,490007 0,340005

Valor mnimo 0,070001 0,020000

Tabela 6-6. Estatsticas da execuo do SOM na mquina com processador Intel Core 2 Duo

A quantidade de iteraes no LARFSOM varia bastante, por isso foi criado tambm um histograma para esses dados. O tempo de treinamento, como j visto, muito menor para o LARFSOM, cerca de 200 vezes mais rpido. O tempo de classificao muito prximo, porm o LARFSOM ainda leva vantagem devido ao reduzido nmero de cores. Como visto

na tabela, a mdia de cores geradas pelo LARFSOM de aproximadamente 4, contra as 9 geradas no SOM.
Caracterstica Mdia Desvio-padro Valor mximo 76800 14 7,028968 1,032928 Valor mnimo

419,873 Iteraes 4,235 N de cores Tempo de treinamento 0,038803 Tempo de 0,540474 classificao

4147,460 1,328 0,363354 0,075959

2 2 0,000126 0,404299

Tabela 6-7. Estatsticas da execuo do LARFSOM na mquina com processador Vortex 86

Caracterstica

Mdia

Desvio-padro

Tempo de treinamento 4,477624 Tempo de 0,847259 classificao

0,621809 0,024992

Valor mximo 6,786104 0,914179

Valor mnimo 3,201113 0,811829

Tabela 6-8. Estatsticas da execuo do SOM na mquina com processador Vortex 86

Na eBox a proporo entre o tempo de classificao do LARFSOM e SOM diminui para um pouco mais de 100 vezes, porm continua a ser uma diferena significativa. No entanto, deve-se dar importncia nesse caso aos valores absolutos. Os tempos mdios de treinamento do SOM nessa arquitetura so proibitivos, enquanto os do LARFSOM ainda so aceitveis para a mdia, mas igualmente proibitivos para o pior caso. Por isso foi necessrio analisar esse valores de outra forma, como a seguir.

Figura 6-8. Histogramas do tempo de execuo e de classificao do LARFSOM

Embora os pior caso do treinamento do LARFSOM seja proibitivo, em 1000 execues mais de 950 ficaram em menos de 0,25 ms. O tempo de classificao sofre uma variao maior, mas a parte mais significativa est abaixo de aproximadamente 0.66 ms. Com tais

limitantes superiores consegue-se um processamento levemente maior que 1 fps. Dessa forma considera-se que o LARFSOM uma boa escolha, mesmo para arquiteturas mais limitadas, como o caso da eBox II.

CONSIDERAES FINAIS

Os conceitos bsicos para o desenvolvimento deste trabalho foram vistos, tais como as tcnicas de navegao baseadas em viso, as redes neurais no-supervisionadas, o problema da segmentao em detalhes e solues baseadas em redes neurais. Todo esse conhecimento descrito, aliado a conhecimento tcnico adquirido ao longo do curso e em atividades extra-curriculares, tornaram possvel a implementao de um rob capaz de detectar objetos de uma dada cor e se movimentar at as proximidades desse. As tcnicas utilizadas foram descritas em detalhe e uma avaliao de sua performance foi feita, tanto em termos de qualidade dos resultados quanto de velocidade de processamento, permitindo concluir que em uma arquitetura de processamento mais poderosa, ambos os algoritmos conseguem processar a uma taxa maior ou igual a 0,5 fps, mas em uma arquitetura mais simples, como a da eBox, o Mapa Auto-Organizvel inadequado, mas o LARFSOM se mostra como um forte competidor, pois alcana os objetivos na maior parte do tempo, como foi mostrado nos resultados. Os resultados encontrados permitem a continuao deste trabalho, seja por melhoramentos ou pela extenso do escopo do projeto. Assim algumas propostas para trabalhos futuros devem ser citados: Quanto parte fsica do projeto, sugere-se melhorar a estrutura mecnica, sobretudo os motores, que possuem um eixo frgil, permitindo o estabelecimento de uma arquitetura robusta para estudos em inteligncia artificial aplicada robtica mvel;

Quanto estrutura computacional, indica-se uma anlise mais profunda das necessidades computacionais para algoritmos de viso computacional desta natureza, de forma a determinar ou no o quo adequada essa arquitetura utilizada; Quanto aos algoritmos, deve-se reavaliar o critrio de parada para o SOM, de forma a diminuir o tempo de treinamento desta rede, e verificar as causas da convergncia muito rpida do LARFSOM, em certa de duas iteraes, e os casos em que o algoritmo fica preso em um possvel mnimo local; E por fim, ao pensar em aumentar o escopo do projeto, deve-se considerar a insero de tcnicas de deteco de formas permitindo uma maior diferenciao dos objetos alm da cor.

REFERNCIAS BIBLIOGRFICAS

[HORN, 1986] HORN, Berthold Klaus Paul. Robot Vision. New York: MIT Press, 1986. [MALIS, 2002] MALIS, Ezio. Survey of Vision Based Robot Control. European Naval Ship Design, Captain Computer IV Forum. Brest, France, April, 2002. [DESOUZA et al, 2002] DESOUZA, Guilherme N.; KAK, Avinash C. Vision for Mobile Robot Navigation: A Survey. IEEE Transactions on Pattern Analysis and Machine Intelligence. Vol. 24, No 2, February, 2002. [ARAJO & COSTA, 2006] ARAJO, Aluizio R. F.; COSTA, Diogo C. Local Adaptive Receptive Field Self-Organizing Map for Image Segmentation. Proceedings of the Workshop on
Self-Organizing Networks (WSOM 2007), Bielefeld, Germany, September 03-06. [COSTA, 2007] COSTA, Diogo C. Mapa Auto-Organizvel com Campo Receptivo Adaptativo Local para Segmentao de Imagens. 2007. 109 f. Dissertao (Mestrado em Cincia da Computao) Centro de Informtica, Universidade Federal de Pernambuco. Recife.

[BORENSTEIN et al., 1996] BORENSTEIN, J.; EVERETT, H. R.; FENG, L. Navigating Mobile Robots: Systems and Techniques. Wellesley, MA.: A K Peters, 1996. [THRUN, 2003] THRUN, Sebastian. Robotic Mapping: A Survey. In: Exploring Artificial Intelligence in the New Millennium. San Francisco, CA.: Morgan Kauffman, 2003. cap. 1, p. 1-36. [TEMIZER, 2001] TEMIZER, Selim. Optical Flow Based Robot Navigation. Online em: http://people.csail.mit.edu/lpk/mars/temizer_2001/Optical_Flow/ . Acesso em: 23 de janeiro de 2008. [DUDA et al., 2000] DUDA, Richard O.; HART, Peter E.; STORK, David G. Pattern Classification. 2.ed. New York: Wiley, 2000. p.517-600. [DAYAN, 1999] DAYAN, Peter. Unsupervised Learning. In: WILSON, Robert A.; KEIL, Frank C. The MIT Encyclopedia of the Cognitive Sciences. New York: MIT Press, 2001. [HAYKIN, 1998] HAYKIN, Simon. Neural Networks: A Comprehensive Foundation. 2.ed. New York: Prentice-Hall, 1998. p. 465-505.

[BEALE & JACKSON, 1990] BEALE, R.; JACKSON, T. Neural Computing: An Introduction. Philadelphia: Institute of Physics Publishing, 1990. [XU & WUNSCH, 2005] XU, Rui; WUNSCH, Donald. Survey of Clustering Algorithms. IEEE Transactions on Neural Networks, Vol. 16, No. 3, May, 2005. [CHENG et al., 2001] CHENG, H. D.; JIANG, X. H.; SUN, Y.; WANG, J. Color image segmentation: advances and prospects. Pattern Recognition, Vol. 34, No. 12, 2001. pp.22592281 [SKARBEK & KOSCHAN, 1994] SKARBEK, Wladyslaw; KOSCHAN, Andreas. Colour Image Segmentation A Survey. Technical Report. Technical University Berlin, 1994. [LUCCHESE & MITRA, 2001] LUCCHESE, L.; MITRA, S. K. Color Image Segmentation: A State-of-the-Art Survey. Proceedings of The Indian National Science Academy, 2001. [DONG & XIE, 2005] DONG, Gui; XIE, Ming. Color Clustering and Learning for Image Segmentation Based on Neural Networks. IEEE Transactions on Neural Networks, Vol. 16, No. 4, July, 2005. [PATSKO, 2006] PATSKO, Lus F. Tutorial de Adaptao de Servo-Motores. Online em: http://www.maxwellbohr.com.br/downloads/Tutorial%20Mecanica%20%20Adaptacao%20de%20servo-motores.pdf. Acesso em: 23 de janeiro de 2008. [MICROCHIP, 1997] MICROCHIP. PICmicroTM Mid-Range MCU Family Reference Manual. Online em: http://ww1.microchip.com/downloads/en/devicedoc/33023a.pdf. Acesso em: 23 de janeiro de 2008. [MESSIAS] MESSIAS, Antnio R. Conectando 8 Teclados na Porta Serial Atravs de um Microcontrolador PIC 16F877 para Controle de Acessos. Online em: http://rogercom.com/PortaSerial/ControleAcesso/Controle.htm. Acesso em: 23 de janeiro de 2008.