Comment extraire des panneaux de signalisation d'une photographie?


15

Quelles techniques d'analyse d'image puis-je utiliser pour extraire les panneaux de signalisation d'une image comme celle ci-dessous?

Plan extérieur d'une route métropolitaine

Éditer:

Après la diffusion anisotrope: le fond que je ne veux pas s'éclaircit un peu

entrez la description de l'image ici

Après la dilatation:

entrez la description de l'image ici

Seuillage après diffusion: impossible de déterminer le meilleur seuil à cette fin

entrez la description de l'image ici

Cependant, je ne sais pas comment supprimer l'arrière-plan?

Edit: je veux juste ces parties de mon image

entrez la description de l'image ici

Prendre une autre image d'entrée:

entrez la description de l'image ici

Application du filtrage médian et de la détection des contours:

entrez la description de l'image ici

Après le filtrage du chapeau inférieur:

entrez la description de l'image ici

Comment puis-je isoler les panneaux de signalisation, veuillez aider?


Pour moi, "feu de signalisation" signifie un appareil allumé justsymbol.com/images/traffic-signal-sign-6.png , pas un signe. Voulez-vous dire uniquement des signes?
endolith

Oui seulement les signes
vini

Quelle approche avez-vous essayée vous-même?
Maurits

Oui, j'ai des modèles
vini

Ont édité @mauritis
vini

Réponses:


17

Avez-vous essayé quelque chose de simple comme la corrélation?

( MODIFIER ). L'idée derrière la corrélation est d'utiliser un modèle (dans votre cas, un échantillon de panneau routier formé) et de le comparer à chaque position dans l'image de test. L'opération de comparaison que j'ai utilisée pour générer les images ci-dessous est appelée corrélation croisée normalisée . En gros, vous standardisez (moyenne = 0, écart-type = 1) les pixels du modèle et la partie d'image que vous souhaitez faire correspondre, multipliez-les pixel par pixel et calculez la valeur moyenne des produits. De cette façon, vous obtenez un «score de correspondance», c'est-à-dire une mesure de similitude entre le modèle et l'image de test à chaque position de l'image de test. La position avec la meilleure correspondance (corrélation la plus élevée) est probablement la candidate pour la position du panneau routier. (En fait, j'ai utilisé la fonction MathematicaCorrelationDistance pour générer l'image ci-dessous, qui est 1 - (corrélation normalisée). Ainsi, le point le plus sombre de l'image de correspondance correspond à la meilleure correspondance).

Je n'ai pas d'autres modèles, j'ai donc simplement recadré le panneau de la deuxième photo que vous avez publiée:

entrez la description de l'image ici

Même si le modèle pivote légèrement, la corrélation croisée semble toujours utilisable

entrez la description de l'image ici

et la meilleure correspondance se trouve à la bonne position:

entrez la description de l'image ici

(Vous auriez besoin de plusieurs versions à l'échelle de chaque modèle pour détecter les signes à n'importe quelle taille, bien sûr)


1
@nikie: Pouvez-vous expliquer le processus que vous avez utilisé?
smokris

Ouais, ça aiderait un peu plus. L'idée semble bonne
vini

@vini Si vous avez des modèles et que vous essayez d'en trouver des exemples dans votre image, la corrélation croisée est l'approche la plus naturelle et devrait être parmi les premières approches que vous essayez. Voici une réponse ici (code Mathematica) et une autre sur SO (code MATLAB) où j'utilise cette approche.
Lorem Ipsum

7

Au cours de ma maîtrise, le projet auquel mon superviseur était impliqué consistait à détecter et à reconnaître toutes sortes de signalisation de trafic dans une séquence vidéo (par exemple, détection de route, détection d'axe de route, mais aussi détection et reconnaissance de panneaux de signalisation ). Les images vidéo sur lesquelles nous travaillions sont à bien des égards similaires à vos images d'exemple.

Bien que personnellement, je n'ai pas travaillé sur les panneaux de signalisation, je pense que les meilleurs résultats ont été obtenus en utilisant l' algorithme Viola-Jones (papier) . En bref, c'est un algorithme qui utilise une cascade de classificateurs faibles (avec une précision juste un peu plus élevée que celle d'un algorithme aléatoire) pour construire un classificateur solide qui est robuste même dans les tâches difficiles.

Le projet s'appelait MASTIF (Cartographie et évaluation de l'état des infrastructures de trafic) et a fait du très bon travail. La page de publication du projet pourrait être très utile car elle fournit des liens vers tous les articles publiés liés au projet. Pour vous donner une idée, permettez-moi de citer certaines publications (par ordre chronologique):

Encore une fois, je n'ai pas personnellement travaillé sur les panneaux de signalisation, mais je pense que vous pouvez trouver beaucoup de matériel utile ici. Aussi, je suggère de parcourir les références citées dans les articles car elles peuvent également être utiles.


6

Eh bien, googler road way signs detectionvous donne plein de bons articles sur ce sujet.

Certains utilisent la segmentation des couleurs en raison de couleurs bleues, vertes, rouges, etc.

Certains appliquent d'abord le lissage gaussien, puis la détection astucieuse des bords et la recherche de contour pour extraire le panneau de signalisation.

Essayez les deux liens suivants: Lien 1 , Lien 2


liens morts, malheureusement
CharlesB

En fait, les deux liens fonctionnent pour moi.
Abid Rahman K

@CharlesB: Les liens sont mis à jour :)
Anoop KP

5

Je ne suis certainement pas un expert ici, mais vous pouvez commencer par la détection des bords (tel que canny), puis effectuer une transformation pour détecter les cercles, les rectangles, les carrés ou les triangles (en fonction du signe que vous souhaitez détecter), puis vous pouvez faire un modèle correspondance ou correspondance d'histogramme, si les couleurs sont suffisamment distinctes (sur les candidats renvoyés par la transformation de hough).

La première étape (détection des candidats à l'aide de la transformation de Hough) est l'étape la plus difficile. Je peux penser à de nombreuses façons d'essayer de détecter si ce candidat est le signe ou non. C'est un problème amusant. Profitez de le résoudre :)

Soit dit en passant, je suis sûr que vous pouvez trouver de bons articles de recherche qui sont très liés

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.