Archives par étiquette : time lapse

Raspberry Pi Camera – 5 façons de faire du streaming

IMG_8806Le module Raspberry Pi Camera (et la version sans filtre IR, le module NoIR) sont de petits circuits (2,5cm x 2,5cm) dotés d’un capteur photo de 2592 x 1944 pixels capable d’enregistrer en 1080p à 30 images par secondes (ou 60 fps en 720p). Ce module se branche directement sur le port CSI du Pi prévu à cet effet.

La version NoIR permet de voir les infra-rouge, ce qui autorisera une vision nocturne si on le couple à un projecteur infra-rouge comme expliqué à fin de cet article : Système de vidéo-surveillance abordable avec des Raspberry Pi

Que ce soit pour un système de vidéo surveillance ou pour le pilotage d’un robot à distance, il faut pouvoir récupérer le flux vidéo et le diffuser à travers le réseau (streaming). Nous allons voir dans cet article 5 méthodes pour diffuser le flux vidéo d’un module Raspberry Pi Camera, plus ou moins efficacement.

Continuer la lecture

Bonne année 2014 !

Raspberry_Pi_2014

Je vous souhaite à toutes et à tous une excellente nouvelle année 🙂

Bonheur, amour, joie, partage et pleine réussite dans tous vos projets 🙂

Je profite également de ces voeux pour vous remercier tous pour vos encouragements qui maintiennent ma motivation au top 🙂

En 2014, je vais attaquer un nouveau sujet très vaste, toujours avec des Raspberry Pi : la domotique 🙂

Continuer la lecture

PiTimeLapse – 13 – Premier retour d’expérience et améliorations

J’ai pu tester le dispositif pendant une semaine sur notre terrain. En mode commando avec une petite pelle et une lampe frontale, tout l’équipement dans un sac noir, je suis allé enterrer le paquet au fond du terrain un dimanche soir, et suis revenu le cherché le dimanche suivant.

IMG_5676J’ai imprimé une petite note explicative sur le dessus de la boite contenant le dispositif avec mes coordonnées, au cas où quelqu’un tomberait dessus…

Après avoir armé le système et synchronisé l’horloge du circuit d’alimentation, j’ai creusé un trou au fond du terrain pour y cacher la boite. La webcam est attachée sur une clôture à environ un mètre du sol. Il n’y a plus qu’à croiser les doigts pour que tout se passe bien… Le lendemain, je devrais recevoir les premières images sur le serveur de monitoring à partir de 8h. Bizarrement, je sens une légère angoisse en laissant tout ce matériel dans la nature :/

Continuer la lecture

12 – En résumé

IMG_4746

J’ai pris énormément de plaisir à réaliser ce dispositif de TimeLapse totalement « home made ». Le Raspberry Pi est un jouet vraiement excellent avec lequel on peut pratiquement tout faire 🙂

Après plusieurs semaines de tests, le système fonctionne parfaitement bien. Je le lance le dimanche, et il commence son travail le lundi à 8h00. Je reçois des mails toutes les 1/2 heure jusqu’au vendredi 18h00. Le système continu de fonctionner jusqu’à épuisement total de la batterie du Pi, le samedi dans l’après midi, ce qui me laisse une marge confortable 🙂

Un grand merci à mon P’pa pour le circuit de tempo, sans lequel le système complet n’aurait pas pu fonctionner 🙂 Sacrifiant soirées et week ends, devant se replonger dans ses connaissances en électroniques 🙂

J’ai hâte de voir le résultat final de la construction de la maison, RDV en fin d’année 😉

En bref

Un système TimeLapse communicant à base d’un Raspberry Pi. Capable de prendre une photo toutes les 10 minutes en journée, sur une semaine complète, en parfaite autonomie.

Le matériel au complet (environ 256€ au total) :

  • Raspberry Pi modèle B 39€
  • Carte mémoire SDHC Kingston 32Go 21€
  • Boitier Adafruit 10€
  • Webcam Logitech C525 36€
  • Dongle 3G Huawei E220 40€
  • Batterie 5V TeckNet iEP389 9000mAh 39€
  • Boite plastique 6€
  • Légos, estimés à 15€
  • Circuit de tempo fait maison, composants estimés à 30€
  • Batterie plomb 12V 20€

Technos et logiciels utilisés

Raspberry Pi

  • Linux, Raspbian
  • Streamer
  • Imagemagick
  • Wvdial
  • CURL
  • Script Bash

Serveur de monitoring

  • Linux, Debian
  • Apache
  • MySQL
  • PHP
  • Sendmail

Sommaire

Forums de discussion

7 – La capture d’image

Bien que la qualité des images soit moindre par rapport à un véritable appareil photo, j’ai opté pour une webcam. Bien supportée par le Raspberry Pi d’après le site eLinux.org et ne nécessitant pas d’alimentation auxiliaire, la Logitech Logitech C525 s’est imposé d’elle même.

IMG_4468

Voici les caractéristiques principales de la caméra, directement reprises du site de Logitech :

  • Capture vidéo HD: jusqu’à 1 280 x 720 pixels
  • Technologie Logitech Fluid Crystal™
  • Mise au point automatique
  • Photos: jusqu’à 8 mégapixels (avec interpolation logicielle)

Test de capture

Pour se rendre compte de la qualité des photos prises en extérieur, voici quelques exemples (Photos prises depuis mon balcon, en utilisant la commande streamer) :

streamer -f jpeg -s 1280x720 -j 100 -o webcam_`date "+%s"`.jpeg

webcam_1363424816_05

Chaque image prise en qualité 100% pèse environ 380 kB. Avec une image toutes les 10 minutes, de 8h à 18h soit 60 images par jour, on arrive à un peu plus de 22 Mo par jour. La carte mémoire de 32Go suffira largement 🙂

En revanche je suis assez déçu de la qualité de la photo. J’ai l’impression que l’image n’est pas nette… J’ai testé sans la compression jpeg, et le résultat est le même.

En intérieur, le résultat n’est pas mieux :

webcam_1363425719_14

Je pense qu’avec une webcam, on ne peut pas s’attendre à des miracles. Au pire, il suffira d’en changer pour un modèle plus performant.

Le script de capture

Etant donné l’espace mémoire dont je dispose (32Go), je vais prendre les images directement en ppm. Ce qui permettra également de soulager le CPU du Pi qui n’aura pas à compresser les images en JPEG. Il faut alors compter 2,8 Mo par photo, soit environ 168 Mo par jour.

Afin d’être certain que la caméra s’adaptera aux conditions de luminosité ambiante et puisse ajuster le focus, il convient de prendre une rafale d’une dizaine d’images. Heureusement, streamer permet de définir un nombre d’images à capturer et une fréquence. Après quelques tests, 20 images en 2 secondes est un bon compromis.

Il est inutil de conserver toutes les images, on peut supprimer les 15 premières, et conserver les 5 autres pour faire une sélection plus tard lors du montage du time-lapse.

Voici un premier script bash qui permet de réaliser cela en quelques lignes :

#!/bin/bash

output_dir=/root/timelapse

# -f ppm (format ppm)
# -s 1280x720 (résolution de l'image largeur x hauteur)
# -t 20 (capturer 10 images)
# -r 5 (capturer 5 images par seconde)
# -o nom_du_fichier_de_sortie.ppm

streamer -f ppm -s 1280x720 -t 20 -r 5 -o $output_dir/timelapse_`date "+%F_%H-%M"`_00.ppm

# supprime les 15 premières images de chaque série

for i in `seq 0 14` ; do
  if [ $i -lt 10 ] ; then
    j="0$i"
  else
    j=$i
  fi
  rm $output_dir/*_$j.ppm
done

Premier test de TimeLapse

Il est temps de faire un premier test. Une simple tâche CRON programmée toutes les 10 minutes, appel le script. Je mets la webcam à la fenêtre et je laisser tourner jusqu’à demain 🙂

Créer la vidéo à partir des images

Pour rassembler les images et en faire une vidéo, j’utilise mencoder :

mencoder mf://*.jpg -mf fps=5:type=jpeg -ovc lavc -lavcopts vcodec=mjpeg -o timelapse.avi

Voici le résultat d’un premier test :

 

1 – Raspberry Pi TimeLapse

J’ai décidé de réaliser un time-lapse de la construction de ma maison à ossature bois. Bien qu’il soit possible d’utiliser des caméras de type GoPro ou du matériel plus ou moins professionnel (et plus ou moins chère aussi), j’ai décidé de créer un dispositif de capture d’image à base d’un Raspberry Pi. Pourquoi ? Parce que si on ne se complique pas la vie, c’est tout de suite beaucoup moins drôle 😉

IMG_4470

Je créé cette page pour expliquer la manière dont je procède en espérant inspirer des projets similaires. J’espère également pouvoir échanger des avis, et obtenir des conseils, donc n’hésitez pas à partager vos connaissances et expériences en commentaire 🙂

Objectifs

  • La construction durera environ 4 mois, le time lapse se fera donc sur cette période
  • Le dispositif sera installé au fond du terrain, à l’abri des intempéries
  • Une photo toutes les 10 minutes, de 8h00 à 18h00, du lundi au vendredi
  • Les images capturées auront une résolution de 1280×720 pixels
  • Il faut une connexion à Internet en 3G pour connaitre le statut du dispositif
  • Budget total, eviron 250€

Le matériel nécessaire de base

  • Un Raspberry Pi
  • Une carte mémoire SDHC
  • Une webcam HD
  • Un dongle 3G USB
  • Une batterie 5V
  • Une boîte en plastique pour abriter le dispositif
  • Un serveur distant qui enregistre le statut du dispositif

Les bases du TimeLapse

Avant toute chose, il convient de faire un rapide tour d’horizon des choses à savoir sur le TimeLapse. Totalement novice sur ce sujet, j’ai fouillé le net à la recherche d’info. Voici quelques sites/blogs que je vous recommande :

Voici un exemple de TimeLapse que j’aime beaucoup 🙂