Pada 19 April 2017, kami merilis
pembaruan untuk PhotoScan , aplikasi seluler kami untuk iOS dan Android, yang memungkinkan Anda untuk mendigitalkan foto kertas hanya dengan smartphone. Salah satu fitur utama PhotoScan adalah kemampuan untuk menghapus silau dari foto (mereka sering dicetak pada kertas yang sangat mengkilap), serta dari halaman album plastik atau foto di bawah kaca. Untuk melakukan ini, kami telah mengembangkan kombinasi unik dari penglihatan komputer dan teknologi pemrosesan gambar yang dapat secara akurat menggabungkan dan menggabungkan beberapa gambar yang sedikit berbeda dari foto dan memisahkan sorotan dari gambar itu sendiri dalam foto.

Dari satu gambar, sangat sulit untuk secara otomatis menentukan bagian mana dari gambar tersebut yang merupakan foto asli dan mana yang menjadi sorotan. Selain itu, silau dapat menerangi area foto, karena itu tidak mungkin untuk mengembalikan bagian itu yang tersembunyi di bawah silau. Tetapi jika Anda mengambil beberapa bidikan foto dengan menggerakkan kamera, suar lensa berubah - ia bergerak melalui berbagai bagian foto. Dalam kebanyakan kasus, masing-masing piksel tidak akan menyala setidaknya di salah satu gambar. Meskipun tidak ada gambar yang akan tanpa silau, kita dapat menggabungkan beberapa foto dari foto yang dicetak yang diambil pada sudut yang berbeda, dan dengan demikian menghapus silau. Kesulitannya adalah bahwa gambar-gambar harus disejajarkan dengan sangat tepat sehingga mereka digabungkan dengan benar, dan pemrosesan ini harus dilakukan pada smartphone dengan cukup cepat untuk mendapatkan efek hasil yang hampir instan.
Teknologi kami terinspirasi oleh karya kami sebelumnya yang diterbitkan di
SIGGRAPH 2015 , yang kami sebut "
fotografi bebas hambatan ". Ini menggunakan prinsip serupa untuk menghilangkan berbagai gangguan dari bidang pandang. Tetapi algoritma asli didasarkan pada model generatif di mana gerakan dan penampilan adegan utama dan interferensi dievaluasi. Kemampuan model ini luar biasa, dan mampu menghilangkan berbagai gangguan - tetapi terlalu mahal secara komputasi untuk digunakan pada telepon pintar. Oleh karena itu, kami telah mengembangkan model yang disederhanakan yang mengacu pada suar sebagai semacam anomali dan mencoba mengenali gambar di bawahnya. Meskipun model ini disederhanakan, masih merupakan tugas yang sangat sulit - pengakuan harus akurat dan dapat diandalkan.
Bagaimana cara kerjanya
Kami mulai dengan serangkaian foto dari foto yang diambil oleh pengguna yang memindahkan kamera. Snapshot pertama - "bingkai referensi" - menentukan tampilan akhir foto yang diinginkan. Pengguna kemudian disarankan untuk mengambil empat gambar tambahan. Di setiap frame, kami menentukan
titik kunci (kami menghitung
properti ORB pada sudut yang ditentukan menggunakan
algoritma Harris ) dan menggunakannya untuk menentukan
homograf yang memetakan setiap frame berikutnya ke yang referensi.
Teknologi ini tampak sederhana, tetapi memiliki tangkapan - homograf hanya dapat membandingkan gambar datar. Tetapi foto kertas sering tidak rata (seperti pada contoh di atas). Kami menggunakan
aliran optik - representasi mendasar dari gerakan dalam visi komputer, membangun korespondensi pixel-by-pixel antara dua gambar, mengoreksi penyimpangan dari pesawat. Kami mulai dengan bingkai yang disejajarkan menggunakan homografi dan menghitung "bidang aliran" untuk meluruskan gambar dan selanjutnya menyesuaikan. Harap perhatikan bahwa pada contoh di bawah ini, sudut-sudut foto kiri βbergerakβ sedikit setelah menetapkan bingkai menggunakan hanya homografi. Di sebelah kanan Anda dapat melihat bagaimana foto selaras lebih baik setelah menerapkan aliran optik.
Perbedaannya tidak terlalu mencolok, tetapi secara signifikan mempengaruhi hasil akhir. Perhatikan bagaimana perbedaan kecil memanifestasikan dirinya dalam bentuk duplikat fragmen gambar, dan bagaimana kelemahan ini dihilangkan dengan penyempurnaan tambahan menggunakan stream.

Dan dalam hal ini, kesulitannya adalah membuat algoritma aliran optik yang awalnya bekerja lambat bekerja lebih cepat pada smartphone. Alih-alih perhitungan tradisional dari aliran untuk setiap piksel (jumlah vektor sama dengan jumlah piksel), kami membuat bidang aliran menggunakan jumlah titik kontrol yang lebih kecil, dan merekam pergerakan setiap piksel dalam gambar sebagai fungsi dari pergerakan titik kontrol. Yaitu, kami membagi setiap gambar menjadi sel-sel terpisah yang membentuk kisi berbutir kasar, dan mewakili aliran piksel dalam sel yang terpisah sebagai
kombinasi aliran
bilinear dari aliran dan empat sudut sel yang mengandungnya.


Maka tetap untuk memecahkan masalah yang lebih sederhana, karena jumlah vektor aliran sekarang sama dengan jumlah titik kisi, yang biasanya jauh lebih kecil dari piksel. Proses ini mirip dengan
pemrosesan gambar splining . Dengan algoritma ini, kami dapat mengurangi waktu perhitungan fluks optik pada telepon Pixel sekitar 40 kali!
Akhirnya, untuk membuat gambar akhir tanpa silau, untuk setiap bagian dari frame kita mengambil nilai pixel dan menghitung "soft minimum" untuk menemukan opsi yang paling gelap. Secara khusus, kami menghitung kecerahan minimum yang diharapkan dari bingkai yang tersedia, dan menetapkan bobot yang lebih kecil ke piksel yang lebih dekat ke tepi melengkung gambar. Kami menggunakan metode ini alih-alih secara langsung menghitung minimum karena fakta bahwa piksel yang sama dalam bingkai yang berbeda mungkin memiliki kecerahan yang berbeda. Minimum piksel per piksel dapat menyebabkan tampilan sambungan yang terlihat karena perubahan intensitas yang tajam pada batas gambar yang tumpang tindih.

Algoritma ini dapat bekerja dalam berbagai kondisi pemindaian - foto matte dan glossy, foto dalam album dan tanpa mereka, sampul majalah.
Untuk menghitung hasil akhir, tim kami telah mengembangkan metode yang secara otomatis menentukan batas gambar dan mengarahkannya ke tampilan persegi panjang. Karena distorsi perspektif, foto persegi panjang yang dipindai biasanya berubah menjadi segiempat non-persegi panjang. Metode ini menganalisis sinyal gambar, warna, tepi untuk mengetahui ke mana batas yang tepat dari foto asli, dan kemudian menerapkan transformasi geometris untuk meluruskan gambar. Hasilnya adalah versi digital berkualitas tinggi dari kertas fotografi tanpa silau.

Secara umum, banyak hal terjadi di bawah tenda, dan semua ini bekerja hampir secara instan di ponsel Anda! Anda dapat mencoba PhotoScan dengan mengunduh versi aplikasi untuk
Android atau
iOS .