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 de routes


Sujet :

OpenCV

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 28
    Par défaut Détection de routes
    Bonjour,

    Bon j'ai jamais fait de traitement d'images et il se trouve que j'ai un projet à faire en opencv (que j'essaye de comprendre depuis maintenant une semaine mais c'est assez complexe pour moi).
    En gros, j'ai un orthophotoplan et le but est de détecter les routes à partir du clicage au centre de ces routes. Je m'explique : on a une image et on clique sur le centre de la route pour repérer l'axe central (ça j'arrive à le faire) et après à partir de ces points je suis censée pouvoir détecter les bords des routes et ressortir 2 tracés vectoriels représentant chaque bord de la route.
    Et je voudrais savoir si certains d'entre vous avaient des pistes ou du moins une démarche à suivre car j'avoue que je vois pas du tout comment m'y prendre.

    Merci d'avance

  2. #2
    Rédacteur

    Avatar de khayyam90
    Homme Profil pro
    Architecte de système d’information
    Inscrit en
    Janvier 2004
    Messages
    10 371
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Janvier 2004
    Messages : 10 371
    Par défaut
    Bien le bonjour,

    J'avais réalisé sensiblement la même chose
    En connaissant l'axe de la route, nous avions fait la supposition que les deux trottoirs étaient chacun à la même distance de l'axe de la route. Nous connaissions aussi l'échelle de l'orthophotoplan, nous connaissions donc l'ordre de grandeur de la largeur de la route à trouver (ce qui permettait de mettre des bornes d'arrêt dans les recherches).

    L'idée était de considérer 2 segments parallèles à l'axe et s'en éloignant pixel à pixel. A chaque itération, nous calculions la somme des pixels des segments sur une image de contours perpendiculaires à l'axe. L'itération de valeur maximale nous donnait le contour de la route. En rajoutant des pondérations en fonction de la valeur supposée, nous avions des résultats sympa.

    Les axes devaient être parfaitement rectilignes.
    L'algo pouvait se planter si on avait des alignements de voitures ou bien des crêtes de toits des maisons trop marquées. Sinon ça allait très vite et c'était assez juste (dans les 90-95% de réussite).
    L'échelle de l'orthophotoplan ne nous permettait cependant pas de différencier la frontière du caniveau de la frontière entre un trottoir et les habitations.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 28
    Par défaut
    Merci de ta réponse mais ici on ne considère pas que les points que nous cliquons sont au milieu de la route, c'est l'axe central donc si d'un des deux côtés de la route nous avons deux voies et pas de l'autre, la largeur ne sera pas la même des deux côtés ...
    De plus mon axe n'est pas tracé et ça ça me turlupine un peu car je me dis que si l'utilisateur qui clique ses points ne les met pas dans l'ordre (c'est à dire qu'il clique un point sur une route pi un point sur une autre route de l'image et puis reclique sur un point de la première route) comment je fais pour tracé mon axe central ? ...
    Ah et une tite question y'a une manière plus propre de récupérer les coordonnées que de déclarer un tableau avec une taille énorme et ajouter chaque point dedans lors de chaque clic ?
    Argh j'ai l'impression que je vais pas m'en sortir !!!!

  4. #4
    Rédacteur

    Avatar de khayyam90
    Homme Profil pro
    Architecte de système d’information
    Inscrit en
    Janvier 2004
    Messages
    10 371
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Janvier 2004
    Messages : 10 371
    Par défaut
    Si l'axe de la route n'est pas au centre, ça n'est pas vraiment un problème, on peut appliquer la méthode expliquée plus haut en recherchant séparément chaque bord. La fiabilité sera moins bonne, c'est tout. Avec moins de points de contrôle, on a davantage de chance de se vautrer.

    Pour ton histoire de clics dans l'ordre ou dans le désordre, c'est pûrement une histoire d'ergonomie ou d'interface utilisateur. A toi de bloquer les mauvaises sélections ou d'obliger l'utilisateur à sélectionner à la suite les deux extrémités d'un axe ...

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 28
    Par défaut
    Oui mais dans ce cas là comment tu fais quand tu arrives à une intersection, c'est pareil il y a des soucis pour l'ordre des points !
    A force de lire et de lire de la doc sur le net, j'ai l'impression que le meilleur moyen de détecter mes routes c'est un algorithme de type Snake, j'ai pas encore trouvé comment l'implémenter, ni trouver d'exemple concret et pas trop mathématique mais je desespère pas ^^

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 28
    Par défaut
    Finalement je crois que je vais pas m'en sortir avec le snake ...
    Je vais opter pour ta technique.
    Donc si j'ai bien compris, je clique mes points sur ma carte. Je prend mes points 2 à 2 et je trace une ligne, je récupère la valeur des pixels (avec cvGet2D) mais je récupère que ceux des deux points que j'ai cliqué nan ? Comment on calcule la somme des pixels d'un segment ?
    A partir de cette somme je déplace mes pixels (en traçant une droite parallèle à la première ?) et je recalcule la somme des pixels et je compare les 2 sommes pour savoir si c'est à peu près égal ?

Discussions similaires

  1. Détection des lignes blanche sur la route
    Par jp_developpeur dans le forum Traitement d'images
    Réponses: 3
    Dernier message: 28/01/2009, 11h03
  2. Détection de routes
    Par Vincent157 dans le forum OpenCV
    Réponses: 1
    Dernier message: 24/07/2007, 22h46
  3. Détection MySql
    Par gjullien dans le forum Bases de données
    Réponses: 5
    Dernier message: 20/08/2003, 18h15
  4. Détections avec WebBrowser
    Par Wazo_Sportive dans le forum Composants VCL
    Réponses: 4
    Dernier message: 11/08/2002, 19h32
  5. Détection de 2 touches appuyées
    Par cyrose dans le forum C++Builder
    Réponses: 2
    Dernier message: 26/07/2002, 16h25

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