My note about segmentation from previous available tutorial.
I reproduce the code from the main reference:
https://towardsdatascience.com/efficient-image-segmentation-using-pytorch-part-1-89e8297a0923
additional reference:
https://www.v7labs.com/blog/image-segmentation-guide
https://setosa.io/ev/image-kernels/
https://www.robots.ox.ac.uk/~vgg/data/pets/
https://towardsdatascience.com/a-basic-introduction-to-separable-convolutions-b99ec3102728
Image segmentation is a technique to isolate pixels belonging to specific objects in an image.
Image segmentation partitions/segments : Objects. Backgrounds, and Boundaries. Image segmentation extends image classification by outlining the object's boundary to pinpoint the corresponding object. There are three types of segmentation:
- Semantic Segmentation
- Instance Segmentation
- Panoptic Segmentation
## Dataset
The daset used in this repo is from [The Oxford-IIIT Pet Dataset](https://www.kaggle.com/datasets/julinmaloof/the-oxfordiiit-pet-dataset) . After being annnotated the image became a trimap image. Which is an image with 3 scaled value with respect to the object, boundaries, and background.
The trimap image is used as the segmentation target.
## Convolution
An image kernel is a small matrix used in machine learning for 'feature extraction', a technique for determining the most important portions of an image. The process known as convolution.
## Depth-wise Separable Convolution