PiScope

Dispositif PiScope

Pour répondre à des besoins visualisation sur le terrain et dans le cadre d'essais divers, nous avons développé notre instrument maison pour la capture d’images en time-lapse, sur une base de nano-ordinateur Raspberry Pi.

Le dispositif et des exemples de résultats sont à présent publiés dans le Cahier des Techniques de l'INRA en 2019.

Depuis la rédaction de cet article le logiciel PiTANCE a continué à évoluer et a été testé puis validé sur le Raspberry Pi Zero W. Pour en savoir plus voir en fin de page.

Mise à jour importante !

Suite à une mise à jour du firmware de Raspbian Buster pour le Raspberry Pi 4, des problèmes de gestion du blanc sont apparus rendant impossible l'utilisation de la caméra PiNoIR avec une dominante pourpre systématique, plus ou moins forte, en en lumière du jour ou de nuit.

Une nouvelle mise a jour du firmware ainsi qu'une nouvelle option de gestion du blanc (greyworld) ajoutée à l'application PiTANCE 7 ont été intégrés dans la nouvelle image système à télécharger via le lien dans l'article.

L'option blanc "greyworld" sur camera PiNoIR et RaspBerry Pi Zero en lumière du jour produit des couleurs plus naturelles et sans dominante pourpre à l'inverse de l'option blanc "auto".
L'option blanc "greyworld" sur camera PiNoIR et RaspBerry Pi Zero en lumière du jour produit des couleurs plus naturelles et sans dominante pourpre à l'inverse de l'option blanc "auto".
Parametre-greyworld-IR-nuit
Le paramètre greyworld en prise de vue de nuit et éclairage infrarouge élimine la dominante pourpre et produit une image en niveau de gris.

Pour en savoir plus: https://github.com/raspberrypi/firmware/issues/1167

Bushnell

Conception matérielle initiale

Nous utilisions depuis quelques temps un matériel de type piège Bushnell prêté provisoirement par un autre institut. Il nous fallait donc trouver une solution de remplacement pérenne et aussi plus pertinente puisque le piège Bushnell ne nous permettait pas de descendre à une prise de vue jusqu'à la seconde sur un time-lapse longue durée.

Après une recherche sur le web de solutions alternatives, nous sommes partis sur la base d'un combo constitué :

  • d’un Raspberry Pi 3
  • d’une caméra Pi NoIR V1 (5 mégapixels)
  • d’un éclairage led infrarouge,
  • d’alimentations électriques sous forme de deux types de batteries,
    • l’une, de type power bank Lithium ion de 20800 mA/h fournissant les 5 Volts et 2,1 ampères et suffisants au fonctionnement du Pi si sans écran connecté,
    • l’autre au plomb en 6 Volts dédiée à l’éclairage infrarouge,
  • d’une boite de dérivation électrique avec un couvercle étanche, de récupération et avec un espace suffisant pour l’aménager en conséquence avec les éléments précédents,
  • de pieds de table basse
  • de Patafix pour fixer de façon suffisante mais non permanente les différents éléments du combo.

Avec tous ces éléments nous avons assemblé notre prototype :

PiScope : hé oui j'ai les pieds plats !
PiScope : hé oui j'ai les pieds plats !

Les pieds, d'une hauteur de 30 cm, sont montés ”à l’envers” de façon à utiliser la surface plane côté sol pour assurer la plus grande stabilité possible lors de l’utilisation dans les parcelles d’essai.

PiScope-terrain
PiScope - Sur le terrain...

Le périmètre délimité par ces pieds correspond à la zone utile du cadre photo et la hauteur des pieds garanti d’être dans la zone de netteté focale de la caméra. Du coup aucun réglage de visée sur le terrain n’est nécessaire.

Limaces-Jour
PiScope : capture de jour La dominante est due aux infrarouges non filtrés

Gestion de l'infrarouge

 

cameras

La caméra Pi NoIR se distingue visuellement du modèle standard par son circuit imprimé de couleur noire au lieu du vert classique. C’est important car il n’y a aucune autre référence claire et que les sources de fabrication peuvent varier.

Le terme NoIR (No Infra Red) indique que cette caméra dédiée est dépourvue du filtre anti infrarouges habituellement intégré aux capteurs vidéo et qui a pour fonction ordinaire de rendre vos photos plus nettes en supprimant la diffusion générée par les longueurs d’ondes dans les infrarouges. Pour filmer une scène de nuit avec une caméra NoIR il faut éclairer la scène avec une source émettant dans cette gamme de longueur d’onde.

Capture-d-e-cran-2018-05-11-a-19.38.42

Nous avons trouvé deux versions d’une petite lampe, la Kingbright LED LAMP CLUSTER, peu chère, prête à l'emploi et d’un format très pratique pour notre projet.

Elle possède sur l'arrière un pas de vis femelle pour la fixation, un joint torique pour l'étanchéité, un ergot pour un bon positionnement selon son angle d'inclinaison et est pré-câblée pour une connexion en 6 volts.

L’une émet dans les 880 nanomètresl’autre dans les 940 nanomètres. S’est posé la question du choix de la longueur d’onde puisque à 940 nanomètreson risquait d’avoir un moins bon rendement avec le capteur de la caméra qu'à 880 mais que cette dernière longueur d'onde émet une lueur rouge qui reste visible dans l'obscurité et que cela peut influencer le comportement des prédateurs à observer :

Effect of light quality on movement of Pterostichus melanarius (Coleoptera: Carabidae)
By:Allema, AB (Allema, A. B.)1 ] Rossing, WAH (Rossing, W. A. H.); van der Werf, W (van der Werf, W.)2 ] Heusinkveld, BG (Heusinkveld, B. G.)3 ] Bukovinszky, T (Bukovinszky, T.)4 ] Steingrover, E (Steingrover, E.)5 ] van Lenteren, JC (van Lenteren, J. C.)1 ]

Abstract
Behaviour of nocturnal insects is routinely observed under red light, but it is unclear how the behaviour under red light compares to behaviour in complete darkness, or under a source of white light. Here, we measure movement behaviour of the nocturnal carabid beetle Pterostichus melanarius Illiger (Coleoptera: Carabidae) using camera recording under a near-infrared (nir), red or white radiation source. Red light significantly reduced movement speed in females similar to the effect of white light and different from nir. Also movement activity and pause length were affected by radiation source, with a significant difference between nir and white light, and with intermediate values in red light. The results presented here indicate that P. melanarius has different movement behaviour under the three radiation sources and suggest that nir rather than red radiation is most appropriate for measuring behaviour in total darkness. However, in the field total darkness is rare both because of natural light sources such as the moon and stars but increasingly also because of ecological light pollution, and therefore red light may still be of use for observing ecologically and practically relevant natural night-time behaviour.

Dans le doute nous avons pris les deux. Mais bonne nouvelle, le capteur de la camera Pi NoIR encaisse relativement bien l’éclairage à 940 nanomètres et c'est donc notre éclairage IR par défaut.

Limaces-nuit
PiScope : capture de nuit éclairage : infrarouge 940 nm

Les images obtenues sous infrarouge apparaissent moins nettes à cause de la plus grande diffusion propre à ces longueurs d'onde. Ici un exemple avec notre lampe 880 nm comparé à la lumière ordinaire d'un bureau.

Comparatif-IR-Normal

 

Capture-d-e-cran-2018-06-02-a-15.04.42

 

Les nouvelles séries des caméras Pi NoIR V2 disponibles chez RS sont livrées avec deux accessoires :

Comme nos images présentent souvent des dominantes, il est tentant d'utiliser ce filtre pour les soustraire automatiquement. Un petit test montre qu'il vaut mieux s'en tenir à une postproduction classique (désaturation des images ou lors du montage de la vidéo) si on ne veut pas risquer de perdre de l'information.

Coparatif-IR-postProd

La caméra vise à travers un hublot créé travers le fond du boitier. Sur notre prototype, l'ouverture a été protégé avec un fond de boite de pétri collé autour de l’ouverture. La lampe IR est positionnée latéralement au hublot de façon à illuminer le centre de la scène. Pour vérifier que la lampe est allumée, ce qui est totalement invisible à nos yeux, un simple selfie du PiScope avec un smartphone fera l'affaire.

Sous-PiScope
PiScope : l’œil de Sauron de la faune épigée :-)

Évolution du PiScope

New-PiScope

Un boitier pour le Raspberry Pi : le montage initial du prototype dans une boite en carton n’était pas très pérenne. Nous avons commandé un petit boitier métallique dont la volume interne nous a permis d’y insérer la caméra après avoir percé un petit trou dans la grille pour ne pas masquer l’optique. 

Utilisation d’un disque dur : la carte mémoire du Raspberry Pi servait en même temps pour le système d’exploitation et le stockage des images pendant le time-lapse. Cela a fini par devenir un inconvénient, d’abord en terme de gestion de place mais surtout de récupération des données sans à avoir à démonter sans cesse la mini carte mémoire.

Nous avons d’abord utilisé le transfert des images par réseau mais c’était très long vu le nombre d’images récoltées par session.

Nous avons donc étudié la possibilité d’utiliser des disques usb internes transformés en externes, récupérés d’ordinateurs portables passés sur ssd et compatibles niveau consommation électrique avec le Raspberry Pi. Malheureusement les prises usb du Pi ne fournissent pas assez de courant au disque dur pour que celui-ci fonctionne correctement pendant l’acquisition des images. Toutefois il a été possible de fournir le courant manquant via la seconde prise usb de la batterie Li-ion et un câble adapté.

Le disque est formaté en fat 32 pour assurer un maximum de compatibilité entre les différents systèmes de postes de travail.

Actuellement nous utilisons une fréquence de 3 images par seconde, mais les tests sur disque dur mobile on été poussés jusqu' à 1 image par seconde, sans soucis particuliers si le disque est en bon état.

L'avantage du disque dur mobile (ou d'une clé usb de grosse capacité) est de transférer les images beaucoup plus facilement sur les postes de travail pour analyse et tri, malgré la surconsommation électrique induite pour le PiScope pendant son fonctionnement.

Protection de la scène des intempéries : pour la visée au sol, une jupe en plastique translucide souple a été posée tout autour du quadrilatère formé par les pieds du PiScope et jusqu'à quelques centimètres du sol pour protéger au mieux les proies sentinelles de la pluie et des courants d'air et sans gêner l'arrivée possible des prédateurs.

Changement de sens de visée - PiScope 2 : pour quelques essais nous avions besoin de viser à l’horizontale, c’est à dire de viser des proies placées en hauteur, dans la végétation et non au sol.

Du coup nous avons créé un second modèle de PiScope, analogue dans composition mais organisé pour pouvoir modifier aisément l'orientation de la visée. Nous avons fabriqué une forme de berceau métallique réglable à partir de cornières afin de rendre solidaire l’ensemble représenté par le Raspberry Pi, la batterie Li-ion et le disque dur.

Berceau1
Berceau2

Ce berceau permet de positionner exactement cet ensemble et donc la caméra du Pi dans le boitier du PiScope grâce à des tiges filetées suffisamment longues pour s’insérer dans des trous aménagés dans le boitier et serrés depuis l’extérieur par des écrous papillons. Ces trous sont présents à la fois sur le fond et sur une des parois verticales du boitier du PiScope ce qui permet d’orienter le berceau et la visée caméra selon le type de visée voulu.

Berceau3

Des pieds télescopiques supplémentaires permettent de positionner le PiScope à la bonne hauteur par rapport aux cibles dans la végétation.

PiScope-2-terrain
PiScope 2 - vue du côté visée horizontale

Avec ce type de visée horizontale s’est posée la question du bon cadrage des images et à la bonne profondeur de champ.

Ce problème a été traité au niveau du système d’exploitation du Raspberry Pi et de l’interface PiTANCE pour permettre, sur le terrain, la prise de photo test depuis une tablette Android via une connexion bureau à distance de type XRDP. Pour plus d'informations, voir le paragraphe Le wifi et la borne d'accès PiScope dans la Documentation PiTANCE à télécharger en fin de page.

Diffuseur-ping-pong

Diffusion de l'éclairage - PiScope 2 : nous n'avons pu obtenir la même caméra infrarouge que pour notre premier modèle de PiScope. Cette nouvelle caméra s'est trouvée avoir une optique plus grand angle par rapport à la première. Ceci a eu pour conséquence d'avoir une perte de détails dû à l'éloignement optique de la scène en visée verticale. Pour améliorer la situation nous avons monté des pieds plus courts (hauteur de 20 cm) sur notre PiScope 2 mais la lampe IR s'est trouvée trop proche et cela a perturbé la répartition de l'éclairage sur la surface visée.

Pour traiter ce problème nous avons cherché à mieux répartir et doser l'éclairage en le diffusant. Nous avons expérimenté plusieurs matériaux translucides. Finalement c'est l'adaptation d'une balle de ping-pong sur l'éclairage infrarouge qui a donné les meilleurs résultats.

Repartition-IR-brut
PiScope 2 - répartition éclairage IR brut
Piscope-2-repartition-IR-Ping-Pong
PiScope 2 - répartition éclairage IR + balle de ping-pong
Essai-cibles-1
PiScope 2 - diffusion IR balle ping-pong sur cibles
Essai-cibles-2
PiScope 2 - Diffusion IR balle ping-pong sur cibles

Limitation actuelle de nos PiScopes

Comme nos PiScopes sont bâtis sur une base de Raspberry Pi, nous héritons des limites de celui-ci, notamment en ce qui concerne l'absence d'horloge RTC. Ceci a pour conséquence que le PiScope perd la date et l'heure dès qu'il est éteint et qu'il ne peut retrouver le temps actuel qu'à travers une connexion réseau. Nous sommes donc obligés de connecter le PiScope au réseau du laboratoire avant de le programmer et sans plus l'éteindre pour toute la durée de la manip. Il en va de même pour l'éclairage infrarouge qui est allumé soit au laboratoire, soit à la dépose du PiScope sur le terrain, bien avant les séquences programmées de time-lapse. Les batteries en prennent nécessairement un coup et doivent être parfaitement chargées au démarrage du PiScope. Comme les batteries Li-ion de forte capacité sont extrêmement  longues à charger il faut prévoir un jeu suffisant de batteries pour les permuter d'un jour à l'autre et palier à toute défaillance.

Il est possible de rajouter une horloge RTC au Raspberry Pi et d'envisager de programmer un déclenchement du PiScope en temps utile.

Système d’exploitation et interface utilisateur

PiTANCE a été développé initialement sur Ubuntu Mate pour Pi. Mais a présent  nous nous intéressons a l'usage du Raspberry Pi Zero W (plus compact, consommant bien moins d'énergie que le Pi 3, et avec la capacité d’être utilisé comme gadget USB). Mais le Pi Zero ne fonctionne pas avec Ubuntu mais seulement avec Raspbian, donc seul ce dernier système sera supporté a présent pour l'usage de PiTANCE sur nos Pi 3 et Zero.

PiTANCE 7 pour Raspberry Pi propose une interface pour les commandes raspistill et raspivid pilotant les caméras compatibles CSI, notamment les version V1 et V2 standard. Cette interface vous permettra de programmer aisément :

  • l’enregistrement séquencé d’images ou timelapse
  • l’enregistrement des fichiers vidéos

Pour l'enregistrement vidéo, ffmpeg est utilisé en complément pour encoder à la volée le fichier h264 de raspivid dans un conteneur .mp4 avec la possibilité de le découper en segments égaux pendant l'enregistrement.

Aperçu de l'interface principale de la dernière version de PiTANCE :

PiTANCE7
  • PiTANCE 7 est compatible avec les cameras V1 (5 mégapixels) V2 (8 mégapixels).
  • PiTANCE 7 a été testé et utilisé sur les systèmes Raspbian Stretch et Buster sur Raspberry Pi 3 et Raspberry Pi Zero W.
  • PiTANCE a été développé à partir de la version spécifique de l'IDE pour Raspberry Pi de Livecode Community 7.04 sous licence GPL v3.
  • Le fichier source .livecode est un binaire et toute ouverture de celui-ci avec un autre éditeur que Livecode le détruira. L'IDE Livecode Community est disponible gratuitement pour les principales plateformes (Windows, Mac, Linux, Raspberry).
worm

Documentation et téléchargement

Pour avoir des informations supplémentaires sur PiTANCE ou installer le logiciel pour l'utiliser sur votre Rasberry Pi vous avez 2 possibilités :

  • Fortement conseillé : télécharger une image zippée de Raspbian Buster, lui-même paramétré et avec PiTANCE pré-installé et immédiatement fonctionnel.

Image Raspbian Buster + PiTANCE 7 pour carte sd de 16 GB minimum à télécharger ici sur Sourceforge

Plus d'infos sur cette image à lire ici.

  • Ou bien aller dans la section Documents à télécharger, en bas de cette page où vous trouverez la documentation Pitance7.pdf (Important: voir les pré-requis nécessaires en fin de documentation !
  • Le dossier compressé Logiciel PiTANCE7.zip
  • Une fois téléchargé, décompressez le zip et placez le dossier obtenu où vous voulez dans votre dossier utilisateur du PI.
  • Le Lanceur PiTANCE et le binaire PiTANCE.livecode doivent impérativement rester dans le même dossier !
  • Contenu du dossier:
DossierPitance
  • Rendez le lanceur PiTANCE exécutable en changeant ses droits :
Capture-d-e-cran-2019-09-05-a-13.56.34
  • Cliquez sur le lanceur PiTANCE pour démarrer l'application.
Menu

Documents à télécharger:

Logiciel PiTANCE 7 - Documentation PiTANCE 7

See also

Qu'est-ce que LiveCode ? (pdf)

LiveCode 2nd edition 2010 - traduction (pdf)

LiveCode dowloads (pour RaspBerry Pi cliquez sur RPi* dans la section LiveCode 7.0.4)

LiveCode Community le site officiel de la version open source