Artisanal and Small Mine Detection


See how we developed a machine learning software to stop environmental destruction through illegal mines, based on satellite data and object detection.

Input

Satellite images

Output

Location and extent of gold mines

Goal

Provide timely information on artisanal gold mining


Introduction


Unregulated small-scale mining is responsible for 10% of global gold production and is considered problematic in terms of environmental damage and lack of labour protection. Efficient monitoring of these activities is possible with the help of satellite imagery. In this ESA-funded research project, we have developed an algorithm that detects gold mines in rainforest areas.


Starting Point


Artisanal and small-scale gold mining (ASGM) is associated with low environmental and work safety standards. It has an estimated market value of US $14bn. ASGM sites are...

  • located in more than 80 developing countries

  • affecting the lives of 10 to 20 million miners and their families

  • responsible for large amounts of deforestation

  • accounting for 10% of global gold production

Obtaining timely data on the location and extent of ASM in their respective region of interest is important for governmental agencies, NGOs and researchers. It would enable them to enforce concession rights and labour legislation or to research migration patterns.

As this requires vast areas to be monitored, satellite imagery is best suitable for the task. dida, together with MRE at RWTH Aachen, is developing ASMSpotter, a computer vision tool to automatically detect ASM sites in satellite images.


Challenges


The most important part of any machine learning project is a large and good-quality training data set. To this end, we had access to PlanetScope, a high-resolution satellite system operated by Planet Labs. In order to create a data set that is useful for a machine learning algorithm, we had to annotate these satellite images. Identifying the mines is not always easy, since they can be hard to discern from e.g. a dead arm of a river.

Since our area of interest (AOI) is in the tropics, cloud-free images can be scarce, but there are methods to combine several images over time to obtain a cloud-free image of the AOI.


Solution


Data collection

A mining expert from our partner at RWTH Aachen was in charge of the labelling. For the prototype, we limited the area of interest to the northeast of Suriname. This area was selected because it is representative of many regions where ASM sites are found.

PlanetScope was the primary satellite constellation, as it provides one of the highest resolutions available (approx. 5m/px). At the moment, we are working on achieving the same performance on the open-access, but lower-resolution data from the Sentinel-2 satellites.

Algorithm

Our algorithm of choice is a deep neural network with an architecture based on the U-Net. ASMSpotter can be run locally to analyze PlanetScope or Sentinel-2 images provided by the user. In a future stage of the project, ASMSpotter will be developed into a cloud service, which analyzes satellite images upon request or can be configured to continuously monitor a given AOI.


Technical Background


Data collection

Our partner at MRE labelled approximately 100 Planet Scope images. For this project, a single mining expert was in charge of the labelling. For the prototype, we limited the AOI to the northeast of Suriname. This area was selected because it is representative of many regions where ASM sites are found. The region is located in the Amazonian Rainforest and hydraulic mining is the dominant method for gold mining. Planet Scope was the primary satellite constellation, as it provides one of the highest resolutions available (approx. 5m/px). Sentinel-2 was also successfully tested but was not the primary focus of this study.

The labelling was conducted using LabelBox. We did not label on the full image, but rather on a gray-scale depiction of the normalized difference water index (NDWI). Planet Scope has four channels (RGB+NIR). The NDWI is computed as

$$NDWI = \frac{G - NIR}{G + NIR}$$

and it highlights areas of large water content. The NDWI is appended to the Planet Scope images as a fifth channel. The normalized difference vegetation index (NDVI) is computed as

$$NDVI = \frac{NIR - R}{NIR + R}$$

and highlights vegetation in the images. It is appended as the sixth channel to the input data.

Technologies used

Backend: Python, PyTorch, Numpy, Matplotlib, Requests, geopandas, rasterio, geojson, Sentinelsat
Infrastructure: GCloud (Training + storage), Git, DVC

Related projects