Pixel 3 mempelajari cara menentukan kedalaman di foto

Mode potret pada ponsel Pixel memungkinkan Anda mengambil foto yang terlihat profesional yang menarik perhatian subjek dengan mengaburkan latar belakang. Tahun lalu, kami menggambarkan bagaimana kami menghitung kedalaman menggunakan kamera tunggal dan autofokus pendeteksi fase (Phase-Detection Autofocus, PDAF), yang juga dikenal sebagai autofokus dua piksel . Proses ini menggunakan algoritma stereo tradisional tanpa pelatihan. Tahun ini di Pixel 3, kami mengadopsi pembelajaran mesin untuk meningkatkan penilaian kedalaman dan menghasilkan hasil yang lebih baik dalam mode potret.


Kiri: Gambar asli ditangkap dalam HDR + . Di sebelah kanan adalah perbandingan hasil pemotretan dalam mode potret menggunakan kedalaman dari stereo tradisional dan pembelajaran mesin. Hasil belajar menghasilkan lebih sedikit kesalahan. Dalam hasil stereo tradisional, kedalaman banyak garis horizontal di belakang pria itu diperkirakan secara salah sama dengan kedalaman pria itu sendiri, akibatnya mereka tetap tajam.

Tamasya singkat ke materi sebelumnya


Tahun lalu, kami menggambarkan bahwa mode potret menggunakan jaringan saraf untuk memisahkan piksel milik gambar orang dan gambar latar belakang, dan melengkapi topeng dua tingkat ini dengan informasi mendalam yang berasal dari piksel PDAF. Semua ini dilakukan untuk mendapatkan blur, tergantung pada kedalamannya, dekat dengan apa yang dapat diberikan oleh kamera profesional.

Agar berhasil, PDAF mengambil dua bidikan yang sedikit berbeda dari tempat kejadian. Beralih di antara gambar, Anda dapat melihat bahwa orang tersebut tidak bergerak, dan latar belakang bergerak secara horizontal - efek ini disebut paralaks . Karena paralaks adalah fungsi jarak titik dari kamera dan jarak antara dua titik pandang, kita dapat menentukan kedalaman dengan membandingkan setiap titik dalam satu gambar dengan titik yang sesuai di titik lain.


Gambar PDAF di sebelah kiri dan di tengah terlihat serupa, tetapi paralaks dapat dilihat pada bagian yang diperbesar di sebelah kanan. Paling mudah diperhatikan dengan struktur bundar di pusat perbesaran.

Namun, menemukan korespondensi tersebut dalam gambar PDAF (metode ini disebut stereo depth) adalah tugas yang sangat sulit, karena titik di antara foto bergerak sangat lemah. Selain itu, semua teknologi stereo menderita masalah bukaan. Jika Anda melihat pemandangan melalui celah kecil, tidak mungkin menemukan korespondensi titik untuk garis yang sejajar dengan garis dasar stereo, yaitu garis yang menghubungkan kedua kamera. Dengan kata lain, ketika mempelajari garis-garis horizontal pada foto yang disajikan (atau garis-garis vertikal dalam gambar dengan orientasi potret), semua pergeseran dalam satu gambar relatif ke gambar lain terlihat kurang lebih sama. Dalam mode potret tahun lalu, semua faktor ini dapat menyebabkan kesalahan dalam menentukan kedalaman dan penampilan artefak yang tidak menyenangkan.

Meningkatkan Penilaian Kedalaman


Dengan mode potret Pixel 3, kami memperbaiki kesalahan ini menggunakan fakta bahwa paralaks dari foto stereo hanyalah salah satu dari banyak petunjuk dalam gambar. Misalnya, titik yang jauh dari bidang fokus tampak kurang tajam, dan ini akan menjadi petunjuk dari kedalaman yang tidak fokus. Selain itu, bahkan ketika melihat gambar pada layar datar, kami dapat dengan mudah memperkirakan jarak ke objek, karena kami tahu perkiraan ukuran objek sehari-hari (yaitu, Anda dapat menggunakan jumlah piksel yang menggambarkan wajah seseorang untuk menilai sejauh mana ia berada). Ini akan menjadi petunjuk semantik.

Mengembangkan algoritme secara manual yang menggabungkan tip-tip ini sangat sulit, tetapi menggunakan MO, kita dapat melakukan ini sambil meningkatkan kinerja tip paralaks PDAF. Secara khusus, kami melatih jaringan saraf convolutional yang ditulis dalam TensorFlow , yang menerima piksel dari PDAF sebagai input, dan belajar untuk memprediksi kedalaman. Metode baru dan lebih baik ini untuk memperkirakan kedalaman berdasarkan MO digunakan dalam mode potret Pixel 3.


Jaringan saraf convolutional kami menerima gambar PDAF dan menyediakan peta kedalaman. Jaringan menggunakan arsitektur gaya encoder-decoder dengan koneksi lewati tambahan dan blok sisa.

Pelatihan jaringan saraf


Untuk melatih jaringan, kita membutuhkan banyak gambar PDAF dan peta kedalaman berkualitas tinggi yang sesuai. Dan karena kita membutuhkan prediksi mendalam untuk berguna dalam mode potret, kita membutuhkan data pelatihan agar serupa dengan foto yang diambil pengguna dengan smartphone.

Untuk melakukan ini, kami merancang perangkat Frankenfon khusus, di mana kami menggabungkan lima telepon Pixel 3 dan membuat koneksi WiFi di antara mereka, yang memungkinkan kami untuk secara bersamaan mengambil foto dari semua telepon (dengan perbedaan tidak lebih dari 2 ms). Dengan perangkat ini, kami menghitung peta kedalaman berkualitas tinggi berdasarkan foto, menggunakan gerakan dan stereo dari berbagai sudut.


Kiri: Perangkat untuk mengumpulkan data pelatihan. Di tengah: contoh beralih antara lima foto. Sinkronisasi kamera memastikan kemampuan untuk menghitung kedalaman dalam adegan dinamis. Kanan: Kedalaman total. Poin dengan kepercayaan diri rendah, di mana perbandingan piksel dalam foto yang berbeda tidak pasti karena kelemahan tekstur, dicat hitam, dan tidak digunakan dalam pelatihan.

Data yang diperoleh dengan menggunakan perangkat ini sangat ideal untuk melatih jaringan karena alasan berikut:

  • Lima sudut pandang menjamin keberadaan paralaks di beberapa arah, yang menyelamatkan kita dari masalah aperture.
  • Lokasi kamera memastikan bahwa setiap titik dalam gambar diulang setidaknya dalam dua foto, yang mengurangi jumlah titik yang tidak dapat ditandingi.
  • Garis dasar, yaitu jarak antara kamera, lebih besar dari pada PDAF, yang menjamin perkiraan kedalaman yang lebih akurat.
  • Sinkronisasi kamera memastikan kemampuan untuk menghitung kedalaman dalam adegan dinamis.
  • Portabilitas perangkat menjamin kemungkinan mengambil foto di alam, mensimulasikan foto yang diambil pengguna menggunakan smartphone.

Namun, terlepas dari idealitas data yang diperoleh dengan menggunakan perangkat ini, masih sangat sulit untuk memprediksi kedalaman absolut objek pemandangan - pasangan PDAF yang diberikan dapat sesuai dengan berbagai peta kedalaman (semuanya tergantung pada karakteristik lensa, panjang fokus, dll.). Untuk memperhitungkan semua ini, kami memperkirakan kedalaman relatif objek pemandangan, yang cukup untuk mendapatkan hasil yang memuaskan dalam mode potret.

Kami menggabungkan semua ini


Memperkirakan kedalaman menggunakan MO pada Pixel 3 harus bekerja cepat sehingga pengguna tidak perlu menunggu terlalu lama untuk hasil potret. Namun, untuk mendapatkan perkiraan kedalaman yang baik menggunakan defocus kecil dan paralaks, Anda harus memberi makan jaringan saraf foto dalam resolusi penuh. Untuk memastikan hasil yang cepat, kami menggunakan TensorFlow Lite , solusi lintas-platform untuk meluncurkan model MO pada perangkat seluler dan tertanam, serta GPU Pixel 3 yang kuat, yang memungkinkan Anda untuk menghitung kedalaman dengan cepat pada data input besar yang tidak biasanya. Kemudian kami menggabungkan perkiraan kedalaman yang diperoleh dengan topeng dari jaringan saraf kami, yang membedakan orang, untuk mendapatkan hasil pemotretan paling indah dalam mode potret.

Coba sendiri


Di Google Camera App versi 6.1 dan lebih tinggi, peta kedalaman kami tertanam dalam gambar mode potret. Ini berarti bahwa kita dapat menggunakan Editor Kedalaman Foto Google untuk mengubah tingkat kekaburan dan titik fokus setelah mengambil gambar. Anda juga dapat menggunakan program pihak ketiga untuk mengekstrak peta mendalam dari jpeg, dan mempelajarinya sendiri. Anda juga dapat mengambil album dari tautan , menampilkan peta kedalaman relatif dan gambar yang sesuai dalam mode potret, untuk membandingkan pendekatan stereo dan MO tradisional.

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


All Articles