IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

OpenCV Discussion :

Détection d'objets ronds


Sujet :

OpenCV

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2013
    Messages : 2
    Par défaut Détection d'objets ronds
    Bonjour à tous,

    Je suis étudiant et je travail sur un projet permettant de calculer les distances entre des objets de formes rondes. Pour faire mes tests j'utilise des images de boules de pétanques.
    Je met en pièce jointe une image sur lesquels je travail.

    Actuellement j'utilise la fonction d'opencv qui s'appel Hough Circle. Cette fonction me permet d'avoir le centre et le rayon des cercles détectés, exactement ce qu'il me faut. Malheureusement la fonction permet de bien détecter les objets ronds que sur des cas simples ou des ronds sont bien dessinés sur un fond uni avec assez de contraste (fond blanc, rond noir).

    Le premier problème est sur la détection des formes des boules de pétanques. Elles sont mal définies à cause des reflets, des rainures ainsi que des ombres.
    Le second problème est le terrain ou sont posé les boules de pétanque. Il est suffisamment granuleux pour que la détection de contour affiche plusieurs formes parasites dont des cercles.

    Je ne sais pas comment faire pour réussir à isoler les boules de pétanques et le cochonnet ou du moins juste le contour sur un fond blanc. Pour ensuite pouvoir utiliser la fonction hough circle qui me permettra d'avoir le rayon et le centre du cercle.
    Peut être existe t'il une autre solution.

    Merci d'avance pour vos réponses
    Images attachées Images attachées  

  2. #2
    Membre éprouvé
    Avatar de TheGzD
    Homme Profil pro
    Ingénieur/ Docteur en Informatique
    Inscrit en
    Avril 2007
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Ingénieur/ Docteur en Informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 327
    Par défaut
    Citation Envoyé par HedHunter Voir le message
    Le premier problème est sur la détection des formes des boules de pétanques. Elles sont mal définies à cause des reflets, des rainures ainsi que des ombres.
    Le second problème est le terrain ou sont posé les boules de pétanque. Il est suffisamment granuleux pour que la détection de contour affiche plusieurs formes parasites dont des cercles.
    Bonjour,

    Pour "effacer" les reflets, les rainures et le granularité du sol vous pouvez commencer par faire un prétraitement de votre image à l'aide d'un filtre gaussien par exemple.

    Citation Envoyé par HedHunter Voir le message
    Je ne sais pas comment faire pour réussir à isoler les boules de pétanques et le cochonnet ou du moins juste le contour sur un fond blanc. Pour ensuite pouvoir utiliser la fonction hough circle qui me permettra d'avoir le rayon et le centre du cercle.
    Peut être existe t'il une autre solution.
    Si j'ai bien compris votre problème réside surtout dans le fait que le background (= tout ce qui n'est pas un cercle à identifier) contient à la fois les zones les plus lumineuses (= le sable) mais aussi les plus sombres (= les ombres des boules). Vous ne pouvez donc pas directement binariser votre image. Il va vous falloir réaliser un seuillage multiclasse de votre image (la première et la dernière classe seront les plus sombrse et les plus lumineuse, qu'il faudra alors associer à la couleur que vous voulez pour le backgroung, à savoir blanc dans votre cas. Les autres classes devraient logiquement être les boules (et le cochonnet)... enfin ça reste à vérifier : il vous faudra peut-être faire des essais avec différents nombres de classes (3, 4, 5, ...)) avant de pouvoir passer à une image binaire représentant les boules noires sur un fond blanc.

    Bon courage

  3. #3
    Nouveau candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2013
    Messages : 2
    Par défaut
    Citation Envoyé par TheGzD Voir le message
    Pour "effacer" les reflets, les rainures et le granularité du sol vous pouvez commencer par faire un prétraitement de votre image à l'aide d'un filtre gaussien par exemple.
    Malheureusement j'ai déjà essayé de mettre un filtre de flou Gaussien. Mais le résultat n'est pas satisfaisant, les rainures des boules sont trop épaisse pour disparaitre avec ce seul filtre. De même pour les cailloux qui sont présent sur l'image.

    Citation Envoyé par TheGzD Voir le message
    Il va vous falloir réaliser un seuillage multiclasse de votre image (la première et la dernière classe seront les plus sombrse et les plus lumineuse, qu'il faudra alors associer à la couleur que vous voulez pour le backgroung, à savoir blanc dans votre cas. Les autres classes devraient logiquement être les boules (et le cochonnet)... enfin ça reste à vérifier : il vous faudra peut-être faire des essais avec différents nombres de classes (3, 4, 5, ...)) avant de pouvoir passer à une image binaire représentant les boules noires sur un fond blanc.
    C'est vrai que je n'avais pas pensé à un traitement aussi simple qu'un seuillage. Ca me fait également penser à un algo (détection par région) que j'ai découvert il y a peu de temps mais dont je n'ai pas encore totalement compris comment le réaliser. Mais globalement je comprend son fonctionnement qui consiste a définir plusieurs régions par rapport aux couleurs couleurs des pixels. Et de regrouper les regions voisines de manière à faire afficher les formes.

  4. #4
    Invité de passage
    Profil pro
    Inscrit en
    Juillet 2012
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 1
    Par défaut
    Je travaille sur le même problème, si jamais tu as trouvé quelquechose qui fonctionne, je serais heureux de voir comment tu as fait. En attendant, je vais essayer le multi-seuillage, mais je ne comprend pas trés bien comment sa fonctionne.

    Si j'ai bien compris, il faut utiliser la couleur des boules et du cochonnet pour les récupérer?

Discussions similaires

  1. méthode de corrélogramme pour la détection d'objet
    Par tuunisiano dans le forum Traitement d'images
    Réponses: 4
    Dernier message: 04/03/2009, 16h44
  2. Raisonnement lors de la détection d'objets
    Par samplaid dans le forum OpenCV
    Réponses: 0
    Dernier message: 25/11/2008, 23h15
  3. Détection d'objets mobiles dans une video
    Par enita dans le forum Traitement d'images
    Réponses: 8
    Dernier message: 24/11/2008, 17h15
  4. Détection d'objet (Haartraining)
    Par bladex dans le forum OpenCV
    Réponses: 10
    Dernier message: 18/09/2008, 14h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo