Détecter des lignes sur une image

Détecter des lignes sur une image - C++ - Programmation

Marsh Posté le 04-06-2003 à 00:14:38    

Salut à tous,
 
voilà ma question:
 
On dispose d'une vidéo d'un match de basket... Sur un terrain de basket, il y a des lignes tracées au sol (sisi, je vous jure... :D )
 
A un instant donné, l'utilisateur clique sur la vidéo pour situer un joueur sur le terrain.
 
Je voudrais que le programme puisse situer les lignes au sol (au moins les lignes dessinant le rectangle) afin de placer la position du joueur pointé dans un repère...
 
En fait le programme sait combien mesurent la largeur et la longueur, et à partir de l'image qui apparaît (et qui ne montre pas l'intégralité des lignes) arrive à "extrapoler" (je ne sais pas si c'est le terme qui convienne le mieux ici) le restant des lignes, et donc à situer le joueur...
 
Ca ma l'air pas facile du tout à faire, et je ne vois pas du tout comment le faire...
 
Si quelqu'un a des idées!!
 
Merci d'avance


---------------
Another .Net Blog
Reply

Marsh Posté le 04-06-2003 à 00:14:38   

Reply

Marsh Posté le 04-06-2003 à 07:14:06    

haazheel a écrit :

Salut à tous,
 
voilà ma question:
 
On dispose d'une vidéo d'un match de basket... Sur un terrain de basket, il y a des lignes tracées au sol (sisi, je vous jure... :D )
 
A un instant donné, l'utilisateur clique sur la vidéo pour situer un joueur sur le terrain.
 
Je voudrais que le programme puisse situer les lignes au sol (au moins les lignes dessinant le rectangle) afin de placer la position du joueur pointé dans un repère...
 
En fait le programme sait combien mesurent la largeur et la longueur, et à partir de l'image qui apparaît (et qui ne montre pas l'intégralité des lignes) arrive à "extrapoler" (je ne sais pas si c'est le terme qui convienne le mieux ici) le restant des lignes, et donc à situer le joueur...
 
Ca ma l'air pas facile du tout à faire, et je ne vois pas du tout comment le faire...
 
Si quelqu'un a des idées!!
 
Merci d'avance


Elles sont comment tes videos? couleurs, NB?
En gros il va falloir commencer par détecter les contours dans ton image (il y a bcp de doc sur le net là-dessus...), et une fois que ce sera fait essayer de trouver des lignes droites dans le tas...:D

Reply

Marsh Posté le 04-06-2003 à 11:13:31    

vidéo en couleurs...
 
Tu aurais pas des adresses?


---------------
Another .Net Blog
Reply

Marsh Posté le 04-06-2003 à 11:15:44    

haazheel a écrit :

vidéo en couleurs...
 
Tu aurais pas des adresses?


Nope dsl...à part google!
Et perso je travaille sur du niveau de gris...

Reply

Marsh Posté le 05-06-2003 à 21:53:34    

Et pour le N/B, tu as trouvé ça où?
 
Parce que je peux convertir l'image en N/B pour le placement, je m'en fous de la couleur,je la garde pas l'image...


Message édité par haazheel le 05-06-2003 à 21:58:35

---------------
Another .Net Blog
Reply

Marsh Posté le 05-06-2003 à 22:44:05    

Tu devrais aller voir du coté des algos de segmentations et de detection de contour.
 
tiens un lien au hasard (mais je sais pas ce que ca vaut) :
http://www.cs.kun.nl/~ths/rt2/col/h7/7contourENG.html
 
Au fait, il te faut une implementation en temps reel ?


Message édité par fykman le 05-06-2003 à 22:51:00
Reply

Marsh Posté le 05-06-2003 à 22:50:02    

essaye un filtre de Sobel, ou un laplacien ca devrait suffir.
cf n'importequel bon cours de traitement d'image.
 
Une fois que tu as ton image de contour tu detecte les points d'interet autour de ton joueur et tu fais une heuristique pour 'suivre' une suite de pixels blancs.

Reply

Marsh Posté le 05-06-2003 à 22:52:40    

haazheel a écrit :


Je voudrais que le programme puisse situer les lignes au sol (au moins les lignes dessinant le rectangle) afin de placer la position du joueur pointé dans un repère...


Transformation de Hough.
Essaye de limiter ton utilisation des segmenteurs, tu risques de t'enliser dans les 10000 techniques disponibles (Markov, snakes divers, filtre morphologiques par exemple, chacun faisant appel à des dizaines de techniques sous-jacentes).

Reply

Marsh Posté le 05-06-2003 à 22:54:24    

Joel F a écrit :

essaye un filtre de Sobel, ou un laplacien ca devrait suffir.
cf n'importequel bon cours de traitement d'image.
 
Une fois que tu as ton image de contour tu detecte les points d'interet autour de ton joueur et tu fais une heuristique pour 'suivre' une suite de pixels blancs.


 
J'ajouterai que pour trouver la position le joueur dans le repere du terrain, tu dois retrouver la projection de l'angle de la camera sur les axes du terrain en 3D, a partir de la forme du contour du terrain que tu observes (je sais pas si je suis tres clair la  :whistle: ).

Reply

Marsh Posté le 05-06-2003 à 22:55:38    

aussi, merci nraynaud 'hough' j'avais oublié :P
 
par contre ce qui me fait peur, ce que la ou je bosse ils ont fait un truc dans le mm style (suivi de lignes blanches sur routes) et ca a pris qqs années :/

Reply

Marsh Posté le 05-06-2003 à 22:55:38   

Reply

Marsh Posté le 05-06-2003 à 22:55:45    

nraynaud a écrit :


Transformation de Hough.
Essaye de limiter ton utilisation des segmenteurs, tu risques de t'enliser dans les 10000 techniques disponibles (Markov, snakes divers, filtre morphologiques par exemple, chacun faisant appel à des dizaines de techniques sous-jacentes).


 
La transformee de Hough c'est pas mal mais c'est assez couteux pour une inplementation en temps reel..

Reply

Marsh Posté le 05-06-2003 à 22:57:19    

Joel F a écrit :

aussi, merci nraynaud 'hough' j'avais oublié :P
 
par contre ce qui me fait peur, ce que la ou je bosse ils ont fait un truc dans le mm style (suivi de lignes blanches sur routes) et ca a pris qqs années :/


 
C'est quoi le but de l'appli ? Analyser le deplacement des joueurs sur le terrain ?

Reply

Marsh Posté le 05-06-2003 à 22:58:16    

je pense que connaitre le but final de l'appli permettrait de cerner le VRAI problemes et pe eviter ce goufre algorithmique du suivi de contour

Reply

Marsh Posté le 05-06-2003 à 23:04:06    

fykman a écrit :


La transformee de Hough c'est pas mal mais c'est assez couteux pour une inplementation en temps reel..


J'ai fait du Markov et du Snake en temps réel, ça passait très bien (15 images par secondes, j'ai appris qu'après que c'était la caméra qui était lente et pas le traitement).
Je pense pas qu'un Hough à la con ça soit vraiment coûteux. D'ailleur dans la mème boite ils utilisaient Hough sur des ellipses en temps réel.
Le tout sur des pc à 800Mhz.

Reply

Marsh Posté le 05-06-2003 à 23:11:31    

Joel F a écrit :

je pense que connaitre le but final de l'appli permettrait de cerner le VRAI problemes et pe eviter ce goufre algorithmique du suivi de contour


De toute façon il se démerde, il y a des dizaines de thèses et détudes là-dessus, le but c'est juste de lui filer des mots-clefs pour google (parce que "lignes droites" c'est un peu léger comme recherche).
 
C'est lui qui les prend les décisions.  
 
Surtout que s'il veut faire du placement 3D il va se retrouver à faire de la géométrie projective (et c'est à la suite de ça qu'on va le retrouver avec une seringue dans le bras dans une arrière court du Kremelin-Bicètre, étoufé dans son vomi).

Reply

Marsh Posté le 05-06-2003 à 23:30:21    

nraynaud a écrit :


Surtout que s'il veut faire du placement 3D il va se retrouver à faire de la géométrie projective (et c'est à la suite de ça qu'on va le retrouver avec une seringue dans le bras dans une arrière court du Kremelin-Bicètre, étoufé dans son vomi).


 
ah ouais quand meme !!  :lol:

Reply

Marsh Posté le 05-06-2003 à 23:51:14    

fykman a écrit :


ah ouais quand meme !!  :lol:  


Tu croyais que les gens se droguent parce qu'il ont pas fait d'études, ont eu une enfance pourrave et sont en rupture avec la société ?¿?
 
Bah non ! Á 90% ils ont étudié la géométrie projective, les 10% restants sont répartis entre théorie des nombres, cosmologie et philosophie.

Reply

Marsh Posté le 06-06-2003 à 00:05:44    

ouf.....
 
merci pour toutes ces infos...
 
le but de l'appli est, lorsqu'un joueur tire, de cliquer sur la vidéo à l'endroit du terrain où le tir a été pris, et l'algo permet ensuite de le situer sur le terrain, en fonction des lignes le délimitant...
 
Il enregistre les coordonnées de ce tir par rapport à un repère orthogonal dont le centre est le centre du terrain, ce qui me permet ensuite d'afficher sur une image de terrain tous les emplacements de tir...
 
Voilà tout...
 
Mais vu la complexité apparente des algos que vous m'avez proposé, je pense en rester à la solution que j'ai adopté pour l'instant, qui est de cliquer sur l'image de terrain dont j'ai parlé précédemment, ce qui facilite le boulot...
 
A voir donc...


---------------
Another .Net Blog
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed