5

Je suis à la recherche d'un certain objet dans ma photographie:Meilleure approche pour une tâche spécifique de reconnaissance d'objet/d'image?

Objet: Contour d'un rectangle avec un X au milieu. Cela ressemble à une case à cocher rectangulaire. C'est tout. Donc, pas de remplissage, juste des lignes. Le rectangle aura les mêmes rapports de longueur à largeur, mais il pourrait être n'importe quelle taille ou n'importe quelle rotation dans la photographie.

J'ai regardé un tas d'approches de reconnaissance d'image. Mais j'essaie de déterminer le meilleur pour cette tâche spécifique. Plus important encore, l'objet est fait de lignes et n'est pas une forme remplie. En outre, il n'y a pas de distorsion de perspective, de sorte que l'objet rectangulaire aura toujours des angles droits sur la photographie.

Des idées? J'espère quelque chose que je peux mettre en œuvre assez facilement.

Merci à tous.

+0

Le plan du X sera toujours parallèle au plan de l'image que je suppose? Donc pas de distorsion en perspective du X? –

+0

Question mise à jour, voir ci-dessus. (pas de distorsion du tout, le point de vue sera parfaitement orthogonal à l'objet, j'espère que la terminologie est correcte, mais je pense que vous savez ce que je veux dire). – Ryan

Répondre

0

Vous pouvez utiliser les fonctions locales pour identifier l'objet dans l'image. Par exemple, vous pouvez calculer des caractéristiques sur une image référente qui contient uniquement l'objet que vous recherchez et enregistrer les résultats, disons, dans un fichier texte brut. Après cela, vous pouvez rechercher l'objet juste en comparant les caractéristiques nouvellement calculées (sur des images avec des scènes complexes contenant l'objet) avec les entités référentes.

Voici quelques bonnes ressources sur les caractéristiques locales: Local Invariant Feature Detectors: A Survey

3

Vous pouvez essayer d'utiliser un détecteur d'angle (par exemple Harris) pour trouver les coins de la boîte, les extrémités et l'intersection du X. Cela simplifie le problème pour trouver des points dans la bonne configuration.

Modifier (réponse au commentaire):

Je suppose que vous pouvez trouver les points d'angle dans l'image, les 4 coins du rectangle, les 4 terminaisons de ligne du X et du centre du X, plus quelques autres coins de l'image en raison du bruit ou des objets en arrière-plan. Cela simplifie le problème de trouver un ensemble de 9 points dans la bonne configuration, sur un ensemble donné de points. Mon premier essai serait de regarder chaque point de coin A. Puis je passerais en revue les points B proches de A. Maintenant, si je suppose que (par exemple) A est le coin supérieur gauche du rectangle et B est le coin inférieur droit, je peux facilement calculer, où je m'attendrais à ce que les autres points d'angle soient dans l'image. J'utiliserais une recherche par les plus proches voisins (ou une bibliothèque comme FLANN) pour voir s'il y a des coins où je les attendrais. Si je peux trouver un ensemble de points correspondant à ces positions attendues, je sais où le symbole serait, s'il est présent dans l'image.

Vous devez essayer si cela est assez bon pour votre application. Si vous avez trop de faux positifs (ensembles d'angles d'autres objets qui forment accidentiellement un rectangle + X), vous pouvez vérifier s'il y a des lignes (c'est-à-dire un contraste élevé dans la bonne direction) où vous les attendiez. Et vous pouvez vérifier s'il y a un faible contraste là où il n'y a pas de lignes dans le motif. Cela devrait être relativement simple une fois que vous connaissez les points dans l'image qui correspondent aux fins/fins de ligne dans l'objet que vous recherchez.

+0

Pourriez-vous expliquer un peu plus comment effectuer la "recherche" après avoir effectué une détection de coin ou de bord. Parce que j'ai implémenté les deux et que je peux voir qu'il prend définitivement en compte les fonctionnalités de l'objet. Mais quelle est ma prochaine étape dans le fait de pouvoir exécuter un algorithme et le faire renvoyer soit vrai soit faux que l'objet réside dans cette photo donnée ou non. La fonctionnalité "recherche" est ce que je suis fragile. Merci. – Ryan

1

Je suggérerais le Generalized Hough Transform. Il semble que vous ayez une forme fixe assez simple. La transformée de Hough généralisée devrait être capable de détecter cette forme à n'importe quelle rotation ou échelle dans l'image. Vous avez souvent besoin de définir un seuil pour l'image originale, ou de la prétraiter d'une manière ou d'une autre pour que cette méthode soit utile.