Pada tahun 2007, kami memperkenalkan Google Street View, yang memungkinkan Anda menjelajahi dunia melalui panorama wilayah sekitar, landmark, museum dan banyak lagi, langsung dari browser atau perangkat seluler Anda. Pembuatan panorama ini adalah sebuah proses panjang yang rumit, yang melibatkan pengambilan gambar dari rig multi-kamera yang disebut rosette, dan kemudian menggunakan teknik penggabungan gambar untuk menggabungkannya dengan hati-hati. Namun, banyak hal bisa menggagalkan terciptanya panorama yang "bagus", seperti mis-kalibrasi geometri kamera rosette, perbedaan timing antar kamera yang berdekatan, dan paralaks. Dan meskipun kami mencoba mengatasi masalah ini dengan menggunakan perkiraan geometri pemandangan untuk memperhitungkan paralaks dan melakukan kalibrasi kamera berulang kali, sambungan gambar yang terlihat pada bidang tumpang tindih masih bisa terjadi.
Kiri: Mobil Street View membawa rosette multi-kamera. Tengah: Tampilan jarak dekat rosette, yang terdiri dari 15 kamera. Kanan: Visualisasi cakupan spasial dari masing-masing kamera. Tumpang tindih antara kamera yang berdekatan ditunjukkan dengan warna abu-abu gelap.
Kiri: Sydney Opera House dengan sambungan tidak rapi di kerangka kerang ikoniknya. Kanan: Panorama Street View yang sama setelah perbaikan sambungan optical flow.
Untuk menyediakan gambar Street View yang lebih mulus, kami telah mengembangkan algoritme baru berdasarkan optical flow untuk membantu mengatasi masalah ini. Idenya adalah dengan secara halus melengkungkan setiap gambar input sehingga konten gambar berada di posisi yang tepat dalam bidang yang tumpang tindih. Ini harus dilakukan dengan hati-hati untuk menghindari artefak visual jenis baru. Pendekatannya juga harus kuat untuk mengkompensasi berbagai geometri pemandangan, kondisi pencahayaan, kualitas kalibrasi, dan banyak kondisi lainnya. Untuk menyederhanakan tugas menyelaraskan gambar dan memenuhi persyaratan komputasional, kami telah membaginya ke dalam dua langkah.

Optical Flow
Langkah pertama adalah menemukan lokasi piksel yang tepat untuk setiap pasangan gambar yang tumpang tindih. Dengan menggunakan teknik yang dijelaskan di entri blog PhotoScan, kami menghitung optical flow dari satu gambar ke gambar yang lain. Ini akan menyediakan bidang penyesuaian yang halus dan rapat. Kami kemudian menurunkan penyesuaian untuk efisiensi komputasional. Kami juga menghapus penyesuaian ketika struktur visualnya tidak cukup bagus terhadap hasil optical flow

Batas sepasang komponen gambar penyusun dari kamera rosette yang harus digabungkan bersama.
Ilustrasi optical flow dalam pasangan bidang tumpang tindih.
Penyesuaian yang diekstrak pada sepasang gambar. Untuk setiap titik berwarna di bidang tumpang tindih dari gambar kiri, ada titik berwarna sama di bidang tumpang tindih pada gambar kanan, yang menunjukkan bagaimana algoritme optical flow menyelaraskan titiknya. Pasangan titik yang sama ini digunakan sebagai input untuk tahap optimalisasi global. Perhatikan bahwa bidang tumpang tindih ini hanya menutupi sebagian kecil dari setiap gambar.
Optimalisasi Global
Langkah kedua adalah melengkungkan gambar rosette secara serentak untuk menyelaraskan semua titik yang sama dari bidang tumpang tindih (seperti yang terlihat pada gambar di atas). Saat digabungkan menjadi panorama, kumpulan gambar yang dilengkungkan akan diselaraskan dengan benar. Ini sangat menantang karena bidang tumpang tindih hanya menutupi sebagian kecil dari setiap gambar, sehingga terkadang menimbulkan masalah. Untuk membuat hasil visual yang optimal untuk keseluruhan gambar, kami memformulasikan pelengkungan (warping) sebagai bidang alur berbasis spline dengan regularisasi spasial. Parameter spline dipecahkan dalam optimalisasi non-linear menggunakan open source Ceres Solver dari Google.
Visualisasi proses pelengkungan akhir. Kiri: Bagian panorama yang mencakup 180 derajat horizontal. Perhatikan bahwa efek keseluruhan pelengkungan sengaja dibuat cukup halus. Kanan: Tampilan jarak dekat, memperjelas bagaimana pelengkungan memperbaiki penggabungannya.
Pendekatan kami memiliki banyak kesamaan dengan karya yang dipublikasikan sebelumnya oleh Shum & Szeliski pada panorama "deghosting". Perbedaan utamanya adalah bahwa pendekatan kami memperkirakan penyesuaian yang rapat dan halus (bukannya penyesuaian independen dengan cara patch), dan kami memecahkan optimalisasi nonlinier untuk pelengkungan terakhir. Hasilnya adalah pelengkungan yang lebih baik dan cenderung tidak memunculkan artefak visual baru dibandingkan pendekatan berbasis kernel.
Kiri: Tampilan jarak dekat dari panorama yang belum diperbaiki. Tengah: Hasil interpolasi berbasis kernel. Ini memperbaiki diskontinuitas tetapi menghasilkan artefak gambar yang mengganggu karena tumpang tindih gambar kecil dan footprint kernel yang terbatas. Kanan: Hasil optimalisasi global kami.
Hal ini penting karena algoritme kami harus kuat terhadap keragaman konten yang sangat banyak dalam miliaran panorama Street View. Anda bisa melihat seberapa efektif algoritme ini dalam contoh berikut:
Tower Bridge, London
Christ the Redeemer, Rio de Janeiro
Sebuah SUV di jalanan Seattle
Algoritme baru ini baru saja ditambahkan ke jaringan penggabungan gambar Street View. Algoritme ini sekarang digunakan untuk menggabungkan ulang panorama yang sudah ada secara berkelanjutan. Perhatikan selalu Street View yang sudah disempurnakan di dekat Anda!

Ucapan Terima Kasih
Terima kasih banyak kepada Bryan Klingner yang telah membantu mengintegrasikan fitur ini dengan infrastruktur Street View.