All Projects → rhammell → shipsnet-detector

rhammell / shipsnet-detector

Licence: other
Detect container ships in Planet imagery using machine learning

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to shipsnet-detector

land-cover-to-land-use-classification
Satellite image processing pipeline to classify land-cover and land-use
Stars: ✭ 64 (+113.33%)
Mutual labels:  remote-sensing, satellite-imagery
Landsat578
Very simple API to download Landsat [1-5, 7, 8] data from Google
Stars: ✭ 54 (+80%)
Mutual labels:  remote-sensing, satellite-imagery
lightweight-temporal-attention-pytorch
A PyTorch implementation of the Light Temporal Attention Encoder (L-TAE) for satellite image time series. classification
Stars: ✭ 43 (+43.33%)
Mutual labels:  remote-sensing, satellite-imagery
sentinel-util
A CLI for downloading, processing, and making a mosaic from Sentinel-1, -2 and -3 data
Stars: ✭ 22 (-26.67%)
Mutual labels:  remote-sensing, satellite-imagery
spyndex
Awesome Spectral Indices in Python.
Stars: ✭ 56 (+86.67%)
Mutual labels:  remote-sensing, satellite-imagery
GoogleEarthEngine-side-projects
Google Earth Engine side projects and tutorial scripts
Stars: ✭ 23 (-23.33%)
Mutual labels:  remote-sensing, satellite-imagery
Start maja
To process a Sentinel-2 time series with MAJA cloud detection and atmospheric correction processor
Stars: ✭ 47 (+56.67%)
Mutual labels:  remote-sensing, satellite-imagery
ChangeFormer
Official PyTorch implementation of our IGARSS'22 paper: A Transformer-Based Siamese Network for Change Detection
Stars: ✭ 220 (+633.33%)
Mutual labels:  remote-sensing, satellite-imagery
ee extra
A ninja python package that unifies the Google Earth Engine ecosystem.
Stars: ✭ 42 (+40%)
Mutual labels:  remote-sensing, satellite-imagery
awesome-spectral-indices
A ready-to-use curated list of Spectral Indices for Remote Sensing applications.
Stars: ✭ 357 (+1090%)
Mutual labels:  remote-sensing, satellite-imagery
xarray-sentinel
Xarray backend to Copernicus Sentinel-1 satellite data products
Stars: ✭ 189 (+530%)
Mutual labels:  remote-sensing, satellite-imagery
geoblaze
Blazing Fast JavaScript Raster Processing Engine
Stars: ✭ 80 (+166.67%)
Mutual labels:  remote-sensing, satellite-imagery
deck.gl-raster
deck.gl layers and WebGL modules for client-side satellite imagery analysis
Stars: ✭ 60 (+100%)
Mutual labels:  remote-sensing, satellite-imagery
eemont
A python package that extends Google Earth Engine.
Stars: ✭ 290 (+866.67%)
Mutual labels:  remote-sensing, satellite-imagery
3D-PV-Locator
Repo for "3D-PV-Locator: Large-scale detection of rooftop-mounted photovoltaic systems in 3D" based on Applied Energy publication.
Stars: ✭ 35 (+16.67%)
Mutual labels:  remote-sensing, satellite-imagery
Python-for-Remote-Sensing
python codes for remote sensing applications will be uploaded here. I will try to teach everything I learn during my projects in here.
Stars: ✭ 20 (-33.33%)
Mutual labels:  remote-sensing, satellite-imagery
sits
Satellite image time series in R
Stars: ✭ 342 (+1040%)
Mutual labels:  remote-sensing, satellite-imagery
satellite-crosswalk-classification
Deep Learning Based Large-Scale Automatic Satellite Crosswalk Classification (GRSL, 2017)
Stars: ✭ 18 (-40%)
Mutual labels:  remote-sensing, satellite-imagery
eodag
Earth Observation Data Access Gateway
Stars: ✭ 183 (+510%)
Mutual labels:  remote-sensing, satellite-imagery
dea-coastlines
Extracting tidally-constrained annual shorelines and robust rates of coastal change from freely available Earth observation data at continental scale
Stars: ✭ 24 (-20%)
Mutual labels:  remote-sensing, satellite-imagery

shipsnet-detector

This repository contains scripts that enable the automatic detection of container ships in Planet imagery using machine learning techniques. Included are files which define a machine learning model, train it using the ShipsNet dataset, and apply it across an entire image scene to highlight ship detections.

Methodology

ShipsNet is a labeled training dataset consiting of image chips extracted from Planet satellite imagery. It contains hundreds of 80x80 pixel RGB image chips labeled with either a "ship" or "no-ship" classification. Machine learning models can be trained against this data to classify any given input chip into either one of these classes.

With an accurately trained model, this classification process can be extended to a full Planet image scene by using a sliding window technique. A 80x80 pixel window is moved across each pixel position in the image, extracted, and classified by the model. Neighboring window poistions that are classified as "ship" are then clustered into a single detection. These detections are highlighted with a bounding box in a copy of the original Planet scene.

See an example of the results below.

Additional Results

Setup

Python 3.5+ is required for compatability with all required modules

# Clone this repository
git clone https://github.com/rhammell/shipsnet-detector.git

# Go into the repository
cd shipsnet-detector

# Install required modules
pip install -r requirements.txt

Model

A convolutional neural network (CNN) is defined within the model.py module using the TFLearn library. This model supports the 80x80x3 input dimensions of the ShipsNet image data.

Training

The defined CNN can be trained with the JSON version of the ShipsNet dataset and saved to a Tensorflow .tfl file for later use. Train the model by running train.py and passing the path to shipsnet.json and the path to the output .tfl file as arguments.

# Train the model
mkdir models
python train.py "shipsnet.json" "models/model.tfl"

The latest version of shipsnet.json is available through the ShipsNet Kaggle page, which has further information describing the dataset layout.

Detector

A trained model can be applied across entire images using the sliding window detector function detector.py, which takes the model file path, input image path, and optional output image path as arguments. The output image will cluster positive detections and draw a bounding box around their center point.

Example images are contained in the scenes directory.

# Run on demo image with default output path
python detector.py "models/model.tfl" "scenes/scene_1.png"

# Run on demo image with defined output path
python detector.py "models/model.tfl" "scenes/scene_1.png" "scenes/scene_1_detections.png"
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].