Entries tagged “linux”

Prise de vue photo automatisée pour animations et 3D Relief !

written by ccomb, on Nov 3, 2010 9:20:00 PM.

Voici quelques photos de l'outil de prise de vue automatisée sur lequel je travaille depuis pas mal de temps. Toute la partie matérielle est réalisée par Alain Brevard, et je m'occupe de la partie logicielle, pilotage moteur et appareil photo, le tout avec les conseils de Mathieu Levaslot de la société Luxrelief, premier utilisateur du système.

/static/rail/rail6.jpg

L'objectif est multiple, il s'agit d'abord de permettre des prises de vue de haute qualité pour écrans Alioscopy (3D relief sans lunettes sur 8 points de vue), avec des appareils photos reflex haut de gamme (Canon 5D, 1D, Nikon D300, D700, etc.). Le principe de base de ces écrans est qu'ils diffusent simultanément 8 images selon 8 angles différents. Chaque oeil reçoit donc une image différente, ce qui reproduit l'impression de relief. Il faut donc faire 8 photos équidistantes.

Sans ce dispositif, il faut prendre une photo, puis déplacer manuellement l'appareil de quelques centimètres, puis reprendre une photo et ainsi de suite, en espérant que le sujet et l'éclairage n'ont pas bougé. Tout ceci prend pas mal de temps et comporte des risques d'erreur.

Grâce à ce rail de prise de vue automatisé, le tout se fait en quelques secondes, et est entièrement réglable et reproductible. On peut tester rapidement plusieurs paramètres et choisir le meilleur résultat. Le dispositif est composé d'un rail équipé d'un moteur pas à pas, un contrôleur et son alimentation, et un mini PC autonome sans écran ni clavier. L'utilisation est extrêmement simple et ne nécessite strictement aucune installation : il suffit de brancher son ordi portable (sous Mac, Windows ou Linux) au mini PC grâce à un câble réseau, puis d'ouvrir son navigateur web. Ensuite une interface ressemblant à un site web permet d'effectuer une calibration, des déplacement précis de l'appareil photo et lancer des prises de vue ou des vidéos en travelling.

Le deuxième appareil est un plateau mobile permettant de créer des animations rotatives de très haute précision. On peut l'utiliser par exemple pour faire une animation sur 360 degrés en mode continu, pour de la vidéo, mais aussi en mode photo, en choisissant de faire par exemple 360 photos espacées d'1 degré. Le plateau va alors s'arrêter après chaque déplacement pour laisser le temps à l'appareil de prendre la photo et aux flash de se recharger. Ce plateau peut aussi être utilisé aussi bien pour des animations classiques en 2D ou pour de la 3D relief. On peut reproduire le même mouvement plusieurs fois au centième de millimètre près. Et la solidité de la construction autorise même d'y poser un lave-linge, si vous êtes amateur d'animations de lave-linge...

Le système est aujourd'hui suffisamment fiable et est déjà utilisé en studio photo professionnel pour Dior, Clinique, Longchamps et Decléor, et pour une expo à la Cité de la Dentelle à Calais. Si vous connaissez quelqu'un intéressé, contactez-moi directement, il est possible de le louer à la journée, et également de fournir de l'assistance ou du conseil sur la 3d Relief et ses spécificités.

Le système fonctionne sous Linux (Debian) et est fabriqué entièrement avec le langage Python qui, grâce à sa polyvalence, permet de réaliser aussi bien le contrôle moteur que l'interface web (ici en Pylons) ou le traitement d'image. À ce sujet, l'étape suivante sera d'assembler les images automatiquement et d'être capable d'afficher l'image relief sur l'écran Alioscopy juste après la prise de vue car le mini PC comporte une sortie DVI. Keep in touch !!

/static/rail/rail5.jpg /static/rail/rail4.jpg /static/rail/rail3.jpg /static/rail/rail7.jpg /static/rail/rail2.jpg
/static/rail/rail1.jpg

Debian, Ubuntu, dedibox v3 : deuxième round

written by ccomb, on Aug 17, 2010 1:56:00 AM.

Influence de l'ext4 sur les performances

Debian

Un peu étonné des résultats d'avant-hier montrant Ubuntu largement à la traine par rapport à Debian, j'ai voulu vérifier les résultats en utilisant cette fois la même dedibox v3. J'ai donc relancé une fois le benchmark en Ubuntu 10.04 64bits, puis je l'ai réinstallée complètement en ext4 (dispo depuis peu à l'install dedibox).

L'apport de l'ext4 est ici nettement visible en écriture. Sinon les résultats sont assez proches.

/static/bench3/read.png /static/bench3/random_read.png /static/bench3/write.png
/static/bench3/random_write.png

Debian vainqueur par K.O.

J'ai ensuite réinstallé avec la Debian 5.0 Lenny proposé aussi par dedibox. Et là on retrouve bien la même différence qu'avant-hier, que je trouve énorme. Je n'ai pas encore eu le temps de creuser, il s'agit sûrement d'un réglage lors du montage, de la journalisation, du scheduler ou je ne sais quoi d'autre. En tout cas pour une installation par défaut c'est regrettable.

/static/bench5/read.png /static/bench5/random_read.png /static/bench5/write.png
/static/bench5/random_write.png

Vous me direz, oui, mais l'Ubuntu peut être installée directement en ext4, qui améliore pas mal. Qu'à cela ne tienne, comparons donc la vieille Debian 5.0 ext3 et la nouvelle Ubuntu 10.04 ext4. Là encore, la Debian est plus rapide, sauf en écriture pour les gros fichiers :

/static/bench6/read.png /static/bench6/random_read.png /static/bench6/write.png
/static/bench6/random_write.png

Et la prochaine Debian 6.0 ?

Pour finir, j'ai effectué la mise à jour en Debian 6.0 Squeeze, qui vient juste d'être gelée. Pour mémoire, l'upgrade en Debian 6.0 se déroule en gros comme ceci :

  • remplacer lenny par squeeze dans /etc/apt.sources.list
  • # aptitude update
  • # aptitude install apt aptitude dpkg
  • # aptitude full-upgrade
  • # upgrade-from-grub-legacy
  • # aptitude install linux-image-2.6-amd64
  • remplacer GRUB_DEFAULT=0 par GRUB_DEFAULT=2 dans /etc/default/grub
  • # upgrade-grub
  • # reboot
  • # aptitude remove --purge linux-image-2.6.32-bpo.4-amd64
  • Remettre GRUB_DEFAULT=0 dans /etc/default/grub
  • # upgrade-grub

Debian 5.0 et Debian 6.0 sont très proches, même si on note un léger avantage à la nouvelle version :

/static/bench7/read.png /static/bench7/random_read.png /static/bench7/write.png
/static/bench7/random_write.png

Et Debian 6.0 en ext4 ??

Ah mais vous voulez vraiment le beurre et l'argent du beurre... Bon ok. On lance le système de secours Dedibox, puis :

  • # sudo tune2fs -O extents,uninit_bg,dir_index /dev/sda1
  • # sudo tune2fs -O extents,uninit_bg,dir_index /dev/sda2
  • # sudo e2fsck -fDC0 /dev/sda1
  • # sudo e2fsck -fDC0 /dev/sda2
  • Puis remplacer ext3 par ext4 dans /etc/fstab.
  • Par précaution j'ai aussi fait un update-grub après avoir chrooté la racine, puis monté /boot, /proc et /sys, mais je pense que c'était inutile.

Ensuite on redémarre, et voici ce que ça donne. Comme pour l'Ubuntu, le système de fichiers ext4 améliore surtout les performances en écriture. Mais l'amélioration est encore plus spectaculaire, car on gagne ici 70% au lieu de 60% (sur la moyenne) dans le cas de l'Ubuntu :

/static/bench8/read.png /static/bench8/random_read.png /static/bench8/write.png
/static/bench8/random_write.png

La conclusion, c'est que Debian fait toujours du bon boulot... Je ne pense pas que le problème vienne spécialement des Dedibox, car je retrouve la même forme sur mon portable en Ubuntu 64bits ext4.

Comparatif entre les disques durs Dedibox v1, v2, v3 :

Lors des tests précédents j'ai lancé simplement iozone -a, qui utilise les buffers du noyau lors des transferts. C'est pour cette raison qu'on obtient des taux énormes, de l'ordre de 1 ou 2 Go/s. C'est un bon test en conditions réelles car il fait intervenir aussi le CPU. Si on recommence la même chose en lançant plutôt iozone -aI, on obtient le taux de transfert réel du disque dur, plus utile pour tester vraiment le matériel. C'est le même genre de différence qu'entre hdparm -t et hdparm -T. Voici donc la comparaison entre les trois dedibox. Pour la dedibox v1 j'ai limité le nombre de tests, faudrait pas la fatiguer, ni qu'elle meure avant la migration... :)

La surprise, c'est que le disque le plus lent est celui de la dedibox v2. Quant à la v3, elle reste encore la plus rapide. J'ai aussi effectué le test en ext4, et là encore on note une belle amélioration des performances grâce à l'ext4.

/static/bench4/read.png /static/bench4/random_read.png /static/bench4/write.png
/static/bench4/random_write.png

test