Segmentasi gambar tanpa pengawasan

10

Saya mencoba menerapkan algoritma di mana diberikan gambar dengan beberapa objek pada tabel bidang, yang diinginkan adalah output dari masker segmentasi untuk setiap objek. Tidak seperti di CNN, tujuannya di sini adalah untuk mendeteksi objek di lingkungan yang tidak dikenal. Apa pendekatan terbaik untuk masalah ini? Juga, apakah ada contoh implementasi yang tersedia secara online?

Sunting: Saya minta maaf, pertanyaan mungkin agak menyesatkan. Apa yang saya maksud dengan "lingkungan asing" adalah bahwa objek mungkin tidak diketahui oleh algoritma. Algoritme seharusnya tidak perlu memahami apa objek itu, tetapi hanya mendeteksi objek. Bagaimana saya harus mendekati masalah ini?

MuhsinFatih
sumber
"tidak seperti CNN" tidak masuk akal; CNN adalah jenis model, bukan jenis tugas dengan tujuan. Segmentasi gambar yang tidak diawasi dapat dilakukan dengan menggunakan CNN juga
Nathan

Jawaban:

4

Menjawab dengan cepat

Mean Shift LSH yang merupakan peningkatan pada dari algoritma Mean Shift yang terkenal di sangat dikenal karena kemampuan segmentasi gambarnyaO(n)O(n2)

Beberapa penjelasan

Jika Anda menginginkan pendekatan tanpa pengawasan untuk mengelompokkan gambar, gunakan algoritma pengelompokan . Faktanya adalah bahwa ada banyak algoritma dengan kompleksitas dan spesifisitas waktu yang berbeda . Ambil yang paling terkenal, Means, itu ada di sangat cepat tetapi Anda harus menentukan berapa banyak kluster yang Anda inginkan yang tidak Anda inginkan dengan menjelajahi gambar yang tidak dikenal tanpa informasi tentang berapa banyak bentuk yang hadir di dalamnya. Selain itu bahkan jika Anda mengira bahwa Anda tahu berapa banyak bentuk yang hadir, kami dapat menganggap bahwa ada bentuk acak yang merupakan titik lain di mana Berarti gagal karena dirancang untuk menemukan cluster elips dan TIDAK.O ( n ) KKO(n)K bentuk acak.

Sebaliknya kita memiliki Mean Shift yang dapat menemukan secara otomatis jumlah cluster - yang berguna ketika Anda tidak tahu apa yang Anda cari - dengan bentuk acak .

Tentu saja Anda mengganti parameter dari berarti dengan parameter Mean Shift yang lain yang mungkin sulit dilakukan, tetapi tidak ada alat yang memungkinkan Anda untuk melakukan sihir jika Anda tidak berolahraga untuk melakukan sihir.KKK

Saran untuk pengelompokan segmentasi gambar

Ubah ruang warna Anda dari RGB ke LUV yang lebih baik untuk jarak euclidean.

K -Means vs Mean Shift Kompleksitas waktu LSH

  • Pergeseran Mean:O(α.n)
  • K-Means:O(β.n)
  • α>β

Berarti Shift LSH lebih lambat tetapi lebih cocok dengan kebutuhan Anda. Itu tetap linier dan juga scalable dengan implementasi yang disebutkan.

PS: Gambar profil saya adalah aplikasi Mean Shift LSH pada diri saya jika itu dapat membantu untuk mengetahui cara kerjanya.

KyBe
sumber
3

Anda mungkin perlu melihat karya ini diajukan dan diterima untuk CVPR 2018: Belajar Segmen Setiap Hal

Dalam karya ini, mereka mencoba mengelompokkan semuanya, bahkan objek yang tidak dikenal ke jaringan. Mask R-CNN telah digunakan, dikombinasikan dengan sub-jaringan pembelajaran transfer, mereka mendapatkan hasil yang sangat baik dalam mensegmentasi hampir semuanya.

LeNoir
sumber
2

State-of-the-art (SOTA) untuk segmentasi gambar adalah Mask-RCNN Facebook .

Meskipun biasanya dilatih pada dataset seperti COCO atau Pascal yang menampilkan objek kehidupan nyata, Anda dapat melatihnya kembali pada dataset pilihan Anda, nyata atau tidak.

Facebook menyediakan implementasi ( Detectron ) di bawah lisensi Apache2. Cobalah!

Arthur Douillard
sumber
Sebenarnya saya pikir saya mengajukan pertanyaan dengan cara yang menyesatkan, salah saya. Saya baru saja memposting hasil edit, dapatkah Anda melihatnya lagi?
MuhsinFatih
2

Sebenarnya, tugas Anda diawasi. Segnetbisa menjadi arsitektur yang baik untuk tujuan Anda yang salah satu implementasinya dapat diakses di sini . SegNet belajar untuk memprediksi label kelas berdasarkan piksel dari pembelajaran yang dilindungi. Oleh karena itu kami memerlukan set data gambar input dengan label kebenaran tanah yang sesuai. Gambar label harus saluran tunggal, dengan masing-masing pixel diberi label dengan kelasnya ... .

Juga, lihat Fully Convolutional Networks yang cocok untuk tugas Anda.


Berdasarkan hasil edit dalam pertanyaan, saya menambahkan informasi tambahan. Ada banyak metode yang dapat diterapkan untuk tugas ini. Pada dasarnya yang paling mudah adalah dengan menggunakan label latar belakang dan mengklasifikasikan kelas-kelas yang Anda tidak tahu sebagai latar belakang dengan menggunakan arsitektur yang disebutkan. Dengan melakukannya, Anda akan memiliki label yang dapat memiliki tumpang tindih untuk kelas latar belakang yang kemungkinan merupakan kelemahan dari pendekatan ini, tetapi keuntungannya adalah dalam kasus di mana label terlatih Anda sering digunakan dalam input, Anda dapat memiliki versi arsitektur yang relatif ringan yang mengenali kelas yang tidak dikenal.

Media
sumber
Sebenarnya saya pikir saya mengajukan pertanyaan dengan cara yang menyesatkan, salah saya. Saya baru saja memposting hasil edit, dapatkah Anda melihatnya lagi?
MuhsinFatih
@MuhsinFatih diedit.
Media
Tentunya akan lebih mudah , dan mencapai kinerja yang lebih baik, jika ini adalah tugas yang diawasi, tetapi segmentasi gambar yang tidak diawasi juga dimungkinkan.
Nathan
@Nathan Saya sudah menyarankan pendapat saya sendiri saat itu. Jelas itu mungkin.
Media
1

Ini mungkin sesuatu yang Anda cari. Karena Anda meminta segmentasi gambar dan bukan semantic / instancesegmentasi, saya menganggap Anda tidak memerlukan pelabelan untuk setiap segmen dalam gambar.

Metode ini disebut scene-cutyang mensegmentasi gambar ke wilayah kelas-agnostik dengan cara yang tidak diawasi. Ini bekerja sangat baik jika lingkungan dalam ruangan berantakan.

Tautan kertas: arxiv

Kode: kode

kv manohar
sumber