Panoramas sur StereoPi

image

Nous continuons d'expĂ©rimenter avec le Raspberry Pi, Ă©quipĂ© de deux camĂ©ras en mĂȘme temps. Permettez-moi de vous rappeler que tous les jeux se dĂ©roulent autour du Raspberry Pi Compute Module 3 Lite, insĂ©rĂ© dans le berceau StereoPi.

Dans les critiques précédentes, nous avons installé des caméras en parallÚle et travaillé avec un effet stéréo. Ici, l'approche est exactement le contraire: les caméras regardent dans des directions différentes, mais sont équipées d'objectifs grand angle (200 degrés). Et nous collerons le panorama sphérique à 360 degrés!

Introduction


Distraction: puisqu'il n'y a pas de co-rédaction d'articles sur Habré, je mentionnerai le texte principal. Cette expérience a été réalisée conjointement, avec moi - fer et expériences sur le terrain, et avec @Gol - la partie logicielle.

Commençons par la fin: voici le résultat, en fait le panorama .

Donc, cette fois, essayez de faire un panorama sphĂ©rique. En vain, ou quelque chose du genre, nous avons deux camĂ©ras Ă  bord. Bien sĂ»r, il Ă©tait possible de connecter deux camĂ©ras Ă  des framboises ordinaires, en mode multiplexage (soit une camĂ©ra fonctionne, soit l'autre, en choisissant la bonne via GPIO). Mais alors les images seront filmĂ©es sĂ©quentiellement, et s'il y a du mouvement, ce n'est pas trĂšs instinctif. Certes, lorsqu'il y a une prise de vue «simultanĂ©e» de deux camĂ©ras stĂ©rĂ©o Ă  partir de deux camĂ©ras, il n'y a pas non plus de synchronisation, stupidement deux raspistill sont lancĂ©s simultanĂ©ment. Mais il y a plus de chances que les objets Ă  la frontiĂšre ne se dispersent pas beaucoup. Vous pouvez Ă©galement filmer des vidĂ©os avec deux camĂ©ras en mĂȘme temps, puis les coudre dans un panorama vidĂ©o sphĂ©rique. Mais ensuite je vais l'essayer d'une maniĂšre ou d'une autre, vous devez d'abord vous occuper des panoramas photo.

Le fer


Nous avons StereoPi , il y a deux caméras avec un objectif fisheye (200 degrés). Voici les caméras: Caméra RPi (M) WaveShare

Nous avons deux caméras pop-to-pop:

image

Nous prenons des photos des deux camĂ©ras. IdĂ©alement - en mĂȘme temps, mais c'est possible et Ă  son tour. raspistill pour nous aider. Nous obtenons ces deux images:

image
Pleine grandeur

image
Pleine grandeur

Panorama d'agrafes


Ensuite, le problÚme s'est posé - comment créer automatiquement une image avec une projection équidistante à partir de ces deux images fiscales, que presque tous les téléspectateurs de panorama mangent. Je veux faire la conversion directement à bord de la chaßne stéréo, sans utiliser de logiciel panoramique spécial.

AprĂšs de nombreuses recherches, le projet de 360 camĂ©ras a Ă©tĂ© trouvĂ©, d'oĂč les scripts ont Ă©tĂ© pris comme base.

Mais d'abord, nous devons encore utiliser un programme panoramique distinct pour préparer un modÚle de conversion. Le programme s'appelle Hugin, vous pouvez le télécharger ici http://hugin.sourceforge.net/download/

1. Donc, téléchargé, installé, lancé.
2. Sélectionnez l'option «Simple» dans le menu «Interface».

image

3. Cliquez sur le bouton "Télécharger les images ..." et ajoutez nos deux fichiers (21.jpg et 21-2.jpg).

image

4. RĂ©glez le «Type d'objectif» - «VyrvyGlaz circulaire». La focale est de 1,2 mm et le multiplicateur de focale est de 7,6x. Et dans l'onglet "Projection", assurez-vous qu'il y a un champ de vision de 360x180 et "Equidistant". Par dĂ©faut, il devrait en ĂȘtre ainsi.

image

5. Cliquez sur le bouton «2. Alignez ... ". La recherche de points de contrÎle commencera, il devrait y avoir quelque part entre 10 et 13 points. Le panorama commence déjà à ressembler à un panorama.

image

6. Maintenant, la chose la plus importante est de sauvegarder le projet, car nous en aurons besoin pour le collage automatique ultérieur de tous les panoramas suivants tournés avec ces deux de nos caméras fisheye. Fichier -> Enregistrer sous -> nom de fichier stereopi-template.pto

7. Revenez Ă  l'onglet "Assistant" (si nous y sommes soudainement partis) et cliquez sur "CrĂ©er un panorama ..." Une fenĂȘtre supplĂ©mentaire s'ouvrira, sĂ©lectionnez lĂ  la hauteur 1944, la largeur elle-mĂȘme sera calculĂ©e. Le format LDR (format d'image de sortie) est rĂ©glĂ© sur JPEG. QualitĂ© - tout ce que vous voulez, par dĂ©faut - 90. Nous ne touchons pas encore aux corrections. Cliquez OK. DĂ©finissez le nom du fichier avec le rĂ©sultat. Et cliquez sur "Enregistrer".

image

8. Deux autres fenĂȘtres s'ouvriront, dans l'une desquelles le journal des processus sera affichĂ©.

image

9. En conséquence, nous obtenons quelque chose comme ceci:

image

Pleine grandeur

C'est la projection équidistante nécessaire de notre panorama sphérique!

Nous transportons des coutures Ă  bord


Mais ce sont toutes les paroles!

Nous ne voulons pas prendre un bain de vapeur avec chaque photo, nous devons automatiser ce processus. Pour cela, nous aurons besoin du fichier de projet, que nous avons enregistré au point 6. Nous prenons notre fichier de projet (je l'ai stéréopi-template.pto ) et le copions sur la chaßne stéréo.

Nous y copions le script de collage stereopi-stich.sh Le script a besoin de deux paramĂštres d'entrĂ©e - les noms des fichiers de photos de poissons qui doivent ĂȘtre collĂ©s dans une projection Ă©quidistante.

Mais vous devez d'abord installer tous les logiciels nécessaires sur la chaßne stéréo. Téléchargez simplement ce script et exécutez-le sur le Steropix. installer.sh

Exécutez maintenant le script de collage:

# ./stereopi-stich.sh 21.jpg 21-2.jpg Stiching files 21.jpg and 21-2.jpg Generating pto file... Reading /opt/Pano/test1/21-2.jpg... Reading /opt/Pano/test1/21.jpg... Assigned 1 lenses. Written output to /opt/Pano/test1/tmp/project.pto Written output to ./tmp/project.pto number of cmdline args: 1 ================================== Stitching panorama ================================== nona -z LZW -r ldr -m TIFF_m -o 21_21-2-pano -i 0 ./tmp/project.pto nona -z LZW -r ldr -m TIFF_m -o 21_21-2-pano -i 1 ./tmp/project.pto checkpto --generate-argfile= project.pto_21_21-2-pano.arg ./tmp/project.pto enblend --compression=90 -w -f2688x1344 -o 21_21-2-pano.jpg -- 21_21-2-pano0000.tif 21_21-2-pano0001.tif enblend: info: loading next image: 21_21-2-pano0000.tif 1/1 enblend: info: loading next image: 21_21-2-pano0001.tif 1/1 enblend: info: writing final output Bogus input colorspace exiftool -overwrite_original_in_place -TagsFromFile /opt/Pano/test1/21-2.jpg -WhitePoint -ColorSpace -@ /usr/share/hugin/data/hugin_exiftool_copy.arg -@ project.pto_21_21-2-pano.arg 21_21-2-pano.jpg 1 image files updated ================================== Remove temporary files ================================== rm project.pto_21_21-2-pano.arg 21_21-2-pano0000.tif 21_21-2-pano0001.tif 

Le processus prend environ 50 secondes. Il faudrait chercher des opportunités d'optimisation, mais pour l'instant ce n'est pas mal.

Le résultat est un fichier

image

Pleine grandeur

C’est tout! Nous avons automatiquement coincĂ© deux pĂȘcheries dans un Ă©quidistant! Et avec le mĂȘme script, vous pouvez coller toutes les images suivantes, l'essentiel est que le placement mutuel de nos camĂ©ras ne change pas beaucoup, sinon le collage ira.

Maintenant, vous devez y jouer quelque part sur le site. Pour visualiser notre panorama sur le site vous avez besoin d'un lecteur panoramique.

À mon humble avis, le meilleur lecteur intĂ©grĂ© pour les panoramas - KRPano. Il peut prendre des photos et des vidĂ©os. Oui, payĂ©. J'ai dĂ©jĂ  achetĂ© une licence pour cela il y a cinq ans, mais le lecteur a ensuite Ă©tĂ© crĂ©Ă© sur un flash et HTML5 ne pouvait pas. Et maintenant, il sait comment, mais vous devez Ă  nouveau acheter une licence.

Vous pouvez tĂ©lĂ©charger mon archiveur , oĂč Ă  l'intĂ©rieur vous avez tout ce dont vous avez besoin pour le voir . Le plus nishtyak - petite planĂšte (choix du mode d'affichage - clic droit).

image

Nous espérons que notre expérience sera non seulement intéressante pour vous, mais également utile comme recette. Merci de votre attention!

Liens utiles:


Projection Ă©quirectangulaire
Beaucoup de thĂ©orie sur la pĂȘche et projection Ă©quidistante
Logiciel de visualisation de panoramas
Grand manuel pour collage automatique
BrianBock / 360 caméras

Source: https://habr.com/ru/post/fr432898/


All Articles