Archives du Tag : panorama

Des nouvelles d’OpenStreetView

Dans la catégorie hack, Maison du libre, OpenPathView
Tagué comme , , , , , , , ,

Salut,

Je vous ai parlé il y a quelques temps du projet OpenStreetView avec la mdl, je reviens aujourd’hui pour vous donner des nouvelles. Il y a eu pas mal de changement depuis le début et on approche de la fin du projet.

Le nouveau fonctionnement

Désormais les photos panoramiques sont prises avec des caméras GoPro Hero 2, elles sont au nombre de 6 : 5 caméras forment un pentagone comme le montre la modélisation ci-dessous et une sixième sera placée sur le dessus afin de compléter le panorama.

modélisation

Le déclenchement des prises de vue synchronisées se fait via un Arduino Mini Pro 3.3V et un hack se basant sur le kit 3D de GoPro : une EPROM est connecté à chaque GoPro lui faisant croire qu’elle est dans un kit 3D, il est alors possible de déclencher des prises de vue simultanées avec les 6 caméras, les photos sont ensuite enregistrées par les caméras sur des cartes SD EyeFi.
Les cartes EyeFi sont des cartes SD embarquant du wifi, elles se connectent à un réseau wifi pré-configuré (la configuration des cartes doit se faire sous Windows avec le logiciel officiel) sur  lequel se situe un serveur EyeFi (serveur modifié en python), celui-ci récupère les images que les cartes lui envoient. Pour le serveur nous avons choisi une RaspberryPi.
La RaspberryPi est configurée en Hot-spot wifi, les cartes EyeFi peuvent ainsi s’y connecter, mais on peut aussi s’y connecter (avec une tablette par exemple) pour monitorer les prises de vue. Sur la RaspberryPi est branché un compas (liaison I2C des GPIO) et un GPS (liaison série des GPIO) afin de pouvoir positionner les panoramas dans l’espace et ainsi facilement positionner les boutons qui permettront de passer de l’un à l’autre dans la visionneuse. L’Arduino Mini Pro est branché en USB ce qui permet de tout contrôler depuis la RaspberryPi.
Bonus : je suis en train de travailler sur un hack de la montre LiveView de Sony Ericson afin de pouvoir contrôler le serveur OpenStreetView depuis la montre

Voila en résumé le système :
Systeme

Et ça donne quoi ?

Tout est prêt excepté qu’il manque encore le PCB pour relier les GoPro à l’Arduino, nous avons donc déjà pu tester le sac à dos et la tête photos avec une caméra seule en mode timer pour qu’elle prenne des photos toutes les 10 secondes, nous avons ainsi pu constater que le mat était trop petit, nous avons donc acheté deux autres mat : un de 1.5m et un de 2m, juste pour le fun, voilà ce que ça donne avec un mat de 2m :

Utilisation

 

Document utilisés :
Document OpenStreetView (wiki mdl)
Hack LiveView
Hack GoPro (wiki mdl)
Hack EyeFi  (wiki mdl)

OpenStreetView

Dans la catégorie Internet, Maison du libre, OpenPathView, Technologie
Tagué comme , , , , , , ,

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é :

OpenStreetView_schema011

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) :

OpenStreetView_schema02

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.