Bagaimana cara mengubah ukuran topeng segmentasi gambar?

Saya memiliki topeng biner untuk setiap gambar, dengan setiap piksel topeng memiliki nilai 0 atau 255. Sekarang karena segmentasi gambar saya memerlukan gambar dengan ukuran tetap, saya harus mengubah ukuran gambar dan topeng. Namun, ketika saya mengubah ukuran gambar, maka akan ada tempat di mask yang nilainya lebih dari 0 tetapi lebih kecil dari 255. Bagaimana saya tahu mana yang harus dipertahankan? Karena di perpustakaan menuntut hanya ada 0 atau 255. Mohon bantuannya, terima kasih banyak.


person Dang Manh Truong    schedule 04.06.2020    source sumber


Jawaban (2)


Jika Anda ingin mengubah ukuran gambar dan ingin gambar hasil hanya memiliki nilai dari rentang aslinya, Anda dapat menggunakan interpolasi tetangga terdekat.

person Amitay Nachmani    schedule 04.06.2020

Jika Anda mengubah ukuran menggunakan interpolasi selain tetangga terdekat, Anda memang mendapatkan nilai dalam kisaran [0, 255]. Ini belum tentu merupakan hal yang buruk. Jika fungsi kerugian Anda adalah entropi silang, Anda dapat menganggap nilai ini sebagai label lunak. Artinya, piksel ini tidak memiliki penetapan keras pada salah satu target, melainkan penetapan lunak dan probabilistik pada keduanya.

Menggeneralisasikan ini untuk masker segmentasi multi-label, dan augmentasi geometris yang lebih kompleks (misalnya, rotasi, affine, ...). Pertanyaannya adalah
Bagaimana cara menerapkan augmentasi dengan benar pada gambar target terpisah?

Misalnya, Anda memiliki masker segmentasi semantik dengan 81 kelas (yaitu, setiap piksel memiliki nilai {0, 1, ..., 80} yang menunjukkan kelas piksel tersebut. Masker target ini disimpan sebagai gambar RGB yang diindeks. Anda ingin menerapkan beberapa augmentasi geometris pada gambar masukan dan topeng target.

Cara cepat dan kotor adalah dengan menggunakan interpolasi tetangga terdekat, seperti yang diusulkan oleh Amitay Nachmani.

Cara yang lebih akurat dan benar adalah dengan mengkonversi mask target dari mask HxW diskrit (integer) menjadi CxHxW peta probabilitas: yaitu, setiap saluran akan sesuai dengan probabilitas setiap piksel untuk dimiliki masing-masing dari 81 kelas.
Perhatikan bahwa ini bukan prediksi segmentasi (keluaran jaringan), melainkan target yang harus diprediksi oleh jaringan. Dengan cara ini Anda merepresentasikan setiap piksel target sebagai vektor 1-hot 81-dim.
Dengan representasi ini, Anda dapat menerapkan augmentasi ke setiap saluran secara terpisah, menggunakan metode interpolasi yang sama seperti yang Anda gunakan untuk gambar masukan itu sendiri (biasanya bikubik).
Sekarang Anda mempunyai, untuk setiap piksel target, probabilitasnya untuk termasuk dalam masing-masing 81 kelas, vektor-vektor ini tidak lagi 1-hot (karena interpolasi dan transformasi ). Anda dapat menggunakan argmax untuk mengonversi peta ini kembali ke penetapan kelas per piksel yang sulit, atau memodifikasi fungsi kerugian agar berfungsi dengan label lunak ini untuk menangkap dengan lebih baik batas antara berbagai wilayah dalam gambar.

person Shai    schedule 20.07.2021