All Projects → dronedeploy → dd-ml-segmentation-benchmark

dronedeploy / dd-ml-segmentation-benchmark

Licence: other
DroneDeploy Machine Learning Segmentation Benchmark

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to dd-ml-segmentation-benchmark

Apc Vision Toolbox
MIT-Princeton Vision Toolbox for the Amazon Picking Challenge 2016 - RGB-D ConvNet-based object segmentation and 6D object pose estimation.
Stars: ✭ 277 (+54.75%)
Mutual labels:  vision, segmentation
SemanticSegmentation-Libtorch
Libtorch Examples
Stars: ✭ 38 (-78.77%)
Mutual labels:  vision, segmentation
Caer
High-performance Vision library in Python. Scale your research, not boilerplate.
Stars: ✭ 452 (+152.51%)
Mutual labels:  vision, segmentation
HRFormer
This is an official implementation of our NeurIPS 2021 paper "HRFormer: High-Resolution Transformer for Dense Prediction".
Stars: ✭ 357 (+99.44%)
Mutual labels:  vision, segmentation
Knn Matting
Source Code for KNN Matting, CVPR 2012 / TPAMI 2013. MATLAB code ready to run. Simple and robust implementation under 40 lines.
Stars: ✭ 130 (-27.37%)
Mutual labels:  vision, segmentation
autonomous-delivery-robot
Repository for Autonomous Delivery Robot project of IvLabs, VNIT
Stars: ✭ 65 (-63.69%)
Mutual labels:  vision
handbook
We're a small high-trust livelihood pod doing tech consulting within Enspiral.
Stars: ✭ 35 (-80.45%)
Mutual labels:  vision
Grocery-Product-Detection
This repository builds a product detection model to recognize products from grocery shelf images.
Stars: ✭ 73 (-59.22%)
Mutual labels:  vision
Learnable-Image-Resizing
TF 2 implementation Learning to Resize Images for Computer Vision Tasks (https://arxiv.org/abs/2103.09950v1).
Stars: ✭ 48 (-73.18%)
Mutual labels:  vision
GIBBON
The Geometry and Image-Based Bioengineering add-On for MATLAB
Stars: ✭ 132 (-26.26%)
Mutual labels:  segmentation
photonvision
PhotonVision is the free, fast, and easy-to-use computer vision solution for the FIRST Robotics Competition.
Stars: ✭ 115 (-35.75%)
Mutual labels:  vision
monodepth
Python ROS depth estimation from RGB image based on code from the paper "High Quality Monocular Depth Estimation via Transfer Learning"
Stars: ✭ 41 (-77.09%)
Mutual labels:  vision
pybv
A lightweight I/O utility for the BrainVision data format, written in Python.
Stars: ✭ 18 (-89.94%)
Mutual labels:  vision
CNN-GoogLeNet
👁 Vision : Model 4: GoogLeNet : Image Classification
Stars: ✭ 17 (-90.5%)
Mutual labels:  vision
frc-score-detection
A program to detect FRC match scores from their livestream.
Stars: ✭ 15 (-91.62%)
Mutual labels:  vision
face age gender
Can we predict the age and gender of someone given a picture of their face ?
Stars: ✭ 40 (-77.65%)
Mutual labels:  vision
nested-transformer
Nested Hierarchical Transformer https://arxiv.org/pdf/2105.12723.pdf
Stars: ✭ 174 (-2.79%)
Mutual labels:  vision
TokenLabeling
Pytorch implementation of "All Tokens Matter: Token Labeling for Training Better Vision Transformers"
Stars: ✭ 385 (+115.08%)
Mutual labels:  vision
res-mlp-pytorch
Implementation of ResMLP, an all MLP solution to image classification, in Pytorch
Stars: ✭ 178 (-0.56%)
Mutual labels:  vision
EfficientMORL
EfficientMORL (ICML'21)
Stars: ✭ 22 (-87.71%)
Mutual labels:  vision

Segmentation Dataset

This repository contains a description of the DroneDeploy Segmentation Dataset and how to use it. It also contains example code to get a working segmentation model up and running quickly using a small sample dataset. See below for details of the full dataset and suggested improvement directions.

Example

Quickstart

Follow these steps to train a model and run inference end-to-end:

git clone https://github.com/dronedeploy/dd-ml-segmentation-benchmark.git
cd dd-ml-segmentation-benchmark
pip3 install -r requirements.txt

# optional: log in to W&B to track your experiements
wandb login

# train a Keras model
python3 main_keras.py

# train a Fastai model
python3 main_fastai.py

This will download the sample dataset and begin training a model. You can monitor training performance on Weights & Biases. Once training is complete, inference will be performed on all test scenes and a number of prediction images with names like 123123_ABCABC-prediction.png will be created in the wandb directory. After the images are created they will be scored, and those scores stored in the predictions directory. Here's what a prediction looks like - not bad for 50 lines of code, but there is a lot of room for improvement:

Example

Dataset Details

The dataset comprises a number of aerial scenes captured from drones. Each scene has a ground resolution of 10 cm per pixel. For each scene there is a corresponding "image", "elevation" and "label". These are located in the images, elevation and labels directories.

The images are RGB TIFFs, the elevations are single channel floating point TIFFs (where each pixel value represents elevation in meters), and finally the labels are PNGs with 7 colors representing the 7 classes (documented below).

In addition please see index.csv - inside the downloaded dataset folder - for a description of the quality of each labelled image and the distribution of the labels.

To use a dataset for training, it must first be converted to chips (see images2chips.py). This will create two directories, images-chips and label-chips, which will contain a number of 300x300 (by default) RGB images. The label-chips are also RGB but will be very low pixel intensities [0 .. 7] so will appear black as first glance. You can use the color2class and category2mask function to switch between the two label representations.

Here is an example of one of the labelled scenes:

Example

Each color represents a different class.

Color (Blue, Green, Red) to Class Name:

(075, 025, 230) : BUILDING
(180, 030, 145) : CLUTTER
(075, 180, 060) : VEGETATION
(048, 130, 245) : WATER
(255, 255, 255) : GROUND
(200, 130, 000) : CAR
(255, 000, 255) : IGNORE
  • IGNORE - These magenta pixels mask areas of missing labels or image boundaries. They can be ignored.

Possible Improvements


The sample implementation is very basic and there is immediate opportunity to experiment with:

  • Data augmentation (datasets_keras.py, datasets_fastai.py)
  • Hyperparameters (train_keras.py, train_fastai.py)
  • Post-processing (inference_keras.py, inference_fastai.py)
  • Chip size (images2chips.py)
  • Model architecture (train_keras.py, train_fastai.py)
  • Elevation tiles are not currently used at all (images2chips.py)
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].