#1 Le 17/02/2010, à 14:48
- cyprien
Capture webcam et analyse d'images
Bonjour,
Je me suis acheté dernièrement un petit circuit de voiture électrique (http://fr.carrera-toys.com/6815.0.html).
J'aimerais bien maintenant me créer un compte tour / chronomètre à l'aide d'une webcam, je m'explique :
Je met la caméra à un endroit au dessus de la piste et lorsqu'une voiture passe, elle analyse son image et la repère grâce à sa couleur.
Bon, c'est facile à dire, mais je détaillerais les étape du programme :
1 - Il faut capturer la video de la webcam
2 - Splitter la video en image
3 - Analyser carré par carré chaque image et calculer sa teneur chromatique
4 - La comparer à des modèles (enregistrés lors du calibrage) et voir si l'on en est proche.
Pour le 1, dois-je utiliser video4linux ?
pour le 2, je ne sais pas, c'est peut-être directement faisable lors de la capture ?
pour le 3, je pensais à G'MIC (http://gmic.sourceforge.net/tutorial.shtml) ou ImageJ (http://imagejdocu.tudor.lu)
pour le 4, ben c'est mon travail non ?
Merci pour vos infos,
Hors ligne
#2 Le 17/02/2010, à 15:22
- plu9in
Re : Capture webcam et analyse d'images
Bonjour,
Joli projet ! Mais ton approche me parait un peu compliquée
Je ne suis pas spécialiste de la question mais tu peux choper un flux video webcam par VLC (l'avantage de vlc est que tu peux le piloter)
http://doc.ubuntu-fr.org/vlc#capturer_u … _sa_webcam
Pour la découpe d'un fichier video en images, tu peux utiliser ffmpeg. Il y a une foule d'options qui te permettent de faire une foule de trucs.
Ou alors, au lieu de prendre une video, tu prends des clichés tous les X ms.
Ensuite, pour l'analyse, eh bien, travaille par différence entre deux images successives. Il ne devrait pas se passer grand chose sur ton circuit hormis tes voitures qui roulent donc en faisant une différence pixel par pixel entre deux images successives, tu localises tes voitures (opencv peut t'aider pour ça)
Tu peux regarder:
http://www.cs.cmu.edu/~cil/v-source.html
et porte une attention particulière à opencv. C'est une super librairie écrite en C, open source évidemment et maintenue par intel.
Bonne chance ! J'aime bien ce type de projet. Tiens moi au courant et n'hésite pas si tu as des soucis.
Dernière modification par plu9in (Le 17/02/2010, à 15:24)
Hors ligne
#3 Le 17/02/2010, à 16:02
- cyprien
Re : Capture webcam et analyse d'images
Merci !
Je regarde openCV et j'essaye de m'y mettre.
As-tu une idée pour la cpature des image toutes les x secondes ?
Hors ligne
#4 Le 17/02/2010, à 16:09
- plu9in
Re : Capture webcam et analyse d'images
Ca va dépendre de ta caméra, je pense.
Essaye GtkCamShot ou google avec les mots "snapshot webcam linux"
Hors ligne
#5 Le 17/02/2010, à 16:15
- plu9in
Re : Capture webcam et analyse d'images
Maintenant que j'y repense, je crois (je ne suis pas sûr) qu'il y a des fonctions opencv qui permettent de prendre des snapshot a intervalles réguliers ... J'avais fait tourné un truc comme ça sur windows me semble t-il ... Si j'ai un peu de temps, je regarderai le truc à l'occas.
Dernière modification par plu9in (Le 17/02/2010, à 16:15)
Hors ligne
#6 Le 17/02/2010, à 16:27
- cyprien
Re : Capture webcam et analyse d'images
Je viens de tomber la dessus en partant d'openCV.
http://www.siteduzero.com/tutoriel-3-8631-vision-par-ordinateur.html
Bon, je m'imprime ca et je vais dans mon canapé
Hors ligne
#7 Le 16/03/2010, à 10:10
- ZondeR
Re : Capture webcam et analyse d'images
Coucou,
je ne sais pas où tu en es de cette histoire, mais je viens de tomber dessus et j'ai peut-être des éléments qui peuvent t'aider.
1-Tu pourrais utiliser motion qui fait de la détection de mouvement. Il détecterait donc tout seul quand ta voiture passe sur l'image. Avec pas grand-chose de plus, tu pourrais régler ton problème je pense.
2-Tu peux utiliser mencoder pour enregistrer un flux provenant de ta webcam avec par exemple:
mencoder tv:// -tv driver=v4l2:width=60:height=40:fps=60:device=/dev/video0 -nosound -ovc
lavc -lavcopts vcodec=mjpeg -o test.avi
3-Tu peux splitter ta vidéo en image rapidos avec mplayer. Ex:
mplayer video.avi -vo jpeg
4-Sinon, le mieux pour analyser ton image, c'est de faire la différence entre l'image que tu as et le fond (enregistré quand la voiture n'est pas sur l'image). La zone de l'image résultante qui s'éloigne trop de 0 correspond à ta voiture. Avec G'mic, ça commencerait par:
gmic image.png fond.png --
Mais bon, motion devrait te suffire à mon avis.
Hors ligne