Quelles techniques d'analyse d'image puis-je utiliser pour extraire les panneaux de signalisation d'une image comme celle ci-dessous?
Éditer:
Après la diffusion anisotrope: le fond que je ne veux pas s'éclaircit un peu
Après la dilatation:
Seuillage après diffusion: impossible de déterminer le meilleur seuil à cette fin
Cependant, je ne sais pas comment supprimer l'arrière-plan?
Edit: je veux juste ces parties de mon image
Prendre une autre image d'entrée:
Application du filtrage médian et de la détection des contours:
Après le filtrage du chapeau inférieur:
Comment puis-je isoler les panneaux de signalisation, veuillez aider?
Réponses:
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:
Même si le modèle pivote légèrement, la corrélation croisée semble toujours utilisable
et la meilleure correspondance se trouve à la bonne position:
(Vous auriez besoin de plusieurs versions à l'échelle de chaque modèle pour détecter les signes à n'importe quelle taille, bien sûr)
la source
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.
la source
Eh bien, googler
road way signs detection
vous 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
la source
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
la source