Oil spill Cleanup Through An Optimized Pragmatic Automated System
An Autonomous Oil Spill Cleanup & Analysis System
Marine oil spills are an environmental catastrophe, with over 15,000 tonnes of crude oil spilled annually. Traditional cleanup methods are slow, manually intensive, and often inefficient, struggling to adapt to the dynamic nature of a spill.
OCTOPAS is a two-part system designed to revolutionize oil spill response. It combines a physical autonomous surface vessel (ASV) with a sophisticated computer vision software brain to identify, map, and coordinate cleanup with maximum efficiency.
The system begins with an aerial image of the spill. This image is scaled and converted to the HSV color space to make the oil distinct regardless of lighting.
Using Scikit-learn, the system clusters pixels to automatically segment the image into "oil" and "water" without manual thresholding.
OpenCV calculates the convex hull of the oil patch to determine the most efficient path for the containment boom to encircle the spill.
class oilSpillImage:
def findOil(self, img, number=2):
# Convert image to HSV and normalize
img = cv.cvtColor(img, cv.COLOR_BGR2HSV) / 255
h, w, c = img.shape
img2 = img.reshape(h * w, c)
# Quantize to N colors using K-Means clustering
kmeans_cluster = cluster.KMeans(n_clusters=number)
kmeans_cluster.fit(img2)
# Reshape image back to original dimensions
img3 = cluster_centers[cluster_labels].reshape(h, w, c) * 255
return img3.astype('uint8')
def makePerimeters(self, real_img, reduced_img):
# Create a single, unified hull around all detected spills
all_points = np.vstack(oil_contours)
unified_hull = cv.convexHull(all_points)
cv.drawContours(real_img, [unified_hull], -1, (165, 255, 0), 4)
return real_img
The OCTOPAS system demonstrated a 220% improvement in cleanup efficiency over conventional manual methods in simulated environments.
View Full Publication