{"id":18497368,"url":"https://github.com/satellite-image-deep-learning/annotation","last_synced_at":"2026-01-21T09:32:06.542Z","repository":{"id":65543975,"uuid":"593110692","full_name":"satellite-image-deep-learning/annotation","owner":"satellite-image-deep-learning","description":"Annotation of datasets for deep learning applied to satellite and aerial imagery","archived":false,"fork":false,"pushed_at":"2025-04-19T08:06:14.000Z","size":192,"stargazers_count":49,"open_issues_count":0,"forks_count":9,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-19T14:57:40.049Z","etag":null,"topics":["annotation","dataset-generation","datasets","satellite-data","satellite-imagery","software"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/satellite-image-deep-learning.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-01-25T09:06:27.000Z","updated_at":"2025-04-19T08:06:17.000Z","dependencies_parsed_at":"2024-07-09T09:46:36.145Z","dependency_job_id":"46d61e30-e12f-4050-9b26-dbf23bd47bb2","html_url":"https://github.com/satellite-image-deep-learning/annotation","commit_stats":{"total_commits":7,"total_committers":1,"mean_commits":7.0,"dds":0.0,"last_synced_commit":"fbb991e4d4b4ae10c6b74d4da0a44788aba1dda0"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/satellite-image-deep-learning/annotation","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/satellite-image-deep-learning%2Fannotation","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/satellite-image-deep-learning%2Fannotation/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/satellite-image-deep-learning%2Fannotation/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/satellite-image-deep-learning%2Fannotation/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/satellite-image-deep-learning","download_url":"https://codeload.github.com/satellite-image-deep-learning/annotation/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/satellite-image-deep-learning%2Fannotation/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28631142,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-21T04:47:28.174Z","status":"ssl_error","status_checked_at":"2026-01-21T04:47:22.943Z","response_time":86,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["annotation","dataset-generation","datasets","satellite-data","satellite-imagery","software"],"created_at":"2024-11-06T13:34:17.825Z","updated_at":"2026-01-21T09:32:06.527Z","avatar_url":"https://github.com/satellite-image-deep-learning.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003cp\u003e\n    \u003ca href=\"https://www.satellite-image-deep-learning.com/\"\u003e\n        \u003cimg src=\"logo.png\" width=\"700\"\u003e\n    \u003c/a\u003e\n\u003c/p\u003e\n  \u003ch2\u003eAnnotation of datasets for deep learning applied to satellite and aerial imagery.\u003c/h2\u003e\n\n# 👉 [satellite-image-deep-learning.com](https://www.satellite-image-deep-learning.com/) 👈\n\u003c/div\u003e\n\n**How to use this repository:** if you know exactly what you are looking for (e.g. you have the paper name) you can `Control+F` to search for it in this page\n\n## Contents\n* [Introduction to annotation](https://github.com/satellite-image-deep-learning/annotation#introduction-to-annotation)\n* [Annotation tools with GEO features](https://github.com/satellite-image-deep-learning/annotation#annotation-tools-with-geo-features)\n* [Open source annotation tools](https://github.com/satellite-image-deep-learning/annotation#open-source-annotation-tools)\n* [Cloud hosted \u0026 paid annotation tools \u0026 services](https://github.com/satellite-image-deep-learning/annotation#cloud-hosted--paid-annotation-tools--services)\n* [Annotation formats](https://github.com/satellite-image-deep-learning/annotation#annotation-formats)\n* [Annotation visualisation \u0026 conversion tools](https://github.com/satellite-image-deep-learning/annotation#annotation-visualisation--conversion-tools)\n\n## Introduction to annotation\nFor supervised machine learning, you will require annotated images. For example if you are performing object detection you will need to annotate images with bounding boxes. Check that your annotation tool of choice supports large image (likely geotiff) files, as not all will. Note that GeoJSON is widely used by remote sensing researchers but this annotation format is not commonly supported in general computer vision frameworks, and in practice you may have to convert the annotation format to use the data with your chosen framework. There are both closed and open source tools for creating and converting annotation formats. Some of these tools are simply for performing annotation, whilst others add features such as dataset management and versioning. Note that self-supervised and active learning approaches might circumvent the need to perform a large scale annotation exercise. Note that tiffs/geotiffs cannot be displayed by most browsers (Chrome), but CAN render in Safari.\n\n## Annotation formats\nNote there are many annotation formats, although PASCAL VOC and coco-json are the most commonly used. I recommend using geojson for storing polygons, then converting these to the required format when needed. Many more formats listed [here](https://roboflow.com/formats)\n* For geospatial data, create geojson annotations and convert as required\n* PASCAL VOC format: XML files in the format used by ImageNet\n* coco-json format: JSON in the format used by the 2015 COCO dataset\n* YOLO Darknet TXT format: contains one text file per image, used by YOLO\n* Tensorflow TFRecord: a proprietary binary file format used by the Tensorflow Object Detection API\n* OBB: orinted bounding boxes are polygons representing rotated rectangles\n\n## Annotation tools with Geotiff support\nRelatively few annotation tools support Geotiffs directly. If not in this list, assume they just support PNG \u0026 JPEG image formats\n* [Groundwork](https://element84.com/groundwork/) -\u003e A free image labeling tool for creating custom training datasets from satellite imagery\n* [Kili](https://kili-technology.com/) -\u003e read [How to import multi-layer geosat assets to a Kili project](https://python-sdk-docs.kili-technology.com/latest/sdk/tutorials/importing_multilayer_geosat_assets/)\n* [labelbox.com](https://labelbox.com/) -\u003e Watch [this webcast](https://www.arturo.ai/webcastbuilding-ai-products-from-the-ground-up/)\n* [diffgram](https://github.com/diffgram/diffgram) describes itself as a complete training data platform for machine learning delivered as a single application, supports [streaming data to pytorch \u0026 tensorflow](https://medium.com/diffgram/stream-training-data-to-your-models-with-diffgram-f0f25f6688c5). [COGS can be annotated](https://diffgram.readme.io/docs/geospatial-annotation-guide)\n* [iris](https://github.com/ESA-PhiLab/iris) -\u003e Tool for manual image segmentation and classification of satellite imagery\n* If you are considering building an in house annotation platform [read this article](https://medium.com/earthcube-stories/ai-products-and-remote-sensing-yes-it-is-hard-and-yes-you-need-a-good-infra-4b5d6cf822f1). Used PostGis database, GeoJson format and GIS standard in a stateless architecture\n* [satellite-imagery-labeling-tool](https://github.com/microsoft/satellite-imagery-labeling-tool) -\u003e from Microsoft, this is a lightweight web-interface for creating and sharing vector annotations over satellite/aerial imagery scenes\n* [RSLabel](https://github.com/yonglinZ/RSLabel) -\u003e remote sensing (RS) image annotation tool for deep learning\n* [encord](https://encord.com/) -\u003e supports annotating SAR\n* [Flood-Annotation-Tool](https://github.com/saugatadhikari/Flood-Annotation-Tool) -\u003e Annotation tool to annotate flooded and non-flooded regions on satellite image, uses jupyter notebook\n* [ds-annotate](https://github.com/developmentseed/ds-annotate) -\u003e Magic wand and Segment Anything Model (SAM) annotation tool for machine learning training data, from Development seed.\n* [BOSC_toolbox](https://github.com/RicardDurall/BOSC_toolbox) -\u003e a comprehensive toolbox for manipulating and annotating aerial imagery, utilises Segment Anything and FastSAM\n* [SCANEO](https://github.com/earthpulse/scaneo) -\u003e an AI-powered web tool for smart labeling of satellite data training datasets.\n* [geo-vision-labeler](https://github.com/microsoft/geo-vision-labeler) -\u003e A flexible image labeling tool that uses a vision LLM to generate descriptions and classify images into user-defined categories.\n* [label-tiles](https://github.com/noahgolmant/label-tiles) -\u003e Label geospatial data with tile servers, download the underlying tile images for ML training and inference, and export labels in COCO annotation format or GeoJSON/GeoParquet.\n\n## Open source annotation tools\n* [labelImg](https://github.com/tzutalin/labelImg) is the classic desktop tool, limited to bounding boxes for object detection. Also checkout [roLabelImg](https://github.com/cgvict/roLabelImg) which supports ROTATED rectangle regions, as often occurs in aerial imagery. [labelImg_OBB](https://github.com/heshameraqi/labelImg_OBB) is another fork supporting orinted bounding boxes (OBB)\n* [Labelme](https://github.com/wkentaro/labelme) is a very popular \u0026 simple dektop app for polygonal annotation suitable for object detection and semantic segmentation. Note it outputs annotations in a custom LabelMe JSON format which you will need to convert, e.g. using [labelme2coco](https://github.com/fcakyon/labelme2coco). Read [Labelme Image Annotation for Geotiffs](https://medium.com/@wvsharber/labelme-image-annotation-for-geotiffs-b460ba83804f)\n* [Label Studio](https://labelstud.io/) is a multi-type data labeling and annotation tool with standardized output format, syncing to buckets, and supports importing pre-annotations (create with a model). Checkout [label-studio-converter](https://github.com/heartexlabs/label-studio-converter) for converting Label Studio annotations into common dataset formats\n* [CVAT](https://github.com/cvat-ai/cvat) suports object detection, segmentation and classification via a local web app. [This article on Roboflow](https://blog.roboflow.com/cvat/) gives a good intro to CVAT. Checkout [CVAT images validator](https://github.com/developmentseed/cvat-images-validator)\n* [VoTT](https://github.com/Microsoft/VoTT) -\u003e an electron app for building end to end Object Detection Models from Images and Videos, by Microsoft\n* Create your own annotation tool using [Bokeh Holoviews](https://examples.pyviz.org/ml_annotators/ml_annotators.html#ml-annotators-gallery-ml-annotators), [tkinter](https://github.com/matpalm/bnn#labelling), or see these dash examples for [object detection](https://github.com/plotly/dash-sample-apps/tree/main/apps/dash-image-annotation) and [segmentation](https://github.com/plotly/dash-sample-apps/tree/main/apps/dash-image-segmentation)\n* [Deeplabel](https://github.com/jveitchmichaelis/deeplabel) is a cross-platform tool for annotating images with labelled bounding boxes. Deeplabel also supports running inference using state-of-the-art object detection models like Faster-RCNN and YOLOv4. With support out-of-the-box for CUDA, you can quickly label an entire dataset using an existing model.\n* [Alturos.ImageAnnotation](https://github.com/AlturosDestinations/Alturos.ImageAnnotation) is a collaborative tool for labeling image data on S3 for yolo\n* [pigeonXT](https://github.com/dennisbakhuis/pigeonXT) -\u003e create custom image classification annotators within Jupyter notebooks\n* [ipyannotations](https://github.com/janfreyberg/ipyannotations) -\u003e Image annotations in python using Jupyter notebooks\n* [Label-Detect](https://github.com/Jakaria08/Label-Detect) -\u003e is a graphical image annotation tool and using this tool a user can also train and test large satellite images, fork of the popular labelImg tool\n* [Swipe-Labeler](https://github.com/spaceml-org/Swipe-Labeler) -\u003e Swipe Labeler is a Graphical User Interface based tool that allows rapid labeling of image data\n* [dash_doodler](https://github.com/dbuscombe-usgs/dash_doodler) -\u003e A web application built with plotly/dash for image segmentation with minimal supervision\n* TensorFlow Object Detection API provides a [handy utility](https://github.com/tensorflow/models/blob/6a55ecdea7afda51f9dc42dc17104bd6444395d9/research/object_detection/utils/colab_utils.py#L384) for object annotation within Google Colab notebooks. See usage [here](https://github.com/yasserius/tf2-object-detection-api#label-images-in-colab)\n* [coco-annotator](https://github.com/jsbroks/coco-annotator) -\u003e Web-based image segmentation tool for object detection, localization, and keypoints\n* [pylabel](https://github.com/pylabel-project/pylabel) -\u003e Python library for computer vision labeling tasks. The core functionality is to translate bounding box annotations between different formats-for example, from coco to yolo. PyLabel also includes an image labeling tool that runs in a Jupyter notebook that can annotate images manually or perform automatic labeling using a pre-trained model\n* [BMW-Labeltool-Lite](https://github.com/BMW-InnovationLab/BMW-Labeltool-Lite) -\u003e bounding box annotator\n* [django-labeller](https://github.com/Britefury/django-labeller) -\u003e An image labelling tool for creating segmentation data sets, for Django and Flask\n* [scalabel](https://github.com/scalabel/scalabel) -\u003e supports 2D images and 3D point clouds\n* [Detection-Label-Tool](https://github.com/px39n/Detection-Label-Tool) -\u003e Change detection and object annotation, uses PyQt\n* [image_sorter](https://github.com/clcr/image_sorter) -\u003e A quick interface for sorting a folder of images into two other folders\n* [bulk](https://github.com/koaning/bulk) -\u003e A Simple Bulk Labelling Tool using embeddings\n* [LabCD](https://github.com/geoyee/LabCD/blob/master/README_EN.md) -\u003e remote sensing change detection annotation tool\n* [gradio_image_annotator](https://github.com/edgarGracia/gradio_image_annotator) -\u003e A Gradio component that can be used to annotate images with bounding boxes.\n* [digitalsreeni-image-annotator](https://github.com/bnsreenu/digitalsreeni-image-annotator) -\u003e A python based GUI to annotate images and save annotations as COCO style JSON format.\n* [Tator](https://github.com/stephansturges/Tator) -\u003e Yolo annotation tool with CLIP and SAM on the backend to auto-annotate\n\n## Cloud hosted tools \u0026 services\nSeveral open source tools are also available on the cloud, including CVAT, label-studio \u0026 Diffgram. In general cloud solutions will provide a lot of infrastructure and storage for you, as well as integration with outsourced annotators.\n* [Roboflow](https://roboflow.com/robincole) -\u003e in addition to annotation this platform makes it easy to convert between annotation formats \u0026 manage datasets, as well as train and deploy custom models to private API endpoints. Read [How to Train Computer Vision Models on Aerial Imagery](https://blog.roboflow.com/how-to-use-roboflow-with-aerial-imagery/)\n* [rectlabel](https://rectlabel.com/) is a desktop app for MacOS to annotate images for bounding box object detection and segmentation, paid and free (rectlabel-lite) versions\n\n## Annotation visualisation \u0026 conversion tools\nTools to visualise annotations \u0026 convert between formats. Note that most annotation software will allow you to visualise existing annotations\n* [Dataset-Converters](https://github.com/ISSResearch/Dataset-Converters) -\u003e a conversion toolset between different object detection and instance segmentation annotation formats\n* [Voxel51 FiftyOne](https://github.com/voxel51/fiftyone) -\u003e tool for building high quality datasets and computer vision models. Visualise labels, evaluate model predictions, explore scenarios of interest, identify failure modes, find annotation mistakes, and much more! Read [Nearest Neighbor Embeddings Search with Qdrant and FiftyOne](https://medium.com/voxel51/nearest-neighbor-embeddings-search-with-qdrant-and-fiftyone-adc9aa01b6db) Supports geotifs \u0026 geojson\n* [rebox](https://github.com/tensorturtle/rebox) -\u003e Easily convert between bounding box annotation formats\n* [Pascal VOC BBox Viewer](https://github.com/zchrissirhcz/imageset-viewer)\n* [COCO-Assistant](https://github.com/ashnair1/COCO-Assistant) -\u003e Helper for dealing with MS-COCO annotations; Merge datasets, Remove specfic category from dataset, Generate annotations statistics - distribution of object areas and category distribution\n* [pybboxes](https://github.com/devrimcavusoglu/pybboxes) -\u003e Light weight toolkit for bounding boxes providing conversion between bounding box types and simple computations\n* [voc2coco](https://github.com/yukkyo/voc2coco) -\u003e Convert VOC format XMLs to COCO format json\n* [ObjectDetectionEval](https://github.com/laclouis5/ObjectDetectionEval) -\u003e Parse all kinds of object detection databases (ImageNet, COCO, YOLO, PascalVOC, OpenImage, CVAT, LabelMe, etc.) \u0026 save to other formats\n* [LabelMeYoloConverter](https://github.com/ivder/LabelMeYoloConverter) -\u003e Convert LabelMe Annotation Tool JSON format to YOLO text file format\n* [mask-to-polygons](https://github.com/azavea/mask-to-polygons) -\u003e Routines for extracting and working with polygons from semantic segmentation masks\n* [labelme2coco](https://github.com/fcakyon/labelme2coco) -\u003e Converts LabelMe JSON format into COCO object detection and instance segmentation format.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsatellite-image-deep-learning%2Fannotation","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsatellite-image-deep-learning%2Fannotation","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsatellite-image-deep-learning%2Fannotation/lists"}