140
Modelo U NIVERSIDADE F EDERAL DE G OIÁS I NSTITUTO DE I NFORMÁTICA F RANCISCO C OELHO C ITÓ F EITOSA Um estudo prático para contagem volumétrica automática de veículos usando Visão Computacional Goiânia-GO 2012

this page...2012-11-28 ·

Embed Size (px)

Citation preview

Mod

eloUNIVERSIDADE FEDERAL DE GOIÁS

INSTITUTO DE INFORMÁTICA

FRANCISCO COELHO CITÓ FEITOSA

Um estudo prático para contagemvolumétrica automática de veículos

usando Visão Computacional

Goiânia-GO2012

UNIVERSIDADE FEDERAL DE GOIÁS

INSTITUTO DE INFORMÁTICA

AUTORIZAÇÃO PARA PUBLICAÇÃO DE DISSERTAÇÃO

EM FORMATO ELETRÔNICO

Na qualidade de titular dos direitos de autor, AUTORIZO o Instituto de Infor-mática da Universidade Federal de Goiás – UFG a reproduzir, inclusive em outro formatoou mídia e através de armazenamento permanente ou temporário, bem como a publicar narede mundial de computadores (Internet) e na biblioteca virtual da UFG, entendendo-seos termos “reproduzir” e “publicar” conforme definições dos incisos VI e I, respectiva-mente, do artigo 5o da Lei no 9610/98 de 10/02/1998, a obra abaixo especificada, sem queme seja devido pagamento a título de direitos autorais, desde que a reprodução e/ou publi-cação tenham a finalidade exclusiva de uso por quem a consulta, e a título de divulgaçãoda produção acadêmica gerada pela Universidade, a partir desta data.

Título: Um estudo prático para contagem volumétrica automática de veículos usandoVisão Computacional

Autor(a): Francisco Coelho Citó Feitosa

Goiânia-GO, 21 de Setembro de 2012 .

Francisco Coelho Citó Feitosa – Autor

Hugo Alexandre Dantas do Nascimento – Orientador

Fabrízzio Alphonsus Alves de Melo Nunes Soares – Co-Orientador

FRANCISCO COELHO CITÓ FEITOSA

Um estudo prático para contagemvolumétrica automática de veículos

usando Visão Computacional

Dissertação apresentada ao Programa de Pós–Graduação doInstituto de Informática da Universidade Federal de Goiás,como requisito parcial para obtenção do título de Mestre emMestrado em Ciência da Computação.

Área de concentração: Visão Computacional e Otimizaçãode Algoritmo.Orientador: Prof. Hugo Alexandre Dantas do NascimentoCo-Orientador: Prof. Fabrízzio Alphonsus Alves de MeloNunes Soares

Goiânia-GO2012

FRANCISCO COELHO CITÓ FEITOSA

Um estudo prático para contagemvolumétrica automática de veículos

usando Visão Computacional

Dissertação defendida no Programa de Pós–Graduação do Instituto deInformática da Universidade Federal de Goiás como requisito parcialpara obtenção do título de Mestre em Mestrado em Ciência da Compu-tação, aprovada em 21 de Setembro de 2012 , pela Banca Examinadoraconstituída pelos professores:

Prof. Hugo Alexandre Dantas do NascimentoInstituto de Informática – UFG

Presidente da Banca

Prof. Fabrízzio Alphonsus Alves de Melo Nunes SoaresInstituto de Informática – UFG

Prof. Claudio Afonso FleuryUniversidade Federal de Goiás - UFG

Prof. Ronaldo Martins da CostaUniversidade Federal de Goiás - UFG

Todos os direitos reservados. É proibida a reprodução total ou parcial dotrabalho sem autorização da universidade, do autor e do orientador(a).

Francisco Coelho Citó Feitosa

Possui graduação em Ciência da Computação pela Universidade Paulista(2007). Tem experiência de 6 ano em desenvolvimento para internet. Em2010 deu início ao mestrado em Ciência da Computação pela UniversidadeFederal de Goiás, no qual sua pesquisa teve ênfase em Visão Computacionale Otimização de Algoritmos.

Este trabalho é dedicado aos meus pais, os quais foram, são e continuarão sendoos meus professores da disciplina mais difícil, a vida.

Também dedico à Walid Jradi, que mesmo com toda a sua dificuldade motora ede locomoção devido a sua deficência física, me ensinou que quando realmente queremosalgo conseguimos alcançá-lo, independente das barreiras que a vida coloca em nossafrente, basta termos força de vontade e trabalharmos muito.

Agradecimentos

Primeiramente agradeço a DEUS, pois sem ELE nada existiria. Não sei porquetenho uma vida privilegiada em meio a tanto sofrimento existente no mundo, masagradeço a ELE por cada dia da minha vida. Agradeço aos meus pais, Citó e Alice,pelo amor incondicional, no qual por muitas vezes deixaram suas próprias vidas de ladobuscando o meu bem estar. Ao meu irmão, André, por ser meu eterno melhor amigo. Àminha companheira, Lanna Flávia, que em bons e maus momentos, foi uma das pessoasque mais me deu forças para realização deste trabalho. Também agradeço a todos os meusamigos pelo companheirismo, principalmente a meu grande amigo Cláudio Braz.

Agradeço em especial ao professor Dr. Hugo Alexandre Dantas do Nascimento,que além de me dar a oportunidade de iniciar este trabalho de pesquisa, esteve semprepresente e acessível ao longo de sua realização. Também sou muito grato ao professorDr. Fabrízzio Alphonsus Alves de Melo Nunes Soares por me co-orientar neste trabalho,me ajudando principalmente na solução de problemas da área de Visão Computacional eenriquecendo muito o meu conhecimento. Agradeço aos professores Dr. Humberto JoséLongo, Dr. Leslie Foulds e Dr. Bryon Richard, pelo apoio prestado, não apenas em meutrabalho, mas do grupo de estudo. Agradeço a todos os meus colegas do grupo de estudos,Walid Jradi, Wanderley Alencar, Iacer Calixto, Daniel Carvalho e Marcello Henrique queme ajudaram muito no desenvolvimento deste trabalho e a todos os colegas de mestrado.

Sou muito grato também ao Conselho Nacional de Desenvolvimento Científicoe Tecnológico, CNPQ, pela bolsa de estudos concedida, a qual me deu possibilidades derealizar este trabalho. E à Universidade Federal de Goiás, UFG, por oferecer a estruturanecessária ao desenvolvimento do meu projeto.

Também gostaria de agradecer aos professores que enviaram a carta de recomen-dação, a qual é exigida para início das atividades do mestrado, Nelson Leitão, EstanislauGonçalves Neto, Daniel Daher de Alencar e Rafael Leal Martins. E aos funcionários dasecretaria do Instituto de Informática, INF, da UFG, Edir de Jesus, Enio Perez, RicardoSena e Mirian Castro, por sempre me ajudarem com questões administrativas.

Confia ao Senhor as tuas obras, e os tesus desígnios serão estabelecidos

Provérbios 16:3,Bíblia Sagrada.

Resumo

Coelho Citó Feitosa, Francisco. Um estudo prático para contagem volumé-trica automática de veículos usando Visão Computacional. Goiânia-GO,2012 . 138p. Dissertação de Mestrado. Instituto de Informática, UniversidadeFederal de Goiás.

Contagem Volumétrica de Veículos é a coleta do número de veículos que trafegam emlocal e horário determinados. A informação coletada é de grande importância para oplanejamento do tráfego urbano. Neste trabalho, é proposto e avaliado um método paracontagem volumétrica de veículos que utiliza Visão Computacional. Se diferencia deoutras pesquisas da área por focar na execução do método em dispositivos móveis. Paraisso foi realizado um estudo visando identificar as limitações desses dispositivos e buscarmelhorias no desempenho dos algoritmos.

Palavras–chave

Visão Computacional, Contagem Volumétrica de Veículos, Engenharia de Trans-porte, Processamento Digital de Imagens

Abstract

Coelho Citó Feitosa, Francisco. A case study for automatic volumetric coun-ting of vehicles using Computer Vision. Goiânia-GO, 2012 . 138p. MSc. Dis-sertation. Instituto de Informática, Universidade Federal de Goiás.

Volumetric Vehicle Counting is the gathering of the number of vehicles traveling atcertain place and time. The information collected is of great importance for decisionmaking and planning of urban traffic. This paper proposes, a system, using methods ofComputer Vision, that counts the vehicles in a automatic mode. In this work is proposedand evaluated a method for volumetric vehicle counting using Computer Vision. Thiswork Differs from other studies in the area by focusing on method execution on mobiledevices. For this study was conducted to identify constraints of these devices and seekimprovements to the performance of the algorithms.

Keywords

Computer Vision, Volumetric Vehicle Counting, Transport Engineering, DigitalImage Processing

Sumário

Lista de Figuras 12

Lista de Tabelas 14

Lista de Algoritmos 15

1 Introdução 161.1 Objetivos 171.2 Organização da Dissertação 17

2 Visão Computacional 192.1 A imagem digital e o formato de cores RGB 202.2 Histograma 222.3 Escala de Cinza 222.4 Realce de Contraste 232.5 Equalização de histograma 242.6 Limiarização 25

2.6.1 Bases da limiarização de intensidade 262.6.2 Limiarização global 272.6.3 Limiarização variável 272.6.4 Método de Otsu para encontrar o limiar ótimo 27

2.7 Filtragem espacial linear: Convolução e Correlação 292.8 Filtro espacial de suavização 312.9 Filtro espacial de aguçamento 332.10 Operações morfológicas 342.11 Erosão 352.12 Dilatação 362.13 Abertura e Fechamento 372.14 Rotulação de componentes conectados 392.15 Ferramentas para o desenvolvimento de aplicativos com Visão Computacional 41

2.15.1 OpenCV 412.15.2 JavaCV 41

3 Contagem de veículos e monitoramento do tráfego 433.1 Equipamentos Invasivos 44

3.1.1 Tubo pneumático 443.1.2 Detectores de laços indutivos 453.1.3 Sensores Piezoelétricos 453.1.4 Sensores Magnéticos 46

3.1.5 Peso em Movimento 463.2 Equipamentos Não-invasivos 46

3.2.1 Processador de vídeo e imagem 473.2.2 Radar por Microondas 473.2.3 Sensores Infravermelho 483.2.4 Sensores Ultrassônicos 493.2.5 Sensores de Vetor de Acústica Passiva 49

3.3 Aplicações de Visão Computacional para contagem de veículos e auxílio aoplanejamento do tráfego urbano 493.3.1 Detecção de movimento, acompanhamento e extração de informações de

veículos 523.3.2 Um método de segmentação baseado em modelo de veículo para acompanha-

mento 533.3.3 Um método para contagem de veículos na presença de múltiplos veículos

ocludidos em imagens do tráfego 573.4 Aplicações de Visão Computacional para auxílio e monitoramento do tráfego urbano 66

3.4.1 Técnica utilizando visão computacional para direção autônoma de um veículo

inteligente 663.4.2 Detecção de placa de veículos 67

4 Método para a contagem volumétrica automática de veículos 704.1 Fluxo de processos 71

4.1.1 Entrada de dados 734.1.2 Pré-processar imagem 734.1.3 Reconhecer imagem de referência de fundo 754.1.4 Definir área de movimento 794.1.5 Segmentar objetos 854.1.6 Acompanhar objetos segmentados 90

5 Testes e Resultados 995.1 Aplicativo desenvolvido 995.2 Testes 100

5.2.1 Definindo valores dos parâmetros 101Parâmetros iniciais 101Parâmetros para reconhecimento do fundo 102Parâmetros para definição da área de movimento 102Parâmetros para segmentação e acompanhamento de objetos 102

5.2.2 Analisando tempo do algoritmo 1045.2.3 Resultados finais 104

6 Adaptando o método para dispositívos móveis 1086.1 Adaptações do código fonte 1086.2 Analisando a execução do método 1086.3 Executando e analisando o método adaptado 109

7 Conclusão 1147.1 Objetivos alcançados 1147.2 Pontos negativos do método desenvolvido 1147.3 Comentários gerais 1157.4 Trabalhos futuros 115

Referências Bibliográficas 116

A Comparação entre funções utilizadas no JavaCV e no OpenCV 122

B Resultados do teste de parâmetros 123

Lista de Figuras

2.1 Representação de um pixel de uma imagem digital 212.2 Representação de um histograma 222.3 Escala de cinza 232.4 Realce de contraste 242.5 Equalização de histograma 252.6 Limiarização de uma imagem em tons de cinza 262.7 Histograma de duas imagem com limiares único e múltiplos 272.8 Método de Limiarização de Otsu 292.9 Filtro Espacial 302.10 Filtro de suavização 312.11 Máscaras para Filtro de Suavização 322.12 Filtro de aguçamento 342.13 Operação morfológica de erosão 352.14 Operação morfológica de dilatação 362.15 Utilização da dilatação para unir partes separadas de caracteres 372.16 Abertura e fechamento morfológicos 382.17 Abertura e fechamento morfológicos 402.18 Rotulação de componentes conexos 40

3.1 Estudo do comportamento das formas de um veículo sedan em diferentesângulos 54

3.2 Possibilidade de oclusão entre veículos 553.3 GDM de um veículo 573.4 Grafo extraído da GDM 583.5 Ciclos dos grafos gerados através da GDM 593.6 Computando a diferença da textura dT 603.7 Segmentação utilizando T-map, L-map e C-map 623.8 Extração dos pontos de curvatura de uma imagem com veículos aglome-

rados segmentados 643.9 Linhas entre os pontos de curvatura 653.10 Veículos segmentados 653.11 A instalação dos sensores no veículo por Ohio State University 663.12 Ilustração da técnica de crescimento simultâneo de pixels 673.13 Histograma da imagem gerada ao aplicar o filtro de SOBEL vertical 683.14 Binarização da imagem da placa de um veículo 68

4.1 Posicionamento da câmera para captura de imagens 714.2 Diagrama com a representação geral de etapas do sistema. 724.3 Esquema da etapa de pré-processamento da imagem. 74

4.4 Imagem pré-processada. 754.5 Diagrama de fluxo do processo para reconhecimento da imagem de

referência de fundo. 764.6 Recochecimento de fundo baseado na média 774.7 Diagrama de fluxo do processo para definição da área de movimento. 804.8 Verificando movimento entre quadros 814.9 Definindo a área de movimento 834.10 Diagrama de fluxo do processo de segmentação de objetos. 864.11 O problema da limiarização pelo método de Otsu para segmentação de

objetos 874.12 Segmentando objetos 884.13 Diagrama de fluxo do processo de acompanhamento de objetos segmen-

tados. 91

Lista de Tabelas

5.1 Vídeos utilizados nos testes 1005.2 Análise assintótica do método 1055.3 Resultado da contagem 106

6.1 Tempo de execução do vídeo 1 1106.2 Tempo de execução do vídeo 2 1116.3 Resultados da execução no celular 113

B.1 Teste de Parâmetros 123

Lista de Algoritmos

4.1 PreProcessarQuadro(imgini) 754.2 ReconhecerImagemDeFundo(img f ore,msb, f ,δb,w,h,de f Back) 784.3 De f inirAreaDeMovimento(img f ore, imgprev, f ,δm,δm f ,w,h,de f Mov) 844.4 SegmentarOb jetos(img f ore, imgback,a.min,a.max) 904.5 AtualizaHistorico(o, f ) 924.6 AdicionaOb jeto(o,h, f ) 934.7 RemoveOb jetos(h, f ) 944.8 AcompanharOb jetosSegmentados(o,h, f ,δi,δd,δh,δp,δr) 944.9 InterseccaoDeArea(oi,h j, f ) 954.10 DistanciaDeCentro(oi.center(x),h j.center(x), f ) 964.11 EstimarPosicao(oi,h j, f ) 974.12 SimilaridadeMatiz(oi.hue,h j.hue) 984.13 SimilaridadeRazao(oi,h j) 98

CAPÍTULO 1Introdução

A frota de veículos nas cidades brasileiras aumentou consideravelmente nosúltimos anos. Segundo a FENABRAVE [21] (Federação Nacional da Distribuição deVeículos Automotores), as vendas de veículos cresceram cerca de 235% entre os anosde 2003 e 2010. Com o aumento do volume de veículos e o crescimento desorganizadodas grandes cidades brasileiras, o trânsito tem se apresentado cada vez mais caótico e oseu planejamento mais complexo.

Devido ao enorme custo financeiro e a alta quantidade de poluentes emitidospelo trânsito, torna-se assim imprescindível o desenvolvimento de medidas para melhoraro fluxo de veículos na malha viária.

Por se tratar de um assunto complexo e delicado, onde uma decisão mal plane-jada acarretaria ainda em mais congestionamentos, foram desenvolvidos diversos modelosde simulação para apoio ao planejamento do tráfego urbano.

Segundo Ortúzar e Willumsen [12], um modelo pode ser entendido como umarepresentação simplificada de uma parte do mundo real, a qual procura focar certoselementos considerados importantes para análise, sob um determinado ponto de vista.Dessa forma, a modelagem do tráfego tenta descrever o comportamento do mesmo pormeio de recursos comportamentais, computacionais e matemáticos, de forma a entendermelhor seus problemas ou prever comportamentos futuros.

Diversos sistemas computacionais foram desenvolvidos para facilitar a simula-ção do tráfego urbano, entre eles podemos destacar DRACULA [41], NEMIS [7] e VIS-SIM [58]. Outros sistemas podem sem encontrados em [47].

Tais sistemas utilizam, como uma de suas entradas, uma matriz de demandasorigem-destino, a qual indica a quantidade de pessoas ou veículos que desejam trafegarentre pares de pontos origem-destino de uma rota [13].

Para que a matriz de demandas seja gerada, é necessária a realização da contagemde veículos, a qual pode ser classificada como volumétrica, obtendo apenas o número deveículos que transitaram em um determinado trecho, ou classificatória, a qual é maisdetalhada, determinando também o tipo de veículo como caminhão, ônibus, carro depasseio, entre outros.

1.1 Objetivos 17

Os dois tipos de contagens podem ser executados de maneira manual ou atravésde equipamentos eletrônicos que normalmente são de elevado custo financeiro. De acordocom a forma de instalação, os mesmos podem ser classificados quanto a invasivos ou não-invasivos [14]. Os métodos invasivos são aqueles que necessitam ser instalados junto ousob a camada asfáltica. Por sua vez, os métodos não-invasivos são aqueles que utilizamcâmeras ou sensores, ou são instalados sobre o solo.

Embora já existam trabalhos que realizam a contagem de veículos como [30],[71], [72], [5], entre outros [31], [1] e [57]. No entanto, esses trabalhos apresentamsistemas que demandam condições específicas do ambiente de captura da imagem paraque os mesmos sejam bem controlados e exigem ainda o poder de processamento decomputadores convencionais, o que pode ser difícil de garantir e ter custo elevado deinstalação.

Este trabalho tem como propósito realizar um estudo e desenvolver um métodonão-invasivo e eficaz, que utilizando câmeras e visão computacional execute a contagemvolumétrica de veículos automaticamente. Deseja-se também que o método seja leve osuficiente para poder ser executado em dispositivos móveis, como celulares, os quaissão populares, relativamente simples de operar e, normalmente, mais baratos do quecomputadores convencionais.

1.1 Objetivos

Os objetivos deste trabalho de pesquisa são:

• revisar métodos existentes para a realização da contagem de veículos e monitora-mento do tráfego, principalmente dos meios que utilizam visão computacional;• desenvolver um método que realize a contagem volumétrica de veículos de maneira

automática;• fazer um estudo e propor sugestões para reduzir a complexidade do método desen-

volvido, de modo que seja possível a sua execução em aparelho móvel com baixopoder de processamento.

1.2 Organização da Dissertação

O restante desta dissertação segue como: no Capítulo 2 é realizada uma revi-são bibliográfica sobre o processamento digital de imagens e de tecnologias existentespara auxilio no desenvolvimento do sistema computacional. No Capítulo 3 são descritosos métodos existentes para a contagem volumétrica e classificatória de veículos e moni-toramento do tráfego urbano, destacando trabalhos que utilizaram visão computacional

1.2 Organização da Dissertação 18

para tais propósitos. No Capítulo 4 são apresentados métodos para contagem volumétricaautomática de veículos. Em seguida, no Capítulo 5, são exibidos os resultados obtidos pe-los testes realizados utilizando o sistema desenvolvido. No Capítulo 6, são apresentadasas medidas tomadas, baseadas nos resultados dos testes, para a redução do custo com-putacional do sistema, visando executá-lo em dispositivos móveis como celulares. Sãoapresentadas também sugestões para melhorias futuras do desempenho do método. Porfim, no Capítulo 7 é feita uma conclusão geral sobre o trabalho realizado.

CAPÍTULO 2Visão Computacional

A visão é o mais avançado entre os sentidos do ser humano, segundo Barton [6].Diferente dos outros sentidos, a visão tem o poder de obter uma imensa quantidade deinformações quase que em tempo real.

De acordo com [19], embora seja surpreendente a capacidade da visão humana,a mesma é limitada a uma banda visual do espectro eletromagnético (EM). Observandoessa limitação foram criados aparelhos para capturar imagens que não são visíveis aoolho humano, como é o caso dos microscópios eletrônicos, máquinas de raio-x, algunstelescópios, entre muitos outros.

Crowley [17] define a Visão Computacional como sendo a área de análise deimagens para coleta de informações baseada na visão humana.

Cada vez mais, o uso da Visão Computacional se mostra eminente na áreaacadêmica, industrial, comercial e em muitas outras áreas, de acordo com Santos [61].Como, por exemplo, na medicina e biologia, onde foram desenvolvidos uma grandequantidade de sistemas emissão de laudos de exames, ou auxílio ao mesmo, sendo estesdesde simples exames que necessitam apenas da identificação de uma específica célulaem uma imagem gerada pelo microscópio a exames mais complexos como é o caso daressonância magnética. Devido a precisão e a velocidade do processamento alcançadapelo computador em apresentar resultados de exames ser muitas vezes maior que a deum profissional da saúde, as imagens digitais são cada vez mais alvejadas em pesquisas.Com tal finalidade foi, inclusive, criada uma área apenas para pesquisar imagens digitaise sua utilização em exames, a qual é chamada de bioinformática; no Direito, os processosjurídicos impressos em papel, ao longo do tempo se tornam ilegíveis devido a degradaçãoda folha de papel. Arquivar os documentos impressos é uma atividade não muito simples,em razão do espaço físico exigido pela enorme quantidade de processos que surgema cada dia. Existem muitas outras dificuldades como na organização dos documentosimpressos além das apresentadas. Iniciativas estão sendo tomadas para a digitalizaçãodos documentos, uma vez que documentos gravados em computadores ocupam menosespaço físico e é possível a realização de buscas mais rápidas e eficientes, comparando adocumentos impressos. Para a digitalização dos processos é necessário que os documentos

2.1 A imagem digital e o formato de cores RGB 20

sejam escaneados e, a partir da imagem digital gerada, sistemas de reconhecimento decaracteres, conhecidos como OCR [42], transformam a imagem em texto codificado. Amesma técnica é utilizada em muitas empresas para a digitalização de documentos; emsegurança e monitoramento, as câmera de vigilância muitas vezes se deparam com cenasinsignificantes, onde nada acontece. A gravação do vídeo de cenas como a citada é umdesperdício de espaço de armazenamento, em outras palavras, um desperdício financeiro.Objetivando gravar apenas cenas de interesse, foram criados sistemas que capturam aimagem quando algo se movimenta. O exemplo apresentado é apenas uma aplicação.Há sistemas para diversas finalidades na área, uma delas é o uso no monitoramentodo tráfego urbano. Onde através de imagens, é possível a extração de informaçõescomo a classificação e a velocidade de um veículo; além das mencionadas podemser destacadas: Geologia, Agricultura, Engenharia Florestal, Meteorologia, Produção eControle de Qualidade, entre outras.

No desenvolvimento de sistemas que utilizam a Visão Computacional deveser levado em consideração, não apenas como resolver o problema, mas também, oesforço computacional de processamento. Uma imagem considerada de baixa resoluçãocomo 320x240, isto é, 320 pixels de largura por 240 pixels de altura, necessita de pelomenos 76.800 iterações para a aplicação de um filtro simples. Tal número de iteraçõespode ser gigantesco em processos realizados em vídeos, imagens de alta resolução,ou procedimentos que exigem uma grande quantidade de filtros no processamento daimagem.

Nesta seção é realizada uma breve revisão bibliográfica sobre de métodos deprocessamento de imagens digitais aplicados na visão computacional.

2.1 A imagem digital e o formato de cores RGB

Uma imagem pode ser definida como uma função bidimensional (plano), f (x,y),em que x e y são coordenadas espaciais, e a amplitude de f em qualquer par decoordenadas (x,y) é chamada de intensidade ou nível de cinza da imagem nesse ponto.Quando x,y e os valores de intensidade de f são quantidades finitas e discretas, chamamosde imagem digital [19].

Uma imagem digital é composta por uma quantidade finita de elementos, cadaum com sua localização e valor específico. Esses elementos são geralmente chamados depixels, embora existem outros nomes como elementos pictórios, elementos de imagem epels. O valor específico de cada pixel contém um número, ou um conjunto de números,que representa uma determinada cor. Na figura 2.1 temos um exemplo de um pixel naimagem.

2.1 A imagem digital e o formato de cores RGB 21

(a) (b) (c)

Figura 2.1: Representação de um pixel de uma imagem digital.Em (a) temos a imagem digital; (b) a ampliação daárea marcada na imagem digital; (c) um pixel contidona imagem, o qual encontrasse na posição x=304 ey=362, e possui o valor RGB= [61r,212g,255b

Dentre os padrões de cores existentes, os principais são o RGB, o HSI e oCMYK. Neste trabalho utilizaremos o formato de cores RGB, o qual foi entitulado dessemodo dedivo a abreviação dos nomes das cores que o compõe, red (vermelho), green

(verde) e blue (azul). Esse formato de cores pode ser caracterizado por um cubo de ladoR, comprimento G e altura B [20]. Uma das representações mais utilizadas nesse formato,para as cores, é a escala de 0 à 255, devido a possibilidade de guardar cada valor em 1byte1. É possível a geração de mais de 16 milhões de cores diferentes, ou seja 2563,utilizando combinações entre R, G e B.

Evidências experimentais detalhadas comprovaram que todos os cones2 do olhohumano, entre 6 a 7 milhões, podem ser divididos em três principais categorias desensoriamento, aproximadamente correspondentes ao vermelho, ao verde e ao azul.Dentre todos os cones existentes no sistema de visão humana, 65% são sensíveis à luzvermelha, 33% são sensíveis a luz verde e apenas 2% deles são sensíveis a luz azul,sendo os cones azuis os mais sensíveis. Em virtude dessas características de sensibilidadedo olho humano, as cores são vistas como combinações das chamadas cores primárias:vermelho (R, red), verde (G, green) e azul (B, blue) [19]. Fato que originou estudos dopadrão digital de cores RGB.

1Byte é unidade de medida de armazenamento de memória na computação. Cada byte é composto por8 bits, o que é suficiente para armazenar 256, ou 28, números binários.

2Os cones são os sensores dos olhos responsáveis pela visão das cores [19]

2.2 Histograma 22

2.2 Histograma

Segundo Lancaster [37], um histograma é um gráfico que representa a distribui-ção de frequências de uma massa de medições. Normalmente contem diversos retângulos,no qual cada retângulo representa um intervalo e sua altura representa a frequência na-quele intervalo.

No processamento de imagem os histogramas normalmente são utilizados pararepresentar a quantidade de vezes que uma determinada cor se repete na imagem. Comopodem existir uma infinidade de cores, o histograma normalmente é gerado com baseem uma foto preto e branco. O histograma pode proporcionar um melhor entendimentoda imagem, pois é mais fácil visualizar parâmetros para a avaliação da imagem, comocontraste e luminosidade. Na figura 2.2 é ilustrado um histograma qualquer.

Figura 2.2: Representação de um histograma

2.3 Escala de Cinza

A luz sem cor é conhecida por monocromática, ou acromática. A mesma possuium atributo chamado intensidade (também conhecida como quantidade de luz). A inten-sidade da luz monocromática pode variar entre o preto (valor mínimo), passando por tonsde cinza, até o branco (valor máximo), chamado de nível de cinza. Quanto maior o valordo nível de cinza de um pixel, significa uma maior quantidade de luz. A variação queencontramos na intensidade é conhecida por escala de cinza.

A escala de cinza é muito utilizada no desenvolvimento de trabalhos que utilizamo processamento de imagens digital por ter menor custo computacional. Segundo Gon-zalez [18], para diminuir o peso do processamento digital de imagens, antes de qualqueroperação, as imagens devem ser convertidas do formato RGB para Escala de Cinza, comoapresentado na figura 2.3. Cada cor, vermelho, verde e azul, comumente o varia seu valorde intensidade que varia de 0 a 255. Para obter a imagem em escala de cinza levamos emconsideração a média da intensidade de cada uma das três cores, RGB. Conseguimos aintensidade monocromática através da equação [32]:

2.4 Realce de Contraste 23

C[x][y] = (0,299×R[x][y])+(0,587×G[x][y])+(0,114×B[x][y])

Aqui, x e y representam a posição do pixel no plano espacial da imagem, C[x][y]

são os pixels da imagem em escala de cinza e R[x][y], G[x][y] e B[x][y], são os canais das coresvermelha, verde e azul, respectivamente, dos pixels da imagem colorida. Já as constantessão relacionadas à sensibilidade de incidência de luz cada cor.

(a) (b)

Figura 2.3: Escala de cinza. A figura demonstra a conversão doformato RGB para escala de cinza, na qual (a) éimagem original e (b) a imagem em escala de cinza.

2.4 Realce de Contraste

A faixa de valores cobertos pela escala de cinza pode ser chamada informalmentede faixa dinâmica [19]. O termo é dito informal por não ter uma padronização e serutilizado de maneiras distintas em diferentes áreas. Junto a este conceito têm-se ocontraste, o qual se pode definir como a diferença entre os níveis superior e inferior deintensidade presentes em uma imagem. Quando um número de pixels de uma determinadaimagem tiver uma alta faixa dinâmica, dizemos que a imagem tem um alto contraste. Poroutro lado, uma imagem com baixa faixa dinâmica tem uma aparência com pouco brilho.

Para corrigir problemas de contraste na imagem monocromática, causados poriluminação deficiente, excessiva ou mesmo de calibração incorreta do obturador, o histo-grama da imagem é tratado, assim procurando na imagem os valores de menor e maiorintensidade [30].

O realce da imagem faz com que os três canais RGB de cada pixel da imagemocupe todos os níveis de intensidade (0 a 255), evitando assim que haja concentração de

2.5 Equalização de histograma 24

pontos em imagens de baixo contraste. A utilização desse método geralmente garante umaimagem com mais definição, como podemos ver na figura 2.4.

(a) (b)

Figura 2.4: Realce de contraste. Em (a) temos a imagem originale em (b) a imagem (a) com o contraste realçado.

2.5 Equalização de histograma

A equalização de histograma é um método que trabalha com o contraste, alte-rando as cores da imagem até que a intensidade do histograma tome a forma desejada.Ao contrário do alongamento de contraste, os operadores de modelação do histogramapodem empregar funções de transferências não-lineares e não-monotônicas para mapearos valores de intensidade de pixel. Equalização de histograma emprega um mapeamentonão linear que reatribui os valores de intensidade dos pixels na imagem de entrada de talmodo que a imagem de saída contém uma distribuição uniforme das intensidades, ou seja,um histograma plano. Esta técnica é utilizada em processos de comparação de imagem,porque é eficaz na melhoria de detalhes [23].

Em outras palavras a equalização de histograma implica em mapear a distribui-ção dos valores de intensidade para uma nova distribuição mais ampla e uniforme, demodo que os valores de intensidade sejam espalhados ao longo de todos os níveis dohistograma[48].

Para a execução deste filtro, tal mapeamento é realizado através da função dedistribuição acumulativa [24]. Para o histograma H(i), a sua distribuição acumulada éH ′(i), e é calculada através de:

H ′(i) = ∑0≤ j<i

H( j)

Com o histograma H ′(i) obtido, cada pixel da imagem equalizada imgeq écalculado a partir do valor de intensidade de cada pixel da imagem origem imgsrc através

2.6 Limiarização 25

da equação:imgeq(x,y) = H ′(imgsrc(x,y))

onde x e y são as coordenadas da imagem.Após o cálculo de histograma de uma imagem em tons de cinza, podemos definir

a equalização do histograma a partir deNa figura 2.5, é ilustrado um exemplo do efeito aplicado pela equalização de

histograma.

(a) (b)

Figura 2.5: Equalização de histograma. Em (a) é ilustrada a ima-gem de entrada e em (b) a imagem com o histogramaequalizado.

2.6 Limiarização

A limiarização é um dos principais procedimentos para a extração de um objetoem uma imagem (segmentação de objeto). O objetivo a ser alcançado é a transformação deuma imagem em escala de cinza para uma imagem com pixels pretos e brancos, imagembinária. Os pixels brancos, normalmente, representam regiões do objeto segmentado sobreum fundo preto [19]. Para a transformação é necessário a determinação de um valor,denominado limiar (ou threshold). Comparamos, então, cada pixel da imagem com ovalor do limiar, com intuito de determinar se esse pixel será branco ou preto.

A determinação de um bom limiar é essencial para que o processo de segmenta-ção de objeto tenha êxito. Em virtude das variações de brilho e contraste que as imagenspossuem, a definição de um limiar não é simples. Existe uma grande possibilidade dedesprezar informações importantes na imagem e considerar regiões sem interesse, comopodemos ver na figura 2.6.

2.6 Limiarização 26

(a) (b)

(c) (d)

Figura 2.6: Limiarização de uma imagens em tons de cinza. Con-versão da escala de cinza para uma imagem biná-ria. Nas imagens convertidas foram utilizados limiaresglobais: (a) imagem em escala de cinza; (b) limiar =16; (c) limiar = 64; e (d) limiar = 128.

2.6.1 Bases da limiarização de intensidade

Suponha que o histograma de intensidade na figura 2.7 corresponda a umaimagem f (x,y) composta por objetos claros com um fundo escuro, de tal forma que ospixels do objeto e do fundo tenham valores de intensidade agrupados em dois gruposdominantes (modos). Uma maneira óbvia de extrair os objetos do fundo é selecionar umlimiar T , que separa estes modos. Então, qualquer ponto (x,y) é chamado de ponto doobjeto; caso contrário o ponto é chamado de ponto do fundo. Em outras palavras a imagemsegmentada [19], g(x,y), é dada por

g(x,y) =

{1 se f (x,y)> T

0 se f (x,y)<= T

Por convenção são utilizados os valores de intensidade 0 e 1, mas podem serutilizados dois valores quaisquer, desde que sejam distintos.

2.6 Limiarização 27

(a) (b)

Figura 2.7: [Histograma de duas imagem com limiares único emúltiplos.Histograma de intensidade que podem serdivididos (a) por um limiar único e (b) por limiaresmúltiplos [19] .

2.6.2 Limiarização global

Quando definimos o limiar como uma constante aplicável a uma imagem inteira,o processo dado nesta equação é conhecido por limiarização global [18]. Um exemplo delimiarização global foi apresentado na figura 2.6.

2.6.3 Limiarização variável

A limiarização variável acontece quando o valor do limiar muda ao longo doprocessamento de uma imagem, diferentemente da limiarização global. Também sãoutilizados os termos limiarização local ou regional, uma vez que o valor do limiar dependeda vizinhança de um determinando ponto (x,y) da imagem, por exemplo a intensidademédia dos pixels da vizinhança.

2.6.4 Método de Otsu para encontrar o limiar ótimo

Para tornar uma imagem binária, o método de Otsu [44] é dos mais utilizados,por determinar dinamicamente um ótimo limiar. Além de ser um processo consideradoleve e de grande eficiência.

Baseado em uma idéia muito simples de encontrar o limiar que minimiza avariância média ponderada, esta acaba por ser igual a maximização da variância entreclasses.

Uma vez que o histograma H, em tons de cinza, estiver computado, a execuçãodo método de Otsu é muito rápida. A princípio as classes de probabilidade q1 e q2,

2.6 Limiarização 28

representando fundo e primeiro plano respectivamente, são estimadas:

q1(t) =t

∑i=1

H(i)

q2(t) =t

∑i=t+1

H(i)

onde t é o valor de limiar e i o valor de intensidade e ambos poderão ter valores de 0 a255. As classes de médias dadas por:

µ1(t) =t

∑i=1

H(i)

µ2(t) =t

∑i=t+1

H(i)

Em seguida calculamos a variância de classe individualmente:

σ21(t) =

t

∑i=1

[i−µ1(t)]2H(i)q1(t)

σ22(t) =

t

∑it+=1

[i−µ2(t)]2H(i)q2(t)

,0≤ t ≤ 255 e 0≤ i≤ 255

A variância ponderada dentro da classe é definida como:

σ2w(t) = q1(t)σ2

1(t)+q2(t)σ22(t).

Agora basta percorrer toda a gama de valores de t, de 0 a 255, e encontrar o valor queminimiza σ2

w(t). Para isso, é criado uma relação de recursão a qual proporciona um cálculomuito mais rápido. Para qualquer dado limiar, a variância total é a soma da variânciaponderada da classe e da variância entre classe, a qual é a soma do quadrado das distânciasponderadas. Podemos formalizar essa etapa como:

σ2 = σ

2w(t)+q1(t)[1−qi(t)][µi(t)−µ2(t)]2

Uma vez que o total é constante e independente de t, o efeito de alterar o limiar émeramente para mover as contribuições dos dois termos para frente e para trás. Dessemodo, minimizar a variância da classe é o mesmo que maximizar a variância entre classe.A figura 2.8, demonstar o resultado da limiarização feita através do método de Otsu.

2.7 Filtragem espacial linear: Convolução e Correlação 29

(a) (b)

Figura 2.8: Método de Limiarização de Otsu. (a) imagem de en-trada e (b) imagem limiarizada, t = 126, pelo métodode Otsu.

2.7 Filtragem espacial linear: Convolução e Correlação

Um filtro espacial consiste em: 1) uma vizinhança, a qual é uma certa quantidadede pixels em volta de um certo pixel (x,y), normalmente em forma de retângulo; e 2) umaoperação é realizada utilizando uma máscara (também chamado de kernel, template oujanela) sobre os pixels da imagem que estão contidos na vizinhança. A filtragem cria umnovo pixel com coordenadas iguais às coordenadas do centro da vizinhança, e cujo o valoré o resultado da operação filtragem [19]. Geralmente, o pixel processado por um filtro éatribuído, na mesma posição (x,y) da imagem original, em uma nova imagem. Em rarasexceções, os valores dos pixels podem ser alterados enquanto a filtragem ainda estiversendo executada. Desse modo a imagem vai sendo processada pixel a pixels, com basenos valores dos pixels vizinhos.

Se a operação realizada sobre os pixels da imagem for linear, o filtro é chamadode filtragem espacial linear; caso contrário, é chamado de filtragem espacial não linear.

A figura 2.9 demonstra o processo da filtragem espacial utilizando uma vizi-nhança 3x3.

Geralmente a filtragem espacial linear de uma imagem de dimensões M x N comum filtro de dimensões m x n é dada pela expressão:

g(x,y) =M−1

∑m=0

N−1

∑n=0

w(m,n) f (x+m,y+n)

onde f é a imagem de entrada, g é a imagem filtrada, x e y são as coordenadas de cadapixel das imagens f , w é a máscara de tamanho M×N e com as coordenadas m e n.

2.7 Filtragem espacial linear: Convolução e Correlação 30

Figura 2.9: Filtro Espacial. Representação do processo do filtroespacial [68].

Quando tratamos da filtragem espacial linear há dois conceitos estreitamenterelacionados, a correlação e a convolução. O processo da correlação acontece comoexplicado anteriormente, no qual ao mover a máscara sobre toda a imagem é calculadoa soma dos produtos em cada pixel, onde o pixel apontado f (x,y) é relacionado com ocentro da máscara, sendo os demais pixels da máscara relacionados com a vizinhança def (x,y). O processo da convolução é semelhante com o da correlação, sua diferença é arotação do filtro em 180o antes da filtragem.

A correlação e a convolução são equivalentes, tanto faz utilizar uma como aoutra, pois ambas são capazes de realizar o processo da outra com uma simples rotaçãono filtro. O importante é determinar a máscara do filtro de forma a corresponder com oprocessamento desejado.

Os termos filtros de convolução, máscaras de convolução ou kernel de convo-lução são encontrados na literatura. Tais termos são utilizados para expressar um filtroespacial, e não necessariamente o filtro que será utilizado verdadeiramente para uma con-volução. De forma similar, a expressão "realizar a convolução em uma imagem", costumaser utilizada para expressar o processo de deslocamento e soma dos produtos, e não propri-amente dito a convolução. Isso devido a tais conceitos não terem ainda uma padronizaçãode nomenclatura [19].

2.8 Filtro espacial de suavização 31

2.8 Filtro espacial de suavização

De acordo com Gonzalez [19], o filtro de suavização (smooth em inglês), tambémconhecido como borramento (blur), é um filtro que exerce uma espécie de embaçamentona imagem, assim diminuindo a sua definição e consequentemente diminuindo os ruídos.Normalmente é aplicado no pré-processamento para a segmentação de objeto e conexãode pequenas descontinuidades em linhas ou curvas. O borramento pode ser processadoatravés de uma simples filtragem espacial linear e não linear.

O resultado do processamento do filtro de suavização é a média obtida navizinhança. Também é conhecido como filtro médio ou filtro passa baixa. A suavizaçãofaz com que a imagem perca a nitidez, desse modo eliminando transações bruscas naintensidade entre uma vizinhança de pixels. Como os ruídos geralmente são mudançasbruscas na intensidade entre os pixels, sua ação mais visível é a redução de ruídos.

Na figura 2.10, é apresentada o processo de suavização de uma imagem.

(a) (b)

Figura 2.10: Filtro de suavização. Representação do processo dofiltro de suavização. (a) imagem original; e (b) ima-gem suavizada.

Embora a redução de ruídos seja uma ação de grande importância para asegmentação de objetos, em contra partida, a perda de nitidez prejudica a detecçãode bordas de uma imagem. Mesmo que não utilizada neste trabalho, a detecção debordas é um dos processos mais utilizados no processamento digital de imagens epode ser utilizado para diversas finalidades. Para detectar as bordas de uma imagem, osfiltros calculam a diferenciação abrupta de intensidade entre um pixel e sua respectivavizinhança.

A aplicação do primeiro filtro apresentado na figura 2.11, retorna uma médiasimples dos pixels cobertos pela máscara. Para isso podemos utilizar a equação:

2.8 Filtro espacial de suavização 32

R =19

9

∑i=1

zi

a qual é a média dos níveis de intensidade dos pixels na vizinhança 3 × 3 definidapela máscara. Observe que, em vez de 1/9, os coeficientes do filtro são todos 1s, issogarante uma maior eficiência computacional. Ao final do processamento da filtragem todaa imagem é dividida por 9. Com mesmo princípio, mas utilizando uma máscara m× n,essa teria uma constante de normalização 1/mn. Esses filtros também são conhecidos porfiltros retangulares (box filter em inglês).

a)19×

1 1 11 1 11 1 1

b)1

16×

1 2 12 4 21 2 1

Figura 2.11: Máscaras para Filtro de Suavização. Duas máscaras3 × 3 para suavização de imagem.

O segundo filtro da figura 2.11(b) tem a máscara intitulada como média ponde-rada, o que significa que serão atribuídos mais importância (peso) a alguns pixels a custade outros. Nesse filtro o pixel no centro da máscara é multiplicado por um valor maisalto do que qualquer outro, atribuindo, assim, mais importância a esse pixel no cálculoda média. Os outros pixels são, em função da sua distância, inversamente ponderados docentro da máscara. Os termos diagonais estão mais distantes do centro do que os vizinhosortogonais (por um fator de

√2) e, portanto, têm um peso menor do que seus vizinhos

imediatos do pixel central. A estratégia básica de atribuir maior peso ao ponto central e,depois, reduzir o valor dos coeficientes em função do aumento de distância da origem, ésimplesmente a tentativa de produzir um borramento no processo de suavização. Poderiaser escolhido qualquer coeficiente para a máscara. No entanto a soma dos elementos damáscara é igual a 16, o que é uma característica interessante para a implementação com-putacional por ser um número inteiro e potência de 2 [19]. A média ponderada pode serimplementada através da seguinte equação:

g(x,y) =∑

M−1m=0 ∑

N−1n=0 w(m,n) f (x+m,y+n)

∑M−1m=0 ∑

N−1n=0 w(m,n)

onde f é a imagem de entrada, g é a imagem filtrada, x e y são as coordenadas de cadapixel das imagens y, w é a máscara de tamanho M×N e com as coordenadas m e n. Osparâmetros dessa equação são iguais aos utilizados nos filtros retangulares, uma vez que

2.9 Filtro espacial de aguçamento 33

o denominador é simplesmente a soma dos coeficientes da máscara, logo só precisa sercalculado uma vez, sendo uma constante.

2.9 Filtro espacial de aguçamento

O filtro espacial de aguçamento em imagens digitais salienta as transições deintensidade aumentando a nitidez de uma imagem. O operador, em um determinado ponto,atua no nível de descontinuidade de intensidade da imagem, desse modo realçando bordas,linhas e outras descontinuidade (como ruídos), e atenuando áreas com intensidades devariação mais suave.

As derivadas de uma função digital são definidas em termos de diferenças. Hávárias maneiras de defini-las. No entanto, é preciso que qualquer definição utilizada paraa primeira derivada (1) seja zero em áreas de intensidade constante; (2) seja diferente dezero no início de um degrau ou rampa de intensidade; e (3) seja diferente de zero ao longodas rampas [19]. Uma definição básica de ordem de uma função unidimensional f (x) é adiferença:

∂ f∂x

= f (x+1)− f (x)

De forma similar, qualquer definição de uma segunda derivada deve ser zero emáreas constantes; (2) deve ser diferente de zero no início e no final de um degrau ou rampade intensidade; e (3) deve ser zero ao longo de rampas de inclinação constante. Comoestamos lidando com quantidades digitais cujos valores são finitos, a máxima variaçãopossível de intensidade também é finita e a distância mais curta na qual essa mudançapode ocorrer é a distância entre pixels adjacentes [19]. Definimos a derivada de segundaordem de f (x) como a diferença:

∂2 f∂x2 = f (x+1)−2 f (x)

A figura 2.12, ilustra a aplicação do filtro de aguçamento em uma imagem.Como mencionado nessa seção, a imagem filtrada realça as altas variações de intensidade,proporcionando uma melhor visualização das limitações dos objetos (bordas) e texturas.

A seguir são apresentados métodos que utilizam o filtro espacial de aguçamentopara a detecção de bordas.

2.10 Operações morfológicas 34

(a) (b)

Figura 2.12: Filtro de aguçamento. (a) imagem original; (b) ima-gem filtrada;

2.10 Operações morfológicas

A palavra morfologia geralmente denota um ramo da biologia que lida coma forma e a estrutura dos animais e plantas. A morfologia matemática é utilizada noprocessamento de imagens digitais como uma ferramenta para extrair componentes dasimagens que são úteis na representação e na descrição da forma de uma região, comofronteiras, esqueletos e o fecho conexo [19].

Para a aplicação de operações morfológicas são utilizados os chamados elemen-tos estruturantes, os quais são pequenos conjuntos ou sub-imagens usadas para examinaruma imagem buscando propriedades de interesse.

O objetivo da morfologia matemática é extrair informações relativas à geometriae topologia de um conjunto não conhecido (a imagem), através de outro conjunto total-mente definido, denominado elemento estruturante. Conhecendo o tamanho e a forma doelemento estruturante é possível determinar quanto e como ele está contido na imagem.O resultado dessa iteração vai depender do elemento estruturante e da imagem analisada[11].

A linguagem morfológica matemática é a teoria dos conjuntos, na qual osconjuntos representam a forma dos objetos em uma imagem. Nas imagens binárias osconjuntos em questão pertencem ao espaço bidimensional inteiro Z2 e cada elementodo conjunto é um vetor 2-D, cujas coordenadas (x,y) são, por convenção, as coordenadasdos pixels pretos na imagem. Imagens digitais em níveis de cinza podem ser representadaspor conjuntos cujos componentes pertencem ao espaço Z3. Neste caso, dois componentesde cada elemento do conjunto se referem às coordenadas espaciais do pixel e o terceirocorresponde a intensidade discreta do pixel [18].

2.11 Erosão 35

As operações morfológicas básicas são a erosão e a dilatação. Na erosão ospixels que formam um determinado padrão são apagados da imagem, e na dilatação umapequena área do conjunto de pixels é ajustada para uma determinada forma, de acordocom o elemento estruturante [56].

2.11 Erosão

A erosão diminui ou afina um objeto em uma imagem binária, sendo que detalhesmenores que o elemento estruturantes, incluindo pontos isolados, são removidos [19].

Com A e B como conjunto de Z2, a erosão de A por B, indicada por AB, édefinida como:

AB = {z|(B)z ⊆ A}

Em outras palavras, essa equação indica que a erosão de A por B é o conjunto de todosos pontos z de forma que B , transladado 3 por z, está contido em A [19]. Nesse caso A

representa o objeto da imagem e B o elemento estruturante.Por B estar contido em A, o elemento estruturante não elemento em comum com

o fundo, então a erosão pode ser expressada com a seguinte equação:

AB = {z|(B)z∩Ac = /0}

na qual Ac é o complemento do conjunto A, ou seja, identificado como fundo no processode limiarização.

A figura 2.13 apresenta o resultado da transformação feita por AB.

(a) (b)

Figura 2.13: Operação morfológica de erosão. a) é o objeto daimagem de entrada A; b) é o elemento estruturante; ec) é a imagem resultando da erosão de A por B.

3Na matemática, a translação é o movimento de um elemento de um ponto a outro. Para definir atranslação podemos utilizar a equação: (B)z = {w|w = b+ z, para b ∈ B}

2.12 Dilatação 36

2.12 Dilatação

Ao contrário da erosão, a dilatação aumenta ou engrossa os objetos em umaimagem binária. A forma específica e a extensão são controlados através do formato doelemento estruturante. Uma aplicação para esse aumento seria a união de partes separadasde um objeto na imagem.

Com A e B como conjuntos de Z2, a dilatação de A por B, indicada por A⊕B, édefinida como:

A⊕B = {z|(B̂)b∩A 6= /0}

essa equação se baseia na reflexão 4 de B em torno de sua origem, seguida da translaçãodessa reflexão por z. A dilatação de A por B é, então, o conjunto de todos os deslocamen-tos, z, de forma que B̂ e A se sobreponham pelo menos por um elemento. Com base nessainterpretação, essa equação pode ser descrita de maneira equivalente como:

A⊕B = {z|[(B̂)b∩A]⊆ A}

Como na erosão A representa o objeto da imagem e B o elemento estruturante.A figura 2.14 apresenta o resultado da transformação feita por A⊕B. E na figura

2.15 ilustra a aplicação da dilatação para unir partes separadas de caracteres, o que é muitocomum em métodos para reconhecimento de texto.

Figura 2.14: Operação morfológica de dilatação. a) é o objeto daimagem de entrada A; b) é o elemento estruturante;e c) é a imagem resultando da dilatação de A por B[19].

4Na reflexão, todos os elemento de B em torno da origem desse conjunto são refletidos. Podemos definira reflexão através da fórmula: B̂ = {w|w =−b, para b ∈ B}

2.13 Abertura e Fechamento 37

Figura 2.15: Utilização da dilatação para unir partes separadasde caracteres.

2.13 Abertura e Fechamento

A abertura é a aplicação de uma erosão, e com o resultado obtido é aplicadaa dilatação, utilizando o mesmo elemento estruturante. Se caracteriza por suavizar ocontorno de objetos na imagem binária, também por eliminar saliências finas e pontosisolados. A abertura do conjunto A pelo elemento estruturante B, indicado por A ◦B édefinida como:

A◦B = (AB)⊕B

De modo semelhante o fechamento também é a combinação das operaçõesde dilatação e erosão, mas de maneira inversa da abertura. No fechamento primeiroé aplicado uma dilatação, e na imagem obtida é realizada uma erosão. Com isso ofechamento funde descontinuidades estreitas e alonga formas finas, assim como a aberturatambém se caracteriza por suavizar o contorno dos objetos. O fechamento do conjunto A

pelo elemento estruturante B, indicado por A•B, é definido como:

A•B = (A⊕B)B

Na figura 2.16 temos uma apresentação da aplicação da abertura e do fecha-mento. Na qual a) é a imagem com o objeto de entrada. O processo da abertura é mos-trado de b) a e), repare que no resultado final, e), os cantos que apontavam para fora foramarredondados, enquanto os que apontavam para dentro não sofreram alteração. Na mesmafigura, de f) até i) mostram os resultados do fechamento de A com o mesmo elementoestruturante. Ao contrário da abertura, note que no fechamento os cantos que apontavampara dentro foram arredondados, enquanto os cantos que apontavam para fora permane-ceram inalterados.

Como no caso da dilatação e erosão, a abertura e o fechamento são duais entre si

2.13 Abertura e Fechamento 38

Figura 2.16: Abertura e fechamento morfológicos. O elemento es-truturante é o pequeno círculo mostrado em váriasposições em b). O ponto estruturante não foi som-breado aqui para uma melhor compreensão. O pontopreto é o centro do elemento estruturante [19].

em relação a complementação e reflexão dos conjuntos. isto é,

(A•B)c = (Ac ◦ B̂)

e(A◦B)c = (Ac • B̂)

A operação de abertura satisfaz às seguintes propriedades:

1. A◦B é um subconjunto (subimagem) de A

2. Se C é um subconjunto de D, então C ◦B é um subconjunto de D◦B

3. (A◦B)◦B = A◦B

A operação de fechamento satisfaz às seguintes propriedades:

1. A é um subconjunto (subimagem) de A•B

2. Se C é um subconjunto de D, então C •B é um subconjunto de D•B

3. (A•B)•B = A•B

2.14 Rotulação de componentes conectados 39

As operações morfológicas podem ser usadas para construir filtros com conceitossemelhantes aos filtros espaciais (seção 2.7). A imagem binária na figura (2.17 a) mostrauma região de uma impressão digital repleta de ruídos). Os ruídos se manifestam comoelementos aleatórios claros sobre um fundo escuro e como elementos escuros sobrecomponentes claros pertencentes a impressão digital. O objetivo é eliminar os ruídos eseus efeitos na impressão digital, proporcionando a menos distorção possível. Um filtromorfológico de abertura seguido de um filtro de fechamento podem ser utilizados paraatingir esse objetivo.

Analisando as demais imagens da figura 2.17 temos: (b) como o elementoestruturante que foi utilizado e o processamento da filtragem nas outras imagens; Aimagem (c) apresenta o resultado obtido na aplicação de A por B, AB. Repare que todosos ruídos brancos foram eliminados, devido aos elemento ruidosos serem menores que oelemento estruturante. Na imagem d) é apresentado o resultado obtido pela abertura. Noteque os todos os ruídos foram reduzidos de tamanho ou completamente eliminados. Já afigura (e) apresenta a dilatação aplicada na imagem gerada pela abertura, (A ◦ B)⊕B.Nesse passo, as quebras do objeto foram reestruturadas, mas ficou mais espesso doque o da imagem original, particularidade que pode ser sanada por uma erosão; Porfim a imagem(f) apresenta o resultado final da operação de abertura e fechamento,[(A◦B)⊕B]B = (A◦B)•B.

Ao final da aplicação do filtro, o objeto da imagem gerada está praticamente livrede ruídos e manteve praticamente as mesma características e formas do original.

2.14 Rotulação de componentes conectados

Um processo de muita importância em processamento baseado em segmentaçãode objetos é a rotulação de componentes conectados [60]. Quando o processo de segmen-tação termina, o mesmo retorna, normalmente, uma imagem binária, na qual os pixels comvalor 0 são pertencentes a regiões sem interesse e 1 para os pixels das regiões de interesse.A rotulação é o método utilizado para identificar os objetos, levando em consideração quepixels brancos, ou seja com o valor 1, conectados pertencem ao mesmo objeto. Na figura2.18, temos um exemplo de rotulação.

Em [40], é apresentado um método rápido para a realização da rotulação decomponentes conectados em uma imagem binária. Com apenas duas passadas na imagemo algoritmo consegue com precisão rotular os componentes. A principio é criado umcontrolador, o qual é inicializado com o valor 0, ao longo do processamento o controladorvai sendo incrementado a medida que pixels desconexos vão sendo encontrados. A idéiadesse algoritmo é apontar pixel a pixel da imagem já limiarizada, se a cor do pixel

apontado for branco a sua vizinhança é analisada, caso já exista algum vizinho rotulado

2.14 Rotulação de componentes conectados 40

Figura 2.17: Abertura e fechamento morfológicos. O elemento es-truturante é o pequeno círculo mostrado em váriasposições em b). O ponto estruturante não foi som-breado aqui para uma melhor compreensão. O pontopreto é o centro do elemento estruturante [19].

(a) (b)

Figura 2.18: Rotulação de componentes conexos.(a) é um exemplodo resultado de segmentação em uma imagem qual-quer e (b) o resultado da rotulação em (a).

o pixel apontado é rotulado de acordo com o seu vizinho, caso contrário o pixel recebeo proximo valor do controlador. Em caso do pixel apontado ter dois ou mais vizinhosjá rotulados, o mesmo é rotulado com o vizinho de menor valor, e é registrado em uma

2.15 Ferramentas para o desenvolvimento de aplicativos com Visão Computacional 41

lista que os valores dos rótulos de seus vizinhos são equivalentes. Ao final, é realizadamais uma passagem na imagem, ajustando os valores dos rótulos. Esse ajuste é realizadode acordo com a lista, onde para cada pixel rotulado, seu valor é substituído pelo menorvalor equivalente.

2.15 Ferramentas para o desenvolvimento de aplicativoscom Visão Computacional

2.15.1 OpenCV

OpenCV é uma biblioteca de visão computacional, que foi disponibilizada comseu código fonte aberto e pode ser baixada e utilizada por qualquer pessoa interessada naárea. Através do site http://sourceforge.net/projects/opencvlibrary/ é possível baixar seusinstaladores e a sua documentação.

Foi projetada para o desenvolvimento de aplicações que são executadas emtempo real, mantendo a eficiência computacional. E tem como um de seus objetivos,fornecer uma infra-estrutura de visão computacional para ajudar pessoas a construiraplicações bastante sofisticadas e com processamento rápido. Nela estão contidas mais de500 funções, as quais abrangem muitas áreas na visão computacional, incluindo inspeçãode produtos industriais, imagem para avaliação médica, segurança, interface de usuário,calibração de câmera, visão estéreo e robótica. Em seu desenvolvimento foram utilizadasas linguagens C e C++, mas já possui compatibilidade com outras linguagens comoPython, Ruby, Matlab, Java e outras linguagens. Também pode ser utilizada em diversossistemas operacionais como Linux, Windows, Mac OS X e Android.

2.15.2 JavaCV

O JavaCV foi projetado para utilizar a maior parte das funções do OpenCV, massendo executado por uma codificação desenvolvida em Java, exatamente da mesma formacomo a biblioteca OpenCV funciona em códigos C/C++. Também é compatível com alinguagem utilizada pelo sistema operacional Android5 [28].

JavaCV [4] fornece o empacotamento das bibliotecas comumente utilizadas porpesquisadores no campo da visão computacional:

• OpenCV (Open Source Computer Vision) [49] é uma biblioteca utilizada por váriospesquisadores que utilizam a Visão Computacional em seus projetos, por conter

5Android é um dos mais recentes sistemas operacionais desenvolvido pelo Google para a telefonia móvele para tablets.

2.15 Ferramentas para o desenvolvimento de aplicativos com Visão Computacional 42

uma grande quantidade das funções mais utilizadas na área. É liberada sob a licençaBSD [51], é gratuito tanto para uso acadêmico e comercial. Já está disponível paraas linguagem de programação C + +, C e Python. A biblioteca tem mais de 2500algoritmos otimizados.• FFmpeg [22] é um programa multiplataforma para gravar, converter e transmitir

áudio e vídeo. Nele está incluso a principal biblioteca de codec 6 de áudio e vídeo,a libavcodec. FFmpeg é um software livre licenciado sob LGPL [26] ou GPL [25]dependendo das escolhas na configuração.• libdc1394 [16] é uma biblioteca que fornece uma API7 para programadores que

desejam controlar câmeras baseadas nas especificações IEEE 1394, isto é câmerasdigitais, também conhecidas como a IIDC ou DCAM. A biblioteca atualmentefunciona para Linux, Mac OSX e há projetos para funcionar no Windows.• FlyCapture [29], criado pela Point Grey, semelhante ao libdc1394 é uma API para

controlar cameras digitais. Aceita as linguagens de programação C/C++ e funcionaem Linus e Windows.• OpenKinect [50] é uma comunidade aberta de pessoas interessadas em fazer uso

do hardware Kinect, desenvolvido para o video-game Xbox, em computadores eoutros dispositivos. As bibliotecas de código aberto permitem o Kinect possa serusado no Windows, Linux e Mac.• videoInput [69] é um biblioteca gratuita para captura de vídeo no Windows.• ARToolKitPlus [15] é uma biblioteca de software que pode ser usada para calcular a

posição da câmera e a orientação em relação aos marcadores físicos8 em tempo real.Isso permite o desenvolvimento de uma ampla gama de aplicações de RealidadeAumentada.

Como existem muitas funções que precisam ser tratadas de forma diferente,como a manipulação de ponteiros 9, segue no apêndice A alguns exemplos de códigosem OpenCV e o seu equivalente no JavaCV.

O JavaCV também tem suporte à aceleração de hardware para exibição deimagem em tela cheia e também inclui métodos para executar código em paralelo emmúltiplos núcleos, permite calibração geométrica e de cores em câmeras e projetores,entre outras funcionalidades.

6Codec é o programa que codifica e decodifica sinais.7API é uma sigla em inglês que traduzindo ao português significa interface de programação de

aplicativos.8Os marcadores físicos são marcas utilizadas pelo ARToolKit para seu fincionamento, para mais detalhes

acesse o site da referência [15]9Ponteiros são representações utilizadas para guardar endereços de memória.

CAPÍTULO 3Contagem de veículos e monitoramento dotráfego

Dentre os métodos utilizados para determinar o volume de tráfego destacamos acontagem volumétrica e a contagem classificatória. Segundo o DNIT [14], DepartamentoNacional de Infra-Estrutura de Transportes, a contagem volumétrica consiste em quantifi-car o volume de veículos que trafega por um determinado trecho da malha viária, duranteum determinado intervalo de tempo. Já a contagem classificatória consiste em, além dequantificar, classificar cada veículo por tipo.

A contagem de veículos é utilizada para diversas finalidades, entre as quaistemos [14]: planejamento do sistema rodoviário, medição da demanda de serviços por viarodoviária, estabelecimento das tendências de tráfego futuro, determinação do volume deviagens de forma a proporcionar justificativa econômica aos investimentos programados,avaliação do fluxo de tráfego existente em relação ao sistema rodoviário atual, estimaçãodos benefício dos usuários nas rodovias, estabelecimento de uma classificação do sistemarodoviário, justifitiva e planejamento do policiamento, projeção de pavimentação, estudosde localização de postos de pesagem, realização de análise estatística de acidentes, elocalização e projeção de instalações para a operação rodoviária.

Lenise [27] propõe que o volume de veículos, obtidos através da contagem, sejacaracterizado por:

• Volume de tráfego: quantidade de veículos que trafegam em uma determinadaseção da via em um especificado período de tempo.• AADT ou VMDA: volume médio diário de veículos durante o ano, ou seja, a

somatória total do volume dividido por 365.• ADT ou VMD: volume total, ou médio, de veículos em um determinado número

de dias. Podendo variar em volume diário médio mensal (VMDm), volume diáriomédio semanal (VDMs), volume diário médio de um determinado dia da semana(VMDd). Independente do caso a unidade utilizada é veículos/dia.• Composição do Tráfego: porcentagem de diferentes classificações de veículos que

trafegam em um via. Tais classificações podem ser divididas, por exemplo, em

3.1 Equipamentos Invasivos 44

automóveis, caminhões, ônibus e motos.• Volume Abreviado: volume do fluxo de um determinado período, sendo esse

inferior a uma hora (normalmente de 0 a 30 minutos).• Variações do volume de tráfego: são variações no volume de tráfego em um

determinado período. Se divide em variações sazonais ou mensais ao longo doano; variações diárias ao longo da semana; variações horárias ao longo do dia; evariações dentro da hora.

Para a realização da contagem de veículos, existe o meio manual, no qual umaou mais pessoas, contam através de anotações em papel, ou utillizando ferramentascomo contadores. Há também o modo automático, utilizando aparelhos eletrônicos maissofisticados.

De acordo com Leeds [47], existem dois tipos de equipamentos para a execuçãoda contagem de veículos e monitoramento do trânsito: os equipamentos invasivos e não-invasivos, também conhecidos como intrusivos e não-intrusivos. Nas seções 3.1 e 3.2 sãoapresentados os equipamentos descritos no trabalho de Leeds [47].

3.1 Equipamentos Invasivos

Os equipamentos eletrônicos invasivos são aqueles que possuem a necessidadede ter ao menos uma parte instalada junto ou sob à camada asfáltica. Devido a essacaracterística para instalar ou reparar o equipamento, a via é interrompida até que oserviço seja concluído. A seguir é descrito a respeito de alguns equipamentos invasivos.

3.1.1 Tubo pneumático

Os sensores por tubo pneumático, funcionam a partir da pressão de ar que éenviada ao longo de um tudo de borracha assim que os pneus de um veículo passamsobre o mesmo. A pressão de ar fecha um interruptor, o qual produz um sinal elétrico e étransmitido a um programa de computador para análise. O tubo é instalado perpendicularà direção do fluxo do tráfego e é normalmente utilizado para contagem de tráfego a curtoprazo, classificação de veículos por número de eixos e espaçamento, planejamento dotráfego e pesquisas acadêmicas. As vantagens do uso desse equipamento é a sua rápidainstalação, para permanente ou temporária gravação de dados, e o pouco consumo deenergia elétrica. Suas desvantagens são a contagem imprecisa de caminhões ou ônibusmuito largos, sua sensibilidade à temperatura e a durabilidade, uma vez que pode haverdesgaste da borracha ou ruptura em sua estrutura devido ao tráfego dos veículos. O tubopneumático é também de fácil acesso por estar no solo e pode ser alvo de vandalismo.

3.1 Equipamentos Invasivos 45

3.1.2 Detectores de laços indutivos

Esse sistema é utilizado para detectar a passagem ou presença de veículos, ou fa-zer a contagem. Os laços indutivos são os sensores mais comuns para o gerenciamento deaplicações no tráfego. Um circuito eletrônico é instalado junto ao solo, o qual emite sinaisque vão de 10 Khz a 50 KHz. Quando um veículo passa sobre o mesmo, tal frequênciaé reduzida, fazendo com que as unidades eletrônicas emitam sinais ao controlador, o queindica a presença de um veículo. Quando utilizados dois laços, é possível a identificaçãoda velocidade dos veículos. Nas versões mais recentes dessa tecnologia, as quais utili-zam uma frequência mais alta, é possível a estimação da quantidade de metal do veículo,com isso sendo possível obter a classificação de cada veículo. A vantagem dos laços in-dutivos é o bom funcionamento na captura de dados básicos do tráfego como, volume,presença, velocidade e direção. Igualmente aos tubos pneumáticos, os laços indutivos têmum baixo custo quando comparados aos sensores não-invasivos. Outra vantagem é a suaflexibilidade física, possibilitando grande variedade de aplicações. Devido a necessidadede instalação junto ao solo é necessário a paralisação do tráfego no local, causando muitasvezes certos transtornos no trânsito. A restauração física do laço não é um trabalho viá-vel pelo tempo gasto e sua dificuldade. Portanto, ao apresentar problemas, esse sistemanormalmente é reinstalado por completo. Outra desvantagem é a dilatação e contraçãocausadas pela constante mudança de temperatura do meio ambiente.

3.1.3 Sensores Piezoelétricos

Um piezoelétrico é capaz de converter energia cinética em energia elétrica. Essematerial é formado por polímeros, os quais são macromoléculas geradas por unidadesestruturais menores, os monômeros. A quantidade de monômeros repetidos em uma ma-cromolécula é chamado grau de polimerização. Quando uma pressão é exercida sobre ospiezoelétricos, ou cristais piezoelétricos, os mesmo emitem um campo elétrico que podeser coletado como tensão elétrica. A construção do sensor piezoelétrico é formado pelajunção de um elemento central de metal, trançado, seguido pelo material piezoelétrico euma camada metálica exterior. Durante o processo de fabricação, ele é submetido a umintenso campo elétrico que polariza radialmente o material piezoelétrico. O campo depolarização muda o polímero amorfo em uma forma semi-cristalina, mantendo a flexi-bilidade original do polímero. O piezoelétricos geram uma voltagem quando submetidosa choques mecânicos ou vibrações. A tensão medida é proporcional à força ou peso doveículo, onde a magnitude do efeito piezoelétrico depende da direção e força em rela-ção aos eixos do cristal. Por essa ação ser dinâmica, a tensão diminui quando o ambientepermanecer constante. Devido a tais características, tal tipo de sensor permite obter infor-mações através do peso e da velocidade dos veículos. Sua vantagem é a extrema precisão

3.2 Equipamentos Não-invasivos 46

em classificar os veículos e identificar a sua velocidade, individualmente. Embora sejammais caros que os laços indutivos, eles são mais precisos e adquirem informações maiscompletas. Suas desvantagens se assemelham ao dos laços indutivos uma vez que, parainstalá-los faz-se necessário, a interrupção do trânsito, além disso eles não exercem muitobem sua função quando instalados em solos irregulares.

3.1.4 Sensores Magnéticos

Sensores magnéticos são dispositivos que indicam a presença de um objetometálico através da detecção de uma perturbação no campo magnético do planeta Terra.Tal efeito é conhecido como anomalia magnética. Dois tipos de sensores magnéticosdistintos são utilizados para essa medição de tráfego. O primeiro detecta a alteraçãohorizontal e vertical do campo magnético exercido pela Terra de acordo com a densidadedo metal que o veículo possui. O segundo é conhecido como bobina de indução oumagnetômetro de busca, e seu funcionamento é realizado através da mudança nos valoresdas linhas de fluxo do campo magnético causado pelo movimento. A utilização destessensores têm como vantagem a pouca sensibilidade à temperatura ambiente e ao trânsitocongestionado. Alguns sensores também emitem seu sinal sem a necessidade de cabos, viawireless 1. Suas desvantagens são a pequena zona de detecção que tais modelos alcançam,a dificuldade em detectar veículos parados e a sua instalação, a qual também necessitaparalizar o tráfego no local e cortar a malha viária.

3.1.5 Peso em Movimento

Tais sensores são capazes de estimar o peso bruto de um veículo, bem como aparte deste peso que é transportada por cada conjunto de roda, eixo, ou conjunto de eixos.Ele é utilizado principalmente para fiscalizar caminhões de carga. A sua vantagem é aexatidão em retornar o peso do veículo. Sua desvantagem é não ter recursos para diversostipos de medição, como por exemplo, da velocidade dos veículos.

3.2 Equipamentos Não-invasivos

Os equipamentos considerados não-invasivos, diferentemente dos invasivos, sãoinstalados sobre o solo. Embora normalmente sejam mais caros, os momentos de instala-ção ou manutenção não prejudicam o tráfego no local.

1Wireless é uma rede de computadores que não requer fios para seu funcionamento.

3.2 Equipamentos Não-invasivos 47

3.2.1 Processador de vídeo e imagem

Câmeras de vídeo foram introduzidas no gerenciamento de tráfego de veículopara a vigilância das estradas devido à sua capacidade de transmitir imagens em circuitofechado de televisão para a interpretação de um operador humano. Atualmente, existemsistemas de gerenciamento do tráfego urbano e de estradas que, com a utilização doprocessamento digital de imagem de vídeo, conseguem identificar automaticamente cenasde interesse e extrair informações importantes para a vigilância e o controle do tráfego. Osprocessadores de imagem de vídeo tipicamente consistem na utilização de uma ou maiscâmeras e um microcomputador com um sistema instalado para interpretar as imagensrecebidas e transformá-las em dados do fluxo de tráfego. Esse tipo de sistema, com apenasuma câmera, pode substituir vários laços indutivos e proporcionar a detecção de veículosem várias pistas e, muitas vezes, com menores custos de manutenção. As informaçõesproporcionadas, normalmente, dependem do aplicativo instalado no microcomputadore podem variar em uma ou mais ações aqui descritas: verificar a presença do veículo;classificar o veículo devido ao seu comprimento; medir a densidade do fluxo de veículos;reconhecer placas de licenciamento; e/ou velocidade dos veículos. Entre outras de suasvantagens temos a instalação sem qualquer tipo de transtorno ao trânsito, o registro deimagens que podem ser avaliadas posteriormente por profissionais competentes para, porexemplo, entender o motivo de um acidente e a interpretação e a transformação automáticadas imagens em dados relevantes. As desvantagens do uso de câmeras estão relacionadosao meio ambiente, onde sombra, dia, noite, tempo nublado e chuva, entre outros, podematrapalhar a captura, e consequentemente, o processamento das imagens; ventos fortespodem deslocar o campo de visão da câmera; problemas de oclusão de objetos tambémsão bem comuns.

3.2.2 Radar por Microondas

O termo microondas se refere ao comprimento de onda de energia transmitida,geralmente entre 1 e 30 cm, o que corresponde a uma faixa de freqüência de 1 GHze 30 GHz. Sensores de microondas foram projetados para coletar dados do tráfego emonitorar as estradas dos EUA, onde é limitado por regulamentos da FCC 2 com bandasde freqüência de operação próximo dos 10.5, 24.0, e 34,0 GHz. O radar de microondastransmite a energia na direção de uma área da estrada. A largura do feixe ou da área emque a energia do radar projetada é controlada pelo tamanho e distribuição de energia emtoda a abertura de uma antena, a qual se localiza na parte superior do radar. Quando umveículo passa através do feixe transmitido pela antena, uma parte dessa energia é refletida

2FCC - Federal Communications Commission (Comissão Federal de Meios de Comunicação)

3.2 Equipamentos Não-invasivos 48

de volta para o radar, entra em um receptor onde a detecção é feita e os dados do veículo,tais como velocidade, volume, ocupação, e comprimento são calculados. As vantagensdos radares por microondas são: geralmente não apresentam sensibilidade contra as máscondições climáticas; fornece uma medida imediata da velocidade do veículo; e estãodisponíveis em modelos que suportam múltiplas pistas. Em contrapartida, alguns sensoresnão conseguem detectar veículos parados e existe uma certa dificuldade em ajustar a alturada antena para proporcionar a largura correta do feixe de energia.

3.2.3 Sensores Infravermelho

Os sensores infravermelhos são divididos em Ativos e Passivos. Eles são insta-lados em um lugar elevado na pista para a identificação da aproximação do veículo, oponto de partida do tráfego ou a trajetória do tráfego. Esses sensores são utilizados paraidentificar a presença de veículos em semáforos, volume do veículo, velocidade, avaliaçãodo comprimento, medida do tamanho da fila de veículos e de classificação dos veículos.Existem sistemas mais modernos que tem a capacidade de produzir imagens tridimensi-onais dos veículos, principalmente para verificar a sua classificação. Tal sensor converteenergia refletida, ou emitida, pela luz em sinais elétricos. Esses sinais são processados emtempo real e é usado para analisar presença de um veículo.

Os sensores do tipo infravermelho ativo são divididos em dois aparelhos: um queilumina as zonas de detecção com energia infravermelha de baixa potência produzida porlaser diodos e o outro que é montado na pista e recebe a energia infravermelha refletidados veículos que transitam através da zona de detecção.

Os sensores do tipo infravermelho passivos detectam a energia que é emitida apartir de veículos, pisos e outros objetos em seu campo de visão. Diferente dos sensoresinfravermelho ativos, os sensores infravermelho passivos não transmitem energia própria.Esses sensores no gerenciamento do tráfego têm um ou mais detectores sensíveis a energiaemitida pelos elementos.

De modo geral, as vantagens encontradas no uso dos sensores infravermelhosão a instalação, a qual não requer um procedimento invasivo no pavimento e podem serutilizados para coletar informações de mais de uma pista. As desvantagem do uso dessetipo de sensor são diversas como o intenso brilho da luz solar. O qual pode proporcionarsinais indesejados; e partículas na atmosfera, fumaça e condições climáticas como chuva,neblina ou neve que podem dispersar ou absorver energia atrapalhando o funcionamentodos sensores.

3.3 Aplicações de Visão Computacional para contagem de veículos e auxílio ao planejamento do tráfegourbano 49

3.2.4 Sensores Ultrassônicos

Tais sensores transmitem ondas de energia sonora em uma freqüência entre25 a 50 KHz, acima da faixa audível humana. A maioria dos sensores ultrassônicosoperam com pulsos de ondas sonoras e permitem fazer a contagem volumétrica e obterinformação de presença e ocupação de veículos. Os sensores medem a distância daenergia emitida pela superfície do solo e pela superfície dos veículos. Quando há umavariação na energia emitida pelo solo o sistema considera isso como sendo um veículo.As vantagens do uso dos sensores ultrassônicos são poder detectar múltiplas pistas e nãorequerer um procedimento intrusivo. Como desvantagem, as mudanças de temperaturae ventos muito fortes podem afetar o desempenho de sensores ultra-sônicos (note que acompensação de temperatura é realizada em alguns modelos). Outro fator são períodoscom muitas repetições de pulsos que podem degradar a medição da quantidade deveículos, principalmente em estradas onde os veículos trafegam em alta velocidade.

3.2.5 Sensores de Vetor de Acústica Passiva

Os sensores acústicos são utilizados para a identificação da presença, velocidadee contagem de veículos. Esses sensores atuam através da detecção de energia acústica ousons audíveis produzidos pelo tráfego de veículos. Quando um veículo passa pela zona dedetecção nota-se um aumento na energia do som, o qual é reconhecido por algoritmospara processamento de sinal. Então a presença do veículo é transmitida ao sistema.Quando o veículo sai da zona de detecção, o valor do nível de energia do som geradocai abaixo de limiar definido e o sinal de presença do veículo é encerrado. As vantagensencontradas no uso desse tipo de sensor são semelhantes ao dos sensores ultrassônicos,uma vez que sua instalação não depende da penetração da camada asfáltica e, pode serinstalado para coletar informações de multiplas pistas. Há relatos que baixas temperaturasafetam a precisão dos sensores acústicos. Além disso, diversos modelos não mostram bonsresultados em congestionamentos, no qual o trânsito se apresenta lento.

3.3 Aplicações de Visão Computacional para contagemde veículos e auxílio ao planejamento do tráfego ur-bano

Devido a visão humana ser um dos sentidos mais aguçados, na qual em poucotempo obtém uma imensidão de dados, a denominada Visão Computacional é a simulaçãoda visão, mas tendo imagens capturadas por câmeras, as quais são processadas por umsistema de computador. Essa abordagem é utilizada por muitos pesquisadores para a

3.3 Aplicações de Visão Computacional para contagem de veículos e auxílio ao planejamento do tráfegourbano 50

solução de diversos problemas. Dentre esses problemas, destacamos a determinação dovolume do tráfego de veículos.

É chamada de segmentação de objetos, na área do processamento de imagensdigitais, a utilização de técnicas na imagem, com intuito de separar as áreas pertencentesao fundo e ao objeto. Segundo Gonzalez [19], a segmentação realizada em fundos eobjetos bem determinados, como por exemplo, em processos industriais, onde o ambientee os objetos tem as características bem definidas e a quantidade de luz é invariante e maissimples quando comparadas a segmentação realizada em ambientes naturais. No caso dacoleta da informações do tráfego, a captura das imagens normalmente são realizadas nomeio ambiente, o qual sofre tanto por intensas variações de luz, devido ao sol, como porvariações climáticas. Outro fator é a não definição das características dos objetos, pois osveículos de modo geral possuem diversos tamanhos, cores e formas. Além dos problemasmencionados, há muitos outros envolvendo a segmentação de objetos, como: a oclusão, naqual um veículo ou parte dele é obstruída por outro; a movimentação incerta dos veículos,uma vez que a direção e a velocidade dos mesmos não são uniformes; os “fantasmas”que ocorrem quando a imagem capturada do veículo não fica bem definida, devido a altavelocidade em que o mesmo se move; a sombra que pode ser considerada parte do objeto;e o tremor da câmera devido, principalmente, ao vento.

Segundo Yang [72], os métodos existentes para a contagem, classificatória ouvolumétrica, de veículos utilizando a Visão Computacional pode ser classificados como:

• subtração de fundo: os métodos pertencentes a essa categoria utilizam duas ima-gens, uma contendo uma imagem de referência de fundo e a outra que será subtraídoas áreas consideradas de fundo, segmentando assim os objetos. Normalmente é ge-rado uma imagem através da subtração pixel a pixel da imagem atual com a imagemde fundo. Então é definido um limiar. O pixel da imagem gerada que for inferior aolimiar é considerado parte do fundo, normalmente com com valor 0 (preto), casocontrário é pertencente ao objeto segmentado, valor 1 (branco). No entanto, essetipo de método é muito sensível a variação da iluminação e da oclusão. Exemplosdesse tipo de método pode ser encontrados em [30] e [55]. Ambos são apresentadoscom mais detalhes, respectivamente, em 3.3.1 e 3.3.3, por serem os mais semelhan-tes ao método aqui proposto.• segmentação em primeiro plano3: esse tipo de método é uma variação da sub-

tração de fundo. No qual, após a subtração de fundo são segmentadas partículasbaseadas em diversas características, como forma, pertencentes a um veículo. Esse

3O termo, segmentação em primeiro plano, foi traduzido do termo foreground segmentation utilizadopelo autor

3.3 Aplicações de Visão Computacional para contagem de veículos e auxílio ao planejamento do tráfegourbano 51

tipo de método pode ser encontrado nas abordagens apresentadas por Song [71] eKamijo [34].• detector baseado em aprendizagem supervisionada: aprendizagem supervisio-

nada, na área de Inteligência Artificial, é o nome dado ao ato de treinar uma má-quina até que ela, por si só, consiga realizar tarefas que exigem o reconhecimentode padrões. Nesse tipo de método, uma pessoa vai acompanhando cada resultado doprocessamento da máquina e informando se está correto ou não, podendo ter queajustar certos valores. Conforme o treinamento vai sendo realizado os resultadostendem a melhorar e a máquina vai dependendo cada vez menos da interação hu-mana. Podemos utilizar, como exemplo, o problema do reconhecimento do objetoe do fundo, utilizado para a detecção de veículos. A detecção de objetos é repre-sentada pelo problema de uma classificação binária que discrimine entre objetos eos fundo. Detectores específicos são treinados a partir de um grande conjunto deamostras de treinamento cuidadosamente selecionados. Apesar de seu sucesso, estaabordagem é geralmente sensível à oclusão e a variedade de modelos de veícu-los, onde, consequentemente, há uma grande mudança na aparência dos mesmos.A abordagem proposta por Javed [45] utiliza este tipo de método para a detecçãoe classificação de objetos em tempo real. A aprendizagem supervisionada para adetecção de veículos também é utilizada na abordagem de Levin [39].• modelo de borda correspondente: os veículos são detectados através de segmen-

tos de borda extraídos da imagem que, por sua vez, são comparadas às bordas domodelo de um veículo pré-definido. Em [31], é apresentada uma abordagem dedetecção, contagem e acompanhamento de veículos utilizando bordas. Por utilizaruma câmera aérea o problema da oclusão é minimizado a quase nulo, havendo casosem que as sombras de veículos maiores podem cobrir veículos, ou ao menos partedeles, em outras pistas, desse modo prejudicando a detecção de bordas, consequen-temente o funcionamento do processo. Há outro exemplo desse tipo de método notrabalho de Zhao [74].• Rastreamento e agrupamento de pontos característicos: nessa categoria um

conjunto de pontos relacionados às características do objeto são detectados emonitorados ao longo do tempo. Então, os supostos objetos são individualmenteagrupados, junto a algumas restrições espaciais e temporais. Em [53], o autorapresenta uma abordagem, na qual representa os pontos característicos como umgrafo fortemente conectado. As arestas indicam a proximidade espacial dos nós esemelhança de movimento. Em seguida, é utilizado um algoritmo guloso [64] pararemover gradativamente as bordas de acordo com alguns critérios pré-definidos. Ossub-grafos que restarem após a remoção das bordas são consideradas pertencentesa veículos. Utilizando o mesmo tipo de método também temos as abordagens de

3.3 Aplicações de Visão Computacional para contagem de veículos e auxílio ao planejamento do tráfegourbano 52

Yang [72], Birchfield [8] e Kim [35].

Em seguida, são apresentadas quatro das abordagens mencionadas nas classifica-ções, [30, 71, 55, 72], as quais utilizam métodos de visão computacional para a realizaçãoda contagem de veículos.

3.3.1 Detecção de movimento, acompanhamento e extração de infor-mações de veículos

Haupt [30] com base nos problemas enfrentados pelo tráfego de veículos, comoa segurança no trânsito, supervisionamento de frotas, controle de poluição, entre outros,os quais afetam principalmente vias de regiões densamente povoadas, propôs um sistemapara detectar, acompanhar e extrair informações (posição, velocidade e dimensões) deveículos em movimento usando visão computacional. A coleta das imagens é realizadaatravés de uma câmera digital posicionada em cima de pontes e viadutos, a fim de capturarimagens de veículos em um ângulo aéreo. Tal procedimento foi tomado para eliminaro risco de oclusão entre os veículos. A abordagem aqui apresentada se classifica comosubtração de fundo, segundo às classificações apresentadas por Yang [72].

As imagens capturadas tem uma amostragem de 15 quadros por segundo, emuma resolução de 320 x 240 pixels, e armazenadas no formato AVI (Motion JPEG).Posteriormente cada quadro é convertido em sequência de imagens no formato BMP, deacordo com cada quadro do vídeo.

São realizadas pré-configurações pelo usuário, com o intuito de otimizar oprocessamento do sistema, tais como o ajuste da região de interesse, o qual é feito atravésde margens do campo de visão da câmera, buscando descartar bordas das imagens quesão desnecessárias, como ações do vendo e movimento da vegetação.

Por sua vez, o sistema opera primeiramente convertendo a imagem de RGBpara escala de cinza, diminuindo assim o peso computacional do processamento [18].Para corrigir problemas de contraste causados por iluminação deficiente, excessiva ou atémesmo da câmera, é utilizado o realce de contraste. A imagem então é suavizada para aremoção de ruídos.

Os filtros são aplicados para garantir uma melhor segmentação do objeto, aqual, de acordo com Gonzalez [18], é o primeiro e essencial passo em procedimentosautomáticos para a análise do conteúco de uma imagem. Isso é realizado através dadiferença entre pixels de dois quadros de tempo distintos. A imagem obtida é escurae de baixo contraste, para melhorar a visibilidade do objeto segmentado é aplicado abinarização na imagem, onde através de um limiar, um determinado pixel é transformadona cor preta ou branca. Para a determinação do limiar nesse trabalho foram testados doismétodos, o estático e o de Laplace [9], sendo os melhores resultados obtidos pelo método

3.3 Aplicações de Visão Computacional para contagem de veículos e auxílio ao planejamento do tráfegourbano 53

de Laplace por determinar de modo automático o limiar analisando pixels mais próximosà borda do objeto.

Ao obter a imagem binarizada pequenos pontos isolados, ruídos, são removidosatravés da operação morfológica de abertura.

É determinado, então, um ponto médio do objeto a partir da média das coordena-das de linha e coluna dos pixels brancos. O acompanhamento dos veículos é feito atravésda aproximação de pontos médios, conseguindo determinar assim a velocidade do veí-culo. Também é feita uma análise do tipo de veículo baseado no tamanho de sua área empixels.

3.3.2 Um método de segmentação baseado em modelo de veículopara acompanhamento

Song [71] propôs uma abordagem utilizando técnicas de segmentação em pri-meiro plano, segundo as classificações de Yang [72]. Seu objetivo é detectar e acompa-nhar veículos em movimento através de uma câmera fixada a poucos metros do solo. Aoclusão de veículos é significativa nessas condições, pois na segmentação de dois ou maisobjetos, quando ocludidos, a área separada é a mesma, dando a impressão de apenas umobjeto segmentado.

São utilizados modelos genéricos com a forma de veículos, como sedan, SUVe truck (caminhão), junto à calibração da câmera e o reconhecimento do fundo, paradetectar, acompanhar e classificar os veículos em movimento mesmo que ocludidos. Osveículos, na imagem, devem ter uma resolução maior que 20 pixels e é presumido quenão existam sombras largas ou reflexos, ou que eles tenham sido removidos em um pré-processo utilizando o método apresentado por Prati [1].

Esta abordagem pode ser divida basicamente em 3 etapas. Na primeira o autor fazum estudo do comportamento das formas que um veículo qualquer da classe sedan, sendotais formas diferenciadas devido a imagem capturada pela câmera em ângulos diferentes.Para isso foi gerado um molde 3D, no qual a partir de rotações no mesmo foram geradas12 formas 2D destintas, a partir de rotações em 15◦ verticalmente e 30◦ horizontalmente,como ilustra a imagem 3.1. Cada forma é denominada máscara do veículo e é utilizadapara a realização da comparação, e assim classificação, dos veículos que trafegaram navia. Embora apresentado pelo autor apenas o estudo da modelagem de um sedan, o mesmotambém utiliza as classes SUV e caminhão em seus testes.

A segunda parte da abordagem dá-se ao inicio da execução do método o qual seresume em segmentar os veículos. Pode ser definida como a terceira etapa o mapeamentodos veículos, classificação e acompanhamento.

3.3 Aplicações de Visão Computacional para contagem de veículos e auxílio ao planejamento do tráfegourbano 54

Figura 3.1: Estudo do comportamento das formas de um veículosedan em diferentes ângulos. Em (a) é apresentado omolde 3D do veículo sedan e em (b) imagens em 2Ddas diferentes formas tomadas pelo veículo.

A segmentação é realizada efetuando a subtração de uma imagem de referênciade fundo pela imagem do quadro atual, posteriormente pelo quadro seguinte e assim pordiante, todas em tons de cinza. Então, a imagem resultante da subtração é limiarizada,utilizando um limiar global. O processo de limiarização gera uma imagem binária, naqual os pixels brancos representam parte da área de algum objeto que se moveu e os pixels

pretos representam parte da área do fundo. Junto aos veículos, ruídos e diversos objetosdescartávéis que se moveram, como folhas das árvoes com o vento e pessoas andando,também são segmentadas. Então o objetivo, a próxima medida tomada é a identificarquais pixels brancos são pertencentes a veículos e quais devem ser descartados. Nessafase, o autor divide o problema em três questões: (1)Quantos veículos existem? (2)Ondeeles estão? E (3) qual é o tipo de cada veículo? O número de veículos é definido por Θ,em:

Θ =∞⋃

k=0

(M1xM2x...xMk), Mi = (ti,xi,yi,oi)

onde k é o número de veículos e M é o vetor de parâmetros de um veículo. Em M sãoarmazenados o tipo do veículo, representado por ti, o ponto central, xi e yi, e a orientação,oi.

Considerando Θ, é calculada a probabilidade a priori 4 do número individual deveículos, P(θ). Esse cálculo é feito através da fórmula:

P(θ) = P(k|N).k

∏i=1

P(Mi)

na qual P(k|N) é a distribuição de Poisson [3] com o valor médio N = A f /Av, onde A f éa área total do veículo e Av a área média de um veículo e P(Mi) é a probabilidade a priori

4”Pode-se destacar a diferença entre a probabilidade e a estatística espelhando-se na relação entre aspredições teóricas e experimentais; a primeira nós chamamos probabilidade a priori e a segunda a posteriori.Por exemplo, se formos lançar um dado não viciado sabemos a priori que a probabilidade de encontrarmosum número par é 1/2. Agora se lançarmos este mesmo dado N vezes (N grande) verificaremos a posteriorique a distribuição dos valores encontrandos tendem ao previsto a priori [2].”

3.3 Aplicações de Visão Computacional para contagem de veículos e auxílio ao planejamento do tráfegourbano 55

de um veículo. P(Mi) é calculado através de:

P(M) = P(t).P(x,y).P(o)

onde P(t) é a probabilidade a priori do tipo de veículo, sendo utilizado nesta abordagemtrês tipos distintos, os quais o autor definiu como P(sedan) = P(SUV ) = P(truck),P(x,y) representa a probabilidade a priori da posição e P(o) a probabilidade a priori daorientação.

Quando há múltiplos veículos se ocludindo, a imagem não pode ser decompostaem veículos individuais, então é calculada a probabilidade de haver veículos conectados,como ilustrado na figura 3.2. Neste ponto, também são removidos os pixels que nãopertencem a regiões de veículos segmentados. O tratamento da oclusão de múltiplosveículos e a remoção de ruídos é calculada através da utilização de máscaras, as quaiscontém as possíveis formas do veículo. Com a utilização dessas máscaras é possívelestimar quais pixels são parte integrante da área de um veículo e quais não são. Apósa remoção dos ruídos é possível estimar a quantidade de veículos que fazem parte daoclusão. Tendo F como o primeiro plano, Vi como a máscara de um veículo e

⋃ki=iVi

como primeiro plano ideal, é calculada a a função de probabilidade:

Figura 3.2: Possibilidade de oclusão entre veículos. Em (a) temosa imagem original e em (b) a imagem resultado dalimiarização obtida através do imagem produto dasubtração da imagem (a) com a imagem de fundo

P(θ|I) = α.e−(−(λ1.E1+λ2.E2))

onde E1 = F −F ∩ (⋃k

i=iVi) é o conjunto de pixels não cobertos pela máscara e E2 =

(k⋃

i=1(Vi))−F ∩ (

k⋃i=1

(Vi)) o conjunto de pixels que não correspondem ao primeiro plano

ideal, α é uma constante e λ1 e λ2 são pesos de penalidade para os dois tipos de erros, E1

e E2. Com a combinação das funções de probabilidade e probabilidade a priori temos:

P(θ|I) ∝ P(k|N).(k

∏i=1

P(Mi)).e−(λ1.E1+λ2.E2)

Ao estimar o primeiro plano ideal, no qual todos os pixels brancos são conside-

3.3 Aplicações de Visão Computacional para contagem de veículos e auxílio ao planejamento do tráfegourbano 56

rados parte da área de veículos e os pixels pretos parte da área do fundo, região de ruídoou pertencentes a objetos indesejáveis, agora os veículos são segmentados, classificadose acompanhados, para a realização da contagem classificatória.

Nesta terceira e última parte da abordagem, os veículos passam a ser conside-rados como um vetor de 8 parâmetros,(cx,cy,w,h,rotate, type,orient, tilt), para que elestambém possam ser acompanhados. (cx,cy) são o centro do veículo, (w,h,orient) deli-mitam o retângulo rotacionado que envolve o veículo, (type) é i tipo do veículo, (orient)

é a orientação relativa do veículo com a câmera e (tilt) é o ângulo entre o plano dosolo e a linha do centro da câmera para o centro do veiculo. O autor assume que essesparâmetros não são independentes, e conhecendo o centro, tipo e orientação do veículo(cx,cy, type,orient) é o suficiente para definir (w,h,orient, tilt).

Devido a quantidade de parâmetros de um veículo, é inviável o uso de umabusca por força bruta para a solução do MAPA. TaL-mapA quando resolvido tem asinformações das posições de cada veículo segmentado. Para resolvê-lo, o autor utilizauma busca gulosa, isto é, busca utilizando um algoritmo guloso. Esse algoritmo é divididoem dois estágios, o primeiro leva em consideração apenas os parâmetros para identificaros veículos, nesta fase há uma alta taxa de aceitação, o que gera muitos falsos alarmes.Então no segundo estágio, utilizando DDMCMC de modo semelhante à abordagem deZhao [73], a informação obtida na primeira fase é refinada.

Para a identificação dos veículos no primeiro estágio, duas camadas são utili-zadas. A primeira camada para identificação de regiões retangulares e a segunda com amáscara do veículo.

A detecção da região retangular é baseada no método de Viola [67]. A vantagemdo uso de apenas 4 pontos, dos cantos do retângulo, é o enorme ganho na redução do custode processamento. A seguir, para cada retângulo encontrado é feita uma comparação dequal das máscara, com as possíveis formas do veículo, é a mais compatível com a forma doobjeto dentro do retângulo, assim que for definida a máscara, os valores (type,orient, tilt)

são definidos. Assim como na detecção do retângulo, a detecção da máscara é baseadaapenas no contorno da imagem.

No segundo estágio as informações obtidas pelo primeiro são refinadas utili-zando nos dados dirigidos MCMC [73]. O qual permite calcular a probabilidade de adiçãode hipotético veículo, remoção de hipotético veículo, recolocação de hipotético veículo,mudança de tipo, atualização da posição do veículo sobre área ruidosa e mudança da ori-entação do veículo em área ruidosa. Então o veículo é acompanhado entre os quadrosutilizando a aceleração constante do filtro de Kalman [70], a informação do acompanha-mento é armazenada no vetor (id,cx,cy,vx,vy,w,h), sendo (id) o identificador, (cx,cy)

o centro, (vx,vy) velocidade e (w,h) o tamanho do limite do retângulo envoltório, quepertencem ao veículo.

3.3 Aplicações de Visão Computacional para contagem de veículos e auxílio ao planejamento do tráfegourbano 57

3.3.3 Um método para contagem de veículos na presença de múlti-plos veículos ocludidos em imagens do tráfego

A abordagem de Pang [55] apresenta um método para tratar da oclusão deveículos através de imagens capturadas por uma câmera fixa. No método proposto,é utilizado uma imagem de fundo, na qual se compara os quadros subsequentes e,também, moldes com a forma baseada na de veículos através de uma modelagen 3D. Essamodelagem é chamada de GDM (Generalized Deformable Model). Na figura 3.3 segueum modelo do GDM. Esta abordagem pode ser classificada como subtração de fundo,segundo as classificações apresentadas por Yang [72].

Figura 3.3: GDM de um veículo i.

Assim como no método de Song [71], a abordagem inicia realizando um estudode uma modelagem 3D, mas ao invés de assumir um molde com o formato de um veículo,o autor trata o veículo como sendo um cubo retangular, GDM. O intuito da GDM é gerarum cubo que envolva a área do veículo, e analisar essa forma para classificá-lo e analisarpossíveis oclusões automáticamente.

Obviamente ao segmentar os veículos de um plano, imagem 2D, a área extraídatambém é um plano. Então, após a segmentação são detectados os pontos de cantos dosveículos. A partir desses cantos e do posicionamento da câmera é calculada a GDM queenvolve o veículo, mais a frente é feita uma descrição mais completa sobre esse processo.Por se tratar de um plano, a GDM também é tratada em duas dimensões, sendo assim,os pontos dos cantos internos do cubo são ignorados, levando em consideração apenasos pontos dos cantos externos. Por exemplo, utilizando a estrutura da GDM ilustrada na3.3, os vértices v7,i e v8,i são descartados e os vértices v1,i, v2,i, v3,i, v4,i, v5,i e v6,i sãoconsiderados. Devido a GDM ser equivalente a um grafo completo, o número de vérticesé igual ao número de arestas.

Embora seja possível extrair uma infinidade de formas possíveis rotacionandoa GDM, o número mínimo de vértices e arestas externas é 4 e o máximo 6. Com, as

3.3 Aplicações de Visão Computacional para contagem de veículos e auxílio ao planejamento do tráfegourbano 58

arestas da GDM são rotulada sequencialmente por ”a”, ”B”, ”c”, ”A”, ”b” e ”C”, comoilustrado na imagem 3.4. Onde cada rótulo sempre representa a mesma posição respectivado veículo, por exemplo c sempre será o piso do veículo e C o teto, ou a parte mais altado veículo em relação a imagem. A análise de uma GDM é feita através de um ciclo nosentido anti-horário.

Figura 3.4: Grafo extraído da GDM.

Observando que a GDM pode ter no mínimo 4 e no máximo 6 arestas visíveis, foirealizada uma análise das possíveis sequências de arestas, baseada com o posicionamentoda câmera. Na figura 3.5, podemos observar o ciclo formado pela câmera posicionada emdiversos ângulos diferentes.

Após a segmentação, calculo da GDM e classificação das arestas, cada ciclocompleto representa um veículo completo, isto é, que não está ocludido. Quando ha umaquebra no ciclo, é assumido que há uma oclusão parcial. Por exemplo, utilizando o cicloaBcAbC como um veículo completo, o ciclo aBaBcAbAbC significa que há dois veículossobrepostos na segmentação.

O método proposto inicia o processo realizando a segmentação. Segundo Lam[36], os padrões de cores RGB e HSI são muito sensíveis a mudanças de brilho e comisso não apresentando bons resultados na segmentação por subtração de fundo. Ele entãopropôs uma segmentação utilizando imagens no formato YCrCb, em tal formato Y é aintensidade de luz na imagem e CrCb representam a quantidade de cor, ou crominância,sendo respetivamente representadas por Cr o grau de crominância vermelha e Cb o graude crominância azul. Essa segmentação se resume a resolução do OR−map, o qual éa soma dos resultados obtidos por T −map, L−map e C−map, os quais são mapasbinários calculados a partir da respectiva diferença de textura, luminância e crominância,entre a imagem de referência de fundo e a imagem de primeiro plano.

Organização da textura espacial é frequentemente descrita como a correlação decoeficientes, a qual avalia a relação espacial linear entre primitivos. Em uma autocorre-lação um único pixel é considerado uma textura primitiva, onde a propriedade primitivade tom é a escala de cinza. Se a textura primitiva é relativamente grande, a função deautocorrelação diminui o valor lentamente com o aumento da distância ou, aumentando

3.3 Aplicações de Visão Computacional para contagem de veículos e auxílio ao planejamento do tráfegourbano 59

Figura 3.5: Ciclos dos grafos gerados através da GDM, por câme-ras em diversos ângulos diferentes.

rapidamente se a textura consiste de pequenos primitivos. Para o calculo da da correlaçãoentre as texturas da imagem de fundo e da imagem em primeiro plano são separados doisblocos P, um para cada imagem, de tamanho (M,N), esse bloco conterá o valor originalda intensidade, cada um de sua respectiva imagem. O bloco P é utilizado para o calculoda autocorrelação R, de tamanho (M,N), isso é computado através da fórmula:

R(u,v) =(2M+1)(2M+1)

(2M+1−u)(2N +1− v)× ∑

2M−um=0 ∑

2N−vn=0 p(m,n)p(m+u,n+ v)

∑2M−um=0 ∑

2N−vn=0 p2(m,n)

0≤ u≤ 2M

0≤ v≤ 2N

sendo, M e N as dimensões dos bloco, e p(m,n) representa o valor de intensidade em(m,n) e (u,v) a posição do valor que está sendo calculado em R. A diferença entre aautocorrelação entre blocos das duas imagens é dada por:

dR(u,v) = [R(x,y),i(u,v)−R(x,y),b(u,v)]2

3.3 Aplicações de Visão Computacional para contagem de veículos e auxílio ao planejamento do tráfegourbano 60

A diferença da Textura das imagens pode ser calculada através da diferença doquadrado da autocorrelação entre as imagens, dada pela função:

dT (x,y) =1

(2M+1)(2N +1)×

2M

∑u=0

2N

∑v=0

[R(x,y),i(u,v)−R(x,y),b(u,v)]2

na qual, i e b estão representando, respectivamente, a imagem de entrada e a imagemde fundo, dT (x,y) é o valor correspondente pela diferença resultante entre as imagens noponto (x,y) de cada. Na figura 3.6, ilustra a operação para computar a diferença da texturaentre as imagens, dT .

Figura 3.6: Computando a diferença da textura dT .

A diferença da luminância, canal Y, da imagem de fundo pela imagem de entradaé dada pela equação:

dY =

{Yi(x,y)−Yb(x,y) se Yi(x,y)−Yb(x,y)> 00 senão.

onde Y (x,y) é o pixel (x,y) do canal Y de uma imagem. E a diferença da crominância,canais Cr e Cb, é dada por

dC(x,y) = [Cbi(x,y)−Cbb(x,y)]2 +[Cri(x,y)−Crb(x,y)]2

Os mapas T-map, L-map e C-map são gerados através da limiarização de dT , dY

e dC, respectivamente. Essa limiarização é feita através da seleção de um limiar ótimo,utilizando o algoritmo Isodata. Embora existam outros algoritmos para a selação deum ótimo limiar, o algoritmo Isodata [66]. Esse algoritmo é baseado em uma técnica

3.3 Aplicações de Visão Computacional para contagem de veículos e auxílio ao planejamento do tráfegourbano 61

interativa, e se apresenta com uma baixa taxa de erro quando comparado com a seleçãoquadro a quadro por um humano. Os valores de dT , dY e dC são primeiro quantizadosdentro de número de níveis 2B, onde B é qualquer positivo inteiro. O histograma decada variável é então construída. Casa histograma é segmentado em duas partes, usandocomo limiar inicial o valor τ0 = 2B−1, metade da variação dinâmica máxima. As amostrasmédias m f ,0, sendo da diferença dos valores associados com os pixels da imagem deentrada, mb,0, a da imagem de fundo, são computadas por

mb,0 =1

∑2B−1−1i=0

2B−1−1

∑i=0

h[i]i,

m f ,0 =1

∑2B−1i=2B−1 h[i]

2B−1

∑i=2B−1

h[i]i,

onde h[i] é a quantidade de pixels na posição i. Um novo valor de limiar é computado paraτ1 com a média dessas duas amostras médias. O processo é repetido baseado no novolimiar

τk =m f ,k−1 +mb,k−1

2

até que o valor do limiar não mude mais, isto é, τk = τk−1

Os três mapas então são gerados:

T −map =

{1 se dT (x,y)> τT

0 senão.

L−map =

{1 se dY (x,y)> τY

0 senão.

C−map =

{1 se dC(x,y)> τC

0 senão.

sendo τT , τY e τC, os limiares ótimos definidos pelo algoritmo Isodata. Os mapas entãosão somados para gerar o OR-map

OR−map = T −map+L−map+C−map

A figura 3.7, ilustra o processo de segmentação.

3.3 Aplicações de Visão Computacional para contagem de veículos e auxílio ao planejamento do tráfegourbano 62

Figura 3.7: Segmentação utilizando T-map, L-map e C-map. Moto-cicleta; (a) Imagem de entrada fi; (b) imagem referên-cia do fundo fb; (c) T-map; (d) L-map; (e) C-map; (f)OR-map; (g) OR-map após a realização de operaçõesmorfológicas de erosão e dilatação; (h) contorno; (i)veículo extraído; (j) mascara do veículo extraído; (k)veículo de referência; e (l) máscara de erro da dife-rença .

Após a realização das operações morfológicas de erosão e dilatação, denomi-nada abertura, no OR-map, para a remoção de possíveis ruídos, é realizada detecção docontorno, envoltória convexa. É, então, utilizado o método de detecção de inclinação tan-gencial, proposto em [54], para a extração dos pontos de curvatura. Primeiro, a inclinaçãotangencial de contorno do objeto segmentado é calculada. A inclinação tangencial de i

é definida como vetor que une i− 1 e i+ 1. O sinal de curva no contorno, o qual é umconjunto de inclinações tangenciais, pode ser escrito matematicamente como

si(xi,yi) =yi +1− yi−1xi +1− xi−1

para i = 2, ...,Ns − 1, onde Ns é o número de pontos no contorno, e xi e yi são os

3.3 Aplicações de Visão Computacional para contagem de veículos e auxílio ao planejamento do tráfegourbano 63

componentes x e y do iésimo ponto, respectivamente. Entretanto, os sinais de curvaimplicam em uma considerável quantidade de ruído e variação. Esses locais de ruído evariação são causados devido a quantização no processo de digitalização do contorno, edevem ser filtrados antes que os pontos de curvatura sejam detectados.

Esse filtro elimina qualquer pico com duração inferior ou igual a duas amostrascom o mesmo tamanho, em outras palavras, o filtro muda o sinal [..., p,q, p, ...] para[..., p, p, p...], ou [..., p,q,q, p, ...] para [..., p, p, p, p, ...], respectivamente, no qual p e q

são dois valores diferentes de inclinação tangencial. Matematicamente esse filtro é dadopor:

fi = si−1 if (si 6= si−1 and si+1 = si−1)

fi = si−1 and si+1 = si−1 if (si 6= si−1,si+1 = si and si +2 = si−1)

onde si e fi são valores das inclinações tangenciais do sinal de curva e do sinal de curvafiltrado, respectivamente. Desse modo todos os locais de variação são removidos.

Para detectar os pontos de curvatura dos sinais de curva filtrados, primeiroos pontos inicial e final de cada segmento deslocado pelo filtro do sinal de curva sãoconsiderados curvatura desde que eles apresentem uma mudança substancial na inclinaçãotangencial. Depois os pontos de curvatura são detectados também com ponto de transiçãoonde o sinal de curva filtrado muda o estado. E pode ser escrito como

if ( fi−1 =±∞, fi 6=±∞, and fi+1 6=±∞)

then ci = [xi yi]T andci+1 = [xi+1yi+1]

T if fi 6= fi+1

if ( fi−1 6=±∞, fi 6=±∞, and fi+1 =±∞)

then ci = [xi−1 yi−1]T andci+1 = [xiyi]

T if fi−1 6= fi

if ( fi−1 = fi 6=±∞, and fi+1 = fi+2 6=±∞)

then ci = [xi yi]T andci+1 = [xi+1yi+1]

T if fi 6= fi+1

onde ci é o ponto de curvatura detectado nas coordenadas [xi yi]T da imagem 2D. O

conjunto dos pontos de curvatura detectados podem ser descritos como c= [c1,c2, ...cK]T ,

onde K é o número de pontos de curvatura detectados. A figura 3.8, ilustra a detecção dospontos de curvatura em uma imagem com veículos segmentados.

3.3 Aplicações de Visão Computacional para contagem de veículos e auxílio ao planejamento do tráfegourbano 64

Figura 3.8: Extração dos pontos de curvatura de uma imagem comveículos aglomerados segmentados. (a) Contorno; (b)sinaisd e curva de (a), (c) local com variação nos si-nais de curva, (d) sinais de curva filtrados, (e) pontosde curvatura detectados na curva, e (f) pontos de cur-vatura detectados.

As linhas entre os pontos de curvatura serão agora classificadas de e comparadoscom o formato da GDM. Cada linha do contorno então é estendida para verificar seintersecta as linhas de px, py e pz de modo anti-horário. As linhas px, py e pz são,consecutivamente, a linha perpendicular à via, a linha perpendicular ao sentido da via,a linha vertical concorrente a px. Se a linha da GDM estimada intersecta a linha de py

então é classificada como "a", caso ela esteja no sentido de afastamento de py, ou A, se

3.3 Aplicações de Visão Computacional para contagem de veículos e auxílio ao planejamento do tráfegourbano 65

ela estiver em sentido a py. O mesmo acontece com px, classificando as linhas como "c"e"C", e com pz, classificando as linhas como "b"e "B". Como ilustra a figura 3.9.

Figura 3.9: linhas entre os pontos de curvatura, Ds.

Utilizando o exemplo da figura 3.9, podemos definir o ciclo sendo Ds =

aBabcaBcAbCbcAcAbCbCbC. Devido ao posicionamento da câmera na captura dessaimagem, o ciclo formado por cada veículo deverá respeitar a ordem aBcAbC, como po-dermos ver na figura 3.5, na região Pe

4 , terceiro ciclo. Neste exemplo foram detectados 6veículos, figura 3.10 onde

1. Ds1 = "aBcAbC",

2. Ds2 = "aBc..b...",

3. Ds3 = "...cA...",

4. Ds4 = "...cAbC...",

5. Ds5 = "aB...bC",

6. Ds6 = "...bC...".

Figura 3.10: Veículos segmentados. (a) Ds1, (b) Ds

2, (c) Ds3, (d) Ds

4,(e) Ds

5, e (f) Ds6.

3.4 Aplicações de Visão Computacional para auxílio e monitoramento do tráfego urbano 66

3.4 Aplicações de Visão Computacional para auxílio emonitoramento do tráfego urbano

3.4.1 Técnica utilizando visão computacional para direção autônomade um veículo inteligente

Foi proposto por Aytül [5] um sistema baseado em visão para a direção autônomade um veículo inteligente, onde por si só, o veículo tem a capacidade de navegação sem aação humana. Para isso é necessário o reconhecimento da pista, bem como obstáculos eseus limites, o reconhecimento de outros automóveis para evitar colisões, entre outroselementos. A utilização de sensores é crucial para a realização da direção autônoma,dentre os mesmos a câmera, a qual é utilizada como a visão do veículo. Na figura 3.11são apresentados lugares no veículo onde os sensores poderiam ser instalados.

Figura 3.11: A instalação dos sensores no veículo por Ohio StateUniversity, preparado para o DARPA Urban GrandChallenge [65].

O sistema apresentado se divide em três etapas. A primeira consiste na detecçãodo asfalto. Uma região previamente especificada na imagem é recortada, desse modo,melhorando o seu processamento. Após o recorte, é aplicado o filtro Gaussiano [18]para suavização da imagem, diminuindo possíveis ruídos. Para melhorar a velocidadedo processamento computacional foi utilizado um simples filtro Gaussiano 3x3 [18].

Para a segmentação da pista é utilizada a técnica de crescimento simultâneo daregião [62], cuja a idéia é escolher um certo número de pixels semente na imagem ecomeçar a conectar os pixels na visinhança até o padrão de similaridade predefinido sejasatisfeito, como ilustra a Figura 3.12.

Após a utilização da técnica de crescimento simultâneo são analisadas as regrasda textura do asfalto. Nesse passo são aplicados os filtros s e e [38]. Um algoritmo deaprendizagem é utilizado para classificar a textura do asfalto na imagem. A operação

3.4 Aplicações de Visão Computacional para auxílio e monitoramento do tráfego urbano 67

Figura 3.12: Ilustração da técnica de crescimento simultâneo depixels [46].

de fechamento morfológico é realizado para a criação de um histograma classificadorgenérico que cobre todas as variações de textura. Os dados do histograma são referidoscomo o espaço de características da textura.

Com a textura asfáltica detectada, verificasse a pista e seus limites através dosmétodos de detecção de bordas de Canny [10] e a transformada de Hough [63].

Foi implementado um algoritmo baseado na detecção de movimento utilizandoos filtros de Kalman [70], para a detecção de carros que trafegam ao redor do veículointeligente proposto. Após a estimação do movimento a imagem é dividida em oitocomponentes conectados e as regiões que ocupam uma área pré-definida são selecionadase classificadas então como grandes objetos em movimento, representando carros, namaioria das vezes.

3.4.2 Detecção de placa de veículos

Martinsky [43] desenvolveu um sistema para reconhecimento de placas deautomóveis, intitulado como JavaANPR.

O JavaANPR recebe como entrada uma imagem. É então aplicado o filtro deSobel vertical [59] para a detecção de bordas. Ao aplicar o filtro foi verificado, nohistograma da imagem, uma grande variação na região onde está a placa, como mostra aFigura 3.13.

3.4 Aplicações de Visão Computacional para auxílio e monitoramento do tráfego urbano 68

Figura 3.13: Histograma da imagem gerada ao aplicar o filtro deSOBEL vertical [43].

Ao estimar a região horizontal na imagem onde a placa está posicionada éverificada a posição vertical. De acordo com a altura é dado um tamanho de larguramáximo que a placa pode atingir. É analisado então, a partir dessa largura máxima, ondeestão posicionados os possíveis caracteres.

Separando a região da imagem onde provavelmente contém a placa, é verificadose existe algum ângulo de distorção através da transformada de Hough [63]. Caso sejaencontrado algum ângulo de distorção na placa, a imagem da região é redesenhada,transformando o formato da imagem da placa o mais próximo da placa quando vista defrente, desse modo, preparando a imagem para capturar cada caracter individualmente.

Observando que os caracteres se destacam do fundo por terem cores com brilhoe contraste muito diferentes, é aplicada a binarização para facilitar o processamento daimagem. O problema desta etapa está relacionado ao brilho do ambiente, uma vez queregiões mais escuras e outras mais claras na placa não apresentam bons resultados nabinarização, como podemos ver na figura 3.14.

Figura 3.14: Binarização da imagem da placa de um veículo [43].

Para evitar resultados como o apresentado na figura 3.14, a imagem é separada

3.4 Aplicações de Visão Computacional para auxílio e monitoramento do tráfego urbano 69

em seis regiões distintas, as quais são binarizadas individualmente. Ao binarizar a imagemos caracteres são extraídos e são geradas imagens separadas para cada um.

Após a separação de cada caracter, os mesmos passam pela etapa de reconheci-mento. Para isso foram implementados e treinados métodos de reconhecimento de carac-teres conhecidos utilizando redes neurais artificiais, conhecidos como OCR [42].

A partir do reconhecimento dos caracteres, o sistema retorna a placa do veículos.Por ser baseado em estimativas, o sistema também retorna uma porcentagem da exatidãodo resultado.

Um fator interessante desse trabalho é a geração de arquivos, logs, que registramtodas etapas do processamento e seus resultados, tornando possível assim, em caso deerros, verificar em qual ponto o sistema sofreu dificuldades no reconhecimento.

CAPÍTULO 4Método para a contagem volumétricaautomática de veículos

Como vimos no capítulo 3, a Visão Computacional utiliza métodos de processa-mento de imagens digitais para extrair informações a partir de uma ou mais imagens deentrada.

Normalmente, para obter resultados consistentes e de melhor qualidade é neces-sário o uso de uma série de filtros. Conforme o aumento no número de filtros utilizadospara processar uma imagem, maior o tempo necessário para obter as informações, o quefaz com que o processo não seja sempre viável. Em contrapartida, quanto menos filtrosutilizamos, mais rápido as imagens são processadas, e menores são as chances de extrairboas informações.

Claro que existem processos simples que não precisam de muitos filtros paratrazerem ótimos resultados. Por exemplo, em processos industriais que utilizam a visãocomputacional, geralmente o ambiente é controlado, o que facilita o processo de reco-nhecimento de padrões [19]. Mas, de modo geral, quando tratamos o processamento deimagens em um ambiente externo, onde, entre outros fatores, temos principalmente a ilu-minação, que não é estável, uma série de precauções devem ser tomadas para preparar aimagem antes de processá-las.

Neste trabalho, procurou-se projetar e avaliar etapas de processamento de ummétodo de contagem volumétrica de veículos de forma que pudesse posteriormente serutilizado em dispositivos móveis, como celulares e tablets. A idéia é reduzir o custo e otrabalho necessário para implementar um sistema automatizado de contagem volumétrica,uma vez que tais dispositivos estão se tornando mais populares, potentes e baratos. Destemodo, o método deve atender os seguintes requisitos:

1. trabalhar com imagens capturadas da lateral de uma avenida ou rua, com umacâmera fixada em uma baixa altura, identificando e contando tantos os veículosque trafegam nas direções a favor ou contra o observador. A figura 4.1 ilustra aposição planejada para uso do sistema;

2. utilizar imagens de baixa resolução; e

4.1 Fluxo de processos 71

3. realizar a captura, processamento e contagem imediata dos veículos, isto é, emtempo real.

(a) (b)

Figura 4.1: Posicionamento da câmera para captura de imagens.Em (a) é mostrada a imagem capturada pela câmera,e em (b) é apresentada a posição do observador, sim-bolizando destacado o alcance da câmera

O trabalho foi dividido em duas etapas. Na primeira, a meta foi chegar a ummétodo que contasse veículos com uma baixa taxa de erros. Para tanto, foi desenvolvidoum algoritmo para executar em um laptop convencional. Na segunda parte, o objetivofoi reduzir o processamento desse algoritmo, de modo a rodá-lo em um celular e aindarealizar a contagem de veículos em tempo real sem piorar a taxa de erros.

Neste capítulo, é abordado sobre o algoritmo desenvolvido e as tecnologias utili-zadas para o sistema executado no computador. No capítulo 6, tratasse da transformaçãodesse algoritmo para executar em um dispositivo móvel.

4.1 Fluxo de processos

O método aqui apresentado possui 5 macro etapas: pré-processamento da ima-gem de entrada, reconhecimento da imagem de fundo, reconhecimento da área de movi-mento, segmentação de objetos e acompanhamento de objetos em sequência de quadros.

A figura 4.2 ilustra o funcionamento do método. De forma resumida, o métodoproposto recebe um conjunto de imagens sequênciais, sendo essas capturadas em temporeal ou gravadas previamente. Cada uma dessas imagens passa por um pré-processamento,o qual as trata de forma a reduzir tanto possíveis ruídos como custo computacional nosdemais processos. Após o pré-processamento, são estimadas duas referências: primeiro,a imagem de referência de fundo, a qual é atualizada frequentemente devido às alteraçõesconstantes no ambiente; e a segunda, a área de movimento, isto é, uma região retangularcomum entre as imagens, a qual cobre a região de concentração de tráfego de veículos. A

4.1 Fluxo de processos 72

Figura 4.2: Diagrama com a representação geral de etapas dosistema.

área de movimento é estimada para não haver a necessidade de processar a imagem porcompleto, uma vez que os veículos normalmente se apresentam em uma distinta região.Com as referências estimadas, é iniciado o processo de segmentação. Para separar asregiões pertencentes ao fundo das regiões pertencentes aos objetos. Nesse processo, oque for identificado como veículo é ainda rotulado para ser utilizado na etapa seguinte.O processo de acompanhamento tem por finalidade não contar o mesmo veículo mais deuma vez em quadros subsequentes. O método inteiro é executado repetidas vezes até queo usuário o interrompa ou, em caso de arquivos gravados, que não haja mais imagens deentrada.

Nas próximas seções, é descrita com mais detalhe cada etapa do método.Para o funcionamento do sistema algumas medidas devem ser tomadas na

captura das imagens de entrada. Elas deverão ser feitas a partir de um ponto fixo, àluz do dia, em locais onde os veículos não fiquem parados por muito tempo, como emsemáforos, e em locais onde não haja grande quantidade de árvores, devido as folhas semoverem constantemente pelo vento. Também existem algumas limitações devido ao fato

4.1 Fluxo de processos 73

de não ter sido incluído um módulo para a classificação do objeto. Assim todo objeto quedetectado na segmentação é aceito se for maior do que um tamanho mínimo e tiver partede sua área dentro da área de movimento, sendo assim considerado um veículo e entãocontado.

4.1.1 Entrada de dados

Como mencionado no início deste capítulo, a entrada exigida é uma sequênciade imagens, sendo essas imagens gravadas em vídeo ou recebidas em tempo real. Seráutilizada a expressão vídeo de entrada para descrever essa sequência de imagens e cadaimagem será tratada como quadro.

4.1.2 Pré-processar imagem

Com a entrada de dados garantida, é extraído sequencialmente um quadro dovídeo para ser processado. O quadro passa então por um pré-processamento com intuitode otimizar o tempo gasto com as demais etapas.

A princípio, a imagem é convertida para escala de cinza, caso ainda não estejanesse formato, usando o processo descrito na seção 2.3. Embora cor seja um atributodiferencial para o reconhecimento de padrões, ela exige maior tempo e espaço paraprocessamento. Por exemplo, uma imagem em escala de cinza provém de um único canal,e seu tamanho é dada por Largura×Altura× 1 byte; já uma imagem no formato RGBcontém 3 canais, sendo seu tamanho Largura×Altura× 3 bytes (ou seja, essa imagemé 3 vezes maior e levará 3 vezes mais tempo para ser processada). Segundo Gonzalez[19], devemos pensar bem antes de processar imagens em cores, pois, muitas vezes, oprocessamento de imagens em tons de cinza é o suficiente. Como nosso objetivo é fazeruma contagem volumétrica de veículos e não uma contagem classificatória, na qual acor poderia ser um atributo utilizado, apenas são considerados os valores da variação deintensidade de luz (escala de cinza).

A imagem em escala de cinza passa, em seguida, pelo processo da equalizaçãode histograma. O intuito desse processo é fazer com que os pixels da imagem tenhamvalores que percorram toda a extensão de tons possíveis (seção 2.5). Como a imagemserá posteriormente comparada a outras em quadros futuros, uma simples alteração naintensidade da luz do sol pode comprometer todo o processamento. Quando equalizamoso histograma de uma imagem, pequenas difereças na intensidade de luz não são maissignificativas para a comparação de imagens.

Após equalizar a imagem, a mesma é submetida a um processo de suavização,cuja função é descartar pequenos ruídos que também prejudicam a comparação futura

4.1 Fluxo de processos 74

entre imagens. Nesse processo a imagem de entrada, imgini, é conservada e o resultadodo pré-processamento é retornado em uma nova imagem, img f ore.

Figura 4.3: Esquema da etapa de pré-processamento da imagem.

Na figura 4.4, temos a ilustração de uma imagem de entrada e o resultado dopré-processamento.

4.1 Fluxo de processos 75

Figura 4.4: Imagem pré-processada.

Segue, no algoritmo 4.1, um pseudo-código do pré-processamento de um quadro.

Algoritmo 4.1: PreProcessarQuadro(imgini)

Entrada: imagem imgini - quadro de entrada.Saída: imagem img f ore - quadro pré-processado.

1 img f ore← EscalaDeCinza(imgini);2 img f ore← EqualizarHistograma(img f ore);3 img f ore← SuavizarImagem(img f ore);4 retorna img f ore;

4.1.3 Reconhecer imagem de referência de fundo

Utilizando um raciocínio lógico, para selecionar uma imagem de fundo, bastaesperar algum momento onde não haja qualquer tipo de movimentação de objeto e captu-rar tal imagem. Para imagens de fundo controladas, com uma intensidade de luz constantee nenhuma movimentação, essa abordagem é efetiva. Já para ambientes dinâmicos, focodeste trabalho, nos quais há constante movimentação de objetos e a intensidade da luz édeterminada pelo sol e sofre alterações devido aos horários do dia e obstruções de nuvensou folhas de árvores e pelo próprio foco da câmera utilizada na recepção das imagens, umaimagem de fundo definida dessa maneira pode até apresentar bons resultados durante umcurto período de tempo, mas rapidamente torna-se inútil.

4.1 Fluxo de processos 76

Figura 4.5: Diagrama de fluxo do processo para reconhecimentoda imagem de referência de fundo.

Visando o reconhecimento da imagem de fundo de modo que a mesma seja atua-lizada constantemente é proposto um método de rápido processamento para definir fundo.Deve-se observar que existem alguns métodos, como em [33] ou [57], que apresentambons resultados para essa etapa, mas ambos gastam mais tempo de processamento do queo desejado.

O método proposto se baseia na operação de calcular a média de cada um dospixels, como ilustra o diagrama da figura 4.5, no qual o resultado tende ao valor que serepete mais vezes. Para isso, é criada uma matriz msb com o mesmo tamanho da imagemde entrada pré-processada img f ore, a qual vai acumulando em cada posição o valor dopixel da imagem correspondente, msb(x,y) = msb(x,y)+ img f ore(x,y). Esse acúmulo serepete para todos os quadros, assim que forem pré-processados. Formalmente, a i-ésimamsb é gerada por:

msb f (x,y) =

{img f ore f (x,y) ,se f mod δb = 1msb f−1(x,y)+ img f ore f (x,y), caso contrário

onde f é o número do quadro atual e δb é a quantidade de quadros necessária para extraira imagem de fundo. Sempre que f for igual a δb, a imagem de fundo imgback é gerada a

4.1 Fluxo de processos 77

partir de:

imgback(x,y) =msb(x,y)

δbe a matriz com a somatória dos valores, na próxima iteração, recebe o próprio valorda imagem img f ore, msb(x,y) = img f ore(x,y). A figura 4.6 ilustra o resultado final daimagem após algumas iterações.

(a) (b) (c)

(d) (e) (f)

(g) (h)

Figura 4.6: Recochecimento de fundo baseado na média. De (a) a(g) são quadros de entrada, sem o pré-processamento,apenas para melhor visualização, mas todos são pré-processados para estimar a imagem de fundo. (h) é aimagem de fundo reconhecida.

Esse processo também retorna se a imagem de referência de fundo foi ou nãodefinida. Se a imagem já foi definida uma vez, o processo sempre retornará que a imagemde fundo está definida, mesmo continuando seu processamento ao longo da execução doprograma a fim de manter a tal imagem de fundo atualizada. O algoritmo retornará quenão há imagem de fundo apenas se a imagem não tiver sido criada alguma vez.

O algoritmo 4.2 detalha o processo para obtenção da imagem de referência defundo. É levado em consideração que todas as imagens e a matriz msb possuem a mesma

4.1 Fluxo de processos 78

largura e altura, w e h, e que a posição inicial da imagem é x = 1 e y = 1. A variávelde f Back é inicializada como falsa; esse valor apenas será modificado para verdadeiroapós a primeira imagem de referência de fundo tiver sido reconhecida. Nesse casode f Back permanecerá verdadeiro, indicando que a imagem de fundo já está reconhecidae apenas será atualizada.

Algoritmo 4.2: ReconhecerImagemDeFundo(img f ore,msb, f ,δb,w,h,de f Back)

Entrada : imagem img f ore - quadro pré-processadomatriz msb - matriz geradora da imagem de fundointeiro f - número do quadro atualinteiro δb - número do quadro para geração da imagem de fundointeiros w e h - respectivamente largura e altura dos quadroslogico de f Back - verdadeiro se imagem de fundo já foi

reconhecida uma vezSaída : imagem imgback, imagem de referência de fundo;

1 para x← 1 a w faça2 para y← 1 a h faça3 msb[x,y]← img f ore[x,y]+msb[x,y];4 se ( f mod(δb) = 0) então5 imgback[x,y]← msb[x,y]/δb; //atualiza imagem de fundo6 fim7 fim8 fim9 se ( f mod(δb) = 0) então

10 de f Back← verdadeiro;11 retorna imgback;

12 senão13 se de f Back = verdadeiro então14 retorna imgback; //retorna imagem de fundo já existente15 senão16 retorna vazio; //ainda não foi possível reconhecer imagem fundo17 fim18 fim

4.1 Fluxo de processos 79

4.1.4 Definir área de movimento

Como mencionado na seção anterior, seção 4.1.3, um dos maiores problemasenfrentados na segmentação de objetos em ambientes dinâmicos é a movimentação deelementos como a vegetação e nuvens, entre outros, os quais atrapalham no processo desegmentação.

Portanto, baseado no conceito de área de interesse utilizado por Haupt [30], aqual é especificada manualmente, neste trabalho, foi desenvolvido um algoritmo paradefinir de modo automático a região onde há maior concentração de movimento no vídeode entrada.

Para identificar essa área de movimento executamos três procedimentos princi-pais: o primeiro é identificar o que se moveu entre um quadro e o quadro seguinte; depois,são armazenadas todas as regiões onde houve movimentação; ao final, traça-se um limiarpara identificar realmente quais regiões tiveram uma grande quantidade de movimento.Com isso grande parte dos movimentos indesejados são eliminados e não são considera-dos objetos. Por outro lado, tendo como princípio que a área de maior movimentação é aregião aonde os veículos trafegam, áreas de movimentações bruscas e constantes podematrapalhar o processamento desta etapa, como, por exemplo, folhas de palmeiras, as quaisse movem muito mesmo com pouco vento.

Como esse processo necessita da comparação de dois quadros, e de forma similarao reconhecimento da imagem de fundo, o primeiro quadro apenas é armazenado econsidera-se que a área de movimento não foi definida. A partir do segundo quadro, éiniciado o processamento. Assim que processado, o segundo quadro é armazenado e oprimeiro é descartado. Desse modo, comparando o quadro mais atual com seu antecessor,esse processo segue até que a área de movimento seja definida ou que o sistema sejafinalizado pelo usuário. Essa função, contudo, é executada até a definição da área demovimento, considerando que a área de movimento não necessitará de atualizações aodecorrer do processo. Na figura 4.7 é representado graficamente o fluxo deste processo dedefinição de área de movimento.

4.1 Fluxo de processos 80

Figura 4.7: Diagrama de fluxo do processo para definição da áreade movimento.

A comparação entre quadros sucessivos para a definição da área de movimentoé formalizada para cada pixel como imgmov(x,y) = |img f ore f (x,y)− img f ore f−1(x,y)|.Logo após a subtração, a imagem com a área de movimento imgmov é limiarizada. Autilização de uma limiarização global, com o limiar t = 64, se mostrou suficiente paradeterminação nas regiões de movimento. Algoritmos para limiarização ótima, nesta etapa,como o método de Otsu poderiam ser executados, mas esse tipo de algoritmo necessitade tratamento especial em momentos nos quais não há movimento, na seção 4.1.5 écomentado mais a respeito. A figura 4.8 ilustra a área de movimento entre dois quadros.

4.1 Fluxo de processos 81

(a) (b)

(c) (d)

Figura 4.8: Verificando movimento entre quadros. As figuras (a)e (b) são quadros consecutivos, (c) diferença entreas imagem (a) e (b), e (d) é a imagem resultado dalimiarização de (c)

Como o intuito é identificar o acúmulo de movimento, incrementamos o valorda imagem limiarizada imgmov a uma matriz msm de mesmo tamanho da imagem einiciada com o valor zero. Isso é formalizado como msm(x,y)=msm(x,y)+ imgmov(x,y),observando que como imgmov é uma imagem limiarizada, msm apenas será incrementadoem +1 nas regiões que possuírem movimento.

Ao término da identificação da área de movimento entre os dois quadros e oacúmulo dessa área em msm, é verificado se algum elemento de msm alcançou um limiarδm, também previamente informado, como sendo o valor necessário para a definição daárea de movimento geral do vídeo.

É definido ainda δm f , em caso de falha ao encontrar essa área de movimento.Essa falha é causada quando uma região não teve movimentação suficiente para definir aárea de movimento geral em δm f quadros. Neste caso, é definida a área inteira da imagemcomo sendo a área de movimento.

Caso algum elemento de msm tenha alcançado o valor necessário para a definiçãoda área de movimento, é executada a limiarização de Otsu em msm a fim de encontrar umlimiar ótimo que separará locais de acúmulo de movimento adequado e regiões com poucamovimentação. Aproveitando apenas a região onde teve uma considerável quantidadede movimento. Após a limiarização, são executadas as transformações morfológicas deerosão e dilatação em msm, com intuito de descartar ruídos e não perder a forma principalda área de movimento.

4.1 Fluxo de processos 82

A área de movimento então é definida, na qual são guardados apenas doispontos, o valor do x e do y do canto superior esquerdo a.min da área e do canto inferiordireito a.max. Esses pontos formam um retângulo envolvendo por completo a área demovimento. Na figura 4.9, são ilustrados os resultados obtidos por essa etapa ao longo desua execução.

O algoritmo 4.3 detalha o processo de definição da área de movimento. Avariável de f Mov é inicializada com o valor falso e, apenas após definir a área demovimento, se torna verdadeiro. A partir de então o processo não é mais executado.

Ao final, se qualquer uma das áreas de fundo e de movimento não tiverem sidodefinidas, o processo retorna para a etapa 2.1 (figura 4.2). Caso contrário, encaminha aimagem de referência de fundo e os pontos a.min e a.max, da área de movimento, para aetapa 6.

4.1 Fluxo de processos 83

(a) (b) (c)

(d) (e) (f)

(g) (h) (i)

(j) (k)

Figura 4.9: Definindo a área de movimento. De (a) a (c) são apre-sentados alguns quadros ao longo do vídeo, de (d) a (f)é ilustrado o resultado de msm como uma imagem emescala de cinza, em (g) é a limiarização pelo métodode Otsu em msm para δm = 128, em (h) e (i) resul-tado das operações morfológicas em (g) com másca-ras completas 5x5 e em (j) e (k) demonstração da áreade movimento definida nos pontos a.min = (12,248)e a.max = (535,438) em uma imagem com resolução640×480.

4.1 Fluxo de processos 84

Algoritmo 4.3: De f inirAreaDeMovimento(img f ore, imgprev, f ,δm,δm f ,w,h,de f Mov)

Entrada : imagem img f ore - quadro pré-processadoimagem imgprev - quadro pré-processado anteriormatriz msm - matriz acumulativa de movimentointeiro f - número do quadro atualinteiro δm - limiar necessário para definição da área demovimentointeiro δm f - número máximo de tentativas para definição da áreade movimentointeiros w e h - respectivamente largura e alturalógico de f Mov - verdadeiro se a área de movimento já foi

definidainteiro t - limiar global

Saída : pontos a.min e a.max - os quais formam um retângulo queenvolve toda a área de movimento;

1 se de f Mov 6= verdadeiro então2 se imgprev 6= vazio então3 imgmov← Di f erencaAbsoluta(img f ore, imgprev);4 imgmov← LimiarizacaoGlobal(imgmov, t);5 msm← imgmov+msm;6 se Algum valor de msm = δm então7 //Define área de movimento8 imgmov← LimiarizacaoOtsu(msm);9 imgmov← Erosao(imgmov);

10 imgmov← Dilatacao(imgmov);11 a← PontosDoRetanguloEnvoltorio(imgmov)

12 de f Mov← verdadeiro;13 retorna pontos a.min(x,y) e a.max(x,y);

14 senão15 se f = δm f então16 //Define área inteira da imagem como área de movimento17 a.min(x,y) = (1,1);18 a.max(x,y) = (w,h);19 de f Mov← verdadeiro;20 retorna pontos a.min(x,y) e a.max(x,y);

21 fim22 fim23 fim24 fim

4.1 Fluxo de processos 85

4.1.5 Segmentar objetos

Essa etapa se divide em duas partes: segmentar os objetos baseados em uma ima-gem de fundo e descartar objetos sem interesse. Entre todas as etapas, a segmentação podeser considerada a mais importante, segundo Gonzalez[19], uma boa segmentação é cru-cial para que o processamento tenha sucesso ou seja um fracasso. Pois sem possibilidadede identificação do objeto, torna-se muito mais difícil o sucesso em acompanhá-lo.

A princípio, foi utilizado o método de [36] para a realização da segmentação.Através de comparação de imagens no formato de YCrCb, os veículos são segmentadosa partir de 3 mapas de diferença entre duas imagens, os quais são T map, L map e C map,respectivamente textura, luminância e crominância. Na seção 3.3.3 é descrito mais sobreo método de segmentação. Embora esse método retorne resultados de segmentação muitobons, no qual as formas dos veículos segmentados são muito próximas das formas reais,e ainda consegue descartar possíveis sombras (o que prejudica muito a segmentação), seuprocessamento não se mostrou rápido suficiente para o propósito desse trabalho, devidoao uso de cores e principalmente no processo de comparação de textura.

Como o formato do objeto segmentado não é um fator imprescindível para ométodo criado, uma vez que o objetivo é a contagem volumétrica e não classificatória,foi desenvolvido um método para segmentação, baseado nos de Haupt [30] e Song [71],como ilustrado no diagrama da imagem 4.10. A segmentação se inicia, como citadoanteriormente, verificando a diferença entre dois quadros, a imagem do quadro atualimg f ore e a imagem de fundo imgback gerada na etapa 3. Assim, temos

imgdi f f (x,y) = |img f ore(x,y)− imgback(x,y)|

Após verificar a diferença entre as imagens, imgdi f f é limiarizada. A limiariza-ção é realizada para separar os objetos do fundo, isto é, todos os pixels de imgdi f f serãobinarizados, tomando os valores 0 (preto) ou 1 (branco), sendo 0 os pixels consideradospertencentes ao fundo e 1 os pixels dos objetos. Para isso, primeiramente, é definido umlimiar t utilizando o método de Otsu, o qual é capaz de definir um limiar ótimo. Cadaimgdi f f (x,y) menor ou igual a tal limiar terá seu valor alterado para 0, caso contrário, 1.Repare que quando subtraí-se a imagem referência de fundo pelo quadro atual, os valo-res mais semelhantes tendem a 0, e os objetos no fundo tornam-se mais evidentes, poisa subtração se distância de 0. Devido a este fato a limiarização se torna uma operaçãoefetiva.

Nesse ponto também é possível determinar um limiar global, mas a luminosidadesofre uma série de alterações ao decorrer do vídeo, desse modo tornando o limiarpreviamente determinado não tão eficiente. O método de Otsu se apresentou melhor,devido a determinação dinâmica de um limiar ótimo.

4.1 Fluxo de processos 86

Figura 4.10: Diagrama de fluxo do processo de segmentação deobjetos.

Por gerar um limiar ótimo a cada iteração, o método de Otsu também retorna

4.1 Fluxo de processos 87

valores de limiar quando não há objetos. Mesmo que aparentemente a ausência de objetostorne o quadro atual idêntico à imagem de fundo, a constante alteração da intensidade deluz faz com que geralmente haja uma diferença, por menor que seja, entre as imagens.Nesses casos o método de Otsu define um limiar muito baixo, o que gera uma imagemruidosa, como ilustrada na figura 4.11. Para tratar esse problema é definido um limiarmínimo permitido δt. Quando t < δt, assumi-se que a imagem não é aceitável devidoao baixo limiar, considerando que não há presença de objetos. Nesse caso o quadro édescartado e a etapa 2.1 é chamada novamente. Mesmo apresentando resultados melhoresutilizando o método de Otsu, a definição do valor constante δt não é algo trivial, uma vezque as condições climáticas, horário e cores do próprio ambiente, faz com que um únicovalor de δt não seja ótimo para todas as ocasiões.

(a) (b)

(c) (d)

Figura 4.11: O problema da limiarização pelo método de Otsupara segmentação de objetos.(a) e (b) são as imagensde fundo e imagem de entrada pré-processadas, (c) éimgdi f f e (d) é imgdi f fl . Nesta imagem o método deOtsu apontou t = 2, como limiar ótimo.

Se t ≥ δt, o processo segue para a etapa 6.4, primeiro executando uma dilata-ção, para unir componentes próximos, pois muitas vezes os objetos são particionados emcomponentes que normalmente ficam muito próximos uns dos outros; seguido de umaerosão, para que o objeto volte ao mais próximo possível seu tamanho e forma originais.Tal processo é chamado de fechamento, 2.13. Logo após é executado uma operação mor-fológica de abertura, a qual processa uma erosão para remover objetos muito pequenos,os quais são considerados ruídos, seguido de uma dilatação para retornar os objetos como tamanho antes da erosão, formando imgdi f f s. Como ilustrado na figura 4.12.

4.1 Fluxo de processos 88

(a)

(b) (c) (d)

(e) (f) (g)

Figura 4.12: Segmentando objetos.(a) é o quadro de entrada atual,(b) a (d) são imgback, img f ore e imgdi f f , (e) a (g)mostra o processo de separação de objetos do fundo.

Após a obtenção de imgdi f f s, os objetos separados são rotulados com o métodode Rotulação de Componentes Conectados [40]. O processo de rotulação, além de rotularcada objeto o, também conta o número de pixels de cada objeto (o.np), identifica doispontos o.min e o.max, os quais são respectivamente os pontos dos cantos do retângulo queenvolve por completo a área de objeto, sendo o.min o ponto superior esquerdo e o.max oponto inferior direito. Nesse processo é calculado também a matiz média do objeto o.hue,o qual será utilizado posteriormente para o acompanhamento (etapa 8.3). Essa matiz écalculada utilizando os valores das cores dos pixels da imagem imgini, formato RGB, osquais possuem posições respectivas às posições dos pixels brancos em imgdi f f s e queforam rotulados como parte do objeto. Pode-se formalizar o cálculo da matiz a partir damédia dos canais R, G e B da imagem, de acordo com a expressão:

R =(∑

o.max(x)x=o.min(x)∑

o.max(y)y=o.min(y) imginiR(x,y))× imgdi f f s(x,y)

o.np

4.1 Fluxo de processos 89

onde R é o valor médio dos pixels no canal de vermelho (red) de imgini, o qual érepresentado por imginiR. Da mesma forma é feito para os canais verde (green) e azul(blue), nas expressões abaixo:

G =(∑

o.max(x)x=o.min(x)∑

o.max(y)y=o.min(y) imginiG(x,y))× imgdi f f s(x,y)

o.np

B =(∑

o.max(x)x=o.min(x)∑

o.max(y)y=o.min(y) imginiB(x,y))× imgdi f f s(x,y)

o.np

Ao obter os valores médios de vermelho, verde a azul, é finalmente calculadao.hue através de:

o.hue =

60× G−B

MAXC−MINC +0 se MAXC = R e G≥ B

60× G−BMAXC−MINC +360 se MAXC = R e G < B

60× B−RMAXC−MINC +120 se MAXC = G

60× R−GMAXC−MINC +240 se MAXC = B

onde MAXC é o maior valor entre as cores e MINC o menor.Então é verificado os objetos que serão aproveitados e os que serão descartados.

Todos os objetos o que não fazem intersecção com a área de movimento são descartados,ou seja, se o.max > a.min ou se o.min < a.min, lembrando que a.min e a.min são ospontos que envolvem a área de movimento.

O algoritmo 4.4 apresenta o método utilizado para a segmentação dos objetos.Em tal algoritmo é definido que a função LimiarOtsu retorna o valor de limiar comonúmero inteiro e a partir da entrada imgdi f f a limiarização é executada e retornada emimgdi f f s.

Os objetos segmentados são, então, utilizados como entrada na etapa 8.

4.1 Fluxo de processos 90

Algoritmo 4.4: SegmentarOb jetos(img f ore, imgback,a.min,a.max)

Entrada : imagem img f ore - quadro pré-processado.imagem imgback - imagem de referência de fundopontos a - área de movimento

Saída : objetos o - objetos segmentados.

1 imgdi f f ← Di f erencaAbsoluta(img f ore, imgback);2 t← LimiarOtsu(imgdi f f , imgdi f f s);3 se t ≥ δt então4 imgdi f f s← Dilatacao(imgdi f f );5 imgdi f f s← Erosao(imgdi f f s);6 imgdi f f s← Erosao(imgdi f f s);7 imgdi f f s← Dilatacao(imgdi f f s);8 o← RotularComponentes(imgdi f f s);9 //remove da lista o os componentes que não fazem intersecção com a

10 o← DescartarComponentes(o,a);11 para cada o faça12 o.hue←CalcularMatiz(imgini,o.min,o.max);13 fim14 retorna o

15 senão16 retorna vazio

17 fim

4.1.6 Acompanhar objetos segmentados

Com os objetos segmentados na lista de objetos o, é iniciada a etapa da contagemde veículos. Nesta seção, é apresentada a maneira utilizada para acompanhar cada objetosegmentado ao longo dos quadros, evitando assim que o mesmo seja contado mais deuma vez. Para isso, é necessário que seja estimado o deslocamento de cada objeto entre osquadros, ou seja, calcular alguma medida de similaridade dos objetos contidos no quadroatual e dos objetos em quadros anteriores. A figura 4.13 ilustra o diagrama desta etapa.

4.1 Fluxo de processos 91

Figura 4.13: Diagrama de fluxo do processo de acompanhamentode objetos segmentados.

Para o controle do movimento é utilizada a variável h, a qual se refere aohistórico de presença dos objetos. Essa variável é responsável por armazenar informaçõesconforme os objetos o vão sendo segmentados, a qual armazena as informações dosdois últimos registros de presença do objeto. Cada objeto h é formado pelos seguintesatributos: assim como em o min e max são os pontos dos cantos do retângulo queenvolve a área do objeto, cada ponto é composto por (x,y); hue a matiz do objeto;center é a posição central do objeto, ou seja, center(x) = (h.min(x) + h.max(x))/2 ecenter(y) = (h.min(y)+h.max(y))/2; f rame é o último quadro em que consta presençado objeto; as mesmas informações são utilizadas para armazenar o penúltimo registro,sendo essas variáveis respectivamente hmin, hmax, hhue, hcenter e h f rame, desse modo

4.1 Fluxo de processos 92

armazenando as informações das duas últimas ocorrências do mesmo objeto.A cada iteração, todos os objetos o são comparados com os objetos h, a fim de

calcular o grau de similaridade entre os mesmos. Para isso é gerada uma matriz msc quearmazena o grau de similaridade entre cada objeto o e h. Cada coluna de msc representaum objeto o e cada linha um objeto h.

Para a comparação de similaridade entre pares de objetos são utilizados 5atributos: intersecção entre as áreas, distância entre os centros, estimação de posição,similaridade de matiz e similaridade de razão. Buscando a melhora de desempenho, ascomparações realizadas nesse processo apenas são utilizados quatro atributos principais:o número do quadro atual e os atributos dos objetos o que já foram coletados na etapa6.6 durante a rotulação dos componentes conectados; o.min; o.max ; e o.hue. Todos osalgoritmos retornarão 0 para o menor grau de similaridade e 100 para o maior. Após ocálculo do grau de similaridade, cada atributo (intersecção, distância de centro, matiz,posição estimada e razão) tem seu valor multiplicado por um peso respectivo, δi, δd, δp,δh e δr. E o resultado da soma de todos os atributos, multiplicados pelo seus devidospesos são atribuídos a msc(i, j).

Após a geração de msc, os objetos o e h com maior grau de similaridade sãoconsiderados como um mesmo em quadros diferentes. Então h é atualizado com asinformações atuais de o, de acordo com o algoritmo 4.5.

Algoritmo 4.5: AtualizaHistorico(o, f )

Entrada : objetos o - lista de objetos segmentadosinteiro f - número do quadro atual

Saída : objetos h - lista de histórico dos objetos segmentados.

1 //penúltimo registro2 h.hmin← h.min

3 h.hmax← h.max

4 h.hhue← h.hue

5 h.hcenter← h.center

6 h.h f rame← h. f rame

7 //registro atual8 h.min← o.min

9 h.max← o.max

10 h.hue← o.hue

11 h.center(x)← (h.min(x)+h.min(x))/212 h.center(y)← (h.min(y)+h.min(y))/213 h. f rame← f

4.1 Fluxo de processos 93

Todo objeto o que não possuir um h correspondente é adicionado como novoobjeto em h, de acordo com o algoritmo 4.6. A não correspondência entre objetos podeacontecer por dois motivos: quando um objeto em o não tiver o maior grau de similaridadecom algum objeto h; ou quando oi e h j tem o maior grau de similaridade entre si, masmesmo assim com um valor muito baixo para considerá-los como um mesmo objeto.Esse fator é bem comum quando há apenas um veículo saindo da área da imagem e outroentrando, embora existam apenas um objeto o e um h eles não são o mesmo veículo. Paranão considerar veículos com baixo grau de similaridade é definido o limiar de aceitaçãode grau de similaridade mínimo δc.

Algoritmo 4.6: AdicionaOb jeto(o,h, f )

Entrada : objetos o - lista de objetos segmentadosobjetos h - lista de histórico dos objetos segmentados.inteiro f - número do quadro atual

Saída : objetos h - lista de histórico dos objetos segmentados.

1 //penúltimo registro2 h.hmin← 03 h.hmax← 04 h.hhue← 05 h.hcenter← 06 h.h f rame← 07 //registro atual8 h.min← o.min

9 h.max← o.max

10 h.hue← o.hue

11 h.center(x)← (h.min(x)+h.min(x))/212 h.center(y)← (h.min(y)+h.min(y))/213 h. f rame← f

Um objeto em h é descartado, ou seja, removido da lista 4.7, quando não houversimilaridade em δ f número de iterações, ou quadros, com algum objeto o. Em outraspalavras, o quadro é descartado quando ( f − h. f rame) ≥ δ f . Ao ser descartado umveículo da lista, o número total de veículos é incrementado, Count ← Count + 1. Oalgoritmo 4.8 demonstra o procedimento desta etapa.

4.1 Fluxo de processos 94

Algoritmo 4.7: RemoveOb jetos(h, f )

Entrada : objetos h - lista de histórico dos objetos segmentados.inteiro f - número do quadro atualinteiro δ f - número máximo de quadros para ausência do mesmo

objetoSaída : objetos h - lista de histórico dos objetos segmentados.

1 para j = 1 a j ≤ Num(h) faça2 se ( f −h j. f rame)<= δ f então3 h.Remove( j); //remove o elemento j de h

4 fim5 fim

Algoritmo 4.8: AcompanharOb jetosSegmentados(o,h, f ,δi,δd,δh,δp,δr)

Entrada : objetos o -lista de objetos segmentadosobjetos h - lista de histórico dos objetos segmentados.inteiro f - número do quadro atualinteiros δi, δd, δp, δh e δr, pesos dos parâmetros

Saída : objetos h - lista de histórico dos objetos segmentados.

1 //Num é uma função que retorna o número de elementos da lista2 para i = 1 a i≤ Num(o) faça3 para j = 1 a j ≤ Num(h) faça4 msc(i, j)← δi× InterseccaoDeArea(oi,h j, f );5 msc(i, j)← δd×DistanciaDeCentro(oi,h j, f )+msc(i, j);6 msc(i, j)← δp×EstimarPosicao(oi,h j, f )+msc(i, j);7 msc(i, j)← δh×SimilaridadeMatiz(oi,hi)+msc(i, j);8 msc(i, j)← δr×SimilaridadeRazao(oi,h j)+msc(i, j);

9 fim10 fim11 para i = 1 a i≤ Num(o) faça12 se Elemento em h mais compativel, tem valor maior que δc então13 h← AtualizaHistorico(o,h, f );14 senão15 h← AdicionaOb jeto(o,h, f );16 fim17 fim18 RemoveOb jetos(h);

4.1 Fluxo de processos 95

Caso exista intersecção entre as áreas do par de objetos o e h, é calculada o grauda área dessa intersecção. Esse grau de intersecção aumenta de acordo com o número depixels pertencentes às áreas referentes aos dois objetos. Mesmo que em quadros diferentesessa relação é feita através da correspondência das posição entre os objetos, ou seja, comose ambos estivessem em um mesmo quadro. O código 4.9 apresenta como é feito essecálculo, nesse algoritmo minX , minY , maxX e maxY , são variáveis auxiliares, intersec

armazena o número de pixels pertencentes a área de intersecção, areaH é o númeromáximo de pixels possíveis em uma área de intersecção, MAX é uma função que retornao maior valor e MIN uma função que retorna o menor valor. Neste algoritmo tambémé levado em consideração a distância entre quadros dos objetos, uma vez que maior adistância entre quadros, menor a importância da verificação da intersecção, para isso écalculada uma penalidade (penality).

Algoritmo 4.9: InterseccaoDeArea(oi,h j, f )

Entrada : objeto oi - objeto i da lista de objetos o

objeto h j - objeto j da lista de histórico h.inteiro f - número do quadro atual

Saída : inteiro com valor de probabilidade de intersecção.

1 se ((h.max(x)< o.min(x)) ou (h.min(x)< o.max(x)) ou

2 (h.max(y)< o.min(y)) ou (h.min(y)< o.max(y))) então3 retorna 0; // não há intersecção4 senão5 minX ←MAX(h.min(x),o.min(x));6 minY ←MAX(h.min(y),o.min(y));7 maxX ←MIN(h.max(x),o.max(x));8 maxY ←MIN(h.max(y),o.max(y));9 intersec← (((maxX−minX)∗ (maxY −minY )));

10 areaH← ((hmaxX −hminX)∗ (hmaxX −hminX));11 penality = ( f −h f rame);12 retorna ((intersec∗100)/areaH)/penality;

13 fim

Mesmo que um objeto oi faça intersecção de área com um h j, isso não é suficientepara afirmar que se trata do mesmo objeto. Uma vez que o pode fazer intersecção commais de um objeto h. Principalmente quando ocorre a oclusão entre veículos e ambosse separam ao longo do vídeo, fazendo com que um objeto h faça intersecção comdois objetos em o. Então, é calculado o atributo que armazena o valor da distânciade centro entre os objetos. Os objetos mais próximos recebem maior valor de grau de

4.1 Fluxo de processos 96

similaridade, uma vez que um objeto se movendo entre os quadros, normalmente mantémuma menor distância de si mesmo. Assim como para a intersecção de área, tambémexiste uma penalidade de acordo com a distância entre quadros. Como o intuito é reduzirprocessamento, e a câmera é posicionada para capturar a imagem de veículos que semovimentam horizontalmente, a distância de centro apenas leva em consideração o eixohorizontal (x). Para calcular a distância entre o centro, primeiro é verificado a distanciamáxima que o veículo pode percorrer, ou seja, a distância horizontal entre a.minX ea.maxX . A distância máxima é considerada, pois o posicionamento da câmera influenciadiretamente o tamanho da área de movimentação a. A seguir o código 4.10 apresentacomo é feita a comparação de centro.

Algoritmo 4.10: DistanciaDeCentro(oi.center(x),h j.center(x), f )

Entrada : objetos oi.center(x) - eixo X da posição central do objeto i dalista de objetos o

objetos h j.center(x) - eixo X da posição central do objeto j dalista de histórico h.

inteiro f - número do quadro atualSaída : inteiro com valor de probabilidade de intersecção.

1 maxDistance← a.max(x)−a.min(x);2 distance← |h j.center(x)−oi.center(x)|;3 penality = ( f −h. f rame);4 retorna (100− (distancia∗100/maxDistance))/penality;

Os cálculos da área de intersecção e da distância de centro, não são muitoeficazes quando um objeto h não é encontrado em alguns quadros, mas volta a aparecerantes de ser descartado. Isso acontece muitas vezes devido a segmentação não conseguirseparar o objeto do fundo, principalmente quando o fundo possui a intensidade de cinzamuito semelhante a do veículo, ou quando o objeto é ocluso por outro. Então, baseado navelocidade em que o objeto vinha, isto é, a quantidade de pixels por quadros, é possívelestimar a posição do veículo, mesmo que ele não esteja presente no quadro atual. Para aestimativa de movimento é levado em consideração apenas o deslocamento do centro doobjeto. Tal estimativa apenas é possível se houver dois registros da presença do objeto, ouseja, se os atributos h.hcenter e h.h f rame não estiverem zerados, em contrapartida não épossível que não seja o mesmo objeto, então é retornado um valor intermediário para nãohaver muita influência no grau de similaridade. Por esse motivo não é possível a realizaçãodo acompanhamento utilizando apenas essa etapa. Para diminuir o custo computacionale assim como no cálculo da distância de centro, aqui é considerado apenas o eixo x.Como esse processo busca justamente estimar a posição do objeto, principalmente em sua

4.1 Fluxo de processos 97

ausência, ele estará livre da penalidade entre quadros. No algoritmo 4.11 é apresentadocomo estimar essa movimentação.

Algoritmo 4.11: EstimarPosicao(oi,h j, f )

Entrada : objeto oi - objeto i da lista de objetos o

objeto h j - objeto j da lista de histórico h.inteiro f - número do quadro atual

Saída : inteiro com valor de probabilidade de intersecção.

1 se h j.hcenter(x) = 0 então2 // Não há como estimar posição, pois deve haver pelo menos duas3 // ocorrências do objeto h j

4 retorna 50;

5 fim6 se (h j.center(x)−h j.hcenter(x))> 0 então7 direction← 1; //para direita8 senão9 direction← 0; //para esquerda

10 fim11 se (oi.center(x)−h j.center(x))> 0 então12 directionComp← 1; //para direita13 senão14 directionComp← 0; //para esquerda15 fim16 se direction 6= directionComp então17 retorna 0; //direções opostas18 fim19 maxDistance← a.max(x)−a.min(x);20 nFrames← h j. f rame−h j.h f rame;21 distance← |h j.center(x)−h j.hcenter(x)|;22 velocity← distance/(nFrames);23 estCenterX = ( f rame−h j. f rame)× velocity×direction+hi.center(x);24 retorna 100− (|estCenterX−oi.center(x)| ∗100)/maxDistance;

Por fim, para complementar a comparação de similaridade, são utilizados maisduas propriedades que identificam as características do objeto em si: a primeira caracte-rística é a matiz, ou seja, a cor de maior importância no veículo. A matiz é computadade acordo com o código 4.12; a outra é a razão de larguras e alturas de objetos, a qual écomputada pelo código 4.13.

4.1 Fluxo de processos 98

Algoritmo 4.12: SimilaridadeMatiz(oi.hue,h j.hue)

Entrada : objetos oi.hue - matiz do objeto i da lista de objetos o

objetos h j.hue - matiz do objeto j da lista de histórico h.Saída : inteiro com valor de propabilidade de matiz.

1 retorna 100−|(h j.hue−oi.hue)∗100/360|

Algoritmo 4.13: SimilaridadeRazao(oi,h j)

Entrada : objetos oi - objeto i da lista de objetos o

objetos h j - objeto j da lista de histórico h.Saída : inteiro com valor de propabilidade de matiz.

1 hwidth = (h j.max(x)−h j.min(x));2 hheight = (h j.max(y)−h j.min(y));3 rationH = hwidth/hheight;4 owidth = (oi.max(x)−oi.min(x));5 oheight = (oi.max(y)−oi.min(y));6 rationO = owidth/rationO;7 retorna 100−100×|rationH−

rationO|/(Max(hwidth,owidth)/Min(hheight,oheight));

CAPÍTULO 5Testes e Resultados

Nesta seção são apresentados os detalhes do aplicativo desenvolvido para testaro método descrito no capítulo 4, bem como as configuração dos testes e resultados.

5.1 Aplicativo desenvolvido

O metodo proposto foi implementado em forma de aplicativo utilizando alinguagem Java [52], devido à sua flexibilidade de ser multiplataforma. Podendo serreutilizadas as mesmas classes para funcionar em computadores, tablets e celulares.

Como biblioteca para processamento das imagens, foi utilizado a JavaCV (seção2.15.2) a qual utiliza a maior parte das funções do OpenCV e possui integração com abiblioteca ffmpeg [22], que torna o aplicativo compatível com uma infinidade de formatosde vídeos.

O desenvolvimento do método não está preso à tecnologia escolhida, podendo serempregado utilizando outras linguagens de programação, bem como outras bibliotecas.A tecnologia foi escolhida apenas por apresentar funcionalidades suficientes para suprirtodas as necessidades deste trabalho de pesquisa.

A captura das imagem foi realizada através da câmera do aparelho celular SonyEricson - Xperia Mini. Foram gravados vídeos do tráfego com esse dispositivo utilizandoresolução 640× 480 pixels e taxa média de 30 quadros por segundo. Os vídeos foramgerados no formato 3gp, muito utilizado por aparelhos móveis. Com a finalidade deverificar o quanto resoluções menores favorecem nos resultados, foi utilizado 1 vídeode 320×240 pixels, o qual foi capturado por uma câmera digital Sony W30.

Tanto o desenvolvimento do aplicativo como os testes foram realizados em umnotebook Dell Vostro 1510, com processador Intel Core 2 Duo CPU T 810 de 2.10GHz e3Gb de memória RAM.

5.2 Testes 100

5.2 Testes

Os testes foram executados em três partes. A primeira parte constitui a definiçãodos valores dos parâmetros, os quais são descritos a seguir. A segunda parte foi verificaro tempo gasto pelo processamento e otimizar algoritmos. Na última parte, com os valoresdos parâmetros definidos e com os algoritmos otimizados, foram realizados testes paradeterminar a real capacidade de contagem do sistema.

Os dados dos vídeos gerados para a realização dos testes (6 ao todo), estãodescritos na tabela 5.1. O campo horário apresenta a hora e minuto de início da gravaçãodo vídeo. Todos os vídeos foram gravados da calçada em posição diagonal a pista, sendoa câmera fixada a uma altura de aproximadamente 1 metro de distância do solo, comoilustra a figura 4.1.

Tabela 5.1: Vídeos utilizados nos testes

id data horário resolução duração fps formato1∗ 10/10/11 18:21 320×240 00:15:08 29 avi2 29/02/12 15:40 640×480 00:05:15 30 3gp3 29/02/12 16:10 640×480 00:02:44 30 3gp4 10/03/12 11:37 640×480 00:10:18 30 3gp5 18/04/12 10:13 640×480 00:13:07 30 3gp6 18/04/12 10:24 640×480 00:06:17 30 3gp

07 17/09/12 16:21 640×480 00:10:05 29 mov08 25/06/12 12:04 640×480 00:10:16 30 3gp09 25/06/12 12:29 640×480 00:10:13 30 3gp10 27/06/12 12:23 640×480 00:10:01 30 3gp11 27/06/12 12:49 640×480 00:10:21 30 3gp12 03/07/12 16:03 640×480 00:10:03 30 3gp13 17/09/12 16:35 640×480 00:10:31 29 mov14 17/09/12 14:38 640×480 00:11:09 29 mov15 17/09/12 16:54 640×480 00:10:07 29 mov

O vídeo marcado com asterisco (*) foi doado por Wanderley de Souza Alencar,doutorando em Ciência da Computação pelo Instituto de Informática da Universidade Fe-deral de Goiás (INF-UFG), desde março de 2011. Tal vídeo se apresentou interessantecomo entrada de dados para teste do aplicativo por ser gerado através de uma simplescâmera digital, em baixa resolução, com isso reduzindo a quantidade de pixels (conse-quentemente a quantidade de informação), os quais poderiam ser importantes para umaboa segmentação, mas também diminuindo o custo de processamento. Por possuir ima-gens de um cruzamento, no qual veículos trafegam em diversas direções, foi possíveltestar o comportamento do aplicativo quando há fluxo em mais de uma única pista.

5.2 Testes 101

5.2.1 Definindo valores dos parâmetros

Os parâmetros utilizados no método criado influenciam diretamente no resultadofinal do aplicativo, bem como em custo computacional, sendo que a definição do valor dealguns parâmetros se mostra adequada para todos os vídeos de entrada, embora outrosnecessitem de uma análise mais peculiar. Para tentar determinar o valor ideal para a mai-oria dos vídeos de entrada foram realizados experimentos, sendo que, alguns parâmetrosnecessitaram ser examinados com uma quantidade maior de testes. O interesse de esta-belecer bons parâmetros é melhorar o tempo do algoritmo de modo geral, posteriormenteutilizar a informação para melhoria da qualidade da contagem. Nesta seção são descritosos parâmetros utilizados em cada etapa do processamento do vídeo, bem como o melhorvalor apresentado de cada um. Para facilitar o entendimento serão utilizados os diagramasrepresentados pelas figuras 4.2, 4.3, 4.5, 4.7, 4.10 e 4.13, apresentadas no capítulo 4, paradescrever os parâmetros usados em cada uma das etapas.

Parâmetros iniciais

A seguir serão apresentados os parâmetros usados na etapa 2 (pré-processamentoda imagem, figura 4.2).

O primeiro parâmetro testado foi o número de quadros que podem ser ignoradossem que prejudique o resultado final. A eliminação de quadros melhora diretamenteo custo de processamento do método. A motivação desse teste foi que, quanto maiora quantidade de quadros, maior o custo computacional do sistema e quanto menor aquantidade de quadros, maior número de informações são descartadas. Foi verificadoque a metade dos quadros do vídeo de entrada, ou seja, a cada quadro processado umé ignorado, foi o suficiente para manter bons resultados na contagem. Nos vídeos 02 e 03,encontramos bons resultados ignorando dois quadros a cada quadro processado, sendoesses exceções, pois a perda de informação influenciou negativamente no resultado finaldos demais vídeos. Portanto esse parâmetro foi setado para ignorar um quadro, a cadaquadro processado.

Outro parâmetro testado foi o tamanho da máscara utilizada para a realizaçãodo filtro da etapa 2.5. O filtro de suavização é responsável pela eliminação de ruídos.Quanto maior a máscara desse filtro, maior o custo computacional e maior a perda deinformação. Por outro lado, quanto menor a máscara, menos efetiva, mas menor seu custocomputacional. O intuito da determinação do valor desse parâmetro portanto é um bomtamanho de máscara para que o filtro seja efetivo e possua uma boa performance. Emuma simples quantidade de testes a máscara 11× 11 se apresentou adequada para todosos vídeos da tabela . A máscara de tamanho 3× 3, 5× 5, 7× 7 e 9× 9 se mostraramnão tão eficientes nos vídeos com resolução 640× 480. Sendo que no vídeo 1, por

5.2 Testes 102

possuir uma resolução melhor, foi utilizada a máscara 5× 5. Observe que o tamanhoda máscara é aproximadamente 1,5% do tamanho da largura, levando em consideraçãouma imagem com proporção 4:3, ou seja 4 de largura por 3 de altura. Como os pixels

são inteiros, utilizamos máscaras de tamanhos ímpares, para que exista um pixel central,e seja calculada uma vizinhança de tamanho uniforme independente da orientação.

Parâmetros para reconhecimento do fundo

O único parâmetro utilizado para a definição da imagem referência de fundoé o valor de δb, isto é, a quantidade de quadros suficientes para calcular a média dasimagens de entrada pré-processadas e definir essa imagem de fundo. A definição desseparâmetro está diretamente ligada a quantidade de veículos que trafegam na via filmada.Em vias quase sem movimento um valor baixo como δb = 100 se mostrou adequado.Para vias mais movimentadas, esse resultado não foi satisfatório. Para todos os vídeosapresentados na tabela 5.1, δb = 1000 se apresentou suficiente para reconhecer essaimagem de fundo, exceto vias de trânsito congestionado. Quando a presença de umveículo se apresenta constante em muitos quadros é difícil determinar se ele está paradoe continuará trafegando, desse modo tendo que ser contado, ou se o mesmo estacionou edeverá ser ignorado e considerado como fundo.

Parâmetros para definição da área de movimento

Na etapa 4.1, na definição do limiar t, foram feitos testes com os valores t = 16,t = 32, t = 64, t = 96 e t = 128, sendo que para t = 64 o método apresentou melhoresresultados.

Como, nessa etapa, o intuito da operação morfológica de abertura (erosão se-guida de dilatação, etapas 4.8 e 4.9) era apenas para uma simples remoção de ruídos, umamáscara de tamanho 7×7 se apresentou suficiente para os dois filtros. Como o vídeo 1 éuma exceção, e sua resolução é menor que a dos demais, foi utilizado o tamanho 3×3.

Parâmetros para segmentação e acompanhamento de objetos

Os parâmetros utilizados para a segmentação e acompanhamento de objetosnecessitaram de mais atenção nos testes realizados, uma vez que o valor desses parâmetrosafetam diretamente o tempo de processamento e qualidade dos resultados finais dacontagem realizada pelo método. Os parâmetros dessas duas etapas, 6 e 8, são interligadosentre si e embora alguns valores definidos apresentem um ótimo resultado em algunsvídeos, em outros nem tanto.

Para a calibração dos parâmetros foram realizados mais de 500 testes utilizandoos vídeos 01, 02, 03, 04, 05 e 06 da tabela 5.1, os quais são apresentados no apêndice

5.2 Testes 103

B. A faixa para os valores de parâmetros escolhida para testes foi selecionada com baseem execuções de testes menores, resultando em uma infinidade de valores finais. Entre osvalores obtidos na contagem, houveram casos de alta taxa de veículos ignorados, casosem que o número de veículos foi muito próximo ao da realidade e em outros casos umaalta taxa de consideração de objetos (grande parte considerada como ruído).

Para δt , foram avaliados os valores 8, 16, 24, 32 e 40. A utilização de valoresinferiores a 16 fez com que o algoritmo obtivesse grande quantidade de objetos ruidosos.Já com valores superiores a 40 houve descarte de uma grande quantidade de informaçãode interesse, devido ao problema da limiarização utilizando o método de Otsu (seção4.1.5) e ilustrado na figura 4.11. A variação da luminosidade de 8 em 8, na escolha desselimiar, dá-se ao fato de variações menores apresentarem mínima diferença no resultado.Por gerar grande distinção de resultados, sendo que os melhores tiveram uma tendência aum limiar mais baixo, o valor selecionado foi δt = 32.

O tamanho da máscara utilizada para erodir e dilatar a imagem, executada nasetapas 6.4 e 6.5, é um passo decisivo para aproveitar ou descartar um objeto. Ondemáscaras muito pequenas retém possíveis ruídos e máscaras muito grandes descartamobjetos de interesse menores. O valores utilizados para a máscara variaram entre 5, 10,15 e 20, pois valores menores que 5 e maiores que 20 se apresentaram ruins em todos osvídeos testados. O salto de 5 em 5, foi escolhido devido a valores maiores não mostraremmudança significativa. O tamanho da máscara que mais apresentou bons resultados foi ovalor 20, portanto o selecionado para a análises futuras.

Os valores dos pesos δi, δh, δd , δp e δr, utilizados no processo, foram seleciona-dos de acordo com a capacidade individual de acompanhar veículos, sendo que nenhumpor si só apresentou bons resultados. Devido aos pesos serem números reais entre 0 e 1,não é viável a realização de testes com a utilização de todos os números, uma vez que aquantidade de valores tendem ao infinito. Desse modo, combinações de valores para taispesos foi selecionada arbitrariamente, levando em consideração quais características porsi só apresentaram maior poder de acompanhamento, na comparação de similaridades en-tre objetos o e h (etapa 8.3). Agrupando os pesos em um vetor [δi; δh; δd; δp; δr], dentrediversas combinações de valores testadas, 5 apresentaram melhores resultados:

• [0,2; 0,1; 0,1; 0,5; 0,1];• [0,2; 0,1; 0,2; 0,4; 0,1];• [0,2; 0,0; 0,3; 0,5; 0,0];• [0,1; 0,1; 0,2; 0,5; 0,1] e• [0,1; 0,0; 0,2; 0,7; 0,0].

Das combinações apresentadas a [0,2; 0,1; 0,1; 0,5; 0,1] apresentou bons resulta-dos em todos os vídeos, mesmo não sendo a melhor em alguns.

5.2 Testes 104

Nesta fase de testes foram apenas determinados os valores para os parâmetrosque apresentaram como resultado final um número de veículos que fosse mais próximo dacontagem manual. A finalidade da fixação do valor dos parâmetros é a sua utilização paraa realização de testes para verificar o tempo do algoritmo. Como há uma grande variaçãoem características no ambiente de cada vídeo, a fixação de valores para os parâmetrostende ao aumento de erro da contagem em alguns casos.

5.2.2 Analisando tempo do algoritmo

Para diminuição do custo computacional foi realizada uma análise no tempodos algoritmos, em termos assintóticos para verificar a complexidade dos algoritmos,como tempo de execução. Para essa fase de testes foram utilizados valores de parâmetros,descritos na seção 5.2.1. Na tabela 5.2 é apresentado o resultado desta análise, na qualW e H são, respectivamente, a largura e altura da imagem, m é o tamanho da máscarade convolução, hist é o histograma, o são os objetos segmentados e h são os objetossegmentados anteriormente armazenados na lista de histórico. Nessa análise o vídeo 1não foi utilizado por ter uma resolução inferior.

A execução completa do algoritmo teve uma média de tempo de execução de30,23 ms e a complexidade de tempo θ = 12(W ×H)+7(W ×H×m)+3(h×o)+(h×o×5)+2o+3hist +19.

5.2.3 Resultados finais

Na tabela 5.3 são apresentados os resultados obtidos com a fixação dos parâme-tros:

• Ao executar um quadro descartar: 1;• Tamanho da máscara para suavização: 9×9, na etapa 2.5;• Número de quadros para atualização da imagem de fundo: 1000, na etapa 3;• Valor de limiar global: t = 64, na etapa 4.4;• Número de quadros máximos para determinar área de movimento: 3000, na etapa

4.11;• Tamanho da máscara utilizada para dilatação e erosão: 15×15, nas etapas 4.8, 4.9,

6.4 e 6.5;• Valor de limiar mínimo aceito para segmentação: δt = 20, na etapa 6.3;• Pesos para acompanhamento, na etapa 8.3:

– δi = 0,2– δh = 0,1– δd = 0,1

5.2 Testes 105

Tabela 5.2: Análise assintótica do método. Nesta tabela é apresen-tado a análise de complexidade de tempo e o tempo deexecução dos algoritmos.

etapa complexidade de tempo (θ) tempo de execução médio (ms)1 - -2 2(W ×H)+(W ×H×m)+hist +2 5,63

2.1 1 02.2 1 02.3 W ×H 0,992.4 W ×H +hist 1,612.5 W ×H×m 3,033 2(W ×H) 2,44

3.1 W ×H +2 0,993.2 1 03.3 W ×H 0,993.4 1 04 4(W ×H)+2(W ×H×m)+hist +12 7,46

4.1 1 04.2 1 04.3 W ×H 1,004.4 W ×H 0,994.5 W ×H 1,004.6 1 04.7 W ×H +h 1,014.8 W ×H×m 1,514.9 W ×H×m 1,51

4.10 4 04.11 1 04.12 4 0

5 1 06 4(W ×H)+4(W ×H×m)+hist +os +3 12,73

6.1 W ×H 1,006.2 W ×H +hist 1,016.3 1 06.4 2(W ×H×m) 3,036.5 2(W ×H×m) 3,036.6 2(W ×H) 2,896.7 1 06.8 o 0,606.9 1 07 1 08 3(h×o)+(h×o×5)+o 0,50

8.1 1 08.2 o 0,208.3 h×o×5 08.4 h×o 0,208.5 h×o 0,208.6 h×o 0,20

5.2 Testes 106

– δp = 0,5– δr = 0,1

A execução do algoritmo recebendo o vídeo 1 como entrada obteve uma boataxa de acerto, mesmo possuindo resolução menor e utilizando os mesmos valores deparâmetros descritos e utilizados nos demais.

Tabela 5.3: Resultado da contagem. Comparação entre a conta-gem do algoritmo e computada manualmente

video % de acerto contagem automática contagem manual1 90,99% 222 2022 53,77% 57 1063 76,67% 69 904 77,30% 126 1635 67,96% 297 4376 73,37% 199 1467 97,42% 155 1518 90,17% 295 2669 90,57% 318 288

10 83,63% 226 18911* 20,88% 1044 21812 97,33% 182 18713 88,74% 151 13414 87,19% 281 24515 82,12% 179 147

O vídeo 11 foi uma exceção e não apresentou bons resultados. Por conter apresença de árvores (palmeiras), suas folhas estavam em constante movimento devidoao vento e projetando também sombras que se moviam, fez com que o algoritmonão conseguisse detectar automaticamente a área de movimento. Tal problema podeser tratado selecionando manualmente a área de movimento, desse modo, esse vídeocontou 237 veículos automaticamente, dos 218 contados manualmente, obtendo 91,99%de acerto. Os demais vídeos não tiveram uma movimentação tão intensa de objetosindesejáveis como o vídeo 11, portanto a área de movimento foi satisfatoriamente definidapelo algoritmo.

As mudanças repentinas naturais em ambiente dinâmicos, como alteração nailuminação, sombras e reflexos, entre outras, se apresentaram, como na maioria dosmétodos que utilizam Visão Computacional, um empecilho na busca de bons resultados. Asituação climática e o horário também interferiram nos resultados do sistema, pois faz comque o sistema necessite de alguns ajustes nos valores dos parâmetros, muitas vezes apenasretornam bons resultados exclusivamente para aquele local em determinado momento.Outro fator relacionado ao ambiente alvo deste trabalho que interveio nos resultados foi

5.2 Testes 107

a movimentação de elementos indesejáveis, como pessoas transitando, movimentação denuvens e da vegetação e a presença de sombras. Embora tratamentos nas imagens tenhamsido feitos para eliminação dos aspectos negativos citados acima, alguns não puderam sertratados.

No mais, normalmente, ao ligar uma câmera, independente do tipo, seus pri-meiros quadros não se mostram adequados para serem utilizados no sistema, devido aoauto-foco, ou à alguma outra função inicial própria do aparelho. Então, foram descartadosalguns quadros, antes do início do processamento do método. Mesmo após ligada por umcerto tempo, trepidações devido ao vento ou veículos pesados passando próximo a câmerae o auto-foco constante, também prejudicaram o resultado algumas vezes.

CAPÍTULO 6Adaptando o método para dispositívos móveis

Neste capítulo são descritas as medidas tomadas para que o método pudesseser executado em um dispositivo móvel, bem como os testes realizados para análise deperformance, medindo o tempo gasto, e qualidade na contagem. As motivações para aexecução do método em um celular são a redução de custo financeiro e a mobilidadedo aparelho, observando que os métodos tradicionais normalmente são fixados em umdeterminado local e muito caros, como descrito no capítulo 3.

Foram escolhidos celulares com o sistema operacional Android [28] por possuiruma API livre e por haver compatibilidade com bibliotecas como openCV, JavaCV effmpeg. O celular utilizado para os estudos neste capítulo foi um LG Optimus Me P350,com processador MSM7227(ARM 11) de 600Mhz e 256MB de memória RAM, comsistema operacional Android - versão 2.2 Froyo.

6.1 Adaptações do código fonte

Embora a linguagem de programação utilizada para desenvolvimento de aplica-tivos para Android seja praticamente idêntica ao Java, existem certas diferenças, princi-palmente no que diz respeito às rotinas iniciais. Foram feitas certas alterações no códigoapenas nessas rotinas, sem a necessidade de qualquer alteração nos algoritmos relacio-nados ao método em si. Como as bibliotecas (JavaCV e ffmpeg) já foram selecionadasde modo a serem utilizadas tanto por celulares como por computadores convencionais,nenhuma biblioteca foi alterada. Com isso foi possível uma comparação mais fiel dasexecuções do aplicativo feitas pelo celular e pelo laptop descrito em 5.1.

6.2 Analisando a execução do método

A fim de analisar a performance da execução do método pelo celular e acontagem dos veículos, foram utilizados os vídeos 1 e 2 (tabela 5.1) e os mesmos valoresde parâmetros fixados em 5.2.1.

6.3 Executando e analisando o método adaptado 109

Como resultado da execução, em ambos os vídeos, a contagem retornou o mesmovalor obtido pelo laptop, apresentados na tabela 5.3, assim, podendo assumir que o métodose manteve constante nos dois dispositivos eletrônicos. Mas, assim como esperado devidoà inferioridade do poder processamento, o celular necessitou de mais tempo para finalizara execução do método. Para melhor análise de tempo, o algoritmo foi executado 3 vezesem cada vídeo (1 e 2) e nos próximos parágrafos é descrito a média dessas 3 execuções.

Na tabela 6.1 é apresentado o tempo médio gasto por cada etapa do algoritmotendo como entrada o vídeo 1. O tempo total de execução foi de 2 horas e 8 minutos,sendo que no computador o tempo gasto foi de 12 minutos e 38 segundos e o tempooriginal do vídeo é de 15 minutos e 8 segundos. A resolução do vídeo 1 é de 320×240 eforam processados 15111 quadros, obtendo uma taxa de 1,96 fps.

Na tabela 6.2, é apresentado o tempo médio gasto pelas etapas do algoritmotendo como entrada o vídeo 2. O tempo total de execução foi de 3 horas e 24 minutos,sendo que no computador o tempo gasto foi de 4 minutos e o tempo original do vídeo éde 5 minutos e 15 segundos. A resolução do vídeo 02 é de 640×480 e foram processados5763 quadros, obtendo uma taxa de 0,46 fps.

Observando a análise assintótica dos algoritmos descrita na tabela 5.2 (seção5.2.2), é de fácil percepção que a resolução do quadro é a propriedade que mais interfereno custo de processamento, isto é, quanto maior a imagem maior é a quantidade deiterações e o tempo de execução para finalização do processo. Observe que na prática,com os testes executados no vídeo 1 e 2, é possível ver o quanto a resolução do quadroimplicou no tempo de processamento, pois mesmo o vídeo 01 sendo 3 vezes mais longoque o vídeo 2, apresentou um tempo de execução consideravelmente menor.

Outro fator que também implica diretamente no tempo de execução (aindalevando em consideração a tabela 5.2) é a quantidade de quadros processados, umavez que quanto mais quadros forem descartados, mais rápido o algoritmo termina seuprocessamento, em contrapartida tendendo a uma menor taxa de acerto. O tamanhoda máscara utilizada no filtro de suavização, na etapa 2.5, e a máscara utilizada nastransformações morfológicas de dilatação e erosão, etapas 4.8, 4.9, 6.4 e 6.5, tambéminfluenciam no tempo de processamento.

A diminuição dos três parâmetros mencionados: resolução, quantidade de qua-dros descartados e tamanho da máscara, não é uma ação muito simples, uma vez que aalteração dos seus valores implicam diretamente na qualidade da contagem.

6.3 Executando e analisando o método adaptado

Para a realização dos testes, a primeira medida tomada foi a redução da resoluçãodos vídeos para 160× 120. Essas reduções foram feitas previamente à execução do

6.3 Executando e analisando o método adaptado 110

Tabela 6.1: Tempo de execução do vídeo 1.

etapa tempo de execução médio (ms) por iteração1 -2 57,63

2.1 02.2 02.3 9,952.4 12,722.5 29,313 23,23

3.1 9,963.2 03.3 9,973.4 04 79,66

4.1 04.2 04.3 11,054.4 9,974.5 11,234.6 04.7 11,074.8 14,984.9 14,984.10 04.11 04.12 0

5 06 133,43

6.1 11,076.2 11,086.3 06.4 30,976.5 30,976.6 29,136.7 06.8 0,96.9 07 08 1,00

8.1 08.2 0,408.3 08.4 0,408.5 0,408.6 0,40

6.3 Executando e analisando o método adaptado 111

Tabela 6.2: Tempo de execução do vídeo 2.

etapa tempo de execução médio (ms) por iteração1 -2 197,24

2.1 02.2 02.3 35,452.4 50,712.5 105,343 86,31

3.1 39,013.2 03.3 39,363.4 04 279,13

4.1 04.2 04.3 45,114.4 35,184.5 46,854.6 04.7 42,034.8 51,154.9 51,134.10 04.11 04.12 0

5 06 428,28

6.1 47,016.2 45,986.3 06.4 123,736.5 123,756.6 119,236.7 06.8 0,96.9 07 08 1,00

8.1 08.2 0,408.3 08.4 0,408.5 0,408.6 0,40

6.3 Executando e analisando o método adaptado 112

sistema. Para cada quadro executado, foram feitos testes descartando nenhum, 1, 4, 5e 6 quadros. Os valores dos parâmetros fixos utilizados foram:

• Tamanho da máscara para suavização: 3×3, na etapa 2.5;• Número de quadros para atualização da imagem de fundo: 1000, na etapa 3;• Valor de limiar global: t = 64, na etapa 4.4;• Número de quadros máximos para determinar área de movimento: 3000, na etapa

4.11;• Tamanho da máscara utilizada para dilatação e erosão: 8× 8, nas etapas 4.8, 4.9,

6.4 e 6.5;• Valor de limiar mínimo aceito para segmentação: δt = 18, na etapa 6.3;• Pesos para acompanhamento, na etapa 8.3:

– δi = 0,20– δh = 0,05– δd = 0,20– δp = 0,50– δr = 0,05

Foram utilizados os vídeos 1,2,3,4 e 5, dos vídeos descritos na tabela tvideo, paraa execução do método no celular.

Na tabela 6.3, estão os resultados obtidos pelos testes realizados no celular.Na mesma tabela é apresentada também a comparação da execução do algoritmo pelocomputador, tendo como entrada os mesmos vídeos e parâmetros utilizados no celular.Os dados da tabela estão organizados como segue: vídeo é o número do vídeo; descarte

é o número de quadros ignorados após a execução de um quadro; %a 1 é a porcentagemde acerto; cm e ca são respectivamente a contagem manual e a contagem automáticarealizada pelo celular; tvideo é o tempo original do vídeo; e tcel e tpc são, respectivamente,os tempos de execução do algoritmo no celular e no computador. Todos os temposapresentados na tabela estão no formato hora, minutos e segundos.

1Para calcular %a foi utilizada a equação:

%a =

{ cm×100ca , se ca > cm

ca×100cm , caso contrário

6.3 Executando e analisando o método adaptado 113

Tabela 6.3: Resultados da execução do método no celular.

video descarte %a cm ca tvideo tcel tpc01 0 90,58% 202 223 00:15:08 01:00:56 00:03:5401 1 90,58% 202 223 00:15:08 00:34:58 00:02:0901 4 66,33% 202 134 00:15:08 00:16:39 00:01:1401 5 65,84% 202 133 00:15:08 00:15:36 00:00:5201 6 61,38% 202 124 00:15:08 00:14:34 00:00:3702 0 92,45% 106 98 00:05:15 00:19:55 00:01:3602 1 92,45% 106 98 00:05:15 00:16:11 00:00:5502 4 86,79% 106 92 00:05:15 00:09:53 00:00:1402 5 88,67% 106 94 00:05:15 00:09:16 00:00:2102 6 69,81% 106 74 00:05:15 00:08:27 00:00:0203 0 91,30% 46 42 00:02:44 00:11:55 00:00:2703 1 91,30% 46 42 00:02:44 00:09:23 00:00:1903 4 71,73% 46 33 00:02:44 00:07:43 00:00:1403 5 86,95% 46 40 00:02:44 00:08:00 00:00:1303 6 84,78% 46 39 00:02:44 00:07:39 00:00:1304 0 98,15% 163 160 00:10:18 00:48:18 00:03:3904 1 98,15% 163 160 00:10:18 00:27:56 00:01:5104 4 53,98% 163 88 00:10:18 00:14:13 00:00:4504 5 41,71% 163 68 00:10:18 00:12:18 00:00:3804 6 26,99% 163 44 00:10:18 00:11:09 00:00:3305 0 97,71% 437 427 00:13:07 01:09:27 00:03:4805 1 79,89% 437 349 00:13:07 00:35:54 00:01:4505 4 41,87% 437 183 00:13:07 00:17:22 00:01:1005 5 49,42% 437 216 00:13:07 00:14:08 00:00:4805 6 39,35% 437 172 00:13:07 00:12:55 00:00:51

CAPÍTULO 7Conclusão

7.1 Objetivos alcançados

Baseado nos estudos realizados das técnicas usadas na área da Visão Computa-cional e trabalhos na literatura com objetivos semelhantes, foi possível a criação de ummétodo rápido que realiza a segmentação e o acompanhamento de objetos, tornando assimpossível a contagem volumétricas dos mesmos. Em todos os vídeos gravados, da tabela5.1, a contagem realizada se apresentou satisfatória.

Também foi possível a adaptação do método de forma a rodar em um dispositivomóvel com pouco poder de processamento, o qual apresentou resultados satisfatórios emvias com baixa quantidade de veículos trafegando.

A execução método em tempo real se mostrou eficiente no laptop (apresentadona seção 5.1) recebendo imagens de webcams. A execução do método no celular emtempo real já não obteve resultados muito satisfatórios, pois apresentou lentidão noprocessamento. Mesmo assim, foram identificados os principais pontos de gargalo doalgoritmo e feitas propostas de melhorias futuras para o mesmo.

7.2 Pontos negativos do método desenvolvido

Vários aspectos de alteração dinâmica das imagens do vídeo interferiram noprocessamento digital e são questões ainda não totalmente resolvidas. Por exemplo, ométodo para o reconhecimento da imagem referência de fundo, embora tenha um baixocusto de processamento e tenham apresentado bons resultados em todos os vídeos databela 5.1, pode não funcionar adequadamente em vias congestionadas.

Já a definição automática da área de interesse não se mostrou eficiente em vias debaixo movimento, uma vez que, na maioria das vezes, a área selecionada foi a área inteirada imagem. Quando diminuindo o valor de δm, com intuito de diminuir a quantidade demovimento para definição dessa área, a função geralmente se apresentou ineficiente, pois

7.3 Comentários gerais 115

as regiões de maior movimento foram aquelas fora do nosso interesse, como nuvens semovendo no céu ou a própria vegetação do ambiente.

Além disso, como não foi desenvolvido um método para classificar se o objetoem movimento é um veiculo ou não, alguns elementos indesejáveis foram consideradosna contagem.

7.3 Comentários gerais

Embora já existam diversos meios para a realização da contagem de veículos(capítulo 3), inclusive muitos com alta taxa de acerto, geralmente eles são muito caros ealguns ainda geram um certo transtorno na via durante sua instalação ou manutenção.Entre esses meios, existem os que utilizam o auxílio da visão computacional para arealização da contagem, porém com a colocação de câmeras em posições de difícil acesso,ou com alto custo de processamento.

Com o desenvolvimento de um método que exige menos poder de processa-mento, e com a possibilidade de utilizá-lo em dispositivos móveis, como um celular, foipossível realizar a contagem volumétrica de veículos em algumas vias, com vídeos previ-amente gravados, reduzindo o custo financeiro em comparação aos meios mais utilizadosatualmente. Além disso, o novo método tem a vantagem da mobilidade, uma vez que odispositivo deverá ser fixado apenas no momento da captura do vídeo.

Por se tratar de um celular comum, o método desenvolvido neste trabalho poderáser utilizado por qualquer pessoa, sem que a mesma necessite de conhecimentos maisespecíficos.

7.4 Trabalhos futuros

Como possíveis trabalhos futuros, podem ser apontados:

• Utilização ou desenvolvimento de técnicas mais sofisticadas para o reconhecimentoda imagem de fundo.• Aprimoramento da técnica para análise da área de movimento;• Análise ou desenvolvimento de métodos para contagem de veículos no período

noturno ou em locais com baixa iluminação.• Estudo ou criação de técnicas para classificação de veículos.• Contagem de veículos em cruzamentos com deslocamento em diversas direções e

sentidos.• Estimação do volume do tráfego em vias congestionadas.

Referências Bibliográficas

[1] A. PRATI, I. MIKIC, M. T.; CUCCHIARA, R. Detecting moving shadows: Algorithms

and evaluation. IEEE Transaction on Pattern Analysis and Machine Intelligence, 25,

2007.

[2] ALVARENGA, E. Z. Conceitos de probabilidade, http://fma.if.usp.br/ ever-

ton/personal/iniciacao/fismod01/node2.html, janeiro 2012.

[3] ALVARENGA, E. Z. Distribuição de poisson, http://fma.if.usp.br/ ever-

ton/personal/iniciacao/fismod01/node8.html, janeiro 2012.

[4] AUDET, S. Java interface to opencv and more, http://code.google.com/p/javacv/,

2011. website acessado em janeiro de 2011.

[5] AYTÜL, E. Real-time automated road, lane and car detection for autonomous

driving. IEEE Conference on Computer Vision and Pattern Recognition, 2007.

Sabanci University.

[6] BARTON, H.; BYRNE. Introduction to human vision, visual defects & eye tests.

p. 22, 2007.

[7] BECCARIA, G; BIORA, F. D. T. C. W. C. The nemis urban microsimulator: a tool

for the evaluation of dynamic network control. Proceedings Of The Prometheus

Workshop On Traffic Related Simulation, Held Stuttgart, p. 138–55, 1992.

[8] BIRCHFIELD, S. T. Vehicle segmentation and tracking from a low-angle off-axis

camera. Computer Engineering, 2:1152 a 1157, 2004.

[9] BLAYVAS. Efficient computation of adaptive threshold surfaces for image bina-

rization. Computer Vision and Pattern Recognition, 2001. CVPR 2001. Proceedings

of the 2001 IEEE Computer Society Conference on, 737-742, 1995.

[10] CANNY, J. A computational approach to edge detection. IEEE Transactions on

pattern analysis and machine intelligence, 8(6), pp 679 698, 1986.

[11] CASTLEMAN, R. K. Digital Imagem Processing. Prentice Hall, 1995.

Referências Bibliográficas 117

[12] DE DIOS ORTÚZAR, J.; WILLUMSEN, L. G. Modelling transport. John Wiley and

Sons, 3rd edition, 2001.

[13] DE OLIVEIRA LOPES FILHO, J. I. Pós-avaliação da previsão de demanda por

transportes no município de fortaleza. Master’s thesis, Universidade Federal do

Ceará, 2003.

[14] DNIT. Plano nacional de contagem de trân-

sito, http://www.der.pr.gov.br/arquivos/file/ 7encontrotec-

nico/contagemdetrafegosinalisa.pdf. website acessado em dezembro de

2010.

[15] DOPPLER, C. Artoolkit handled augmented reality -

http://studierstube.icg.tugraz.at, 2011. website acessado em dezembro de

2010.

[16] DOUXCHA, D. libdc1394, http://damien.douxchamps.net/ieee1394/libdc1394/,

2011. website acessado em janeiro de 2011.

[17] E H. I. CHRISTENSEN, J. L. C. Vision as process. Springer-Verlag, 1995.

[18] E RICHARD E. WOODS, R. C. G. Processamento de Imagens Digitais, 1a Edição.

Edgard Blucher, 1999.

[19] E RICHARD E. WOODS, R. C. G. Processamento de Imagens Digitais, 3a Edição.

Pearson, 2010.

[20] EDER A. PENHARBEL, RICARDO C. DESTRO, F. T. R. A. B. Filtro de imagem base-

ado em matriz rgb de cores-padrão para futebol de robôs. Centro Universitário

da FEI (UniFEI), 2004.

[21] FENABRAVE. Federação nacional da distribuição de veículos automotores,

Fevereiro 2011.

[22] FFMPEG. Ffmpeg - http://ffmpeg.org. website acessado em janeiro de 2011.

[23] FISHER, B. Equalização de histograma http://homepages.inf.ed.ac.uk

/rbf/hipr2/histeq.htm, 2012. website acessado em janeiro de 2011.

[24] GENTLE, J. Computational Statistics. Springer, 2009.

[25] GNU. Gpl - http://www.gnu.org/copyleft/gpl.html. website acessado em janeiro

de 2011.

Referências Bibliográficas 118

[26] GNU. Lgpl - http://www.gnu.org/licenses/lgpl.html. website acessado em janeiro

de 2011.

[27] GOLDNER, L. G. Engenharia de tráfego 1o módulo. UFSC Departamento de

Engenharia Civil, 2009.

[28] GOOGLE. Android - http://www.android.com, 2011. website acessado em janeiro

de 2011.

[29] GREY, P. Flycapture, http://www.ptgrey.com/products/pgrflycapture, 2011.

[30] HAUPT, A. G. Detecção de movimento, acompanhamento e extração de infor-

mações de objetos móveis. Master’s thesis, UFGRS - Universidade Federal do Rio

Grande do Sul, 2004.

[31] HINZ, S. Detection and counting of cars in aerial images. Image Processing,

2003. ICIP 2003. Proceedings. 2003 International Conference on, 3:997 a 1000,

2003.

[32] JOHNSON, S. Stephen Johnson on Digital Photography. Oreilly, 2006.

[33] K. E. OZDEN, L. V. G. Background recognition in dynamic scenes with motion

constraints. IEEE Computer Society Conference on Computer Vision and Pattern

Recognition, 1:250 – 255, 2005.

[34] KAMIJO, S. MATSUSHITA, Y. I. K. S. M. Occlusion robust tracking utilizing spatio

temporal markov random field model. Proceedings 15th International Conference

on Pattern Recognition. ICPR-2000, 1:140–144, 2000.

[35] KIM, Z. Real time object tracking based on dynamic feature grouping with

background subtraction. Computer Vision and Pattern Recognition, 2008. CVPR

2008, p. 1 a 8, 2008.

[36] LAM, WLW; PANG, C. Y. N. Highly accurate texture-based vehicle segmentation

method. Optical Engineering, 3:591–603, 2004.

[37] LANCASTER, H. An introduction to medical statistics. 1974.

[38] LAWS., K. Image processing for missile guidance; Proceedings of the Seminar,

San Diego, CA, volume 238. CL Engineering, 1980.

[39] LEVIN, A. Unsupervised improvement of visual detectors using cotraining.

Computer Vision, 2003. Proceedings. Ninth IEEE International Conference, 1:626 –

633, 2003.

Referências Bibliográficas 119

[40] LIFENG HE, Y. C.; SUZUKI, K. A run-based two-scan labeling algorithm. IEEE

Transaction on Image Processing, 17:749 – 756, 2008.

[41] LIU, R. Dynamic route assignment combining user learning and microsimula-

tion - http://www.its.leeds.ac.uk/software/dracula/. website acessado em janeiro

de 2011.

[42] LUMBANTOBING, S. Optical character recognition (ocr) technology. Workshop on

Application of New Information Technology to Population Data, 1999.

[43] MARTINSKY, O. Algorithmic and mathematical principles of automatic number

plate recognition systems. Master’s thesis, BRNO University Of Technology, 2007.

[44] MORSE, B. S. Thresholding. 2000.

[45] O. JAVED, S. A.; SHAH, M. Online detection and classification of moving

objects using progressively improving detectors. Computer Vision and Pattern

Recognition, 1:696 a 701, 2005.

[46] OF COMPUTER SCIENCE &AMP; INFORMATICS, C. S. Region growing.

[47] OF LEED, U. Smartest final report for publication. Project Part Funded By The

European Commission Under The Transport Rtd Programme Of The 4th Framework

Programme.

[48] OPENCV. Histogram equalization - http://docs.opencv.org/doc/tutorials/imgproc/

histograms/ histogram_equalization/histogram_equalization.html. website

acessado em setembro de 2011.

[49] OPENCV. Opencv - http://opencv.willowgarage.com. website acessado em janeiro

de 2011.

[50] OPENKINECT. Openkinect - http://openkinect.org. website acessado em janeiro

de 2011.

[51] OPENSOURCE.ORG. Open source initiative - http://opensource.org/licenses/bsd-

license.php. website acessado em janeiro de 2011.

[52] ORACLE. Java - http://www.java.com, 2011. website acessado em janeiro de 2011.

[53] P. F. MCLAUCHLAN, D. BEYMER, B. C.; MALIK, J. A real time computer vision

system for measuring traffic parameters. Conference on Computer Vision and

Pattern Recognition, p. 495 – 501, 1997.

Referências Bibliográficas 120

[54] PANG, C.C.C. LAM, W. A novel method for resolving vehicle occlusion in a

monocular traffic-image sequence. Intelligent Transportation Systems, 5:129 a

141, 2004.

[55] PANG, C.C.C. LAM, W. Y. N. A method for vehicle count in the presence of

multiple-vehicle occlusions in traffic images. IEEE Transactions on Intelligent

Transportation Systems, 8:441–459, 2007.

[56] PARKER, J. R. Algorithms for image processing and computer vision. Wiley,

1997.

[57] PINGGENG, W. A smart image background recognition model and its application

to content-based image retrieval. IEEE Computer Society Conference on Compu-

ter Vision and Pattern Recognition, 2010.

[58] PTV. Vissim - http://www.vissim.de/index.php?id=1801. website acessado em

dezembro de 2010.

[59] R. FISHER, S. PERKINS, A. W.; WOLFART., E. Sobel edge detector

http://homepages.inf.ed.ac.uk/rbf/hipr2/sobel.htm. website acessado em outubro

de 2010.

[60] SAMET, H.; TAMMINEN, M. Efficient component labeling of images of arbitrary

dimension represented by linear bintrees. IEEE Transactions on Pattern Analysis

and Machine Intelligence, 10:579 – 586, 1988.

[61] SANTOS, R. Introdução ao processamento de imagens digitais em

java com aplicações em ciências espaciais, 2009. notações de aula

(http://www.lac.inpe.br/r̃afael.santos/Docs/CursoInverno/2009/ProcImagens-

CI2009.pdf).

[62] SONKA, M., H. V. B. R. Image processing analysis and machine vision. Chapman

and Hall Computing, 1995.

[63] STORKEY, A. Hough transform http://homepages.inf.ed.ac.uk/amos/hough.html.

website acessado em fevereiro de 2011.

[64] THOMAS H. CORMEN, CHARLES E. LEISERSON, R. L. R. C. S. Introduction to

Algorithms, Second Edition. The MIT Press, 2001.

[65] UNIVERSITY, O. S. Darpa urban grand challenge -

http://www.ece.osu.edu/osuact. website acessado em novembro de 2010.

Referências Bibliográficas 121

[66] VELASCO, F. Thresholding using the isodata clustering algorithm. Systems, Man

and Cybernetics, IEEE Transactions, 10:771 – 774, 1980.

[67] VIOLA, P. JONES, M. Rapid object detection using a boosted cascade of simple

features. Conference on Computer Vision and Pattern Recognition, 1:511 a 518,

2001.

[68] WANG, R. Digital convolution e186 handout -

http://fourier.eng.hmc.edu/e161/lectures/convolution/index.html, 2009. website

acessado em março de 2011.

[69] WATSON, T. videoinput a free windows video capture library -

http://muonics.net/school/spring05/videoinput/, 2011. website acessado em

janeiro de 2011.

[70] WELCH, G.; BISHOP, G. An introduction to the kalman filter. Technical report,

University of North Carolina at Chapel Hill, 2006.

[71] X. SONG, R. N. A model-based vehicle segmentation method for tracking.

Computer Vision, 2005. ICCV 2005. Tenth IEEE International, 2:1124 – 1131, 2005.

[72] YANG, JUN; WANG, Y. S. A. L. Z. Z. B. X. J. Feature fusion for vehicle detection

and tracking with low angle cameras. Applications of Computer Vision (WACV),

2011 IEEE, p. 382– 388, 2011.

[73] ZHAO, TAO., N. R. Bayesian human segmentation in crowded situations. IEEE

Computer Society Conference on Computer Vision and Pattern Recognition, 2:459 a

466, 2003.

[74] ZHAO, TAO NEVATIA, R. Car detection in low resolution aerial image. Proceedings

of the Eighth IEEE International Conference on Computer Vision. (ICCV 2001), 1:710

a 717, 2001.

APÊNDICE AComparação entre funções utilizadas noJavaCV e no OpenCV

OpenCV JavaCVi = cvRound(f); i = Math.round(f);

cvNamedWindow("Out"); CanvasFrame canvas = new Canvas-Frame(false, "Out");

cvShowImage("Out", img); canvas.showImage(img);

cvDestroyWindow("Out"); canvas.dispose();

CvCapture *cap = cvCreateFileCap-ture("lena.avi");

OpenCVFrameGrabber grabber = newOpenCVFrameGrabber("lena.avi");

CvCapture *cap = cvCreateCameraCap-ture(0);

OpenCVFrameGrabber grabber = newOpenCVFrameGrabber(0);

IplImage *img = cvQueryFrame(cap);if (!img) return;

IplImage img = grabber.grab();if (img == null) return;

cvReleaseImage( & img ); cvReleaseImage( img.pointerByReference());

int key = cvWaitKey(10);if (key) return;

KeyEvent key = canvas.waitKey(60); if (key!= null) return;

CvVideoWriter *videoWriter =cvCreateVideoWriter("out.avi",CV_FOURCC(’M’,’J’,’P’,’G’), 15, cv-Size(320,240), 1);

CvVideoWriter videoWriter =cvCreateVideoWriter("out.avi",CV_FOURCC(’M’,’J’,’P’,’G’), 15, cv-Size(320,240), 1);

APÊNDICE BResultados do teste de parâmetros

Tabela B.1: Teste de Parâmetros. Os índices significam: ca = con-tagem automática, cm = contagem manual, δt = li-miar mínimo, mc = tamanho das máscaras utilizadasna erosão e dilatação, pesos das variáveis de acompa-nhamento δi, δd , δp, δh e δr, t = tempo em segundos efps = quadros por segundo médio.

id ca cm δt mc δi δh δd δp δr t fps

1 476 202 15 5 0.2 0.1 0.1 0.1 0.5 200s 75

1 418 202 20 5 0.2 0.1 0.1 0.1 0.5 182s 83

1 3 21 202 25 5 0.2 0.1 0.1 0.1 0.5 175s 86

1 268 202 30 5 0.2 0.1 0.1 0.1 0.5 171s 88

1 281 202 15 10 0.2 0.1 0.1 0.1 0.5 191s 79

1 226 202 20 10 0.2 0.1 0.1 0.1 0.5 181s 83

1 170 202 25 10 0.2 0.1 0.1 0.1 0.5 173s 87

1 144 202 30 10 0.2 0.1 0.1 0.1 0.5 172s 87

1 198 202 15 15 0.2 0.1 0.1 0.1 0.5 194s 77

1 181 202 20 15 0.2 0.1 0.1 0.1 0.5 184s 82

1 152 202 25 15 0.2 0.1 0.1 0.1 0.5 174s 86

1 132 202 30 15 0.2 0.1 0.1 0.1 0.5 172s 87

1 125 202 15 20 0.2 0.1 0.1 0.1 0.5 195s 77

1 122 202 20 20 0.2 0.1 0.1 0.1 0.5 186s 81

1 118 202 25 20 0.2 0.1 0.1 0.1 0.5 175s 86

1 105 202 30 20 0.2 0.1 0.1 0.1 0.5 171s 88

1 515 202 15 5 0.2 0.1 0.1 0.2 0.4 198s 76

1 450 202 20 5 0.2 0.1 0.1 0.2 0.4 183s 82

1 342 202 25 5 0.2 0.1 0.1 0.2 0.4 178s 84

1 287 202 30 5 0.2 0.1 0.1 0.2 0.4 173s 87

1 297 202 15 10 0.2 0.1 0.1 0.2 0.4 191s 79

1 241 202 20 10 0.2 0.1 0.1 0.2 0.4 183s 82

Apêndice B 124

1 186 202 25 10 0.2 0.1 0.1 0.2 0.4 173s 87

1 156 202 30 10 0.2 0.1 0.1 0.2 0.4 175s 86

1 203 202 15 15 0.2 0.1 0.1 0.2 0.4 194s 77

1 178 202 20 15 0.2 0.1 0.1 0.2 0.4 184s 82

1 158 202 25 15 0.2 0.1 0.1 0.2 0.4 176s 85

1 137 202 30 15 0.2 0.1 0.1 0.2 0.4 171s 88

1 125 202 15 20 0.2 0.1 0.1 0.2 0.4 195s 77

1 1 22 202 20 20 0.2 0.1 0.1 0.2 0.4 185s 81

1 118 202 25 20 0.2 0.1 0.1 0.2 0.4 174s 86

1 107 202 30 20 0.2 0.1 0.1 0.2 0.4 169s 89

1 477 202 15 5 0.1 0.1 0.1 0.2 0.5 187s 80

1 419 202 20 5 0.1 0.1 0.1 0.2 0.5 178s 84

1 3 20 202 25 5 0.1 0.1 0.1 0.2 0.5 172s 87

1 278 202 30 5 0.1 0.1 0.1 0.2 0.5 166s 91

1 281 202 15 10 0.1 0.1 0.1 0.2 0.5 186s 81

1 226 202 20 10 0.1 0.1 0.1 0.2 0.5 178s 84

1 169 202 25 10 0.1 0.1 0.1 0.2 0.5 169s 89

1 144 202 30 10 0.1 0.1 0.1 0.2 0.5 166s 91

1 200 202 15 15 0.1 0.1 0.1 0.2 0.5 187s 80

1 175 202 20 15 0.1 0.1 0.1 0.2 0.5 178s 84

1 153 202 25 15 0.1 0.1 0.1 0.2 0.5 169s 89

1 134 202 30 15 0.1 0.1 0.1 0.2 0.5 167s 90

1 125 202 15 20 0.1 0.1 0.1 0.2 0.5 193s 78

1 1 22 202 20 20 0.1 0.1 0.1 0.2 0.5 180s 83

1 118 202 25 20 0.1 0.1 0.1 0.2 0.5 170s 88

1 106 202 30 20 0.1 0.1 0.1 0.2 0.5 165s 91

1 498 202 15 5 0.2 0.0 0.0 0.3 0.5 187s 80

1 437 202 20 5 0.2 0.0 0.0 0.3 0.5 180s 83

1 342 202 25 5 0.2 0.0 0.0 0.3 0.5 170s 88

1 286 202 30 5 0.2 0.0 0.0 0.3 0.5 167s 90

1 289 202 15 10 0.2 0.0 0.0 0.3 0.5 187s 80

1 232 202 20 10 0.2 0.0 0.0 0.3 0.5 179s 84

1 180 202 25 10 0.2 0.0 0.0 0.3 0.5 170s 88

1 150 202 30 10 0.2 0.0 0.0 0.3 0.5 165s 91

1 202 202 15 15 0.2 0.0 0.0 0.3 0.5 187s 80

1 177 202 20 15 0.2 0.0 0.0 0.3 0.5 179s 84

Apêndice B 125

1 157 202 25 15 0.2 0.0 0.0 0.3 0.5 170s 88

1 136 202 30 15 0.2 0.0 0.0 0.3 0.5 166s 91

1 124 202 15 20 0.2 0.0 0.0 0.3 0.5 189s 79

1 1 21 202 20 20 0.2 0.0 0.0 0.3 0.5 180s 83

1 117 202 25 20 0.2 0.0 0.0 0.3 0.5 171s 88

1 107 202 30 20 0.2 0.0 0.0 0.3 0.5 166s 91

1 491 202 15 5 0.3 0.0 0.0 0.2 0.5 187s 80

1 435 202 20 5 0.3 0.0 0.0 0.2 0.5 178s 84

1 331 202 25 5 0.3 0.0 0.0 0.2 0.5 171s 88

1 281 202 30 5 0.3 0.0 0.0 0.2 0.5 169s 89

1 288 202 15 10 0.3 0.0 0.0 0.2 0.5 186s 81

1 232 202 20 10 0.3 0.0 0.0 0.2 0.5 177s 85

1 179 202 25 10 0.3 0.0 0.0 0.2 0.5 170s 88

1 151 202 30 10 0.3 0.0 0.0 0.2 0.5 165s 91

1 202 202 15 15 0.3 0.0 0.0 0.2 0.5 187s 80

1 177 202 20 15 0.3 0.0 0.0 0.2 0.5 181s 83

1 157 202 25 15 0.3 0.0 0.0 0.2 0.5 172s 87

1 136 202 30 15 0.3 0.0 0.0 0.2 0.5 164s 92

1 124 202 15 20 0.3 0.0 0.0 0.2 0.5 192s 78

1 1 21 202 20 20 0.3 0.0 0.0 0.2 0.5 180s 83

1 117 202 25 20 0.3 0.0 0.0 0.2 0.5 172s 87

1 107 202 30 20 0.3 0.0 0.0 0.2 0.5 166s 91

1 464 202 15 5 0.1 0.0 0.0 0.2 0.7 187s 80

1 403 202 20 5 0.1 0.0 0.0 0.2 0.7 180s 83

1 310 202 25 5 0.1 0.0 0.0 0.2 0.7 171s 88

1 266 202 30 5 0.1 0.0 0.0 0.2 0.7 167s 90

1 270 202 15 10 0.1 0.0 0.0 0.2 0.7 185s 81

1 215 202 20 10 0.1 0.0 0.0 0.2 0.7 177s 85

1 162 202 25 10 0.1 0.0 0.0 0.2 0.7 169s 89

1 134 202 30 10 0.1 0.0 0.0 0.2 0.7 165s 91

1 198 202 15 15 0.1 0.0 0.0 0.2 0.7 186s 81

1 173 202 20 15 0.1 0.0 0.0 0.2 0.7 178s 84

1 152 202 25 15 0.1 0.0 0.0 0.2 0.7 173s 87

1 131 202 30 15 0.1 0.0 0.0 0.2 0.7 168s 89

1 1 22 202 15 20 0.1 0.0 0.0 0.2 0.7 189s 79

1 1 19 202 20 20 0.1 0.0 0.0 0.2 0.7 179s 84

Apêndice B 126

1 115 202 25 20 0.1 0.0 0.0 0.2 0.7 171s 88

1 102 202 30 20 0.1 0.0 0.0 0.2 0.7 166s 91

2 318 106 15 5 0.2 0.1 0.1 0.1 0.5 448s 12

2 280 106 20 5 0.2 0.1 0.1 0.1 0.5 374s 15

2 229 106 25 5 0.2 0.1 0.1 0.1 0.5 283s 20

2 182 106 30 5 0.2 0.1 0.1 0.1 0.5 245s 23

2 143 106 15 10 0.2 0.1 0.1 0.1 0.5 373s 15

2 1 21 106 20 10 0.2 0.1 0.1 0.1 0.5 329s 17

2 86 106 25 10 0.2 0.1 0.1 0.1 0.5 265s 21

2 62 106 30 10 0.2 0.1 0.1 0.1 0.5 239s 24

2 107 106 15 15 0.2 0.1 0.1 0.1 0.5 345s 16

2 98 106 20 15 0.2 0.1 0.1 0.1 0.5 305s 18

2 55 106 25 15 0.2 0.1 0.1 0.1 0.5 255s 22

2 41 106 30 15 0.2 0.1 0.1 0.1 0.5 236s 24

2 91 106 15 20 0.2 0.1 0.1 0.1 0.5 333s 17

2 79 106 20 20 0.2 0.1 0.1 0.1 0.5 299s 19

2 50 106 25 20 0.2 0.1 0.1 0.1 0.5 252s 22

2 31 106 30 20 0.2 0.1 0.1 0.1 0.5 234s 24

2 328 106 15 5 0.2 0.1 0.1 0.2 0.4 450s 12

2 298 106 20 5 0.2 0.1 0.1 0.2 0.4 367s 15

2 239 106 25 5 0.2 0.1 0.1 0.2 0.4 282s 20

2 182 106 30 5 0.2 0.1 0.1 0.2 0.4 249s 23

2 145 106 15 10 0.2 0.1 0.1 0.2 0.4 369s 15

2 124 106 20 10 0.2 0.1 0.1 0.2 0.4 322s 17

2 91 106 25 10 0.2 0.1 0.1 0.2 0.4 260s 22

2 64 106 30 10 0.2 0.1 0.1 0.2 0.4 239s 24

2 111 106 15 15 0.2 0.1 0.1 0.2 0.4 337s 17

2 91 106 20 15 0.2 0.1 0.1 0.2 0.4 297s 19

2 58 106 25 15 0.2 0.1 0.1 0.2 0.4 257s 22

2 46 106 30 15 0.2 0.1 0.1 0.2 0.4 235s 24

2 94 106 15 20 0.2 0.1 0.1 0.2 0.4 329s 17

2 83 106 20 20 0.2 0.1 0.1 0.2 0.4 296s 19

2 52 106 25 20 0.2 0.1 0.1 0.2 0.4 253s 22

2 35 106 30 20 0.2 0.1 0.1 0.2 0.4 234s 24

2 312 106 15 5 0.1 0.1 0.1 0.2 0.5 414s 13

2 281 106 20 5 0.1 0.1 0.1 0.2 0.5 356s 16

Apêndice B 127

2 228 106 25 5 0.1 0.1 0.1 0.2 0.5 277s 20

2 180 106 30 5 0.1 0.1 0.1 0.2 0.5 246s 23

2 143 106 15 10 0.1 0.1 0.1 0.2 0.5 359s 16

2 1 21 106 20 10 0.1 0.1 0.1 0.2 0.5 315s 18

2 86 106 25 10 0.1 0.1 0.1 0.2 0.5 260s 22

2 62 106 30 10 0.1 0.1 0.1 0.2 0.5 239s 24

2 108 106 15 15 0.1 0.1 0.1 0.2 0.5 336s 17

2 90 106 20 15 0.1 0.1 0.1 0.2 0.5 296s 19

2 56 106 25 15 0.1 0.1 0.1 0.2 0.5 251s 22

2 43 106 30 15 0.1 0.1 0.1 0.2 0.5 237s 24

2 91 106 15 20 0.1 0.1 0.1 0.2 0.5 331s 17

2 79 106 20 20 0.1 0.1 0.1 0.2 0.5 293s 19

2 51 106 25 20 0.1 0.1 0.1 0.2 0.5 253s 22

2 32 106 30 20 0.1 0.1 0.1 0.2 0.5 234s 24

2 323 106 15 5 0.2 0.0 0.0 0.3 0.5 418s 13

2 289 106 20 5 0.2 0.0 0.0 0.3 0.5 358s 16

2 237 106 25 5 0.2 0.0 0.0 0.3 0.5 274s 21

2 184 106 30 5 0.2 0.0 0.0 0.3 0.5 247s 23

2 144 106 15 10 0.2 0.0 0.0 0.3 0.5 363s 15

2 123 106 20 10 0.2 0.0 0.0 0.3 0.5 319s 18

2 88 106 25 10 0.2 0.0 0.0 0.3 0.5 260s 22

2 63 106 30 10 0.2 0.0 0.0 0.3 0.5 237s 24

2 110 106 15 15 0.2 0.0 0.0 0.3 0.5 334s 17

2 90 106 20 15 0.2 0.0 0.0 0.3 0.5 296s 19

2 57 106 25 15 0.2 0.0 0.0 0.3 0.5 251s 22

2 45 106 30 15 0.2 0.0 0.0 0.3 0.5 233s 24

2 92 106 15 20 0.2 0.0 0.0 0.3 0.5 328s 17

2 81 106 20 20 0.2 0.0 0.0 0.3 0.5 294s 19

2 52 106 25 20 0.2 0.0 0.0 0.3 0.5 253s 22

2 33 106 30 20 0.2 0.0 0.0 0.3 0.5 232s 24

2 325 106 15 5 0.3 0.0 0.0 0.2 0.5 420s 13

2 287 106 20 5 0.3 0.0 0.0 0.2 0.5 361s 15

2 237 106 25 5 0.3 0.0 0.0 0.2 0.5 281s 20

2 189 106 30 5 0.3 0.0 0.0 0.2 0.5 247s 23

2 144 106 15 10 0.3 0.0 0.0 0.2 0.5 363s 15

2 123 106 20 10 0.3 0.0 0.0 0.2 0.5 318s 18

Apêndice B 128

2 88 106 25 10 0.3 0.0 0.0 0.2 0.5 258s 22

2 63 106 30 10 0.3 0.0 0.0 0.2 0.5 237s 24

2 109 106 15 15 0.3 0.0 0.0 0.2 0.5 338s 17

2 89 106 20 15 0.3 0.0 0.0 0.2 0.5 297s 19

2 56 106 25 15 0.3 0.0 0.0 0.2 0.5 253s 22

2 43 106 30 15 0.3 0.0 0.0 0.2 0.5 234s 24

2 92 106 15 20 0.3 0.0 0.0 0.2 0.5 332s 17

2 81 106 20 20 0.3 0.0 0.0 0.2 0.5 295s 19

2 51 106 25 20 0.3 0.0 0.0 0.2 0.5 251s 22

2 33 106 30 20 0.3 0.0 0.0 0.2 0.5 234s 24

2 310 106 15 5 0.1 0.0 0.0 0.2 0.7 424s 13

2 277 106 20 5 0.1 0.0 0.0 0.2 0.7 364s 15

2 228 106 25 5 0.1 0.0 0.0 0.2 0.7 276s 20

2 179 106 30 5 0.1 0.0 0.0 0.2 0.7 247s 23

2 143 106 15 10 0.1 0.0 0.0 0.2 0.7 365s 15

2 1 21 106 20 10 0.1 0.0 0.0 0.2 0.7 320s 18

2 86 106 25 10 0.1 0.0 0.0 0.2 0.7 258s 22

2 59 106 30 10 0.1 0.0 0.0 0.2 0.7 236s 24

2 105 106 15 15 0.1 0.0 0.0 0.2 0.7 337s 17

2 87 106 20 15 0.1 0.0 0.0 0.2 0.7 296s 19

2 53 106 25 15 0.1 0.0 0.0 0.2 0.7 250s 23

2 37 106 30 15 0.1 0.0 0.0 0.2 0.7 234s 24

2 91 106 15 20 0.1 0.0 0.0 0.2 0.7 328s 17

2 79 106 20 20 0.1 0.0 0.0 0.2 0.7 299s 19

2 49 106 25 20 0.1 0.0 0.0 0.2 0.7 256s 22

2 29 106 30 20 0.1 0.0 0.0 0.2 0.7 237s 24

3 171 90 15 5 0.2 0.1 0.1 0.1 0.5 141s 21

3 131 90 20 5 0.2 0.1 0.1 0.1 0.5 140s 21

3 117 90 25 5 0.2 0.1 0.1 0.1 0.5 137s 21

3 91 90 30 5 0.2 0.1 0.1 0.1 0.5 129s 23

3 80 90 15 10 0.2 0.1 0.1 0.1 0.5 138s 21

3 58 90 20 10 0.2 0.1 0.1 0.1 0.5 137s 21

3 53 90 25 10 0.2 0.1 0.1 0.1 0.5 133s 22

3 47 90 30 10 0.2 0.1 0.1 0.1 0.5 127s 23

3 101 90 15 15 0.2 0.1 0.1 0.1 0.5 136s 22

3 89 90 20 15 0.2 0.1 0.1 0.1 0.5 138s 21

Apêndice B 129

3 41 90 25 15 0.2 0.1 0.1 0.1 0.5 137s 21

3 37 90 30 15 0.2 0.1 0.1 0.1 0.5 128s 23

3 65 90 15 20 0.2 0.1 0.1 0.1 0.5 138s 21

3 59 90 20 20 0.2 0.1 0.1 0.1 0.5 137s 21

3 50 90 25 20 0.2 0.1 0.1 0.1 0.5 135s 22

3 43 90 30 20 0.2 0.1 0.1 0.1 0.5 129s 23

3 178 90 15 5 0.2 0.1 0.1 0.2 0.4 141s 21

3 140 90 20 5 0.2 0.1 0.1 0.2 0.4 137s 21

3 124 90 25 5 0.2 0.1 0.1 0.2 0.4 142s 21

3 100 90 30 5 0.2 0.1 0.1 0.2 0.4 128s 23

3 80 90 15 10 0.2 0.1 0.1 0.2 0.4 139s 21

3 59 90 20 10 0.2 0.1 0.1 0.2 0.4 138s 21

3 57 90 25 10 0.2 0.1 0.1 0.2 0.4 136s 22

3 51 90 30 10 0.2 0.1 0.1 0.2 0.4 128s 23

3 59 90 15 15 0.2 0.1 0.1 0.2 0.4 138s 21

3 47 90 20 15 0.2 0.1 0.1 0.2 0.4 135s 22

3 45 90 25 15 0.2 0.1 0.1 0.2 0.4 133s 22

3 41 90 30 15 0.2 0.1 0.1 0.2 0.4 128s 23

3 66 90 15 20 0.2 0.1 0.1 0.2 0.4 137s 21

3 60 90 20 20 0.2 0.1 0.1 0.2 0.4 134s 22

3 53 90 25 20 0.2 0.1 0.1 0.2 0.4 135s 22

3 45 90 30 20 0.2 0.1 0.1 0.2 0.4 128s 23

3 170 90 15 5 0.1 0.1 0.1 0.2 0.5 141s 21

3 132 90 20 5 0.1 0.1 0.1 0.2 0.5 139s 21

3 1 20 90 25 5 0.1 0.1 0.1 0.2 0.5 134s 22

3 94 90 30 5 0.1 0.1 0.1 0.2 0.5 129s 23

3 81 90 15 10 0.1 0.1 0.1 0.2 0.5 137s 21

3 58 90 20 10 0.1 0.1 0.1 0.2 0.5 135s 22

3 53 90 25 10 0.1 0.1 0.1 0.2 0.5 138s 21

3 47 90 30 10 0.1 0.1 0.1 0.2 0.5 130s 23

3 56 90 15 15 0.1 0.1 0.1 0.2 0.5 136s 22

3 44 90 20 15 0.1 0.1 0.1 0.2 0.5 134s 22

3 41 90 25 15 0.1 0.1 0.1 0.2 0.5 131s 22

3 38 90 30 15 0.1 0.1 0.1 0.2 0.5 130s 23

3 65 90 15 20 0.1 0.1 0.1 0.2 0.5 136s 22

3 59 90 20 20 0.1 0.1 0.1 0.2 0.5 135s 22

Apêndice B 130

3 50 90 25 20 0.1 0.1 0.1 0.2 0.5 134s 22

3 43 90 30 20 0.1 0.1 0.1 0.2 0.5 127s 23

3 171 90 15 5 0.2 0.0 0.0 0.3 0.5 138s 21

3 138 90 20 5 0.2 0.0 0.0 0.3 0.5 136s 22

3 1 21 90 25 5 0.2 0.0 0.0 0.3 0.5 134s 22

3 95 90 30 5 0.2 0.0 0.0 0.3 0.5 128s 23

3 81 90 15 10 0.2 0.0 0.0 0.3 0.5 136s 22

3 58 90 20 10 0.2 0.0 0.0 0.3 0.5 134s 22

3 54 90 25 10 0.2 0.0 0.0 0.3 0.5 132s 22

3 49 90 30 10 0.2 0.0 0.0 0.3 0.5 128s 23

3 56 90 15 15 0.2 0.0 0.0 0.3 0.5 136s 22

3 45 90 20 15 0.2 0.0 0.0 0.3 0.5 133s 22

3 42 90 25 15 0.2 0.0 0.0 0.3 0.5 132s 22

3 40 90 30 15 0.2 0.0 0.0 0.3 0.5 128s 23

3 66 90 15 20 0.2 0.0 0.0 0.3 0.5 136s 22

3 60 90 20 20 0.2 0.0 0.0 0.3 0.5 135s 22

3 53 90 25 20 0.2 0.0 0.0 0.3 0.5 133s 22

3 44 90 30 20 0.2 0.0 0.0 0.3 0.5 129s 23

3 172 90 15 5 0.3 0.0 0.0 0.2 0.5 138s 21

3 137 90 20 5 0.3 0.0 0.0 0.2 0.5 136s 22

3 1 21 90 25 5 0.3 0.0 0.0 0.2 0.5 134s 22

3 96 90 30 5 0.3 0.0 0.0 0.2 0.5 127s 23

3 80 90 15 10 0.3 0.0 0.0 0.2 0.5 136s 22

3 58 90 20 10 0.3 0.0 0.0 0.2 0.5 136s 22

3 54 90 25 10 0.3 0.0 0.0 0.2 0.5 132s 22

3 49 90 30 10 0.3 0.0 0.0 0.2 0.5 126s 23

3 56 90 15 15 0.3 0.0 0.0 0.2 0.5 136s 22

3 45 90 20 15 0.3 0.0 0.0 0.2 0.5 134s 22

3 42 90 25 15 0.3 0.0 0.0 0.2 0.5 134s 22

3 39 90 30 15 0.3 0.0 0.0 0.2 0.5 127s 23

3 66 90 15 20 0.3 0.0 0.0 0.2 0.5 137s 21

3 60 90 20 20 0.3 0.0 0.0 0.2 0.5 135s 22

3 53 90 25 20 0.3 0.0 0.0 0.2 0.5 136s 22

3 44 90 30 20 0.3 0.0 0.0 0.2 0.5 127s 23

3 163 90 15 5 0.1 0.0 0.0 0.2 0.7 139s 21

3 126 90 20 5 0.1 0.0 0.0 0.2 0.7 136s 22

Apêndice B 131

3 113 90 25 5 0.1 0.0 0.0 0.2 0.7 132s 22

3 89 90 30 5 0.1 0.0 0.0 0.2 0.7 130s 23

3 79 90 15 10 0.1 0.0 0.0 0.2 0.7 138s 21

3 57 90 20 10 0.1 0.0 0.0 0.2 0.7 134s 22

3 52 90 25 10 0.1 0.0 0.0 0.2 0.7 131s 22

3 45 90 30 10 0.1 0.0 0.0 0.2 0.7 128s 23

3 55 90 15 15 0.1 0.0 0.0 0.2 0.7 136s 22

3 44 90 20 15 0.1 0.0 0.0 0.2 0.7 134s 22

3 41 90 25 15 0.1 0.0 0.0 0.2 0.7 133s 22

3 35 90 30 15 0.1 0.0 0.0 0.2 0.7 127s 23

3 65 90 15 20 0.1 0.0 0.0 0.2 0.7 136s 22

3 59 90 20 20 0.1 0.0 0.0 0.2 0.7 136s 22

3 50 90 25 20 0.1 0.0 0.0 0.2 0.7 133s 22

3 41 90 30 20 0.1 0.0 0.0 0.2 0.7 129s 23

4 594 163 15 5 0.2 0.1 0.1 0.1 0.5 738s 13

4 589 163 20 5 0.2 0.1 0.1 0.1 0.5 728s 13

4 557 163 25 5 0.2 0.1 0.1 0.1 0.5 716s 13

4 525 163 30 5 0.2 0.1 0.1 0.1 0.5 677s 14

4 235 163 15 10 0.2 0.1 0.1 0.1 0.5 575s 17

4 235 163 20 10 0.2 0.1 0.1 0.1 0.5 576s 17

4 226 163 25 10 0.2 0.1 0.1 0.1 0.5 559s 17

4 210 163 30 10 0.2 0.1 0.1 0.1 0.5 535s 18

4 189 163 15 15 0.2 0.1 0.1 0.1 0.5 480s 20

4 143 163 20 15 0.2 0.1 0.1 0.1 0.5 475s 20

4 104 163 25 15 0.2 0.1 0.1 0.1 0.5 481s 20

4 102 163 30 15 0.2 0.1 0.1 0.1 0.5 465s 21

4 61 163 15 20 0.2 0.1 0.1 0.1 0.5 476s 20

4 61 163 20 20 0.2 0.1 0.1 0.1 0.5 477s 20

4 61 163 25 20 0.2 0.1 0.1 0.1 0.5 483s 20

4 60 163 30 20 0.2 0.1 0.1 0.1 0.5 472s 20

4 661 163 15 5 0.2 0.1 0.1 0.2 0.4 731s 13

4 657 163 20 5 0.2 0.1 0.1 0.2 0.4 730s 13

4 614 163 25 5 0.2 0.1 0.1 0.2 0.4 738s 13

4 579 163 30 5 0.2 0.1 0.1 0.2 0.4 684s 14

4 241 163 15 10 0.2 0.1 0.1 0.2 0.4 567s 17

4 241 163 20 10 0.2 0.1 0.1 0.2 0.4 568s 17

Apêndice B 132

4 232 163 25 10 0.2 0.1 0.1 0.2 0.4 558s 17

4 218 163 30 10 0.2 0.1 0.1 0.2 0.4 536s 18

4 108 163 15 15 0.2 0.1 0.1 0.2 0.4 474s 20

4 108 163 20 15 0.2 0.1 0.1 0.2 0.4 484s 20

4 108 163 25 15 0.2 0.1 0.1 0.2 0.4 471s 21

4 106 163 30 15 0.2 0.1 0.1 0.2 0.4 460s 21

4 63 163 15 20 0.2 0.1 0.1 0.2 0.4 476s 20

4 63 163 20 20 0.2 0.1 0.1 0.2 0.4 475s 20

4 63 163 25 20 0.2 0.1 0.1 0.2 0.4 472s 20

4 62 163 30 20 0.2 0.1 0.1 0.2 0.4 462s 21

4 598 163 15 5 0.1 0.1 0.1 0.2 0.5 727s 13

4 598 163 20 5 0.1 0.1 0.1 0.2 0.5 727s 13

4 559 163 25 5 0.1 0.1 0.1 0.2 0.5 723s 13

4 529 163 30 5 0.1 0.1 0.1 0.2 0.5 681s 14

4 235 163 15 10 0.1 0.1 0.1 0.2 0.5 566s 17

4 235 163 20 10 0.1 0.1 0.1 0.2 0.5 563s 17

4 225 163 25 10 0.1 0.1 0.1 0.2 0.5 594s 16

4 212 163 30 10 0.1 0.1 0.1 0.2 0.5 535s 18

4 105 163 15 15 0.1 0.1 0.1 0.2 0.5 474s 20

4 105 163 20 15 0.1 0.1 0.1 0.2 0.5 481s 20

4 105 163 25 15 0.1 0.1 0.1 0.2 0.5 471s 21

4 103 163 30 15 0.1 0.1 0.1 0.2 0.5 459s 21

4 61 163 15 20 0.1 0.1 0.1 0.2 0.5 478s 20

4 61 163 20 20 0.1 0.1 0.1 0.2 0.5 476s 20

4 61 163 25 20 0.1 0.1 0.1 0.2 0.5 473s 20

4 60 163 30 20 0.1 0.1 0.1 0.2 0.5 464s 21

4 642 163 15 5 0.2 0.0 0.0 0.3 0.5 732s 13

4 638 163 20 5 0.2 0.0 0.0 0.3 0.5 731s 13

4 593 163 25 5 0.2 0.0 0.0 0.3 0.5 724s 13

4 557 163 30 5 0.2 0.0 0.0 0.3 0.5 686s 14

4 239 163 15 10 0.2 0.0 0.0 0.3 0.5 564s 17

4 239 163 20 10 0.2 0.0 0.0 0.3 0.5 564s 17

4 229 163 25 10 0.2 0.0 0.0 0.3 0.5 555s 17

4 214 163 30 10 0.2 0.0 0.0 0.3 0.5 543s 18

4 105 163 15 15 0.2 0.0 0.0 0.3 0.5 472s 20

4 105 163 20 15 0.2 0.0 0.0 0.3 0.5 475s 20

Apêndice B 133

4 105 163 25 15 0.2 0.0 0.0 0.3 0.5 469s 21

4 103 163 30 15 0.2 0.0 0.0 0.3 0.5 459s 21

4 62 163 15 20 0.2 0.0 0.0 0.3 0.5 475s 20

4 62 163 20 20 0.2 0.0 0.0 0.3 0.5 475s 20

4 62 163 25 20 0.2 0.0 0.0 0.3 0.5 472s 20

4 61 163 30 20 0.2 0.0 0.0 0.3 0.5 471s 21

4 627 163 15 5 0.3 0.0 0.0 0.2 0.5 730s 13

4 6 22 163 20 5 0.3 0.0 0.0 0.2 0.5 728s 13

4 585 163 25 5 0.3 0.0 0.0 0.2 0.5 715s 13

4 552 163 30 5 0.3 0.0 0.0 0.2 0.5 678s 14

4 235 163 15 10 0.3 0.0 0.0 0.2 0.5 571s 17

4 235 163 20 10 0.3 0.0 0.0 0.2 0.5 566s 17

4 226 163 25 10 0.3 0.0 0.0 0.2 0.5 558s 17

4 210 163 30 10 0.3 0.0 0.0 0.2 0.5 537s 18

4 105 163 15 15 0.3 0.0 0.0 0.2 0.5 475s 20

4 105 163 20 15 0.3 0.0 0.0 0.2 0.5 475s 20

4 105 163 25 15 0.3 0.0 0.0 0.2 0.5 481s 20

4 103 163 30 15 0.3 0.0 0.0 0.2 0.5 461s 21

4 62 163 15 20 0.3 0.0 0.0 0.2 0.5 479s 20

4 62 163 20 20 0.3 0.0 0.0 0.2 0.5 475s 20

4 62 163 25 20 0.3 0.0 0.0 0.2 0.5 474s 20

4 61 163 30 20 0.3 0.0 0.0 0.2 0.5 464s 21

4 576 163 15 5 0.1 0.0 0.0 0.2 0.7 727s 13

4 574 163 20 5 0.1 0.0 0.0 0.2 0.7 735s 13

4 533 163 25 5 0.1 0.0 0.0 0.2 0.7 714s 13

4 507 163 30 5 0.1 0.0 0.0 0.2 0.7 677s 14

4 232 163 15 10 0.1 0.0 0.0 0.2 0.7 564s 17

4 232 163 20 10 0.1 0.0 0.0 0.2 0.7 566s 17

4 223 163 25 10 0.1 0.0 0.0 0.2 0.7 554s 17

4 208 163 30 10 0.1 0.0 0.0 0.2 0.7 541s 18

4 102 163 15 15 0.1 0.0 0.0 0.2 0.7 486s 20

4 102 163 20 15 0.1 0.0 0.0 0.2 0.7 481s 20

4 102 163 25 15 0.1 0.0 0.0 0.2 0.7 470s 21

4 100 163 30 15 0.1 0.0 0.0 0.2 0.7 460s 21

4 61 163 15 20 0.1 0.0 0.0 0.2 0.7 494s 20

4 61 163 20 20 0.1 0.0 0.0 0.2 0.7 506s 19

Apêndice B 134

4 61 163 25 20 0.1 0.0 0.0 0.2 0.7 511s 19

4 60 163 30 20 0.1 0.0 0.0 0.2 0.7 467s 21

5 1591 437 15 5 0.2 0.1 0.1 0.1 0.5 692s 18

5 1524 437 20 5 0.2 0.1 0.1 0.1 0.5 669s 18

5 1450 437 25 5 0.2 0.1 0.1 0.1 0.5 665s 18

5 1324 437 30 5 0.2 0.1 0.1 0.1 0.5 633s 19

5 6 19 437 15 10 0.2 0.1 0.1 0.1 0.5 620s 20

5 534 437 20 10 0.2 0.1 0.1 0.1 0.5 603s 20

5 524 437 25 10 0.2 0.1 0.1 0.1 0.5 599s 20

5 458 437 30 10 0.2 0.1 0.1 0.1 0.5 573s 21

5 452 437 15 15 0.2 0.1 0.1 0.1 0.5 600s 20

5 363 437 20 15 0.2 0.1 0.1 0.1 0.5 589s 21

5 355 437 25 15 0.2 0.1 0.1 0.1 0.5 585s 21

5 254 437 30 15 0.2 0.1 0.1 0.1 0.5 574s 21

5 238 437 15 20 0.2 0.1 0.1 0.1 0.5 602s 20

5 203 437 20 20 0.2 0.1 0.1 0.1 0.5 591s 21

5 192 437 25 20 0.2 0.1 0.1 0.1 0.5 589s 21

5 187 437 30 20 0.2 0.1 0.1 0.1 0.5 580s 21

5 1655 437 15 5 0.2 0.1 0.1 0.2 0.4 690s 18

5 1589 437 20 5 0.2 0.1 0.1 0.2 0.4 673s 18

5 1523 437 25 5 0.2 0.1 0.1 0.2 0.4 650s 19

5 1389 437 30 5 0.2 0.1 0.1 0.2 0.4 620s 20

5 666 437 15 10 0.2 0.1 0.1 0.2 0.4 616s 20

5 577 437 20 10 0.2 0.1 0.1 0.2 0.4 601s 20

5 562 437 25 10 0.2 0.1 0.1 0.2 0.4 597s 20

5 471 437 30 10 0.2 0.1 0.1 0.2 0.4 574s 21

5 359 437 15 15 0.2 0.1 0.1 0.2 0.4 600s 20

5 302 437 20 15 0.2 0.1 0.1 0.2 0.4 589s 21

5 286 437 25 15 0.2 0.1 0.1 0.2 0.4 587s 21

5 258 437 30 15 0.2 0.1 0.1 0.2 0.4 574s 21

5 240 437 15 20 0.2 0.1 0.1 0.2 0.4 601s 20

5 206 437 20 20 0.2 0.1 0.1 0.2 0.4 591s 21

5 195 437 25 20 0.2 0.1 0.1 0.2 0.4 588s 21

5 190 437 30 20 0.2 0.1 0.1 0.2 0.4 581s 21

5 1601 437 15 5 0.1 0.1 0.1 0.2 0.5 675s 18

5 1536 437 20 5 0.1 0.1 0.1 0.2 0.5 660s 18

Apêndice B 135

5 1463 437 25 5 0.1 0.1 0.1 0.2 0.5 658s 18

5 1315 437 30 5 0.1 0.1 0.1 0.2 0.5 626s 19

5 630 437 15 10 0.1 0.1 0.1 0.2 0.5 619s 20

5 544 437 20 10 0.1 0.1 0.1 0.2 0.5 601s 20

5 533 437 25 10 0.1 0.1 0.1 0.2 0.5 598s 20

5 458 437 30 10 0.1 0.1 0.1 0.2 0.5 574s 21

5 348 437 15 15 0.1 0.1 0.1 0.2 0.5 601s 20

5 292 437 20 15 0.1 0.1 0.1 0.2 0.5 590s 21

5 276 437 25 15 0.1 0.1 0.1 0.2 0.5 586s 21

5 253 437 30 15 0.1 0.1 0.1 0.2 0.5 576s 21

5 238 437 15 20 0.1 0.1 0.1 0.2 0.5 604s 20

5 204 437 20 20 0.1 0.1 0.1 0.2 0.5 585s 21

5 193 437 25 20 0.1 0.1 0.1 0.2 0.5 584s 21

5 188 437 30 20 0.1 0.1 0.1 0.2 0.5 576s 21

5 1644 437 15 5 0.2 0.0 0.0 0.3 0.5 679s 18

5 1583 437 20 5 0.2 0.0 0.0 0.3 0.5 663s 18

5 1513 437 25 5 0.2 0.0 0.0 0.3 0.5 659s 18

5 1373 437 30 5 0.2 0.0 0.0 0.3 0.5 626s 19

5 649 437 15 10 0.2 0.0 0.0 0.3 0.5 612s 20

5 559 437 20 10 0.2 0.0 0.0 0.3 0.5 598s 20

5 547 437 25 10 0.2 0.0 0.0 0.3 0.5 595s 20

5 465 437 30 10 0.2 0.0 0.0 0.3 0.5 570s 21

5 358 437 15 15 0.2 0.0 0.0 0.3 0.5 594s 20

5 301 437 20 15 0.2 0.0 0.0 0.3 0.5 583s 21

5 285 437 25 15 0.2 0.0 0.0 0.3 0.5 584s 21

5 258 437 30 15 0.2 0.0 0.0 0.3 0.5 570s 21

5 241 437 15 20 0.2 0.0 0.0 0.3 0.5 596s 20

5 207 437 20 20 0.2 0.0 0.0 0.3 0.5 585s 21

5 196 437 25 20 0.2 0.0 0.0 0.3 0.5 582s 21

5 191 437 30 20 0.2 0.0 0.0 0.3 0.5 575s 21

5 16 21 437 15 5 0.3 0.0 0.0 0.2 0.5 685s 18

5 1554 437 20 5 0.3 0.0 0.0 0.2 0.5 672s 18

5 1493 437 25 5 0.3 0.0 0.0 0.2 0.5 658s 18

5 1364 437 30 5 0.3 0.0 0.0 0.2 0.5 619s 20

5 641 437 15 10 0.3 0.0 0.0 0.2 0.5 604s 20

5 553 437 20 10 0.3 0.0 0.0 0.2 0.5 572s 21

Apêndice B 136

5 541 437 25 10 0.3 0.0 0.0 0.2 0.5 582s 21

5 462 437 30 10 0.3 0.0 0.0 0.2 0.5 561s 22

5 358 437 15 15 0.3 0.0 0.0 0.2 0.5 564s 22

5 299 437 20 15 0.3 0.0 0.0 0.2 0.5 556s 22

5 283 437 25 15 0.3 0.0 0.0 0.2 0.5 553s 22

5 258 437 30 15 0.3 0.0 0.0 0.2 0.5 540s 23

5 240 437 15 20 0.3 0.0 0.0 0.2 0.5 565s 22

5 206 437 20 20 0.3 0.0 0.0 0.2 0.5 558s 22

5 195 437 25 20 0.3 0.0 0.0 0.2 0.5 554s 22

5 190 437 30 20 0.3 0.0 0.0 0.2 0.5 548s 22

5 1558 437 15 5 0.1 0.0 0.0 0.2 0.7 613s 20

5 1498 437 20 5 0.1 0.0 0.0 0.2 0.7 599s 20

5 1433 437 25 5 0.1 0.0 0.0 0.2 0.7 593s 21

5 1298 437 30 5 0.1 0.0 0.0 0.2 0.7 573s 21

5 6 21 437 15 10 0.1 0.0 0.0 0.2 0.7 572s 21

5 541 437 20 10 0.1 0.0 0.0 0.2 0.7 560s 22

5 525 437 25 10 0.1 0.0 0.0 0.2 0.7 559s 22

5 455 437 30 10 0.1 0.0 0.0 0.2 0.7 537s 23

5 344 437 15 15 0.1 0.0 0.0 0.2 0.7 562s 22

5 288 437 20 15 0.1 0.0 0.0 0.2 0.7 554s 22

5 272 437 25 15 0.1 0.0 0.0 0.2 0.7 554s 22

5 251 437 30 15 0.1 0.0 0.0 0.2 0.7 540s 23

5 236 437 15 20 0.1 0.0 0.0 0.2 0.7 569s 21

5 203 437 20 20 0.1 0.0 0.0 0.2 0.7 557s 22

5 192 437 25 20 0.1 0.0 0.0 0.2 0.7 555s 22

5 187 437 30 20 0.1 0.0 0.0 0.2 0.7 547s 22

6 1482 146 15 5 0.2 0.1 0.1 0.1 0.5 335s 18

6 1078 146 20 5 0.2 0.1 0.1 0.1 0.5 312s 19

6 878 146 25 5 0.2 0.1 0.1 0.1 0.5 299s 20

6 783 146 30 5 0.2 0.1 0.1 0.1 0.5 290s 21

6 546 146 15 10 0.2 0.1 0.1 0.1 0.5 315s 19

6 438 146 20 10 0.2 0.1 0.1 0.1 0.5 309s 20

6 351 146 25 10 0.2 0.1 0.1 0.1 0.5 295s 21

6 298 146 30 10 0.2 0.1 0.1 0.1 0.5 283s 22

6 280 146 15 15 0.2 0.1 0.1 0.1 0.5 312s 19

6 242 146 20 15 0.2 0.1 0.1 0.1 0.5 299s 20

Apêndice B 137

6 189 146 25 15 0.2 0.1 0.1 0.1 0.5 295s 21

6 161 146 30 15 0.2 0.1 0.1 0.1 0.5 282s 22

6 202 146 15 20 0.2 0.1 0.1 0.1 0.5 310s 20

6 170 146 20 20 0.2 0.1 0.1 0.1 0.5 298s 20

6 140 146 25 20 0.2 0.1 0.1 0.1 0.5 287s 21

6 127 146 30 20 0.2 0.1 0.1 0.1 0.5 281s 22

6 1544 146 15 5 0.2 0.1 0.1 0.2 0.4 334s 18

6 1117 146 20 5 0.2 0.1 0.1 0.2 0.4 313s 19

6 9 19 146 25 5 0.2 0.1 0.1 0.2 0.4 300s 20

6 8 21 146 30 5 0.2 0.1 0.1 0.2 0.4 292s 21

6 578 146 15 10 0.2 0.1 0.1 0.2 0.4 316s 19

6 476 146 20 10 0.2 0.1 0.1 0.2 0.4 303s 20

6 372 146 25 10 0.2 0.1 0.1 0.2 0.4 290s 21

6 311 146 30 10 0.2 0.1 0.1 0.2 0.4 284s 21

6 293 146 15 15 0.2 0.1 0.1 0.2 0.4 312s 19

6 252 146 20 15 0.2 0.1 0.1 0.2 0.4 301s 20

6 199 146 25 15 0.2 0.1 0.1 0.2 0.4 290s 21

6 168 146 30 15 0.2 0.1 0.1 0.2 0.4 295s 21

6 2 21 146 15 20 0.2 0.1 0.1 0.2 0.4 307s 20

6 188 146 20 20 0.2 0.1 0.1 0.2 0.4 297s 20

6 149 146 25 20 0.2 0.1 0.1 0.2 0.4 288s 21

6 135 146 30 20 0.2 0.1 0.1 0.2 0.4 279s 22

6 1454 146 15 5 0.1 0.1 0.1 0.2 0.5 344s 18

6 1058 146 20 5 0.1 0.1 0.1 0.2 0.5 321s 19

6 870 146 25 5 0.1 0.1 0.1 0.2 0.5 305s 20

6 783 146 30 5 0.1 0.1 0.1 0.2 0.5 295s 21

6 550 146 15 10 0.1 0.1 0.1 0.2 0.5 328s 18

6 447 146 20 10 0.1 0.1 0.1 0.2 0.5 310s 20

6 349 146 25 10 0.1 0.1 0.1 0.2 0.5 298s 20

6 304 146 30 10 0.1 0.1 0.1 0.2 0.5 288s 21

6 284 146 15 15 0.1 0.1 0.1 0.2 0.5 329s 18

6 244 146 20 15 0.1 0.1 0.1 0.2 0.5 316s 19

6 190 146 25 15 0.1 0.1 0.1 0.2 0.5 302s 20

6 162 146 30 15 0.1 0.1 0.1 0.2 0.5 294s 21

6 208 146 15 20 0.1 0.1 0.1 0.2 0.5 309s 20

6 175 146 20 20 0.1 0.1 0.1 0.2 0.5 299s 20

Apêndice B 138

6 141 146 25 20 0.1 0.1 0.1 0.2 0.5 289s 21

6 128 146 30 20 0.1 0.1 0.1 0.2 0.5 280s 22

6 1501 146 15 5 0.2 0.0 0.0 0.3 0.5 349s 17

6 1098 146 20 5 0.2 0.0 0.0 0.3 0.5 324s 19

6 904 146 25 5 0.2 0.0 0.0 0.3 0.5 304s 20

6 563 146 30 5 0.2 0.0 0.0 0.3 0.5 225s 21