Sincronização Temporal em Redes de Sensores Móveis Baseada
Transcrição
Sincronização Temporal em Redes de Sensores Móveis Baseada
Darlan Nunes de Brito Sincronização Temporal em Redes de Sensores Móveis Baseada em Análise de Sequência de Imagens Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de Educação Tecnológica de Minas Gerais, como requisito parcial à obtenção do título de Mestre em Modelagem Matemática e Computacional. Orientador: Prof. Dr. Flávio Luis Cardeal Pádua Centro Federal de Educação Tecnológica de Minas Gerais M ESTRADO EM M ODELAGEM M ATEMÁTICA E C OMPUTACIONAL C ENTRO F EDERAL DE E DUCAÇÃO T ECNOLÓGICA DE M INAS G ERAIS D IRETORIA DE P ESQUISA E P ÓS -G RADUAÇÃO Belo Horizonte – MG Outubro de 2008 Resumo Esta dissertação de mestrado aborda o problema de se estimar a sincronização temporal entre sensores móveis distribuídos em uma rede ad hoc sem fio, por meio do uso de técnicas de análise de sequências de imagens. Diferentemente dos métodos existentes, os quais frequentemente se baseiam na ampla adaptação de algoritmos originalmente projetados para redes com topologias estáticas, ou ainda no desenvolvimento de soluções de hardware e/ou software especialmente projetadas para redes de sensores móveis, mas que levam a significativos consumos de energia e apresentam baixa escalabilidade quanto ao número de sensores, esta dissertação de mestrado propõe uma nova abordagem, potencialmente mais eficiente, a qual é baseada na análise de sequências de imagens da dinâmica da cena monitorada pelos sensores. Esta abordagem propõe que se reduza o problema de sincronizar um número genérico N de sensores heterogêneos ao problema de estimar uma reta em ℜN+1 . Esta reta captura todas as relações temporais entre os dados dos N sensores distribuídos na cena e o vídeo da câmera responsável pela visualização dos mesmos. Mediante o uso da abordagem desenvolvida neste trabalho, é possível projetar redes de sensores que adquiram um conteúdo de informação mais amplo do ambiente, bem como minimizar a energia gasta por eventuais processamentos de dados de sincronização nos nós sensoriais ou ainda na transmissão de tais dados pela rede. O presente trabalho contempla a realização de simulações computacionais e a validação da técnica de sincronização com dados reais obtidos por meio de câmeras instaladas no ambiente de interesse bem como sensores instalados em robôs móveis, tais como GPS (Global Positioning System), sonares, acelerômetros e sensores de profundidade. PALAVRAS-CHAVE: Redes de sensores móveis, sincronização temporal, rastreamento visual de objetos, calibração de câmeras, Random Sample Consensus. Abstract This work addresses the problem of estimating the temporal synchronization in sensor networks, by using image sequence analysis of scene dynamics. Unlike existing methods, which are frequently based on adaptations of techniques originally designed for wired networks with static topologies, or even based on solutions specially designed for ad hoc wireless sensor networks, but that have a high energy consumption and a low scalability regarding the number of sensors, this work proposes a novel approach that reduces the problem of synchronizing a general number N of sensors to the robust estimation of a single line in RN+1 . This line captures all temporal relations between the sensors and can be computed without any prior knowledge of these relations. Experimental results show that our method can be successfully used to determine the temporal alignment in wireless sensor networks. KEY–WORDS: Mobile Sensors Network, Temporal Alignment, visual object tracking, Camera Calibration, Random Sample Consensus Lista de Abreviaturas e Siglas ABNT Associação Brasileira de Normas Técnicas GPSI Grupo de Pesquisas em Sistemas Inteligentes NTP Network Time Protocol RSSF Rede de Sensores Sem Fio RBS Reference-Broadcast Synchronization TDP Time Diffusion Protocol LAN Local área network E-RBS Efficient Reference Broadcast Synchronization TPSN Time Synchronization Protocol for sensor networks FTPS Flooding Time Synchronization Protocol NASA North America Spatial Agency COA College of Atlantic UFMG Universidade Federal de Minas Gerais RANSAC Random Sample Consensus pixels picture elements Sumário Lista de Figuras 1 INTRODUÇÃO p. 16 1.1 Motivação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 20 1.1.1 Monitoração de Habitat . . . . . . . . . . . . . . . . . . . . . . p. 20 1.1.2 Agricultura de Precisão . . . . . . . . . . . . . . . . . . . . . . p. 22 1.1.3 Monitoração de construções . . . . . . . . . . . . . . . . . . . p. 25 1.2 Abordagem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 26 1.3 Objetivos: Geral e Específicos . . . . . . . . . . . . . . . . . . . . . . p. 28 1.4 Contribuições . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 29 1.5 Organização do texto . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 30 2 TRABALHOS RELACIONADOS p. 32 2.1 NTP - Network Time Protocol . . . . . . . . . . . . . . . . . . . . . . . p. 32 2.2 TDP - Time-Diffusion Protocol . . . . . . . . . . . . . . . . . . . . . . p. 34 2.3 Algoritmos Mini-sync e Tiny-sync . . . . . . . . . . . . . . . . . . . . . p. 38 2.3.1 Descrição do algoritmo . . . . . . . . . . . . . . . . . . . . . . p. 39 2.3.2 Processamento de dados nos protocolos Tiny-sync e Mini-sync p. 42 2.4 Soluções específicas para RSSF . . . . . . . . . . . . . . . . . . . . . p. 44 2.5 RBS - Reference Broadcast Synchronization . . . . . . . . . . . . . . p. 44 2.6 E-RBS - Eficient RBS . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 47 2.7 FTPS - Flooding Time Synchronization Protocol p. 48 . . . . . . . . . . . . 2.8 TPSN - Time Synchronization Protocol for Sensor Networks . . . . . . p. 49 2.9 Considerações finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 52 3 FUNDAMENTAÇÃO TEÓRICA p. 53 3.1 Sistemas de Processamento de Imagem . . . . . . . . . . . . . . . . p. 53 3.1.1 Passos fundamentais no processamentos de imagens digitais p. 54 3.1.2 Aquisição de imagens digitais . . . . . . . . . . . . . . . . . . . p. 56 3.1.3 Parâmetros das câmeras . . . . . . . . . . . . . . . . . . . . . p. 58 3.2 Calibração de câmeras . . . . . . . . . . . . . . . . . . . . . . . . . . p. 63 3.2.1 Parâmetros diretos de calibração . . . . . . . . . . . . . . . . . p. 63 3.3 Rastreamento de objetos . . . . . . . . . . . . . . . . . . . . . . . . . p. 66 3.3.1 Representação do objeto . . . . . . . . . . . . . . . . . . . . . p. 67 3.3.2 Detecção de objetos . . . . . . . . . . . . . . . . . . . . . . . . p. 68 3.3.3 Rastreamento de pontos . . . . . . . . . . . . . . . . . . . . . p. 71 3.3.4 Rastreamento de núcleo . . . . . . . . . . . . . . . . . . . . . p. 72 3.4 RANSAC - Random Sample Consensus . . . . . . . . . . . . . . . . . p. 73 3.4.1 Avaliação de hipótese . . . . . . . . . . . . . . . . . . . . . . . p. 75 3.4.2 Parâmetros para o RANSAC . . . . . . . . . . . . . . . . . . . p. 75 3.4.3 Eficiência do RANSAC . . . . . . . . . . . . . . . . . . . . . . . p. 76 4 TÉCNICA DE SINCRONIZAÇÃO PROPOSTA p. 77 5 Resultados experimentais p. 87 5.1 Sincronização de Sensores Móveis . . . . . . . . . . . . . . . . . . . . p. 88 5.1.1 Seqüências Sintéticas . . . . . . . . . . . . . . . . . . . . . . . p. 88 5.1.2 Seqüências Reais . . . . . . . . . . . . . . . . . . . . . . . . . p. 91 5.2 Sincronização de Câmeras que não Possuem Sobreposição de Campos de Visão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 92 6 CONCLUSÃO p. 107 6.1 Trabalhos futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 108 Referências Bibliográficas p. 109 Lista de Figuras 1.1 Sugestão de utilização de sensores móveis em uma plantação de alfaces. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 17 1.2 Demonstração do desalinhamento temporal em uma cena composta por dois sensores S1 e S2 visualizados por uma câmera c. Observa-se que os quadros da câmera c e os dados do sensor S1 e S2 possuem um desalinhamento temporal ∆T1 = 149 e ∆T12 = 194 respectivamente. p. 19 1.3 Monitoramento de um ecossistema (1) Sensores da rede sem fio para monitoramento dentro do ninho. (2) Dispositivos de gravação e transmissão dos dados para um nó gateway. (3) Antena transmissora para um notebook na estação de pesquisa. (4)-(5) Estação de pesquisa que possui o link de dados com o satélite. (6)Sistema sugerido para utilização de sensor móvel para monitoramento do ambiente não utilizado pela pesquisa original, (POLASTRE, 2003). . . . . . . . . . . . p. 23 1.4 Montagem de uma cena composta por sensores movimentando-se por uma plantação de soja. . . . . . . . . . . . . . . . . . . . . . . . . p. 24 1.5 Ponte de Akashi Kaikyo no Japão que utiliza monitoramento estrutural para: (1) validar suposições de projeto; (2) detectar anomalias de carga; (3) prover informações de seguranças após desastres naturais; (4)prover informações para manutenção. . . . . . . . . . . . . . . . . p. 25 1.6 Visão geral do cenário considerado pela metodologia proposta neste trabalho. Um câmera de vídeo estática c visualiza um conjunto de sensores móveis S = s1 , . . . , sn . . . . . . . . . . . . . . . . . . . . . . . . p. 28 2.1 Arquitetura do sistema de sincronização utilizando TDP (SU; AKYILDIZ, 2005). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 35 2.2 Esta figura mostra que o protocolo TDP não atua durante todo o tempo para sincronização da RSSF sendo que a sincronização é feita durante um tempo τ segundos por um nó mestre com intervalos de δ segundos (SU; AKYILDIZ, 2005). . . . . . . . . . . . . . . . . . . . . . p. 36 2.3 Arquitetura TDP (SU; AKYILDIZ, 2005). . . . . . . . . . . . . . . . . . p. 37 2.4 Exemplo da comunicação feita com a transmissão de uma mensagem partindo do nó 1 sendo imediatamente retornada pelo nó 2 para o nó 1 contendo o seu tempo local. Cada conjunto de transmissão e recepção deste resulta em um conjunto de dados (t0 ,tb,tr ). . . . . . . p. 41 2.5 Dependência linear e restrições impostas para a12 e b12 para 3 conjuntos de dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 41 2.6 Análise do caminho crítico para um protocolo de sincronização tradicional (a) e RBS (b). (ELSON, 2003) . . . . . . . . . . . . . . . . . . . p. 46 2.7 Gráfico comparativo para os protocolos de comunicação E-RBS e RBS (LEE; YU; KWON, 2006). . . . . . . . . . . . . . . . . . . . . . . p. 48 2.8 Modelo de sincronização para o método TSPN . . . . . . . . . . . . . p. 50 3.1 Passos fundamentais no processamento de imagens (GONZALES; WOODS, 2007). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 54 3.2 (a) Matriz bidimensional que representa uma imagem adquirida por uma câmera digital cuja resolução é de 56 x 46 pixels. (b) Imagem adquirida com uma câmera digital convertida para tons de cinza . . . p. 57 3.3 Esquema de um sistema para a aquisição de imagens digitais (TRUCCO; VERRI, 1998). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 58 3.4 A relação entre os sistemas de eixos coordenados da câmera e do mundo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 60 3.5 Figura do alvo de calibração planar . . . . . . . . . . . . . . . . . . . . p. 64 3.6 Modelo em perspectiva da câmera . . . . . . . . . . . . . . . . . . . . p. 64 3.7 Representação de objetos.(a) Centróide, (b) múltiplos pontos, (c) Caminho retangular, (d) caminho elíptico, (e) Baseado em múltiplas partes, (f) Esqueleto do objeto, (g) contorno do objeto com pontos, (h) Contorno completo do objeto, (i) silhueta do objeto (YILMAZ; JAVED; SHAH, 2006). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 68 3.8 Detecção de objetos utilizando três métodos diferentes (a) Harris, (b) KLT e (c) operadores SIFT . . . . . . . . . . . . . . . . . . . . . . . . p. 69 3.9 Exemplo da metodologia de mistura do modelo gaussiano para subtração de fundo (YILMAZ; JAVED; SHAH, 2006). . . . . . . . . . . . . p. 70 3.10 Segmentação de uma imagem (a), Segmentação por deslocamentomédio (b) e Método de cortes normalizados(c) (YILMAZ; JAVED; SHAH, 2006). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 70 3.11 Figura de rastreamento por correspondência de pontos. (a) Todas as possiblidades de associação de pontos no quadro t − 1 com pontos no quadro t. (b) Conjunto único de associação desenhados com linha negrito, (c) correspondência multiframe . . . . . . . . . . . . . . . . . p. 72 3.12 Resultado do rastreamento on-line usado por Jepson et al. (JEPSON; FLEET; EL-MARAGHI, 2003). (a) A região do alvo em diferentes quadros. (b) A probabilidade do componente estável. Note que as probabilidades em torno da boca e sombrancelha mudam, enquanto eles permanecem a mesma e em outras regiões . . . . . . . . . . . . p. 74 4.1 Visualização de dois sensores móveis na cena de interesse, os quais descrevem trajetórias Q1 (·) e Q2 (·), cujas projeções no plano de imagem da câmera são denotadas por q1 (·) e q2 (·), respectivamente. Sejam q1 (t) e q2 (t) posições instantâneas estimadas pelo rastreador no quadro t. Sejam ainda Q1 (t1) e Q2 (t2 ) duas amostras de posições dos sensores no sistema de coordenadas do mundo, cujas projeções calculadas com o auxílio de uma matriz de projeção P são denotadas por q1 (t1 ) e q2 (t2). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 78 4.2 Figura do robô com uma região de rastreamento no centro de massa em forma de elipse. . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 80 4.3 Exemplo de um espaço de alinhamentos temporais "candidatos"(votos) para dois sensores na cena. Neste caso, tem-se um espaço de 3 dimensões. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 81 5.1 Espaços de votos 2D obtido por meio da simulação para uma cena artificial contendo um único sensor s1 . A trajetória do sensor rastreada na seqüência de vídeo sintética na câmera foi corrompida com um ruído ruído gaussiano branco de média zero e desvio padrão (a)-(c)(e) 5 pixels e (b)-(d)-(f) 10 pixels. A matriz de calibração utilizada em todos os experimentos corresponde à mesma de uma câmera real (modelo Sony DCR-TRV320), com erro em subpixels. Os parâmetros de desalinhamento temporal simulados são α = 3.0 e β = 47 para todas as figuras. Em todos os casos, observamos nos gráficos as retas que recuperam o alinhamento temporal entre o sensor e a câmera, e que levam a erros menores do que (a)-(b) 1 amostra, (c)(d) 3 amostras e (e)-(f) 5 amostras. . . . . . . . . . . . . . . . . . . . . p. 96 5.2 Espaços de votos 3D obtidos para cenas artificiais contendo dois sensores móveis s1 e s2 . A trajetória do sensor rastreado na sequência de vídeo sintética foi corrompida com um ruído ruído gaussiano branco de média zero e desvio padrão (a)-(c)-(e) 5 pixels e (b)-(d)-(f) 10 pixels. A matriz de calibração utilizada em todos os experimentos corresponde à mesma de uma câmera real (modelo Sony DCR-TRV320), com erro em subpixels. Os parâmetros de desalinhamento temporal simulados são α = [1.0 2.0] e β = [46.0 34.0] para todas as figuras. Em todos os casos observamos nos gráficos as retas que recuperam o alinhamento temporal entre o sensor e a câmera, e que levam a erros menores do que (a)-(b) 1 amostra, (c)-(d) 3 amostras e (e)-(f) 5 amostras. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 97 5.3 Percentuais de retas que levam a erros médios de alinhamento temporal menores ou iguais a (a) 1, (b) 3 e (c) 5 amostras para níveis de ruído no sistema de rastreamento de acordo com a Tabela 5.1.1, dada uma cena composta por apenas um sensor s1 e uma matriz de calibração com o erro em subpixels. . . . . . . . . . . . . . . . . . . . p. 98 5.4 Percentuais de retas que levam a erros médios de alinhamento temporal menores ou iguais a (a) 1, (b) 3 e (c) 5 amostras para níveis de ruído no sistema de rastreamento de acordo com a Tabela 5.1 e uma matriz de calibração com erro em subpixels. As curvas em azul e vermelho se referem, respectivamente, à sincronização de um sensor s1 e à sincronização de um sensor s2 com a câmera de referência c, considerando uma cena artificial composta por dois sensores. . . . . p. 99 5.5 Espaços de votos 2D obtidos por meio da simulação para uma cena artificial contendo um único sensor s1 . A trajetória do sensor rastreado na sequência de vídeo sintética foi corrompida com um ruído ruído gaussiano branco de média zero e desvio padrão 2. A matrizes de calibração utilizada em todos os experimentos corresponde à mesma de uma câmera real (modelo Sony DCR-TRV320), adicionado um ruído gaussiano branco de média zero e desvio padrão (a)-(c)-(e) 5 pixels (b)-(d)-(f) 10 pixels. Os parâmetros de desalinhamento temporal simulados são α = 1.0 e β = 32.0 para todas as figuras. Em todos os casos observamos nos gráficos as retas que recuperam o alinhamento temporal entre o sensor e a câmera, e que levam a erros menores do que (a)-(b) 1 amostra, (c)-(d) 3 amostras e (e)-(f) 5 amostras. . . . . . . . p. 100 5.6 Espaços de votos 3D obtidos por meio da simulação de uma cena contendo 2 sensores s1 e s2 . A trajetória do sensor rastreado na sequência de vídeo sintética foi corrompida com um ruído ruído gaussiano branco de média zero e desvio padrão 2 pixels. A matrizes de calibração utilizada em todos os experimentos corresponde à mesma de uma câmera real (modelo Sony DCR-TRV320), adicionado um ruído gaussiano branco de média zero e desvio padrão (a)-(c)-(e) 5 pixels (b)-(d)-(f) 10 pixels. Os parâmetros de desalinhamento temporal simulados são α = [3.0 2.0] e β = [45.0 30.0] para todas as figuras. Em todos os casos observamos nos gráficos as retas que recuperam o alinhamento temporal entre o sensor e a câmera, e que levam a erros menores do que (a)-(b) 1 amostra, (c)-(d) 3 amostras e (e)-(f) 5 amostras. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 101 5.7 Percentuais de retas que levam a erros médios de alinhamento temporal menores ou iguais a (a) 1, (b) 3 e (c) 5 amostras para níveis de ruído no sistema de calibração de acordo com a Tabela 5.1 e um ruído no sistema de rastreamento com desvio padrão igual a 2 pixels, dada uma cena composta por apenas um sensor s1 . . . . . . . . . . . p. 102 5.8 Percentuais de retas que levam a erros médios de alinhamento temporal menores ou iguais a (a) 1, (b) 3 e (c) 5 amostras para níveis de ruído no sistema de calibração de acordo com a Tabela 5.1.1 e o ruído no sistema de rastreamento com desvio padrão igual a 2 pixels. As curvas em azul e vermelho se referem, respectivamente, à sincronização de um sensor s1 e à sincronização de um sensor s2 com a câmera de referência c, considerando uma cena artificial composta por dois sensores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 103 5.9 (a) Cena real monitorada pelo sistema de sincronização. Neste caso, tem-se um único sensor móvel (robô Pioneer 3 AT produzido pela Active Media), cuja trajetória rastreada no vídeo é ilustrada pela curva em vermelho. (b) Espaço de votos e reta que recupera o alinhamento temporal entre o sensor móvel s1 e a câmera c. . . . . . . . . . . . . . p. 104 5.10 Uma cena 3D que é visualizada por N câmeras estacionárias localizadas em diferentes pontos, cujos os campos de visão não são necessariamente sobrepostos. Temos ainda um sensor movendo-se através do campo de visão de todas as câmeras. . . . . . . . . . . . . . . . . p. 104 5.11 (a) Espaço de votos para a câmera c1 e o movimento do sensor s. (b) Espaço de votos para a câmera c2 e o movimento do sensor s. Cada ponto em (a) e (b) representam alinhamentos temporais candidatos. As retas reconstruídas tc2 = 3.9979t2 − 269.8932 e tc2 = 4.0028t2 + 21.6761 descrevem o alinhamento temporal entre o sensor e as câmeras c1 e c2 respectivamente. Para estas equações a nova equação obtida tc2 = 1.011tc1 + 291.8797 que recupera o alinhamento temporal entre as duas seqüências de vídeo. . . . . . . . . . . p. 105 5.12 (a) e (b) Trajetórias dos centróides dos sensores nas câmeras 1 e 2, respectivamente. A trajetória azul foi estimada pelo rastreador WSL (JEPSON; FLEET; EL-MARAGHI, 2003), enquanto a vermelha foi obtida da projeção da trajetória 3D do sensor no plano de imagem, usando as matrizes de projeção determinadas durante o processo de calibração das câmeras. (c) Imagem anterior ao alinhamento foi criado por superposição da banda verde de um quadro t2 com a vermelha e azul do quadro t1 = (t2 − β g )/α g usando os coeficientes de alinhamento α g e β g . (d) Após o alinhamento foi criado trocando a banda verde da imagem com aquela do quadro t1 = (t2 − β e )/α e , com α e , β e determinada por nosso algoritmo. Desvios do alinhamento causam "duas imagem” artificiais . . . . . . . . . . . . . . . . . . . . . p. 106 16 1 INTRODUÇÃO As chamadas Redes de Sensores Sem Fio (RSSF) têm demonstrado seu grande potencial ao trazer cada vez mais novas oportunidades e desafios para diferentes campos do conhecimento (CHEE-YEE; KUMAR, 2003). A nova tecnologia de produção de sensores cada vez menores e com taxas de consumo inferiores a microamperes tem permitido a ciência ir muito mais longe do que se imaginava na década passada. Sensores sem fio têm sido criados para ficarem um longo tempo sem a interferência humana ou até mesmo para que nunca a sofram, como no caso da sonda Spirit que foi enviada pela agência espacial americana NASA à Marte para explorar o planeta. Neste caso, é impossível de realizar substituição da bateria da sonda, mas devido ao custo da missão de envio, é fundamental que a sonda funcione por um longo tempo colhendo o maior número de amostras possível. Esta nova tecnologia tem propiciado surgir questões que antes os cientistas não haviam pensado, obrigando aos desenvolvedores deste tipo de tecnologia pensar não somente em questões de hardware e software mas também em quais são as necessidades dos cientistas para a precisão, regime de amostragem e sincronização dos sensores (ESTRIN, 2007). Estruturalmente, as RSSF são compostas por diversos nós sensores distribuídos espacialmente sobre uma região de interesse, os quais se organizam em uma rede ad hoc sem fio (TILAK; ABU-GHAZALEH; HEINZELMAN, 2002). Os nós sensores possuem capacidade de comunicação, processamento e sensoriamento, sendo dotados de uma fonte de energia limitada, cujo consumo é dependente da aplicação de interesse (PERKINS; CORREAL; O’DEA, 2002). Dentre as diversas aplicações de RSSF, pode-se citar segurança patrimonial, controle de tráfego aéreo, automação industrial, robótica móvel, sistemas militares de monitoramento e agricultura de precisão (CHEEYEE; KUMAR, 2003; POTTIE; KAISER, 2000). Em todas as aplicações de sistemas distribuídos, tais como as citadas acima para RSSF, identifica-se a necessidade de se alinhar temporalmente (sincronizar) os dados adquiridos pelos diversos sensores, ou seja, colocar as amostras das grandezas físicas medidas pelos sensores em uma 1 INTRODUÇÃO 17 Figura 1.1: Sugestão de utilização de sensores móveis em uma plantação de alfaces. única linha do tempo de referência. Naturalmente, sem a existência deste referencial de tempo, não se pode associar ou estabelecer correspondências coerentes temporalmente entre dados de diferentes sensores, o que inviabiliza eventuais análises e tomadas de decisão coordenadas com base na integração ou fusão de tais dados. Vejamos o exemplo da Figura 1.1. Nesta cena temos sensores se movimentando em uma região onde é necessária a determinação de parâmetros como a temperatura ideal para o crescimento das plantas, as condições de umidade relativa do solo e o índice pluviométrico ou intensidade luminosa nas quais as plantas produzem de forma mais eficiente. A análise estatística dos dados adquiridos pelos sensores não é feita pelos próprios nós que têm uma capacidade limitada de processamento, mas sim em equipamentos com maior capacidade como computadores de pequeno ou grande porte dependendo da aplicação. Os dados não são enviados no momento em que são adquiridos pois isto causaria um enorme tráfego de dados na rede, fazendo com que a mesma ficasse congestionada e lenta, ocorrendo a possibilidade de perda de dados. Além disto, este envio periódico de dados causaria um grande consumo de energia. Estima-se que em torno de 17% do consumo total de energia seja gasto para enviar um conjunto de dados pela rede (POLASTRE, 2003). Devido ao grande consumo de bateria utilizado para o envio, estes dados então são armazenados nas memórias internas e posteriormente enviados em grande quantidade para a base de processamento. Neste cenário surge um problema fundamental que consiste em determinar em qual momento (tempo físico), estas medidas ocorreram. Para relacionar 1 INTRODUÇÃO 18 as medidas de dois ou mais sensores diferentes para o tratamento estatístico dos dados é preciso determinar o momento da aquisição. Assim, quando é preciso unir de forma consistente dados de sensores diferentes surge a necessidade de determinar a relação temporal entre as medidas das grandezas. Para isto é preciso que os relógios dos sensores estejam operando com a mesma base de tempo ou que seja possível determinar uma base de tempo externa comum a todos. Tipicamente, o desalinhamento temporal entre diferentes sensores origina-se por duas razões principais. A primeira relaciona-se com o fato de que os sensores utilizados possam apresentar diferentes taxas de amostragem, enquanto a segunda relaciona-se com a existência de um deslocamento temporal entre as sequências de amostras, o qual é criado quando os sensores não são ativados simultaneamente, daí a necessidade de sincronização entre os sensores. Esta sincronização deve ser tão mais rápida quanto a necessidade da aplicação exige. Em um documentário recentemente apresentado em um canal de TV pago (POLASTRE, 2003), foi exibida uma aplicação de uma rede de sensores sem fio em um vinhedo no Canadá onde 65 sensores foram instalados em um acre de terra e enviavam dados de temperatura, umidade e intensidade da luz do sol com uma freqüência igual a 5 minutos, sendo então necessária uma sincronização a cada 5 minutos. Em uma outra aplicação, a estrutura de teste para abalos sísmicos necessita uma sincronização com um tempo de 5ms (PAEK et al., 2006). Com o objetivo de se fazer a sincronização de sensores móveis em uma rede sem fio, este trabalho propõe uma nova metodologia. Especificamente, para a solução deste problema, propõe-se o uso de câmeras que consigam visualizar toda a cena ou parte dela. O problema pesquisado deste trabalho pode ser enunciado como se segue: Dada uma cena 3D contendo N sensores móveis heterogêneos, distribuídos em uma rede ad hoc sem fio, cujos movimentos são monitorados por uma câmera de vídeo calibrada e cujas localizações são conhecidas, deseja-se estimar uma função de N+1 dimensões responsável por capturar as relações temporais entre todos os sensores presentes em tal rede. Para uma melhor compreensão da abordagem proposta neste trabalho, observe a Figura 1.2, a qual considera uma cena composta por apenas dois sensores S1 e S2 e uma câmera c. Os quadros da sequência de vídeo obtida pela câmera c bem como os dados dos sensores S1 e S2 representam informações obtidas no tempo, as 1 INTRODUÇÃO 19 ... ... c 50 0 g1 300 51 t DT1= 149 DT2= 45 s1 … 0 1 2 3 4 5 6 7 200 8 t1 g2 DT12= 194 s2 … 0 1 2 3 4 5 6 7 8 100 t2 Figura 1.2: Demonstração do desalinhamento temporal em uma cena composta por dois sensores S1 e S2 visualizados por uma câmera c. Observa-se que os quadros da câmera c e os dados do sensor S1 e S2 possuem um desalinhamento temporal ∆T1 = 149 e ∆T12 = 194 respectivamente. quais frequentemente encontram-se desalinhadas (não-sincronizadas). Por exemplo, supondo que o quadro 51 da câmera c e as amostras 200 e 6 dos sensores S1 e S2 , respectivamente, correspondem ao mesmo instante de tempo no mundo, diz-se que os quadros da câmera c e os dados do sensor S1 possuem um desalinhamento temporal ∆T1 = 149. Analogamente, os quadros da câmera c e os dados do sensor S2 possuem um desalinhamento ∆T2 = -45 e os dados dos dois sensores possuem um desalinhamento ∆T12 = 194. Os desalinhamentos ∆T1 , ∆T2 e ∆T12 são as incógnitas cujo processo de determinação foi objeto de estudo e pesquisa neste projeto. De posse dos valores destas incógnitas, pode-se descrever completamente as relações temporais entre os sensores. A idéia básica da abordagem deste trabalho consiste em estender a metodologia para alinhamento espaço-temporal de múltiplas sequências de vídeo, desenvolvida por Pádua el. al. (PáDUA, 2005; PáDUA et al., 2004), para o âmbito de elaboração de uma técnica alternativa para o alinhamento temporal de múltiplos sensores heterogêneos em redes sem fio. Neste contexto, a abordagem aqui feita está fundamentada 1.1 Motivação 20 na definição de uma reta de N + 1 dimensões, a qual captura globalmente as relações temporais entre um conjunto de N sensores e uma sequência de vídeo adquirida por uma câmera que visualiza tais sensores em movimento na cena de interesse. Uma propriedade fundamental desta reta é que ainda embora seu conhecimento implique no conhecimento do alinhamento temporal entre os sensores e a câmera, a estimativa de pontos sobre a mesma pode ser realizada sem o conhecimento prévio de tal alinhamento. Utilizando-se esta propriedade como ponto de partida, a abordagem desta dissertação de mestrado reduziu o problema de se estimar o alinhamento temporal entre N sensores para o problema de se estimar de forma robusta uma única reta de N + 1 dimensões a partir de um conjunto de pontos gerados em ℜN+1 . 1.1 Motivação Nesta seção serão descritas três aplicações de RSSFs que tem se tornado de grande importância para a comunidade científica. Um dos exemplos é o monitoramento de habitat que tem ajudado na determinação de condições ótimas da fauna e flora de determinados ecossistemas, com o objetivo de se recuperar espécies em extinção. Outra utilização que tem um futuro promissor é o monitoramento de variáveis envolvidas no processo de agricultura de precisão com o objetivo de aumentar-se a produção das fazendas. Finalmente temos o exemplo de monitoração de construções. Esta monitoração não tem relevância tão grande para a humanidade mas tem utilizado cada vez com maior freqüência as RSSFs para evitar acidentes por desgastes de material ou prevenção para destruição por desastres naturais. 1.1.1 Monitoração de Habitat O monitoramento do meio ambiente representa uma das aplicações para redes de sensores com um enorme potencial de pesquisa para a comunidade científica. Aparelhando o meio ambiente com um grande número de sensores em rede podemos coletar dados em escala e resolução que seriam dificilmente, ou até impossível de se conseguir por meio de outra forma de sensoriamento. Com isto é possível realizar tarefas mais complexas como amostragem estatística, fusão de dados e monitoramento do estado de saúde do ecossistema. A escala temporal das medidas dos sensores deve ser definida pela ordem de grandeza do tempo de mudança dos organismos. 1.1 Motivação 21 Os sensores devem coletar os dados em taxas iguais ou maiores que as condições de mudança do meio que está sendo monitorado. O sistema de análise de dados deve ser capaz de identificar não somente a mudança mas também a duração de eventos. Um exemplo de utilização de rede de sensores para monitoramento de habitat é mostrado por Polastre (POLASTRE, 2003), o qual propõe o monitoramento de pássaros marinhos em uma ilha localizada 15km ao sul de Mount Desert Island chamada Great Duck Island. Nesta ilha há aproximadamente 5000 casais de um pássaro chamado Petrel os quais vivem em três tipos de habitat diferentes. Nesta ilha foi montado um observatório pela escola College of Atlantic(COA) para a observação deste ecossistema. Os pesquisadores de pássaros marinhos buscam responder, principalmente, as seguintes questões: • Qual é a duração dos vários gradientes de temperatura do ambiente? • Quais mudanças ocorrem nos ninhos durante o período reprodutivo? • Quais são os tipos de ninhos que os Petrels selecionam? Quais destas condições produzem um microclima ótimo para o acasalamento, incubação e choca? • Quais são as diferenças no microclima entre as áreas que possuem um grande número de ninhos de Petrel e as áreas que não têm? É muito improvável que qualquer um dos parâmetros medidos pela rede de sensores sem fio irá determinar porque os Petrels escolhem um determinado lugar para fazer seus ninhos. Entretanto os muitos parâmetros medidos pelos sensores podem ajudar a correlacionar os dados que indicam o que leva um pássaro a selecionar um determinado lugar para seus ninhos. Neste exemplo, Polastre (POLASTRE, 2003), com o objetivo de ter uma boa aproximação para o problema, colocou um sensor dentro de cada ninho dos Petrels sendo que alguns ninhos ficaram sem sensor para avaliar o efeito da presença do mesmo. Estes sensores têm que trabalhar de forma sincronizada pois é necessário determinar se algum fator externo provocou a mudança de temperatura dentro do ninho ou a mudança da umidade relativa dentro do ninho. Estando os sensores sincronizados, é possível avaliar se a alteração climática ocorreu em todos os sensores ao mesmo tempo. Esta sincronização poderia ser feita por meio de envio periódico de mensagens mas tem-se um problema com este tipo de sincronização que é o aumento significativo do consumo. 1.1 Motivação Operação Transmissão de um pacote Recepção de pacote Escuta de rádio por 1ms Operação do sensor por 1 amostra analógica Operação do sensor por 1 amostra digital Leitura de uma amostra do ADC Leitura da EEPROM Programar e apagar EEPROM 22 % de consumo de energia 17,37 6,94 1,08 0,94 0,30 0,001 0,96 72,38 Tabela 1.1: Necessidades médias de consumo de energia, para operação do sensor MICA utilizado para monitoração dos ninhos pelo autor da pesquisa.(POLASTRE, 2003) Pela Tabela 1.1 podemos observar que a segunda maior fonte de consumo de energia é a transmissão de pacotes. Caso haja um aumento do tamanho do pacote devido ao envio de dados de sincronização, ocorrerá um aumento significativo no consumo de energia. Caso este pacote precise ser transmitido com uma grande freqüência para se fazer também a sincronização dos sensores teremos uma diminuição considerável no tempo de operação do sensor. A Figura 1.3 mostra como foi instalado o sistema de monitoramento dos ninhos. Como no exemplo da Figura 1.3, sensores móveis podem ser utilizado para monitoração do ecossistema, onde um robô se movimenta fazendo medidas de temperatura, umidade relativa, luz ambiente e entrada e saída dos Petrels no ninho. Para que se consiga tratar de forma estatística os dados das leituras destes sensores é necessário determinar o momento que foi realizada cada medida, necessitando então de uma sincronização entre os sensores pois somente com esta sincronização é possível determinar em qual ninho foi feita a medida e em qual momento, para identificar mudanças em todo o sistema que provocaram mudanças internas. 1.1.2 Agricultura de Precisão A variabilidade dos fatores de produção está associada a múltiplas causas, desde a variabilidade climática até o ambiente em torno de uma única semente (solo, oxigênio, disponibilidade de água e nutrientes etc.) que é depositada no solo. As formas de variabilidade que estão sendo estudadas e manejadas em agricultura de precisão podem ser classificadas em "Variabilidade Espacial” (aquela que ocorre com um atributo na área, por exemplo: variação da concentração de fósforo no solo em uma área de 20 hectares), "Variabilidade Temporal” (aquela que ocorre ao longo do 1.1 Motivação 23 Figura 1.3: Monitoramento de um ecossistema (1) Sensores da rede sem fio para monitoramento dentro do ninho. (2) Dispositivos de gravação e transmissão dos dados para um nó gateway. (3) Antena transmissora para um notebook na estação de pesquisa. (4)-(5) Estação de pesquisa que possui o link de dados com o satélite. (6)Sistema sugerido para utilização de sensor móvel para monitoramento do ambiente não utilizado pela pesquisa original, (POLASTRE, 2003). tempo, por exemplo: disponibilidade de água no solo em função da sazonalidade da precipitação pluvial) e uma terceira que representa a ação do homem nas duas primeiras, chamada "Variabilidade Induzida pelo Manejo” (aquela criada pelas decisões de manejo tomadas nas áreas de cultivo, por exemplo: alocação de culturas e regulagem de máquinas) (PIRES et al., 2004). Esta última ocorre, por exemplo, quando há máquinas desgastadas e desreguladas, sistemas de cultivo diferenciados, partes da lavoura deixadas em pousio por vários anos e deficiência no controle de plantas daninhas (FARNHAM, 2000). Uma das alternativas para se monitorar e controlar estas variáveis consiste na utilização de RSSF. A utilização de RSSF em agricultura ainda é bastante rara (WANG; ZHANG; WANG, 2006), mas com o desenvolvimento de novas técnicas de medida e de novos sensores que possuem um custo menor é possível que este uso cresça muito em breve. Dados para muitas variáveis em agricultura de precisão podem ser obtidas por técnicas de sensoriamento remoto como imagens de satélite, ou fotos de aviões. Mas é essencial que se tenha também medidas diretas. Estas medidas muitas vezes são feitas por equipamentos estacionários como estações meteorológicas ou sensores fixados diretamente na terra. Estas medidas estacionárias oferecem 1.1 Motivação 24 Figura 1.4: Montagem de uma cena composta por sensores movimentando-se por uma plantação de soja. a desvantagem de fornecer informações apenas de variáveis que envolvem toda a plantação como o clima da região e o relevo ou como estão as posições das curvas de nível, por exemplo. Estes dados são muito ruins para prever por exemplo a acidez do solo em cada região da plantação ou a umidade do solo que são variáveis mais localizadas. Para medidas mais precisas como estas temos a utilização de sensores em máquinas que se movimentam pela plantação, como tratores colheitadeiras entre outras. Esta técnica tem a desvantagem de que estas máquinas não estão sempre se movimentando pela plantação e para pequenos agricultores onde o manejo através de maquinário é menor temos que as medidas ficariam bastante prejudicadas. É neste contexto que surge a necessidade de um sistema de monitoração através de sensores móveis utilizados para entender a variabilidade da produção. Uma RSSF pode estar hábil a coletar dados do campo periodicamente e em tempo real, como é o caso para controle de irrigação (CAMILLI et al., 2007). Segundo Wang,Zhang e Wang (2006), podemos classificar as aplicações para agricultura em cinco tipos diferentes: monitoramento do meio ambiente, agricultura de precisão, controle de máquinas e processos, automatização de benfeitorias e sistema de rastreabilidade. Cada uma destas aplicações possui um conjunto de variáveis que devem ser monitoradas e ou controladas pelos sistemas. E muitas destas variáveis como temperatura e quantidade de luz incidente na folha de uma planta não fazem muito sentido se não forem informados os momento nos quais estas variáveis foram medidas, pois estas podem ter sido medidas após a irrigação ou ao amanhecer. Para 1.1 Motivação 25 Figura 1.5: Ponte de Akashi Kaikyo no Japão que utiliza monitoramento estrutural para: (1) validar suposições de projeto; (2) detectar anomalias de carga; (3) prover informações de seguranças após desastres naturais; (4)prover informações para manutenção. avaliação de apenas uma planta, a sincronização não é necessária, mas quando se quer avaliar os dados de produção de duas plantas diferentes, então é necessário que se saiba os momentos que foram adquiridos os dados de cada planta sendo então necessário que se tenha dados de sincronização dos sensores. 1.1.3 Monitoração de construções A monitoração estrutural procura detectar e localizar problemas estruturais em prédios, aviões, navios ou pontes. Esta monitoração é muito complexa, o que faz com que demande muita pesquisa até se tornar um método prático. Além disto, é necessário um grande número de dados para que seja possível fazer alguma previsão utilizando dados de vibração em um terremoto, vento ou passagem de carros (XU et al., 2004). Muitos dos monitoramentos feitos hoje têm utilizado sensores com fio mas o monitoramento por meio desta metodologia é caro e muitas vezes este preço torna inviável o projeto. Uma solução promissora para o problema de monitoramento consiste no uso de RSSF, pois estas oferecem uma solução de fácil instalação reduzindo com isto os custos,e as necessidades de manutenção (PAEK et al., 2006). Assim como em outras aplicações envolvendo redes de sensores sem fio, a monitoração de construções necessita de sensores que possuam o menor consumo de energia possível para que o índice de manutenção com trocas de bateria seja pequeno 1.2 Abordagem 26 e possa reduzir custos. Esta maior preocupação com a manutenção se justifica devido a grande dificuldade de acesso aos locais onde estão os sensores. Para fazer sincronizações com períodos contínuos temos que ocorreria um aumento significativo no consumo de energia. Portanto é fundamental no caso de monitoração estrutural que se tenha um método de sincronização eficiente. Uma importante consideração a fazer em monitoração de construções é a taxa na qual as unidades sensoras fazem a aquisição dos dados. Isto é importante para nos dar uma idéia das necessidades para desempenho em tempo real do sistema. Esta taxa de geração de dados depende da taxa de amostragem que viabiliza amostrar a freqüência fundamental de vibração do sistema. Para estruturas muito grandes, este modo fundamental é da ordem de hertz e então devemos ter uma taxa de amostragem da ordem de dezenas de hertz. Mas quando é necessária uma grande quantidade de sensores, para se realizar a varredura de todos eles seriam necessários uma taxa de amostragem extremamente alta. A maioria dos algoritmos usados para analisar informações de vibração são baseados em procedimentos de análise modal (KOTTAPALLI et al., 2003). Para a análise modal ser feita em uma estrutura é necessário que os dados de vibração obtidos dos diferentes sensores distribuídos na estrutura estejam sincronizados no tempo. A tolerância para erros na sincronização dos dados deve ser da ordem de milisegundos (KOTTAPALLI et al., 2003). Para a monitoração com sensores com fio a sincronização é um problema extremamente fácil de se resolver já que todas as amostragens são feitas por uma central, mas em uma rede de sensores sem fio este problema tornase um grande desafio. Como podemos observar nos exemplos anteriores temos dois principais desafios ainda para a difusão dos métodos de monitoramento que utilizam rede de sensores sem fio que é a sincronização e a diminuição do consumo de energia. Neste contexto este trabalho propõe uma nova metodologia para sincronização de redes de sensores sem fio que seja mais eficiente produzindo com isto taxas de consumo de energia e tráfego de rede menores. 1.2 Abordagem Espera-se que qualquer solução suficientemente genérica para o problema de sincronização temporal entre sensores em uma rede sem fio deva tratar de forma eficaz os seguintes pontos (ELSON; GIROD; ESTRIN, 2002; PALCHAUDHURI; SAHA; 1.2 Abordagem 27 JOHNSON, 2004): • Consumo de energia: o consumo eficiente de energia em RSSF exerce grande impacto na qualidade de sua operação. • Exatidão de sincronização ajustável: protocolos de sincronização tradicionais tentam alcançar o mais alto grau de exatidão possível. Entretanto, observa-se que quanto maior é o grau de exatidão do sistema de sincronização, maior é sua complexidade e seu custo. Portanto, deve-se projetar sistemas nos quais a exatidão da sincronização seja ajustável à demanda da aplicação. • Não-determinismo: RSSF são sistemas dinâmicos com consideráveis taxas de falhas e presença de não-determinismo na operação de seus nós. Neste contexto, o sistema de sincronização projetado deve ser robusto ao comportamento não determinístico dos nós da rede. • Multihop: RSSF possuem múltiplos hops distribuídos em sua rede, os quais costumam se mover segundo trajetórias muitas vezes aleatórias. • Ausência de fontes externas de sincronização: RSSF podem não possuir uma infra-estrutura externa que defina uma referência global de tempo. • Escalabilidade: a eficiência do sistema de sincronização deve ser escalável diante do aumento do número de sensores a serem sincronizados. • Independência da topologia de rede: o sistema de sincronização deve ser robusto às variações na topologia da rede de sensores. • Taxas de amostragem desconhecidas: as taxas de amostragem das grandezas físicas medidas pelos sensores são constantes, desconhecidas e arbitrárias. • Deslocamento temporal arbitrário: o deslocamento temporal entre os dados dos sensores é constante, desconhecido e arbitrário. Especificamente, a técnica a ser pesquisada neste projeto considera um cenário no qual uma câmera estática possa ser adequadamente posicionada no ambiente de forma que a mesma seja capaz de visualizar o conjunto de sensores se movendo na cena durante um intervalo de tempo previamente especificado, como ilustrado na Figura 1.6. Neste cenário, assume-se ainda que a câmera de vídeo utilizada é uma câmera pinhole calibrada. Sendo os parâmetros intrínsecos e extrínsecos 1.3 Objetivos: Geral e Específicos 28 zc c xc s4 s2 zw yc s1 yw s3 ... sn xw Figura 1.6: Visão geral do cenário considerado pela metodologia proposta neste trabalho. Um câmera de vídeo estática c visualiza um conjunto de sensores móveis S = s1 , . . . , sn . desta câmera constantes ao longo do tempo, tem se que a transformação que leva as posições dos sensores no sistema de coordenadas do mundo para o sistema de coordenadas da câmera também será constante. Partindo do pressuposto que os sensores utilizados bem como a câmera de vídeo operam a taxas de amostragem constantes, pode-se relacionar as coordenadas temporais (números dos quadros) na sequência de vídeo da câmera com as coordenadas temporais das amostras da grandeza física medida pelo sensor por meio da seguinte transformação afim unidimensional: t i = αi t + β i (1.1) onde ti é a coordenada temporal da grandeza física medida pelo sensor Si (i = 1,. . . ,N), t é o número do quadro na sequência de vídeo obtida pela câmera de referência c e αi , βi são constantes desconhecidas que representam a dilatação e o deslocamento temporal, respectivamente, entre o sensor Si e a câmera c. Em geral, estas constantes não deverão ser números inteiros. 1.3 Objetivos: Geral e Específicos Pretende-se que este trabalho contribua para o desenvolvimento de Redes de Sensores Móveis dotando-as de uma infra-estrutura mais eficaz, eficiente e robusta às intempéries inerentes aos ambientes de atuação das mesmas. 1.4 Contribuições 29 O produto final deste projeto é a apresentação de uma nova metodologia para sincronização de múltiplos sensores heterogêneos distribuídos em redes ad hoc sem fio, baseada no uso de técnicas de análise de sequências de imagens, cuja implementação e validação foram inicialmente desenvolvidas com o auxílio de simulações computacionais e posteriormente com dados reais obtidos por meio de câmeras instaladas no ambiente de interesse e sensores instalados em robôs móveis, tais como sonares, acelerômetros e sensores de profundidade. Para tanto, foram perseguidos os seguintes objetivos específicos: 1. Desenvolvimento de um software para simular a dinâmica de uma cena 3D composta por um número genérico de sensores heterogêneos móveis, bem como o processo de visualização dos mesmos a partir de uma câmera estática calibrada. 2. Reconstrução das trajetórias dos sensores móveis no sistema de coordenadas do mundo e no plano de imagem da câmera. 3. Extensão da metodologia originalmente desenvolvida por Pádua et al. (PáDUA et al., 2004), para que a mesma seja capaz de gerar espaços de votos a partir das trajetórias dos sensores anteriormente estimadas. 4. Validação do processo de reconstrução da reta que captura as relações temporais entre os sensores utilizando-se os espaços de votos anteriormente calculados, o algoritmo RANSAC e o Método do Mínimos Quadrados. 5. Experimentação e validação da metodologia proposta com dados reais. 1.4 Contribuições A sincronização dos dados adquiridos por múltiplos sensores heterogêneos em redes de sensores móveis é de fundamental importância para diversas aplicações relacionadas com a fusão e/ou integração de tais dados. O desenvolvimento de uma metodologia eficiente para tal fim é uma tarefa crítica para o avanço das pesquisa em redes de sensores e também robótica móvel. Na Universidade Federal de Minas Gerais (UFMG), onde já existem grupos consolidados em tais áreas de pesquisa nos Departamentos de Engenharia Elétrica e Ciência da Computação, tem-se verificado a demanda por esta metodologia em diversos trabalhos. 1.5 Organização do texto 30 Ao propor uma nova metodologia de sincronização baseada na análise de sequências de imagens da cena monitorada por um conjunto de sensores, este projeto abre espaço para importantes esforços de pesquisa conjunta entre laboratórios de renome nacional e internacional da Universidade Federal de Minas Gerais com o Laboratório de Sistemas Inteligentes do Centro Federal de Educação Tecnológica de Minas Gerais. Certamente, a criação e intensificação das interações entre tais laboratórios destas instituições durante a execução deste trabalho contribuirão para diversos projetos conjuntos no futuro. A principal relevância do trabalho para a comunidade científica, que resultou na publicação em um artigo para o congresso SIBIGRAPI, foi sua contribuição para o desenvolvimento da base tecnológica responsável pela criação da tecnologia nacional nas áreas de Redes de Sensores e Visão Computacional. Embora alguns sistemas para sincronização temporal em redes de sensores já tenham sido descritos e implementados, uma solução fechada e comercial para o problema ainda não está disponível no Brasil. Devido a barreiras comerciais impostas sobre os componentes do sistema, já que muitos deles podem ser utilizados na indústria bélica, a execução deste projeto seria de grande contribuição para a comunidade brasileira, já que pode ser um trabalho de apoio para a criação de produtos nacionais. Em relação ao estado da arte da pesquisa na área, este trabalho contribuiu com uma metodologia inovadora, a qual demonstra ser mais eficiente e robusta do que muitos dos trabalhos relacionados. 1.5 Organização do texto Este texto está organizado em 5 capítulos sendo esse o seu primeiro capítulo. No capítulo 2 são apresentados os trabalhos relacionados e discutidas outras metodologias de sincronização temporal em sistemas distribuídos. Neste capítulo ainda é apresentada uma análise crítica destas metodologias, apresentando os pontos negativos de cada uma delas. No capítulo 3 é apresentada a fundamentação teórica desta deste trabalho. Neste capítulo temos uma visão geral sobre aquisição e tratamento de imagens digitais, seguida por uma descrição de como determinar os parâmetros que levam a transformação de um ponto no mundo para o plano de imagem. Este processo é chamado de calibração de câmeras. Apresentamos ainda a descrição do funcionamento de rastreadores de objetos em uma seqüência de vídeo, que trata-se 1.5 Organização do texto 31 de determinar a trajetória de um objeto em pixels na câmera. Por último, temos uma seção para descrever o funcionamento de uma algoritmo simples mas muito robusto para ajuste de modelos baseado em conjuntos de dados com ruído. Este algoritmo é chamado de RANSAC-Random Sample Consensus (FISCHLER; BOLLES, 1987). No capítulo 4 é apresentado em detalhes o algoritmo proposto para solução do problema de sincronização em uma rede de sensores móveis sem fio. Finalmente no capítulo 5 são apresentados e discutidos os resultados obtidos com a metodologia de sincronização desenvolvida. Neste capítulo apresentamos resultados obtido para seqüências sintéticas e uma seqüência real que comprovam a eficiência da técnica de sincronização proposta. Adicionalmente são apresentados resultados da aplicação da metodologia para a sincronização de câmeras que não possuem sobreposição de campos de visão. Finalmente apresentamos as conclusões do trabalho e as direções futuras para a pesquisa. 32 2 TRABALHOS RELACIONADOS Diversas metodologias para sincronização temporal em sistemas distribuídos tem sido propostas ao longo das três últimas décadas, sendo algumas delas responsáveis por significativos avanços na concepção de tais sistemas (GANERIWAL et al., 2005; PALCHAUDHURI; SAHA; JOHNSON, 2004; SICHITIU; VEERARITTIPHAN, 2003; ELSON; ESTRIN, 2001; MILLS, 1994, 1989). Grande parte destas metodologias foram originalmente concebidas para redes de computadores tradicionais como a Internet e possuem algumas características em comum, tais como: uso de um protocolo de mensagens sem conexão, uso de servidores que enviam periodicamente mensagens para clientes contendo seus sinais atuais de clock e uso de técnicas para minimizar os efeitos negativos do não-determinismo na fase de entrega e processamento das mensagens. Um deste protocolos é o que veremos na próxima seção, o NTP. Este protocolo é bastante utilizado em redes com topologias estáticas e internet e vem sofrendo algumas adaptações para ser utilizado em redes de sensores sem fio. 2.1 NTP - Network Time Protocol O protocolo NTP consiste de uma rede de servidores primário e secundário, clientes e um caminho de interconexão. Um servidor primário é sincronizado diretamente por uma fonte de referência, usualmente um servidor sincronizado com um relógio atômico. Um servidor de tempo secundário recebe esta sincronização, possivelmente através de outros servidores primários utilizando o protocolo NTP. Um servidor secundário de tempo propaga sua sincronização, possivelmente via outros servidores secundários, de um servidor primário por toda a rede, possivelmente compartilhada para outros serviços. Em circunstâncias normais a sincronização do clock é determinada usando apenas o mais exato e confiável servidor e um canal físico de transmissão. A rede que será sincronizada assume uma configuração hierárquica com a fonte de referência primária na raiz e decrementando a precisão com o aumento dos níveis 2.1 NTP - Network Time Protocol 33 (MILLS, 1994). Este método é um exemplo de protocolo utilizado em redes com topologias estáticas como a Internet. Ao longo das décadas, muitas transformações neste tipo de protocolo têm sido propostas mas todas elas baseiam-se na troca de mensagens sem conexão. Um servidor envia o seu clock local para as estações que, com base neste clock, sincroniza seu relógio local. Há uma enorme quantidade de literatura sobre adaptações neste protocolo com pequenas diferenças para melhoria na precisão da sincronização, por meio da utilização de métodos heurísticos ou estatísticos. Neste método é necessário um relógio com uma estabilidade excepcional dos osciladores locais para prover um tempo exato quando a sincronização com o servidor primário falha. Isto acaba se tornando mais um fator que associado a outros como o tráfego constante de dados na rede para sincronização diminuem o desempenho do sistema. Como citado anteriormente, a precisão destes relógios não é muito grande. Em sistemas, como a Internet onde não se necessita uma exatidão muito grande estes sistemas são bastante úteis. O protocolo NTP tem sido bastante utilizado para sincronização em redes onde não se tem necessidades como as de uma RSSF. A grande desvantagem dos métodos de sincronização que utilizam este protocolo é o fato de necessitarem de uma constante troca de mensagem fazendo com que aumente consideravelmente o fluxo de dados na rede. Para uma rede de sensores sem fio contendo um grande número de nós haveria uma grande quantidade de dados tornando a rede muito lenta. Um exemplo de adaptação do protocolo NTP para aplicação em RSSF é dado por Cristian (CRISTIAN, 2005) onde o autor propõe um método onde são realizadas várias trocas de mensagem entre o servidor e o cliente fazendo com que diminua consideravelmente o não-determinismo causado pelo tratamento das mensagens nos nós da rede. Além disso, com estas trocas constantes é possível determinar estatisticamente o tempo que os dados levam para ir do transmissor ao receptor. Especificamente, no âmbito do desenvolvimento de metodologias para sincronização temporal em RSSF, a tentativa de adaptações em soluções clássicas como as anteriormente citadas, têm-se mostrado bastante insatisfatórias. Diversas são as razões para o insucesso em adaptações como estas, tais como: uso do tempo lógico (LAMPORT, 1978) como referência ao invés do tempo físico que efetivamente relaciona eventos no mundo real, adoção de estratégias que consomem grande quantidade de energia tanto na transmissão como na recepção de mensagens e uso de conheci- 2.2 TDP - Time-Diffusion Protocol 34 mento a-priori sobre a topologia da rede para o estabelecimento de algumas operações de sincronização, o que pode ser altamente ineficaz diante da alta variabilidade a que está sujeita a topologia de uma RSSF. 2.2 TDP - Time-Diffusion Protocol Um dos exemplos de adaptações no protocolo NTP é o TDP. Neste protocolo, um servidor transmite mensagens sem conexão para toda a rede. Assim como no protocolo NTP ocorre a formação de níveis, e cada nível possui um nó que é o nó raiz, responsável por retransmitir a sincronização feita por um nó raiz do nível superior. Nós do tipo raiz podem sofre falhas ou até mesmo terminarem a vida útil de sua bateria. O protocolo TDP auto-configura e auto-organiza para novos endereços o freqüente particionamento da rede causado por falhas nos nós sensores. Além do mais, o TDP não depende de qualquer nó em particular, e os nós podem ser apenas por um tempo server/master e depois se tornarem nós clientes. Dessa forma o trabalho de sincronização da rede pode ser dividido para todos os nós. O TDP é utilizado em dois casos: • Com servidores precisos: Toda arquitetura do sistema interagindo com o TDP é mostrado na Figura 2.1. O principal objetivo do TDP é ajustar o clock dos nós sensores em toda a rede para operar com a mesma base de tempo. Os sinks são hardwares específicos, que podem atuar como servidores precisos de tempo para os nós sensores localizados no "campo de sensores". Eles podem enviar em broadcast um tempo de referência para todos os nós master na rede de sensores; nós master são nós sensores escolhidos aleatoriamente para sincronizar seus nós vizinhos. Os nós master usam a referência de tempo recebida para sincronizar seus nós vizinhos usando TDP. Essencialmente, a base de tempo da rede de sensores é determinada por meio do tempo enviado pelo sink. • Sem servidores de tempo precisos: Embora o TDP possa ser usado com um servidor de tempo preciso, é muito importante discutir sobre a natureza autônoma do TDP já que a conexão para todos os nós masters pode não ser possível. Além do mais, a rede de sensores pode ser empregada em áreas que podem não ser acessadas pelos sinks por um longo período de tempo. Consequentemente, os sinks não podem ser usados como servidores de tempo; a natureza autônoma do TDP permite que nós sensores operem na mesma base 2.2 TDP - Time-Diffusion Protocol 35 Figura 2.1: Arquitetura do sistema de sincronização utilizando TDP (SU; AKYILDIZ, 2005). de tempo que é dependente de um nó master utilizando uma base de tempo conseguida através da internet Coordinated Universal Time - UTC. Mesmo que os sensores da rede operem na mesma base de tempo, ainda pode haver uma flutuação (nós sensores que diferem da base de tempo dos servidores primários) através da rede de sensores. É necessário traduzir o tempo da rede de sensores para um tempo comum, UTC, usado pelos usuários. O sink como mostrado na Figura 2.1, assim como o Time Translation Algorithm, é responsável por esta tradução do tempo do mundo físico para a rede de sensores. Além do mais, ele serve como interface para a rede de sensores e sincronizam o tempo dos servidores utilizando NTP. A temporização utilizada na aplicação do TDP é ilustrado na Figura 2.2. Durante o período ativo, os nós master são reeleitos a cada τ segundos, este é um parâmetro que depende do tipo da rede de sensores. O nó master envia uma mensagem de broadcast com informações sobre o seu tempo para seus nós vizinhos que utilizam este tempo para ajustar os seus relógios. Os nós vizinhos auto determinam para tornarem-se nó líder que difunde o tempo para seus vizinhos que é recebido dos próximos broadcast. O nó master repete este processo todo δ segundo como mostrado na Figura 2.2. A duração do período ativo do TDP depende da faixa das variações do tempo permitida através da rede de sensores. Por outro lado, o período inativo depende do tamanho da dilatação temporal entre os nós da rede. O período ativo e inativo são parâmetros que podem ser determinados para diferentes tipos de rede de sensores. 2.2 TDP - Time-Diffusion Protocol 36 Figura 2.2: Esta figura mostra que o protocolo TDP não atua durante todo o tempo para sincronização da RSSF sendo que a sincronização é feita durante um tempo τ segundos por um nó mestre com intervalos de δ segundos (SU; AKYILDIZ, 2005). A arquitetura TDP consiste de muitos algoritmos e procedimentos como mostrado na Figura 2.3 apresentada pelo autor do método. Os algoritmos e procedimentos mostrados na Figura 2.3 são usados de forma autônoma para sincronizar os nós, remover clocks que estão fora da base de tempo dos seus vizinhos, e balancear a carga necessária para sincronização ao longo da rede dos nós sensores. Inicialmente, os nós sensores podem receber um pulso de inicialização do sink através de um broadcast por toda a rede. Então eles se autodeterminam nós masters, com eleição/reeleição do nó master/difusor pelo procedimento ERP, que consiste de um algoritmo de isolação de nós que diferem dos outros nós da rede chamado de false ticker isolation algorithm (FIA) e load distribution algorithm (LDA). No final do procedimento de ERP, o nó master eleito começa um procedimento de peer evaluation procedure-PEP enquanto os outros nós da rede não fazem nada. O procedimento PEP ajuda a remover os nós que diferem na base de tempo dos nós vizinhos do nó master ou do nó líder. Após o procedimento PEP, os nós masters eleitos ( identificados como W na Figura 2.3) começam o procedimento de time diffusion procedure (TDP), onde eles difundem mensagens com seus tempos a cada δ segundos por um período de τ segundos. Cada nó vizinho recebe estas mensagens e se auto-determinam nó líder difusor usando o procedimento de ERP. Além do mais, todos os nós vizinhos ajustam seus relógios usando o algoritmo de ajuste de tempo (time adjustment algorithm-TAA) e o 2.2 TDP - Time-Diffusion Protocol Figura 2.3: Arquitetura TDP (SU; AKYILDIZ, 2005). 37 2.3 Algoritmos Mini-sync e Tiny-sync 38 algoritmo de disciplina do clock (colck discipline algorithm-CDA) após esperar por δ segundos. O nó líder difusor eleito transmitirá mensagens com seu clock para os nós que se encontram na sua vizinhança e para nós no raio que é possível que ele faça broadcast. Note que estas informações do relógio local são difundidas por cada nó líder difusor para n hops de um nó master, onde cada hop representa um nível do nó master. Este processo de difusão habilita todos os nós serem sincronizados de forma autônoma. Além do mais, os nós master são reeleitos a cada τ segundos usando o procedimento de ERP, que é repetido por θ − 1 vezes, onde θ τ é igual ao tamanho do período ativo do TDP. Este algoritmo permite que os nós da rede sejam sincronizados de forma a toda a rede operar em torno de um tempo padrão. No entanto, não leva em consideração o tempo utilizado para que a mensagem vá de um nó para outro chamado de tempo de propagação da mensagem. Isto faz com que a precisão seja diminuída com a distância dos nós ao nó master. Outro problema que diminui consideravelmente a precisão é o fato de algoritmo desconsiderar o tempo de construção da mensagem nos nós master que é determinístico mas que para o algoritmo deve ser considerado já que ocorre a transmissão de uma referência absoluta de tempo. Então, para redes com grande necessidade de precisão este algoritmo não poderia ser utilizado. Outro grande problema da utilização deste algoritmo para sincronização de redes de sensores sem fio se deve ao fato de ser um algoritmo extremamente complicado e com um excesso de procedimentos que são executados tantos nos nós clientes como nos master o que aumenta consideravelmente o consumo de energia que é extremamente crítico neste tipo de aplicação. 2.3 Algoritmos Mini-sync e Tiny-sync Em (SICHITIU; VEERARITTIPHAN, 2003), os autores apresentam um algoritmo de sincronização para o deslocamento e dilatação temporal entre nós sensores. Devido a imprevisibilidade e imperfeição das mensagens em uma rede, a sincronização de clock físico é sempre imperfeita como podemos observar no protocolo TDP apresentado na seção anterior. Na tentativa de solucionar este problema Sichitiu et al. apresentam dois algoritmos apropriados para sincronização de dois nós da RSSF, um deles chamado mini-sync e o outro chamado tiny-sync. As principais características 2.3 Algoritmos Mini-sync e Tiny-sync 39 destes algoritmos são: • Drift awareness: o algoritmo não somente considera dilatação temporal entre os nós sensores, mas também encontra os ajustes da dilatação que permitem a correção. • Tight bounds on the precision: utilização de saltos determinísticos para calcular o deslocamento e a dilatação temporal. Através destas informações absolutas pode-se deduzir a ordenação de eventos simultâneos. • Exatidão: considerando-se a incerteza devido ao tempo de propagação da mensagem, a precisão da sincronização obtida pelo método deverá ser arbitrariamente boa. • Baixa complexidade de tempo e espaço: os nós da RSSF possuem características de baixa capacidade computacional com uma quantidade de memória RAM pequena. Ambos os algoritmos têm baixa complexidade computacional e necessitam de uma pequena quantidade de memória RAM para operar. • Robustez a erros de comunicação: a comunicação sem fio é notoriamente sujeita a erro de comunicação, e então nem todas as mensagens são recebidas corretamente. Estes algoritmos então trabalham bem, mesmo quando uma grande porcentagem de mensagens são perdidas. O método proposto por Sichitiu et al. contribuiu consideravelmente para o desenvolvimento de um algoritmo simples que fornece informações exatas sobre deslocamento e a dilatação temporal aliado a um forte caráter determinístico. Estas propriedades são altamente desejáveis em uma RSSF. 2.3.1 Descrição do algoritmo Considere dois nós em uma RSSF chamados de nó 1 e 2, com seus clocks t1 (t) e t2(t) respectivamente, onde t é a coordenada universal de tempo (UTC). Em geral o hardware do relógio do nó i é uma função monotônica não decrescente no tempo t. Na prática, um oscilador de quartzo é usado para gerar a referência de tempo real. A freqüência dos osciladores dependem das condições do ambiente, mas 2.3 Algoritmos Mini-sync e Tiny-sync 40 em períodos relativamente grande de tempo pode ser considerado que possuem uma boa exatidão. Para uma freqüência do oscilador fixa, tem-se que: t i = ai t + bi , (2.1) onde ai é a dilatação temporal do nó i, bi o deslocamento temporal, t é a coordenada universal de tempo UTC e ti o tempo registrado pelo nó. Em geral, ai e bi serão diferentes para cada nó e aproximadamente constantes por um grande período de tempo. Considerando o exemplo onde temos dois nós 1 e 2 e a equação 2.1, podemos concluir que t1 e t2 são linearmente dependentes, sendo: t1(t) = a12t2 (t) + b12. (2.2) Estes parâmetros a12 e b12 representam a dilatação e a deslocamento relativos entre os dois clocks respectivamente. Em um exemplo onde os dois clocks estão perfeitamente sincronizados, a dilatação relativa é igual a 1 e o deslocamento é igual a zero. Vamos considerar que o nó 1 tenha condições de hardware para determinar a relação entre t1 e t2. O nó 1 envia uma mensagem de prova para o nó 2. A mensagem de prova contém o instante de tempo t0 que é o tempo do relógio do sensor exatamente antes ao envio. O nó 2 imediatamente após receber esta mensagem registra o seu tempo local tb e envia uma mensagem para o transmissor,nó 1, contendo este tempo. O nó 1 então novamente registra o tempo tr que ele recebeu esta resposta do nó 2. A Figura 2.4 representa esta troca de mensagens. As três referências de tempo (t0,tb ,tr ) podem ser utilizadas para determinar os valores a12 e b12 na Equação 2.2. Então como t0 acontece antes de tb que acontece antes de tr , as seguintes desigualdades se mantém: t0(t) < a12t + b12 , (2.3) tr (t) > a12t + b12 . (2.4) As medidas descritas acima serão repetidas por muitas vezes e cada conjunto de dados fornecerá um ponto em um gráfico como aquele da Figura 2.5. Cada conjunto pode ser representado por 2 restrições no sistema de coordenadas 2.3 Algoritmos Mini-sync e Tiny-sync 41 Figura 2.4: Exemplo da comunicação feita com a transmissão de uma mensagem partindo do nó 1 sendo imediatamente retornada pelo nó 2 para o nó 1 contendo o seu tempo local. Cada conjunto de transmissão e recepção deste resulta em um conjunto de dados (t0 ,tb ,tr ). Figura 2.5: Dependência linear e restrições impostas para a12 e b12 para 3 conjuntos de dados . 2.3 Algoritmos Mini-sync e Tiny-sync 42 dada pelo clock local dos dois nós t1 e t2. Uma restrição é (tb ,t0 ) e a outra é (tb ,tr ). As desigualdades 2.3 e 2.4 graficamente requerem que a reta modelada pela Equação 2.1 seja posicionada entre as duas restrições de cada conjunto de dados. Os valores exatos de a12 e b12 não pode ser exatamente determinados já que o tempo de espera entre as mensagens é desconhecido. Mas a12 e b12 podem ser relacionados: a12 ≤ a12 ≤ a12 , (2.5) b12 ≤ b12 ≤ b12 . (2.6) Onde a12 , a12 , b12 e b12 são, respectivamente as dilatações e os deslocamentos temporais mínimas e máximas das retas de alinhamento entre os sensores 1 e 3. Nem todas as combinações de a12 e b12 satisfazem as equações 2.5 e 2.6 e são validas, mas todas as combinações válidas satisfazem as Equações 2.5 e 2.6. Os parâmetros a12 e b12 podem ser estimados como a seguir: ∆a12 , 2 ∆b12 , b12 = bc 12 ± 2 a12 = ac 12 ± onde ac 12 = (2.7) (2.8) a12 +a12 , 2 ∆a12 = a12 − a12 , bc 12 = b12 +b12 , 2 ∆b12 = b12 − b12 , Uma vez estimado a12 e b12 , o nó 1 pode ser sempre ajustado lendo o clock local, e usando a Equação 2.2 para ter as leituras corretas do nó 2. 2.3.2 Processamento de dados nos protocolos Tiny-sync e Minisync Após obter os dados como descrito anteriormente, a dilatação e o deslocamento podem ser estimados usando as desigualdades 2.3 e 2.4. Uma solução para encontrar o valor ótimo no deslocamento e dilatação envolve resolver dois problemas de programação linear com ambas desigualdades dos muitos pontos adquiridos como descrito 2.3 Algoritmos Mini-sync e Tiny-sync 43 anteriormente. A desvantagem deste método é que, como mais e mais dados são obtidos, os custos computacionais de tempo e espaço aumentam. Além disso, o número de dados obtidos irá influenciar diretamente na qualidade da previsão feita para o deslocamento e a dilatação temporal. Sabe-se que os métodos de otimização devem ter uma complexidade computacional pequena devido a capacidade limitada dos nós sensores. Os algoritmos então propostos por Sichitiu et al. não utilizam todos os dados obtidos para estimar os parâmetros [a12 , a12 ] e [b12 , b12 ]. Na Figura 2.5, observamos que os parâmetros são restritos somente pelos conjuntos de dados 1 e 3, os quais possuem duas restrições cada um. Então não é necessário o ponto 2, e este ponto pode ser então descartado. O algoritmo proposto então fará a análise dos dados utilizando apenas 4 restrições durante todo o período em que estiver operando. No processamento de um novo conjunto de dados novas restrições serão comparadas com as quatro restrições existentes e 2 das seis serão descartadas. A operação de comparação decide quais das 4 restrições serão mantidas, o que é muito simples computacionalmente. Em qualquer momento somente a informação para as 4 melhores restrições precisam ser gravadas. Este algoritmo é chamado de tiny-sync. O algoritmo tiny-sync possui um baixo custo computacional, mas no entanto, não garante a solução ótima. O algoritmo chamado de mini-sync analisa se é possível ou não eliminar algumas restrições que são irrelevantes para descobrir a solução ótima. Não sendo possível o algoritmo trabalhará com um número maior de restrições fazendo com que o custo computacional e de armazenamento aumente consideravelmente. Como podemos observar o algoritmo é projetado para se fazer a sincronização entre dois nós sensores da rede. Como as RSSFs são comumente projetadas em camadas, é possível sincronizar todas as camadas com o nó raiz, mas isto precisará ser feito de dois em dois nós o que aumentará consideravelmente o tráfego de dados na rede e ainda acarretará em um decremento linear de acordo com o aumento de camada na precisão da sincronização (SICHITIU; VEERARITTIPHAN, 2003). 2.4 Soluções específicas para RSSF 44 2.4 Soluções específicas para RSSF Diante das dificuldades encontradas com as tentativas frustadas de adaptações das metodologias clássicas, novas técnicas de sincronização temporal têm sido especialmente projetadas para RSSF (GLOBAL. . . , 2006; GANERIWAL et al., 2005; MARóTI et al., 2004; PALCHAUDHURI; SAHA; JOHNSON, 2004; SICHITIU; VEERARITTIPHAN, 2003; RöMER, 2001; ELSON; GIROD; ESTRIN, 2002; ELSON; ESTRIN, 2001). Analisando-se individualmente os novos métodos propostos, observa-se que cada um deles possui vantagens e desvantagens, não sendo possível ainda identificar uma metodologia específica como sendo a mais indicada para o desenvolvimento de sistemas de sincronização em RSSF. Atualmente, a escolha de um dado método tem sido definida pela aplicação de interesse e suas particularidades. Dentro deste conjunto de novas técnicas, deve-se ressaltar a metodologia proposta por Elson e Estrin (ELSON; ESTRIN, 2001; ELSON; GIROD; ESTRIN, 2002), conhecida como RBS (Reference Broadcast Synchronization), a qual é capaz de atingir uma precisão de 1µ s e se baseia em sinais de clock não sincronizados. 2.5 RBS - Reference Broadcast Synchronization Esta metodologia, embora alcance uma boa precisão de sincronização, exige um meio de transmissão bidirecional entre os nós da rede com frequentes trocas de mensagens, e exige que a RSSF possua um canal físico de transmissão de um sinal de broadcast. Esta última exigência faz com que esta técnica não possa ser utilizada em redes que empregam conexões ponto-a-ponto. Neste esquema de sincronização um sinal é enviado em Broadcast para todos os nós. Este sinal não contém dados do tempo registrado pelo relógio do servidor. Então cada nó que recebeu este sinal armazena o tempo do seu relógio local no instante que o broadcast é recebido. Os nós então trocam informações sobre o momento que o broadcast foi recebido, pela rede. As tradicionais fontes de erro de sincronização têm 4 componentes distintos. Para entender melhor estas fontes de erro é muito comum decompor a fonte de latência da mensagem. A primeira fonte é chamado tempo de envio, que é o tempo gasto para construir a mensagem no nó transmissor. A segunda fonte é chamada de tempo de acesso, que é a espera que incorre para o acesso do canal de transmissão. A 2.5 RBS - Reference Broadcast Synchronization 45 terceira é o Tempo de Propagação, que é o tempo necessário para a mensagem ir do transmissor ao receptor. Finalmente o Tempo de Recepção que é o tempo necessário para processar a mensagem e notificar o nó sensor da chegada do broadcast. O método de sincronização RBS elimina o erro introduzido pelo Tempo de envio e o Tempo de acesso do caminho crítico. E como em redes que ocupam uma pequena área o tempo de propagação é em torno de nanosegundos e a precisão considerada é de microsegundos temos que este tempo de propagação poderá ser desconsiderado. A propriedade fundamental do método RBS-Reference Broadcast Synchronization é que uma mensagem de broadcast é usada para sincronizar apenas um conjunto de receptores entre si, ao contrário dos protocolos tradicionais que sincronizam um transmissor com um receptor de mensagens. Eliminando o erro pelo Tempo de Envio e Tempo de Acesso do caminho crítico, como mostrado na Figura 2.6. Isto é uma grande vantagem para sincronização em uma LAN, onde o Tempo de Envio e o Tempo de Acesso são tipicamente os que mais contribuem para o não-determinismo na latência. Na tentativa de resolver o problema causado por estas fontes de erro, o protocolo RBS sempre usa uma referência de tempo relativa e nunca comunica um valor de tempo absoluto. É exatamente esta propriedade que elimina os erros introduzidos pelo Tempo de Envio e Tempo de Acesso. Cada receptor é sincronizado com um pacote de referência que foi, por definição, inserido no canal físico do nós sensores, no mesmo instante. A mensagem não contém o tempo do transmissor, nem é importante que contenha. A latência devida ao processamento nos receptores é irrelevante uma vez que é determinística, e que o RBS trabalha com a diferença no tempo de recepção da mensagem. Além do mais,o clock do sistema pode facilmente ser lido por uma interrupção quando o broadcast é recebido; isto diminui a espera devida à protocolo de processamento, à este tempo que o receptor leva para interpretar a mensagem dá-se o nome de deslocamento de fase. A forma mais simples do RBS é o broadcast de um único pulso para 2 receptores permitindo então estimar seus deslocamento de fase relativos. Podemos descrever o protocolo da seguinte maneira: 1. Um transmissor envia um pacote referência para dois outros receptores (i e j); 2. Cada receptor grava o tempo do seu relógio no qual o pulso referência foi recebido; 2.5 RBS - Reference Broadcast Synchronization (a) 46 (b) Figura 2.6: Análise do caminho crítico para um protocolo de sincronização tradicional (a) e RBS (b). (ELSON, 2003) 3. Os receptores trocam informações sobre suas observações. O desempenho deste método de sincronização é limitado pelos seguintes fatores: • O número de receptores que se quer sincronizar (n). Aplicações colaborativas frequentemente requerem a sincronização de muitos nós simultaneamente. Com o crescimento do conjunto de sensores a ser sincronizados esta sincronização se tornará cada vez mais pobre; • O não determinismo dos receptores; • A distorção do relógio dos receptores com seus osciladores possuem diferentes freqüências. Uma única referência fará somente a sincronização instantânea. Imediatamente após a sincronização terá uma significativa perda de qualidade com o deslocamento do clock. A precisão decairá quanto mais tempo passar desde o evento de sincronização. A maior vantagem deste método é que todos os nós na rede são capazes de automaticamente chegarem a um consenso sobre a sincronização. Os nós são ainda capazes de serem sincronizados independente da distância entre eles. Este método pode ser aplicado para sensores móveis de uma rede sem fio já que um consenso sobre a sincronização pode ser determinado rapidamente entre os nós pois movimento relativo dos nós não afeta adversamente a exatidão da sincronização. Uma das limitações do RBS é que ele é um método de sincronização por evento e não realiza uma sincronização dos relógios. Isto significa que enquanto eventos entre redes serão sincronizados eles não podem considerar seus clocks como uma referência que terá qualquer significado fora da rede (BROOKS et al., 2005). Outra 2.6 E-RBS - Eficient RBS 47 limitação é a necessidade que a rede tenha um canal de broadcast disponível para transmissão dos pulsos de referência. 2.6 E-RBS - Eficient RBS Observando uma deficiência do método RBS proposto em Elson et al. (ELSON; ESTRIN, 2001) que se relaciona com o fato de a quantidade de mensagens de sincronização ser extremamente alta, Lee et al. (LEE; YU; KWON, 2006) propuseram um novo método de sincronização, chamado por eles de E-RBS, fundamentado no protocolo RBS mas com uma eficiência maior quanto a quantidade de mensagens de sincronização. Esta versão eficiente do RBS pode ser usada em um meio com um pequeno número de nós. No RBS, um nó específico envia um pacote de referência em broadcast para os nós sensores que se quer sincronizar. Cada nó sensor grava o tempo que as mensagens de referência foram recebidas de acordo com seu clock local. Então os nós trocam informações sobre o momento que receberam este pacote. No E-RBS o nó sensor determina se enviará informações do tempo ou não. Apenas uma quantidade reduzida de sensores faz o envio da mensagem de broadcast. Para decrementar o número de mensagens transmitidas, os nós não enviam um broadcast todo o tempo, mas somente p% sensores enviam. E cada nó no E-RBS calcula a informação de ajuste do clock. Considerando uma certa quantidade de mensagens com erro na rede, o E-RBS pode reduzir o número de mensagens geradas e melhorar o desempenho do sistema em relação a eficiência de energia nos nós. Além disto pode sincronizar nós sensores mais rapidamente que o protocolo RBS original. Lee et ali. em (LEE; YU; KWON, 2006) descrevem que a desvantagem do RBS original é a quantidade de mensagem enviada a todo tempo. As comparações feitas pelo autor através do gráfico da Figura 2.7 mostram dados para taxas de broadcast (p) de 70%, 60% e 50%. O autor constatou que para p=70% a exatidão alcançada é igual a p = 100% (RBS original), enquanto ele gera somente 43% das mensagens de broadcast quando comparado ao RBS original. Quando p é 60%, ele gera apenas 30% das mensagens do RBS original com uma exatidão também similar ao RBS original. Mas para p=50% o tempo passado entre as mensagens aumentou consideravelmente o que causou uma grande diminuição na precisão da sincronização. Com este incremento no RBS, a eficiência energética é suficientemente aumen- 2.7 FTPS - Flooding Time Synchronization Protocol 48 Figura 2.7: Gráfico comparativo para os protocolos de comunicação E-RBS e RBS (LEE; YU; KWON, 2006). tada. No entanto as outras desvantagens como necessidade de um canal físico para broadcast e a sincronização baseada em eventos continuam. 2.7 FTPS - Flooding Time Synchronization Protocol O protocolo FTPS sincroniza o tempo de um transmissor com possíveis múltiplos receptores utilizando uma única transmissão de mensagens de dados em ambos os lados, transmissor e receptor, a qual contém informações do tempo registrado pelo próprio clock. Entretanto a sincronização exata do tempo em pontos discretos é uma solução parcial apenas. Um dos grandes problemas deste método de sincronização é a necessidade inevitável de compensações para o deslocamento do clock dos nós, as quais são necessárias para alcançar maior precisão na sincronização e manter o overhead de comunicação baixo. A mensagem que é enviada por meio do broadcast contém informações do clock do transmissor que é o tempo global estimado na transmissão de um dado byte. Os receptores obtém o correspondente tempo local dos seus respectivos clocks na recepção da mensagem. Consequentemente uma mensagem de broadcast provê um ponto de sincronização ( um par de tempo global-local) para cada receptor. A diferença entre o tempo global e o local de um ponto de sincronização estima o deslocamento do receptor. Ao contrário do protocolo RBS, o clock do transmissor deve ser incluído 2.8 TPSN - Time Synchronization Protocol for Sensor Networks 49 na mensagem transmitida. Portanto, a medida do tempo no lado transmissor deve ser feita antes do byte contendo o tempo transmitido. A mensagem broadcast começa com a transmissão do byte de preâmbulo seguido por um byte de sincronização SYNC. Após este byte de sincronismo são enviados os dados que se quer comunicar, e a mensagem termina com um byte de checagem de redundância cíclica (CRC). Durante a transmissão do byte de preâmbulo o receptor sincroniza-se com a freqüência da portadora do sinal de entrada. Através do byte de SYNC, o receptor pode calcular o bit de deslocamento temporal. Ele é necessário para remontar a mensagem com o byte de alinhamento correto. O descritor da mensagem contém o objetivo, o tamanho dos dados e outros campos, como o identificador da camada de aplicação que precisa ser notificada no lado receptor. O byte de CRC é usado para verificar que a mensagem não está corrompida. A metodologia de sincronização FTPS possui uma boa exatidão. Esta metodologia resolveu o problema anterior do RBS que era a necessidade de utilização da camada de broadcast, mas ainda restou o problema de sobrecarga da rede pois a quantidade de mensagem necessárias para a sincronização com a exatidão anunciada é muito grande pois os clocks que utilizam cristais como gerador de freqüência possuem um atraso da ordem de µ s a cada s. Este fato causa 2 impactos diretos para uma rede de sensores sem fio, o primeiro é o fato de haver uma sobrecarga da rede aumentando o número de colisões e retransmissões. O segundo impacto é o aumento do consumo para a transmissão dos dados sendo este um ponto crítico do consumo de bateria. 2.8 TPSN - Time Synchronization Protocol for Sensor Networks Ganeriwal et al. (GANERIWAL; KUMAR; SRIVASTAVA, 2003) propõem um algoritmo de sincronização que se baseia no princípio de topologia hierárquica de redes para sistemas distribuídos. Este algoritmo é baseado em dois passos fundamentais. O primeiro passo do algoritmo é criar uma topologia hierárquica na rede. Todo nó é associado a um nível hierárquico. A metodologia assume que um nó no nível i pode comunicar com qualquer outro no nível i − 1. Somente um nó é associado ao nível 0, que é chamado "nível raiz". Este estágio é chamado de "fase de descobrimento de nível". Uma vez que a estrutura hierárquica tenha sido estabelecida, o nó raiz inicia o segundo estágio do algoritmo, que é chamado de "Fase de sincronização". Nesta 2.8 TPSN - Time Synchronization Protocol for Sensor Networks 50 Figura 2.8: Modelo de sincronização para o método TSPN fase, um nó no nível i sincroniza com o nó i-1. Eventualmente todo nó na rede é sincronizado com o nó raiz e desta forma é alcançada a sincronização em toda a rede. Em geral, um nó usuário que atua como gateway entre nós sensores da rede e o mundo externo pode atuar como nó raiz. O nó usuário pode ser equipado com um receptor GPS. Em muitos meios hostis onde é impossível ter uma entidade externa, o nó raiz pode ser periodicamente alterado entre os nós da rede por meio de um algoritmo de eleição. Neste caso, ilhas de nós sincronizados serão formadas na rede. Então um esquema semelhante ao RBS pode ser usado para manter uma sincronização relativa entre os nós adjacentes. Quando o sistema é ligado ocorre a primeira fase que é a fase de determinação dos níveis. Nesta etapa o nó que é determinado para ser o nó do nível 0 inicia esta fase enviando um broadcast com o pacote level_discovery. Este pacote contém a identidade e o nível do transmissor. Os vizinhos mais próximos do nó raiz recebem este pacote e assumem eles próprios um nível maior ou menor que o nível que eles receberam. Após estabelecer seus próprios níveis eles enviam em broadcast um novo pacote de level_discovery contendo seus níveis. Este processo é continuado e todo nó da rede é associado a um nível. Sendo associado a um nível um nó desconsidera todo e qualquer pacote de level_discovery. Isto faz com que não haja excesso de transmissão de dados durante esta fase. Então a estrutura hierárquica é criada com apenas um nó raiz no nível 0. Na próxima etapa, uma sincronização entre um par de nós é feita ao longo da estrutura hierárquica estabelecida anteriormente. Uma troca de mensagem entre um par de nós pode sincronizá-los. A Figura 2.8 mostra esta troca de mensagens entre um nó A e B. Aqui T1 e T4 representam os instantes de tempo medido pelo clock local de A. Da mesma forma T1,T2 representam os tempos medidos pelo clock local de B. No tempo T1, A envia um pacote de pulso de sincronização contendo o número do nível de A e o valor de T1. O nó B recebe este pacote em T2, onde T2 é igual a T1 + 2.8 TPSN - Time Synchronization Protocol for Sensor Networks 51 ∆ + d. Aqui ∆ e d representam o deslocamento do clock entre os dois nós e o tempo de demora na propagação respectivamente. No tempo T3, B envia um pacote de volta para A de acknowledgement. O pacote de acknowledgement contém o número do nível de B e o valor de T1, T2 e T3. Assumindo que os deslocamentos do clock e a demora na propagação não mudam em um pequeno espaço de tempo, A pode calcular o deslocamento e a demora de propagação como: ∆= (T 2 − T 1) − (T 4 − T 3) (T 2 − T 1) + (T 4 − T 3) ;d = . 2 2 (2.9) Conhecendo o deslocamento, o nó A pode corrigir seu clock de acordo com o clock de B. Esta é uma abordagem, onde o transmissor sincroniza seu clock com o receptor (GANERIWAL; KUMAR; SRIVASTAVA, 2003). Esta troca de mensagem na rede começa com o nó raiz iniciando a fase de time_sync por um pacote de broadcast. Na recepção deste pacote, os nós ao longo do nível 1 esperam por um tempo aleatório antes de iniciar a devolução da mensagem para o nó raiz. Esta aleatoriedade evita a contenção em um acesso médio. Na recepção novamente de um acknowledgement, estes nós ajustam seus clocks para o nó raiz. Os nós ao longo do nível 2 verão esta troca de mensagem. Isto é baseado no fato que todo nó no nível 2 tem ao menos um nó do nível 1 na sua vizinhança. Na escuta destas mensagens, os nós do nível 2 ficam fora da comunicação por um tempo aleatório, após o qual eles iniciam a troca de mensagem com os nós do nível 1. Esta aleatoriedade é para assegurar que nós no nível 2 iniciem a fase de sincronização após os nós no nível 1 terem sido sincronizados. Este processo é propagado através da rede e eventualmente todo nó é sincronizado com o nó raiz. Em uma rede de sensores , colisões de pacotes podem ser frequentes. Para lidar com este cenário, um nó sempre espera um acknowledgment e caso ocorra um timeout é retransmitido o pulso de sincronização. Este processo continua até uma mensagem ser bem sucedida. Este método conseguiu uma melhoria de desempenho igual a duas vezes o desempenho da metodologia RBS em relação a sincronização. O autor da metodologia não apresenta dados de consumo de bateria mas pela análise da metodologia é possível observar que o consumo será consideravelmente maior que na metodologia RBS pois há necessidade de mais trocas de mensagem. Este aumento no número de mensagens como visto anteriormente afeta significativamente o consumo de bateria. Um outro fator também importante é a escalabilidade a qual também será consideravelmente afetada já que o método TPSN necessita de trocas 2.9 Considerações finais 52 constantes de mensagens causando um tráfego considerável de dados na rede. 2.9 Considerações finais De uma forma geral, embora a maior parte dos novos métodos para sincronização citados anteriormente procurem desenvolver estratégias para o uso racional de recursos em RSSF, minimizando-se assim o consumo de energia, observa-se que nenhum dos métodos propostos conseguiu atingir de forma realmente eficaz este objetivo. É neste contexto, que este projeto de dissertação de mestrado propõe uma metodologia alternativa baseada na análise de sequências de imagens da dinâmica da cena, a qual possa contribuir juntamente com as demais técnicas propostas na literatura para um processo de se estimar a sincronização temporal que leve a resultados precisos, mas que ao mesmo tempo não exija um alto consumo de energia na rede. Diferentemente das metodologias existentes, este trabalho propõe que se estime uma linha do tempo de referência, responsável pela recuperação das relações temporais entre os dados dos sensores, a partir da informação medida por um dos próprios sensores da rede, no caso, as imagens de uma câmera de vídeo. 53 3 FUNDAMENTAÇÃO TEÓRICA Este capítulo apresenta alguns conceitos fundamentais relacionados à área de processamento e análise de imagens, os quais formam a base teórica da técnica proposta neste trabalho para sincronização em redes de sensores sem fio. 3.1 Sistemas de Processamento de Imagem A visão é o nosso principal sentido, então não surpreende que imagens tenham uma grande importância em nossas atividades. Entretanto, a visão humana é limitada a uma pequena banda do espectro eletromagnético, que devido a isto, chamamos de espectro do visível. Equipamentos de processamento e análise de imagens, também chamados de equipamentos de visão computacional, ao contrário da visão humana, operam com quase todo o espectro eletromagnético, desde os raios γ até ondas de rádio. Eles podem tratar dados do espectro eletromagnético gerados por fontes que os humanos não estão acostumados a associar com imagens já que não fazem parte do espectro visível. São exemplos deste tipo de dados, infravermelho, ondas de rádio, e ondas eletromagnéticas de alta energia como raios γ e outros. Por meio do tratamento dos dados é possível transformar em imagens ondas que não fazem parte do espectro eletromagnético como o ultrasom. Podemos concluir então que o processamento de imagens digitais agrupa uma grande variedade de campos de aplicações. Em (GONZALES; WOODS, 2007), os autores consideram três tipos principais de tarefas durante o tratamento de imagens: processamentos de baixo, médio e alto nível. Processamentos de baixo nível envolvem operações primitivas como processamento de imagens para reduzir ruídos, aumento do contraste e restauração das imagens. Um processamento de baixo nível é caracterizado pelo fato que ambos, entrada e saída são imagens. Processamento de nível médio em imagens envolve tarefas como segmentação (particionamento de uma imagem em regiões ou objetos), descrição de 3.1 Sistemas de Processamento de Imagem 54 Figura 3.1: Passos fundamentais no processamento de imagens (GONZALES; WOODS, 2007). como traduzir objetos para uma forma apropriada para processamento computacional e classificação de objetos individuais. Um processamento de nível médio é caracterizado pelo fato que suas entradas geralmente são imagens, mas suas saídas são atributos extraídos da imagem. Processamentos de alto nível envolvem determinar o significado de um conjunto de objetos reconhecidos, por meio de análise de imagens, e fazendo funções cognitivas normalmente associadas com a visão. 3.1.1 Passos fundamentais no processamentos de imagens digitais A Figura 3.1 ilustra alguns dos passos fundamentais executados por um sistema de processamento e análise de imagens. • Aquisição de imagem: a capacidade de adquirir imagens que tornou possível o processamento de imagens digitais. Este passo consiste em converter ondas eletromagnéticas em um valor numérico digital. Esta conversão é feita por elementos fotosensores. Estas ondas podem ser provenientes de fontes de luz visível ou outras freqüências do espectro. • Realce de imagem: esta é uma das áreas mais simples do processamento de imagens digitais. Basicamente, a idéia por trás das técnicas de realce é 3.1 Sistemas de Processamento de Imagem 55 trazer detalhes obscurecidos, ou simplesmente elucidar certas características de interesse na imagem. Um exemplo familiar de realce é quando incrementamos o contraste de uma imagem para observa-la melhor. • Restauração de imagem: é uma área que tem como objetivo melhorar a aparência de uma imagem. Entretanto, de modo diferente do realce, que é subjetivo, restauração da imagem é objetiva, já que técnicas de restauração tendem ser baseadas em modelos estatísticos e probabilísticos de degradação de imagem. Realce, por outro lado, é baseado em preferências humanas do que constitui um resultado ótimo. • Compressão: como o próprio nome já diz, são técnicas com o objetivo de reduzir o espaço necessário para salvar uma imagem, ou diminuir a velocidade necessária para transmiti-la. Embora tecnologias de armazenamento tem tido avanços significativos nas últimas décadas, o mesmo não pode ser dito da velocidade de transmissão. Isto é observado na internet que tem uma quantidade considerável de imagens. A compressão de imagens é utilizada por usuários para o armazenamento de arquivos, como por exemplo, os que utilizam extensões como jpg usado em imagens do formato JPEG. • Segmentação: procedimentos que particionam uma imagem em suas partes constituintes ou objetos. Em geral, segmentação automática é uma das mais difíceis tarefas em processamento digital de imagens (GONZALES; WOODS, 2007). Um processo de segmentação ruim torna o processo de reconhecimento do objeto mais longo e trabalhoso, ainda o levará à falha. Devido a isto, quanto mais exato o processo de segmentação, maior será a chance de obter sucesso no processo de reconhecimento do objeto ou parte do mesmo. • Representação: usualmente trata-se de uma etapa posterior ao estágio de segmentação. Escolher uma representação é somente parte da solução para transformar um conjunto de dados em uma forma apropriada para a etapa de processamento subseqüente. Por isto, é importante escolher bem o método de representação das características de interesse da forma ou região. • Descrição: também chamada de seleção de características tem o objetivo de extrair atributos que resultam em algumas informações quantitativas de interesse ou características básicas para diferenciar uma classe de objetos de outra. 3.1 Sistemas de Processamento de Imagem 56 • Reconhecimento: é o processo que associa um rótulo a um objeto baseado em seus descritores. Os dados sobre o domínio de um problema são codificados em um sistema de processamento de imagem na forma de uma base de dados. Esta base de dados pode ser um simples detalhamento da região de uma imagem onde a informação de interesse será encontrada, limitando a busca de uma determinada informação. A base de dados pode ser muito complexa, como uma lista encadeada de todos os maiores possíveis defeitos na inspeção de um material ou uma base de dados contendo imagens de satélite de alta resolução de uma região, com aplicações para detecção de mudanças. Descreveremos agora com mais detalhes os tópicos citados acima de maior interesse para o nosso trabalho, relacionando com o processamento digital de imagens. 3.1.2 Aquisição de imagens digitais Adquirir uma imagem digital envolve processos de transformação da imagem captada pelos sensores em números digitais que são posteriormente processados por um computador. Os dois tipos de imagem normalmente utilizados em visão computacional, são: • Imagem de intensidade, são as imagens fotográficas comuns onde intensidade de luz codificada serão obtidas por meio de câmeras de vídeo. • Imagens de profundidade, codificam apenas a forma e a distância obtidas por sensores especiais como sonares ou scanners a laser. Imagens de intensidade medem a quantidade de luz que atingem um dispositivo fotosensível. Imagens de profundidade são obtidas diretamente da estrutura 3-D de uma cena, visualizada através de uma variedade de técnicas. É importante realçar que qualquer imagem digital, indiferente do tipo, é uma matriz bidimensional de números. Na Figura 3.2 temos um exemplo para o tipo de imagem de intensidade. Este formato de aquisição de imagens tem duas conseqüências fundamentais. • A relação exata entre a imagem digital e o mundo físico é determinada pelo processo de aquisição, que depende do sensor utilizado. 3.1 Sistemas de Processamento de Imagem 57 • Qualquer informação contida na imagem deve em última análise, ser extraída de uma matriz bidimensional. (a) (b) Figura 3.2: (a) Matriz bidimensional que representa uma imagem adquirida por uma câmera digital cuja resolução é de 56 x 46 pixels. (b) Imagem adquirida com uma câmera digital convertida para tons de cinza A entrada para uma câmera de vídeo é, como se sabe, a luz que chega através do conjunto óptico a seu plano de imagem. A Figura 3.2 verifica-se a existência de uma matriz CCD com dimensões n x m contendo um grid de sensores fotosensíveis à intensidade da luz. Cada fotosensor pode ser considerado como uma pequena caixa preta retangular que converte energia da luz em tensão. A saída da matriz de CCD é usualmente um sinal elétrico contínuo (o sinal de vídeo). Pode-se recuperar este sinal gerado, ou seja, recuperar a imagem de vídeo, fazendo a varredura dos fotosensores na matriz de CCD em uma dada ordem e lendo suas tensões que foram convertidas para um valor digital. O sinal de vídeo é enviado para um dispositivo eletrônico chamado digitalizador de imagem de vídeo, onde é digitalizado e transformado em uma matriz bidimensional, contendo de M x N valores inteiros. Neste ponto, as imagens podem ser convenientemente representadas por uma matriz E(M,N), cujos elememtos são chamadas de pixels (um acrônimo para picture elements), onde N e M são dois inteiros expressando as dimensões da imagem. Finalmente a matriz E é transferida para um computador para o processamento das imagens. A respeito da matriz E podemos afirmar: 3.1 Sistemas de Processamento de Imagem 58 Figura 3.3: Esquema de um sistema para a aquisição de imagens digitais (TRUCCO; VERRI, 1998). E(M,N) denota a intensidade gravada pelo fotosensor da matriz de CCD em um determinado pixel(M,N). 3.1.3 Parâmetros das câmeras Algoritmos para reconstrução de estruturas 3-D de cenas ou para recuperação da posição de objetos no espaço, necessitam de equações que relacionem as coordenadas de pontos 3-D no espaço com as coordenadas dos seus pontos correspondentes na imagem. Estas equações são escritas em relação ao sistema de eixos coordenados de referência da câmera. Frequentemente assume-se que: • O sistema de eixos coordenados de referência da câmera pode ser localizado em relação ao sistema de eixos coordenados de referência no mundo. • As coordenadas dos pontos no plano de imagem, relativos ao sistemas de eixos coordenados da câmera podem ser obtidos a partir das coordenadas correspondentes em pixel. Parâmetros Extrínsecos O sistema de eixos coordenados da câmera foi introduzido com o propósito de escrever as equações fundamentais da projeção em perspectiva. Entretanto, o sistema de eixos coordenados da câmera é muitas vezes desconhecido, e um problema comum consiste em determinar a localização e a orientação do sistema de eixos coordenados da câmera em relação a algum sistema de eixos coordenados de referência no mundo, usando somente informações da imagem. Os parâmetros extrínsecos são definidos como um conjunto de parâmetros geométricos que identificam a transformação única entre o sistema de eixos coordenados de referência da câmera e um sistema de eixos coordenados do mundo. 3.1 Sistemas de Processamento de Imagem 59 É comum descrever a transformação entre o sistema de eixos coordenados da câmera e do mundo por meio de: • Um vetor de translação 3-D, T, descrevendo a posição relativa das origens dos dois sistemas de eixos coordenados, • Uma matriz de rotação 3x3, R, que é ortogonal (R⊤ R = RR⊤ = I) e que é responsável por alinhar os sistemas de eixos coordenados da câmera e do mundo. É importante ressaltar que as relações de ortogonalidade reduzem o número de graus de liberdade de R para três. Podemos observar na Figura 3.4 que a relação entre as coordenadas do ponto P no sistema de eixos coordenados do mundo Pw , e as coordenadas do ponto P no sistema de coordenadas da câmera, Pc pode ser expresso por: Pc = R(Pw − T), (3.1) onde r11 r12 r13 R= r21 r22 r23 . r31 r32 r33 (3.2) Então temos que os parâmetros extrínsecos são o vetor de translação, T, e a matriz de rotação, R (ou melhor, seus parâmetros livres), que especificam a transformação entre os sistemas de eixos coordenados da câmera e do mundo. Parâmetros intrínsecos Os parâmetros intrínsecos podem ser definidos como o conjunto de parâmetros necessário para caracterizar a geometria óptica e as características digitais da câmera. Para uma câmera pinhole precisamos de 3 conjuntos de parâmetros intrínsecos os quais especificam: • A projeção perspectiva , cujo único parâmetro é a distância focal, f ; • A transformação entre as coordenadas relativas ao sistema de coordenadas da câmera e às coordenadas correspondentes em pixels; 3.1 Sistemas de Processamento de Imagem 60 Figura 3.4: A relação entre os sistemas de eixos coordenados da câmera e do mundo • A distorção geométrica introduzida pelo sistema óptico; Para encontrar o segundo conjunto de parâmetros intrínsecos, devemos associar as coordenadas (xim , yim ) de um ponto na imagem em unidades de pixels com as coordenadas (x, y) do mesmo ponto no sistema de eixos coordenados da câmera. As coordenadas (xim , yim ) podem ser determinadas como coordenadas de um novo sistema de eixos coordenados da câmera, algumas vezes chamado sistema de eixos coordenados do plano de imagem. Desprezando qualquer distorção geométrica introduzida pelo sistema óptico e na suposição que a matriz CCD é composta por uma matriz retangular de elementos foto sensíveis, tem-se que: x = −(xim − ox )sx y = −(yim − oy )sy . (3.3) Sendo (ox , oy ) as coordenadas em pixels do centro da imagem (o ponto principal), e (sx , sy ) os tamanhos efetivos dos pixels (em milímetros) na direção vertical e horizontal respectivamente. Sendo assim, o conjunto de parâmetros intrínsecos é composto pelos seguintes parâmetros f , ox , oy , sx , sy . 3.1 Sistemas de Processamento de Imagem 61 O sinal trocado na Equação 3.3 é devido ao fato de que os eixos horizontal e vertical da imagem e do sistema de eixos coordenados da câmera tem orientações opostas em relação aos eixos horizontal e vertical do sistema de eixos coordenados do mundo. Em muitos casos, o sistema óptico introduz distorções nas imagens. Estas distorções se tornam evidentes na periferia da imagem, ou em outra parte sempre que se trabalha com grandes campos de visão. Felizmente, estas distorções foram modeladas como uma distorção radial simples por (TRUCCO; VERRI, 1998) de acordo com as relações a seguir: x = xd (1 + k1 r2 + k2 r4 ) y = yd (1 + k1 r2 + k2 r4 ) . (3.4) Como mostrado pela Equação 3.4, esta distorção corresponde a um deslocamento dos pontos da imagem. O deslocamento é nulo no centro da imagem, e aumenta com a distância do pontos ao centro da imagem. Os parâmetros k1 e k2 são parâmetros intrínsecos adicionais. Uma vez que eles são muito pequenos, a distorção radial é ignorada quando não é necessária uma precisão muito alta em todas as regiões da imagem, ou quando os pixels periféricos podem ser descartados. Caso contrário, como k2 ≪ k1 , k2 é frequentemente desprezado, e k1 é somente o parâmetro intrínseco a ser estimado no modelo de distorção radial. Sendo assim têm-se que os parâmetros intrínsecos são definidos como distância focal, f , a localização do centro da imagem em coordenadas em pixels,(ox , oy ), o tamanho efetivo em pixel na direção horizontal e vertical (sx , sy), e se necessário, o coeficiente de distorção radial, k1 . Modelos de câmera Podemos agora escrever as relações que ligam diretamente as coordenadas em pixels de um ponto na imagem com as coordenadas correspondentes de um ponto 3-D no mundo, sem explicitar referências para o sistema de eixos coordenados da câmera. Para obtermos uma equação linear que nos dá a projeção de um ponto no mundo para a imagem podemos escrever as equações básicas de projeção perspectiva para o sistema de eixos coordenados da câmera: 3.1 Sistemas de Processamento de Imagem 62 x = f XZ x = f YZ . (3.5) Então, substituindo 3.1 e 3.3 na Equação 3.5 temos as seguintes equações lineares: R⊤ (P −T) −(xim − ox )sx = f R1⊤ (Pw −T) 3 w , −(yim − oy )sy = f (3.6) R⊤ 2 (Pw −T) R⊤ 3 (Pw −T) onde Ri para i = 1, 2, 3, é um vetor 3-D formado pela i-ésima linha da matriz R. De fato, a Equação 3.6 relaciona as coordenadas 3-D dos pontos no mundo com as coordenadas correspondentes na imagem, por meio dos parâmetros extrínsecos e intrínsecos. Desprezando a distorção radial, podemos reescrever a Equação 3.6 como um produto matricial. Para este propósito, definimos duas matrizes , Mint e Mext , como a seguir: − sfx Mint = 0 0 Mext 0 ox − sfy oy 0 1 (3.7) r11 r12 r13 −R⊤ 1T ⊤T = x r r r −R 21 22 23 2 ⊤ r31 r32 r33 −R3 T Então a matriz Mint depende somente dos parâmetros intrínsecos, enquanto a matriz Mext depende somente dos parâmetros extrínsecos. Se adicionarmos uma quarta coordenada igual a 1 em Pw o que significa expressá-lo em coordenadas homogêneas, e formarmos o produto Mint Mext Pw , obtemos uma equação matricial descrevendo a projeção em perspectiva, que podemos determinar como sendo: 3.2 Calibração de câmeras 63 Xw x1 Y w x2 = Mint Mext . Zw x3 1 (3.8) Pode-se determinar a partir do vetor[x1 , x2 , x3 ]⊤ , dois parâmetros (x1 /x3 ) e (x2 /x3 ) que nada mais são que as coordenadas em pixel de um ponto no mundo: x1 x2 = xim . x2 x3 (3.9) = yim 3.2 Calibração de câmeras A tarefa de calibração de uma câmera consiste em estimar os valores dos parâmetros intrínsecos e extrínsecos do modelo da câmera. A idéia chave da calibração é: Escrever as equações de projeção associando coordenadas conhecidas de um conjunto de pontos 3-D no mundo e suas projeções no plano de imagem, encontrando os parâmetros intrínsecos e extrínsecos para a câmera. Para determinar as coordenadas de alguns pontos 3-D, métodos de calibração baseiam-se em uma ou mais imagens de um alvo de calibração, que é um objeto 3-D de geometria conhecida, possivelmente localizado em uma posição do espaço conhecida e gerando características da imagem que podem ser localizadas exatamente. A Figura 3.5 mostra um padrão de calibração, consistindo de bolinhas pretas espalhadas na cena de interesse. 3.2.1 Parâmetros diretos de calibração Considere um ponto P em 3-D, definido por suas coordenadas [X w,Y w , Z w ]⊤ no sistema de eixos coordenados do mundo. Estas coordenadas no mundo são conhecidas. Temos também que [X c,Y c , Z c ]⊤ são coordenadas do mesmo ponto porém referente ao sistema de eixos coordenados da câmera. Usualmente, a origem do sistema de eixos coordenados da câmera é o centro de projeção da mesma, e o eixo Z é o eixo 3.2 Calibração de câmeras 64 Figura 3.5: Figura do alvo de calibração planar Figura 3.6: Modelo em perspectiva da câmera óptico como podemos observar na Figura 3.6. A posição e orientação do sistema de eixos coordenados da câmera são desconhecidos e diferentemente do sistema de eixos coordenados do plano de imagem, o sistema de eixos coordenados da câmera é inacessível diretamente. Isto é equivalente dizer que não conhecemos os parâmetros extrínsecos da câmera, que é, a matriz R de rotação 3x3 e o vetor de translação 3-D vetor T que fornece a relação: Xc Xw Y c = R Y w + T. c w Z Z (3.10) 3.2 Calibração de câmeras 65 A Equação 3.10 pode ser escrita como X c = r11 X w + r12Y w + r13 Z w + Tx X c = r21 X w + r22Y w + r23 Z w + Ty . (3.11) X c = r31 X w + r32Y w + r33 Z w + Tz Assumindo que as distorções radiais podem ser desprezadas, podemos escrever as coordenadas da imagem de [X c,Y c , Z c ]⊤ no sistema de eixos coordenados de referência no plano de imagem como: f Xc + ox , sx Z c f Yc + oy . yim = − sy Z c xim = − (3.12) (3.13) As equações 3.12 e 3.13 dependem dos cinco parâmetros intrínsecos, f (distância focal), sx e sy (tamanhos efetivos dos pixels na horizontal e vertical), e ox e oy (coordenadas do centro da imagem). Devido a forma particular das equações 3.12 e 3.13, os cinco parâmetros não são independentes. Entretanto, se nós fizermos fx = f /sx e α = sy /sx , podemos considerar um novo conjunto de quatro parâmetros intrínsecos ox , oy , fx e α , todos independentes um do outro. O parâmetro fx é simplesmente a distância focal expressa em pixels efetivos horizontais, enquanto α , usualmente chamado de razão de aspecto, especifica a deformação induzida pelo processo de aquisição. Substituindo as equações 3.11 em 3.12 e 3.13 temos: x − ox = − f x r11 X w + r12Y w + r13 Z w + Tx , r31 X w + r32Y w + r33 Z w + Tx (3.14) y − oy = − f y r21 X w + r22Y w + r23 Z w + Tx . r31 X w + r32Y w + r33 Z w + Tx (3.15) Note que 3.14 e 3.15 desconsideram o sistema de eixos coordenados da câmera e associam diretamente as coordenadas do mundo com as coordenadas da câmera (x, y) do ponto correspondente da imagem. Se usarmos um padrão de calibração conhecido, ambos vetores serão mensuráveis. Isto sugere que, dado um número suficiente de pontos no padrão de calibração podemos tentar resolver 3.14 e 3.15 para conhecer os parâmetros. Esta é a idéia básica por trás da maioria dos métodos de calibração. 3.3 Rastreamento de objetos 66 Especificamente, o algoritmo de calibração utilizado em nosso trabalho de pesquisa é um algoritmo proposto por Heikkilä em (HEIKKILA, 2000). Este algoritmo mostra-se mais pesado computacionalmente que métodos tradicionais de calibração, no entanto, oferece uma precisão muito maior que estes métodos (HEIKKILA, 2000). O algoritmo proposto por Heikkilä possui três passos. Como o primeiro passo, o objetivo é determinar um conjunto inicial de parâmetros através das técnicas citadas acima. No segundo passo os parâmetros do modelo direto são estimados minimizando os pesos atribuídos a soma dos quadrados da diferença entre as observações e o modelo. No terceiro passo são determinados os parâmetros de modelo reverso que fornecem consistência aos resultados em ambas as direções. Segundo o autor em (HEIKKILA, 2000) a precisão alcançada por este método é de 1/50 pixels. Como estamos considerando que as câmeras são estáticas, então a matriz de calibração será calculada apenas uma vez o que torna o custo computacional baixo. 3.3 Rastreamento de objetos O rastreamento de objetos é uma das mais importantes tarefas no campo de Visão Computacional. Em linhas gerais há três passos chaves na análise de vídeos com o propósito de se fazer rastreamento de objetos: detecção de movimentos de interesse, rastreamento quadro a quadro e análise da trajetória para reconhecer seus comportamentos. A grosso modo, a tarefa de rastrear um objeto pode ser definida como o problema de se estimar sua trajetória no plano de imagem. Em outras palavras, um rastreador associa rótulos consistentes para os objetos rastreados em diferentes quadros do vídeo. Rastrear um objeto pode ser muito difícil devido a vários fatores, tais como, ruído nas imagens, complexidade de movimentos, oclusão do objeto total ou parcial, objetos de forma complexa, mudanças na iluminação da cena e necessidades de processamento em tempo real. Pode-se simplificar a tarefa de rastreamento impondo restrições aos movimentos e/ou aparência dos objetos. Por exemplo, quase todos os algoritmos de rastreamento assumem que no movimento do objeto não ocorrem mudanças bruscas, o que implica em restringir o movimento do objeto para ter velocidade constante ou aceleração constante. O conhecimento a-priori sobre o número de objetos, seus tamanhos, ou a 3.3 Rastreamento de objetos 67 aparência e forma, pode ser usados para simplificar a solução do problema. 3.3.1 Representação do objeto Para se realizar o rastreamento de algum objeto em um vídeo é preciso que este objeto possa ser localizado em cada quadro para assim determinar sua trajetória. Com o objetivo de se fazer este rastreamento é necessário que o objeto que se deseja rastrear tenha alguma forma de representação. Existem várias formas de se fazer a representação de objetos sendo algumas delas mostradas na Figura 3.7. Nesta figura vemos que os objetos podem ser representados por um ponto, que é o centróide (Figura 3.7(a)) ou por um conjunto de pontos (Figura 3.7(b)) (YILMAZ; JAVED; SHAH, 2006). Em geral, a representação por pontos é apropriada para rastreamento de objetos que ocupam uma pequena região na imagem. Outra forma de representar um objeto é através da forma geométrica primitiva. O objeto é representado por um retângulo ou elipse Figura 3.7(c) e (d) (YILMAZ; JAVED; SHAH, 2006). Embora as formas geométricas sejam mais apropriada para representar objetos rígidos simples, elas são usadas também para rastreamento de objetos não rígidos. Uma outra técnica bem comum para representação de objetos em tarefas de rastreamento é baseada no Contorno da silhueta do objeto (Figura 3.7(g),(h)). A região dentro do contorno é chamada a silhueta do objeto (Figura 3.7(i)), A silhueta e a representação do contorno são apropriados para rastreamento de objetos complexos não rígidos. Modelos de formas articuladas são utilizados para objeto que tem partes que podem se mover, e que sejam de interesse para o rastreamento de forma distinta. Objetos articulados são compostos por partes que são colocadas juntas. A relação entre as partes são governadas pelo modelo de movimento cinemático. A fim de representar um objeto articulado podemos modelar as partes constituintes usando retângulos ou elipses como mostrado na Figura 3.7(c)-(d). Na representação por Modelo do esqueleto o objeto pode ser determinado aplicando eixos medianos na silhueta do objeto. Este modelo é normalmente usado para representação e reconhecimento de objetos (YILMAZ; JAVED; SHAH, 2006). A representação do esqueleto pode ser usada para modelar objetos rígidos ou articulados (Figura 3.7(f)). Algumas representações de aparência comuns no contexto de rastreamento de objetos são: Funções de densidade de probabilidade das aparências dos objetos que podem ser paramétricas, como uma gaussiana ou uma mistura de gaussianas, ou não-paramétricas. 3.3 Rastreamento de objetos 68 Figura 3.7: Representação de objetos.(a) Centróide, (b) múltiplos pontos, (c) Caminho retangular, (d) caminho elíptico, (e) Baseado em múltiplas partes, (f) Esqueleto do objeto, (g) contorno do objeto com pontos, (h) Contorno completo do objeto, (i) silhueta do objeto (YILMAZ; JAVED; SHAH, 2006). As funções de densidade de probabilidade das aparências dos objetos, podem ser calculadas a partir de regiões da imagem especificadas por modelos de formas (região interior de uma elipse ou um contorno). Modelos (templates) formados usando formas geométricas simples ou silhuetas. Templates, entretanto, somente codificam a aparência gerada por um único ponto de vista. Então eles são somente apropriados para rastreamento de objetos cujas orientações não variam consideravelmente durante o rastreamento. Modelos de aparência ativa são gerados por modelamentos simultâneos da forma e aparência do objeto. Em geral, a forma dos objetos é definida a partir de um conjunto de marcos referenciais (landmarks). De forma semelhante a representação baseada em contorno, os marcos referenciais podem estar nas bordas do objeto ou, alternativamente, podem estar dentro da região do objeto. Para cada marco um vetor de aparência é armazenado, contendo informações de forma, cor, textura ou gradiente de tamanho. Modelos de aparência ativa necessitam uma fase de treinamento onde as formas e aparência associada são aprendidas de um conjunto de amostras. Modelos de aparência para múltiplas vistas. Codificam diferentes vistas de um objeto. Uma abordagem para representar diferentes visualizações de um objeto consiste em gerar um subespaço a partir das vistas dadas (YILMAZ; JAVED; SHAH, 2006). 3.3.2 Detecção de objetos Todo método de rastreamento requer um mecanismo de detecção de objeto em todos os quadros ou no primeiro quadro que o objeto aparece no vídeo. Uma abor- 3.3 Rastreamento de objetos 69 dagem muito comum para detecção de objetos é usar informações vindas de um único quadro. Entretanto alguns métodos de detecção de objetos fazem uso do cálculo de informações temporais, calculadas de uma seqüência de quadros para reduzir o número de detecções falsas. Esta informação temporal é normalmente dada na forma de subtração de quadros, que elucida regiões alteradas nos quadros consecutivos. Dada a região do objeto na imagem, é então a tarefa do rastreador fazer a correspondência de um quadro para o próximo gerando a trajetória. Alguns métodos de detecção de objetos são: • Detecção de pontos que são usados para encontrar pontos de interesse em uma imagem que tem uma textura expressiva em suas respectivas localizações, como mostrado na Figura 3.8. Figura 3.8: Detecção de objetos utilizando três métodos diferentes (a) Harris, (b) KLT e (c) operadores SIFT • Subtração do fundo da cena: pode ser alcançada construindo uma representação da cena chamada modelo de fundo, e então encontrando desvios do modelo para cada quadro de entrada. Qualquer mudança significante na região da imagem do modelo de fundo, significa o movimento do objeto. Os pixels constituindo a região sobre investigação são marcados para processamento futuro. Normalmente, um algoritmo de componente conectado é aplicado para obter regiões correspondentes conectadas para os objetos. Este processo é chamado de subtração de fundo. Na Figura 3.9 vemos um exemplo de aplicação desta técnica. • Segmentação: o principal objetivo de um algoritmo de segmentação de imagem é particionar a imagem em regiões similares perceptíveis, como visto na Figura 3.10. Todo algoritmo de segmentação apresenta dois desafios, de determinar o critério para uma boa partição e desenvolver o método para alcançar particionamento eficiente. 3.3 Rastreamento de objetos 70 Figura 3.9: Exemplo da metodologia de mistura do modelo gaussiano para subtração de fundo (YILMAZ; JAVED; SHAH, 2006). Figura 3.10: Segmentação de uma imagem (a), Segmentação por deslocamentomédio (b) e Método de cortes normalizados(c) (YILMAZ; JAVED; SHAH, 2006). • Aprendizado supervisionado: a detecção do objeto será feita aprendendo diferentes visualizações automáticas de um conjunto de exemplos por meio de um aprendizado supervisionado. Dado um conjunto de exemplos aprendidos, métodos de aprendizado supervisionado geram uma função que mapeia entradas para saídas desejadas. Uma formulação padrão do aprendizado supervisionado é o problema de classificação onde o aprendiz aproxima o comportamento de uma função. Os algoritmos de rastreamento de objetos podem ser divididos em três categorias diferentes • Rastreamento de pontos: objetos detectados em frames consecutivos são representados por pontos, e a associação dos pontos é baseada no estado anterior que pode incluir a posição do objeto e o movimento. • Rastreamento de núcleos: refere-se à forma e aparência do objeto, por exemplo, o núcleo pode ser um modelo retangular ou uma forma elíptica com um histograma associado. Objetos podem ser rastreados determinando o movimento do núcleo em quadros consecutivos. Este movimento normalmente é realizado na forma de uma transformação paramétrica semelhante com translação, rotação e afins. 3.3 Rastreamento de objetos 71 • Rastreamento de silhueta: o rastreamento é feito estimando a região do objeto em cada quadro. Métodos de rastreamento de silhueta necessitam de funções de densidade de probabilidade das aparências de objetos e, modelos de formas, que são representados com mapa de fronteiras. Ambos os métodos podem ser considerados essencialmente aplicação de segmentação no domínio temporal, usando o conhecimento dos quadros anteriores. 3.3.3 Rastreamento de pontos As técnicas de rastreamento de pontos podem ser compreendidas como a correspondência da representação de objetos detectados por pontos através dos quadros. Correspondência de pontos é um problema especialmente complicado na presença de oclusões, detecções ruins, entradas e saídas de objetos na cena. Os métodos de correspondência de pontos podem ser dividos em duas grandes categorias, chamadas, métodos determinísticos e métodos estatísticos. Os métodos determinísticos usam heurísticas de movimento qualitativas (VEENMAN; REINDERS; BACKER, 2001) para restringir o problema de correspondência. Por outro lado, métodos probabilísticos explicitam a medida do objeto e consideram incertezas para estabelecer a correspondência. Métodos determinísticos por correspondência, definem um custo associado a cada objeto no quadro t − 1 para um único objeto no quadro t usando um conjunto de restrições de movimento. A minimização da função de custo da correspondência é formulada como um problema de otimização combinatória. Uma solução, que consiste na correspondência um-a-um mostrada na Figura 3.11(b) através de todas as associações possíveis Figura 3.11(a). Em alguns casos podemos obter a solução ótima, por exemplo, pelo método de busca gulosa. O custo da correspondência é usualmente definido usando uma combinação das seguintes restrições, proximidade, velocidade máxima, pequenas mudanças na velocidade, movimento comum, rigidez e uniformidade de pontos proximos. Medidas obtidas de sensores de vídeo invariavelmente contém ruído. Além do mais, o movimento dos objetos pode sofrer perturbações aleatórias, por exemplo, manobra de veículos. Métodos de correspondência estatística resolvem estes problemas rastreando as medidas e as incertezas dos modelos durante a estimativa do estado do objeto. Os métodos de correspondência estatísticas usam a abordagem do espaço de estudos para modelar as propriedades do objeto como posição, velocidade, 3.3 Rastreamento de objetos 72 Figura 3.11: Figura de rastreamento por correspondência de pontos. (a) Todas as possiblidades de associação de pontos no quadro t − 1 com pontos no quadro t. (b) Conjunto único de associação desenhados com linha negrito, (c) correspondência multiframe e aceleração. As medidas normalmente consistem de posições de objetos na imagem, que são obtidas por um mecanismo de detecção. 3.3.4 Rastreamento de núcleo O rastreamento de núcleo é feito tipicamente determinando o movimento do objeto, que é representado por uma região primitiva de um quadro para o próximo. O movimento do objeto é geralmente na forma de um movimento paramétrico (translação, conformação) ou a determinação do fluxo de densidade calculado em quadros consecutivos. Estes algoritmos diferem em termos de aparência de representação usada, o número de objetos rastreados e o método usado para estimar o movimento do objeto. Jepson et al. 2003 (JEPSON; FLEET; EL-MARAGHI, 2003) propõem um rastreador de núcleo de objetos que utiliza uma mistura de três componentes, consistindo das características de aparência estável, características de transientes e processo de ruído. O componente estável identifica as características mais confiáveis para estimar o movimento, que é, a região do objeto cuja aparência não muda rapidamente todo o tempo. Os componentes transitórios identificam as mudanças rápidas nos pixels dos quadros consecutivos. O componente de ruído utiliza os pontos fora da reta na aparência do objeto que surge devido ao ruído. Uma versão on-line do algoritmo é usado para aprender os parâmetros das misturas destes três componentes. Os autores usam a fase de filtros sintonizáveis respondendo como características para representação da aparência. A forma do objeto é representada por uma elipse. O movimento do objeto é calculado em termos de deformação da região rastreada um quadro após o outro. A 3.4 RANSAC - Random Sample Consensus 73 transformação da deformação consiste da translação, (tx ,ty), rotação (a, b), e escala, s, sendo descrita pela Equação 4.3: x′ y′ ! =s a b −b a ! x y ! + tx ty ! . (3.16) A combinação de componentes estáveis e transientes é usada para determinar os parâmetros degenerados. A vantagem do aprendizado estável e características de transientes é que um pode dar mais peso para características estáveis para o rastreamento, por exemplo, se a face de uma pessoa que está falando está sendo rastreada, então a testa ou a região do nariz pode dar uma melhor correspondência para a face no próximo quadro que a boca (Figura 3.12). Este trabalho utilizou com sucesso a técnica proposta por Jepson et al. nos experimentos com cenas reais. 3.4 RANSAC - Random Sample Consensus O algoritmo RANSAC (Random Sample Consensus) que foi introduzido por Fischer e Bolles em 1981 (FISCHLER; BOLLES, 1987) pode ser considerado como um paradigma para ajustes robustos de modelos. Este algoritmo é robusto uma vez que possui boa tolerância para pontos atípicos (outliers) nos dados experimentais. Além disto, este algoritmo é capaz de interpretar e refinar dados contendo uma porcentagem significativa de erros grosseiros (FISCHLER; BOLLES, 1987). A estimativa será considerada correta apenas se alcançar uma determinada probabilidade, uma vez que o RANSAC é um estimador aleatório. Este algoritmo tem sido aplicado em uma grande quantidade de problemas em visão computacional, como detecção de geometrias primitivas e segmentação de movimento (FISCHLER; BOLLES, 1987). Embora o RANSAC seja um algoritmo bastante simples, ele é uma ferramenta muito poderosa. Em um processo iterativo, ele aleatoriamente seleciona subconjuntos da entrada de dados e calcula os parâmetros do modelo que melhor se ajustam às amostras (FISCHLER; BOLLES, 1987). Amostras são selecionadas uniformemente a partir do conjunto de entradas. Cada ponto tem a mesma probabilidade de seleção. Para cada amostra uma hipótese é construída calculando-se os parâmetros do modelo. O tamanho da amostra depende do modelo que se quer encontrar, sendo tipicamente, o menor tamanho necessário para determinar os parâmetros do modelo (FISCHLER; BOLLES, 1987). Por exemplo, para encontrar um círculo no conjunto de 3.4 RANSAC - Random Sample Consensus 74 Figura 3.12: Resultado do rastreamento on-line usado por Jepson et al. (JEPSON; FLEET; EL-MARAGHI, 2003). (a) A região do alvo em diferentes quadros. (b) A probabilidade do componente estável. Note que as probabilidades em torno da boca e sombrancelha mudam, enquanto eles permanecem a mesma e em outras regiões 3.4 RANSAC - Random Sample Consensus 75 dados, é necessário determinar três pontos, uma vez que três pontos são suficientes para determinar os parâmetros de um círculo. 3.4.1 Avaliação de hipótese Em uma segunda fase, a qualidade dos parâmetros do modelo são avaliados no conjunto completo de dados. Diferentes funções de custo podem ser usadas para a avaliação, sendo comum se avaliar o número de pontos consistentes com o modelo (FISCHLER; BOLLES, 1987). O processo é terminado quando a probabilidade de encontrar um modelo melhor torna-se baixa. Normalmente, os parâmetros estimados do modelo são recalculados, por exemplo, utilizando um método de linearização de mínimos quadrados, para ajustar o subconjunto de dados que determinaram a melhor estimativa. Os dados de entrada podem necessitar de muitos modelos diferentes. Neste caso, os parâmetros para o primeiro modelo são estimados, os pontos de dados que foram utilizados para o modelo são removidos dos dados de entrada e o algoritmo é simplesmente repetido com o resto dos dados para encontrar o melhor modelo. Dependendo no tamanho das amostras, o algoritmo RANSAC pode lidar bem com níveis de ruído acima de 50% (FISCHLER; BOLLES, 1987). 3.4.2 Parâmetros para o RANSAC O algoritmo do RANSAC usa três parâmetros para controlar o processo de estimativa do modelo (CANTZLER, 2004). O primeiro parâmetro (ε ) é uma tolerância para o erro que determina um volume dentro do qual todos os pontos compatíveis devem estar. O segundo parâmetro (p) é a probabilidade na qual pelo menos uma das seleções aleatórias produza um conjunto de candidatos sem erro. Finalmente, o terceiro parâmetro (r) é a probabilidade que um candidato aleatoriamente selecionado tem de ser um ponto que está dentro do modelo. Os parâmetros p e r definem o número de iterações z do RANSAC como a seguir: log(1 − p) z= . log(1 − r2 ) (3.17) A Equação 3.17 expressa o fato que z deve ser grande o suficiente para garantir que, com probabilidade p, pelo menos um conjunto de candidatos selecionados aleatoriamente se ajuste ao modelo (inlier ). 3.4 RANSAC - Random Sample Consensus 3.4.3 76 Eficiência do RANSAC A velocidade do RANSAC depende de dois fatores principais (CHUM; MATAS, 2002). Primeiro o número de amostras que devem ser encontradas para garantir uma certa confiança e obter uma boa estimativa. Em segundo lugar, o tempo gasto para avaliar a qualidade de cada modelo hipotético. O segundo fator é proporcional ao tamanho do conjunto de dados. Tipicamente, um número muito grande de parâmetros de modelos errados e de amostras contaminadas são avaliados. Como os modelos são consistentes somente com uma pequena fração de dados (CANTZLER, 2004), a avaliação dos modelos pode ser otimizada computacionalmente fazendo uma avaliação aleatória(CHUM; MATAS, 2002). Cada modelo hipotético é primeiro testado com um pequeno número de pontos aleatórios do conjunto de dados. Se o modelo não determina de forma adequada o conjunto aleatório, então assumimos com uma alta confiabilidade que o modelo não é uma boa estimativa. Novos modelos de conjuntos aleatórios são então avaliados no conjunto completo dos dados. O desempenho do RANSAC diminui com o aumento da quantidade de amostras ou no caso de múltiplos modelos serem determinados pelos dados devido a diminuição da probabilidade de amostragem de um conjunto que é composto inteiramente por inliers. Uma observação muito comum é que outliers possuem uma distribuição difusa. Por outro lado, inliers tenderão ser localizados muito próximos uns dos outros. Consequentemente, a amostragem uniforme dos pontos é trocada pela seleção de um conjunto de amostras baseada na proximidade levando em conta a relação espacial (MYATT et al., 2002). A seleção do conjunto de amostras de pontos adjacentes pode aumentar significativamente a probabilidade de selecionar um conjunto de inliers e então reduzir o número de amostras necessárias para encontrar uma boa estimativa de modelo. 77 4 TÉCNICA DE SINCRONIZAÇÃO PROPOSTA Especificamente, a técnica para sincronização temporal em redes de sensores móveis desenvolvida neste projeto considerou um cenário no qual uma câmera estática adequadamente posicionada no ambiente seja capaz de visualizar os sensores se movendo na cena durante um intervalo de tempo previamente especificado, como ilustrado na Figura 1.6. Neste cenário, assumimos ainda que a câmera de vídeo utilizada é uma câmera do tipo pinhole calibrada. Mediante o processo de calibração da câmera pode-se determinar seus parâmetros intrínsecos e extrínsecos. Estes parâmetros levam às equações que são utilizadas para a projeção de pontos com coordenadas 3D no mundo para o plano de imagem da câmera. sendo possível então utilizar estes parâmetros na determinação das trajetórias no plano de imagem, de sensores que se movimentam segundo trajetórias 3D conhecidas na cena monitorada. É fundamental para o método de sincronização proposto que estes parâmetros levem a projeções no plano de imagem com uma boa exatidão. Pois é desta forma que a trajetória do sensor no mundo poderá ser associada à trajetória correspondente no plano de imagem. Esta exatidão dos parâmetros de calibração irá depender de quão exata é a determinação da localização dos pontos no alvo de calibração utilizado. Uma vez que a câmera utilizada é estática, garante-se que seus parâmetros intrínsecos e extrínsecos sejam constantes no tempo. Partindo da idéia que os sensores utilizados bem como a câmera de vídeo operam a taxas de amostragem constantes, pode-se relacionar as coordenadas temporais (números dos quadros) na sequência de vídeo da câmera com as coordenadas temporais das amostras da grandeza física medida pelo sensor por meio da seguinte transformação afim unidimensional: t i = αi t + β i , (4.1) 4 TÉCNICA DE SINCRONIZAÇÃO PROPOSTA 78 yc q1( ) zc q1(t) e1 xc ~ q1(t1) P ~ q2(t2) Q1 ( ) q2(t) e2 Q1(t1) q2( ) plano de imagem P zw yw Q2(t2) xw Q2 ( ) Figura 4.1: Visualização de dois sensores móveis na cena de interesse, os quais descrevem trajetórias Q1 (·) e Q2 (·), cujas projeções no plano de imagem da câmera são denotadas por q1 (·) e q2 (·), respectivamente. Sejam q1 (t) e q2 (t) posições instantâneas estimadas pelo rastreador no quadro t. Sejam ainda Q1 (t1 ) e Q2 (t2 ) duas amostras de posições dos sensores no sistema de coordenadas do mundo, cujas projeções calculadas com o auxílio de uma matriz de projeção P são denotadas por q1 (t1) e q2 (t2). onde ti é a coordenada temporal da grandeza física medida pelo sensor Si (i = 1, . . . , N), t é o número do quadro na sequência de vídeo obtida pela câmera de referência c e αi , βi são constantes desconhecidas que representam a dilatação e o deslocamento temporal, respectivamente, entre o sensor Si e a câmera c. Em geral, estas constantes não deverão ser números inteiros. As relações entre as coordenadas temporais dos dados de um sensor com as coordenadas temporais da sequência de vídeo da câmera, capturadas pela Equação 4.1, induzem uma relação global, a qual pode ser representada pela reta de N + 1 dimensões ζ a seguir: ζ = {[α1 . . . αN + 1]⊤t + [β1 . . . βN + 1]⊤ |t ∈ ℜ} (4.2) 4 TÉCNICA DE SINCRONIZAÇÃO PROPOSTA 79 A propriedade chave desta reta, pela qual a estimativa de pontos sobre a mesma pode ser realizada sem o conhecimento prévio do alinhamento temporal entre os sensores e a câmera, permite a elaboração de um algoritmo simples para sua reconstrução a partir das trajetórias dos sensores na cena bem como de suas respectivas projeções no plano de imagem da câmera de referência. Considere, por exemplo, a Figura 4.1 onde uma câmera visualiza dois sensores móveis na cena de interesse. Nesta figura, as trajetórias dos centros de massa dos sensores no sistema de coordenadas do mundo são representadas por Q1 (·) e Q2 (·), enquanto suas projeções no plano de imagem da câmera são denotadas por q1 (·) e q2 (·), respectivamente. Suponha que as trajetórias dos sensores no plano de imagem tenham sido estimadas mediante o uso de um sistema de rastreamento automático de objetos (SHI; TOMASI, 1994; ISARD; MACCORMICK, 2001; JEPSON; FLEET; ELMARAGHI, 2003). O sistema de rastreamento é o que torna possível determinar a posição em pixels do sensor em cada quadro da sequência de imagens obtida pela câmera. É importante que a trajetória do sensor seja uma trajetória contínua, ou seja, uma trajetória suave pois a complexidade de movimentos torna o rastreamento uma tarefa muito pesada computacionalmente, tornando o processamento em tempo real uma tarefa extremamente complexa. Devido ao fato de o sensor ser um objeto rígido pode-se escolher uma representação de forma a simplificar a tarefa de rastreamento. Conclui-se então que o modelo de rastreamento de núcleo é o método que apresenta característica mais adequadas as necessidades da pesquisa. No rastreamento de núcleo o sensor móvel é representado por uma região primitiva, esta região é determinada por uma forma fundamental que pode ser uma elipse como no exemplo da Figura 4.2. O método de rastreamento de núcleo consiste em identificar o sensor através de uma mistura de três componentes, dentro da forma fundamental, consistindo das características de aparência estável, características de transientes e processo de ruído. O movimento do sensor é determinado em termos da deformação da região rastreada um quadro após o outro. A transformação da deformação consiste da translação, (tx ,ty), rotação (a, b), e escala, s, que são relacionados de acordo com a equação 4.3: x′ y′ ! =s a b −b a ! x y ! + tx ty ! (4.3) Os parâmetros iniciais utilizados pelo rastreador em nossos experimentos com 4 TÉCNICA DE SINCRONIZAÇÃO PROPOSTA 80 Figura 4.2: Figura do robô com uma região de rastreamento no centro de massa em forma de elipse. cenas reais foram a = 5, b = 10, x = 166 e y = 6 que é a localização do centro de massa do robô que possui o sensor, no primeiro quadro da sequência. A partir daí o rastreador vai determinando as variáveis x′ , y′ e atualizando as matrizes quadro a quadro. A partir do algoritmo acima a trajetória do sensor na câmera é determinada com um erro já previamente conhecido. As trajetórias dos sensores no sistema de coordenadas do mundo podem ser estimados com o auxílio de odômetros e sistemas de GPS, por exemplo. Assumindo-se que a câmera utilizada é uma câmera do tipo pinhole e está calibrada, pode-se estimar para cada posição do sensor no sistema de coordenadas do mundo sua correspondente projeção no plano de imagem da câmera, a partir da utilização de uma matriz de projeção P. Na Figura 4.1, por exemplo, duas amostras de posições Q1 (t1 ) e Q2 (t2 ) dos sensores no sistema de coordenadas do mundo possuem projeções q̃1 (t1 ) e q̃2 (t2 ) no plano de imagem, as quais foram calculadas usando-se P. Observa-se na Figura 4.1 que a partir da busca de associações no plano de imagem entre posições dos sensores estimadas pelo rastreador com as suas posições calculadas por meio da matriz de projeção P, pode-se adicionalmente inferir correspondências entre as coordenadas temporais dos dados dos sensores e da câmera. Considere, por exemplo, as posições instantâneas q1 (t) e q2 (t) na Figura 4.1, correspondentes ao quadro t da sequência de vídeo. Assumindo-se que q1 (t) e q2 (t) 4 TÉCNICA DE SINCRONIZAÇÃO PROPOSTA 81 Figura 4.3: Exemplo de um espaço de alinhamentos temporais "candidatos"(votos) para dois sensores na cena. Neste caso, tem-se um espaço de 3 dimensões. tenham correspondências temporais com as posições Q1 (t1) e Q2 (t2) no sistema de coordenadas do mundo, conclui-se que as projeções q̃1 (t1 ) e q̃2 (t2) deverão coincidir no plano de imagem com os pontos q1 (t) e q2 (t) ou estarem a distâncias ε1 e ε2 , cujos valores são funções dos erros, do rastreador e do sistema de calibração da câmera. Note que a partir desta observação, pode-se inferir que as coordenadas temporais t, t1 e t2 referentes ao quadro da sequência de vídeo e das amostras das posições dos dois sensores, respectivamente, devem representar o mesmo instante de tempo no qual as medições realizadas pelos sensores nas posições Q1 (t1 ) e Q2 (t2) foram efetuadas. Considerando-se um número genérico N de sensores na cena, pode-se derivar com base neste raciocínio um conjunto ν de pontos com N + 1 dimensões que representam alinhamentos temporais "candidatos” entre os dados dos N sensores e os quadros da sequência de vídeo da câmera: ν = {[t . . .tn]⊤ |D(qi (t), q̃ j (t j )) ≤ ε , para (i, j) = 1, . . ., N}, (4.4) onde D(·) é uma função que calcula a distância euclidiana entre dois pontos e "representa” um valor de tolerância em pixels, o qual é dado pela média dos erros dos sistemas de rastreamento e calibração. Em geral, o conjunto ν definido na Equação 4.4 é composto não somente pelos 4 TÉCNICA DE SINCRONIZAÇÃO PROPOSTA 82 pontos sobre os quais passa a reta que captura as relações temporais entre os dados dos sensores e da sequência de vídeo, mas também por diversos pontos espúrios, os quais eventualmente também poderão satisfazer a restrição definida na Equação 4.4. A Figura 4.3 ilustra um possível espaço de alinhamentos temporais "candidatos” (votos) no caso de uma cena composta por apenas dois sensores móveis. Dado o espaço de votos, o próximo passo consiste em reconstruir a reta responsável por representar a linha do tempo de referência. Para se reconstruir tal reta, a metodologia proposta neste trabalho utiliza o algoritmo RANSAC. Observa-se pela Equação 4.1 que o mínimo de pontos necessários para determinar os parâmetros livres do modelo que recupera o alinhamento temporal entre a câmera e os sensores são 2, uma vez que trata-se de uma equação linear. Aleatoriamente é selecionado um subconjunto S1 de dois pontos entre todos os dados formando um conjunto W e o modelo inicial, que no problema aqui pesquisado é o de uma reta. Utiliza-se o modelo da reta para determinar o subconjunto S1∗ de todos os pontos que estão dentro de uma tolerância de erro da reta que se ajustou aos parâmetros determinados pelos dois pontos. O conjunto S1∗ é chamando conjunto consenso de S1 . Se a quantidade de dados presentes no conjunto S1∗ é maior que um valor l, que é uma função da estimativa do número de dados com erros grosseiros em W , usa-se S1∗ para determinar um novo modelo M1∗ . Se a quantidade de dados de S1∗ é menor que l. aleatoriamente seleciona um novo subconjunto S2 e repete o processo acima. Se após um número predeterminado de repetições, nenhum conjunto consenso com l ou mais dados foi encontrado, É feita a escolha do conjunto com o maior número de dados encontrado, ou termina em falha. Existem três parâmetros principais para o algoritmo RANSAC: 1. A tolerância ao erro utilizada para determinar se é ou não compatível com o modelo linear proposto 2. O número de iterações para que sejam testados subconjuntos 3. O parâmetro l, que é o número de pontos compatíveis usados para implicar que o modelo correto foi encontrado. Se o modelo é uma função simples dos pontos de dados ou seja é possível determinar um modelo que prevê o comportamento de todos os dados, é útil estabelecer a tolerância ao erro analiticamente. A variação na tolerância de erro é normalmente 4 TÉCNICA DE SINCRONIZAÇÃO PROPOSTA 83 relativamente pequena considerando-se o valor dos erros grosseiros. Então um único erro para todos os dados normalmente é suficiente. No entanto, não existe nenhuma regra para determinação deste parâmetro. Neste caso foi feito testes com três parâmetros diferentes sendo escolhido os erros máximos de 1,3 e 5 amostras de forma que o tempo máximo de erro de alinhamento temporal não ultrapasse 1,66s. O número máximo de iterações z foi determinado através da fórmula log(1 − p) z= , log(1 − r2 ) (4.5) onde p é a probabilidade de que pelo menos um dos subconjuntos selecionados esteja sem erros e r é a probabilidade que um conjunto selecionado aleatoriamente seja um ponto sobre a reta determinada pelo modelo. A Equação 4.5 expressa o fato que z deve ser grande o suficiente para garantir que, com a probabilidade p, pelo menos um par de candidatos aleatoriamente selecionado corresponda ao modelo linear selecionado. Usou-se p = 0, 99 e r = 0.05(z = 1800 iterações) para todos os experimentos, os quais são valores bastante conservadores que garantem resultados exatos em todos os experimentos, como será demonstrado no capítulo 5. Para o nosso método podemos observar que todas as vezes que o algoritmo RANSAC foi utilizado encontrou o modelo correto, devido a isto, não foi utilizado o parâmetro l. Após a estimativa realizada pelo RANSAC do potencial conjunto de candidatos sobre os quais a reta deva passar, a metodologia proposta neste projeto é que se utilize o método dos mínimos quadrados sobre este conjunto para se estimar os parâmetros da reta. Dada a equação da reta, pode-se então estabelecer as relações temporais demandadas pela aplicação em questão. Consequentemente para especificar completamente o algoritmo de alinhamento respondemos três questões: 1. Como determinar a trajetória característica qi (·), para i = 1, . . ., N? 2. Como estimar o conjunto ν para cada qi (ti )? 3. Como determinar o alinhamento temporal ζ A seguir é apresentado o algoritmo desenvolvido para a técnica de sincronização 4 TÉCNICA DE SINCRONIZAÇÃO PROPOSTA proposta neste trabalho. 84 4 TÉCNICA DE SINCRONIZAÇÃO PROPOSTA 85 Algoritmo de alinhamento temporal Entrada 1: N; {Número de sensores} 2: P; Matriz de parâmetros da câmera Saída 3: [α1 . . . αN ]⊤ ; { Parâmetros de dilatação temporal da reta de alinhamento ζ .} 4: [β1 . . . βN ]⊤ ; {Parâmetros de deslocamento temporal da reta do tempo ζ . } INÍCIO 5: Passo 1 - Gerar o espaço de votos: ν = [t . . .tn ]⊤ |D(qi (t), q̃ j (t j )) ≤ ε para (i, j) = 1, . . . , N. 6: for i ←− 1 to N do 7: Obtenha a trajetória dos sensores no mundo Qi (·). 8: end for 9: for i ←− 1 to N do 10: Faça o rastreamento da trajetória do sensor q̃i (·) no plano de imagem 11: end for 12: for i ←− 1 to N do 13: 14: for c ←− 1 to Cada ponto da trajetória no mundo do for d ←− 1 to cada ponto da trajetória do sensor i do if a distância euclidiana D entre qi (t) posição do sensor obtida 15: pelo rastreador estiver a uma distância menor que ε de q̃i (t j ) (posição projetada) 16: if esta distância é a menor encontrada 17: Armazene as coordenadas temporais t do quadro da câmera para cada amostra t j do sensor 18: end if 19: 20: 21: end if end for end for 22: Construa o conjunto νqi (t) através dos dados de todos os quadros t concatenando então na forma de uma matriz unidemensional [t1 . . .tN ] 23: end for 24: Construa o espaço de votos fazendo a união de todos os conjuntos νqi (t) . 25: {Passo 2- Determina a reta ζ para a junção de todos os conjuntos estimados νqi (t) } 4 TÉCNICA DE SINCRONIZAÇÃO PROPOSTA 86 26: Aplique o algoritmo do RANSAC no espaço de votos para determinar o conjunto de dados que melhor ajusta a linha ζ desejada. 27: Aplique o método dos mínimos quadrados sobre todo o conjunto de dados estimados pelo RANSAC para determinar os parâmetros da reta: [α1 . . . αN ]⊤ e [β1 . . . βN ]⊤ . 28: return([α1 . . . αN ]⊤ [β1 . . . βN ]⊤ ) END Como podemos observar o método de sincronização proposto utiliza um algoritmo bastante simples. No próximo capítulo descreveremos os resultados da aplicação deste algoritmo em seqüências reais e sintéticas. 87 5 Resultados experimentais Neste capítulo, é apresentado e discutido os resultados experimentais da aplicação da técnica de sincronização desenvolvida em uma cena real, em cenas sintéticas e um resultado adicional referente à extensão da aplicação da técnica para sincronização de câmeras que não possuem sobreposição de campos de visão. Primeiro, na Seção 5.1, fez-se uma análise de seqüências reais e sintéticas que tem como objetivo mostrar o comportamento do algoritmo de sincronização temporal em uma rede de sensores móveis, buscando-se avaliar a aplicabilidade, a escalabilidade e a exatidão da metodologia proposta diante da variação de parâmetros críticos para a qualidade dos alinhamentos temporais calculados. Na Subseção 5.1.1 são apresentados os resultados obtidos para a simulação de diversos cenários onde as variáveis de interesse do sistema puderam ser controladas. Foram Apresentadas medidas quantitativas da qualidade dos alinhamentos temporais como função de três fatores principais: (1) A exatidão da estimativa inicial dos parâmetros intrínsecos e extrínsecos que capturam as relações geométricas entre as trajetórias dos sensores no mundo e suas projeções no plano de imagem; (2) a quantidade de ruído no sistema de rastreamento e (3) o número de sensores sincronizados. Na Sub-seção 5.1.2 mostramos a aplicação da técnica em uma seqüência de vídeo obtida de um cenário dinâmico real composto por um único sensor móvel, especificamente um robô Pioneer 3 AT produzido pela Active Media (ver Figura 5.9(a)). Por meio deste cenário simples conseguimos demonstrar a aplicabilidade do método que foi exaustivamente testado com as seqüências sintéticas. 5.1 Sincronização de Sensores Móveis 88 5.1 Sincronização de Sensores Móveis 5.1.1 Seqüências Sintéticas Por meio do uso de um simulador, desenvolvido com o auxílio do software MATLAB, foram criadas cenas dinâmicas artificiais contendo sensores móveis distribuídos em uma rede ad hoc. Nestes cenários artificiais, foram simulados os processos de monitoramento dos sensores a partir de uma câmera de vídeo calibrada, responsável pela geração das seqüências de vídeo sintéticas. Os parâmetros intrínsicos e extrínsicos referentes à câmera artificial possuíam valores idênticos aos valores dos parâmetros de uma câmera real (modelo Sony DCR-TRV320 Digital Camcorder) utilizada em experimentos anteriores. Nesta fase dos experimentos, buscou-se fundamentalmente estudar os efeitos de dois parâmetros críticos para a exatidão do alinhamento temporal entre os sensores, especificamente o (i) nível de ruído do sistema de rastreamento e o (ii) nível de ruído no sistema de calibração da câmera. Os valores atribuídos a estes parâmetros, bem como aos demais parâmetros utilizados durante as simulações são listados na Tabela 5.1. Os níveis de ruído no sistema de rastreamento e no sistema de calibração foram simulados como ruídos brancos gaussianos de média zero e desvios padrões variáveis conforme a Tabela 5.1. Para cada par possível de níveis de ruído de rastreamento e calibração, foram simulados 100 eventos dinâmicos distintos na cena artificial. Em seguida, dados os espaços de votos dos eventos dinâmicos simulados, foram calculados os percentuais das retas que capturam o alinhamento temporal e que levam a erros de alinhamento temporal médios menores ou iguais a 1, 3 e 5 amostras. Especificamente, os valores destes erros são dados pela média dos valores absolutos Parâmetros Num. Sensores Erro Rastreador Erro Calibração Num. Quadros p (RANSAC) r (RANSAC) ε (RANSAC) Valores {1, 2} {1, 2, 3, 4, 5, 6, 7, 8, 9, 10} pixels {1, 2, 3, 4, 5, 6, 7, 8, 9, 10} pixels 256 0, 99 0, 05 0, 5 Tabela 5.1: Valores dos parâmetros utilizados durante as simulações. 5.1 Sincronização de Sensores Móveis 89 das diferenças entre as coordenadas temporais determinadas pela reta estimada e as coordenadas temporais determinadas pela reta de referência que modela o deslocamento temporal real entre os sensores e a câmera: tik = αit k + βi , (5.1) onde tik é a coordenada temporal da grandeza física medida pelo sensor Si (i = 1, . . ., N) e t k é o número do quadro na seqüência de vídeo obtida pela câmera de referência c determinados pelo modelo. Por esta razão, se tie representa a coordenada temporal correspondente a t k , determinada usando a reta estimada pelo nosso método, o erro de alinhamento temporal médio εt é dado por: εt = 1 M−1 e k |ti (t ) − tik (t k )|, M t∑ k =0 (5.2) onde M é o número de quadros na seqüência de vídeo obtido pela câmera. Dentre os experimentos realizados com cenas sintéticas, foram selecionados e são mostrados neste trabalho alguns resultados obtidos para os casos 2D e 3D, os quais referem-se, respectivamente, ao cenário trivial no qual as cenas contém apenas um sensor móvel e ao cenário no qual as cenas possuem dois sensores móveis. Nas Figuras 5.1 e 5.2 observa-se espaços de votos 2D e 3D, onde foram simulados ruídos no sistema de rastreamento com desvio padrão 5 e 10 pixels. Pode-se observar também as retas que recuperam o alinhamento temporal entre os sensores e a câmera e que levam a erros menores ou iguais a 1 amostra Figuras 5.1(a)-(b) e 5.2(a)-(b), 3 amostra Figuras 5.1(c)-(d) e 5.2(c)-(d) e 5 amostras Figuras 5.1(e)-(f) e 5.2(e)-(f) . Um outro experimento de interesse é a variação do ruído no sistema de calibração cujos resultados são apresentados nas Figuras 5.5 e 5.6. Neste experimento temos que o desvio padrão do ruído no sistema de rastreamento é fixo e igual a 2 pixels. Foi acrescentado um ruído nas matrizes de projeção com desvio padrão de 5 e 10 pixels. Os resultados exibidos nas Figuras 5.3 e 5.4, correspondem aos percentuais de retas de alinhamento temporal, onde o desvio padrão no ruído do rastreador varia de acordo com a Tabela 5.1. Estes gráficos mostram resultados de alinhamentos temporais que levam a erros médios menores ou iguais a 1,3 e 5 amostras. É importante ressaltar que estes erros são razoáveis para a grande maioria das aplicações. Analisando-se a Figura 5.3(a), observa-se que em cenários nos quais o ruído no sistema de rastreamento é pequeno (desvio padrão igual a 1), o método de alinha- 5.1 Sincronização de Sensores Móveis 90 mento temporal proposto conseguiu recuperar, em pouco mais de 50% das vezes, retas que levam a erros médios menores ou iguais a 1 amostras. Este resultado apresenta-se muito conservador já que o erro de uma amostra, em uma câmera comum de 30 quadros por segundo (30fps), que representa uma precisão no alinhamento de 33,33ms. É importante considerar que esta precisão dependerá apenas da taxa de quadros da câmera e não do método. Utilizando uma câmera com a taxa de quadros maior a precisão aumentará sem a necessidade de alteração no método de sincronização. Observa-se ainda neste gráfico que mesmo para condições de ruídos extremamente adversas no sistema de rastreamento, como para ruídos em torno de 10 pixels, ainda assim o algoritmo consegue determinar o alinhamento correto em aproximadamente 10% dos casos. Conclui-se que isto é uma característica importante do nosso método, pois este ruído de 10 pixels, refere-se ao ruído adicionado na trajetória do robô projetada no plano de imagem da câmera, o que representaria um erro de projeção igual 20,08% do seu campo de visão. Este erro é sem dúvida um valor que dificilmente será encontrado em qualquer sistema de projeção da trajetória dos sensores móveis. Observamos que pelo gráfico da Figura 5.3(b), para os mesmo níveis de ruídos mas para retas que recuperam o alinhamento com erros menores ou iguais a 3 amostras o cenário já mostra-se mais favorável levando a porcentagem de retas recuperadas superiores a 60% mesmo para desvio padrão dos ruídos de até 10 pixels. A porcentagem de alinhamentos que recuperam retas com erros inferiores a 5 amostras está acima de 70% mesmo para condições onde o desvio padrão do ruído no sistema de rastreamento é de 10 pixels como mostrado na Figura 5.3(c). Para o caso onde tem-se uma cena composta por dois sensores s1 e s2 mostrado na Figura 5.4 tem-se um comportamento do gráfico de percentual de retas recuperadas extremamente parecido com os gráficos da Figura 5.3 sugerindo que a exatidão do algoritmo de alinhamento independe da quantidade de sensores na cena. Nas Figuras 5.7 e 5.8 são exibidos os percentuais de retas recuperadas com erros menores ou iguais a 1, 3 e 5 amostras, para o experimento onde tem-se um erro no sistema de rastreamento fixo e igual a 2 pixels e é feita a variação do ruído no sistema de calibração da câmera. Estes resultados mostram que o ruído acrescentado no sistema de calibração não teve o mesmo efeito que o ruído acrescentado no sistema de rastreamento. Especificamente, comparando-se as Figuras 5.7 e 5.3 observa-se que o ruído acrescentado no sistema de rastreamento, tende a ser mais crítico que o ruído no sistema de calibração da câmera. Observa-se, por exemplo, que para um ruído no sistema de calibração igual a 5 pixels e o erro máximo no número de amostras 5.1 Sincronização de Sensores Móveis 91 igual a 3, Figura 5.7(b) tem-se o percentual de acerto é de aproximadamente 100%. Já para as mesmas condições mas com a variação do ruído no sistema de rastreamento, Figura 5.3(b), temos um percentual de acerto de aproximadamente 80%. Na Figura 5.8 tem-se os gráficos de percentuais para retas recuperadas para uma cena composta por dois sensores. Nestes experimentos, nos quais estudou-se o efeito da variação do ruído no sistema de calibração observa-se que os percentuais de retas que levaram a erros médios de alinhamento temporal menores ou iguais a 1,3 e 5 amostras são em geral menores que os percentuais de retas correspondentes mostrados na Figura 5.4 que representam os resultados obtidos com os experimentos nos quais se estudou-se o efeito da variação do ruído no sistema de rastreamento. No entanto observa-se que este percentual foi reduzida consideravelmente. Mas quando se compara estes resultados com os obtidos na Figura 5.8 vê-se que a diferença se situa em aproximadamente 2 pixels, o que é exatamente o ruído acrescentado no sistema de rastreamento. É importante observar que no experimento da Figura 5.4 o ruído no sistema de calibração é da ordem de sub-pixel tornando o erro total igual ao erro apresentado no gráfico. Já para estes experimentos o erro líquido é o erro apresentado pelo gráfico da Figura 5.8 mais o erro do sistema de rastreamento com desvio padrão igual a 2 pixels. 5.1.2 Seqüências Reais A seqüência de vídeo real utilizada para validar a aplicabilidade do método proposto refere-se a uma cena contendo um único sensor móvel, especificamente um robô Pioneer 3 AT produzido pela Active Media, conforme ilustrado na Figura 5.9(a). O monitoramento da cena foi realizado por uma câmera Sony DCR-SR62, tendo a mesma sido calibrada previamente (STROBL et al., 2008). O comprimento da seqüência de vídeo corresponde a 750 quadros, tendo os mesmos resolução de 720 × 480 pixels. As trajetórias do robô no sistema de coordenadas do mundo e no plano de imagem da câmera foram determinadas, respectivamente, por um sistema de localização visual (GARCIA et al., 2007) e por um rastreador visual automático (JEPSON; FLEET; ELMARAGHI, 2003). A partir das amostras de posição do sensor móvel no sistema de coordenadas do mundo e usando-se os quadros da câmera responsável pelo monitoramento, determinou- 5.2 Sincronização de Câmeras que não Possuem Sobreposição de Campos de Visão 92 se visualmente a reta real que recupera o alinhamento temporal entre a câmera e o sensor, sendo tal estimativa modelada pela seguinte equação: tc = 4 ∗ts1 −271, onde ts1 representa a coordenada temporal da amostra adquirida pelo sensor, e tc corresponde ao número do quadro obtido pela câmera. A Figura 5.9(b) ilustra a reta estimada pelo método proposto, a qual recupera o alinhamento temporal entre a câmera e o sensor: tc = 3, 9948 ∗ ts1 − 269, 2136. Os parâmetros usados pelo algoritmo RANSAC são os mesmos ilustrados na Tabela 5.1. A reta exibida leva a um erro médio de sincronização de aproximadamente 7,5ms, para uma seqüência de vídeo de 1,5s, sendo este resultado bastante razoável para muitas aplicações em redes de sensores móveis. 5.2 Sincronização de Câmeras que não Possuem Sobreposição de Campos de Visão Nesta seção será mostrado os resultados adicionais para sincronização de N seqüências de vídeo não sincronizadas adquiridas por diferentes câmeras que não possuem sobreposição de campos de visão. Esta metodologia de sincronização de câmeras é útil na sincronização de sensores que estão em uma rede multihop onde hops diferentes são visualizados por câmeras diferentes. Infelizmente, embora a sincronização temporal do conjunto de câmeras possa ser realizado via hardware, por exemplo, por meio do envio de sinais de sincronização (KITAHARA et al., 2001), esta abordagem possui um alto custo e precisa ser feita anteriormente ao processo de aquisição das sequências de vídeo. Alternativamente, métodos de sincronização via software vêm sendo utilizados com sucesso, sendo os mesmos baseados em pistas visuais presentes na cena. Esta estratégia é utilizada pela técnica apresentada neste trabalho. Qualquer método de sincronização de câmeras deve ter a capacidade de tratar os seguintes casos: • Taxas de quadros das câmeras desconhecidas; • Deslocamento temporal arbitrário entre as seqüências de vídeo; • Movimento e velocidade dos objetos arbitrários; • Existência de falhas no rastreamento de objetos, o que significa que o objeto não poderá ser rastreado por um grande número de quadros; 5.2 Sincronização de Câmeras que não Possuem Sobreposição de Campos de Visão 93 • Redução da eficiência computacional diante do aumento do número de seqüências de vídeo; • Setup do conjunto de câmeras é desconhecido. Estas necessidades foram tratadas por nós durante o desenvolvimento da nossa metodologia, que tratou todos os casos acima exceto o último. Especialmente, assumimos que o setup do conjunto de câmeras é composto por câmeras estacionárias, cujos parâmetros intrínsecos e extrínsecos são conhecidos a-priori. Considere o cenário ilustrado na Figura 5.10. Dado N seqüências de vídeo sem sobreposição de campo de visão, a reta que recupera o alinhamento entre as seqüências pertence ao conjunto de números reais com N + 1 dimensões (ℜN+1 ), que descreve completamente todas as relações temporais entre as seqüências e o movimento do sensor na cena. Para demonstrar a aplicabilidade do nosso algoritmo são apresentados resultados experimentais com seqüências reais, onde tem-se como objetivo sincronizar N seqüências de vídeo adquiridas por câmeras que não possuem sobreposição de campos de visão. Especificamente, nossa metodologia foi testada em uma cena composta por duas câmeras de vídeo e um sensor móvel (robô Pioneer 3 AT da Active Media). As dimensões de ambas as imagens dos dois conjuntos de dados são 720 x 480 pixels. Os dados foram obtidos por duas câmeras Sony DCR-SR62 sem sobreposição de campo de visão. As câmeras capturam os quadros com taxas idênticas e iguais a 30fps, implicando uma unidade de dilatação temporal (α = 1). A referência verdadeira do deslocamento temporal entre as seqüências de vídeo era β = 292 ± 0.5 quadros. Os valores dos parâmetros principais usados em nosso alinhamento temporal estão listados na Tabela 5.1. Os dados de localização 3D dos sensores foram estimados a uma taxa de 7.5 amostras por segundo usando a localização visual proposto por Garcia el al. (2007). Os quadros na seqüência de vídeo contendo um único objeto rígido (sensor) movendo sobre um fundo estático, ao longo uma trajetória suave como ilustrado na Figura 5.12(a)-(b). Para a tarefa de rastreamento foi utilizado o rastreador WSL (JEPSON; FLEET; EL-MARAGHI, 2003) para rastrear o sensor (trajetória azul na Figura 5.12(a)(b). O rastreador WSL foi inicializado manualmente no primeiro quadro de cada seqüência. As câmeras foram calibradas de acordo com o algoritmo implementado por Strobl 5.2 Sincronização de Câmeras que não Possuem Sobreposição de Campos de Visão 94 et al.(??). Na Figura 5.12(a)-(b) mostramos a projeção 3D das localizações no plano de imagens de ambas as câmeras (trajetórias vermelhas). Observe que estas projeções definem trajetórias muito ruidosas nos planos de imagem. Foi usado o erro de alinhamento temporal médio como nossa unidade básica de medida para avaliar a exatidão do nosso método. Especificamente, seu valor é dado pela média dos valores absolutos das diferenças entre as coordenadas temporais determinadas pela reta estimada e as coordenadas temporais determinadas pela reta de referência que modela o deslocamento temporal real entre as câmeras: g tc2 = tc1 + 292 (5.3) onde tc1 representa a coordenada temporal da seqüência obtida pela câmera c1 e g tc2 representa sua coordenada temporal correspondente na seqüência obtida pela câmera c2 , determinada pelo modelo real. e representa a coordenada temporal correspondente a t , Por esta razão, se tc2 c1 determinada usando-se a reta estimada pelo nosso método, o erro de alinhamento temporal médio εt é dado por: 1 M−1 e g |tc2(tc1 ) − tc2 (tc1)| εt = ∑ M tc1 =0 (5.4) onde M é o número de quadros na seqüência de vídeo obtido pela câmera c1 (neste caso, M = 756). Na Figura 5.11(a)-(b), são mostrados os espaços de votos para o sensor s se movendo e duas câmeras c1 e c2 usados em nossos experimentos. As equações de retas recuperadas; tc1 = 3.9979ts − 269.8932 e tc2 = 4.0028ts + 21.6761 descreve o alinhamento temporal entre o sensor e as câmeras c1 e c2 , respectivamente. A partir e = 1.0011t + 291.8797 que recupera o destas equações obtém-se a nova equação tc2 c1 alinhamento temporal entre duas sequências de vídeo. De acordo com a Equação 5.4, a reta reconstruída produz um erro de alinhamento temporal médio de 0.9764 quadros ou 32.5 milisegundos. Por esta razão, nossos resultados mostram que o método pode ser bem sucedido para sincronizar as seqüências de vídeos que possuem grandes desalinhamentos temporais (292 quadros neste exemplo). Este cenário pode ser crítico para muitas das metodologias de alinhamento temporal existentes. As Figuras 5.12(c)-(d) confirmam 5.2 Sincronização de Câmeras que não Possuem Sobreposição de Campos de Visão 95 que o alinhamento temporal estimado entre as seqüências de vídeo foi efetivamente recuperado. Na Figura 5.12(c), A imagem exibida (antes do alinhamento temporal) foi criada pela sobreposição da banda verde de um quadro tc2 com as bandas vermelhas e azul do quadro tc1 = (tc2 − β g )/α g , usando-se os parâmetros α g e β g da reta de referência que modela o desalinhamento temporal entre as câmeras. Observe o desalinhamento temporal entre as seqüências de vídeo. Na Figura 5.12(d), a imagem (depois do alinhamento temporal) foi criada pela substituição da banda verde do quadro tc2 pela banda verde do quadro tc1 = (tc2 − β e )/α e , onde α e ,β e são parâmetros estimados pelo nosso método. Note que as seqüências foram perfeitamente sincronizadas desaparecendo o efeito da presença de dois robôs sensores. 5.2 Sincronização de Câmeras que não Possuem Sobreposição de Campos de Visão 300 300 250 Ts1 = 3.0000 * t + 41.1315 → Número da amostra (S1) Número da amostra (S1) 250 200 150 100 50 0 0 Ts1 = 3.0000 * t + 43.7102 → 200 150 100 50 10 20 30 40 50 60 70 0 0 80 10 20 Número da amostra (C) (a) 250 Ts1 = 3.0000 * t + 44.8036 → Número da amostra (S1) Número da amostra (S1) 50 60 70 80 (b) 200 150 100 50 Ts1 = 3.0000 * t + 46.0866 → 200 150 100 50 10 20 30 40 50 60 0 0 70 10 20 Número da amostra (C) 30 40 50 60 70 Número da amostra (C) (c) (d) 300 300 250 250 Ts1 = 3.0000 * t + 45.5323 → Número da amostra (S1) Número da amostra (S1) 40 300 250 200 150 100 50 0 0 30 Número da amostra (C) 300 0 0 96 Ts1 = 3.0000 * t + 44.8497 → 200 150 100 50 10 20 30 40 Número da amostra (C) (e) 50 60 70 0 0 10 20 30 40 50 60 70 Número da amostra (C) (f) Figura 5.1: Espaços de votos 2D obtido por meio da simulação para uma cena artificial contendo um único sensor s1 . A trajetória do sensor rastreada na seqüência de vídeo sintética na câmera foi corrompida com um ruído ruído gaussiano branco de média zero e desvio padrão (a)-(c)-(e) 5 pixels e (b)-(d)-(f) 10 pixels. A matriz de calibração utilizada em todos os experimentos corresponde à mesma de uma câmera real (modelo Sony DCR-TRV320), com erro em subpixels. Os parâmetros de desalinhamento temporal simulados são α = 3.0 e β = 47 para todas as figuras. Em todos os casos, observamos nos gráficos as retas que recuperam o alinhamento temporal entre o sensor e a câmera, e que levam a erros menores do que (a)-(b) 1 amostra, (c)-(d) 3 amostras e (e)-(f) 5 amostras. 5.2 Sincronização de Câmeras que não Possuem Sobreposição de Campos de Visão α = [1.2479 1.9494] β = [36.1301 36.1743] α = [1.0000 2.0290] β = [46.0000 33.3827] 120 Número da amostra (C) Número da amostra (C) 120 100 80 60 40 20 0 200 Nú 100 80 60 40 20 0 me 150 ro da 100 am os tra (S 2) 300 200 50 100 0 0 da ero Núm tra mos (S1 ) a Nú 200 me 150 ro da 100 am os tra (S 2) 300 200 50 100 0 (a) Número da amostra (C) Número da amostra (C) 100 80 60 40 20 100 80 60 40 20 0 300 150 ro da a 100 mo str a( S2 S1) 200 50 m 100 0 ) a( ostr aa ro d e Núm 0 Nú 200 me 150 ro da 100 am os tra (S 2) 300 50 m 100 0 0 Núm aa ro d a( ostr e (d) α = [0.9860 1.9505] β = [46.2207 35.5182] 120 Número da amostra (C) 120 100 80 60 40 20 0 200 100 80 60 40 20 0 me 150 ro da 100 am os tra (S 2) S1) 200 (c) α = [0.9752 2.0017] β = [48.0320 33.8975] Número da amostra (C) a 120 0 200 Nú Núm ) (S1 α = [0.9880 1.9094] β = [46.2637 36.5424] 120 me 0 da ero tra mos (b) α = [1.1509 1.9916] β = [41.1887 34.5399] Nú 97 300 200 50 100 0 0 (e) er Núm o da 1) a (S str amo Nú 200 me 150 ro da 100 am os tra (S 2) 300 200 50 100 0 0 Núm er o da 1) a (S str amo (f) Figura 5.2: Espaços de votos 3D obtidos para cenas artificiais contendo dois sensores móveis s1 e s2 . A trajetória do sensor rastreado na sequência de vídeo sintética foi corrompida com um ruído ruído gaussiano branco de média zero e desvio padrão (a)(c)-(e) 5 pixels e (b)-(d)-(f) 10 pixels. A matriz de calibração utilizada em todos os experimentos corresponde à mesma de uma câmera real (modelo Sony DCR-TRV320), com erro em subpixels. Os parâmetros de desalinhamento temporal simulados são α = [1.0 2.0] e β = [46.0 34.0] para todas as figuras. Em todos os casos observamos nos gráficos as retas que recuperam o alinhamento temporal entre o sensor e a câmera, e que levam a erros menores do que (a)-(b) 1 amostra, (c)-(d) 3 amostras e (e)-(f) 5 amostras. 5.2 Sincronização de Câmeras que não Possuem Sobreposição de Campos de Visão 98 100 90 80 % de retas 70 60 50 40 30 20 10 0 0 2 4 6 8 Desvio padrão do ruído do rastreador 10 (a) 100 90 80 % de retas 70 60 50 40 30 20 10 0 0 2 4 6 8 Desvio padrão do ruído do rastreador 10 (b) 100 90 80 % de retas 70 60 50 40 30 20 10 0 0 2 4 6 8 Desvio padrão do ruído do rastreador 10 (c) Figura 5.3: Percentuais de retas que levam a erros médios de alinhamento temporal menores ou iguais a (a) 1, (b) 3 e (c) 5 amostras para níveis de ruído no sistema de rastreamento de acordo com a Tabela 5.1.1, dada uma cena composta por apenas um sensor s1 e uma matriz de calibração com o erro em subpixels. 5.2 Sincronização de Câmeras que não Possuem Sobreposição de Campos de Visão 99 100 90 80 % de retas 70 60 50 40 30 20 10 0 0 2 4 6 8 Desvio padrão do ruído do rastreador 10 (a) 100 90 80 % de retas 70 60 50 40 30 20 10 0 0 2 4 6 8 Desvio padrão do ruído do rastreador 10 (b) 100 90 80 % de retas 70 60 50 40 30 20 10 0 0 2 4 6 8 Desvio padrão do ruído do rastreador 10 (c) Figura 5.4: Percentuais de retas que levam a erros médios de alinhamento temporal menores ou iguais a (a) 1, (b) 3 e (c) 5 amostras para níveis de ruído no sistema de rastreamento de acordo com a Tabela 5.1 e uma matriz de calibração com erro em subpixels. As curvas em azul e vermelho se referem, respectivamente, à sincronização de um sensor s1 e à sincronização de um sensor s2 com a câmera de referência c, considerando uma cena artificial composta por dois sensores. 5.2 Sincronização de Câmeras que não Possuem Sobreposição de Campos de Visão 300 300 250 Ts1 = 0.9803 * t + 34.6176 → Número da amostra (S1) Número da amostra (S1) 250 200 150 100 50 0 0 Ts1 = 0.9755 * t + 27.0763 → 200 150 100 50 50 100 150 200 0 0 250 50 Número da amostra (C) (a) Ts1 = 0.9887 * t + 29.9924 → 250 Ts1 = 0.9861 * t + 31.8095 → 250 Número da amostra (S1) Número da amostra (S1) 200 (b) 200 150 100 50 200 150 100 50 50 100 150 200 0 0 250 50 Número da amostra (C) 100 (c) 200 250 (d) 250 Ts1 = 0.9847 * t + 32.2664 → Ts1 = 0.9717 * t + 38.1412 → 200 Número da amostra (S1) 250 150 Número da amostra (C) 300 Número da amostra (S1) 150 300 250 200 150 100 150 100 50 50 0 0 100 Número da amostra (C) 300 0 0 100 50 100 150 Número da amostra (C) (e) 200 250 0 0 50 100 150 200 250 Número da amostra (C) (f) Figura 5.5: Espaços de votos 2D obtidos por meio da simulação para uma cena artificial contendo um único sensor s1 . A trajetória do sensor rastreado na sequência de vídeo sintética foi corrompida com um ruído ruído gaussiano branco de média zero e desvio padrão 2. A matrizes de calibração utilizada em todos os experimentos corresponde à mesma de uma câmera real (modelo Sony DCR-TRV320), adicionado um ruído gaussiano branco de média zero e desvio padrão (a)-(c)-(e) 5 pixels (b)-(d)-(f) 10 pixels. Os parâmetros de desalinhamento temporal simulados são α = 1.0 e β = 32.0 para todas as figuras. Em todos os casos observamos nos gráficos as retas que recuperam o alinhamento temporal entre o sensor e a câmera, e que levam a erros menores do que (a)-(b) 1 amostra, (c)-(d) 3 amostras e (e)-(f) 5 amostras. 5.2 Sincronização de Câmeras que não Possuem Sobreposição de Campos de Visão α = [3.1782 2.3000] β = [42.9331 7.8504] 80 α = [2.9679 1.9246] β = [44.3877 30.9180] Número da amostra (C) Número da amostra (C) 80 60 40 20 0 60 40 20 0 Nú 300 me ro da a 300 200 200 mo 100 str a( S2 100 0 ) tra mos (S1 ) Nú 300 me ro da 150 os tra aa ro d e Núm 0 200 200 am 100 100 0 ) α = [3.1546 1.9486] β = [38.1042 31.3491] Número da amostra (C) Número da amostra (C) 60 40 20 α = [2.8068 2.0590] β = [45.2056 27.8936] 80 60 40 20 0 0 200 200 150 am os tra 100 100 50 (S 2) 0 0 o da er Núm a (S str amo 1) Nú 300 me ro da 200 200 am 150 os tra 100 100 50 (S 2) 0 (c) 0 a ro d úme a (S str amo 1) N (d) α = [2.9812 2.7552] β = [43.6783 −14.7882] 60 40 20 0 α = [2.9943 1.8655] β = [44.7514 30.5777] 80 Número da amostra (C) 80 Número da amostra (C) Nú (b) 80 Nú 300 me ro da 0 S1) a( ostr m a o da mer 50 (S 2 (a) Nú 300 me ro da 101 60 40 20 0 200 am os tra 100 (S 2) 0 −50 (e) 0 100 50 Núm er o da 200 150 a (S str amo 1) Nú 300 me ro da 200 200 150 am os tra 100 100 (S 2 50 ) 0 0 o da mer (S stra amo 1) Nú (f) Figura 5.6: Espaços de votos 3D obtidos por meio da simulação de uma cena contendo 2 sensores s1 e s2 . A trajetória do sensor rastreado na sequência de vídeo sintética foi corrompida com um ruído ruído gaussiano branco de média zero e desvio padrão 2 pixels. A matrizes de calibração utilizada em todos os experimentos corresponde à mesma de uma câmera real (modelo Sony DCR-TRV320), adicionado um ruído gaussiano branco de média zero e desvio padrão (a)-(c)-(e) 5 pixels (b)-(d)-(f) 10 pixels. Os parâmetros de desalinhamento temporal simulados são α = [3.0 2.0] e β = [45.0 30.0] para todas as figuras. Em todos os casos observamos nos gráficos as retas que recuperam o alinhamento temporal entre o sensor e a câmera, e que levam a erros menores do que (a)-(b) 1 amostra, (c)-(d) 3 amostras e (e)-(f) 5 amostras. 5.2 Sincronização de Câmeras que não Possuem Sobreposição de Campos de Visão 102 100 90 80 % de retas 70 60 50 40 30 20 10 0 0 2 4 6 8 Desvio padrão do ruído da matriz de calibração 10 (a) 100 90 80 % de retas 70 60 50 40 30 20 10 0 0 2 4 6 8 Desvio padrão do ruído da matriz de calibração 10 (b) 100 90 80 % de retas 70 60 50 40 30 20 10 0 0 2 4 6 8 Desvio padrão do ruído da matriz de calibração 10 (c) Figura 5.7: Percentuais de retas que levam a erros médios de alinhamento temporal menores ou iguais a (a) 1, (b) 3 e (c) 5 amostras para níveis de ruído no sistema de calibração de acordo com a Tabela 5.1 e um ruído no sistema de rastreamento com desvio padrão igual a 2 pixels, dada uma cena composta por apenas um sensor s1 . 5.2 Sincronização de Câmeras que não Possuem Sobreposição de Campos de Visão 103 100 90 80 % de retas 70 60 50 40 30 20 10 0 0 2 4 6 8 Desvio padrão do ruído da matriz de calibração 10 (a) 100 90 80 % de retas 70 60 50 40 30 20 10 0 0 2 4 6 8 Desvio padrão do ruído da matriz de calibração 10 (b) 100 90 80 % de retas 70 60 50 40 30 20 10 0 0 2 4 6 8 Desvio padrão do ruído da matriz de calibração 10 (c) Figura 5.8: Percentuais de retas que levam a erros médios de alinhamento temporal menores ou iguais a (a) 1, (b) 3 e (c) 5 amostras para níveis de ruído no sistema de calibração de acordo com a Tabela 5.1.1 e o ruído no sistema de rastreamento com desvio padrão igual a 2 pixels. As curvas em azul e vermelho se referem, respectivamente, à sincronização de um sensor s1 e à sincronização de um sensor s2 com a câmera de referência c, considerando uma cena artificial composta por dois sensores. 5.2 Sincronização de Câmeras que não Possuem Sobreposição de Campos de Visão (a) 104 (b) Figura 5.9: (a) Cena real monitorada pelo sistema de sincronização. Neste caso, tem-se um único sensor móvel (robô Pioneer 3 AT produzido pela Active Media), cuja trajetória rastreada no vídeo é ilustrada pela curva em vermelho. (b) Espaço de votos e reta que recupera o alinhamento temporal entre o sensor móvel s1 e a câmera c. Figura 5.10: Uma cena 3D que é visualizada por N câmeras estacionárias localizadas em diferentes pontos, cujos os campos de visão não são necessariamente sobrepostos. Temos ainda um sensor movendo-se através do campo de visão de todas as câmeras. 5.2 Sincronização de Câmeras que não Possuem Sobreposição de Campos de Visão (a) 105 (b) Figura 5.11: (a) Espaço de votos para a câmera c1 e o movimento do sensor s. (b) Espaço de votos para a câmera c2 e o movimento do sensor s. Cada ponto em (a) e (b) representam alinhamentos temporais candidatos. As retas reconstruídas tc2 = 3.9979t2 − 269.8932 e tc2 = 4.0028t2 + 21.6761 descrevem o alinhamento temporal entre o sensor e as câmeras c1 e c2 respectivamente. Para estas equações a nova equação obtida tc2 = 1.011tc1 + 291.8797 que recupera o alinhamento temporal entre as duas seqüências de vídeo. 5.2 Sincronização de Câmeras que não Possuem Sobreposição de Campos de Visão 50 50 100 100 150 150 200 200 250 250 300 300 350 350 400 400 450 106 450 100 200 300 400 500 600 700 100 200 300 400 500 600 700 (a) Trajetória do sensor na câmera 1 (b) Trajetória do sensor na câmera 2 (b) Antes do alinhamento temporal (c) Depois do alinhamento temporal Figura 5.12: (a) e (b) Trajetórias dos centróides dos sensores nas câmeras 1 e 2, respectivamente. A trajetória azul foi estimada pelo rastreador WSL (JEPSON; FLEET; EL-MARAGHI, 2003), enquanto a vermelha foi obtida da projeção da trajetória 3D do sensor no plano de imagem, usando as matrizes de projeção determinadas durante o processo de calibração das câmeras. (c) Imagem anterior ao alinhamento foi criado por superposição da banda verde de um quadro t2 com a vermelha e azul do quadro t1 = (t2 − β g )/α g usando os coeficientes de alinhamento α g e β g . (d) Após o alinhamento foi criado trocando a banda verde da imagem com aquela do quadro t1 = (t2 − β e )/α e , com α e , β e determinada por nosso algoritmo. Desvios do alinhamento causam "duas imagem” artificiais 107 6 CONCLUSÃO Este trabalho de dissertação de mestrado mostrou um nova abordagem sobre o problema de se fazer a sincronização temporal em uma rede de sensores móveis com ou sem fio. Esta nova metodologia de sincronização aqui desenvolvida deverá ser capaz de contribuir para o desenvolvimento de redes que possuam uma infra-estrutura mais eficaz, eficiente e robusta às instabilidades do meio ambiente. Mais especificamente nossa metodologia de alinhamento apresenta várias características diferentes das metodologias existentes. Uma importante característica é o fato de não haver tráfego de dados, para sincronização, pela rede. Esta característica implica em dois ganhos principais, um está relacionado com a economia no consumo de energia. Já que como visto anteriormente grande percentagem deste consumo se deve a comunicação de dados. Outra grande melhoria ainda relacionada a diminuição do tráfego de dados é a diminuição da quantidade de colisões de dados na rede, o que aumenta a velocidade de transferência de dados. Através da metodologia proposta neste trabalho de dissertação de mestrado é possível atingir uma alta exatidão da sincronização apenas alterando a taxa de amostragem da câmera e dos sensores. Nosso método de sincronização é independente das taxas de amostragem, a única restrição é que esta seja constante. Devido a diversos fatores, como exemplo a possibilidade de defeito em alguns dos sensores, RSSF tem um comportamento altamente não determinístico. Nossa metodologia independe da topologia da rede e não tem nenhuma relação específica com os nós da rede. Então caso este nó saia do campo de visão da câmera ou apresente defeito, isto não afetará em nada a sincronização dos outros nós da rede. Redes de sensores sem fio normalmente tem a função de cobrir grandes áreas, como nos exemplos de plantações de soja ou monitoramento de habitat. Nestas condições é possível haver um conjunto de sensores comunicam entre si mas não conseguem se comunicar com outros conjuntos que estão distantes. Neste caso ocorre a 6.1 Trabalhos futuros 108 formação de hops. Uma rede que tem esta característica é chamada multihop. Como podemos observar esta é uma característica extremamente importante em redes de sensores sem fio. Nossa metodologia é capaz de sincronizar sensores que estão em hops diferentes. Utilizando varias câmeras com diferentes campos de visão, que não necessitam estarem sobrepostos, como visto na Seção 5.2, é possível sincronizar as câmeras entre si e consequentemente os nós sensores. cada um destes campos de visão pode ser definido como sendo um hop. Para cobrir estas áreas muito grandes é preciso também uma grande quantidade de sensores. Temos então que qualquer metodologia de sincronização suficientemente genérica deve ser escalável quanto a quantidade de sensores. Podemos concluir que nosso método é escalável pois a precisão da sincronização independe da quantidade de sensores na rede. Podemos observar através dos dados de percentagem de retas de alinhamento temporal recuperadas, que nosso método independe também das taxas de amostragem dos sensores e da câmera. Concluímos então que a metodologia de solução proposta neste trabalho de dissertação de mestrado mostra-se bastante promissora, pois nela são tratados os pontos que levam a uma solução genérica para o problema de sincronização temporal. 6.1 Trabalhos futuros Como proposta de trabalho futuros identificamos a necessidade de realizar experimentos com cenas reais onde tenhamos um cenário mais desafiado e um número maior de sensores. Esperamos com estes experimentos poder confirmar a escalabilidade do método proposto. Temos também um outro grande desafio que é realizar experimentos reais de cenas contendo sensores se movimentando em trajetórias tridimensionais. 109 Referências Bibliográficas ARVIND, K. Probabilistic clock synchronization in distributed systems. IEEE Trans. Parallel Distrib. Syst., IEEE Press, Piscataway, NJ, USA, v. 5, n. 5, p. 474–487, 1994. ISSN 1045-9219. BROOKS, T. T. et al. A review of synchronization methods in wireless sensor networks. 1st International Conference on Sensing Technology, p. 338–343, Novembro 2005. CAMILLI, A. et al. From wireless sensors to field mapping: Anatomy of an application for precision agriculture. Computers and Electronics in Agricuture., Elsevier Science Publishers B. V., Amsterdam, The Netherlands, The Netherlands, v. 58, n. 1, p. 25–36, 2007. ISSN 0168-1699. CANTZLER, H. Random sample consensus. In: . [S.l.: s.n.], 2004. CHEE-YEE; KUMAR, C. Sensor Networks: Evolution, Opportunities, and Challenges. Procedures of the IEEE, v. 91, n. 8, p. 1247–1256, 2003. CHUM, O.; MATAS, J. Randomized ransac with td,d test. In: In Proceedings of the 13th British Machine Vision Conference (BMVC. [S.l.: s.n.], 2002. p. 448–457. CRISTIAN, F. Probabilistic clock synchronization. Distributed Computing, v. 3, n. 3, p. 146–158, Setembro 2005. ELSON, J.; ESTRIN, D. Time synchronization for wireless sensor networks. In: . [S.l.: s.n.], 2001. p. 186–186. ELSON, J.; GIROD, L.; ESTRIN, D. Fine-Grained Network Time Synchronization using Reference Broadcasts. 2002. ELSON, J. E. Time Synchronization in Wireless Sensor Networks. Tese (Doutorado) — University of California, 2003. ESTRIN, D. Reflections on Wireless Sensing Systems: From Ecosystems to Human Systems. [S.l.], 01 2007. FARNHAM, D. E. Site-specific crop management: what have we learned and where do we go from here? 10 2000. Ames: Iowa State University-Department of Agronomy. FISCHLER, M. A.; BOLLES, R. C. Random sample consensus: a paradigm for model fitting with applications to image analysis and automated cartography. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA, p. 726–740, 1987. Referências Bibliográficas 110 GANERIWAL, S. et al. Rate-adaptive time synchronization for long-lived sensor networks. In: SIGMETRICS ’05: Proceedings of the 2005 ACM SIGMETRICS international conference on Measurement and modeling of computer systems. New York, NY, USA: ACM, 2005. p. 374–375. ISBN 1-59593-022-1. GANERIWAL, S.; KUMAR, R.; SRIVASTAVA, M. B. Timing-sync protocol for sensor networks. In: . [S.l.]: ACM Press, 2003. p. 138–149. GARCIA, R. F. et al. Um Arcabouço para a Localização de Enxames de Robôs. In: Proc. of VIII SBAI. [S.l.: s.n.], 2007. GLOBAL Clock Synchronization in Sensor Networks. IEEE Trans. Comput., IEEE Computer Society, Washington, DC, USA, v. 55, n. 2, p. 214–226, 2006. ISSN 0018-9340. Member-Qun Li and Member-Daniela Rus. GONZALES, R. C.; WOODS, R. E. Digital Image Processing. Third edition. [S.l.]: Pearson Prentice Hall, 2007. HEIKKILA, J. Geometric camera calibration using circular control points. IEEE Transactions on Pattern Analysis and Machine Intelligence, v. 22, n. 10, p. 1066–1077, 2000. ISARD, M.; MACCORMICK, J. Bramble: a bayesian multiple-blob tracker. In: Computer Vision, 2001. ICCV 2001. Proceedings. Eighth IEEE International Conference on. [S.l.: s.n.], 2001. v. 2, p. 34–41. JEPSON, A.; FLEET, D.; EL-MARAGHI, T. Robust on-line appearance models for visual tracking. v. 25, n. 10, p. 1296–1311, June 26 2003. KITAHARA, I. et al. Large-scale virtualized reality. In: Conference on Computer Vision and Pattern Recognition - Technical Sketches. [S.l.: s.n.], 2001. KOTTAPALLI, V. A. et al. Two-tiered wireless sensor network architecture for structural health monitoring. In: SPIE 10th Annual International Symposium on Smart Structures and Materials. [S.l.: s.n.], 2003. LAMPORT, L. Time, clocks, and the ordering of events in a distributed system. Commun. ACM, ACM, New York, NY, USA, v. 21, n. 7, p. 558–565, 1978. ISSN 0001-0782. LEE, H.; YU, W.; KWON, Y. Efficient rbs in sensor networks. In: ITNG ’06: Proceedings of the Third International Conference on Information Technology: New Generations. Washington, DC, USA: IEEE Computer Society, 2006. p. 279–284. ISBN 0-7695-2497-4. MARóTI, M. et al. The flooding time synchronization protocol. In: SenSys ’04: Proceedings of the 2nd international conference on Embedded networked sensor systems. New York, NY, USA: ACM, 2004. p. 39–49. ISBN 1-58113-879-2. MILLS, D. L. Internet time synchronization: The network time protocol. RFC Editor, United States, 1989. Referências Bibliográficas 111 MILLS, D. L. Precision synchronization of computer network clocks. SIGCOMM Comput. Commun. Rev., ACM, New York, NY, USA, v. 24, n. 2, p. 28–43, 1994. ISSN 0146-4833. MYATT, D. et al. Napsac: High noise, high dimensional model parameterisation - it’s in the bag. In: British Machine Vision Conference. [S.l.: s.n.], 2002. p. 458–467. PAEK, J. et al. A wireless sensor network for structural health monitoring: Performance and experience. IEEE, p. 1–4, 02 2006. PALCHAUDHURI, S.; SAHA, A. K.; JOHNSON, D. B. Adaptive clock synchronization in sensor networks. In: of International Symposium on Information Processing in Sensor Networks. [S.l.: s.n.], 2004. p. 340–348. ISBN 1-59593-022-1. PáDUA, F. et al. Linear sequence-to-sequence alignment. In: IEEE International Conference on Computer Vision. [S.l.: s.n.], 2004. v. 1, p. 746–756. PáDUA, F. C. de. Spatio-Temporal Alignment of Video Sequences Captured from Multiple Viewpoints. Tese (Phd thesis) — Universidade Federal de Minas Gerais, Belo Horizonte, Minas Gerais, Brasil, December 2005. PERKINS, M.; CORREAL, N.; O’DEA, B. Emergent wireless sensor network limitations: a plea for advancement in core technologies. In: Proceedings of IEEE Sensors. [S.l.: s.n.], 2002. PIRES, J. L. F. et al. Discutindo agricultura de precisão - aspectos gerais. 03 2004. EMBRAPA TRIGO. POLASTRE, J. R. Design and Implementation of Wireless Sensor Networks for Habitat Monitoring. Dissertação — University of California at Berkeley, Berkley,CA, 05 2003. POTTIE, G. J.; KAISER, W. J. Wireless integrated network sensors. Commun. ACM, ACM, New York, NY, USA, v. 43, n. 5, p. 51–58, 2000. ISSN 0001-0782. RöMER, K. Time synchronization in ad hoc networks. In: MobiHoc ’01: Proceedings of the 2nd ACM international symposium on Mobile ad hoc networking & computing. New York, NY, USA: ACM, 2001. p. 173–182. ISBN 1-58113-428-2. SHI, J.; TOMASI, C. Good features to track. In: IEEE Conference on Computer Vision and Pattern Recognition. [S.l.: s.n.], 1994. SICHITIU, M.; VEERARITTIPHAN, C. Simple, Accurate Time Synchronization for Wireless Sensor Networks. 2003. STROBL, K. et al. Camera Calibration Toolbox for Matlab. Institute of Robotics and Mechatronics, German Aerospace Center (DLR): [s.n.], 2008. SU, W.; AKYILDIZ, I. F. Time-diffusion synchronization protocol for wireless sensor networks. IEEE/ACM Trans. Netw., IEEE Press, Piscataway, NJ, USA, v. 13, n. 2, p. 384–397, 2005. ISSN 1063-6692. Referências Bibliográficas 112 TILAK, S.; ABU-GHAZALEH, N.; HEINZELMAN, W. A Taxonomy of Wireless Microsensor Network Models. 2002. TRUCCO, E.; VERRI, A. Introductory Techniques for 3-D Computer Vision. Upper Saddle River, NJ, USA: Prentice Hall PTR, 1998. ISBN 0132611082. VEENMAN, C. J.; REINDERS, M. J. T.; BACKER, E. Resolving motion correspondence for densely moving points. IEEE Trans. Pattern Anal. Mach. Intell., IEEE Computer Society, Washington, DC, USA, v. 23, n. 1, p. 54–72, 2001. ISSN 0162-8828. WANG, N.; ZHANG, N.; WANG, M. Wireless sensors in agriculture and food industry–recent development and future perspective. Computers and Electronics in Agriculture, v. 50, n. 1, p. 1–14, January 2006. XU, N. et al. A wireless sensor network for structural monitoring. In: ACM Conference on Embedded Networked Sensor Systems. Baltimore,MD: ACM Portal, 2004. YILMAZ, A.; JAVED, O.; SHAH, M. Object tracking: A survey. ACM Comput. Surv., ACM Press, New York, NY, USA, v. 38, n. 4, 2006. ISSN 0360-0300.