StarDist a deep learning based 2D and 3D object detection
Salah satu tantang menarik dalam computer vision yaitu semantic dan instance segmentation. Biasanya untuk tugas tersebut menggunakan model YOLO-7/detectron atau Mask R-CNN. Semantic Segmentation: Semantic segmentation adalah tugas computer vision yang bertujuan untuk memahami dan memetakan setiap piksel dalam gambar ke kelas atau kategori yang tepat. Dalam konteks ini, “semantik” mengacu pada makna atau interpretasi yang ada di balik piksel-piksel tersebut. Dalam semantic segmentation, setiap piksel diberi label dengan kelas atau kategori yang sesuai, seperti manusia, mobil, jalan, bangunan, atau objek lainnya.
Tujuan utama dari semantic segmentation adalah untuk memahami struktur dan konten visual dalam gambar. Misalnya, dengan menggunakan semantic segmentation pada gambar jalan raya, kita dapat mengidentifikasi lokasi jalan, trotoar, kendaraan, pejalan kaki, dan elemen-elemen lainnya dengan memberikan label kelas yang tepat pada setiap piksel.
Instance Segmentation: Instance segmentation juga merupakan tugas computer vision yang serupa dengan semantic segmentation, tetapi dengan tingkat detail yang lebih tinggi. Tujuan instance segmentation adalah untuk mengidentifikasi dan memisahkan setiap objek individu dalam gambar, serta memberikan label yang berbeda untuk setiap instansinya.
Dalam instance segmentation, selain memberikan label kelas pada setiap piksel, kita juga memberikan label unik untuk setiap objek individual yang ada dalam gambar. Misalnya, jika ada beberapa mobil dalam gambar, instance segmentation akan memberikan label yang berbeda pada setiap mobil sehingga kita dapat membedakan mobil-mobil tersebut.
Instance segmentation memungkinkan kita untuk mengenali dan melacak setiap objek secara terpisah dalam suatu gambar, dan ini sangat berguna dalam berbagai aplikasi seperti deteksi objek, pelacakan objek, dan pemahaman konten visual yang lebih detail.
Jadi, perbedaan utama antara semantic segmentation dan instance segmentation adalah bahwa semantic segmentation bertujuan untuk memberikan label kelas pada setiap piksel dalam gambar, sedangkan instance segmentation memberikan label yang berbeda untuk setiap objek individual yang ditemukan dalam gambar. ref: https://manipulation.csail.mit.edu/segmentation.html
Setelah searching sana-sini dibeberapa forum agar menggunakan StarDist. Stardist – StarDist, a deep learning based 2D and 3D object detection method with star-convex shapes. Menariknya pengembang tersebut juga melengkapi dengan tools untuk membuat annotasi https://github.com/stardist/stardist-napari
Bahkan pihak pengembang membuat plugin untuk ImageJ https://github.com/stardist/stardist-imagej
Bila kalian tertarik menerapkan algoritma tersebut untuk kasus yang lain, kalian bisa pelajari code di https://github.com/stardist/stardist
Tutorial Mask RCNN
Tapi bagi kalian yang masih tertarik menggunakan Mask R-CNN, kalian bisa pelajari kode secara singkat mengenai training dan testing nya di https://towardsdatascience.com/train-mask-rcnn-net-for-object-detection-in-60-lines-of-code-9b6bbff292c3 dengan github nya https://github.com/sagieppel/Train_Mask-RCNN-for-object-detection-in_In_60_Lines-of-Code/blob/main/train.py
Oiya kalian harus sedikit mengubah kode nya agar bisa melakukan training dengan file yang banyak karena kita akan kesulitan kalau menggunakan dataloader (nanti saya akan bahas tersendiri)
Paper original nya di https://drive.google.com/viewerng/viewer?url=https://arxiv.org/pdf/1703.06870.pdf
Atau kalian bisa belajari di pytroch https://pytorch.org/tutorials/intermediate/torchvision_tutorial.html