Salut, je viens aujourd’hui vous parler d’OpenStreetView, il s’agit d’un projet de la maison du libre initié par @benvii auquel je participe. Bien que le projet n’en soit qu’à ses début (nous n’avons encore réalisé aucun prototype fonctionnel), il est très prometteur .
Présentation du projet
Le projet est basé sur cet article de Roy D. Ragsdale qui en 2009 a réalisé un système afin de recréer des vues panoramique à la manière d’un GoogleStreetView. Dans son projet Roy D. Ragsdale a utilisé huit cameras Microsoft LifeCam NX-6000 afin de prendre via un scripte python des séries d’images qu’il transformait par la suite en panorama.
Choix du matériel
Après une série de test avec le même modèle de webcam (la NX-6000) nous avons constaté deux gros problèmes : on ne peut utiliser qu’une seul caméra à la fois et la qualité d’image n’est pas très satisfaisante pour des panoramas. Nous avons donc décidé de nous orienter vers un système utilisant des appareils photos numériques de la marque Canon (le Ixus 130 en l’occurrence), en effet il est possible sur certains appareils de la marque d’installer un chdk qui est un hack du logiciel de l’appareil permettant par la suite d’exécuter des scriptes en Lua sur l’appareil, il est ainsi possible de déclencher les prises de vue en connectant le port usb de l’appareil à une alimentation 5V. On peut donc contrôler les prises de vue depuis, par exemple, un arduino, l’idée étant via l’arduino de déclencher la prise de photos sur plusieurs appareils simultanément afin d’avoir un panorama complet.
Concernant la partie logiciel, nous utilisons Hugin afin de générer le panorama à partir des différentes prises de vue, un problème rapidement résolut s’est cependant posé : le logiciel dans sa dernière version plantait lors de la génération du panorama, car il trouvait des zones se superposant (ce qui est normal puisque l’on veut un panorama 360°), il a donc fallu modifier le code source du logiciel afin de schinter la sécurité puis le re-compiler. En ce qui concerne la partie web, il s’agit d’un code JavaScripte utilisant WebGL : le panorama est utilisé comme texture sur une sphère entourant la caméra, le zoom se faisant en changeant l’angle de vue de la caméra et le déplacement en faisant tourner cette dernière.
Les prototypes
Il est nécessaire d’avoir deux niveaux de photos afin d’obtenir un panoramas suffisamment haut, il faudrait donc un total de 14 appareils, ce qui revient plutôt cher. C’est pourquoi nous avons décliné le système en trois versions, de plus en plus complètes (et cher), si la première version rencontre un succès suffisant et que l’on obtient les financements suffisant nous passerons à la seconde version ou en cas de franc succès directement à la troisième, sinon nous attendrons d’obtenir plus de financement via la seconde version pour passer à la troisième.
La première version n’utilise qu’un seul appareil photo, celui-ci étant articulé selon un axe vertical pour parcourir le panorama et un axe horizontale afin de changer son inclinaison et prendre les deux niveaux de photos nécessaires, le problème d’un tel système est qu’il n’est pas utilisable en mobilité, il nous faudra donc accrocher le support de l’appareil photos sur un pied statique. Voici le schéma du support tel que je l’ai dessiné :

Et tel que réalisé par un autre membre du projet via le logiciel SolidWorks (il manque l’engrenage situé sous le support permettant la rotation verticale) :

La seconde version utiliserais sept appareils (nous réutiliserions évidemment celui de la première version), cette fois si les appareil ne sont articulés qu’horizontalement, nous pouvons donc imaginer que le support des appareils soit fixé à un mat dans un sac à dos avec stabilisateur pour simplifier le déplacement, la prise des vues étant relativement rapide. Un membre du TyFab a d’ors et déjà proposé la réalisation d’un sac à dos adapté.
La dernière version utiliserais 14 appareils (en réutilisant ceux de la version précédente) qui seraient tous fixés, il serait alors possible de réaliser des panoramas en mouvement sans s’arrêter, nous pourrions donc installer le système sur une voiture, ici encore un membre du TyFab a proposé de réaliser un support stabilisateur.
Et maintenant ?
La suite consiste à réaliser le premier prototype et le mettre en œuvre, dès que cela sera fait je vous ferais un petit article pour vous en parler. J’écrirais bien évidemment d’autres articles pour vous permettre de suivre l’avancement du projet et des différentes versions des prototypes.