The following methodologies were used in the preparation of the project: (i) literature study on DIP and similar solutions, (ii) modeling system that used the EA (Enterprise Architect) tool, (iii) code implementation with Java programming. language, (iv) testing to verify prototype functionality, find bugs, and implement fixes, and finally, (v) documentation on which everything produced in the two CCWs was transcribed. Results found in prototype performance tests achieved 100% accuracy levels after corrections, exceeding expectations.
PROBLEMATIZAÇÃO
Formulação do Problema
Solução Proposta
OBJETIVOS
METODOLOGIA
A pesquisa se estendeu também a sites que tratam de algoritmos de rotulagem de objetos, visando buscar um maior entendimento de seu funcionamento e desempenho, bem como buscar bibliotecas já implementadas; Todos os algoritmos foram desenvolvidos, evitando a utilização de códigos já escritos, com o objetivo de praticar os conhecimentos adquiridos em PDI (Processamento Digital de Imagens) e programação.
ESTRUTURA DO TRABALHO
Na subseção 2.4.1, é descrita a técnica de rotulagem de componentes conectados usada para classificação, contagem e reconhecimento de objetos. No artigo “Background Update” da subseção 2.3.1, são abordadas duas soluções para problemas que podem ocorrer durante o dia e modificar o cenário (local de captura da imagem).
SISTEMA DE VISÃO ARTIFICIAL
Na fase de extração de características, os dados de saída da segmentação são transformados por descritores em informações quantitativas básicas para distinguir entre classes de objetos (GONZALEZ & WOODS, 2000). A Base de Conhecimento utilizada no projeto contém todas as informações necessárias ao funcionamento do sistema e está dividida em duas estruturas, uma em memória secundária (disco rígido HD) onde serão armazenados os dados de configuração inicial, o banco de dados e outra estrutura em memória principal (RAM – Random Access Memory), a base de informações.
AQUISIÇÃO DE IMAGEM
A relação entre a etapa de aquisição da imagem e a Base de Conhecimento é capturar a imagem e armazená-la no banco de dados. A base de informações contém os dados de configuração que determinam o tempo do ciclo de captura da imagem, a frequência com que uma nova imagem é capturada e armazenada.
PROCESSAMENTO
Segmentação
A partir do background inicial, o sistema utilizará sequências de imagens para atualizá-las na memória principal utilizando a média ou mediana. Média: neste tipo de algoritmo, o sistema utiliza n séries de imagens para calcular a média do fundo.
Pré-Processamento
A erosão nem sempre reverte o efeito da dilatação, portanto a erosão seguida de dilatação pode eliminar ruídos da imagem ou objetos que não são de interesse (MIRANDA, 2006). A abertura de uma imagem f por um elemento estruturante E é definida por erosão seguida de dilatação. Segundo Gonzalez e Woods (2000), a abertura de uma coleção A por B é a combinação de uma erosão de A por B seguida de uma dilatação do resultado por B, conforme Equação 6.
O fechamento de um conjunto A por B é a combinação de uma expansão de A por B seguida de uma erosão do resultado por B, conforme equação 7 (GONZALEZ & WOODS, 2000).
EXTRAÇÃO DE CARACTERÍSTICAS
Rotulação de Componentes Conexos
Segundo Wangenheim (2011), métodos de rotulagem de componentes conectados são utilizados para extrair diferentes objetos de uma imagem de acordo com alguma característica. A partir de um pixel nomeado é possível chegar a qualquer outro elemento desse subconjunto com uma curva interna. Resumindo, a partir de um pixel é possível atingir qualquer outro pixel do mesmo objeto desde que estejam conectados.
Para extrair os componentes conectados de uma região, a imagem é vista como percorrida pixel por pixel, da esquerda para a direita e de cima para baixo (sequencialmente).
Descritores regionais
Se r = 1 e t = 1 e tiverem rótulos diferentes, atribua um dos valores a p e observe que os dois rótulos são equivalentes (r e t estão conectados por p). Ao final da varredura, todos os pontos da imagem (pixels) serão marcados com o valor 1 (dado um valor), e todos os valores equivalentes deverão ser classificados em classes de equivalência. Na segunda varredura da imagem, todos os elementos equivalentes serão tratados, atribuindo o mesmo rótulo aos elementos conectados por rótulos diferentes.
RECONHECIMENTO E INTERPRETAÇÃO
Análise de Imagens
As técnicas de análise de imagens podem ser divididas em três áreas básicas: (1) processamento de baixo nível, (2) processamento de nível intermediário e (3) processamento de alto nível. O processamento de nível médio trata da extração e caracterização de objetos em uma imagem que já passou por processamento de baixo nível. O processamento de alto nível envolve reconhecimento e interpretação, processos muito semelhantes ao que chamamos de cognição inteligente.
O reconhecimento envolvido no processamento de alto nível poderia atribuir um rótulo definido pelo número de furos nos objetos, caso em que haveria duas classes.
Sistemas Especialistas
No exemplo, existem três classes de objetos (a, b e c), rotulados de acordo com o tamanho da área. Adicionar os diferentes tipos de rótulos nos dá o número de classes de objetos (objetos distintos), enquanto adicionar todos os rótulos indiscriminadamente nos dá o número de objetos na região. Todos os conceitos de um Sistema Especialista devem ser definidos e armazenados onde as regras possam buscar as informações necessárias (GONZALEZ & WOODS, 2000).
Para uma correta análise das informações é importante definir o conceito de ‘espera e movimentação’ no VT (Rota de Trânsito), descrito na Tabela 2 conforme Figuras 23 e 24 na página 34.
TRABALHOS SIMILARES
Semáforo Atuado pelo Tráfego
Na gestão do tráfego de veículos, os sensores instalados nos semáforos VT permitem programar automaticamente o seu tempo de ciclo caso haja grande variação no fluxo de um dia para o outro ou em determinados horários. Neste tipo de dispositivo, o fluxo de veículos é preferido e o sinal é fechado temporariamente e ocasionalmente quando um pedestre aciona o sensor (DENATRAM, 1984).
Semáforo Inteligente Nacional
Semáforo Inteligente Europeu
O desenvolvimento inclui todas as fases do projeto, desde o desenvolvimento do caso de uso até o teste do protótipo, e foi dividido em sete seções: Casos de Uso, Levantamento de Requisitos, Modelagem do Sistema, Estrutura de Dados, Interface do Usuário, Implementação e Experimentos. O Enterprise Architect 7.5 foi usado para modelar casos de uso (Seção 3.1) e diagramas de sistema (Seção 3.3). Os algoritmos foram codificados na linguagem de programação Java utilizando NetBeans 6.9.1 e na seguinte ordem de complexidade: algoritmos PDI, interface gráfica e algoritmos de análise.
As imagens utilizadas nos experimentos (Seção 3.7) estão no formato PNG (Portable Network Graphics) com resolução de 1024x768 e foram capturadas pela câmera digital Hero, ilustrada na Figura 40, que possui lente fishey.
CASOS DE USO
O sistema deve atualizar o banco de dados sempre que houver alteração no valor das variáveis TIVT, no ciclo do semáforo e a cada ciclo de atualização em background.
LEVANTAMENTO DOS REQUISITOS
Os FR descritos na Tabela 5 estão relacionados às funções que o sistema deve fornecer, como deve responder às diversas entradas de dados e como se comporta em determinadas situações. Outro exemplo é a resposta automática do sistema à alteração do status do VT (Tráfego Rodoviário), que deve ser atualizado na Base de Informações (RF 04).
MODELAGEM DO SISTEMA
O diagrama de classes da Figura 31 modela os recursos (pessoas, materiais e comportamentos) utilizados para montar e operar o sistema e é a base para a geração do código-fonte (PENDER, 2004). O diagrama de sequência da Figura 32 ilustra a troca de mensagens que ocorre entre objetos na inicialização do sistema. O operador é responsável por ativar e desativar o sistema, bem como iniciar ou sair do programa através da interação com a Tela Principal.
ESTRUTURA DE DADOS
As variáveis “tivt” e “imgBackGround” serão atualizadas de forma mais contínua, pois são dependentes do ciclo do sistema e independentes do operador, a variável “configuração”. Para selecionar as imagens é aberta a pasta “imagemCapturada” e após selecionar o operador a imagem é salva na pasta “imagemParaBackground”. A Tabela 6 apresenta as variáveis de configuração do sistema encontradas no BD e no BI (Base de Informações).
A cada ciclo do sistema, as variáveis da tabela são analisadas e comparadas com a situação atual do VT (via de trânsito) e, caso sejam encontrados valores diferentes, o TIVT é atualizado.
INTERFACE COM O USUÁRIO
A Figura 35 destaca os elementos que compõem a Tela Principal: Barra de Menu, Barra de Ferramentas, Painel de Configuração, Painel de Imagens e Tabela de Informações. O Menu Visualizar é uma ferramenta adicional para ajustar a configuração, além de permitir visualizar a imagem de fundo com a última atualização. Sem objetos: esta é a opção padrão, a imagem capturada é exibida na tela junto com as áreas selecionadas (Figura 37(a));
Também é utilizado para configurar o sistema quando a imagem de fundo é exibida e o operador seleciona áreas de interesse.
IMPLEMENTAÇÃO
Algoritmos de PDI
O método process() da classe toma como parâmetros duas BufferedImages (o fundo e a última imagem capturada) e uma lista de áreas selecionadas. A classe foi originalmente projetada para processar imagens inteiras, porém, devido ao alto custo computacional observado, foi modificada para processar apenas subimagens referentes a áreas selecionadas. No método process(), as dimensões das diferentes ROIs (Regiões de Interesse) são passadas como parâmetro para o método getSubimagem(), que retorna as subimagens correspondentes, que compartilharão a mesma área de dados da imagem de origem.
Ao final do processamento, a classe retorna duas variáveis através dos métodos getListaImg() e getImgResult(): uma lista de subimagens binárias processadas (que seguem para a fase de análise) e a imagem resultante do processamento exibida na tela principal. .
Algoritmos de Análise
O primeiro sucesso parcial foi alcançado quando o rotulador retornou o tamanho e o número de objetos (todos quadrados) dentro de uma imagem binária, mas continuou a falhar para objetos circulares. Resta testar a rotulagem em objetos irregulares, uma vez que imagens processadas de veículos e pedestres não resultam necessariamente em objetos geométricos. Após corrigir os trechos de código que causaram os erros mostrados na Figura 45, a etiquetadora continuou a retornar resultados incorretos para objetos pontiagudos e diagonais (Figura 46).
A relação de vizinhança na estrutura da Figura 47 de acordo com a posição atual de "A" é: B é o vizinho esquerdo, C é o vizinho superior esquerdo, D é o vizinho superior e E é o vizinho superior direito.
EXPERIMENTOS
O segundo teste buscou o melhor valor de limiar para limiarização e consistiu em realizar limiarização com diferentes limiares e observar os resultados. Por outro lado, um valor muito alto do limite l pode ocultar objetos e comprometer os resultados da análise. Não foi diferente com o algoritmo de etiquetagem, que após inúmeras tentativas produziu os resultados esperados.
Na primeira tarefa, o processo é automático e os resultados são previsíveis, pois dependem dos algoritmos que executam funções definidas.
TRABALHOS FUTUROS
Uma ferramenta que fornece dados aos semáforos deve garantir informações corretas e lidar com situações que possam comprometer seu desempenho e causar acidentes. BRASCONTROL – Mauá obtém solução inteligente de Controle de Tráfego entre as mais avançadas do mundo, 2011. Disponível em: Disponível em: DIAGRAMA DE ATIVIDADE DIAGRAMA DE CLASSES DIAGRAMA DE SEQUÊNCIA ALGORITMO DE REGRAS