Delineate Anything: Resolution-Agnostic Field Boundary Delineation on Satellite Imagery

December 3, 2025 ยท View on GitHub

intro

by Mykola Lavreniuk, Nataliia Kussul, Andrii Shelestov, Bohdan Yailymov, Yevhenii Salii, Volodymyr Kuzin, Zoltan Szantoi

Delineate Anything is a resolution-agnostic deep learning framework for accurate agricultural field boundary detection from satellite imagery. Trained on the 22M+ instances in the FBIS-22M dataset, Delineate Anything sets a new SOTA by accurately delineating individual agricultural field boundaries across diverse satellite resolutions and geographic regions.

intro

News

  • 2025/11/17: New paper published Delineate Anything Flow: Fast, Country-Level Field Boundary Detection from Any Source arXiv:2511.13417.
  • 2025/09/07: ๐Ÿš€๐Ÿš€๐Ÿš€ Autobounds released for convenient field boundary detection with Delineate-Anything, directly in the browser!
    ๐Ÿ‘‰ Demo Video | Live App.
  • 2025/08/30: ๐Ÿš€๐Ÿš€ Our paper on Delineate-Anything accepted at ECAI 2025 ๐ŸŽ‰.
  • 2025/07/07: ๐Ÿš€ Delineate-Anything integrated into the TorchGeo library.

๐Ÿ”— Pre-trained Models

MethodmAP@0.5mAP@0.5:0.95Latency (ms)SizeDownload
Delineate Anything S0.6320.38316.817.6 MBDownload
Delineate Anything0.7200.47725.0125 MBDownload

โš™๏ธ Environment Setup

To set up the environment on a Linux system:

mkdir -p ~/miniconda3
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda3/miniconda.sh
bash ~/miniconda3/miniconda.sh -b -u -p ~/miniconda3
rm ~/miniconda3/miniconda.sh

source ~/miniconda3/bin/activate
conda install -c conda-forge gdal

# optional: pip install torch==2.6.0
pip install -r requirements.txt

To set up the environment on a Windows system:

conda create --prefix=./.conda python=3.11
conda activate ./.conda
conda install -c conda-forge gdal
# optional: pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu128
pip install -r requirements.txt

๐Ÿš€ Inference

๐Ÿ’ก Try the Colab demo first, no installation needed, or run locally if you prefer full control.

  1. Place your RGB images in the data/images/ folder. If available, also include the corresponding land cover map in the data/masks/ (Three Sentinel-2 sample images and a land cover map are provided for testing.)

  2. Run the inference script:

    python delineate.py -b batch_sample.yaml
    

    The vectorized field boundaries will be saved as a GeoPackage in: data/delineated/

  3. (Optional) To shift the resulting vector geometries:

    Shift using image pixels:

    python shift.py -i PATH_TO_SRC_GPKG -o PATH_TO_DST_GPKG -s PATH_TO_SAMPLE_IMAGE -x SHIFT_PIXELS_X -y SHIFT_PIXELS_Y
    

    Shift using spatial units (SRS):

    python shift.py -i PATH_TO_SRC_GPKG -o PATH_TO_DST_GPKG -x SHIFT_UNITS_X -y SHIFT_UNITS_Y
    

โ„น๏ธ Tip: For advanced settings, refer to the instructions in delineation_config_guide.md

License

This project is licensed under the AGPL-3.0 License.

Acknowledgements

This code is based on Ultralytics.

Citation

If you find our work useful in your research, please consider citing it:

@article{lavreniuk2025delineateanything,
      title={Delineate Anything: Resolution-Agnostic Field Boundary Delineation on Satellite Imagery}, 
      author={Mykola Lavreniuk and Nataliia Kussul and Andrii Shelestov and Bohdan Yailymov and Yevhenii Salii and Volodymyr Kuzin and Zoltan Szantoi},
      year={2025},
      journal={arXiv preprint arXiv:2504.02534},
}

@article{lavreniuk2025delineateanythingflow,
      title={Delineate Anything Flow: Fast, Country-Level Field Boundary Detection from Any Source}, 
      author={Mykola Lavreniuk and Nataliia Kussul and Andrii Shelestov and Yevhenii Salii and Volodymyr Kuzin and Sergii Skakun and Zoltan Szantoi},
      year={2025},
      journal={https://arxiv.org/abs/2511.13417},
}