Panduan 2021 untuk Segmentasi Semantik

Node Sumber: 872271

Intro

Pembelajaran mendalam telah sangat berhasil saat bekerja dengan gambar sebagai data dan saat ini berada pada tahap di mana ia bekerja lebih baik daripada manusia pada banyak kasus penggunaan. Masalah paling penting yang ingin dipecahkan manusia dengan computer vision klasifikasi citra, deteksi objek dan segmentasi dalam urutan tingkat kesulitan mereka.

Dalam tugas lama klasifikasi gambar, kami hanya tertarik untuk mendapatkan label dari semua objek yang ada dalam gambar. Dalam deteksi objek kita melangkah lebih jauh dan mencoba untuk mengetahui bersama dengan apa semua objek yang ada dalam sebuah gambar, lokasi di mana objek tersebut hadir dengan bantuan kotak pembatas. Segmentasi gambar membawanya ke level baru dengan mencoba menemukan secara akurat batas objek dalam gambar secara akurat.

Sumber http://cs224d.stanford.edu/index.html

Pada artikel ini kita akan membahas konsep segmentasi gambar, membahas kasus penggunaan yang relevan, arsitektur jaringan saraf yang berbeda yang terlibat dalam mencapai hasil, metrik, dan kumpulan data untuk dijelajahi.

Apa itu segmentasi gambar

Kita tahu bahwa gambar tidak lain adalah kumpulan piksel. Segmentasi citra adalah proses pengklasifikasian setiap piksel pada citra yang termasuk dalam kelas tertentu dan karenanya dapat dianggap sebagai masalah klasifikasi per piksel. Ada dua jenis teknik segmentasi

Source http://cs231n.stanford.edu/slides/2017/cs231n_2017_lecture11.pdf
  1. Segmentasi semantik : - Segmentasi semantik adalah proses pengklasifikasian setiap piksel yang termasuk dalam label tertentu. Itu tidak berbeda di berbagai contoh objek yang sama. Misalnya jika ada 2 kucing dalam sebuah gambar, segmentasi semantik memberikan label yang sama untuk semua piksel dari kedua kucing tersebut
  2. Segmentasi instance : - Segmentasi instance berbeda dari segmentasi semantik dalam arti memberikan label unik untuk setiap instance objek tertentu dalam gambar. Seperti dapat dilihat pada gambar di atas, ketiga anjing diberi warna yang berbeda yaitu label yang berbeda. Dengan segmentasi semantik, semuanya akan diberi warna yang sama.

Jadi sekarang kita akan sampai pada titik di mana kita membutuhkan algoritma semacam ini

Kasus penggunaan segmentasi gambar

Pengenalan tulisan tangan : - Junjo dkk mendemonstrasikan bagaimana segmentasi semantik digunakan untuk mengekstrak kata dan baris dari dokumen tulisan tangan di Makalah penelitian 2019 untuk mengenali karakter tulisan tangan

sumber

Mode potret Google : - Ada banyak kasus penggunaan yang sangat penting untuk memisahkan latar depan dan latar belakang. Misalnya dalam mode potret Google kita dapat melihat latar belakang diburamkan sedangkan latar depan tetap tidak berubah untuk memberikan efek yang keren.

Sumber: - https://ai.googleblog.com/2018/03/mobile-real-time-video-segmentation.html

Cerita YouTube : - Google baru-baru ini merilis fitur cerita YouTube untuk pembuat konten untuk menunjukkan latar belakang yang berbeda saat membuat cerita.

Sumber: - https://ai.googleblog.com/2018/03/mobile-real-time-video-segmentation.html

Riasan virtual : - Menerapkan lip-stick virtual sekarang dapat dilakukan dengan bantuan segmentasi gambar

Sumber: - https://www.theverge.com/2017/3/16/14946086/sephora-virtual-assistant-ios-app-update-ar-makeup

4. Percobaan virtual : - Percobaan pakaian secara virtual adalah fitur menarik yang tersedia di toko-toko yang menggunakan perangkat keras khusus yang membuat model 3d. Tetapi dengan pembelajaran mendalam dan segmentasi gambar, hal yang sama dapat diperoleh hanya dengan menggunakan gambar 2d

Sumber: - https://arxiv.org/pdf/1807.07688.pdf

Pencarian Gambar Visual : - Ide untuk membagi pakaian juga digunakan dalam algoritma pengambilan gambar di eCommerce. Misalnya Pinterest / Amazon memungkinkan Anda mengunggah gambar apa pun dan mendapatkan produk terkait yang mirip dengan melakukan pencarian gambar berdasarkan segmentasi bagian kain.

Sumber: - https://github.com/paucarre/tiefvision

Mobil self-driving : - Mobil self-driving membutuhkan pemahaman lengkap tentang lingkungannya hingga tingkat piksel sempurna. Oleh karena itu, segmentasi citra digunakan untuk mengidentifikasi jalur dan informasi lain yang diperlukan

Sumber: - https://medium.com/intro-to-artificial-intelligence/semantic-segmentation-udaitys-self-driving-car-engineer-nanodegree-c01eb6eaf9d

Nanonets membantu fortune 500 perusahaan memungkinkan pengalaman pelanggan yang lebih baik dalam skala besar menggunakan Segmentasi Semantik.

Metode dan Teknik

Sebelum munculnya deep learning, teknik pembelajaran mesin klasik seperti SVM, Random Forest, K-means Clustering digunakan untuk menyelesaikan masalah segmentasi citra. Tetapi seperti sebagian besar pernyataan masalah terkait gambar, pembelajaran mendalam telah bekerja secara komprehensif lebih baik daripada teknik yang ada dan telah menjadi norma sekarang ketika berhadapan dengan Segmentasi Semantik. Mari kita tinjau teknik yang digunakan untuk memecahkan masalah

Jaringan Konvolusional Penuh

Arsitektur umum CNN terdiri dari beberapa lapisan konvolusional dan penyatuan diikuti oleh beberapa lapisan yang terhubung sepenuhnya di bagian akhir. Makalah Fully Convolutional Network yang dirilis pada tahun 2014 berpendapat bahwa lapisan terakhir yang sepenuhnya terhubung dapat dianggap melakukan konvolusi 1 ร— 1 yang mencakup seluruh wilayah.

Sumber: - https://arxiv.org/abs/1411.4038

Oleh karena itu, lapisan padat akhir dapat diganti dengan lapisan konvolusi yang mencapai hasil yang sama. Tapi sekarang keuntungan dari melakukan ini adalah ukuran input tidak perlu diperbaiki lagi. Saat melibatkan lapisan padat, ukuran input dibatasi dan karenanya ketika input berukuran berbeda harus disediakan, ukurannya harus diubah. Tetapi dengan mengganti lapisan padat dengan konvolusi, batasan ini tidak ada.

Selain itu, ketika ukuran gambar yang lebih besar disediakan sebagai input, output yang dihasilkan adalah peta fitur dan bukan hanya output kelas seperti untuk gambar berukuran input normal. Juga perilaku yang diamati dari peta fitur akhir mewakili peta panas dari kelas yang diperlukan, yaitu posisi objek disorot di peta fitur. Karena keluaran dari peta fitur adalah peta panas dari objek yang diperlukan, itu adalah informasi yang valid untuk kasus penggunaan segmentasi kita.

Karena peta fitur yang diperoleh pada lapisan keluaran adalah sampel turun karena rangkaian konvolusi yang dilakukan, kami ingin meningkatkan sampelnya menggunakan teknik interpolasi. Bilinear up sampling berfungsi tetapi makalah ini mengusulkan menggunakan pengambilan sampel yang dipelajari dengan dekonvolusi yang bahkan dapat mempelajari pengambilan sampel non-linier.

Bagian down sampling dari jaringan disebut encoder dan bagian up sampling disebut decoder. Ini adalah pola yang akan kita lihat di banyak arsitektur yaitu mengurangi ukuran dengan encoder dan kemudian mengambil sampel dengan decoder. Dalam dunia yang ideal, kami tidak ingin menurunkan sampel menggunakan penggabungan dan mempertahankan ukuran yang sama di seluruh, tetapi itu akan menyebabkan sejumlah besar parameter dan tidak layak secara komputasi.

Sumber: - https://arxiv.org/abs/1411.4038

Meskipun hasil keluaran yang diperoleh sudah layak namun keluaran yang diamati kasar dan tidak mulus. Penyebabnya adalah hilangnya informasi pada lapisan fitur akhir karena downsampling sebanyak 32 kali menggunakan lapisan konvolusi. Sekarang menjadi sangat sulit bagi jaringan untuk melakukan upampling 32x dengan menggunakan sedikit informasi ini. Arsitektur ini disebut FCN-32

Untuk mengatasi masalah ini, makalah ini mengusulkan 2 arsitektur lain FCN-16, FCN-8. Dalam FCN-16 informasi dari pooling layer sebelumnya digunakan bersama dengan peta fitur akhir dan oleh karena itu sekarang tugas jaringan adalah mempelajari 16x up sampling yang lebih baik dibandingkan dengan FCN-32. FCN-8 mencoba membuatnya lebih baik dengan memasukkan informasi dari satu lagi lapisan penggabungan sebelumnya.

tidak

U-net dibangun di atas jaringan konvolusional penuh dari atas. Itu dibangun untuk tujuan medis untuk menemukan tumor di paru-paru atau otak. Ini juga terdiri dari encoder yang men-down-sample gambar input ke peta fitur dan decoder yang mengambil sampel peta fitur untuk memasukkan ukuran gambar menggunakan lapisan dekonvolusi yang dipelajari.

Sumber: - https://arxiv.org/abs/1505.04597

Kontribusi utama arsitektur U-Net adalah koneksi pintas. Kami melihat di atas di FCN bahwa karena kami mengambil sampel gambar sebagai bagian dari pembuat enkode, kami kehilangan banyak informasi yang tidak dapat dipulihkan dengan mudah di bagian pembuat enkode. FCN mencoba untuk mengatasi ini dengan mengambil informasi dari lapisan penggabungan sebelum lapisan fitur akhir.

U-Net mengusulkan pendekatan baru untuk mengatasi masalah kehilangan informasi ini. Ini mengusulkan untuk mengirim informasi ke setiap lapisan pengambilan sampel di decoder dari lapisan pengambilan sampel yang sesuai di encoder seperti yang dapat dilihat pada gambar di atas sehingga menangkap informasi yang lebih baik sambil juga menjaga komputasi tetap rendah. Karena lapisan di awal pembuat enkode akan memiliki lebih banyak informasi, lapisan tersebut akan mendukung operasi pengambilan sampel dekoder dengan memberikan detail halus yang sesuai dengan gambar masukan sehingga banyak meningkatkan hasil. Makalah ini juga menyarankan penggunaan fungsi kerugian baru yang akan kita bahas di bawah ini.

Lab Dalam

Deeplab dari sekelompok peneliti dari Google telah mengusulkan banyak teknik untuk meningkatkan hasil yang ada dan mendapatkan hasil yang lebih baik dengan biaya komputasi yang lebih rendah. Tiga perbaikan utama yang disarankan sebagai bagian dari penelitian ini adalah

1) Konvolusi yang menyakitkan
2) Pengumpulan Piramida Spasial Atrous
3) Penggunaan Conditional Random Fields untuk meningkatkan hasil akhir
Mari kita bahas tentang semua ini

Konvolusi yang Mengerikan

Salah satu masalah utama dengan pendekatan FCN adalah perampingan yang berlebihan karena operasi penyatuan yang berurutan. Karena rangkaian pooling, citra input diturunkan sampelnya sebesar 32x yang kemudian diambil sampelnya lagi untuk mendapatkan hasil segmentasi. Downsampling sebesar 32x mengakibatkan hilangnya informasi yang sangat penting untuk mendapatkan hasil yang bagus dalam tugas segmentasi. Juga dekonvolusi ke sampel hingga 32x adalah operasi komputasi dan memori yang mahal karena ada parameter tambahan yang terlibat dalam pembentukan pengambilan sampel yang dipelajari.

Makalah ini mengusulkan penggunaan konvolusi Atrous atau konvolusi lubang atau konvolusi dilatasi yang membantu dalam mendapatkan pemahaman tentang konteks besar dengan menggunakan jumlah parameter yang sama.

Source:- https://www.mdpi.com/1424-8220/19/24/5361/htm

Konvolusi dilatasi bekerja dengan meningkatkan ukuran filter dengan menambahkan angka nol (disebut lubang) untuk mengisi celah di antara parameter. Jumlah lubang / nol yang terisi di antara parameter filter disebut dengan istilah laju dilasi. Ketika kecepatannya sama dengan 1 itu tidak lain adalah konvolusi normal. Ketika laju sama dengan 2, satu nol disisipkan di antara setiap parameter lainnya membuat filter terlihat seperti konvolusi 5 ร— 5. Sekarang ia memiliki kapasitas untuk mendapatkan konteks konvolusi 5 ร— 5 sambil memiliki parameter konvolusi 3 ร— 3. Demikian pula untuk tingkat 3 bidang reseptif pergi ke 7 ร— 7.

Pada lapisan penggabungan terakhir Deeplab diganti agar memiliki langkah 1, bukan 2, sehingga menjaga laju pengambilan sampel turun hanya 8x. Kemudian serangkaian konvolusi yang mengerikan diterapkan untuk menangkap konteks yang lebih luas. Untuk melatih output berlabel mask diturunkan sampelnya sebanyak 8x untuk membandingkan setiap piksel. Untuk inferensi, pengambilan sampel bilinear up digunakan untuk menghasilkan keluaran dengan ukuran yang sama yang memberikan hasil yang cukup layak dengan biaya komputasi / memori yang lebih rendah karena pengambilan sampel bilinear up tidak memerlukan parameter apa pun dibandingkan dengan dekonvolusi untuk pengambilan sampel.

ASPP

Spatial Pyramidal Pooling adalah konsep yang diperkenalkan di SPPNet untuk menangkap informasi multi-skala dari peta fitur. Sebelum pengenalan gambar input SPP pada resolusi yang berbeda disediakan dan peta fitur yang dihitung digunakan bersama untuk mendapatkan informasi multi-skala tetapi ini membutuhkan lebih banyak komputasi dan waktu. Dengan Spatial Pyramidal Pooling, informasi multi-skala dapat ditangkap dengan satu gambar input.

Sumber: - http://kaiminghe.com/eccv14sppnet/index.html

Dengan modul SPP, jaringan menghasilkan 3 keluaran dengan dimensi 1 ร— 1 (yaitu GAP), 2 ร— 2 dan 4 ร— 4. Nilai-nilai ini digabungkan dengan mengkonversi ke vektor 1d sehingga menangkap informasi pada berbagai skala. Keuntungan lain menggunakan SPP adalah gambar input dengan ukuran berapa pun dapat disediakan.

ASPP mengambil konsep informasi fusi dari skala yang berbeda dan menerapkannya pada konvolusi Atrous. Input berbelit-belit dengan kecepatan dilasi yang berbeda dan outputnya digabungkan bersama.

Sumber: - http://liangchiehchen.com/projects/DeepLab.html

Seperti yang dapat dilihat, input dikonvolusi dengan filter 3x3 dengan kecepatan dilasi 6, 12, 18 dan 24 dan output digabungkan karena ukurannya sama. Keluaran konvolusi 1 ร— 1 juga ditambahkan ke keluaran fusi. Untuk juga memberikan informasi global, keluaran GAP juga ditambahkan ke atas setelah pengambilan sampel. Keluaran fusi 3 ร— 3 bervariasi keluaran dilatasi, 1 ร— 1 dan keluaran GAP dilewatkan melalui konvolusi 1 ร— 1 untuk mendapatkan jumlah saluran yang diperlukan.

Karena gambar yang diperlukan untuk disegmentasi dapat berukuran berapa pun di input, informasi multi-skala dari ASPP membantu dalam meningkatkan hasil.

Meningkatkan hasil dengan CRF

Pooling adalah operasi yang membantu mengurangi jumlah parameter dalam jaringan neural, tetapi juga membawa properti invarian. Invarians adalah kualitas jaringan saraf yang tidak terpengaruh oleh sedikit terjemahan pada masukan. Karena properti ini diperoleh dengan penyatuan, keluaran segmentasi yang diperoleh oleh jaringan saraf adalah kasar dan batas-batasnya tidak ditentukan secara konkret.

Sumber: - http://liangchiehchen.com/projects/DeepLab.html

Untuk mengatasi hal ini, makalah ini mengusulkan penggunaan model grafis CRF. Bidang Acak Bersyarat menjalankan langkah pasca-pemrosesan dan mencoba meningkatkan hasil yang dihasilkan untuk menentukan batas pembentuk. Ia bekerja dengan mengklasifikasikan piksel tidak hanya berdasarkan labelnya tetapi juga berdasarkan label piksel lainnya. Seperti yang dapat dilihat dari gambar di atas, batas kasar yang dihasilkan oleh jaringan saraf semakin halus setelah melewati CRF.

Deeplab-v3 memperkenalkan normalisasi batch dan kecepatan dilasi yang disarankan dikalikan dengan (1,2,4) di dalam setiap lapisan dalam blok Resnet. Penambahan fitur image level ke modul ASPP yang telah dibahas dalam pembahasan ASPP di atas telah diusulkan sebagai bagian dari makalah ini

Sumber: - https://arxiv.org/pdf/1706.05587.pdf

Deeplab-v3 + disarankan untuk memiliki decoder daripada 16x sampling bilinear biasa. Dekoder mengambil petunjuk dari dekoder yang digunakan oleh arsitektur seperti U-Net yang mengambil informasi dari lapisan pembuat enkode untuk meningkatkan hasil. Output encoder diambil sampelnya 4x menggunakan bilinear up sampling dan digabungkan dengan fitur dari encoder yang kembali diambil sampelnya 4x setelah melakukan konvolusi 3 ร— 3. Pendekatan ini memberikan hasil yang lebih baik daripada pengambilan sampel langsung 16x ke atas. Juga arsitektur Xception yang dimodifikasi diusulkan untuk digunakan sebagai pengganti Resnet sebagai bagian dari encoder dan konvolusi yang dapat dipisahkan secara mendalam sekarang digunakan di atas konvolusi Atrous untuk mengurangi jumlah komputasi.

Jaringan Konvolusi Global

Sumber: - https://arxiv.org/pdf/1703.02719.pdf

Segmentasi semantik melibatkan melakukan dua tugas secara bersamaan

i) Klasifikasi
ii) Lokalisasi

Jaringan klasifikasi dibuat agar tidak berubah terhadap terjemahan dan rotasi sehingga tidak mementingkan informasi lokasi sedangkan pelokalan melibatkan mendapatkan detail yang akurat tentang lokasi. Jadi secara inheren kedua tugas ini kontradiktif. Sebagian besar algoritme segmentasi lebih mementingkan pelokalan, yaitu yang kedua pada gambar di atas dan dengan demikian melupakan konteks global. Dalam karya ini penulis mengusulkan cara untuk memberi perhatian pada tugas klasifikasi juga sementara pada saat yang sama tidak kehilangan informasi lokalisasi

Sumber: - https://arxiv.org/pdf/1703.02719.pdf

Penulis mengusulkan untuk mencapai ini dengan menggunakan kernel besar sebagai bagian dari jaringan sehingga memungkinkan koneksi yang padat dan karenanya lebih banyak informasi. Ini dicapai dengan bantuan blok GCN seperti yang dapat dilihat pada gambar di atas. Blok GCN dapat dianggap sebagai filter konvolusi akxk dimana k dapat berupa angka yang lebih besar dari 3. Untuk mengurangi jumlah parameter filter akxk selanjutnya dipecah menjadi 1 xk dan blok kx 1, kx1 dan 1xk yang kemudian dijumlahkan. Jadi dengan meningkatkan nilai k, konteks yang lebih besar ditangkap.

Selain itu, penulis mengusulkan blok Perbaikan Batas yang mirip dengan blok sisa yang terlihat di Resnet yang terdiri dari koneksi pintas dan koneksi sisa yang dijumlahkan untuk mendapatkan hasilnya. Teramati bahwa memiliki blok Penyempitan Batas menghasilkan peningkatan hasil pada batas segmentasi.

Hasil penelitian menunjukkan bahwa blok GCN meningkatkan akurasi klasifikasi piksel yang lebih dekat ke pusat objek yang menunjukkan peningkatan yang disebabkan karena menangkap konteks jarak jauh sedangkan blok Perbaikan Batas membantu meningkatkan akurasi piksel yang mendekati batas.

Lihat Lebih Dari Sekali - KSAC untuk Segmentasi Semantik

Keluarga Deeplab menggunakan ASPP agar beberapa bidang reseptif menangkap informasi menggunakan tingkat konvolusi atrous yang berbeda. Meskipun ASPP telah berguna secara signifikan dalam meningkatkan segmentasi hasil, ada beberapa masalah yang melekat yang disebabkan karena arsitektur. Tidak ada informasi yang dibagikan di seluruh lapisan paralel yang berbeda dalam ASPP sehingga mempengaruhi kekuatan generalisasi kernel di setiap lapisan. Juga karena setiap lapisan melayani kumpulan sampel pelatihan yang berbeda (objek yang lebih kecil ke kecepatan yang lebih kecil dan objek yang lebih besar ke tingkat yang lebih besar), jumlah data untuk setiap lapisan paralel akan lebih sedikit sehingga mempengaruhi generalisasi keseluruhan. Juga jumlah parameter dalam jaringan meningkat secara linier dengan jumlah parameter dan dengan demikian dapat menyebabkan overfitting.

Sumber: - https://arxiv.org/pdf/1908.09443.pdf

Untuk menangani semua masalah ini, penulis mengusulkan struktur jaringan baru yang disebut Kernel-Sharing Atrous Convolution (KSAC). Seperti dapat dilihat pada gambar di atas, alih-alih memiliki kernel yang berbeda untuk setiap lapisan paralel adalah ASPP, satu kernel dibagikan sehingga meningkatkan kemampuan generalisasi jaringan. Dengan menggunakan KSAC sebagai pengganti ASPP, 62% parameter disimpan saat kecepatan dilatasi 6,12 dan 18 digunakan.

Keuntungan lain menggunakan struktur KSAC adalah jumlah parameter tidak bergantung pada jumlah laju dilasi yang digunakan. Dengan demikian kita dapat menambahkan tarif sebanyak mungkin tanpa menambah ukuran model. ASPP memberikan hasil terbaik dengan tingkat 6,12,18 tetapi akurasi menurun dengan 6,12,18,24 menunjukkan kemungkinan overfitting. Tetapi akurasi KSAC masih meningkat pesat yang menunjukkan kemampuan generalisasi yang ditingkatkan.

Teknik berbagi kernel ini juga dapat dilihat sebagai augmentasi dalam ruang fitur karena kernel yang sama diterapkan pada beberapa tingkat. Mirip dengan bagaimana augmentasi input memberikan hasil yang lebih baik, augmentasi fitur yang dilakukan di jaringan akan membantu meningkatkan kemampuan representasi jaringan.

Segmentasi Video

Untuk kasus penggunaan seperti mobil tanpa pengemudi, robotika, dll., Diperlukan segmentasi waktu nyata pada video yang diamati. Arsitektur yang dibahas sejauh ini dirancang untuk akurasi dan bukan untuk kecepatan. Jadi, jika diterapkan pada basis per frame pada video, hasilnya akan muncul dengan kecepatan yang sangat rendah.

Juga secara umum dalam video ada banyak adegan tumpang tindih di seluruh bingkai yang berurutan yang dapat digunakan untuk meningkatkan hasil dan kecepatan yang tidak akan muncul dalam gambar jika analisis dilakukan pada basis per bingkai. Dengan menggunakan petunjuk ini, mari kita bahas arsitektur yang dirancang khusus untuk video

STFCN

Spatio-Temporal FCN mengusulkan untuk menggunakan FCN bersama dengan LSTM untuk melakukan segmentasi video. Kami sudah mengetahui bagaimana FCN dapat digunakan untuk mengekstrak fitur untuk mensegmentasi gambar. LSTM adalah sejenis jaringan saraf yang dapat menangkap informasi sekuensial dari waktu ke waktu. STFCN menggabungkan kekuatan FCN dengan LSTM untuk menangkap informasi spasial dan informasi temporal

Sumber: - https://arxiv.org/abs/1608.05971

Seperti dapat dilihat dari gambar di atas, STFCN terdiri dari FCN, modul Spatio-temporal diikuti oleh dekonvolusi. Peta fitur yang dihasilkan oleh FCN dikirim ke Spatio-Temporal Module yang juga memiliki masukan dari modul frame sebelumnya. Modul yang didasarkan pada kedua masukan ini menangkap informasi temporal selain informasi spasial dan mengirimkannya yang diambil sampelnya ke ukuran asli gambar menggunakan dekonvolusi yang serupa dengan yang dilakukan di FCN

Karena FCN dan LSTM bekerja sama sebagai bagian dari STFCN, jaringan dapat dilatih dari ujung ke ujung dan mengungguli pendekatan segmentasi bingkai tunggal. Ada pendekatan serupa di mana LSTM digantikan oleh GRU tetapi konsepnya sama dalam menangkap informasi spasial dan temporal

CNN Video Semantik melalui Representation Warping

Makalah ini mengusulkan penggunaan aliran optik melintasi frame yang berdekatan sebagai masukan tambahan untuk meningkatkan hasil segmentasi

Sumber: - https://arxiv.org/abs/1708.03088

Pendekatan yang disarankan dapat dikaitkan dengan arsitektur standar apa pun sebagai plug-in. Bahan utama yang berperan adalah modul NetWarp. Untuk menghitung peta segmentasi, aliran optik antara frame saat ini dan frame sebelumnya dihitung yaitu Ft dan dilewatkan melalui FlowCNN untuk mendapatkan ฮ› (Ft). Proses ini disebut Transformasi Aliran. Nilai ini dilewatkan melalui modul warp yang juga mengambil peta fitur dari lapisan perantara yang dihitung dengan melewati jaringan. Ini memberikan peta fitur yang melengkung yang kemudian digabungkan dengan peta fitur perantara dari lapisan saat ini dan seluruh jaringan dilatih dari ujung ke ujung. Arsitektur ini mencapai hasil SOTA pada set data benchmark video CamVid dan Cityscapes.

Clockwork Convnet untuk Segmentasi Semantik Video

Makalah ini mengusulkan untuk meningkatkan kecepatan eksekusi jaringan saraf untuk tugas segmentasi pada video dengan memanfaatkan fakta bahwa informasi semantik dalam video berubah secara lambat dibandingkan dengan informasi tingkat piksel. Jadi informasi di lapisan akhir berubah dengan kecepatan yang jauh lebih lambat dibandingkan dengan lapisan awal. Makalah ini menyarankan waktu yang berbeda

Sumber: - https://arxiv.org/abs/1608.03609

Gambar di atas menunjukkan perbandingan laju perubahan untuk lapisan tingkat menengah pool4 dan lapisan dalam fc7. Di sebelah kiri kita melihat bahwa karena ada banyak perubahan di seluruh bingkai, kedua lapisan menunjukkan perubahan tetapi perubahan untuk pool4 lebih tinggi. Di sebelah kanan kita melihat bahwa tidak banyak perubahan di seluruh frame. Oleh karena itu pool4 menunjukkan perubahan marginal sedangkan fc7 menunjukkan perubahan hampir nihil.

Penelitian menggunakan konsep ini dan menyarankan bahwa dalam kasus di mana tidak banyak perubahan di seluruh frame, tidak perlu lagi menghitung fitur / output dan nilai yang di-cache dari frame sebelumnya dapat digunakan. Karena laju perubahan bervariasi dengan lapisan, jam yang berbeda dapat disetel untuk kumpulan lapisan yang berbeda. Ketika jam berdetik, keluaran baru dihitung, jika tidak, hasil yang di-cache akan digunakan. Laju detak jam dapat diperbaiki secara statis atau dipelajari secara dinamis

Sumber: - https://arxiv.org/abs/1608.03609

Segmentasi Semantik Video Latensi Rendah

Makalah ini memperbaiki di atas pembahasan di atas dengan secara adaptif memilih frame untuk menghitung peta segmentasi atau menggunakan hasil cache daripada menggunakan timer tetap atau heuristik.

Sumber: - https://arxiv.org/abs/1804.00389

Makalah ini mengusulkan untuk membagi jaringan menjadi 2 bagian, fitur tingkat rendah dan fitur tingkat tinggi. Biaya komputasi fitur tingkat rendah dalam jaringan jauh lebih murah dibandingkan dengan fitur yang lebih tinggi. Hasil penelitian menyarankan untuk menggunakan fitur jaringan tingkat rendah sebagai indikator perubahan peta segmentasi. Dalam pengamatan mereka, mereka menemukan korelasi yang kuat antara perubahan fitur tingkat rendah dan perubahan peta segmentasi. Jadi untuk memahami jika ada kebutuhan untuk menghitung jika fitur yang lebih tinggi diperlukan untuk dihitung, perbedaan fitur yang lebih rendah di 2 bingkai ditemukan dan dibandingkan jika melewati ambang tertentu. Seluruh proses ini diotomatiskan oleh jaringan neural kecil yang tugasnya mengambil fitur yang lebih rendah dari dua bingkai dan memberikan prediksi apakah fitur yang lebih tinggi harus dihitung atau tidak. Karena keputusan jaringan didasarkan pada bingkai masukan, keputusan yang diambil bersifat dinamis dibandingkan dengan pendekatan di atas.

Segmentasi untuk awan titik

Data yang berasal dari sensor seperti lidar disimpan dalam format yang disebut Point Cloud. Point cloud tidak lain adalah kumpulan kumpulan titik data 3d yang tidak berurutan (atau dimensi apa pun). Ini adalah representasi jarang dari adegan dalam 3d dan CNN tidak dapat diterapkan secara langsung dalam kasus seperti itu. Juga setiap arsitektur yang dirancang untuk menangani point cloud harus mempertimbangkan bahwa itu adalah himpunan yang tidak beraturan dan karenanya dapat memiliki banyak kemungkinan permutasi. Jadi jaringan harus invarian permutasi. Juga titik-titik yang ditentukan dalam awan titik dapat dijelaskan dengan jarak di antara mereka. Jadi poin yang lebih dekat pada umumnya membawa informasi yang berguna yang berguna untuk tugas-tugas segmentasi

TitikNet

PointNet adalah makalah penting dalam sejarah penelitian tentang awan titik menggunakan pembelajaran mendalam untuk menyelesaikan tugas-tugas klasifikasi dan segmentasi. Mari kita pelajari arsitektur Pointnet

Sumber: - https://arxiv.org/abs/1612.00593

Input jaringan untuk n poin adalah matriks nx 3. Matriks nx 3 dipetakan ke nx 64 menggunakan lapisan multi-perceptron bersama (jaringan yang terhubung sepenuhnya) yang kemudian dipetakan ke nx 64 dan kemudian ke nx 128 dan nx 1024. Penyatuan maksimum diterapkan untuk mendapatkan vektor 1024 yang dikonversi ke k keluaran dengan melewati MLP dengan ukuran 512, 256 dan k. Akhirnya keluaran kelas k dihasilkan mirip dengan jaringan klasifikasi manapun.

Klasifikasi hanya berhubungan dengan fitur global tetapi segmentasi membutuhkan fitur lokal juga. Jadi fitur lokal dari lapisan menengah di nx 64 digabungkan dengan fitur global untuk mendapatkan matriks anx 1088 yang dikirim melalui mlp dari 512 dan 256 untuk sampai ke nx 256 dan kemudian melalui MLP 128 dan m untuk memberikan kelas keluaran m untuk setiap titik di point cloud.

Juga jaringan melibatkan transformasi input dan transformasi fitur sebagai bagian dari jaringan yang tugasnya adalah tidak mengubah bentuk input tetapi menambahkan invariansi ke transformasi affine yaitu terjemahan, rotasi, dll.

A-CNN

Sumber: - https://arxiv.org/abs/1904.08017

A-CNN mengusulkan penggunaan konvolusi Annular untuk menangkap informasi spasial. Kami tahu dari CNN bahwa operasi konvolusi menangkap informasi lokal yang penting untuk mendapatkan pemahaman tentang gambar. A-CNN merancang konvolusi baru yang disebut konvolusi Annular yang diterapkan pada titik-titik lingkungan di titik-awan.

Arsitektur mengambil sebagai masukan nx 3 poin dan menemukan normals untuk mereka yang digunakan untuk memesan poin. Sebuah subsampel poin diambil dengan menggunakan algoritma FPS yang menghasilkan ni x 3 poin. Pada konvolusi annular ini diterapkan hingga bertambah menjadi 128 dimensi. Konvolusi annular dilakukan pada titik-titik lingkungan yang ditentukan menggunakan algoritma KNN.

Serangkaian operasi di atas dilakukan untuk meningkatkan dimensi menjadi 256. Kemudian mlp diterapkan untuk mengubah dimensi menjadi 1024 dan penggabungan diterapkan untuk mendapatkan vektor global 1024 yang mirip dengan point-cloud. Seluruh bagian ini dianggap pembuat enkode. Untuk klasifikasi, keluaran global encoder dilewatkan melalui mlp untuk mendapatkan keluaran kelas c. Untuk tugas segmentasi, fitur global dan lokal dianggap mirip dengan PointCNN dan kemudian diteruskan melalui MLP untuk mendapatkan keluaran kelas m untuk setiap titik.

Metrik

Mari kita bahas metrik yang umumnya digunakan untuk memahami dan mengevaluasi hasil model.

Akurasi Piksel

Akurasi piksel adalah metrik paling dasar yang dapat digunakan untuk memvalidasi hasil. Akurasi diperoleh dengan mengambil rasio piksel yang diklasifikasikan dengan benar dengan total piksel

Akurasi = (TP + TN) / (TP + TN + FP + FN)

Kerugian utama dari menggunakan teknik seperti itu adalah hasilnya mungkin terlihat bagus jika satu kelas mengalahkan yang lain. Katakanlah misalnya kelas latar belakang mencakup 90% dari gambar input kita bisa mendapatkan akurasi 90% hanya dengan mengklasifikasikan setiap piksel sebagai latar belakang

Persimpangan Atas Persatuan

IOU didefinisikan sebagai rasio persimpangan kebenaran dasar dan keluaran segmentasi yang diprediksi atas penyatuannya. Jika kita menghitung untuk beberapa kelas, IOU setiap kelas dihitung dan meannya diambil. Ini adalah metrik yang lebih baik dibandingkan dengan akurasi piksel karena jika setiap piksel diberikan sebagai latar belakang dalam input 2 kelas, nilai IOU adalah (90/100 + 0/100) / 2 yaitu 45% IOU yang memberikan representasi yang lebih baik dibandingkan dengan 90 % akurasi.

Sumber: - https://www.pyimagesearch.com/2016/11/07/intersection-over-union-iou-for-object-detection

IOU berbobot frekuensi

Ini adalah perpanjangan dari mean IOU yang telah kita diskusikan dan digunakan untuk memerangi ketidakseimbangan kelas. Jika satu kelas mendominasi sebagian besar gambar dalam kumpulan data seperti misalnya latar belakang, itu perlu dipertimbangkan dibandingkan dengan kelas lain. Jadi, alih-alih mengambil mean dari semua hasil kelas, mean tertimbang diambil berdasarkan frekuensi wilayah kelas dalam dataset.

Skor F1

Metrik yang populer digunakan dalam klasifikasi Skor F1 dapat digunakan untuk tugas segmentasi serta untuk menangani ketidakseimbangan kelas.

Sumber: - https://en.wikipedia.org/wiki/F1_score

Presisi Rata-Rata

Area di bawah kurva Precision - Recall untuk ambang yang dipilih Rata-rata IOU pada kelas yang berbeda digunakan untuk memvalidasi hasil.

Fungsi kerugian

Fungsi kerugian digunakan untuk memandu jaringan saraf menuju pengoptimalan. Mari kita bahas beberapa fungsi kerugian populer untuk tugas segmentasi semantik.

Kerugian Entropi Lintas

Rata-rata sederhana kerugian klasifikasi cross-entropy untuk setiap piksel pada gambar dapat digunakan sebagai fungsi keseluruhan. Tapi ini lagi-lagi menderita karena ketidakseimbangan kelas yang diusulkan FCN untuk diperbaiki menggunakan bobot kelas

UNet mencoba untuk memperbaiki hal ini dengan memberikan lebih banyak bobot-usia pada piksel dekat perbatasan yang merupakan bagian dari batas dibandingkan dengan piksel dalam karena ini membuat jaringan lebih fokus pada mengidentifikasi perbatasan dan tidak memberikan keluaran yang kasar.

Kehilangan Fokus

Focal loss dirancang untuk membuat jaringan fokus pada contoh-contoh yang sulit dengan memberikan bobot yang lebih lama dan juga untuk menangani ketidakseimbangan kelas ekstrim yang diamati pada detektor objek satu tahap. Hal yang sama dapat diterapkan dalam tugas segmentasi semantik juga

Kerugian Dadu

Fungsi dadu tidak lain adalah skor F1. Fungsi kerugian ini secara langsung mencoba mengoptimalkan skor F1. Demikian pula, skor IOU langsung dapat digunakan untuk menjalankan pengoptimalan juga

Kekalahan Tversky

Ini adalah varian dari Dice loss yang memberikan bobot berbeda pada FN dan FP

Jarak Hausdorff

Ini adalah teknik yang digunakan untuk mengukur kesamaan antara batas-batas kebenaran dasar dan prediksi. Ini dihitung dengan mencari jarak maksimal dari titik mana pun di satu batas ke titik terdekat di batas lainnya. Mengurangi secara langsung fungsi kehilangan batas adalah tren baru-baru ini dan telah terbukti memberikan hasil yang lebih baik terutama dalam kasus penggunaan seperti segmentasi citra medis di mana mengidentifikasi batas yang tepat memainkan peran kunci.

Keuntungan menggunakan kerugian batas dibandingkan dengan kerugian berbasis wilayah seperti IOU atau Dice Loss adalah tidak terpengaruh oleh ketidakseimbangan kelas karena seluruh wilayah tidak dipertimbangkan untuk pengoptimalan, hanya batas yang dipertimbangkan.

Sumber https://en.wikipedia.org/wiki/Hausdorff_distance

Dua istilah yang dipertimbangkan di sini adalah untuk dua batasan yaitu kebenaran dasar dan prediksi keluaran.

LabelSaya :-

Alat anotasi gambar ditulis dengan python.
Mendukung anotasi poligon.
Open Source dan gratis.
Berjalan di Windows, Mac, Ubuntu atau melalui Anaconda, Docker
Tautan: - https://github.com/wkentaro/labelme

Sumber: - https://github.com/wkentaro/labelme

Alat Anotasi Visi Komputer: -

Alat anotasi video dan gambar yang dikembangkan oleh Intel
Gratis dan tersedia secara online
Berjalan di Windows, Mac dan Ubuntu
Tautan: - https://github.com/opencv/cvat

Anotator gambar VGG: -

Alat anotasi gambar open source gratis
Halaman html sederhana <200kb dan dapat dijalankan secara offline
Mendukung anotasi poligon dan titik.
Tautan: - https://github.com/ox-vgg/via

Sumber: - https://github.com/ox-vgg/via

Rectlabel: -

Alat anotasi berbayar untuk Mac
Dapat menggunakan model ML inti untuk memberi anotasi pada gambar
Mendukung poligon, kubik-bezier, garis, dan titik
Tautan: - https://github.com/ryouchinsa/Rectlabel-support

Kotak label: -

Alat anotasi berbayar
Mendukung alat pena untuk anotasi yang lebih cepat dan akurat
Tautan: - https://labelbox.com/product/image-segmentation

Dataset

Sebagai bagian dari bagian ini, mari kita bahas berbagai kumpulan data populer dan beragam yang tersedia di publik yang dapat digunakan seseorang untuk memulai pelatihan.

Konteks Pascal

Dataset ini merupakan perpanjangan dari dataset Pascal VOC 2010 dan melampaui dataset asli dengan memberikan anotasi untuk keseluruhan adegan dan memiliki 400+ kelas data dunia nyata.

Sumber: - https://cs.stanford.edu/~roozbeh/pascal-context/
Sumber: - https://cs.stanford.edu/~roozbeh/pascal-context/

Tautan: - https://cs.stanford.edu/~roozbeh/pascal-context/

Kumpulan Data COCO

Dataset barang COCO memiliki 164k gambar dari set data COCO asli dengan anotasi tingkat piksel dan merupakan set data tolok ukur umum. Ini mencakup 172 kelas: 80 kelas benda, 91 kelas barang dan 1 kelas 'tanpa label'

Sumber: - http://cocodataset.org/#home

Tautan: - http://cocodataset.org/

Kumpulan Data Pemandangan Kota

Dataset ini terdiri dari kebenaran dasar segmentasi untuk jalan, jalur, kendaraan, dan objek di jalan. Dataset berisi 30 kelas dan 50 kota yang dikumpulkan dari berbagai kondisi lingkungan dan cuaca. Memiliki juga set data video dari gambar yang dianotasi halus yang dapat digunakan untuk segmentasi video. KITTI dan video kamera adalah jenis kumpulan data serupa yang dapat digunakan untuk melatih mobil tanpa pengemudi.

Sumber: - https://www.cityscapes-dataset.com/

Tautan: - https://www.cityscapes-dataset.com/

Lit Dataset

Dataset dibuat sebagai bagian dari tantangan untuk mengidentifikasi lesi tumor dari CT scan hati. Dataset berisi 130 CT scan data pelatihan dan 70 CT scan data pengujian.

Sumber: - https://competitions.codalab.org/competitions/17094

Tautan: - https://competitions.codalab.org/competitions/17094

Set Data CCP

Cloth Co-Parsing adalah dataset yang dibuat sebagai bagian dari makalah penelitian Clothing Co-Parsing dengan Joint Image Segmentation dan Labeling. Dataset berisi 1000+ gambar dengan anotasi tingkat piksel dengan total 59 tag.

Sumber: - https://github.com/bearpaw/clothing-co-parsing

Sumber: - https://github.com/bearpaw/clothing-co-parsing

Set Data Pratheepan

Dataset dibuat untuk tugas segmentasi kulit berdasarkan gambar dari google yang berisi 32 foto wajah dan 46 foto keluarga

Sumber: - http://cs-chan.com/downloads_skin_dataset.html

Tautan: - http://cs-chan.com/downloads_skin_dataset.html

Pelabelan Gambar Udara Inria

Kumpulan data peta segmentasi udara yang dibuat dari gambar domain publik. Memiliki luas cakupan 810 km persegi dan memiliki 2 kelas gedung dan bukan gedung.

Sumber: - https://project.inria.fr/aerialimagelabeling/
Sumber: - https://project.inria.fr/aerialimagelabeling/

Tautan: - https://project.inria.fr/aerialimagelabeling/

S3DIS

Kumpulan data ini berisi awan titik dari enam bagian dalam ruangan berskala besar di 3 bangunan dengan lebih dari 70000 gambar.

Sumber: - http://buildingparser.stanford.edu/dataset.html

Tautan: - http://buildingparser.stanford.edu/dataset.html

Kesimpulan

Kami telah membahas taksonomi dari berbagai algoritma yang dapat digunakan untuk menyelesaikan kasus penggunaan segmentasi semantik baik itu pada gambar, video atau point-cloud dan juga kontribusi dan batasannya. Kami juga mencari cara untuk mengevaluasi hasil dan kumpulan data untuk memulai. Ini harus memberikan pemahaman yang komprehensif tentang segmentasi semantik sebagai topik secara umum.

Untuk mendapatkan daftar sumber daya lainnya untuk segmentasi semantik, mulailah dengan https://github.com/mrgloom/awesome-semantic-segmentation.

Selanjutnya Membaca


Anda mungkin tertarik dengan postingan terbaru kami di:

Update:
Menambahkan bahan bacaan lebih lanjut.

Sumber: https://nanonets.com/blog/semantic-image-segmentation-2020/

Stempel Waktu:

Lebih dari AI & Pembelajaran Mesin