Segmentasi Gambar

By | October 23, 2021
Print Friendly, PDF & Email
987 Views

Segmentasi Gambar merupakan langkah awal dalam pengolahan citra digital. Banyak sekali metode yang dikembangkan segmentasi gambar seperti metode statistik biasa ataupun menggunakan teknik thresholding.

Apa itu segmentasi gambar?

Adalah teknik untuk memisahkan antara foreground dengan background, misalkan pada gambar berikut dengan foreground yang diinginkan berupa gambar kucing saja

Teknik segmentasi gambar

Segmentasi gambar adalah pekerjaan yang sangat rumit dan merupakan topik khusus dalam computer vision, ada banyak teknik yang dikembangkan yaitu

  1. thresholding static yaitu dengan cara menentukan nilai ambang batas secara manual
  2. thresholding dinamis yaitu dengan mencari nilai thresholding T menggunakan teknik Otsu

keduanya digunakan dalam mode grayscale, bisa baca lebih lanjut di https://softscients.com/2020/04/03/buku-pengolahan-citra-digital-dengan-matlab-segmentasi/#gsc.tab=0

Jenis Segmentasi gambar

Sebenarnya segmentasi gambar itu sangat luas sekali, karena terbagi menjadi

  1. semantic segmentation
  2. instance segmentation

Bisa kalian lihat perbedaanya sebagai berikut

 

Rumitnya segmentasi gambar

teknik segmentasi gambar akan semakin rumit jika gambar tersebut mempunyai pencahayaan tidak rata bahkan mempunyai variasi warna – true color untuk itu banyak dikembangkan segmentasi gambar melalui teknik dibawah ini

  1. clustering warna, cara mudahnya menggunakan Kmeans Clustering – https://softscients.com/2021/01/17/clustering-color/#gsc.tab=0
  2. atau menggunakan teknik color palletting yaitu mengurangi variasi warna menjadi warna solid – https://softscients.com/2021/04/21/segmentasi-warna-berdasarkan-color-palette/#gsc.tab=0
  3. menggunakan teknik fuzzy c means clustering yang didahului dengan operasi morfologi https://softscients.com/2020/04/03/retina-blood-vessel-segmentation/#gsc.tab=0
  4. teknik watershed bila objek tersebut saling dempet satu sama lain – https://softscients.com/2020/03/30/penerapan-watershed/
See also  OCR di Java

Solusi segmentasi gambar

Begitu sulitnya segmentasi gambar maka ada 2 cara bisa dilakukan yaitu

  1. menggunakan lingkungan terkontrol yang merupakan cara termudah seperti membuat studio box – https://softscients.com/2020/05/19/membuat-studio-mini-untuk-capture-object/#gsc.tab=0 melalui teknik ini, maka cukup dengan thresholding seperti biasa saja hasilnya akan sangat bagus
  2. gunakan background yang seragam usahakan menggunakan warna dop-kusam untuk menyerap cahaya sehingga tidak dipantulkan!
  3. menggunakan algoritma yang robust seperti
    1. Grab cut
    2. Deep Machine Learning seperti Unet Model – https://softscients.com/2021/07/10/implementasi-deep-machine-learning-untuk-segmentasi-gambar/#gsc.tab=0

untuk point 2 diatas membutuhkan pemahaman matematika yang baik serta paham dengan image processing, solusi untuk deep machine learning bisa kalian gunakan PyTorch, Tensorflow atau Java . Sedangkan untuk image processing kalian butuh library khusus seperti OpenCV

Hasil Segmentasi Gambar

Tentu dengan hasil segmentasi gambar yang baik maka akan akan terpisah foreground dan background, Perhatikan gambar berikut – https://softscients.com/2020/05/30/leaf-shape-based-plant-species-recognition/#gsc.tab=0

Ada 2 gambar yaitu kiri dan kanan

  1. gambar kiri adalah gambar asli
  2. gambar kanan adalah gambar hasil segmentasi, biasanya disebut dengan masking image yaitu terdiri dari 2 warna saja hitam dan putih
    1. putih adalah ROI – region of interest
    2. hitam adalah background

Area ROI yang akan dihitung pixel nya sedangkan warna background nya diabaikan! pada contoh dibawah ini, metode thresholding tidak akan berhasil dengan baik! karena distribusi pixel yang beragam! Kalian butuh teknik khusus, cara paling mudah yaitu algoritma grab cut

 

Berikut proses segmentasi menggunakan grabcut (dibagian paling kanan sengaja diberi warna merah untuk memastikan bahwa pixel yang dihitung adalah bagian daun saja)

Pengaruh Segmentasi Gambar pada hasil ciri fitur

Segmentasi gambar bertujuan untuk memisahkan antara foreground dan background. Kegunaan tersebut untuk meningkatkan akurasi perhitungan yang fokus pada ROI – region of interest saja.

See also  Mengolah Data Tabular Java

Saya ambil contoh dari https://www.researchgate.net/figure/Sample-of-dataset-images-used-as-a-Healthy-Golden-Delicious-b-Defected-Golden-Delicious-c_fig3_341876547

Ataupun dari https://www.kaggle.com/moltean/fruits, kita lihat hasilnya antara perhitungan mean Pixel RGB dengan tanpa ROI dan ROI.  Perhatikan gambar dibawah ini mempunyai ukuran yaitu 170 x 197 = 33490

Hitung nilai Pixel

Kita akan hitung mean pixel nya yaitu dengan

  1. menghitung seluruh gambar tanpa melihat background –> TANPA ROI
  2. hanya menghitung objek ROI yaitu buah apel saja dan mengabaikan nilai pixel background –> dengan ROI

Tentu hasil TANPA ROI berbeda dengan yang menggunakan ROI, gambar diatas saya perlihatkan proses dibalik layar yaitu mask_image digunakan untuk menandakan pixel yang harus dihitung dan yang tidak. Area hitam tidak akan dihitung!

  1. jumlah pixel tanpa ROI: 33490
  2. jumlah pixel dengan ROI: 13316

dengan ROI (karena objeknya kecil) maka TOTAL PIXEL nya pun lebih sedikit daripada yang TANPA ROI

Kesimpulan Hasil

Mengingat perbedaan yang jauh hasil antara TANPA ROI dan ROI, maka kalian harus hati-hati dalam mengolah gambar terutama untuk proses segmentasi gambar. Sebagai referensinya, saya menggunakan bahasa java dan openCV untuk melakukan proses diatas.

Proses Segmentasi

Ada banyak sekali paper yang membahas mengenai segmentasi – https://link.springer.com/article/10.1007/s40595-014-0028-3. Namun rata2 banyak yang gagal! alias tidak sempurna

Tapi dengan teknik yang tepat, maka hasil segmentasi bisa lebih baik

Berikut teknik yang saya gunakan menghasikan segmentasi yang baik

Referensi

https://www.ijert.org/research/Fruit-Recognition-using-Image-Processing-IJERTCONV7IS08102.pdf

Leave a Reply

Your email address will not be published.




Enter Captcha Here :