Processamento de imagens - diferenciação de padrão

10 respostas
G

Boa tarde pessoal

Eu estou desenvolvendo um sistema no qual eu devo verificar se uma vaga de um estacionamento se encontra livre ou ocupada. Para isso eu terei a foto da vaga e as coordenadas das extremidades da mesma, e uma câmera me fornecendo frames em tempo real para comparação.

Queria a opinião de vocês quanto a parte de verificação de ocupação. Quais técnicas vocês acham viável e com um bom nível de acerto?
Eu estive pensando em primeiramente aplicar a normalização para remoção de ruídos, posteriormente criar o histograma da imagem e fazer uma comparação dos histogramas das duas imagens, mas acho q isso me retornaria muitos resultados errados.

Agradeço quem deixar a opinião ai. Valeu!!

10 Respostas

V

A câmera é movel? E qual a posição dela em relação a vaga? Poderia postar uma foto de exemplo?

E por normalização, você quer dizer “binarização” ou “equalização do histograma”?

Por que normalizar, a rigor, é simplesmente alterar as cores do pixel para o intervalo de 0 a 1, o que na prática, não muda a informação da imagem (e nem reduz ruídos).

V

Outras dúvidas são importantes:

  • A câmera é interna ou externa?
  • Há muita variação na iluminação?
  • Por que usar câmera e não outro tipo de sensor?
G

Me equivoquei na hora de escrever o tópico, eu irei aplicar filtros para remoção de ruídos (e não normalização).

A câmera terá posição fixa, tendo sempre a mesma visão de uma vaga. Para começo estou considerando apenas uma visão diagonal da câmera, sem considerar outros carros na frente, apenas tratar a vaga isoladamente. Segue imagem como exemplo. (Os carros tem a mesma cor apenas por coincidência :P)


Seria uma câmera externa, de segurança por exemplo.
Estaria considerando variações de iluminação natural apenas.
É para meu projeto de graduação, e essa seria parte do sistema. Estou considerando imagens de câmera pois com sensores seria muito “simples”.

V

Todos os carros terem a mesma cor foi só uma coincidência? E esse algoritmo tem que funcionar a noite?

V

Há árvores e ou outros objetos que possam fazer sombra em outros horários do dia?

G

Por enquanto estou considerando apenas a vaga com iluminação natural e presença de objetos que estejam no local na hora que o frame for capturado, sem possibilidade de sombras de objetos por enquanto. Mas isso seria uma coisa a ser tratada posteriormente.

V

Se a área é fixa, você poderia:

  • Passar a imagem para escala de cinza;

  • Realizar a extração de uma ou duas regiões de interesse em cada vaga (um quadrado). Como a imagem é fixa, você pode demarcar esses quadrados manualmente.

  • Treinar um classificador para entender o que é uma vaga vazia e o que é uma cheia. Poderia usar para isso o HMM ou uma rede Neural. Mas para isso, é importante ter uma base com dezenas de fotos dessa.

Se não for usar um classificador, talvez realmente dê para tirar pela análise do histograma.

Uma técnica interessante seria possuir uma foto sem carro nenhum, e subtrair o resultado dessa foto com a imagem atual da câmera. Assim, os pixels que forem diferentes da foto original serão evidenciados.

Caso você tenha coisas fazendo sombra, você pode tentar tirar várias fotos dessas, uma para a cada x minutos.

Vai ser um problemão se você tiver que fazer isso funcionar em baixa iluminação. Nesse caso, certifique-se que a câmera não gera imagem com compressão lossy (com perdas, como JPG). Se gerar, vai ser praticamente impossível processar a imagem sem um classificador.

Cuidado que “iluminação natural” é um conceito subjetivo. A iluminação natural muda de acordo com o horário do dia. Por isso, é importante obter fotos em vários horários diferentes.

G

ViniGodoy:
Se a área é fixa, você poderia:

  • Passar a imagem para escala de cinza;

  • Realizar a extração de uma ou duas regiões de interesse em cada vaga (um quadrado). Como a imagem é fixa, você pode demarcar esses quadrados manualmente.

  • Treinar um classificador para entender o que é uma vaga vazia e o que é uma cheia. Poderia usar para isso o HMM ou uma rede Neural. Mas para isso, é importante ter uma base com dezenas de fotos dessa.

Se não for usar um classificador, talvez realmente dê para tirar pela análise do histograma.

Uma técnica interessante seria possuir uma foto sem carro nenhum, e subtrair o resultado dessa foto com a imagem atual da câmera. Assim, os pixels que forem diferentes da foto original serão evidenciados.

Caso você tenha coisas fazendo sombra, você pode tentar tirar várias fotos dessas, uma para a cada x minutos.

Vai ser um problemão se você tiver que fazer isso funcionar em baixa iluminação. Nesse caso, certifique-se que a câmera não gera imagem com compressão lossy (com perdas, como JPG). Se gerar, vai ser praticamente impossível processar a imagem sem um classificador.

Cuidado que “iluminação natural” é um conceito subjetivo. A iluminação natural muda de acordo com o horário do dia. Por isso, é importante obter fotos em vários horários diferentes.

Eu estava com essa ideia de tentar fazer a identificação pela análise do histograma e pela subtração de imagens, pois cada registro de vagas estará relacionada com uma imagem dela vazia, assim eu teria como efetuar estas operações.
Quanto ao classificador, não tinha considerado essa possibilidade pois é um tanto complexo para mim ainda, estava tentando fazer de uma maneira mais simples.
E sim, eu teria frames com “várias iluminações”.
Mas de qualquer jeito, muito obrigado pelas ideias, vai me ajudar bastante.

Caso tenha mais ideias posta aqui, novas ideias são sempre boas (:

V

Talvez vc possa fazer uma análise de contornos também.
http://cimss.ssec.wisc.edu/wxwise/contour/contour1.html

Mas não tem jeito. Processamento de imagem é baseado em:

  • Ter a idéia
  • Experimentar e ver os problemas;
  • Testar outras idéias;
  • Comparar resultados.

Etc…

G

Vou dar uma olhada nisso e nos classificadores, e ir testando o que conseguir…

Muito obrigado de novo.

Criado 20 de agosto de 2014
Ultima resposta 20 de ago. de 2014
Respostas 10
Participantes 2