Panorama di StereoPi

gambar

Kami terus bereksperimen dengan Raspberry Pi, dilengkapi dengan dua kamera secara bersamaan. Biarkan saya mengingatkan Anda bahwa semua permainan berlangsung di sekitar Raspberry Pi Compute Module 3 Lite, dimasukkan ke dalam buaian StereoPi.

Dalam ulasan sebelumnya, kami memasang kamera secara paralel dan bekerja dengan efek stereo. Di sini pendekatannya justru sebaliknya: kamera melihat ke arah yang berbeda, tetapi dilengkapi dengan lensa sudut lebar (200 derajat). Dan kami akan merekatkan panorama bola 360 derajat!

Pendahuluan


Gangguan: karena tidak ada co-penulis artikel di HabrΓ©, saya akan menyebutkan teks utama. Percobaan ini dilakukan bersama, dengan saya - besi dan percobaan di lapangan, dan dengan @Gol - bagian perangkat lunak.

Mari kita mulai dari akhir: inilah hasilnya, sebenarnya panorama .

Jadi, kali ini, cobalah untuk membuat panorama bola. Sia-sia, atau semacamnya, kami memiliki dua kamera. Tentu saja, dimungkinkan untuk menghubungkan dua kamera ke raspberry biasa, dalam mode multiplexing (salah satu kamera berfungsi, lalu yang lain, memilih yang tepat melalui GPIO). Tapi kemudian frame akan ditembak secara berurutan, dan jika ada gerakan, ini tidak terlalu nyali. Benar, ketika ada penembakan "simultan" dua kamera stereo dari dua kamera, tidak ada sinkronisasi juga, bodohnya dua raspistill diluncurkan secara bersamaan. Tetapi ada lebih banyak kemungkinan bahwa objek di perbatasan tidak akan tersebar sangat banyak. Anda juga dapat merekam video dengan dua kamera secara bersamaan, dan kemudian menjahitnya menjadi panorama video bulat. Tetapi kemudian saya akan mencoba entah bagaimana, pertama-tama Anda harus berurusan dengan panorama foto.

Besi


Kami punya StereoPi , ada dua kamera dengan lensa mata ikan (200 derajat). Berikut adalah kamera-kamera: RPi Camera (M) WaveShare

Kami memiliki dua kamera pop-to-pop:

gambar

Kami mengambil foto dari kedua kamera. Idealnya - pada saat yang sama, tetapi itu mungkin dan pada gilirannya. raspistill untuk membantu kami. Kami mendapatkan dua gambar ini:

gambar
Ukuran penuh

gambar
Ukuran penuh

Panorama Pokok


Kemudian muncul masalah - bagaimana membuat gambar secara otomatis dengan proyeksi yang sama dari kedua gambar fiskal ini, yang dimakan hampir semua pemirsa panorama. Saya ingin melakukan konversi langsung di papan stereo, tanpa menggunakan perangkat lunak panorama khusus.

Setelah banyak penelitian, proyek 360-kamera ditemukan, dari mana skrip diambil sebagai dasar.

Tapi pertama-tama, kita masih harus menggunakan program panorama terpisah untuk menyiapkan templat konversi. Program ini disebut Hugin, Anda dapat mengunduhnya di sini http://hugin.sourceforge.net/download/

1. Jadi, unduh, instal, luncurkan.
2. Pilih opsi "Sederhana" di menu "Antarmuka".

gambar

3. Klik tombol "Unduh gambar ..." dan tambahkan dua file kami (21.jpg dan 21-2.jpg).

gambar

4. Atur "Jenis lensa" - "Circular VyrvyGlaz". Panjang fokus adalah 1.2mm dan pengali panjang fokus adalah 7.6x. Dan di tab "Proyeksi", pastikan bahwa ada bidang pandang 360x180 dan "Sama". Secara default, seharusnya begitu.

gambar

5. Klik tombol β€œ2. Luruskan ... ". Pencarian titik kontrol akan dimulai, harus ada sekitar 10-13 poin. Panorama sudah mulai terlihat seperti panorama.

gambar

6. Sekarang hal yang paling penting adalah menyelamatkan proyek, karena kita akan membutuhkannya untuk perekatan otomatis selanjutnya dari semua panorama yang diambil dengan kedua kamera mata ikan ini. File -> Save As -> nama file stereopi-template.pto

7. Kembali ke tab "Asisten" (jika kita tiba-tiba pergi ke sana) dan klik "Buat panorama ..." Jendela tambahan akan terbuka, pilih ketinggian 1944 di sana, lebar itu sendiri akan dihitung. Format LDR (format gambar keluaran) diatur ke JPEG. Kualitas - apa pun yang Anda inginkan, secara default - 90. Kami belum menyentuh koreksi. Klik OK. Tetapkan nama file dengan hasilnya. Dan klik "Simpan."

gambar

8. Beberapa jendela lagi akan terbuka, di mana salah satu log proses akan ditampilkan.

gambar

9. Akibatnya, kita mendapatkan sesuatu seperti ini:

gambar

Ukuran penuh

Ini adalah proyeksi yang sama-sama diperlukan dari panorama bola kita!

Kami membawa jahitan di papan tulis


Tapi itu semua liriknya!

Kami ingin tidak mandi uap di setiap foto, kami perlu mengotomatiskan proses ini. Untuk ini, kita akan memerlukan file proyek, yang kita simpan pada poin 6. Kami mengambil file proyek kami (saya memilikinya stereopi-template.pto ) dan menyalinnya ke stereo.

Kami menyalin skrip perekatan stereopi-stich.sh di sana.Skrip tersebut membutuhkan dua parameter input - nama file foto ikan yang perlu direkatkan ke dalam proyeksi yang sama.

Tetapi pertama-tama Anda harus menginstal semua perangkat lunak yang diperlukan pada stereo. Unduh saja skrip ini dan jalankan di steropix. installer.sh

Sekarang jalankan skrip pengeleman:

# ./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 

Prosesnya memakan waktu sekitar 50 detik. Penting untuk mencari peluang pengoptimalan, tetapi sejauh ini tidak buruk.

Hasilnya adalah file

gambar

Ukuran penuh

Itu saja! Kami secara otomatis menjebak dua perikanan ke jarak yang sama! Dan dengan skrip yang sama Anda dapat merekatkan semua gambar berikutnya, hal utama adalah bahwa penempatan bersama kamera kami tidak banyak berubah, jika tidak maka lem akan hilang.

Sekarang Anda perlu memainkannya di suatu tempat di situs. Untuk melihat panorama kami di situs ini, Anda memerlukan pemain panorama.

IMHO, pemain built-in terbaik untuk panorama - KRPano. Itu dapat mengambil foto dan video. Ya, dibayar. Saya sudah membeli lisensi untuk itu lima tahun yang lalu, tetapi kemudian pemain dibuat dengan cepat dan HTML5 tidak bisa. Dan sekarang dia tahu caranya, tetapi Anda harus membeli lisensi lagi.

Anda dapat mengunduh arsip saya , di mana di dalamnya Anda memiliki semua yang Anda butuhkan untuk melihat ini . Yang paling nishtyak - planet kecil (pilihan mode tampilan - klik kanan).

gambar

Kami berharap eksperimen kami tidak hanya menarik bagi Anda, tetapi juga bermanfaat sebagai resep. Terima kasih atas perhatian anda!

Tautan yang bermanfaat:


Proyeksi Equirectangular
Banyak teori tentang perikanan dan proyeksi yang sama
Perangkat lunak untuk melihat panorama
Manual besar untuk perekatan otomatis
BrianBock / 360-kamera

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


All Articles