Skip to content

Latest commit

 

History

History
195 lines (146 loc) · 6.25 KB

File metadata and controls

195 lines (146 loc) · 6.25 KB

AgriFieldNet Model for Crop Detection from Satellite Imagery

First place solution of the Zindi AgriFieldNet India Challenge.

Small farms produce about 35% of the world’s food, and are mostly found in low- and middle-income countries. Reliable information about these farms is limited, making support and policy-making difficult. Earth Observation data from satellites such as Sentinel-2, in combination with machine learning, can help improve agricultural monitoring, crop mapping, and disaster risk management for these small farms. The Main goal of this challenge is to classify crop types in agricultural fields across Northern India using multispectral observations from Sentinel-2 satellite. These fields are located in various districts in states of Uttar Pradesh, Rajasthan, Odisha and Bihar.

model_ecaas_agrifieldnet_gold_v1

MLHub model id: model_ecaas_agrifieldnet_gold_v1. Browse on Radiant MLHub.

Training Data

Related MLHub Dataset

AgriFieldNet Competition Dataset

Citation

Muhamed T, Emelike C, Ogundare T, "AgriFieldNet Model for Crop Detection from Satellite Imagery", Version 1.0, Radiant MLHub. [Date Accessed] Radiant MLHub https://doi.org/10.34911/rdnt.k2ft4a

License

CC-BY-4.0

Creators

Contact

Muhamed Tuo [email protected]

Applicable Spatial Extent

The applicable spatial extent, for new inferencing.

{
    "type": "FeatureCollection",
    "features": [
        {
            "properties": {
                "id": "ref_agrifieldnet_competition_v1"
            },
            "type": "Feature",
            "geometry": {
                "type": "MultiPolygon",
                "bbox": [
                    76.2448,
                    18.9414,
                    88.046,
                    28.327
                ],
                "coordinates": [
                    [
                        [
                            [
                                88.046,
                                18.9414
                            ],
                            [
                                88.046,
                                28.327
                            ],
                            [
                                76.2448,
                                28.327
                            ],
                            [
                                76.2448,
                                18.9414
                            ],
                            [
                                88.046,
                                18.9414
                            ]
                        ]
                    ]
                ]
            }
        }
    ]
}
Loading

Applicable Temporal Extent

The recommended start/end date of imagery for new inferencing.

Start End
2022-01-01 present

Learning Approach

  • Supervised

Prediction Type

  • Classification

Models Architecture

  • Gradient Boosting (Catboost, Lightgbm, Xgboost)
  • Unet

Training Operating System

  • Linux

Training Processor Type

Both CPU and GPU.

Models trained on CPU:

  • single-catboost
  • single-xgboost
  • crossval-catboost (40 cores TPU)
  • pixelwise-lightgbm (40 cores TPU)

Models trained on GPU:

  • R-model-catboost
  • pixelwise-catboost
  • fieldwise-catboost
  • pixelwise-unet

Model Inferencing

Review the GitHub repository README to get started running this model for new inferencing.

Training

For the features engineering, we used bands ("B01","B02","B03","B04","B05","B06","B07","B08","B09","B11", "B12") and also calculated a few derived bands using well known formulae.

The following are the derived indices:

  • NDVI (Normalized Green Red Difference Index) : (B08 - B04)/ (B08 + B04)
  • GLI (Green Leaf Index) : (2 * B03 - B04 - B02)/(2 * B03 + B04 + B02)
  • CVI : (Chlorophyll Vegetation Index) : (B08 / B03) * (B04 / B03)
  • SIPI : (B08 - B02) / (B08 - B04)
  • S2REP : 705 + 35 * (((( B07 + B04 ) / 2) - B05 ) / (B06 - B05))
  • CCCI : ((B08 - B05) / (B08 + B05)) / ((B08 - B04) / (B08 + B04))
  • HUE (Overall Hue Index) : atan( 2 * ( B02 - B03 - B04 ) / 30.5 * ( B03 - B04 ))
  • RENDVI : (B06 - B05) / (B06 + B05)
  • RECI (Chlorophyll Index) : ( B08 / B04 ) - 1
  • EVI (Enhanced Vegetation Index) : (2.5 * (B08 - B04) / ((B08 + 6.0 * B04 - 7.5 * B02) + 1.0))
  • EVI2 (Enhanced Vegetation Index 2) : (2.4 * (B08 - B04) / (B08 + B04 + 1.0))
  • NDWI : (B04 - B02) / (B04 + B02)
  • NPCRI : (B03 - B08) / (B03 + B08)

Then we took median and max of the above features. We also calculated the total area percentage of a given field using library FIELDimageR, along with other features like the field tile count, field overlap count, field tile size, field tile height, field tile width.

Model

It consist of 1 Unet + 8 Gradient Boosting Trees.

Structure of Output Data

Each of the models will generate an output file (in csv). If a model is named single-model-agrifield.ext, its corresponding output file will be single-model-agrifield.csv. The final output file (submission.csv) is a weighted geometric mean of all the intermediate output files.

Winning Solution from AgrifieldNet India Challenge

The original solution code is archived in the file: first-place-agrifieldnet-solution.zip. Please note: this repository uses Git Large File Support (LFS) to include this .zip file. Either install git lfs support for your git client, use the official Mac or Windows GitHub client to clone this repository.