Accueil du site > Linux > Installation de la Quickcam Express sous Linux

Installation de la Quickcam Express sous Linux

jeudi 25 novembre 2004, par Pierre-Luc Bacon

Lorsque des taches complexes d’interaction doivent être exécutées par un robot, une caméra s’avère souvent indipensable pour permettre au système de bien discerner son environnement.

Voir en ligne : Le module gce-ga

Linux ayant la faveur générale pour toutes demandes requierant un certains degré de robustesse, il n’est pas étonnant que le lecteur qui s’attarde à ces lignes aspire lui aussi à utiliser ce système pour son application de traitement d’image.

La caméra traitée dans cet article est la Quickcam Express de Logitech. Cette série de caméras est devenue maintenant plutôt abordable et se prête efficacement aux opérations d’acquisition et de traitement de l’image. Pour environ 30$, ce petit dispositif permet de faire la saisie d’une trentaine d’images à la seconde pouvant atteindre une résolution de 640x480 pixels. Dans la plupart des cas, cela suffira amplement à l’exécution d’opérations telles que l’extraction de contours ou la détection de couleurs.

Installation

Avant toutes opérations, vous devrez vous assurez d’avoir installé le support Video For Linux (V4L). Pour la plupart des distributions actuelles, V4L est compilé à même le noyau sous forme de module. Tout en vous assurant du paramètre précédent, jettez un coup d’oeil pour le support USB. Bien qu’il serait étonnant de ne pas l’avoir,mais rien ne coûte de vérifier...

Branchez maintenant la caméra USB à votre ordinateur et faites

$dmesg

Vous devriez voir des indications sur le dispositif nouvellement détecté en fin de fichier. Voilà un aperçu de la réponse de cette commande :


usb.c: registered new driver usbdevfs
usb.c: registered new driver hub
uhci.c: USB Universal Host Controller Interface driver v1.1
PCI: Found IRQ 11 for device 00:07.2
uhci.c: USB UHCI at I/O 0x3400, IRQ 11
usb.c: new USB bus registered, assigned bus number 1
hub.c: USB hub found
hub.c: 2 ports detected
hub.c: new USB device 00:07.2-1, assigned address 2
usb.c: USB device 2 (vend/prod 0x46d/0x870) is not claimed by any active driver.
Linux video capture interface: v1.00
usb.c: registered new driver quickcam
USB Quickcam Class ff SubClass ff idVendor 46d idProduct 870
USB Quickcam camera found using: $Id: quickcam.c,v 1.111 2003/01/27 09:41:03 tuu kkat Exp $
quickcam: probe of HDCS1000 sensor = 10 02 id: 08
quickcam: probe of BP100 sensor = 00 10 id: 64
quickcam: probe of VV6410 sensor = 00 10 id: 19
quickcam: probe of HDCS1020 sensor = 10 10 id: 10
quickcam: HDCS1020 sensor detected

Ou plus simplement vous pouvez également faire un

$lsusb

Pour obtenir la liste de tous les dispositifs usb reliés à votre ordinateur.


Bus 001 Device 001: ID 0000:0000
Bus 001 Device 003: ID 046d:0870 Logitech, Inc. QuickCam Express

Le pilote utilisé pour gérer la caméra est le qce-ga (ou le qce-usb dans sa plus récente version) disponible sur Sourceforge.

http://sourceforge.net/projects/qce-ga/

Décompressez l’archive tar et entrez dans le répertoire


$tar xzf qce-ga-0.40d
$cd qce-ga-0.40d

Ensuite, il suffit que de compiler le tout en espérant ne pas avoir de programmes externes manquants.


$make

La compilation devrait être plutôt aisée et se dérouler sans erreurs. Vous pouvez maintenant tentez d’exécuter le script d’installation en tapant


./quickcam.sh

Dans une perspective plus permanente, il est possible de charger le module définitivement avec les autres modules du système.Pour se faire, exécutez ce qui suit.

Passez en mode super-utilisateur


$su

Copiez le module dans le répertoire approprié


$cp mod_quickcam.o /lib/modules/2.4.26/kernel/drivers/usb/

Éditez le fichier /etc/modules.conf


$vi modules.conf

et ajoutez un alias pour le module


alias camera mod_quickcam

Sauvegardez le tout et remettez à jour le fichier modules.dep


$/sbin/depmod -a

Il ne reste plus qu’à chargez le module simplement par


$modprobe camera

Un "lsmod" devrait montrer "mod_quickcam" chargé parmis les autres modules.

qc-usb

Une version plus récente de qce-ga existe sous le nom de qc-usb. Elle présente les mêmes caractéristiques que l’ancienne mais intègre un support pour le noyau 2.6.9. Dans certains cas, la compilation peut s’avérer difficile. Vous pouvez alors utiliser qce-ga ou tentez de passer un paramètre à l’utilitaire make pour compiler cette nouvelle version.


$make all USER_OPT=-DQCEGA_MODE=1

Mémoire tampon double

Pour tirer profit des performances de la camera, le pilote de la quickcam peut recevoir l’indication d’allouer de l’espace mémoire supplémentaire pour contenir une autre image. De cette manière, un programme ayant été conçu pour optimiser sa vitesse de capture en utilisant plusieurs « buffer » pourra le faire après cette commande :


$qcset compat=dblbuf

Essais

Si vous possédez Xawtv sur votre système, vous pouvez le lancer pour faire la saisie d’images en direct. Il existe également plusieurs autres logiciels de capture d’images tels que Gqcam ou Camorama. Je vous recommande d’ailleurs ce dernier logiciel qui, sous une interface simple, regroupe plusieurs fonctionnalités utiles.

PNG - 246.3 ko
Aperçu de Camorama

Bilan

Les informations fournies par Camorama indiquait une saisie d’images à environ 7 fps. Cette valeur est donc loin de celle indiquée par le fabricant. Cependant, ce paramètre idéal du constructeur exprime la capacité du dispositif lui-même à capturer les images et à les envoyer via le port usb. Vous comprendrez donc que c’est l’application logicielle de l’ordinateur qui déterminera la vitesse finale d’acquisition. Comme les tests ont été exécutés sur un PIII 650Mhz sous GNOME, je comprends mieux les résultats. Également, une analyse rapide du code source a montré l’utilisation d’une méthode de capture par tampon unique. L’application utilise donc à 50% son temps de capture. Résultat : le pilote ne dispose pas en permanence d’un buffer et des images sont échappées. Même s’il semble que l’environnement d’exécution de l’application de traitement et de saisie de l’image doit être réduit au minimum pour l’optimisation de sa vitesse, il en manque peu pour obtenir une image suffisemment fluide.

Une multitude de projets nous apparait maintenant. Du serveur de diffusion vidéo à l’algorithme de détection, certes le travail ne manquera pas mais le premier pas a déjà été franchi.


Liens

Camorama

Gqcam

Video For Linux et autres logiciels

Portfolio

Aperçu de Camorama
Enregistrer au format PDF
Marquer cet article: Delicious Technorati

Répondre à cet articleRépondre à l'auteur:Pierre-Luc BaconRecommander à un ami