All Projects → chrieke → Instancesegmentation_sentinel2

chrieke / Instancesegmentation_sentinel2

🌱 Deep Learning for Instance Segmentation of Agricultural Fields - Master thesis

Projects that are alternatives of or similar to Instancesegmentation sentinel2

Notebooks
interactive notebooks from Planet Engineering
Stars: ✭ 339 (+64.56%)
Mutual labels:  jupyter-notebook, remote-sensing, satellite-imagery
Awesome Satellite Imagery Datasets
🛰️ List of satellite image training datasets with annotations for computer vision and deep learning
Stars: ✭ 2,447 (+1087.86%)
Mutual labels:  instance-segmentation, remote-sensing, satellite-imagery
Earthengine Py Notebooks
A collection of 360+ Jupyter Python notebook examples for using Google Earth Engine with interactive mapping
Stars: ✭ 807 (+291.75%)
Mutual labels:  jupyter-notebook, remote-sensing
Geemap
A Python package for interactive mapping with Google Earth Engine, ipyleaflet, and folium
Stars: ✭ 959 (+365.53%)
Mutual labels:  jupyter-notebook, remote-sensing
Classification Of Hyperspectral Image
Classification of the Hyperspectral Image Indian Pines with Convolutional Neural Network
Stars: ✭ 93 (-54.85%)
Mutual labels:  jupyter-notebook, remote-sensing
Detectorch
Detectorch - detectron for PyTorch
Stars: ✭ 566 (+174.76%)
Mutual labels:  jupyter-notebook, instance-segmentation
Sentinelsat
Search and download Copernicus Sentinel satellite images
Stars: ✭ 576 (+179.61%)
Mutual labels:  remote-sensing, satellite-imagery
Spacenet building detection
Project to train/test convolutional neural networks to extract buildings from SpaceNet satellite imageries.
Stars: ✭ 83 (-59.71%)
Mutual labels:  jupyter-notebook, satellite-imagery
S2p
Satellite Stereo Pipeline
Stars: ✭ 136 (-33.98%)
Mutual labels:  remote-sensing, satellite-imagery
Copy Paste Aug
Copy-paste augmentation for segmentation and detection tasks
Stars: ✭ 132 (-35.92%)
Mutual labels:  jupyter-notebook, instance-segmentation
Tfvos
Semi-Supervised Video Object Segmentation (VOS) with Tensorflow. Includes implementation of *MaskRNN: Instance Level Video Object Segmentation (NIPS 2017)* as part of the NIPS Paper Implementation Challenge.
Stars: ✭ 151 (-26.7%)
Mutual labels:  jupyter-notebook, instance-segmentation
Ternausnetv2
TernausNetV2: Fully Convolutional Network for Instance Segmentation
Stars: ✭ 521 (+152.91%)
Mutual labels:  jupyter-notebook, satellite-imagery
Deepnetsforeo
Deep networks for Earth Observation
Stars: ✭ 393 (+90.78%)
Mutual labels:  jupyter-notebook, remote-sensing
Polyrnn Pp
Inference Code for Polygon-RNN++ (CVPR 2018)
Stars: ✭ 704 (+241.75%)
Mutual labels:  jupyter-notebook, instance-segmentation
Label Maker
Data Preparation for Satellite Machine Learning
Stars: ✭ 377 (+83.01%)
Mutual labels:  remote-sensing, satellite-imagery
Satellite imagery analysis
Implementation of different techniques to find insights from the satellite data using Python.
Stars: ✭ 31 (-84.95%)
Mutual labels:  jupyter-notebook, satellite-imagery
Autocrop
😌 Automatically detects and crops faces from batches of pictures.
Stars: ✭ 320 (+55.34%)
Mutual labels:  jupyter-notebook, crop
Dota Doai
This repo is the codebase for our team to participate in DOTA related competitions, including rotation and horizontal detection.
Stars: ✭ 326 (+58.25%)
Mutual labels:  jupyter-notebook, remote-sensing
Modistsp
An "R" package for automatic download and preprocessing of MODIS Land Products Time Series
Stars: ✭ 118 (-42.72%)
Mutual labels:  remote-sensing, satellite-imagery
Geetools Code Editor
A set of tools to use in Google Earth Engine Code Editor (JavaScript)
Stars: ✭ 157 (-23.79%)
Mutual labels:  remote-sensing, satellite-imagery

Deep Learning for Instance Segmentation of Agricultural Fields - Master thesis

Abstract

This thesis aims to delineate agricultural field parcels from satellite images via deep learning instance segmentation. Manual delineation is accurate but time consuming, and many automated approaches with traditional image segmentation techniques struggle to capture the variety of possible field appearances. Deep learning has proven to be successful in various computer vision tasks, and might be a good candidate to enable accurate, performant and generalizable delineation of agricultural fields. Here, a fully convolutional instance segmentation architecture (adapted from Li et al., 2016), was trained on Sentinel-2 image data and corresponding agricultural field polygons from Denmark. In contrast to many other approaches, the model operates on raw RGB images without significant pre- and post-processing. After training, the model proved successful in predicting field boundaries on held-out image chips. The results generalize across different field sizes, shapes and other properties, but show characteristic problems in some cases. In a second experiment, the model was trained to simultaneously predict the crop type of the field instance. Performance in this setting was significantly worse. Many fields were correctly delineated, but the wrong crop class was predicted. Overall, the results are promising and prove the validity of the deep learning approach. Also, the methodology offers many directions for future improvement.

Results

Instructions

1. Installation FCIS & MXNet

Install the FCIS model and MXNet framework according to the instructions in the FCIS repository. The setup works well with an AWS EC2 P2 instance and the official AWS Deep Learning AMI (Ubuntu). Make sure that the installations were successfull by running the FCIS demo:

> python FCIS/fcis/demo.py

2. Data Preprocessing

Follow the instructions and run the code in the Preprocessing Jupyter notebook. This will prepare the Denmark LPIS field data and create the image chips and COCO format annotations. When finished, place the preprocessed vector folder .output/preprocessing/annotations and image folder .output/preprocessing/images in .FCIS/data/coco.

3. Configuration

Place the configuration file .model/resnet_v1_101_coco_fcis_end2end_ohem.yaml in .FCIS/experiments/fcis/cfgs. A more detailed description of the model and training parameters used for the thesis is given in thesis chapter 3.3. Then delete the annotations cache (neccessary each time you change a configuration parameter that could influence the model evaluation or training):

> rm -rf .FCIS/data/coco/annotations_cache/; rm -rf .FCIS/data/cache/COCOMask/  

4. Model Evaluation

Runs the prediction/model evaluation task via the model trained in the thesis. First move the folder containing the model .model/resnet_v1_101_coco_fcis_end2end_ohem to FCIS/output/fcis/coco/resnet_v1_101_coco_fcis_end2end_ohem. Then run the evaluation:

> python experiments/fcis/fcis_end2end_test.py --cfg experiments/fcis/cfgs/resnet_v1_101_coco_fcis_end2end_ohem.yaml --ignore_cache

The resulting instance segmentation and object detection proposals will be saved to FCIS/output/fcis/coco/resnet_v1_101_coco_fcis_end2end_ohem/val2016/detections_val2016_results.json.

5. Custom Model Training

You can carry out your own model training with custom configurations or datasets.

First adjust the PIXEL_MEANS values in the configuration file to the RGB channels means of your dataset (The band means are saved to .output/preprocessed/statistics.json during the preprocessing).

Delete existing model files:

> rm -rf /home/ubuntu/FCIS/output/fcis/coco/resnet_v1_101_coco_fcis_end2end_ohem/

Finally, run the training task:

> python experiments/fcis/fcis_end2end_train_test.py --cfg experiments/fcis/cfgs/resnet_v1_101_coco_fcis_end2end_ohem.yaml
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].