ALISON AKIO PAULO MIAZAKI FILIPE MORGADO SIMÕES DE CAMPOS RAFAEL BARBOLO LOPES RAFAEL IVAN GARCIA ALEPH: SISTEMA DE MONITORAMENTO VISUAL DE PESSOAS

Tamanho: px
Começar a partir da página:

Download "ALISON AKIO PAULO MIAZAKI FILIPE MORGADO SIMÕES DE CAMPOS RAFAEL BARBOLO LOPES RAFAEL IVAN GARCIA ALEPH: SISTEMA DE MONITORAMENTO VISUAL DE PESSOAS"

Transcrição

1 ALISON AKIO PAULO MIAZAKI FILIPE MORGADO SIMÕES DE CAMPOS RAFAEL BARBOLO LOPES RAFAEL IVAN GARCIA ALEPH: SISTEMA DE MONITORAMENTO VISUAL DE PESSOAS São Paulo 2010

2 ALISON AKIO PAULO MIAZAKI FILIPE MORGADO SIMÕES DE CAMPOS RAFAEL BARBOLO LOPES RAFAEL IVAN GARCIA ALEPH: SISTEMA DE MONITORAMENTO VISUAL DE PESSOAS Trabalho apresentado à Escola Politécnica da Universidade de São Paulo para a Graduação em Engenharia de Computação. São Paulo 2010

3 ALISON AKIO PAULO MIAZAKI FILIPE MORGADO SIMÕES DE CAMPOS RAFAEL BARBOLO LOPES RAFAEL IVAN GARCIA ALEPH: SISTEMA DE MONITORAMENTO VISUAL DE PESSOAS Trabalho apresentado à Escola Politécnica da Universidade de São Paulo para a Graduação em Engenharia de Computação. Área de concentração: Engenharia da Computação Orientador: Profa. Anna Helena Reali Costa São Paulo 2010

4 FICHA CATALOGRÁFICA Miazaki, Alison Akio Paulo. ALEPH: sistema de monitoramento visual de pessoas / A. A. P. Miazaki, F. M. S. Campos, R. B. Lopes, R. I. Garcia. -- São Paulo, p. Trabalho de Conclusão de Curso Escola Politécnica da Universidade de São Paulo. Departamento de Engenharia de Computação e Sistemas Digitais. 1. Visão computacional. I. Campos, Filipe Morgado Simões II. Lopes, Rafael Barbolo III. Garcia, Rafael Ivan IV. Universidade de São Paulo. Escola Politécnica. Departamento de Engenharia de Computação e Sistemas Digitais. V. t.

5 DEDICATÓRIA Este projeto conclui cinco anos de trabalhos e estudos árduos dentro da Escola Politécnica. Mas esse esforço direcionado à nossa formação como Engenheiros não começou na faculdade; na verdade, vem desde muito antes. A forma como cada um de nós foi criado, as experiências vividas e trocadas com outras pessoas, os sucessos e fracassos nos planejamentos de nossas vidas, incluindo os imprevistos a que todos estamos sujeitos, tudo isso definiu as pessoas que somos. Por isso é justo dedicarmos este trabalho a todos que conviveram conosco, amigos, inimigos, desconhecidos, figurantes de nossas vidas, mas principalmente às nossas famílias. Sem aqueles que nos apoiaram desde o dia do nosso nascimento, incutindo valores e qualidades em nós, não estaríamos perto do que nos tornamos no final deste curso de Engenharia. Graças aos nossos provisores tivemos condições de estudos, que possibilitaram a entrada na Escola Politécnica. A discussão se prolongaria por muitas páginas se fossemos agradecer cada ponto em que nossas famílias nos ajudaram, então resumimos essa dissertação com um enfático muito obrigado, nós os amamos! Dedicamos este trabalho àqueles que estiveram conosco na nossa formação superior: os colegas e os professores. Aos colegas, que sentiram as mesmas alegrias, tristezas, pressões, e estresse, podemos dizer com orgulho: conseguimos! Desejamos a todos sucesso em suas carreiras profissionais e pessoais, e que possamos compartilhar muito mais alegrias juntos, sem deixarmos de nos apoiar nos momentos ruins, como já temos feito por anos. Aos professores desejamos sucesso em suas pesquisas, mas lembramos que as aulas são tão importantes quanto elas. Agradecemos a estes pelo conhecimento que nos foi passado, além da experiência que cada um pôde compartilhar conosco. Também dedicamos este trabalho às nossas namoradas e noivas (até para não perdê-las), que sempre estiveram ao nosso lado, apoiaram-nos incondicionalmente e suportaram ter nos dividido com as responsabilidades trazidas pela Escola.

6 E, por fim, não podemos esquecer de mencionar nosso grupo, por estarmos unidos desde o primeiro ano de faculdade, em empreitadas vitoriosas ou não, mas unidos. Que assim possamos permanecer. Dedicamos este trabalho a todos, até àqueles que esquecemos. Agora seremos Engenheiros!

7 AGRADECIMENTOS Alguém que merece destaque no grupo dos professores é nossa orientadora professora Anna Helena Reali Costa, que aceitou nos orientar sem ao menos nos conhecer previamente, e que esteve disposta desde o primeiro dia a nos direcionar neste projeto. Agradecemos enormemente por ter nos acompanhado nesta jornada.

8 O que a eternidade é para o tempo, o Aleph é para o espaço. (Jorge Luis Borges)

9 RESUMO Um sistema de monitoramento é um sistema capaz de observar e interpretar acontecimentos. Esses acontecimentos podem ser capturados em vídeos, imagens, textos ou em qualquer meio de troca de informações. O uso de um sistema dessa natureza permite que ações sejam monitoradas, previsões sobre futuras ações sejam realizadas e decisões sejam tomadas com maior assertividade. O sistema de monitoramento visual proposto é focado em monitorar ações através de vídeos, sendo capaz de detectar e rastrear pessoas em ambientes. Ele funciona para ambientes fechados com pouca variação de luz, com uma câmera de vídeo estacionada, e com imagens em que corpos inteiros de pessoas aparecem. Como resultado do monitoramento, o sistema gera mapas de calor e é capaz de identificar e reproduzir rotas realizadas com maior frequência. Para construir este sistema, foram utilizadas tecnologias de visão computacional, que é uma ciência que estuda meios que possibilitam que máquinas possam enxergar. Através de técnicas e métodos dessa ciência, sistemas artificiais podem extrair informações de imagens capturadas por câmeras e traduzi-las para serem compreendidas por seres humanos ou utilizá-las em sistemas de controle. As principais técnicas de visão computacional utilizadas neste trabalho foram: modelagem e subtração de fundo, operações morfológicas, suavização de imagens, análises de histogramas e aplicações do filtro de partículas condensation. Serão apresentados resultados e discussões a respeito de melhorias e possibilidades de extensão e uso do projeto. Palavra-chaves: visão computacional, detecção, rastreamento, monitoramento

10 ABSTRACT A surveillance system is a system that is able to observe and interpret events. These events can be captured in videos, images, texts, or in any other way of representing information. This kind of system allows actions to be tracked and forecasted, and also makes the process of taking decisions more assertive. The proposed system is focused in monitoring actions captured in videos, being able to detect and track people inside environments. It works for videos of indoor environments with low light variation, recorded with a fixed camera and with full bodies of people appearing. The system generates heatmaps as output and is able to reproduce most frequent routes made by people. It was built on top of computer vision technology, which is a science that studies means of enabling machines to see. It is able to extract information from images and translate them into comprehensive data for humans or to be used in control systems. The most used computing vision techniques in this work are: background modeling and subtraction, morphological operations, image smoothing, histograms analysis and the usage of the condensation particle filter. Results and discussions about improvements and possibilities of extending this project will be presented. Key-words: computer vision, detection, tracking, surveillance

11 LISTA DE FIGURAS 2.1 Dois módulos principais do sistema: detecção e rastreamento Submódulos presentes na detecção (bg modeler, bg subtractor, filters e heads detector) e no rastreamento (controller e condensation), além de submódulos de entrada (input e config), saída (output) e apresentação (Track printer e Heatmap creator) Fluxo em alto nível do processamento de um vídeo Fluxo de criação de modelo de fundo de um vídeo Fluxo de segmentação (subtração) e filtragem de modelo de fundo Fluxo de detecção de pessoas e extração de cabeças Fluxo de rastreamento em que é aplicado o condensation Fluxo de rastreamento em que são aplicados filtros sobre valores previstos para posições de cabeças no quadro seguinte Fluxo de criação de meios de visualização a partir de rotas armazenadas em banco de dados Exemplo de subtração de fundo, onde é apresentado um quadro e seu foreground. (MCHUGH JANUSZ KONRAD; JODOIN, 2009) Operações de filtragem de blobs Exemplo de erosão usado em (PETERLIN, 1996): esquerda, imagem binária original; direita, imagem erodida Exemplo de dilatação usado em (PETERLIN, 1996): esquerda, imagem binária original; direita, imagem dilatada Exemplos de aplicação de operações morfológicas de fechamento (dilatação seguida de erosão) usados em (BAUERMANN, 2008) Exemplos de aplicação de operações morfológicas de abertura (erosão seguida de dilatação) usados em (BAUERMANN, 2008)

12 2.16 Exemplo de aplicação de filtro Gaussiano em uma imagem usado em (ATKINS, 2010) Arquitetura do OpenCV. (BRADSKI; KAEHLER, 2008, p. 13) PETS Quadro da câmera Vídeo 1, filmado pelo grupo Quadro original do vídeo Modelo de fundo do vídeo Resultado da subtração de Fundo do vídeo Resultado da operação morfológica de fechamento do vídeo Resultado da operação morfológica de abertura do vídeo Resultado da remoção de blobs muito pequenos do vídeo Resultado da suavização do vídeo Resultado da busca por cabeças (histograma) do vídeo Resultado final do vídeo Rota impressa do vídeo Mapa de calor do vídeo Resultado final do vídeo PETS câmera Rota impressa do vídeo PETS câmera Mapa de calor do vídeo PETS câmera

13 LISTA DE TABELAS 2.1 Representação de pixels de uma imagem I Representação de pixels de uma imagem I Representação de pixels de uma imagem I Representação de pixels de um modelo de fundo obtido a partir das imagens I1, I2 e I Representação de intensidade mínima de cada pixel de uma imagem Representação de intensidade máxima de cada pixel de uma imagem Representação de um quadro de vídeo que sofrerá análise de subtração de fundo Descrição do vídeo da câmera 3 do PETS Descrição do vídeo 1, filmado pelo grupo Descrição de cada parâmetro de configuração do sistema de monitoramento visual de pessoas

14 SUMÁRIO 1 Introdução Apresentação Objetivo Organização do texto Estado da arte Aleph Arquitetura Funcionalidades Imagem digital Detecção Modelo de cena de fundo Subtração de fundo Blob Filtragem de blobs Histograma Detecção de cabeças Rastreamento Filtro de partículas: condensation Considerações técnicas Materiais e métodos OpenCV

15 3.2 Linguagens de programação Bases de vídeos Características dos vídeos PETS Câmera de vídeo Implementação Entrada Detecção Rastreamento Saída Apresentação Experimentos e resultados Vídeo PETS câmera Conclusões e trabalhos futuros Referências Bibliográficas 69

16 15 1 INTRODUÇÃO O Aleph é um sistema de monitoramento visual de pessoas que utiliza tecnologias de visão computacional. Neste capítulo, serão apresentados os conceitos básicos desse sistema, seu objetivo e a organização deste texto. 1.1 Apresentação Um sistema de monitoramento é um sistema capaz de observar e interpretar acontecimentos presentes em vídeos, imagens, textos ou em qualquer sistema de informação. O papel de interpretar os acontecimentos tem especial importância na otimização dos processos envolvidos no ambiente de onde eles foram extraídos. Sistemas de monitoramento baseados em visão computacional têm surgido com grande importância em empresas e indústrias que precisam monitorar e analisar seus processos de negócio. Esses sistemas capturam vídeos de ambientes e realizam processamentos que detectam e processam ações relacionadas a pessoas e objetos. A visão computacional é uma ciência que estuda e desenvolve técnicas para possibilitar que máquinas enxerguem. Através dessa tecnologia, sistemas artificiais podem extrair informações de imagens capturadas por câmeras e traduzi-las para serem compreendidas por seres humanos. A loja de moda feminina Marisa é uma empresa interessada nessa tecnologia; ela possui câmeras que registram entradas e saídas de pessoas de suas lojas, além de sistemas que identificam vitrines e setores das lojas mais atrativos para os consumidores. Outra aplicação seria com empresas de vigilância que necessitam de sistemas inteligentes para processar vídeos e identificar presença de pessoas em áreas restritas de determinados ambientes. O Aleph é um sistema capaz de monitorar ações de pessoas em ambientes fe-

17 16 chados. Como muitas tecnologias de visão computacional são pouco maduras, este sistema se posiciona como uma alternativa rápida de implantação em empresas e indústrias. Este projeto recebeu o nome de Aleph devido à obra El Aleph publicada em 1949 pelo autor argentino Jorge Luis Borges (BORGES, 1979), em que ele descreve um ponto do universo, denominado Aleph, a partir do qual é possível visualizar qualquer outro ponto. Este nome simboliza a capacidade do sistema de monitoramento visual de pessoas Aleph detectar e rastrear totalmente o ambiente no qual ele é aplicado. 1.2 Objetivo O objetivo deste projeto é desenvolver um sistema de monitoramento visual capaz de detectar e rastrear pessoas em ambientes fechados, através do uso da tecnologia de visão computacional, produzindo, ao final do processamento de um vídeo, mapas de calor com áreas de maior movimentação e reprodução da rota percorrida por cada indivíduo. O projeto é uma alternativa opensource e pronta para usar de um sistema com funcionalidades muito específicas, mas extremamente relevantes para empresas e indústrias. 1.3 Organização do texto A monografia está dividida em quatro partes principais. A primeira, Introdução, é uma apresentação que explica a motivação e o objetivo de desenvolvimento do projeto, fornecendo ao leitor um panorama do estado da arte das tecnologias de monitoramento visual de pessoas. A segunda parte, Aleph, apresenta a arquitetura e as funcionalidades do sistema de monitoramento visual de pessoas desenvolvido. É nesta parte também que são apresentados os conceitos teóricos do projeto referentes a processamento de imagens e visão computacional. A terceira parte apresenta os materiais e métodos utilizados no desenvolvimento do projeto, de maneira que o leitor possa recriar o ambiente em que o projeto foi desenvolvido e testado. Além disso, apresenta detalhes da implementação de cada

18 17 módulo do sistema. Por fim, a quarta parte discute experimentos com a solução proposta para o monitoramento de pessoas e as possíveis extensões e melhorias que podem ser implementadas. 1.4 Estado da arte O trabalho tem como base teórica principal a visão computacional, logo, deve-se entender qual é o estado da arte tanto na tecnologia, como em aplicações existentes, e os problemas não resolvidos desta área, para que os esforços no desenvolvimento do trabalho sejam bem direcionados. Considerando um filme como uma sequência de imagens (ou quadros), desejase detectar um objeto em cada um dos quadros do vídeo para que o rastreamento seja feito. O método mais intuitivo e utilizado no mercado para detectar movimento em um filme é a subtração de fundo. Com esse método, é possível destacar regiões da imagem que apresentam movimento em comparação a regiões estáticas (o fundo da cena). Mas, este método é limitado pelo nível de ruído introduzido no ambiente filmado, por exemplo, variações na iluminação do ambiente podem ser identificadas como movimento. Outro limitador do método de subtração de fundo é a dificuldade de distinguir dois objetos que se cruzam durante seus movimentos, a chamada oclusão. Para contornar essas limitações da subtração de fundo, é necessária a utilização de algoritmos robustos de rastreamento. Alguns algoritmos são bem difundidos e já utilizados em sistemas comerciais, como o rastreamento de objetos com filtragem estocástica, como o filtro de Kalman e os filtros de partículas, como o condensation. A filtragem estocástica é um método estatístico utilizado para prever o comportamento de séries modeladas por variáveis aleatórias. Este método é utilizado para prever estatisticamente e em tempo real a localização do objeto rastreado. Para estimar a posição de um objeto em um dado instante, utiliza-se o Teorema de Bayes para construir a probabilidade a posteriori da localização do objeto iterativamente e, assim, calcular o valor esperado da sua posição. O filtro de Kalman (FK) é um filtro estocástico utilizado para estimar a posição de objetos que apresentam uma trajetória suave e bem comportada, descrita por um modelo de espaço linear com ruído gaussiano, onde a solução para o modelo seja

19 18 ótima. Considerando as aplicações existentes no mercado, é perceptível que a maioria é proprietária, o que se justifica dado o alto investimento inicial para desenvolver aplicações neste ramo da computação. Um forte agravante no custo de produção e manutenção de um sistema de visão computacional é a forma de armazenamento de dados. Sistemas inteligentes, que aprendem por meio de observações, necessitam de uma grande base de dados, que basicamente são vídeos, cuja resolução e formato podem fazer um vídeo de dez minutos ter o tamanho de alguns gigabytes. Algo que vale destacar, e também foi produzido por iniciativa privada, é o framework OpenCV, utilizado para processamento de imagens em tempo real, que foi desenvolvido originalmente pela Intel. É livre para ser usado sob os termos das licença de código aberto BSD. A Intel produziu o OpenCV para funcionar em mais de uma plataforma, de sistema operacional ou arquitetura de hardware. Porém, se o framework detectar que a arquitetura do computador, em que o código será compilado, é uma arquitetura Intel, existe a possibilidade de otimizar o código para esta arquitetura. O OpenCV, lançado em 1999, teve como grandes contribuidores para o projeto, além do time de desenvolvimento da Intel, especialistas da Intel Russa para otimizar o framework. Os principais objetivos do OpenCV eram: avançar a pesquisa em visão computacional, não só por prover um projeto de código aberto, mas também com uma infraestrutura básica de visão otimizada; disseminar o conhecimento de visão computacional por prover uma infraestrutura comum, na qual desenvolvedores pudessem se basear, tornando o código mais legível e transferível; e promover soluções comerciais portáteis, com desempenho otimizado gratuitamente, sob uma licensa que liberasse o uso do framework, mas não forçasse a liberação das aplicação feitas sobre este. Atualmente, o OpenCV está na versão 2.1. Desde a versão 2.0 existe a possibilidade de sua utilização por várias linguagens de programação. Além de poder ser usado na linguagem C, na qual foi desenvolvido, pode ser portado para C++, e também existem os chamados wrappers, que permitem o uso por outras linguagens como C#, Python, Ruby, Visual Basic e Java. O OpenCV cumpre até hoje seu própósito inicial, de padronizar a forma como programas de visão computacional são escritos, pois atualmente é o framework de visão mais conhecido, e de fomentar a pesquisa na área. Existem também outras iniciativas, além das privadas, para o desenvolvimento de

20 19 técnicas em visão computacional, como eventos. Um evento que se destaca internacionalmente é o PETS (IEEE International Workshop on Performance Evaluation of Tracking and Surveillance), um workshop internacional, em parceria com o IEEE, sobre avaliação de desempenho de sistemas de monitoramento e vigilância que usam visão computacional. Anualmente, o PETS, que já está na décima primeira edição, lança um desafio em visão computacional, que os inscritos no evento devem resolver e escrever um artigo, explicando a teoria do projeto. A área de visão computacional está em constante evolução, e cada vez mais existem soluções no mercado que se utilizam de visão. Porém, as soluções propostas são para casos específicos, pois aplicam, até por uma questão de desempenho, o algoritmo que for mais apropriado para a situação, e apenas este. Aparentemente, a visão animal, em especial a humana, tem a capacidade de utilizar mais de um algoritmo para reconhecer e identificar objetos em imagens. A capacidade dos animais de escolher o algoritmo mais apropriado para cada caso é que torna a visão animal mais geral que a visão computacional. Além disso, existe a contextualização que o cérebro faz com a imagem reconhecida, podendo atribuir significados não explícitos na imagem por si só. A meta da visão computacional é ser igual ou melhor que a visão humana, porém se a implementação de um único algoritmo já é custosa, a implementação de vários deles, inclusive a tomada de decisão sobre qual algoritmo usar, seria muito mais custosa, ou talvez, impossível para a capacidade de hardware existente atualmente. Também, se pensarmos na contextualização feita pelo cérebro, valendo-se de situações vividas por um indivíduo, o volume de armazenamento de dados seria exorbitante, e como já discutido, este é um entrave para desenvolvimento na área de visão computacional. Assim, vê-se que muito já foi desenvolvido na área de visão computacional, mas ainda há possibilidade de muito desenvolvimento de técnicas e soluções gerais, que deverão levar em conta o compromisso com desempenho e armazenamento de dados.

21 20 2 ALEPH Para entender os conceitos usados no desenvolvimento do Aleph, é necessário absorver alguns fundamentos teóricos. O sistema tem como base dois subsistemas: detecção e rastreamento de pessoas em imagens. O subsistema de detecção de pessoas baseia-se em técnicas e algoritmos que são capazes de encontrar pessoas em vídeos. Já o subsistema de rastreamento de pessoas, que tem o papel de associar pessoas detectadas em diferentes instantes a um identificador, é baseado em técnicas capazes de prever o movimento de uma pessoa dadas suas posições conhecidas em diferentes instantes de tempo. 2.1 Arquitetura O sistema de monitoramento visual de pessoas é capaz de detectar e rastrear pessoas em vídeos, utilizando tecnologias de visão computacional e processamento de imagens. Ele é um sistema que utiliza apenas uma câmera e foi projetado para processar imagens em lote, não funcionando em tempo-real. Sistemas de monitoramento de câmera única embasados em técnicas de visão computacional, geralmente, podem ser divididos em dois grandes módulos: o primeiro, detecção, é responsável por detectar a presença de objetos de interesse (neste caso, pessoas) nas imagens capturadas e definir as posições deles nas cenas; o segundo, rastreamento, conhecendo tais informações, deve executar o rastreamento dos alvos e manter o controle de suas trajetórias no decorrer da cena. A organização dos dois módulos está representada na figura 2.1. Para extrair o máximo de qualidade do sistema de monitoramento, é essencial que a arquitetura estabeleça uma forma para que estes módulos operem em sincronia. Assim como o módulo de rastreamento utiliza as informações geradas pelo detector de pessoas, os dados de rastreamento gerados pelo rastreador são realimenta-

22 21 dos no módulo de detecção de pessoas, para que este tenha uma fonte adicional de informação e possa ajustar a sua forma de trabalho. Figura 2.1: Dois módulos principais do sistema: detecção e rastreamento Em linhas gerais, a interface entre os dois módulos principais são as posições das pessoas existentes na cena em análise. O detector de pessoas envia as posições medidas para o rastreador, que, após executar as rotinas de rastreamento e calcular as previsões de movimento, responde com as posições previstas para a cena seguinte. Cada módulo principal, de detecção e de rastreamento, possui submódulos que são apresentados na figura 2.2 juntamente com os outros módulos e submódulos que compõem o projeto como um todo. Figura 2.2: Submódulos presentes na detecção (bg modeler, bg subtractor, filters e heads detector) e no rastreamento (controller e condensation), além de submódulos de entrada (input e config), saída (output) e apresentação (Track printer e Heatmap creator) A entrada do sistema é composta pelo submódulo input, que captura quadros do vídeo em análise, e pelo submódulo config, que acessa um arquivo de configuração do Aleph específico para o vídeo em análise. O sistema de detecção é composto dos submódulos: bg modeler, responsável por modelar a cena de fundo; bg subtractor, responsável por subtrair o quadro em análise do modelo de fundo; filters, responsável por aplicar filtros de limpeza de blobs; e heads detector, responsável por detectar cabeças em blobs. O sistema de rastreamento é formado pelo controller, que realiza a lógica de con-

23 22 trole do rastreamento, e pelo condensation que é responsável pelo filtro de partículas chamado condensation. A saída do sistema é um submódulo genérico que pode gravar os resultados, por exemplo, em bancos de dados ou em arquivos de texto. A apresentação dos dados colhidos durante a execução do sistema é desempenhada pelos submódulos Track printer e Heatmap creator de duas formas, imprimindo as rotas das pessoas rastreadas pelo sistema nos quadros do vídeo em execução e pela criação de um mapa de calor para cada vídeo analisado. Como observado nos diagramas a seguir, o fluxo de processamento de um vídeo consiste de: 1. Leitura do arquivo de configuração do vídeo que contém parâmetros de processamento do sistema e a localização do vídeo a ser processado; 2. Criação do modelo de fundo do vídeo; 3. Leitura e processamento de cada quadro do vídeo, executando os passos: (a) Subtração do quadro do modelo de fundo, obtendo blobs candidatos a pessoas; (b) Filtragem de blobs candidatos a pessoas através de execução de operações morfológicas e eliminação de blobs pequenos; (c) Obtenção do histograma de cada blob e cálculo dos máximos locais candidatos a cabeças de pessoas; (d) Predição das posições das pessoas através do filtro de partículas condensation; (e) Obtenção de posições das pessoas no quadro utilizando as posições previstas das pessoas e os pontos de máximos locais candidatos a cabeças de pessoas; (f) Associação de cada pessoa do quadro atual com uma pessoa do quadro anterior, de forma que seja possível traçar sua trajetória; (g) Criação, se necessário, de novas pessoas e tratamento de pessoas sob oclusão. (h) Atualização das amostras do condensation para cada uma das pessoas sendo rastreadas;

24 23 (i) Filtragem de pessoas que deixaram a imagem da câmera ou que sofreram algum problema de rastreamento. (j) Cópia das posições e dos identificadores das pessoas não mais presentes na imagem para o banco de dados. Figura 2.3: Fluxo em alto nível do processamento de um vídeo. Figura 2.4: Fluxo de criação de modelo de fundo de um vídeo.

25 24 Figura 2.5: Fluxo de segmentação (subtração) e filtragem de modelo de fundo. Figura 2.6: Fluxo de detecção de pessoas e extração de cabeças.

26 25 Figura 2.7: Fluxo de rastreamento em que é aplicado o condensation. Figura 2.8: Fluxo de rastreamento em que são aplicados filtros sobre valores previstos para posições de cabeças no quadro seguinte.

27 26 Figura 2.9: Fluxo de criação de meios de visualização a partir de rotas armazenadas em banco de dados. 2.2 Funcionalidades O Sistema de Monitoramento Visual de Pessoas é capaz de detectar pessoas em imagens de câmeras de vídeos e rastreá-las, ou seja, ele consegue mapear o trajeto percorrido por cada pessoa dentro de um ambiente filmado. A seguir estão listadas as características e funcionalidades do sistema: É capaz de extrair imagens diretamente de câmeras; É capaz de extrair imagens de vídeos armazenados; É capaz de ler imagens armazenadas; Consegue processar múltiplos vídeos simultaneamente, gerando análises isoladas para cada um deles; Para cada vídeo, deve receber um modelo do ambiente capturado sem pessoas para criar o modelo de cena de fundo; Detecta pessoas em ambientes; Rastreia movimentação de cada pessoa presente em um ambiente;

28 27 Identifica áreas de um ambiente onde as pessoas passam mais tempo, gerando mapas de calor; Identifica caminhos mais percorridos por pessoas em um ambiente; Reproduz caminhos realizados por pessoas. 2.3 Imagem digital Uma imagem digital é composta por um conjunto de pixels, na forma de uma matriz. Uma imagem em resolução Full HD (1920x1080), por exemplo, possui 1920 linhas com 1080 pixels cada uma. Cada um desses pixels possui uma coloração específica, que pode ser representada por algum sistema de cores, como o RGB. Este sistema de cores tem característica aditiva, isto é, representa uma cor como uma composição de três cores básicas: vermelho (Red), verde (Green) e azul (Blue). Cada uma dessas componentes possui uma determinada intensidade na composição de cada cor, que varia de 0 a 255. No RGB, a cor branca, por exemplo, é representada como a adição das três cores básicas em intensidade máxima, ou seja, é equivalente a (255, 255, 255); a representação do preto é exatamente o inverso: (0, 0, 0). Assim, neste trabalho, as imagens são constituídas por pixels, os quais possuem uma representação RGB. 2.4 Detecção A tarefa de detecção de pessoas em vídeos se apóia em técnicas diversas e consolidadas de visão computacional, as quais permitem que imagens sejam analisadas em busca da presença de seres humanos. A ideia básica por trás deste processamento é a criação de um modelo de cena de fundo com base em uma sequência de quadros capturados nos quais não exista nenhum tipo de movimentação. Estando este modelo bem definido, é possível praticar um processo de subtração da cena de fundo de outros quadros e verificar a existência de regiões de movimentação. Finalmente, a tarefa do detector é analisar estas regiões buscando a existência de pessoas.

29 28 Todas as etapas deste processamento são descritas em detalhes nas seções que seguem Modelo de cena de fundo Em visão computacional, técnicas de subtração de fundo visam criar um modelo de cena de fundo para uma determinada sequência de imagens obtidas a partir de uma mesma câmera em um mesmo local e, através dele, detectar em outras imagens da mesma sequência áreas em que haja qualquer espécie de modificação em relação ao modelo. O objetivo do modelo de cena de fundo é mapear o valor RGB médio de cada pixel da imagem de fundo, uma vez que é natural a existência de uma ligeira alteração no valor de um pixel entre quadros consecutivos, seja por imprecisão da câmera ou por algum fator externo que altera características do ambiente. A criação deste modelo é feita em cima de uma sequência de quadros nos quais não existe a presença de objetos ou pessoas em movimento. Deste modo, esta técnica se apóia na hipótese de que não existem no ambiente elementos que tendem a se mover e alterar drasticamente o modelo de fundo. Para ambientes em que há elementos móveis pertencentes à cena de fundo, como, por exemplo, uma árvore que balança com o vento, existem técnicas para a criação de um modelo de fundo adaptativo que continuamente se atualiza e mantém uma representação da cena de fundo. Em (BRADSKI; KAEHLER, 2008, p. 278) pode ser encontrado um exemplo de implementação desta técnica. O primeiro passo para a criação do modelo de cena de fundo é a soma de uma série consecutiva de quadros, isto é, o valor de cada pixel de um quadro é somado com o valor do pixel correspondente de um outro quadro. Ao final desta sequência de somas, o que se obtém é uma imagem na qual cada pixel representa o total da soma dos valores dos pixels cujas posições são iguais as deste em todos os quadros considerados. Por fim, basta dividir o valor de cada pixel desta nova imagem pelo número de quadros considerados para a geração do modelo de fundo, extraindo, portanto, o valor médio para cada pixel. Sendo p i x,y o valor RGB do pixel de coordenadas (x, y) no quadro i, o valor médio M x,y (2.1)

30 29 do pixel (x, y) no modelo de cena de fundo para n quadros é dado por: M x,y = ni=1 p i x,y. (2.2) n Para visualizar como um modelo de fundo estático é determinado, são apresentadas as tabelas 2.1, 2.2 e 2.3, de 4 células cada uma. Deve-se supor que cada tabela representa uma imagem e cada célula representa um pixel. A partir das três tabelas, é obtida a tabela 2.4 que guarda em suas células os valores médios de cada célula das tabelas, representando o modelo de fundo. Tabela 2.1: Representação de pixels de uma imagem I Tabela 2.2: Representação de pixels de uma imagem I Tabela 2.3: Representação de pixels de uma imagem I Tabela 2.4: Representação de pixels de um modelo de fundo obtido a partir das imagens I1, I2 e I3 ( )/3 = 10 ( )/3 = 30 ( )/3 = 21 ( )/3 = Subtração de fundo A etapa de subtração da cena de fundo visa essencialmente detectar qualquer espécie de movimento existente em uma imagem. Para constatar movimentação em um determinado quadro, o que se faz é analisar os valores de cada pixel da imagem e compará-los com os valores correspondentes no modelo de cena de fundo previamente criado.

31 30 Para cada pixel (x, y) no modelo de cena de fundo, são definidos limiares (em inglês, thresholds) máximo e mínimo com base no seu valor RGB: M x,y. Logo, para cada pixel (x, y) em um determinado quadro k, p k x,y (2.3), é estabelecida uma faixa de valores aceitáveis que ele pode assumir nos demais quadros do vídeo, conforme indicado a seguir: l min p k x,y l max (2.4) onde l min é o limiar mínimo e l max é o limiar máximo. Com estes limiares definidos, a detecção de movimento em um quadro em processamento é realizada através da verificação se o valor RGB de cada um de seus pixels está dentro dos limiares determinados para este pixel. Caso o valor não esteja dentro da faixa estabelecida, o pixel representa parte de um elemento que não está no modelo de cena de fundo, e possivelmente é uma pessoa se movimentando. Realizando esta operação de subtração de fundo para toda a imagem, é possível gerar um mapeamento dos pixels que pertencem e dos que não pertencem ao modelo da cena. Normalmente, a forma mais simples de representação deste mapeamento é através de uma imagem em preto e branco, denominada foreground, na qual áreas brancas correspondem a elementos que não estão no modelo de cena de fundo, e o restante (áreas pretas) são referentes ao fundo. Como exemplo de como essa técnica funciona, novamente serão usadas tabelas. Suponha que as tabelas 2.5 e 2.6 representam, respectivamente, as intensidades mínimas e máximas de pixels de um modelo de fundo. Para um quadro de vídeo representado pela tabela 2.7, as células de valor 5 e 10, que estão fora do intervalo de limiares, fariam parte da região da imagem candidata a constituir uma pessoa, enquanto as células de valor 8 e 28, que estão dentro do intervalo de limiares, fariam parte da cena de fundo e seriam ignorados para posteriores análises. Tabela 2.5: Representação de intensidade mínima de cada pixel de uma imagem

32 31 Tabela 2.6: Representação de intensidade máxima de cada pixel de uma imagem Tabela 2.7: Representação de um quadro de vídeo que sofrerá análise de subtração de fundo Um exemplo de subtração de fundo é apresentado por (MCHUGH JANUSZ KONRAD; JODOIN, 2009), e pode ser observado na figura Figura 2.10: Exemplo de subtração de fundo, onde é apresentado um quadro e seu foreground. (MCHUGH JANUSZ KONRAD; JODOIN, 2009) Blob Define-se como blob cada uma das áreas brancas existentes em um foreground gerado ao final do processo de subtração de fundo. Estes elementos, como mencionado, apontam áreas em que a coloração dos pixels do quadro analisado está suficientemente distante dos pixels do modelo de cena de fundo e, portanto, são áreas em que há evidência de movimentação na cena.

33 32 Na figura 2.10, pode-se notar os blobs no foreground que evidenciam o movimento de pessoas pelo local da imagem Filtragem de blobs A grande meta dos sistemas de detecção de pessoas é identificar as posições nas quais existem pessoas nas cenas de um vídeo, detecção esta que é realizada no foreground gerado para cada quadro. Na grande maioria dos casos, é necessário realizar filtragens nos blobs de um foreground de modo a torná-los mais limpos e adequados para a detecção de pessoas. O fluxo de filtragem que pode ser executado para tornar os blobs de cada foreground mais aptos ao processo de detecção de pessoas é apresentado na figura 2.11, onde são executadas sequencialmente as operações morfológicas de fechamento e de abertura, seguidas por remoção de blobs pequenos e suavização. Figura 2.11: Operações de filtragem de blobs Operações morfológicas As operações morfológicas de fechamento e abertura são construídas a partir das operações morfológicas básicas de erosão e dilatação. O efeito principal da erosão em uma imagem binária, como um foreground, é erodir as fronteiras dos blobs, de modo que tais áreas sejam encolhidas e eventuais buracos no interior delas sejam expandidos. A dilatação é oposta à erosão e, assim, causa uma expansão dos blobs e reduz buracos existentes no seu interior. Para aplicar estas operações morfológicas, é necessário definir um elemento estruturante que define o modo como a operação afetará a imagem binária, como pode

34 33 ser estudado em mais detalhes em (BRADSKI; KAEHLER, 2008, p. 115). No caso do projeto, sempre são utilizadas elipses como elementos estruturais pois estas produzem contornos mais suaves e próximos ao corpo de seres humanos, os quais são os objetos de interesse do sistema de monitoramento aqui descrito. A figura 2.12 apresenta um exemplo de operação morfológica de erosão e a figura 2.13 apresenta um exemplo de operação morfológica de dilatação. Figura 2.12: Exemplo de erosão usado em (PETERLIN, 1996): esquerda, imagem binária original; direita, imagem erodida. Figura 2.13: Exemplo de dilatação usado em (PETERLIN, 1996): esquerda, imagem binária original; direita, imagem dilatada. Operação morfológica de fechamento A operação morfológica de fechamento é uma composição das operações básicas, ou seja, é a aplicação sequencial das operações de dilatação e erosão, nesta ordem. Aplicar este filtro ao foreground é importante para que a quantidade de buracos existentes nos blobs seja reduzida e para que blobs próximos separados por regiões muito estreitas possam ser conectados, pois isto torna a imagem final mais limpa e definida, facilitando o processo de detecção de pessoas.

35 34 A figura 2.14 apresenta exemplos de operações morfológicas de fechamento aplicadas. Figura 2.14: Exemplos de aplicação de operações morfológicas de fechamento (dilatação seguida de erosão) usados em (BAUERMANN, 2008) Operação morfológica de abertura A operação morfológica de abertura é equivalente à aplicação de uma operação de erosão seguida da aplicação de uma operação de dilatação. A realização desta filtragem no foreground torna os contornos dos blobs menos irregulares, devido à sua ação sobre as rebarbas existentes. Além disso, esta operação tem um efeito positivo para reduzir a área do foreground referente à sombra das pessoas no chão. A figura 2.15 apresenta exemplos de operações morfológicas de fechamento aplicadas.

36 35 Figura 2.15: Exemplos de aplicação de operações morfológicas de abertura (erosão seguida de dilatação) usados em (BAUERMANN, 2008) Remoção de blobs muito pequenos O processo de remover blobs pequenos consiste em identificar blobs que não possuem área de tamanho mínimo equivalente à área esperada de uma pessoa em uma imagem. É uma etapa importante da filtragem de blobs porque elimina ruídos. O tamanho da área mínima (em pixels) deve ser definida experimentalmente Suavização A etapa final do processo de filtragem de blobs é a suavização do foreground, a qual é realizada com a aplicação de um filtro Gaussiano à imagem original. O objetivo da aplicação do filtro de suavização é contribuir para que os blobs obtidos após o processo de filtragem estejam aptos a gerar histogramas com curvas mais suaves, com poucos picos de oscilação. A figura 2.16 apresenta um exemplo de aplicação de filtro Gaussiano a uma imagem e o efeito da suavização, que corresponde a um borramento da imagem.

37 36 Figura 2.16: Exemplo de aplicação de filtro Gaussiano em uma imagem usado em (ATKINS, 2010) Histograma Um histograma é uma representação gráfica da distribuição de frequência de um conjunto de medições. No contexto deste projeto, os histogramas são utilizados para mapear as ocorrências de pixels brancos em áreas retangulares que circundam os blobs existentes no foreground. Em outras palavras, para cada coluna da área delimitada pelo retângulo ao redor de um blob, o histograma apresentará o número de pixels de cor branca Detecção de cabeças Assim como em (SIEBEL, 2010), o módulo de detecção de pessoas implementado neste projeto busca a existência de pessoas somente nas áreas em que foi registrado algum tipo de movimento, ou seja, nos blobs do foreground filtrado. Existem muitas técnicas para detecção de pessoas, cada uma delas se apoiando em alguma base teórica específica. Como descrito em (ZHAO; NEVATIA, 2004) e em (SI- EBEL, 2010), as pessoas podem ser detectadas nas imagens através de um algoritmo capaz de identificar as cabeças existentes. Este método apresenta um dos melhores resultados entre todos os que foram avaliados para o desenvolvimento deste sistema, além de possuir um comprometimento bastante relevante com o gasto de recursos computacionais. A forma de detectar cabeças depende fortemente do tipo de imagem que será adotado como entrada do sistema de monitoramento. Por exemplo, em uma câmera posicionada no teto de um ambiente que foca o solo perpendicularmente, o foreground gerado pela presença de uma pessoa tende a ser próximo de uma elipse, de modo que é possível implementar um algoritmo que busque por esta forma geométrica na

38 37 imagem e, portanto, detecte as pessoas existentes. Por outro lado, as imagens de uma câmera cujo foco está paralelo ao solo, isto é, perpendicular às pessoas em movimento, deverão gerar foregrounds em que as pessoas são representadas pela sua forma real; neste tipo de situação, a forma de detecção de pessoas sofre alterações. O Aleph utiliza um algoritmo de detecção de cabeças personalizado e apropriado para o tipo de imagem definido como objetivo deste projeto, isto é, imagens em que as pessoas aparecem de corpo inteiro geradas por câmeras posicionadas há aproximadamente 4 metros do solo. Inicialmente, para cada blob do foreground, é definida uma área retangular que o circunda; estas serão as regiões de interesse para análise e possível detecção de pessoas. Em seguida, para cada uma dessas áreas de interesse, é realizado o cálculo de um histograma de acordo com o que foi exposto na seção É importante notar que a posição das cabeças nos foregrounds correspondem às colunas dos histogramas em que existe um máximo local. A tarefa de detecção de cabeças resume-se, portanto, na identificação dos máximos locais nas curvas descritas pelos histogramas. A forma mais precisa de determinar os máximos locais de uma curva consiste na aplicação de conceitos de cálculo diferencial e integral à função que a descreve. Porém, para a resolução do problema neste projeto, é adotada uma técnica mais simples e de menor custo computacional, uma vez que a curva do histograma está representada por um conjunto de pares ordenados, e não pela sua equação matemática. Para estimar se um determinado ponto (x, y) da curva descrita pelo histograma é um máximo local, percorre-se a curva, da esquerda para a direita, verificando para cada ponto se existe um determinado número mínimo de pontos vizinhos que o antecedem e possuem ordenada menor do que a dele, bem como um número mínimo de vizinhos que o sucedem e também tenham ordenada inferior. 2.5 Rastreamento O processo de determinação da posição de certos objetos ao longo do tempo em uma sequência de imagens denomina-se rastreamento. O rastreamente é comumente confundido com reconhecimento, que caracteriza-se pela classificação de objetos com algum rótulo pré-estabelecido. Pode-se apresentar um exemplo para elucidar a questão: se uma imagem que contém pessoas é entrada de um processo que ao final determina a posição dessas pessoas num determinado sistema de coordenadas,

39 38 então este é um processo de rastreamento; porém, se a mesma imagem também for entrada de outro processo que ao final relacione cada pessoa a seu respectivo nome (rótulo), este será um processo de reconhecimento. O processo de rastreamento em imagens é uma tarefa laboriosa, devido tanto às características inerentes aos elementos de imagens a serem analisados, como também pelo grau de complexidade que os elementos nas imagens podem apresentar. Dois grandes desafios para o rastreamento de pessoas são: a oclusão, e a imprevisibilidade do movimento das pessoas nas imagens. A oclusão ocorre quando os atributos de uma pessoa, que são utilizados no rastreamento, não podem ser vistos por inteiro em uma imagem. Por exemplo, caso sejam utilizadas as cabeças dos indivíduos para o rastreamento e, por algum motivo qualquer, a cabeça de uma pessoa não estiver bem definida na imagem, então houve a ocorrência de uma oclusão. Oclusões são comuns em vídeos que contém uma massa de pessoas se movimentando muito próximas umas da outras, ou em ambientes onde existem muitos obstáculos que podem se antepor às pessoas durante a captura de imagens. A imprevisibilidade do movimento, por sua vez, é algo inerente ao ser humano e não vem ao caso discorrer sobre sua natureza, e sim, como tratá-la. Para tanto, são introduzidos filtros probabilísticos, também chamados bayesianos, que tentam prever, utilizando métodos estocásticos, o movimento das pessoas entre quadros consecutivos de um vídeo. Existem vários tipos de filtros dentro desta categoria, sendo os mais famosos o filtro de Kalman (FK), o filtro de Kalman-Extendido (FKE) e os filtros de partículas, como o condensation. O filtro escolhido para este projeto foi o filtro de partículas condensation, que será explicado a seguir, pois o mesmo permite representações de distribuições de probabilidades mais genétricas do que o FK e o FKE Filtro de partículas: condensation Em um ambiente dinâmico, ou seja, no qual além dos objetos alvos do rastreamento, os elementos que compõem o ambiente também podem mudar, o rastreamento é desafiador. Se os objetos alvos de rastreamento tiverem um movimento aleatório, o nível de dificuldade do rastreamento também aumenta. Dessa necessidade, desenvolveram-se os filtros de partículas, para tratar dados trazidos por senso-

40 39 res - que podem estar atrasados no tempo, ou mesmo com ruído - em tempo real. Os filtros de partículas utilizam um espaço de estados mais flexível quando comparados ao FK e ao FKE, e possibilitam a representação de mais distribuições probabilísticas além da Gaussiana. Entre os filtros de partículas, um que ficou famoso na comunidade de visão computacional e de inteligência artificial é o condensation. Conditional Density Propagation (condensation) foi o nome utilizado por Isard e Blake (1998) ao introduzir seu algoritmo na comunidade de visão computacional. O condensation é capaz de lidar com sistemas que tanto o modelo de movimento, quanto o modelo de observação são não-lineares, além de permitir que as funções densidade de probabilidade, que representam os estados e as observações, sejam nãogaussianas, como descrito por Isard e Blake (1998). Para fazer uma aproximação discreta da função densidade de probabilidade do estado do sistema, constrói-se um conjunto de amostras de estado, que podem ser chamadas de partículas. Quanto maior a dimensão do vetor de estados, mais partículas são necessárias para uma boa representação da densidade de probabilidade e, logo, o custo computacional é maior. Assim, existe um compromisso na escolha da dimensão do vetor de estado, de maneira que este não se mostre como uma desvantagem técnica. O modelo dinâmico do sistema é dado por: x t x = A(x t 1 x) + Bw t (2.5) Onde x representa o valor médio do estado; A é a matriz que representa a componente determinística do modelo dinâmico; B é a matriz que representa a componente estocástica do modelo dinâmico; e w t representa o ruído da observação. Pode-se dividir cada iteração da estimação em três etapas principais: reamostragem, predição e cálculo dos pesos; contudo, todas as operações, de ambas as fases, são executadas sobre as amostras que representam a função densidade de probabilidade do sistema. A seguir, segue explicação sobre o processo e suas etapas: Para o conjunto de amostras do instante de tempo anterior, {s (n) t 1, π (n) t 1, c (n) t 1, n = 1,..., N}, deve-se construir um novo conjunto {s (n) t o instante atual de tempo., π (n) t, c (n) t }, n = 1,..., N para Onde, s representa a amostra, π os pesos e c o peso acumulado. Para construir a enésima nova amostra de N:

41 40 1.Reamostragem: Selecionar uma amostra s (n) t, da seguinte forma: 1. Gerar um número randômico r [0, 1], uniformemente distribuído. 2. Achar, por subdivisão binária, o menor j para o qual c (j) t 1 r. 3. Realizar s (n) t = s (j) t 1. 2.Predição: Realizar a predição por amostragem de p(x t x t 1 = s (n) t ) (2.6) para escolher cada s (n) t. Para o caso do sistema dinâmico estar sendo modelado por uma equação diferencial estocástica linear, o novo valor da amostra pode ser encontrado de acordo com a seguinte expressão: s (n) t 3.Cálculo de pesos: = As (n) t + Bw (n) t Deve-se medir e atribuir o peso das novas posições de acordo com as medidas z t : π (n) t = p(z t x t = s (n) t ) (2.7) Quanto maior a probabilidade da observação para uma dada amostra, maior seu respectivo peso. Os pesos são normalizados de modo que sua soma seja igual a 1, isto é, N i=1 wk i = 1. Além disso, também deve ser guardado o peso acumulado (s (n) t,, c (n) ), onde π (n) t t c 0 t = 0, c n t = c n 1 t + π (n) t (n = 1,...,N). Uma vez que as amostras foram associadas aos pesos, são escolhidas N amostras, com possibilidade de repetição, para o conjunto que representará a nova densidade de probabilidade. O fato da repetição, na escolha de amostras, ser habilitada faz com que amostras com pesos mais altos, possivelmente, sejam escolhidas mais vezes, enquanto amostras com menores pesos sejam descartadas.

42 41 Algo que deve ser ressaltado é que o número de amostras e a reamostragem, que são empregados no algoritmo condensation descrito por Isard e Blake (1998), são parâmetros críticos para seu bom funcionamento. Se o espaço amostral for grande, mas o número de amostras com que se trabalha for pequeno, a confiabilidade do algoritmo cai. Além disso, se o número de amostras for muito alto em relação ao espaço amostral, perde-se velocidade de execução do algoritmo. No caso da técnica de reamostragem, se for mal escolhida, poderá descartar amostras em excesso, prejudicando predições futuras ou poderá descartar amostras muito lentamente, o que prejudicará a convergência do processo de predição, tornando o filtro inútil. 2.6 Considerações técnicas Com o contexto teórico, supra citado, pode-se explicar a razão pelas qual estas técnicas, algoritmos e modelagens foram escolhidas. O projeto do sistema Aleph de monitoramento se vale de uma câmera fixa, que captura os vídeos de uma posição superior à cabeça das pessoas. O movimento destas pessoas é aleatório. O ambiente é fechado e tem pouca variação de luz. Assim, a modelagem de fundo, e a subsequente subtração desta modelagem em cada quadro dos vídeos gravados pela câmera, possibilita a extração de blobs de movimento da imagem. Se a câmera se movimentasse, esta modelagem e extração não seriam possíveis. Também, se houvesse muita variação de luz no ambiente, o modelo de fundo ficaria defasado rapidamente, provocando o aparecimento de ruído nos blobs, e assim seria necessária uma modelagem dinâmica e estatística do fundo. Cada imagem resultante do processo de subtração de fundo é entrada do processo descrito em 2.4.2, para que os blobs fiquem mais definidos, separados um do outro, nos casos em que não há oclusão. Muito do ruído existente, nos blobs encontrados, advém da sombra que cada objeto em movimento tem. Se o ambiente filmado tivesse muita variação de luz, este tipo de ruído seria introduzido nos resultados da subtração de fundo. Uma vez que o ambiente é bem comportado nestes aspectos, pode-se fazer as operações para a melhoria da definição dos blobs, como as operação morfológicas de abertura e fechamento. Com os blobs bem definidos, sabe-se o que está em movimento em cada imagem. Porém, como o foco do Aleph é identificar e rastrear pessoas, precisa-se, ainda, iden-

43 42 tificar quais destes blobs são de fato pessoas. Para tanto, executa-se a identificação de cabeças, explicada em Dado a aleatoriedade do movimento das pessoas no ambiente filmado, introduziuse no projeto um módulo de previsão de movimento, que utiliza o filtro de partículas condensation, para que o tratamento dos blobs, definindo quais são pessoas, seja mais assertivo. A escolha das técnicas de previsão foi feita pela orientadora, pois o condensation tem sido muito bem recomendado na área de pesquisa de inteligência artificial, e ainda muito pouco foi desenvolvido com este. A falta de exemplos práticos e explicativos de como utilizar o condensation foi um desafio inicial, mas que como todo outro desafio foi superado com o tempo. Estas são as justificativas das escolhas feita sobre técnicas, algoritmos e modelagens usadas no projeto do sistema Aleph. Todas essas escolhas foram introduzidas na arquitetura do sistema.

44 43 3 MATERIAIS E MÉTODOS Neste capítulo, são apresentados e explicados os materiais e métodos utilizados no desenvolvimento do sistema de monitoramento visual de pessoas, de modo que outros pesquisadores possam repetir os passos de desenvolvimento e compreender os resultados obtidos. Foram escolhidas ferramentas gratuitas de desenvolvimento e de código-aberto, e os vídeos usados para testar o funcionamento do sistema são públicos e possuem autorização explícita para uso em fins acadêmicos. Para desenvolver o sistema de monitoramento visual de pessoas, foi utilizada a biblioteca de visão computacional OpenCV. Ela oferece centenas de algoritmos de visão computacional implementados e métodos que permitem manipular imagens. A biblioteca é oferecida para as linguagens de programação C, C++ e Python, sendo as duas últimas escolhidas para a realização do projeto. A biblioteca OpenCV foi a base motivadora das escolhas posteriores de tecnologias usados no projeto. Ela é uma biblioteca de código-aberto com licença BSD, o que significa que pode ser usada livremente para ser copiada, distribuída, transmitida ou adaptada. A vantagem da escolha de uma biblioteca de código-aberto com uma comunidade grande de desenvolvedores, como é o caso da OpenCV, é que ela é usada e desenvolvida por milhares de pessoas que testaram e garantiram sua confiabilidade, desempenho, escalabilidade e segurança, além de ser gratuita. As entradas do sistema são vídeos ou conjuntos de imagens sequenciais de um ambiente. No item 3.3.1, serão apresentadas as origens dessas mídias e as características gerais de vídeos que funcionam corretamente como entradas do sistema desenvolvido.

45 OpenCV A OpenCV é uma biblioteca de código-aberto com mais de 500 algoritmos otimizados para uso em aplicações de visão computacional. São oferecidos estruturas e métodos de operações matemáticas, representação de imagens, persistência de dados, busca em espaço multidimensional, processamento de imagens, entre outros. A biblioteca já foi baixada na Internet mais de 2 milhões de vezes e sua comunidade é composta de mais de 40 mil pessoas. A biblioteca foi projetada para ter alta eficiência computacional, por isso foi escrita em C e otimizada para utilizar processadores de vários núcleos. Além disso, um de seus objetivos é ser de fácil utilização por desenvolvedores, fornecendo uma infraestrutura simples de visão computacional. O projeto da biblioteca nasceu no ano de 1999, em um instituto de pesquisa da Intel, em uma iniciativa proprietária de criar aplicações de uso intensivo de processamento. Como era uma época em que muitos pesquisadores estavam desenvolvendo técnicas e infraestruturas de visão computacional, o projeto foi aberto e evoluiu até, em 2006, ser lançada oficialmente a versão 1.0. A versão no tempo de escrita deste documento, segundo semestre do ano de 2010, é a 2.1. Por ter sua origem na Intel, a biblioteca foi construída com instruções otimizadas para processadores da empresa. Além disso, pode ser integrada à biblioteca proprietária Primitivas de Desempenho Integradas da Intel (Intel IPP), que possui várias funções otimizadas para uso em mídias digitais e aplicações de processamento de dados, de forma que o tempo de processamento das funções de visão computacional possa reduzir consideravelmente. A biblioteca é estruturada em quatro componentes principais mostrados na figura 3.1. O módulo CV possui algoritmos de processamento de imagens básicos e de visão computacional altamente sofisticados. O componente MLL é uma biblioteca de aprendizagem de máquina que oferece ferramentas de agrupamento e classificadores estatísticos. HighGUI é o componente que permite criar interfaces gráficas, além de oferecer métodos de entrada e saída de acesso a vídeos e imagens. O componente CXCORE é a base utilizada por todos os outros componentes, onde estão implementados os algoritmos e estruturas de dados básicas.

46 45 Figura 3.1: Arquitetura do OpenCV. (BRADSKI; KAEHLER, 2008, p. 13) A biblioteca OpenCV é multiplataforma, isto significa que ela pode ser executada em Windows e em sistemas operacionais baseados em Unix, como GNU & Linux, Mac OS X, Solaris, entre outros. Além disso, também funciona nas linhas de processadores das empresas Intel, AMD, ARM, PPC e Sparc. 3.2 Linguagens de programação A biblioteca de programação OpenCV suporta as linguagens de programação C, C++ e Python. As escolhidas para realização do projeto foram Python e C++. O motivo da escolha da primeira é que o projeto precisava de uma linguagem de alto nível altamente produtiva, de maneira que os algoritmos de visão computacional implementados poderiam ser testados rapidamente, sem preocupações com o desempenho da solução. A linguagem de programação C++ foi escolhida para suprir deficiências da linguagem Python em alguns pontos do código, como para a utilização do filtro de partículas condensation, implementado pelo framework OpenCv, que não tem disponível esta estrutura para Python. Com a escolha das linguagens de programação Python e C++, uniu-se uma linguagem altamente produtiva com uma linguagem altamente eficiente. Desta forma, o projeto, desenvolvido com tecnologias híbridas, foi realizado com velocidade, qualidade, eficiência e com boas práticas de engenharia de software. Para integrar códigos em C++ e em Python, foram utilizadas bibliotecas do pacote Boost C++, que permitem compilar códigos em C++ e portá-los para outras plataformas. A biblioteca Boost.Python foi utilizada para exportar métodos e funções de classes C++ para Python, e vice-versa.

47 Bases de vídeos Para testar os algoritmos implementados no sistema de monitoramento visual de pessoas, foram utilizados vídeos de fontes públicas e também vídeos filmados durante o projeto com uma câmera comum. As fontes de vídeos estão detalhadas as seguir, bem como as características de cada vídeo Características dos vídeos O sistema de monitoramento visual de pessoas utiliza apenas uma câmera para a aquisição das informações de movimentação das pessoas. Quanto à iluminação das cenas a serem analisadas pelo sistema, o projeto se restringe a vídeos coloridos em que não ocorre variação brusca na iluminação do ambiente, seja ela de natureza artificial ou natural. Para que o sistema seja capaz de identificar uma pessoa em um vídeo, esta deve possuir pelo menos 80 pixels de altura e 30 pixels de largura na imagem, deve aparecer de corpo inteiro e estar parada, andando ou correndo. Pessoas sentadas ou deitadas no ambiente não são detectadas PETS 2006 O PETS (Performance Evaluation of Tracking and Surveillance) é um workshop anual internacional promovido pela IEEE, onde são apresentados projetos e artigos de rastreamento e monitoramento de ambientes, com foco em tecnologias de visão computacional. No ano de 2006, o governo da Inglaterra ofereceu um banco de dados de vídeos de estações de trens públicas para serem usados como base nos artigos e projetos apresentados no PETS Esse banco de dados também inclui informações mapeadas do ambiente, que poderiam ser usadas como referência na comparação dos resultados obtidos pelos projetos submetidos ao workshop. Para a a realização de testes e avaliação de resultados do sistema de monitoramento de pessoas, esse banco de dados foi utilizado. Como as informações mapeadas no banco de dados são focadas em segurança, não serão realizadas comparações

48 47 entre elas e o sistema desenvolvido. Neste banco de dados estão disponíveis vídeos provenientes de 4 câmeras diferentes. No projeto, foi utilizado o vídeo de uma dessas câmeras que respeitava as condições descritas no item PETS câmera 3 Figura 3.2: PETS Quadro da câmera 3 Tabela 3.1: Descrição do vídeo da câmera 3 do PETS2006 Sobre Iluminação Piso Pedestres Vista da câmera Duração Câmera corredor largo, com circulação baixa de pessoas. ambiente com iluminação constante. Piso com duas cores, sendo uma bege clara e outra marrom. Pessoas se movem tipicamente da esquerda para a direita ou da direita para a esquerda do vídeo. Vista superior de perfil das pessoas. 30 segundos. Canon MV-1 1xCCD w/progressive scan Câmera de vídeo Além do vídeo do PETS, utilizou-se, nos teste, um vídeo filmado nas dependências do prédio de Engenharia Elétrica da Escola Politécnica da USP. A seguir o vídeo utilizado é apresentado.

49 48 Vídeo 1 Figura 3.3: Vídeo 1, filmado pelo grupo. Tabela 3.2: Descrição do vídeo 1, filmado pelo grupo Sobre Iluminação Piso Pedestres Vista da câmera Duração Câmera Espaço amplo para circulação de pessoas. Possui bancos na parte lateral esquerda da imagem com pessoas sentadas. A iluminação ambiente é externa vinda do sol e passível de variação, mas, aparentemente, não ocorreram variações bruscas. Além disso, a filmagem foi realizada às 14h35min e a posição da iluminação, neste caso, prejudica fortemente a diferenciação entre cores, realçando apenas o contorno da pessoa. Piso claro, apresenta sombras e reflexo. Pessoas passando livremente sem encenação de cenários. Vista frontal das pessoas, câmera fixada com um tripé e colocada no mezanino do primeiro andar uma altura de 5,35m do chão. 5 minutos e 2 segundos. Samsung minidv SC-D391.

50 Implementação Neste capítulo, são apresentadas técnicas e algoritmos utilizados na implementação de cada submódulo do sistema de monitoramento de pessoas Entrada Nesta seção, são descritos os submódulos que acessam os dados de entrada do sistema Input O submódulo input é responsável por ler quadros de um vídeo e padronizá-lo para um modelo de quadro que o sistema consegue ler e processar. O vídeo pode ser uma câmera, um arquivo de vídeo no disco ou uma sequência de imagens. Este módulo deve oferecer um método que permita acessar o próximo quadro a ser processado Config O submódulo config é responsável por ler um arquivo de configuração que contém os parâmetros apresentados na tabela 3.3 e oferece métodos de acesso a cada um dos parâmetros. Para facilitar e agilizar a geração de parâmetros de configuração para cada vídeo processado, foi construído um sistema que permite definir o valor de cada parâmetro e processar qualquer quadro do vídeo, mostrando rapidamente o resultado da alteração de um parâmetro. O sistema gerador de configuração possui uma interface gráfica, equipada com um player de vídeo que exibe o vídeo original ao lado do vídeo processado. A interface possui controles que permitem o ajuste dos parâmetros de processamento do sistema. O gerador de configuração retorna como saída um arquivo de configuração contendo todos os parâmetros necessários para a execução do sistema de monitoramento.

51 50 Tabela 3.3: Descrição de cada parâmetro de configuração do sistema de monitoramento visual de pessoas PARÂMETRO INPUT PATH INPUT TYPE BACKGROUND MODEL FIRST FRAME BACKGROUND MODEL LAST FRAME CURSOR INITIAL POSITION HIGH THRESHOLD LOW THRESHOLD CVCONTOUR APPROX LEVEL CVCLOSE ITR FG BBS FG CENTERS FG MORPHOLOGY OPEN LEVEL FG MORPHOLOGY CLOSE LEVEL BACKGROUND MODEL GAUSSIAN WIDTH BACKGROUND MODEL GAUSSIAN HEIGHT FG PERIMSCALE DESCRIÇÃO Caminho do diretório de quadros ou vídeo de entrada Indica se o tipo de entrada é um conjunto de quadros ou um vídeo Primeiro quadro a ser considerado para criação do modelo de fundo Último quadro a ser considerado para criação do modelo de fundo Número do primeiro quadro a ser processado Valor do limiar superior para geração do modelo de fundo Valor do limiar inferior para geração do modelo de fundo Define quão simples deve ser considerada a fronteira entre blobs Quantidade de iterações de operação morfológica de CLOSE aplicadas a um quadro sendo processado, que podem ser aplicadas mais de uma vez Booleano que indica se retângulos devem ser desenhados em volta dos blobs Booleano que indica se devem ser marcados os centros de blobs Intensidade da operação morfológica de abertura Intensidade da operação morfológica de fechamento Largura considerada à aplicação do filtro gaussiano Altura considerada à aplicação do filtro gaussiano Usado para definir o tamanho mínimo

52 Detecção Nesta seção, são descritos os submódulos que constituem o módulo de detecção BG modeler O modelo de fundo estático foi escolhido para modelar o ambiente filmado pelo vídeo. O motivo desta escolha é que o projeto utiliza vídeos de ambientes internos, com pouca variação de iluminação e praticamente sem alterações nas disposições dos elementos de fundo. Além de atender aos requisitos do projeto, esta abordagem também é simples de implementar, o que a torna uma boa escolha BG Subtractor A subtração de fundo implementada consiste em comparar a imagem do quadro em análise com o modelo de fundo, como explicado na seção Para cada pixel do modelo de fundo, são definidos limiares de intensidades mínima e máxima. Caso o valor de um pixel do quadro em análise esteja entre esses limiares, ele é considerado parte do modelo de fundo. Caso contrário, ele é considerado um pixel candidato a constituir uma pessoa. O resultado da subtração é a geração de uma imagem binária, com duas cores: branco e preto. Os pixels brancos representam os blobs (foreground) e os pixels pretos representam a cena de fundo e são ignorados no processamento posterior Filters É inevitável, mesmo após a aplicação de todos os filtros já citados, que haja blobs de área muito pequena no foreground resultante da subtração de fundo. A existência destas áreas é inapropriada, pois todas elas podem representar pessoas que não existem no quadro original. Esse fato, além de proporcionar margem para resultados imprecisos, implica em desperdício de tempo de processamento, o que é um elemento muito valioso em sistemas de visão computacional. Para eliminar blobs inapropriados, são aplicados os seguintes filtros: 1. Execução de operação morfológica de fechamento;

53 52 2. Execução de operação morfológica de abertura; 3. Suavização dos blobs, eliminando ruídos em seu conteúdo; 4. Remoção de blobs pequenos, que não possuem tamanho mínimo para serem considerados pessoas; No último filtro aplicado, todo blob existente no foreground analisado é aproximado por um polígono com número arbitrário de lados, de modo que o seu contorno possa ser melhor descrito. Com base no cálculo do perímetro deste polígono, é possível verificar se o tamanho dele é suficiente para que uma pessoa caiba no seu interior. Polígonos com perímetro menor do que um mínimo pré-estabelecido são descartados do foreground Heads detector A detecção de pessoas nos blobs é feita a partir da localização de candidatos a cabeças em cada blob. Para detectar as cabeças do foreground, o histograma de cada blob é analisado. Um histograma, como explicado em 2.4.5, é uma representação gráfica da distribuição de frequências de um conjunto de medições. Para cada blob, seu histograma representará uma função no espaço cartesiano que possui pontos de máximo locais. Pelo formato dos blobs utilizados, é natural que a maior concentração de pixels brancos esteja nas colunas mais próximas à cabeça da pessoa que gerou este trecho do foreground. Assim, a tarefa de detectar pessoas se resume em localizar as posições em que existem cabeças na imagem, isto é, encontrar as posições de maior concentração de pontos nestes histogramas que são representadas pelos pontos de máximo locais. O método de detecção dos máximos locais em histogramas é explicado no item Detecção de máximos locais em histogramas Com a hipótese de que a curva descrita pelo histograma é constituída por um número finito de pontos, pode-se dizer que todo ponto, exceto o primeiro, tem um antecessor definido. Assim, cada um destes pontos possui uma ordenada maior, menor ou igual à ordenada de seu antecessor. Foram adotadas três classificações possíveis para cada ponto presente na curva:

54 53 Subida (S): quando a ordenada do ponto é maior que a do seu antecessor; Descida (D): quando a ordenada do ponto é menor que a do seu antecessor; Platô (P): quando a ordenada do ponto é igual a do seu antecessor. Após as classificações de todos os pontos, é possível buscar um determinado padrão que indique um máximo local. Por exemplo, para que um ponto seja considerado um máximo local, é necessário que existam um número arbitrário de subidas que o antecederam e um número arbitrário de descidas que o sucedem. Nesta implementação os platôs estão sendo desconsiderados da análise, visto que, para o tipo de curvas tratadas, estes praticamente inexistem e não são relevantes. Esta é uma forma bastante simples e eficiente de identificar os máximos locais em curvas como as usadas neste projeto, mas que traz bons resultados. Um ponto fraco desta técnica é o tratamento de oclusões. Quando uma oclusão ocorre, um blob é preenchido com uma grande quantidade de pixels brancos que são sugestivos de pertencer a uma única pessoa. Desta forma, ao realizar a detecção de cabeças com a análise do histograma, a pessoa não será detectada. Como será explicado no item 3.4.3, ao realizar a detecção de pessoas, o sistema possui previsões de onde as pessoas do quadro anterior estão presentes no quadro atual. Desta forma, é possível verificar as previsões que supostamente falharam, e analisar o histograma do local onde havia previsão de existência de pessoa para verificar se uma quantidade maior que o normal de pixels brancos está presente no blob. Caso a quantidade grande de pixels brancos exista, então pode-se assumir que há duas pessoas na mesma posição Rastreamento Nesta seção, são descritos os submódulos que constituem o módulo de rastreamento Controller O módulo de rastreamento implementa uma lógica de controle de quatro fases distintas: 1 - Calculo de predições

55 54 Nesta fase são feitas as predições das posições futuras das pessoas já detectadas numa fase posterior. Estas predições são fornecidas pelo filtro de partículas condensation, utilizando-se da estrutura CvConDensation do OpenCV. 2 - Pareamento de valores medidos e predições Cada pessoa já identificada possui uma predição de posição futura. Com os valores medidos pelo módulo de detecção, faz-se o cálculo das distância Euclidiana entre o valor de predição de uma pessoa com os valores medidos. O valor medido com menor distância Euclidiana com uma predição é tomado como posição real da pessoa possuidora da predição. Assim, relaciona-se uma pessoa a uma identificação, descobrindo quem é quem na imagem. 3 - Ponderação sobre o pareamento dos valores medidos e predições Esta fase verifica os resultados dos pareamentos feitos. Verifica se o pareamento teve ou não sobras, como predições sem valores medidos ou valores medidos sem predições. O tratamento de cada caso é feito da seguinte forma: Pareamento sem sobras: Não há nada a ser feito. Sobras de predições sem medida: Neste caso deve ter ocorrido um erro no módulo de detecção de pessoas ou pode ter ocorrido uma oclusão. Então, como a predição está relacionada a uma pessoa já existente, passa-se ela para um vetor de pessoas ocludidas (occluded), e considerase a predição desta pessoas como o valor medido - como posição real na imagem - a ser usado para a próxima previsão. Sobras de medidas sem predições: Se não há predição para um valor medido, significa que uma nova pessoa foi identificada. Assim, cria-se uma nova pessoa que é relacionado com uma nova instância da estrutura CvConDensation, para que na próxima iteração exista uma predição para esta pessoa. Independentemente do caso em que uma pessoa tenha entrado, no final da iteração são atualizados os pesos das amostras de todas as pessoas. As amostras representam as diversas previsões do movimento feita pelo condensation e seu peso a confiança que se tem dessa predição.

56 Aplicações de filtros Por fim, aplicam-se filtros sobre os pareamentos para tratar situações específicas como: Pessoas sobrepostas: Se dois valores medidos tem distância Euclidiana menor ou igual a dez pixels, possivelmente é uma mesma pessoa que foi identificada duas vezes pelo módulo de detecção. Assim, o valor medido mais recente é excluído da análise, preservando a pessoa existente por mais tempo pois ela possui uma rota com mais pontos do que a pessoa mais recente. Pessoas ocludidas por mais de três segundos: Se uma pessoa não é identificada por três ou mais segundos, possivelmente está ocludida, e devido ao tempo que não foi detectada, a previsão desta pessoa se torna inválida. Assim, a pessoa é passada para um vetor de pessoas cujo processamento é considerado finalizado (old). Pessoas ocludidas na borda da imagem: Se uma pessoas é ocludida, ou não identificada, e está perto das bordas da imagem, quinze pixels, considera-se que esta pessoa saiu da imagem, e logo seu processamento deve ser finalizado. Assim, a pessoa é passada para o vetor old Condensation Para implementar o filtro de partículas condensation, utilizou-se a estrutura do framework OpenCV chamada CvConDensation. Esta Estrutura possui os seguintes parâmetros que devem ser configurados para sua criação: D p : dimensão do vetor de estados M p : dimensão do vetor de medidas SamplesN um: número de amostras (fichas) DynamM atr: matriz dinâmica do sistema Para iniciar-se a estrutura, também precisam ser criadas matrizes que limitam os valores máximos (upper bound) e mínimos (lower bound) das variáveis velocidade e coordenada do sistema.

57 56 A configuração da estrutura CvConDensation se deu da seguinte forma: D p = 4, pois existirão quatro graus de liberdade no sistema, dados pelas variáveis de posição (X, Y ) e as variáveis de velocidade, V x e V y. M p = 4, pois os valores que serão medidos e atualizados correspondem às variáveis do sistema. SamplesN um = 1000, com testes feitos, notou-se que o valor de mil amostras seria suficiente para conseguir uma previsão consistente no sistema sem, ao mesmo tempo, prejudicar seu desempenho de forma crítica. DynamMatr = 1 0 t t Esta configuração de matriz diz à estrutura CvConDensation que o movimento dos alvos de predição será dado pela equação de movimento retilíneo uniforme s = s 0 + V t, sendo o t dado pelo intervalo de tempo de um quadro e outro no vídeo. As seguintes escolhas foram feitas para as matrizes de valores máximos e mínimos de variáveis: upper bound = [maxw idth, maxheight, , ], os dois primeiros valores são os tamanhos máximos de largura e altura dos quadros, respectivamente; os dois últimos valores são as velocidades máximas nos eixos x e y respectivamente. Considerando a velocidade média de uma pessoa andando como 3 km/h, o que é equivalente a m/s, e sabendo que no vídeo descrito na tabela 3.2 cada lajota do chão do ambiente é quadrada e tem 2 metros de lado, e na parte central do vídeo tem lado igual a 145 pixels, pode-se calcular a velocidade /2 = px/s. Para a velocidade máxima, decidiu-se triplicar a velocidade para garantir que uma pessoa que eventualmente estivesse correndo pelo ambiente também pudesse ser rastreada. lower bound = [0, 0, , ], os dois primeiros valores são os tamanhos mínimos de largura e altura dos quadros, respectivamente; os dois últimos valores são as velocidades mínimos nos eixos x e y respectivamente. As velocidades negativas possibilitam o rastreamento de pessoas andando em sentido opostos numa mesma

58 57 direção. No momento em que uma nova pessoa é detectada, e sua medida passada para o módulo de rastreamento, uma nova estrutura CvConDensation é criada com os valores configurados como acima. Mas, para que as previsões sejam feitas, deve-se inicializar as estruturas com os valores de posição da pessoa encontrada, bem como com sua velocidade. A posição da pessoa é o valor medido pelo módulo de detecção, já as velocidades não podem ser sabidas por medições, já que é a primeira vez que a pessoa aparece no vídeo. Decidiu-se, então, atribuir o valor de velocidade de uma pessoa média andando, px/s. E para que as amostra convirjam mais rapidamente para uma previsão consistente, inicializa-se as amostras como estando todas sobre a localização atual da pessoa encontrada e com peso igual a um. A cada iteração são feitas atualizações dos pesos das amostras. A atualização é feita para todas as amostras de acordo com as expressões: P robabilidade em X = e ( 1 (valor medido em X valor de uma ficha i em X)2 )/(2 variância em X) P robabilidade em Y = e ( 1 (valor medido em Y valor de uma ficha i em Y )2 )/(2 variância em Y ) Logo, o peso final de uma amostras é dado pela multiplicação da P robabilidade em X pela P robabilidade em Y Saída Nesta seção, são descritos os submódulos que gravam os dados de saída do sistema Output O submódulo output é responsável por gravar informações referentes às pessoas detectadas e rastreadas no vídeo processado. Cada pessoa possui um identificador único e um conjunto de posições, rota, sendo cada par identificador e posição relacionado ao instante que ocorre no vídeo. As informações descritas são gravadas em arquivos de texto ou em bancos de dados. Desta forma, pelo fato da informação estar persistida, ela poderá ser acessada posteriormente para análises e construções de formas relevantes de visualização do que foi processado.

59 Apresentação Nesta seção, são descritos os submódulos que geram as formas de visualização dos dados das rotas armazenadas no banco de dados Track printer O submódulo Track printer é responsável por uma das formas de visualização dos dados que foi desenvolvida nesse projeto de formatura. Mais especificamente, a impressão das rotas de cada pessoa que foi rastreada pelo sistema. Esse módulo funciona fazendo uma consulta ao banco de dados que retorna as rotas de cada uma das pessoas. Essa informação é utilizada para imprimir em cada quadro do vídeo uma linha entre cada ponto adjacente da rota da pessoa, formando assim, um traçado para a rota da pessoa com o passar dos quadros do vídeo Heatmap creator O submódulo Heatmap creator é responsável pela outra forma de visualização dos dados que foi desenvolvida nesse projeto de formatura, pensando na visualização das áreas de um ambiente onde as pessoas passam mais tempo e dos caminhos percorridos que são mais frequentes. Para a implementação desse módulo, foi feito o uso da biblioteca desenvolvida por (JJG, 2009) para a linguagem de programação Python, que é capaz de gerar um mapa de calor para um conjunto de pontos. Para um funcionamento adequado às necessidades do projeto, alguns parâmetros foram ajustados. O primeiro deles, chamado dotsize, designa o tamanho que um ponto possui na imagem final do mapa de calor, seu valor foi ajustado de 150 para 30. O segundo parâmetro, opacity (opacidade), foi levemente alterado de 120 para 170 para que as cores do mapa de calor não ficassem tão transparentes. Por fim, para cada um dos vídeos utilizados no projeto, era entregue à biblioteca uma imagem de fundo para a sobreposição do mapa de calor, para isso, foi utilizado um quadro sem presença de pessoas.

60 59 4 EXPERIMENTOS E RESULTADOS Nesta seção são apresentados os resultados obtidos sobre os vídeo de testes apresentados na seção 3.3. Para o primeiro vídeo, são apresentados os resultados parciais obtidos após a passagem do vídeo por etapas do processo consideradas relevantes. Já para o segundo vídeo é apresentado apenas o resultado final do processamento, pois as fases intermediárias se mostraram similares. 4.1 Vídeo 1 Imagem original: Figura 4.1: Quadro original do vídeo 1 Modelo de fundo:

61 60 Figura 4.2: Modelo de fundo do vídeo 1 Resultado da subtração de Fundo: Figura 4.3: Resultado da subtração de Fundo do vídeo 1 Resultado da operação morfológica de fechamento: Figura 4.4: Resultado da operação morfológica de fechamento do vídeo 1

62 61 Resultado da operação morfológica de abertura: Figura 4.5: Resultado da operação morfológica de abertura do vídeo 1 Resultado da remoção de blobs muito pequenos: Figura 4.6: Resultado da remoção de blobs muito pequenos do vídeo 1 Resultado da suavização:

63 62 Figura 4.7: Resultado da suavizac a o do vı deo 1 Resultado da busca por cabec as (histograma): Figura 4.8: Resultado da busca por cabec as (histograma) do vı deo 1 Resultado final: Figura 4.9: Resultado final do vı deo 1 Rota impressa:

64 63 Figura 4.10: Rota impressa do vídeo 1 Mapa de calor: Figura 4.11: Mapa de calor do vídeo 1 Avaliação dos resultados: Pela imagem original do vídeo, pode-se observar características que prejudicarão o funcionamento do sistema. Uma vez que o Aleph foi desenvolvido para sistemas fechados, a variação de luz presente neste vídeo prejudica os resultados. Como o vídeo em questão tem duração curta, não houve variação considerável da luz solar. Assim sendo, a modelagem de fundo foi suficientemente eficiente para eliminar a luz refletida no chão do ambiente filmado. Para melhorar a definição dos blobs de pessoas na imagem gerada pela subtração de fundo, são aplicadas as operações morfológicas de abertura e fechamento. Podese observar, pelos resultado parciais gerados por estas operações, que a operação de fechamento não modificou relevantemente a imagem, pois os blobs não apresentavam muitos buracos internos. Já a operação de abertura, melhorou a definição dos

65 64 blobs de pessoas e eliminou certos blobs advindos do reflexo das pessoas no cha o do ambiente. Percebe-se que a eliminac a o de blobs muito pequenos na o teve grande impacto sobre a imagem, uma vez que ja na o possuı a blobs considera veis descarta veis. Assim, apo s a operac a o de suavizac a o, que modificou o contorno dos blobs, pode-se aplicar a te cnica de detecc a o de cabec as, que analisa os histogramas dos blobs para identificar os ma ximos locais, os quais indicam a presenc a de pessoas. Tambe m, pode-se ver que a previsa o fornecida pelo filtro de partı culas condensation, apresentada como um ponto verde, e condizente com a detecc a o de cabec as, pois a dista ncia Euclidiana desses pontos e pequena. O resultado final apresenta a localizac a o encontrada pelo sistema das pessoas na imagem. Apesar de alguma imprecisa o na localizac a o das pessoas, as imagens geradas pelo impressor de rotas e pelo gerador de mapas de calor sa o satisfato rias, pois permitem que seja feita uma ana lise qualitativa do movimento de pessoas no ambiente filmado, mostrando, respectivamente, as rotas de movimento de cada indivı duo, e as a reas com maior movimentac a o de pessoas. 4.2 PETS ca mera 3 Resultado final: Figura 4.12: Resultado final do vı deo PETS ca mera 3 Rota impressa:

66 65 Figura 4.13: Rota impressa do vı deo PETS ca mera 3 Mapa de calor: Figura 4.14: Mapa de calor do vı deo PETS ca mera 3 Avaliac a o dos resultados: Um ponto que difere entre o vı deo anterior e este e a presenc a de objetos mo veis juntamente com pessoas. Estes sa o identificados como blobs, uma vez que na o pertencem ao modelo de fundo da cena, e possuem ma ximos locais que, por fim, sa o identificados como cabec as, afetando o resultado final. Algo interessante neste vı deo e a parede de vidro que divide o ambiente em dois corredores. A passagem de pessoas entre o trem e esta parede fica bem caracterizada no mapa de calor como uma regia o mais colorida e avermelhada. Outro fato presente neste vı deo sa o as ocluso es que ocorrem frequ entemente,

VISÃO COMPUTACIONAL COM A OPENCV MATERIAL APOSTILADO E VEÍCULO SEGUIDOR AUTÔNOMO. Professora da Escola de Engenharia Mauá (EEM/CEUN-IMT).

VISÃO COMPUTACIONAL COM A OPENCV MATERIAL APOSTILADO E VEÍCULO SEGUIDOR AUTÔNOMO. Professora da Escola de Engenharia Mauá (EEM/CEUN-IMT). VISÃO COMPUTACIONAL COM A OPENCV MATERIAL APOSTILADO E VEÍCULO SEGUIDOR AUTÔNOMO Riccardo Luigi Delai 1 ; Alessandra Dutra Coelho 2 1 Aluno de Iniciação Científica da Escola de Engenharia Mauá (EEM/CEUN-IMT);

Leia mais

2.1.2 Definição Matemática de Imagem

2.1.2 Definição Matemática de Imagem Capítulo 2 Fundamentação Teórica Este capítulo descreve os fundamentos e as etapas do processamento digital de imagens. 2.1 Fundamentos para Processamento Digital de Imagens Esta seção apresenta as propriedades

Leia mais

Sistema de Controle de Acesso Baseado no Reconhecimento de Faces

Sistema de Controle de Acesso Baseado no Reconhecimento de Faces Sistema de Controle de Acesso Baseado no Reconhecimento de Faces Access Control System Based on Face Recognition Tiago A. Neves, Welton S. De Oliveira e Jean-Jacques De Groote Faculdades COC de Ribeirão

Leia mais

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

Universidade Federal do Rio de Janeiro - IM/DCC & NCE Universidade Federal do Rio de Janeiro - IM/DCC & NCE Processamento de Imagens Tratamento da Imagem - Filtros Antonio G. Thomé thome@nce.ufrj.br Sala AEP/033 Sumário 2 Conceito de de Filtragem Filtros

Leia mais

UFGD FCA PROF. OMAR DANIEL BLOCO 4 PROCESSAMENTO DE IMAGENS

UFGD FCA PROF. OMAR DANIEL BLOCO 4 PROCESSAMENTO DE IMAGENS UFGD FCA PROF. OMAR DANIEL BLOCO 4 PROCESSAMENTO DE IMAGENS Executar as principais técnicas utilizadas em processamento de imagens, como contraste, leitura de pixels, transformação IHS, operações aritméticas

Leia mais

Sistema de Contagem, Identificação e Monitoramento Automático de Rotas de Veículos baseado em Visão Computacional

Sistema de Contagem, Identificação e Monitoramento Automático de Rotas de Veículos baseado em Visão Computacional Universidade Federal de Minas Gerais Escola de Engenharia Curso de Graduação em Engenharia de Controle e Automação Sistema de Contagem, Identificação e Monitoramento Automático de Rotas de Veículos baseado

Leia mais

CBPF Centro Brasileiro de Pesquisas Físicas. Nota Técnica

CBPF Centro Brasileiro de Pesquisas Físicas. Nota Técnica CBPF Centro Brasileiro de Pesquisas Físicas Nota Técnica Aplicação de Física Médica em imagens de Tomografia de Crânio e Tórax Autores: Dário Oliveira - dario@cbpf.br Marcelo Albuquerque - marcelo@cbpf.br

Leia mais

Trabalho 2 Fundamentos de computação Gráfica

Trabalho 2 Fundamentos de computação Gráfica Trabalho 2 Fundamentos de computação Gráfica Processamento de Imagens Aluno: Renato Deris Prado Tópicos: 1- Programa em QT e C++ 2- Efeitos de processamento de imagens 1- Programa em QT e C++ Para o trabalho

Leia mais

Tratamento da Imagem Transformações (cont.)

Tratamento da Imagem Transformações (cont.) Universidade Federal do Rio de Janeiro - IM/DCC & NCE Tratamento da Imagem Transformações (cont.) Antonio G. Thomé thome@nce.ufrj.br Sala AEP/133 Tratamento de Imagens - Sumário Detalhado Objetivos Alguns

Leia mais

VCA Treinamento em Algoritmo

VCA Treinamento em Algoritmo Conteúdo VCA Treinamento em Algoritmo VCA Treinamento em Algoritmo Conteúdo Algoritmos Rastreador (tracker) Monitoramento Objeto Abandonado/Removido Pessoas Calibração Classificação Linha de contagem Auto

Leia mais

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

Detecção e Rastreamento de Objetos coloridos em vídeo utilizando o OpenCV Detecção e Rastreamento de Objetos coloridos em vídeo utilizando o OpenCV Bruno Alberto Soares OLIVEIRA 1,3 ; Servílio Souza de ASSIS 1,3,4 ; Izadora Aparecida RAMOS 1,3,4 ; Marlon MARCON 2,3 1 Estudante

Leia mais

Rastreamento de Múltiplos. Objetos em Tempo Real

Rastreamento de Múltiplos. Objetos em Tempo Real Rastreamento de Múltiplos Objetos em Tempo Real THIAGO DA ROSA DE BUSTAMANTE 1 UFMG - Universidade Federal de Minas Gerais, Av. Antônio Carlos, 667 Pampulha - Belo Horizonte, MG, Brasil trb@dcc.ufmg.br

Leia mais

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

Processamento de Imagem Morfológica (Morfologia Matemática) Tsang Ing Ren UFPE - Universidade Federal de Pernambuco CIn - Centro de Informática Processamento de Imagem Morfológica (Morfologia Matemática) Tsang Ing Ren UFPE - Universidade Federal de Pernambuco CIn - Centro de Informática 1 Tópicos Introdução Conceitos básicos da teoria dos conjuntos

Leia mais

Visão computacional no reconhecimento de formas e objetos

Visão computacional no reconhecimento de formas e objetos Visão computacional no reconhecimento de formas e objetos Paula Rayane Mota Costa Pereira*, Josemar Rodrigues de Souza**, Resumo * Bolsista de Iniciação Científica da Faculdade de Tecnologia SENAI CIMATEC,

Leia mais

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

Processamento e Análise de Imagens (MC940) Análise de Imagens (MO445) Processamento e Análise de Imagens (MC940) Análise de Imagens (MO445) Prof. Hélio Pedrini Instituto de Computação UNICAMP 2º Semestre de 2015 Roteiro 1 Morfologia Matemática Fundamentos Matemáticos Operadores

Leia mais

Desenvolvimento de um Sistema Híbrido para Rastreamento

Desenvolvimento de um Sistema Híbrido para Rastreamento Desenvolvimento de um Sistema Híbrido para Rastreamento de Objetos aplicado ao Futebol de Robôs Eduardo W. Basso 1, Diego M. Pereira 2, Paulo Schreiner 2 1 Laboratório de Robótica Inteligente Instituto

Leia mais

UTILIZAÇÃO DE RASTREAMENTO DE OBJETOS SEM O USO DE GPS PARA OTIMIZAR O PERCURSO DE DISPOSITIVOS ROBÓTICOS AUTÔNOMOS

UTILIZAÇÃO DE RASTREAMENTO DE OBJETOS SEM O USO DE GPS PARA OTIMIZAR O PERCURSO DE DISPOSITIVOS ROBÓTICOS AUTÔNOMOS UTILIZAÇÃO DE RASTREAMENTO DE OBJETOS SEM O USO DE GPS PARA OTIMIZAR O PERCURSO DE DISPOSITIVOS ROBÓTICOS AUTÔNOMOS Thiago Crestani 1 ; Marcelo Massocco Cendron 2 INTRODUÇÃO Saber a localização de algo

Leia mais

Pesquisa Operacional

Pesquisa Operacional GOVERNO DO ESTADO DO PARÁ UNIVERSIDADE DO ESTADO DO PARÁ CENTRO DE CIÊNCIAS NATURAIS E TECNOLOGIA DEPARTAMENTO DE ENGENHARIA Pesquisa Operacional Tópico 4 Simulação Rosana Cavalcante de Oliveira, Msc rosanacavalcante@gmail.com

Leia mais

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

Universidade Federal de Goiás Instituto de Informática Processamento Digital de Imagens Universidade Federal de Goiás Instituto de Informática Processamento Digital de Imagens Prof Fabrízzio Alphonsus A M N Soares 2012 Capítulo 2 Fundamentos da Imagem Digital Definição de Imagem: Uma imagem

Leia mais

Morfologia Matemática Binária

Morfologia Matemática Binária Morfologia Matemática Binária Conceitos fundamentais: (Você precisa entender bem esses Pontos básicos para dominar a área! Esse será nosso game do dia!!! E nossa nota 2!!) Morfologia Matemática Binária

Leia mais

Processamento Digital de Imagens

Processamento Digital de Imagens Processamento Digital de Imagens Israel Andrade Esquef a Márcio Portes de Albuquerque b Marcelo Portes de Albuquerque b a Universidade Estadual do Norte Fluminense - UENF b Centro Brasileiro de Pesquisas

Leia mais

Curso: Logística e Transportes Disciplina: Estatística Profa. Eliane Cabariti. Distribuição Normal

Curso: Logística e Transportes Disciplina: Estatística Profa. Eliane Cabariti. Distribuição Normal Curso: Logística e Transportes Disciplina: Estatística Profa. Eliane Cabariti Distribuição Normal 1. Introdução O mundo é normal! Acredite se quiser! Muitos dos fenômenos aleatórios que encontramos na

Leia mais

Introdução do Processamento de Imagens. Julio C. S. Jacques Junior juliojj@gmail.com

Introdução do Processamento de Imagens. Julio C. S. Jacques Junior juliojj@gmail.com Introdução do Processamento de Imagens Julio C. S. Jacques Junior juliojj@gmail.com Porque processar uma imagem digitalmente? Melhoria de informação visual para interpretação humana Processamento automático

Leia mais

Bacharelado em Ciência e Tecnologia Bacharelado em Ciências e Humanidades. Representação Gráfica de Funções

Bacharelado em Ciência e Tecnologia Bacharelado em Ciências e Humanidades. Representação Gráfica de Funções Bacharelado em Ciência e Tecnologia Bacharelado em Ciências e Humanidades BC 0005 Bases Computacionais da Ciência Representação Gráfica de Funções Prof a Maria das Graças Bruno Marietto graca.marietto@ufabc.edu.br

Leia mais

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

RECONHECIMENTO DE PLACAS DE AUTOMÓVEIS ATRAVÉS DE CÂMERAS IP RECONHECIMENTO DE PLACAS DE AUTOMÓVEIS ATRAVÉS DE CÂMERAS IP Caio Augusto de Queiroz Souza caioaugusto@msn.com Éric Fleming Bonilha eric@digifort.com.br Gilson Torres Dias gilson@maempec.com.br Luciano

Leia mais

Localização de placas em imagens de veículos. Resumo

Localização de placas em imagens de veículos. Resumo Localização de placas em imagens de veículos Geovane Hilário Linzmeyer Curso de Inteligência Computacional Pontifícia Universidade Católica do Paraná Curitiba, dezembro de 2005 Resumo Um dos maiores problemas

Leia mais

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

Simulação Gráfica. Morfologia Matemática. Julio C. S. Jacques Junior Simulação Gráfica Morfologia Matemática Julio C. S. Jacques Junior Morfologia Palavra denota uma área da biologia que trata com a forma e a estrutura de animais e plantas. No contexto de Morfologia Matemática:

Leia mais

3 OOHDM e SHDM 3.1. OOHDM

3 OOHDM e SHDM 3.1. OOHDM 32 3 OOHDM e SHDM Com a disseminação em massa, desde a década de 80, de ambientes hipertexto e hipermídia, principalmente a Web, foi identificada a necessidade de elaborar métodos que estruturassem de

Leia mais

Aula 6 - Segmentação de Imagens Parte 2. Prof. Adilson Gonzaga

Aula 6 - Segmentação de Imagens Parte 2. Prof. Adilson Gonzaga Aula 6 - Segmentação de Imagens Parte 2 Prof. Adilson Gonzaga 1 Motivação Extração do Objeto Dificuldades Super segmentação over-segmentation 1) Segmentação por Limiarização (Thresholding Global): Efeitos

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Sistemas de Entrada/Saída Princípios de Hardware Sistema de Entrada/Saída Visão Geral Princípios de Hardware Dispositivos de E/S Estrutura Típica do Barramento de um PC Interrupções

Leia mais

Processamento de Imagem. Prof. MSc. André Yoshimi Kusumoto andrekusumoto.unip@gmail.com

Processamento de Imagem. Prof. MSc. André Yoshimi Kusumoto andrekusumoto.unip@gmail.com Processamento de Imagem Prof. MSc. André Yoshimi Kusumoto andrekusumoto.unip@gmail.com Visão Computacional Não existe um consenso entre os autores sobre o correto escopo do processamento de imagens, a

Leia mais

UNIVERSIDADE DE SÃO PAULO. Faculdade de Arquitetura e Urbanismo

UNIVERSIDADE DE SÃO PAULO. Faculdade de Arquitetura e Urbanismo UNIVERSIDADE DE SÃO PAULO Faculdade de Arquitetura e Urbanismo DISTRIBUIÇÃO AMOSTRAL ESTIMAÇÃO AUT 516 Estatística Aplicada a Arquitetura e Urbanismo 2 DISTRIBUIÇÃO AMOSTRAL Na aula anterior analisamos

Leia mais

Programa do Módulo 2. Processo Unificado: Visão Geral

Programa do Módulo 2. Processo Unificado: Visão Geral 9.1 Programa do Módulo 2 Orientação a Objetos Conceitos Básicos Análise Orientada a Objetos (UML) O Processo Unificado (RUP) Processo Unificado: Visão Geral 9.2 Encaixa-se na definição geral de processo:

Leia mais

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

UFGD FCA PROF. OMAR DANIEL BLOCO 6 CLASSIFICAÇÃO DE IMAGENS UFGD FCA PROF. OMAR DANIEL BLOCO 6 CLASSIFICAÇÃO DE IMAGENS Obter uma imagem temática a partir de métodos de classificação de imagens multi- espectrais 1. CLASSIFICAÇÃO POR PIXEL é o processo de extração

Leia mais

Visão Computacional e Realidade Aumentada. Trabalho 3 Reconstrução 3D. Pedro Sampaio Vieira. Prof. Marcelo Gattass

Visão Computacional e Realidade Aumentada. Trabalho 3 Reconstrução 3D. Pedro Sampaio Vieira. Prof. Marcelo Gattass Visão Computacional e Realidade Aumentada Trabalho 3 Reconstrução 3D Pedro Sampaio Vieira Prof. Marcelo Gattass 1 Introdução Reconstrução tridimensional é um assunto muito estudado na área de visão computacional.

Leia mais

Processamento de Imagem. Prof. Herondino

Processamento de Imagem. Prof. Herondino Processamento de Imagem Prof. Herondino Sensoriamento Remoto Para o Canada Centre for Remote Sensing - CCRS (2010), o sensoriamento remoto é a ciência (e em certa medida, a arte) de aquisição de informações

Leia mais

Algoritmos de Subtração Básica de Fundo

Algoritmos de Subtração Básica de Fundo Algoritmos de Subtração Básica de Fundo Leonardo Ronald Perin Rauta leonardorauta@univali.br UNIVALI Anita Maria da Rocha Fernandes anita.fernandes@univali.br UNIVALI Resumo:Algoritmos de subtração de

Leia mais

CAP 254 CAP 254. Otimização Combinatória. Professor: Dr. L.A.N. Lorena. Assunto: Metaheurísticas Antonio Augusto Chaves

CAP 254 CAP 254. Otimização Combinatória. Professor: Dr. L.A.N. Lorena. Assunto: Metaheurísticas Antonio Augusto Chaves CAP 254 CAP 254 Otimização Combinatória Professor: Dr. L.A.N. Lorena Assunto: Metaheurísticas Antonio Augusto Chaves Conteúdo C01 Simulated Annealing (20/11/07). C02 Busca Tabu (22/11/07). C03 Colônia

Leia mais

Controle Inteligente de Robôs Móveis Autônomos utilizando Sistemas Inteligentes

Controle Inteligente de Robôs Móveis Autônomos utilizando Sistemas Inteligentes Controle Inteligente de Robôs Móveis Autônomos utilizando Sistemas Inteligentes Aluno: Gabriel Lins Tenório Orientadoras: Roxana Jiménez e Marley Rebuzzi Vellasco Introdução A aplicação de robôs móveis

Leia mais

Nosso foco é alertar quando necessário e recuperar rapidamente os dados corretos. Análise Inteligente de Vídeo

Nosso foco é alertar quando necessário e recuperar rapidamente os dados corretos. Análise Inteligente de Vídeo Nosso foco é alertar quando necessário e recuperar rapidamente os dados corretos Análise Inteligente de Vídeo Adição de sentido e estrutura Quando se trata de vigilância por vídeo, a tendência é IP. Embora

Leia mais

4 Arquitetura básica de um analisador de elementos de redes

4 Arquitetura básica de um analisador de elementos de redes 4 Arquitetura básica de um analisador de elementos de redes Neste capítulo é apresentado o desenvolvimento de um dispositivo analisador de redes e de elementos de redes, utilizando tecnologia FPGA. Conforme

Leia mais

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

RUÍDOS EM IMAGENS FILTRAGEM DE RUÍDOS. o Flutuações aleatórias ou imprecisões em dados de entrada, precisão numérica, arredondamentos etc... RUÍDOS EM IMAGENS FILTRAGEM DE RUÍDOS RUÍDOS EM IMAGENS Em Visão Computacional, ruído se refere a qualquer entidade em imagens, dados ou resultados intermediários, que não são interessantes para os propósitos

Leia mais

Otimização de Funções Não Lineares por Meio do Algoritmo Árvore da Montanha

Otimização de Funções Não Lineares por Meio do Algoritmo Árvore da Montanha Otimização de Funções Não Lineares por Meio do Algoritmo Árvore da Montanha Amarildo de Vicente Colegiado do Curso de Matemática Centro de Ciências Exatas e Tecnológicas da Universidade Estadual do Oeste

Leia mais

[Fingerprint Recognition]

[Fingerprint Recognition] Mestrado em Engenharia de Segurança Informática Tecnologias Biométricas Pedro Santos santos.pmcm@gmail.com 12065 Filipe Vieira fil.vieira@gmail.com 12049 Rui Pereira ruipereira.eng@gmail.com 12061 Docente

Leia mais

4 Computação Paralela 4.1. Introdução

4 Computação Paralela 4.1. Introdução 4 Computação Paralela 4.1. Introdução Nos últimos anos observa-se uma tendência cada vez maior do aumento da demanda computacional na resolução de grandes problemas. Exemplos de aplicações que exigem alto

Leia mais

Introdução à Simulação

Introdução à Simulação Introdução à Simulação O que é simulação? Wikipedia: Simulação é a imitação de alguma coisa real ou processo. O ato de simular algo geralmente consiste em representar certas características e/ou comportamentos

Leia mais

ROBÓTICA INTELIGENTE: USO DE VISÃO COMPUTACIONAL VOLTADA PARA O CONTROLE E NAVEGAÇÃO DE ROBÔS MÓVEIS AUTÔNOMOS

ROBÓTICA INTELIGENTE: USO DE VISÃO COMPUTACIONAL VOLTADA PARA O CONTROLE E NAVEGAÇÃO DE ROBÔS MÓVEIS AUTÔNOMOS ROBÓTICA INTELIGENTE: USO DE VISÃO COMPUTACIONAL VOLTADA PARA O CONTROLE E NAVEGAÇÃO DE ROBÔS MÓVEIS AUTÔNOMOS Matheus Doretto Compri, Fernando Osório, Denis Wolf Instituto de Ciências Matemáticas e de

Leia mais

A linguagem UML. UML e Diagramas de Casos de Uso e Classes. Por que usar UML? O que é modelagem?

A linguagem UML. UML e Diagramas de Casos de Uso e Classes. Por que usar UML? O que é modelagem? UML e Diagramas de Casos de Uso e Classes Prof. Ms. Luiz Alberto Contato: lasf.bel@gmail.com A linguagem UML UML (Unified Modeling Language) Linguagem de Modelagem Unificada É uma linguagem de modelagem

Leia mais

TRIANGULAÇÃO DE DELAUNAY COM RESTRIÇÃO EM IMAGENS BIDIMENSIONAIS

TRIANGULAÇÃO DE DELAUNAY COM RESTRIÇÃO EM IMAGENS BIDIMENSIONAIS TRIANGULAÇÃO DE DELAUNAY COM RESTRIÇÃO EM IMAGENS BIDIMENSIONAIS Leide Daiane Caires 1, Edson A. Capello Sousa 2 1 Depto Eng. Mecânica Universidade Estadual Paulista, Bauru, Brasil, ladycaires@gmail.com

Leia mais

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

Universidade Federal de Alagoas Instituto de Matemática. Imagem. Prof. Thales Vieira Universidade Federal de Alagoas Instituto de Matemática Imagem Prof. Thales Vieira 2014 O que é uma imagem digital? Imagem no universo físico Imagem no universo matemático Representação de uma imagem Codificação

Leia mais

INFORMAÇÕES SOBRE O MATERIAL UTILIZADO NA OBTENÇÃO E NA ANÁLISE DOS VÍDEOS

INFORMAÇÕES SOBRE O MATERIAL UTILIZADO NA OBTENÇÃO E NA ANÁLISE DOS VÍDEOS INFORMAÇÕES SOBRE O MATERIAL UTILIZADO NA OBTENÇÃO E NA ANÁLISE DOS VÍDEOS 1 Material utilizado 1.1 Tracker: um programa de análise de imagens Para a execução da proposta foi utilizado o programa livre

Leia mais

Comparação entre a Máscara de Nitidez Cúbica e o Laplaciano para Realce de Imagens Digitais

Comparação entre a Máscara de Nitidez Cúbica e o Laplaciano para Realce de Imagens Digitais Comparação entre a Máscara de Nitidez Cúbica e o Laplaciano para Realce de Imagens Digitais Wesley B. Dourado, Renata N. Imada, Programa de Pós-Graduação em Matemática Aplicada e Computacional, FCT, UNESP,

Leia mais

Simulação Computacional de Sistemas, ou simplesmente Simulação

Simulação Computacional de Sistemas, ou simplesmente Simulação Simulação Computacional de Sistemas, ou simplesmente Simulação Utilização de métodos matemáticos & estatísticos em programas computacionais visando imitar o comportamento de algum processo do mundo real.

Leia mais

SEGMENTAÇÃO DE IMAGENS EM PLACAS AUTOMOTIVAS

SEGMENTAÇÃO DE IMAGENS EM PLACAS AUTOMOTIVAS SEGMENTAÇÃO DE IMAGENS EM PLACAS AUTOMOTIVAS André Zuconelli 1 ; Manassés Ribeiro 2 1. Aluno do Curso Técnico em Informática, turma 2010, Instituto Federal Catarinense, Câmpus Videira, andre_zuconelli@hotmail.com

Leia mais

Modelagem e Simulação Material 02 Projeto de Simulação

Modelagem e Simulação Material 02 Projeto de Simulação Modelagem e Simulação Material 02 Projeto de Simulação Prof. Simão Sirineo Toscani Projeto de Simulação Revisão de conceitos básicos Processo de simulação Etapas de projeto Cuidados nos projetos de simulação

Leia mais

OpenGL. Uma Abordagem Prática e Objetiva. Marcelo Cohen Isabel Harb Manssour. Novatec Editora

OpenGL. Uma Abordagem Prática e Objetiva. Marcelo Cohen Isabel Harb Manssour. Novatec Editora OpenGL Uma Abordagem Prática e Objetiva Marcelo Cohen Isabel Harb Manssour Novatec Editora Capítulo 1 Introdução A Computação Gráfica é uma área da Ciência da Computação que se dedica ao estudo e ao desenvolvimento

Leia mais

EMENTAS DO CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

EMENTAS DO CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS EMENTAS DO CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS INTRODUÇÃO À COMPUTAÇÃO 60 h 1º Evolução histórica dos computadores. Aspectos de hardware: conceitos básicos de CPU, memórias,

Leia mais

2. O que é Redundância de código ou informação? Como a compressão Huffman utiliza isso? Você conhece algum formato de imagem que a utiliza?(1.

2. O que é Redundância de código ou informação? Como a compressão Huffman utiliza isso? Você conhece algum formato de imagem que a utiliza?(1. Respostas do Estudo Dirigido Cap. 26 - Reducing the information:... ou Image Compression 1. Para que serve comprimir as imagens? Que aspectos estão sendo considerados quando se fala de: Compression Rate,

Leia mais

MÓDULO 7 Ferramentas da Qualidade

MÓDULO 7 Ferramentas da Qualidade MÓDULO 7 Ferramentas da Qualidade Os modelos de Qualidade Total apresentam uma estrutura teórica bem consistente, pois: não há contradições entre as suas afirmações básicas; há uma estrutura bem definida

Leia mais

IDENTIFICAÇÃO DE MARCADORES DE PAVIMENTAÇÃO NA ORIENTAÇÃO DE CEGOS

IDENTIFICAÇÃO DE MARCADORES DE PAVIMENTAÇÃO NA ORIENTAÇÃO DE CEGOS IDENTIFICAÇÃO DE MARCADORES DE PAVIMENTAÇÃO NA ORIENTAÇÃO DE CEGOS André Zuconelli¹, Manassés Ribeiro² Instituto Federal de Educação, Ciência e Tecnologia Catarinense - Campus Videira Rodovia SC, Km 5

Leia mais

Introdução à Multimédia conceitos

Introdução à Multimédia conceitos 1. Introdução à Multimédia conceitos Popularidade mercado potencial aparece nos anos 90 Avanços Tecnológicos que motivaram o aparecimento/ desenvolvimento da MULTIMÉDIA Indústrias envolvidas - Sistemas

Leia mais

Reconhecimento Automático de Placas de Veículos

Reconhecimento Automático de Placas de Veículos Reconhecimento Automático de Placas de Veículos Vinicius Bergoli Trentini, Lucas Antonio Toledo Godoy, Aparecido Nilceu Marana Universidade Estadual Paulista - UNESP (Campus de Bauru) Faculdade de Ciências

Leia mais

Complemento II Noções Introdutória em Redes Neurais

Complemento II Noções Introdutória em Redes Neurais Complemento II Noções Introdutória em Redes Neurais Esse documento é parte integrante do material fornecido pela WEB para a 2ª edição do livro Data Mining: Conceitos, técnicas, algoritmos, orientações

Leia mais

Sensoriamento Remoto Práticas Avançadas para Processamento Digital de Imagens Orbitais

Sensoriamento Remoto Práticas Avançadas para Processamento Digital de Imagens Orbitais Sensoriamento Remoto Práticas Avançadas para Processamento Digital de Imagens Orbitais Jorge Pereira Santos 1ª versão - 2013 Processamento Digital Geotecnologias e Software Livre www.processamentodigital.com.br

Leia mais

Sistema de Visão Computacional sobre Processadores com Arquitetura Multi Núcleos

Sistema de Visão Computacional sobre Processadores com Arquitetura Multi Núcleos Roberto Kenji Hiramatsu Sistema de Visão Computacional sobre Processadores com Arquitetura Multi Núcleos Tese apresentada à Escola Politécnica da Universidade de São Paulo para obtenção do Título de Doutor

Leia mais

Processamento digital de imagens. introdução

Processamento digital de imagens. introdução Processamento digital de imagens introdução Imagem digital Imagem digital pode ser descrita como uma matriz bidimensional de números inteiros que corresponde a medidas discretas da energia eletromagnética

Leia mais

Matemática - UEL - 2010 - Compilada em 18 de Março de 2010. Prof. Ulysses Sodré Matemática Essencial: http://www.mat.uel.

Matemática - UEL - 2010 - Compilada em 18 de Março de 2010. Prof. Ulysses Sodré Matemática Essencial: http://www.mat.uel. Matemática Essencial Equações do Primeiro grau Matemática - UEL - 2010 - Compilada em 18 de Março de 2010. Prof. Ulysses Sodré Matemática Essencial: http://www.mat.uel.br/matessencial/ Resumo: Notas de

Leia mais

As fases na resolução de um problema real podem, de modo geral, ser colocadas na seguinte ordem:

As fases na resolução de um problema real podem, de modo geral, ser colocadas na seguinte ordem: 1 As notas de aula que se seguem são uma compilação dos textos relacionados na bibliografia e não têm a intenção de substituir o livro-texto, nem qualquer outra bibliografia. Introdução O Cálculo Numérico

Leia mais

Figura 01: Aplicações do Filtro Espacial Passa-Baixa.

Figura 01: Aplicações do Filtro Espacial Passa-Baixa. 791 IMPLEMENTAÇÃO DE TÉCNICAS DE PRÉ-PROCESSAMENTO E PROCESSAMENTO DE IMAGENS PARA RADIOGRAFIAS CARPAIS Rafael Lima Alves 1 ; Michele Fúlvia Angelo 2 Bolsista PROBIC, Graduando em Engenharia de Computação,

Leia mais

Automação do Processo de Instalação de Softwares

Automação do Processo de Instalação de Softwares Automação do Processo de Instalação de Softwares Aislan Nogueira Diogo Avelino João Rafael Azevedo Milene Moreira Companhia Siderúrgica Nacional - CSN RESUMO Este artigo tem como finalidade apresentar

Leia mais

2 Editoração Eletrônica

2 Editoração Eletrônica 8 2 Editoração Eletrônica A década de 80 foi um marco na história da computação. Foi quando a maioria dos esforços dos desenvolvedores, tanto de equipamentos, quanto de programas, foram direcionados para

Leia mais

4 Conversor EDTV Raw. 4.1 Arquitetura

4 Conversor EDTV Raw. 4.1 Arquitetura 4 Conversor EDTV Raw O conversor EDTV Raw é o programa que lê um documento escrito no perfil NCL EDTV e gera um documento Raw equivalente, i.e. que define a mesma apresentação. Este capítulo, apresenta

Leia mais

Segmentação de imagens de profundidade por limiarização com morfologia matemática. Jorge Antonio Silva Centeno 1 Regina Tiemy Kishi 2

Segmentação de imagens de profundidade por limiarização com morfologia matemática. Jorge Antonio Silva Centeno 1 Regina Tiemy Kishi 2 Segmentação de imagens de profundidade por limiarização com morfologia matemática Jorge Antonio Silva Centeno 1 Regina Tiemy Kishi 2 Universidade Federal do Paraná - UFPR 1 Departamento de Geomática 2

Leia mais

- Aula 1 - ARQUITETURA DE COMPUTADORES

- Aula 1 - ARQUITETURA DE COMPUTADORES - Aula 1 - ARQUITETURA DE COMPUTADORES Em arquitetura de computadores serão estudados aspectos da estrutura e do funcionamento dos computadores. O objetivo é apresentar de forma clara e abrangente a natureza

Leia mais

Considerações: Leia a lista toda, o quanto antes, para evitar más interpretações e muitas dúvidas em cima da hora

Considerações: Leia a lista toda, o quanto antes, para evitar más interpretações e muitas dúvidas em cima da hora Universidade Federal de Pernambuco Centro de Informática Lista 4 Introdução a Programação Prof: Adriano Sarmento Data: 16/12/2013 Data de entrega: 07/01/2014 Considerações: Leia a lista toda, o quanto

Leia mais

Capítulo 8 Arquitetura de Computadores Paralelos

Capítulo 8 Arquitetura de Computadores Paralelos Capítulo 8 Arquitetura de Computadores Paralelos Necessidade de máquinas com alta capacidade de computação Aumento do clock => alta dissipação de calor Velocidade limitada dos circuitos => velocidade da

Leia mais

MODELAGEM DIGITAL DE SUPERFÍCIES

MODELAGEM DIGITAL DE SUPERFÍCIES MODELAGEM DIGITAL DE SUPERFÍCIES Prof. Luciene Delazari Grupo de Pesquisa em Cartografia e SIG da UFPR SIG 2012 Introdução Os modelo digitais de superficie (Digital Surface Model - DSM) são fundamentais

Leia mais

Implementação de Algoritmo em PHP para Detecção de Faces em Imagens Estáticas

Implementação de Algoritmo em PHP para Detecção de Faces em Imagens Estáticas Implementação de Algoritmo em PHP para Detecção de Faces em Imagens Estáticas Helmiton Filho, Mikaelle Oliveira, Carlos Danilo Miranda Regis Instituto Federal de Educação, Ciência e Tecnologia da Paraíba

Leia mais

Aula 4 - Processamento de Imagem

Aula 4 - Processamento de Imagem 1. Contraste de Imagens Aula 4 - Processamento de Imagem A técnica de realce de contraste tem por objetivo melhorar a qualidade das imagens sob os critérios subjetivos do olho humano. É normalmente utilizada

Leia mais

INF 1771 Inteligência Artificial

INF 1771 Inteligência Artificial Edirlei Soares de Lima INF 1771 Inteligência Artificial Aula 04 Algoritmos Genéticos Introdução Algoritmos genéticos são bons para abordar espaços de buscas muito grandes e navegálos

Leia mais

William Stallings Arquitetura e Organização de Computadores 8 a Edição

William Stallings Arquitetura e Organização de Computadores 8 a Edição William Stallings Arquitetura e Organização de Computadores 8 a Edição Capítulo 7 Entrada/saída Os textos nestas caixas foram adicionados pelo Prof. Joubert slide 1 Problemas de entrada/saída Grande variedade

Leia mais

Probabilidade. Distribuição Normal

Probabilidade. Distribuição Normal Probabilidade Distribuição Normal Distribuição Normal Uma variável aleatória contínua tem uma distribuição normal se sua distribuição é: simétrica apresenta (num gráfico) forma de um sino Função Densidade

Leia mais

Muitas aplicações modernas podem ser modeladas como tarefas divisíveis.

Muitas aplicações modernas podem ser modeladas como tarefas divisíveis. 1 Introdução O grande aumento de performance das redes de computadores, combinado com a proliferação de computadores de baixo custo e alto desempenho, trouxe à tona ambientes de meta-computação, ou grids[15,

Leia mais

11 Conclusão. 11.1 Descobertas

11 Conclusão. 11.1 Descobertas 97 11 Conclusão 11.1 Descobertas Nesse trabalho apresentamos o McCloud Service Framework, um arcabouço para implementação de serviços baseados na Simulação de Monte Carlo na nuvem, disponibilizamos duas

Leia mais

1 UML (UNIFIED MODELING LANGUAGE)

1 UML (UNIFIED MODELING LANGUAGE) 1 UML (UNIFIED MODELING LANGUAGE) Segundo Tonsig (2003), para conseguir desenvolver um software capaz de satisfazer as necessidades de seus usuários, com qualidade, por intermédio de uma arquitetura sólida

Leia mais

Estudo de Caso. O Fator Wow! : Um Exemplo Perfeito do Uso de Analítica de Negócios e Computação em Nuvem para Criar Valor de Negócios

Estudo de Caso. O Fator Wow! : Um Exemplo Perfeito do Uso de Analítica de Negócios e Computação em Nuvem para Criar Valor de Negócios Estudo de Caso O Fator Wow! : Um Exemplo Perfeito do Uso de Analítica de Negócios Introdução Este Estudo de Caso é sobre como uma corporação (IBM) encontrou uma maneira de extrair valor de negócios adicional

Leia mais

3 Metodologia de Previsão de Padrões de Falha

3 Metodologia de Previsão de Padrões de Falha 3 Metodologia de Previsão de Padrões de Falha Antes da ocorrência de uma falha em um equipamento, ele entra em um regime de operação diferente do regime nominal, como descrito em [8-11]. Para detectar

Leia mais

Introdução ao Processamento de Imagens

Introdução ao Processamento de Imagens Introdução ao PID Processamento de Imagens Digitais Introdução ao Processamento de Imagens Glaucius Décio Duarte Instituto Federal Sul-rio-grandense Engenharia Elétrica 2013 1 de 7 1. Introdução ao Processamento

Leia mais

Engenharia de Software I

Engenharia de Software I Engenharia de Software I Rogério Eduardo Garcia (rogerio@fct.unesp.br) Bacharelado em Ciência da Computação Aula 05 Material preparado por Fernanda Madeiral Delfim Tópicos Aula 5 Contextualização UML Astah

Leia mais

MODELAGEM E SIMULAÇÃO

MODELAGEM E SIMULAÇÃO MODELAGEM E SIMULAÇÃO Professor: Dr. Edwin B. Mitacc Meza edwin@engenharia-puro.com.br www.engenharia-puro.com.br/edwin Como Funciona a Simulação Introdução Assim como qualquer programa de computador,

Leia mais

Um sistema é constituído de um conjunto de processos que executam seus respectivos códigos do sistema operacional e processos e códigos de usuários.

Um sistema é constituído de um conjunto de processos que executam seus respectivos códigos do sistema operacional e processos e códigos de usuários. Os sistemas computacionais atuais permitem que diversos programas sejam carregados na memória e executados simultaneamente. Essa evolução tornou necessário um controle maior na divisão de tarefas entre

Leia mais

INE 7001 - Procedimentos de Análise Bidimensional de variáveis QUANTITATIVAS utilizando o Microsoft Excel. Professor Marcelo Menezes Reis

INE 7001 - Procedimentos de Análise Bidimensional de variáveis QUANTITATIVAS utilizando o Microsoft Excel. Professor Marcelo Menezes Reis INE 7001 - Procedimentos de Análise Bidimensional de variáveis QUANTITATIVAS utilizando o Microsoft Excel. Professor Marcelo Menezes Reis O objetivo deste texto é apresentar os principais procedimentos

Leia mais

Relatório A3: ferramenta para melhorias de processos*

Relatório A3: ferramenta para melhorias de processos* Relatório A3: ferramenta para melhorias de processos* Durward K. Sobek, II Montana State University Cindy Jimmerson Community Medical Center Tradução: Diogo Kosaka O relatório A3 é uma ferramenta que a

Leia mais

APLICAÇÕES EM SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com

APLICAÇÕES EM SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com - Aula 6 - ALGORÍTIMOS PARALELOS MPI - Parallel Virtual Machine e PVM - Parallel Virtual Machine 1. INTRODUÇÃO Inicialmente é necessário conceber alguns conceitos para entendimento dos algoritmos paralelos:

Leia mais

Normas para Apresentação de Monografias

Normas para Apresentação de Monografias UNIVERSIDADE FEDERAL DE CAMPINA GRANDE DEPARTAMENTO DE SISTEMAS E COMPUTAÇÃO COORDENAÇÃO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO Normas para Apresentação de Monografias Campina Grande, dezembro 2010

Leia mais

6 - Gerência de Dispositivos

6 - Gerência de Dispositivos 1 6 - Gerência de Dispositivos 6.1 Introdução A gerência de dispositivos de entrada/saída é uma das principais e mais complexas funções do sistema operacional. Sua implementação é estruturada através de

Leia mais

Aula 2 Aquisição de Imagens

Aula 2 Aquisição de Imagens Processamento Digital de Imagens Aula 2 Aquisição de Imagens Prof. Dr. Marcelo Andrade da Costa Vieira mvieira@sc.usp.br EESC/USP Fundamentos de Imagens Digitais Ocorre a formação de uma imagem quando

Leia mais

Segmentação de Imagens de Placas Automotivas

Segmentação de Imagens de Placas Automotivas Segmentação de Imagens de Placas Automotivas André Zuconelli, Manassés Ribeiro Instituto Federal Catarinense - Campus Videira. Técnico em Informática, turma 2010 Rodovia SC, Km 5 Bairro Campo Experimental

Leia mais

SATURNO V 6.11. Por Hindemburg Melão Jr. http://www.saturnov.com

SATURNO V 6.11. Por Hindemburg Melão Jr. http://www.saturnov.com SATURNO V 6. Por Hindemburg Melão Jr. http://www.saturnov.com A versão 6. (ou 3.4926c83) foi analisada sob diversos aspectos, a fim de verificar a uniformidade do comportamento ao longo do tempo. Primeiramente

Leia mais