Home

Awesome

Global Fishing Watch Vessel Classification Pipeline.

Global Fishing Watch is a partnership between Skytruth, Google and Oceana to map all of the trackable commercial fishing activity in the world, in near-real time, and make it accessible to researchers, regulators, decision-makers, and the public.

This repository contains code to build Tensorflow models to classify vessels and identify fishing behavior based on AIS data.

(This is not an official Google Product).

Overview

Use AIS, and possibly VMS data in the future, to extract various types of information including:

The project consists of a convolutional neural networks (CNN) that infers vessel features.

Neural Networks

We have two CNN in production, as well as several experimental nets. One net predict vessel class (longliner, cargo, sailing, etc), as well as vessel length and other vessel parameters, while the second predicts whether a vessel is fishing or not at a given time point.

We initially used a single CNN to predict everything at once, but we've moveed to having two CNN. The original hope was that we would be able to take advantage of transfer learning between the various features. However, we did not see any gains from that, and using a multiple nets adds useful flexibility.

The nets share a similar structure, consisting of a large number (currently 9) of 1-D convolutional layers, followed by a single dense layer. The net for fishing prediction is somewhat more complicated since it must predict fishing at each point. To do this all of the layers of the net are combined, with upscaling of the upper layers, to produce a set of features at each point. These design of these nets incorporates ideas are borrowed from the ResNets and Inception nets, among other places, but adapted for the 1D environment.

The code associated with the neural networks is located in classification. The models themselves are located in classification/models.

Data layout

The data layout is currently in flux as we move data generation to Python-Dataflow managed by Airflow

Common parameters

In order to support the above layout, all our programs need the following common parameters:

Neural Net Classification

Running Stuff

Local Environment Setup