O monitoramento do fluxo de veículos com base na visão computacional é muito importante para o gerenciamento de políticas de trânsito. O monitoramento do fluxo de veículos baseado em visão computacional requer a extração de informações sobre os veículos no local.
PROBLEMATIZAÇÃO
Formulação do Problema
Diante do exposto, este trabalho monitora uma região de interesse definida em uma via e analisa o fluxo de veículos na via. Hoje em dia, na maioria dos casos no Brasil, o monitoramento do fluxo de veículos é feito por amostragem e está sujeito a erros.
Solução Proposta
Um sistema de controle eletrônico utilizando PDI projetado para monitorar o fluxo de veículos em uma determinada via em tempo real é capaz de obter informações do local, e a arquitetura de hardware adequada para isso é o problema de pesquisa abordado neste trabalho.
OBJETIVOS
Objetivo Geral
Objetivos Específicos
METODOLOGIA
ESTRUTURA DO TRABALHO
MONITORAMENTO INTELIGENTE DE SISTEMAS
Arquitetura de Sistemas de Monitoramento
Esta etapa representa o nível mais baixo do sistema inteligente e geralmente opera no nível de sinalização (MICHELONI et al., 2010). Assim, o processo de reconhecimento de diferentes níveis de granularidade – desde o mais alto (como: o objeto pode ser um carro, uma pessoa ou uma bicicleta) até o mais fino (como: identificar uma pessoa, a marca e o modelo de um veículo , ou placa de identificação) – devem ajudar a extrair tais informações (MICHELONI et al., 2010).
PROCESSAMENTO DIGITAL DE IMAGEM
- Imagem Digital
- Representação de uma imagem digital
- Segmentação de Imagem
- Segmentação de Movimento
- Vizinhança de Pixels
- Conectividade entre Pixels
- Detecção de bordas
- Identificação de objetos
Uma imagem pode ser definida como uma função bidimensional: F( )x,y onde xey são coordenadas planares, e a amplitude F em qualquer par de coordenadas (x,y) é chamada de intensidade da imagem no dado apontar. Quando x, y e todos os valores de amplitude de F são finitos e em quantidades discretas, caracteriza-se uma imagem digital (GONZALES & WOODS, 2002). Pixel é o termo mais utilizado para rotular os elementos de uma imagem digital (GONZALES & WOODS, 2002).
Uma imagem F(x,y) é amostrada de tal forma que sua imagem digital resultante possui M colunas e N linhas (MARQUES & VIEIRA, 1999). A conexão entre pixels é usada para estabelecer limites de objetos e áreas componentes em uma imagem. A detecção de bordas é uma técnica de processamento de imagem e visão computacional para determinar pontos em uma imagem digital onde a intensidade da luz muda repentinamente.
SISTEMA DE PDI E SEUS COMPONENTES
Aquisição
A etapa de captura tem a função de converter uma imagem em uma representação numérica adequada para posterior processamento digital. O primeiro é um dispositivo físico sensível a uma faixa de energia no espectro eletromagnético (como raios X, ultravioleta, espectro visível ou raios infravermelhos) que produz um sinal elétrico proporcional ao nível de energia detectado na saída. O outro – o próprio digitalizador – converte o sinal elétrico analógico em informação digital, ou seja, que pode ser representada através dos bits 0s e 1s.
Processamento
Transmissão
DESIGN DE UM SISTEMA EMBARCADO PARA PDI
- FPGA
- Linguagens de Descrição de Hardware
- Tempo de Desenvolvimento
- Ferramentas de Computer-Aided design (CAD)
O fluxo de um projeto de FPGA utilizando ferramentas CAD ocorre conforme visto na Figura 11. O ponto de partida no processo de projeto de um circuito lógico é a ideia do que o circuito deve fazer e a formulação de sua estrutura geral. Síntese é o processo de geração de um circuito lógico a partir de uma especificação que pode ser entregue na forma de um esquema ou código escrito em HDL.
O desempenho de um circuito sintetizado pode ser verificado após construir fisicamente o circuito no FPGA e testá-lo. Um circuito representado na forma de expressões lógicas pode ser simulado para verificar se as expressões funcionam conforme o esperado. Uma ferramenta de simulação de temporização estima os atrasos esperados de um circuito lógico projetado.
TRABALHOS CORRELATOS
Seus resultados podem ser usados para determinar se o circuito projetado está dentro dos requisitos de temporização da especificação de projeto. Se os requisitos não forem atendidos, o projetista pode fornecer à ferramenta CAD informações sobre os requisitos de temporização que devem ser atendidos para que a ferramenta possa tentar otimizar o circuito para atender aos requisitos de temporização. Caso isso não aconteça, é necessário sintetizar o circuito de forma diferente ou melhorar o projeto inicial apresentado à ferramenta de síntese.
Depois de ter certeza de que o circuito projetado atende a todos os requisitos das especificações do projeto, a etapa final envolve a implementação do circuito no chip. A materialização do sistema PDI para monitoramento do fluxo de veículos foi norteada pelo conjunto de objetos descritos nesta seção. As seções a seguir abordam as funcionalidades necessárias para um sistema de monitoramento de fluxo de veículos através primeiro de uma visão geral do sistema (Seção 3.1), requisitos de desenvolvimento do sistema (Seção 3.2), casos de uso do sistema (Seção 3.3), desenvolvimento de software (Seção 3.4), os testes realizados na Seção 3.5, os resultados dos testes na seção de resultados (Seção 3.6) e finalmente o desenvolvimento do sistema de hardware (Seção 3.7).
VISÃO GERAL DO SISTEMA
Como a velocidade média de um veículo é dada em km/h, é necessário estabelecer a relação pixel-metro e depois converter metros/segundo para km/h multiplicando o valor por 3,6.
REQUISITOS
RF04: O sistema deve ser capaz de gerar um arquivo de log com informações quantitativas do tráfego de veículos; Além dos requisitos funcionais do sistema, também foi necessário identificar os requisitos não funcionais do sistema.
CASOS DE USO
Descrição: O usuário deve configurar o sistema com base no ângulo da câmera, pois o tamanho dos veículos varia de acordo com a posição da câmera. O usuário deve informar ao sistema o caminho até o vídeo, as coordenadas da área de interesse e a quantidade de metros entre o ponto com menor e maior valor de Y nesta área. Pós-Condições: O sistema deve classificar corretamente os veículos e calcular sua velocidade média.
O usuário deve fornecer ao sistema o caminho até o vídeo, as coordenadas da região de interesse e quantos metros estão entre o ponto com menor e maior valor de Y naquela região.
SOFTWARE
A função cvRetrieveFrame passa um cvCapture como parâmetro e retorna um quadro de imagem no formato IplImage. Após a leitura completa do vídeo, foram implementadas as operações necessárias para atingir o objetivo deste trabalho, conforme mostrado na Figura 16, e são elas: a) Correção da perspectiva da imagem exibida pela função de perspectiva da imagem, b) Redimensionamento da imagem exibida pela função resizeImage, c) Subtração de fundo representada pela função de subtração ed) o filtro Sobel representado pela função Sobel_ind_fast. Primeiramente foi necessário corrigir a perspectiva da imagem para que um veículo ficasse do mesmo tamanho ao longo do vídeo. Sem corrigir a perspectiva da imagem tudo ficaria mais difícil porque quando temos a câmera em um determinado ângulo os veículos variam em Se o carro estiver perto da câmera ele é maior do que quando está longe. Portanto, a classificação é difícil. A Figura 17 ilustra o problema de variação do tamanho do veículo, pois pode ser observado quando o carro entra no local ele é pequeno e quando sai do local ele é grande.
Além disso, é necessário passar a distância entre os pontos P1 e P2 em metros para criar a relação pixel-metro da imagem, sabendo assim quantos pixels na imagem representam quantos metros estão realmente na estrada, na figura 18 o o valor 9 é passado pelo parâmetro. Após a correção da imagem, a função de redimensionamento da imagem reduz o tamanho da imagem do tamanho original para 380x260. Com imagens em escala de cinza, os quadros de entrada formam um padrão de fundo da imagem, onde cada quadro de entrada corresponde a uma pequena porcentagem do padrão de fundo da imagem.
EXPERIMENTO
A Figura 22 mostra as marcas de início e fim, o quadrado ao redor dos objetos e a velocidade média obtida. As gravações tiveram como objetivo avaliar alterações na imagem durante o dia e testar o sistema em todos os momentos em que o sol era dominante, variações como o brilho do sol na estrada e a posição das sombras dos veículos. Para esta avaliação foram realizadas cinco gravações de cinco minutos cada, em horários distintos, sendo que a Figura 24 mostra a gravação realizada às 8h.
Na gravação da figura 24, a câmera foi posicionada em um ângulo de -20º graus em relação ao horizonte, as sombras dos carros ficaram à direita. Nesta gravação a câmera está posicionada a -40º graus em relação ao horizonte e o brilho do sol é bastante intenso causando alguns reflexos na câmera, a sombra está posicionada na frente do veículo e à esquerda. As sombras são quase invisíveis e os carros formaram listras permanecendo estáticas por um longo período de tempo, a Figura 28 ilustra esta gravação.
RESULTADOS
A faixa esquerda da via foi selecionada para análise pois este projeto propõe analisar apenas uma via. A área de interesse selecionada é ilustrada na Figura 30. Cada vídeo foi processado pelo software durante um período de dez minutos, um exemplo de um comando de execução do software é mostrado na Figura 31. Exemplo de uma chamada de software, nome do software seguido por o caminho até o vídeo, coordenadas da área de interesse e distância entre o maior e o menor ponto Y em metros.
A gravação das 14h teve problemas devido ao fato da sombra da faixa da direita incidir sobre a faixa da esquerda. Outro problema ocorrido foi o fato de duas motocicletas aparecerem simultaneamente na região de interesse, fazendo com que os dois veículos fossem classificados como um carro ao invés de duas motocicletas. No caso do vídeo das 18h, havia fila na faixa da direita e os carros permaneceram parados por muito tempo, fazendo parte do fundo da cena, impossibilitando o uso do software.
HARDWARE
Após adquirir uma imagem no formato RGB, tornou-se possível migrar algoritmos de software existentes para hardware, como transformar uma imagem RGB em tons de cinza e segmentar uma imagem com base em cores para detectar objetos interessantes na imagem. , que simula uma contagem regressiva em segundo plano. O resultado do módulo de conversão RGB para escala de cinza implementado no rosto de uma pessoa pode ser visto na Figura 36. A transição de uma plataforma de software para hardware apresentou desafios, migrando um sistema desenvolvido em software com abstrações de alto nível e múltiplas bibliotecas implementando funcionalidades, que são fora do escopo do trabalho para a linguagem de hardware provou ser uma tarefa complexa.
Somente após essas duas etapas foi possível começar de fato a lidar com o processamento de imagens em FPGA, o que se revelou bastante complexo, uma vez que ponto flutuante e outras facilidades disponíveis em software não existem em linguagem de hardware. O que não foi possível, o processo de desenvolvimento do hardware evoluiu para uma arquitetura capaz de capturar imagens através do sensor da câmera, convertendo-as para uma imagem em tons de cinza, aplicando um filtro para identificar objetos de interesse e registrando o resultado em memória DDR para uso futuro. Este projeto justificou-se como um TCC por abranger diversas áreas do conhecimento como: programação C/C++, desenvolvimento de hardware e processamento de imagens, fazendo uso de materiais didáticos como: Circuitos lógicos, tópicos especiais em vigilância eletrônica, software de engenharia de computação, Algoritmos I e II, entre os segundos, além de utilizar tecnologias e conceitos relevantes, como monitoramento de fluxo de veículos, técnicas de imagem digital e sistemas embarcados.