Quais técnicas de análise de imagem posso usar para extrair os sinais de trânsito de uma imagem como a abaixo?
Editar:
Após a difusão anisotrópica: O fundo que eu não quero fica um pouco limpo
Após a dilatação:
Limiar após difusão: não é possível descobrir o melhor limiar para esse fim
No entanto, eu não sou capaz de descobrir como remover o fundo?
Edit: eu só quero essas partes da minha imagem
Tirando outra imagem de entrada:
Aplicando filtragem mediana e detecção de borda:
Após a filtragem do fundo do chapéu:
Como isolar os sinais de trânsito, por favor ajude?
image-processing
filters
vini
fonte
fonte
Respostas:
Você tentou algo simples como correlação?
( EDIT ). A idéia por trás da correlação é usar um modelo (no seu caso, uma amostra de sinal de trânsito treinado) e compará-lo com todas as posições na imagem de teste. A operação de comparação que usei para gerar as imagens abaixo é chamada de correlação cruzada normalizada . Grosso modo, você padroniza (média = 0, desvio padrão = 1) os pixels no modelo e a parte da imagem que deseja corresponder, multiplica-os pixel por pixel e calcula o valor médio dos produtos. Dessa forma, você obtém uma "pontuação de correspondência", ou seja, uma medida de semelhança entre o modelo e a imagem de teste em todas as posições na imagem de teste. A posição com a melhor correspondência (maior correlação) é o candidato mais provável para a posição do sinal de trânsito. (Na verdade, eu usei a função MathematicaCorrelationDistance para gerar a imagem abaixo, que é 1 - (correlação normalizada). Portanto, o ponto mais escuro da imagem da correspondência corresponde à melhor correspondência).
Como não tenho outros modelos, recortei o sinal da segunda foto que você postou:
Embora o modelo seja girado levemente, a correlação cruzada ainda parece útil
e a melhor correspondência é encontrada na posição correta:
(Você precisaria de várias versões em escala de cada modelo para detectar sinais de qualquer tamanho, é claro)
fonte
Durante o meu mestrado, o projeto em que meu supervisor estava envolvido lidava com a detecção e o reconhecimento de todos os tipos de sinalização de tráfego diferentes em uma sequência de vídeo (por exemplo, detecção de estradas, detecção de linha central de estradas, mas também detecção e reconhecimento de sinais de trânsito ). Os quadros de vídeo em que estávamos trabalhando são de várias maneiras semelhantes às imagens de exemplo.
Embora eu pessoalmente não tenha trabalhado em sinais de trânsito, acho que os melhores resultados foram obtidos usando o algoritmo Viola-Jones (artigo) . Em resumo, é um algoritmo que usa uma cascata de classificadores fracos (com precisão um pouco maior que a de um algoritmo aleatório) para construir um classificador forte que é robusto mesmo em tarefas difíceis.
O projeto foi chamado MASTIF (Mapeamento e avaliação do estado da infraestrutura de tráfego) e fez um trabalho realmente bom. A página de publicação do projeto pode ser realmente útil, pois fornece links para todos os artigos publicados relacionados ao projeto. Só para você ter uma idéia, deixe-me destacar algumas das publicações (em ordem cronológica):
Mais uma vez, não trabalhei pessoalmente nos sinais de trânsito, mas acho que você pode encontrar bastante material útil aqui. Além disso, eu sugeriria passar por referências citadas nos documentos, pois elas também podem ajudar.
fonte
Bem, pesquisar no Google
road way signs detection
oferece muitos bons artigos sobre esse assunto.Alguns usam segmentação de cores devido a cores azuis, verdes, vermelhas, etc.
Alguns aplicam primeiro a suavização gaussiana, depois a detecção inteligente de bordas e a busca de contorno para extrair a placa de sinalização.
Tente seguir dois links: Link 1 , Link 2
fonte
Definitivamente, não sou um especialista aqui, mas você pode começar com a detecção de arestas (como astutos), depois transformar para detectar círculos, retângulos, quadrados ou triângulos (com base no sinal que você deseja detectar) e depois criar o modelo correspondência ou correspondência de histograma, se as cores forem suficientemente distintas (sobre os candidatos retornados pela transformação hough).
O primeiro passo (detectar os candidatos usando a transformação hough) é o passo mais difícil. Posso pensar em várias maneiras de tentar detectar se esse candidato é o sinal ou não. Este é um problema divertido. Desfrute de resolvê-lo :)
A propósito, tenho certeza de que você pode encontrar bons artigos de pesquisa altamente relacionados
fonte