Git Product home page Git Product logo

mot's Introduction

MOT


Build Status codecov.io


Read Latest Documentation - Browse GitHub Code Repository


Project

Welcome to MOT, the garbage detection on river banks github. It is part of a project led by Surfrider Europe, which aims at quantifying plastic pollution in rivers through space and time.

MOT stands for Multi-Object Tracking, as we detect, then track the different plastic trash instances.

The object detection part is based on tensorpack.

Dataset

You can download a training dataset on this link.

Installation

You may run directly the notebook in colab.

For more details on training and inference of the object detection please see the following file which is based on the README of tensorpack.

Classic

To install locally, make sure you have Python 3.3+ and 1.6 <= tensorflow < 2.0

apt install libsm6 libxrender-dev libxext6 libcap-dev ffmpeg
pip3 install --user .

Docker

The following command will build a docker for development and run interactively.

PORT_JUPYTER=22222 PORT_TENSORBOARD=22223 make docker-training

You don't have to specify the ports at the beginning of the command, but do so if you want to assign a specific port to access jupyter notebook and / or tensorboard.

You can add arguments to the docker run command by specifying RUN_ARGS, for example:

RUN_ARGS="-v /srv/data:/srv/data" make docker-training

Do the following command to exec an already running container:

make docker-exec-training

Internal tools

You can launch a jupyter notebook or a tensorboard server by running the command.

./scripts/run_jupyter.sh

or

./scripts/run_tensorboard.sh /path/to/the/model/folders/to/track

Then, access those servers through the ports you used in the Make command.

Train

See the original tensorpack README for more details about the configurations and weights.

python3 -m mot.object_detection.train --load /path/to/pretrained/weights --config DATA.BASEDIR=/path/to/the/dataset --config TODO=SEE_TENSORPACK_README

The next files are pretrained weights on the dataset introduced previously:

The command used to train this model was:

python3 -m mot.object_detection.train --load /path/to/pretrained_weights/COCO-MaskRCNN-R50FPN2x.npz --logdir /path/to/logdir --config DATA.BASEDIR=/path/to/dataset MODE_MASK=False TRAIN.LR_SCHEDULE=250,500,750

Put those files in a folder, which will be /path/to/your/trained/model in the export section.

Export

First, you need to train an object detection model. Then, you can export this model in SavedModel format:

python3 -m mot.object_detection.predict --load /path/to/your/trained/model --serving /path/to/serving --config DATA.BASEDIR=/path/to/the/dataset SAME_CONFIG=AS_TRAINING

The dataset should be the one downloaded following the instructions above. You can also use a folder with only this file inside if you don't want to download the whole dataset. Also remember to use the same config as the one used for training (using FPN.CASCADE=True for instance).

Serving

Refer to this file.

Developpers

Please read the CONTRIBUTING.md

Developper installation

You need to install the repository in dev:

pip install -e ./

The following libraries are needed to run the tests: pytest, pytest-cov

Use with pyenv

pyenv activate my_amazing_surfrider_project
pip install .

Run the tests

  • Within your local environement:
  • To run all the tests:
make tests
  • To run a specific test:
pytest my_file.py::my_function
  • Within a docker environement:
  • To run all the tests:
make docker-tests
  • To run a specific test:
make up-tests
pytest my_file.py::my_function

Status

Model & training:

  • Object detection training

  • Improving train, validation and test dataset

  • Model improvements

  • Connection with dataset to query dataset

  • Tracking model (WIP)

  • test dataset for tracking

Inference and deployment:

  • Object detection inference notebook

  • Inference on video (WIP)

  • Connection with input data and inference

  • Small webserver and API (in local)

  • Docker build and deployment

mot's People

Contributors

anth2o avatar emgarr avatar charlesollion avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.