Design and implementation of Image Processing segmentation techniques and algorithms for oil spill detection on SAR images
I'm a computer science Master's Degree student and this is one of my university project. See my other projects here on GitHub!
- The project consists in the designing and implementation of Image Processing techniques and algorithms used for the detection and segmentation of oil spills on SAR (Synthetic Aperture Radar) images
- To verify the correctness and the precision of these implemented methods, our segmented images have been compared to the ground truth masks in the dataset used in this article
- Ground truth masks are divided into 5 different classes, each with a specific RGB color: cyan for the oil spills, red for look-alikes, brown for ships, green for land and black for sea surface.
- In this work the produced masks have only three RGB colors: black for sea surface, green for lands and cyan for oil spills.
- Different image segmentation techniques have been implemented to compare various approaches, their segmentation effectiveness, their execution times, and their behavior with different types of images (different light conditions, different noise, etc..)
- Thresholding segmentation
- Manual Thresholding
- Automatic Thresholding
- Local Adaptive Thresholding
- Superpixel approach
- Fuzzy Logic approach
- K-means clustering
- Land masking
-
The used SAR dataset is composed of two types of images: images with only sea surface and one or multiple oil spills and images with lands, sea, and oil spills. In this work two different approaches were followed based on the type of image analyzed:
- Images with land and sea are analyzed by using two methods: an automatic thresholding method and a k-means clustering approach
- Images with only sea and oil spills are instead analyzed using four different approaches: a thresholding method, with three different thresholding variants (manual, automatic and a local adaptive threshold), a superpixel approach, an edge detection of oil spills through a Fuzzy Logic approach and k-means clustering to identify similar regions and create the oil spill segmentation mask.
-
Different image enhancement techniques like median or Wiener filters and histogram equalization techniques have been used.
-
Lots of algorithms used (like the superpixels technique) have a final phase of dark spot feature extraction to select, between all the extracted blobs, only those who satisfy some conditions to create the final binary mask.
-
For k-means clustering also a visual representation with different colors for every cluster is provided.
-
Every segmentation produced by the implemented methods in this work are evaluated both qualitatively by comparing the ground truth and the final segmented images, and quantitatively by using three different evaluation metrics: Jaccard Index, Sørensen-Dice similarity and BF score.
-
For every computed metric a comparison between segmentation results and the ground truth is shown (three colors are used: green stands for the ground truth, white represents all our segmentation results that match correctly the ground truth area and violet stands for all our segmentation results which are not present in the ground truth label).
- These three indices are a good starting point to evaluate the goodness of segmentation methods used, but during the development of this project, lots of times have been seen that also ground truth mask have exaggeratedly large borders with respect to the original SAR image, in particular for oil spills, so together with this evaluation parameters, also a final image representing the original SAR image with the overlapped segmentation mask has been produced, to qualitatively judge too the segmentation results.
- Obviously, some methods are better than others and this depends on the image quality, the presence of noise, the total brightness of the image, the overall contrast, etc., but the user can modify some parameters for every method to improve segmentation results.
- To understand better the code of this segmentation project please see the code explanation file.
For any support, error corrections, etc. please email me at [email protected]