API src

Found 1591 results.

Related terms

WMS SN DOP-RGB

AdV WMS zur Darstellung der digitalen Orthophotos in Farbe (RGB). DOP sind in die Ebene entzerrte, georeferenzierte Luftbilder. Dabei erfolgt die Projektion der Luftbilder über ein Digitales Geländemodell (DGM) der Erdoberfläche. Seit 2005 werden im Landesamt für Geobasisinformation Orthophotos auf Grundlage von Luftbildern aus Bildflügen mit digitalen Kameras erzeugt. Sie besitzen eine Bodenauflösung von 0,20 m.

Einzelbaum Stammpositionen aus Luftbildern (2021) Wuppertal

Der Datensatz umfasst die automatisiert aus Luftbildern (Aufnahmezeitpunkte 30. März und 01./02. Juni 2021) abgeleiteten, punktförmigen Stammpositionen von rund 894.000 Bäumen im Stadtgebiet von Wuppertal, ausgeführt durch die EFTAS Fernerkundung Technologietransfer GmbH aus Münster im Rahmen der Forschungskooperation DigiTalZwilling4D innerhalb des Förderprojektes smart.wuppertal / DigiTal Zwilling mit dem in dieser Kooperation entwickelten Verfahren "twin4tree". Hierbei wurde das normalisierte Digitale Oberflächenmodell (nDOM) von Geobasis NRW (Jahrgang 2021) als Höhenmodell verwendet. Um keine Gebäude oder Bauwerke als Baum zu identifizieren, wurden für das Vegetationshöhenmodell nur Bereiche des nDOM innerhalb einer Baummaske berücksichtigt, die zuvor über eine Klassifikation der o. g. Luftbilder mit dem KI-Verfahren "Cop4ALL" erzeugt wurde. Die einzelnen Bäume wurden darin über ein Template-Matching-Verfahren identifiziert, bei dem variable 3D-Schablonen (sphärische und gaußförmige Form für Laubbäume, parabolische, hyperbolische und konische Form für Nadelbäume) über das Vegetationshöhenmodell gelegt werden. Den so gefundenen Baumstandorten wurden mittels einer Segmentierung des Vegetationshöhenmodells Baumkronen zugeordnet, deren senkrechte Projektion auf den Boden zweidimensionale Baumkronenpolygone ergab. Die Stammposition eines Baumes wurde im geometrischen Schwerpunkt seines Baumkronenpolygons angenommen. Der Datensatz ist im GeoPackage-Format unter der Open-Data-Lizenz CC BY 4.0 verfügbar. Wichtige Hinweise: (1) In dichten Baumbeständen ist die Identifikation einzelner Bäume aufgrund von zusammenwachsenden Baumkronen ("Kronenschluss") erschwert. Auch sogenannte "beherrscht stehende Individuen" unterhalb der aus der Luft sichtbaren Baumkronen lassen sich mit dem twin4tree-Verfahren nicht eindeutig erkennen. Daher unterschätzt das Verfahren die Anzahl von Bäumen in diesen Bereichen deutlich. Aus stichprobenhaften Zählungen in einigen Waldbereichen wurde ein durchschnittlicher Korrekturfaktor von 1,6 abgeleitet. (2) Die genauen Stammpositionen können aus optischen Fernerkundungsdaten nicht bestimmt werden. Die als Stammpositionen angegebenen Schwerpunkte der Baumkronenpolygone sind Näherungswerte.

GeoPortal Bremen

Das GeoPortal Bremen ist ein webbasiertes Kartenportal und wird durch das Landesamt GeoInformation Bremen bereitgestellt. Es basiert auf der Open Source Software Masterportal. Es ist ein zentraler Einstiegspunkt über den man auf Geodaten der Stadtgemeinden Bremen und Bremerhaven sowie des Landes Bremen zugreifen kann. Geobasisdaten und Luftbilder als Hintergrundkarten sowie Kartenlayer zu Fachthemenfeldern sind im Geoportal verfügbar. Das Geoportal enthält zusätzliche Werkzeuge, z.B. für das Suchen, Zeichnen und Messen. Eine Navigation ist über die Adresssuche oder über Mausnavigation möglich. Darüber hinaus sind 3D-Darstellungen integriert.

Digitales Feldblock Kataster

Das Digitale Feldblockkataster (DFBK) ist ein landwirtschaftliches Flächenkataster. Es enthält alle landwirtschaftlich genutzten und förderfähigen Flächen der Länder Brandenburg und Berlin mit ihrer Lage, Größe und weiteren Informationen. Das DFBK dient als Referenzsystem zur Kontrolle von flächenbezogenen Agrarförderanträgen und besteht aus Feldblöcken und Landschaftselementen. Ein Feldblock (FB) kann von einem oder mehreren landwirtschaftlichen Betrieben genutzt werden und bildet eine von dauerhaften Grenzen umgebene zusammenhängende landwirtschaftliche Fläche mit überwiegend einheitlicher Hauptbodennutzung ab. Landschaftselemente (LE) sind Landschaftsmerkmale wie z.B. Hecken, Baumreihen, Feldgehölze, Lesesteinhaufen, die sich im oder am Feldblock befinden. Enthält ein Feldblock Flächen, die nicht landwirtschaftlich nutzbar und kein förderfähiges Landschaftselement sind, so werden diese als nicht-beihilfefähige-Flächen (NBF) gekennzeichnet. Die Digitalisierung der Feldblöcke, Landschaftselemente und NBF-Flächen erfolgt auf der Grundlage von Luftbildern (Digitalen Orthophotos) in den Ämtern für Landwirtschaft der Kreise und kreisfreien Städte im Rahmen des EU-InVeKoS-Verfahrens (Integriertes Verwaltungs- und Kontrollsystem). Die hier in Form der FB und LE bereitgestellten Daten enthalten zusätzlich numerische Angaben zu Flächenanteilen in förderrelevanten Gebietskulissen (z.B. Naturschutzgebiete, NATURA2000-Gebiete und andere). Das Digitale Feldblockkataster (DFBK) ist ein landwirtschaftliches Flächenkataster. Es enthält alle landwirtschaftlich genutzten und förderfähigen Flächen der Länder Brandenburg und Berlin mit ihrer Lage, Größe und weiteren Informationen. Das DFBK dient als Referenzsystem zur Kontrolle von flächenbezogenen Agrarförderanträgen und besteht aus Feldblöcken und Landschaftselementen. Ein Feldblock (FB) kann von einem oder mehreren landwirtschaftlichen Betrieben genutzt werden und bildet eine von dauerhaften Grenzen umgebene zusammenhängende landwirtschaftliche Fläche mit überwiegend einheitlicher Hauptbodennutzung ab. Landschaftselemente (LE) sind Landschaftsmerkmale wie z.B. Hecken, Baumreihen, Feldgehölze, Lesesteinhaufen, die sich im oder am Feldblock befinden. Enthält ein Feldblock Flächen, die nicht landwirtschaftlich nutzbar und kein förderfähiges Landschaftselement sind, so werden diese als nicht-beihilfefähige-Flächen (NBF) gekennzeichnet. Die Digitalisierung der Feldblöcke, Landschaftselemente und NBF-Flächen erfolgt auf der Grundlage von Luftbildern (Digitalen Orthophotos) in den Ämtern für Landwirtschaft der Kreise und kreisfreien Städte im Rahmen des EU-InVeKoS-Verfahrens (Integriertes Verwaltungs- und Kontrollsystem). Die hier in Form der FB und LE bereitgestellten Daten enthalten zusätzlich numerische Angaben zu Flächenanteilen in förderrelevanten Gebietskulissen (z.B. Naturschutzgebiete, NATURA2000-Gebiete und andere). Das Digitale Feldblockkataster (DFBK) ist ein landwirtschaftliches Flächenkataster. Es enthält alle landwirtschaftlich genutzten und förderfähigen Flächen der Länder Brandenburg und Berlin mit ihrer Lage, Größe und weiteren Informationen. Das DFBK dient als Referenzsystem zur Kontrolle von flächenbezogenen Agrarförderanträgen und besteht aus Feldblöcken und Landschaftselementen. Ein Feldblock (FB) kann von einem oder mehreren landwirtschaftlichen Betrieben genutzt werden und bildet eine von dauerhaften Grenzen umgebene zusammenhängende landwirtschaftliche Fläche mit überwiegend einheitlicher Hauptbodennutzung ab. Landschaftselemente (LE) sind Landschaftsmerkmale wie z.B. Hecken, Baumreihen, Feldgehölze, Lesesteinhaufen, die sich im oder am Feldblock befinden. Enthält ein Feldblock Flächen, die nicht landwirtschaftlich nutzbar und kein förderfähiges Landschaftselement sind, so werden diese als nicht-beihilfefähige-Flächen (NBF) gekennzeichnet. Die Digitalisierung der Feldblöcke, Landschaftselemente und NBF-Flächen erfolgt auf der Grundlage von Luftbildern (Digitalen Orthophotos) in den Ämtern für Landwirtschaft der Kreise und kreisfreien Städte im Rahmen des EU-InVeKoS-Verfahrens (Integriertes Verwaltungs- und Kontrollsystem). Die hier in Form der FB und LE bereitgestellten Daten enthalten zusätzlich numerische Angaben zu Flächenanteilen in förderrelevanten Gebietskulissen (z.B. Naturschutzgebiete, NATURA2000-Gebiete und andere).

Einzelbaum Kronenumringe aus Luftbildern (2021) Wuppertal

Der Datensatz umfasst die automatisiert aus Luftbildern (Aufnahmezeitpunkte 30. März und 01./02. Juni 2021) abgeleiteten, zweidimensionalen Baumkronenumringe ("Baumkronenpolygone") von rund 894.000 Bäumen im Stadtgebiet von Wuppertal, ausgeführt durch die EFTAS Fernerkundung Technologietransfer GmbH aus Münster im Rahmen der Forschungskooperation DigiTalZwilling4D innerhalb des Förderprojektes smart.wuppertal / DigiTal Zwilling mit dem in dieser Kooperation entwickelten Verfahren "twin4tree". Hierbei wurde das normalisierte Digitale Oberflächenmodell (nDOM) von Geobasis NRW (Jahrgang 2021) als Höhenmodell verwendet. Um keine Gebäude oder Bauwerke als Baum zu identifizieren, wurden für das Vegetationshöhenmodell nur Bereiche des nDOM innerhalb einer Baummaske berücksichtigt, die zuvor über eine Klassifikation der o. g. Luftbilder mit dem KI-Verfahren "Cop4ALL" erzeugt wurde. Die einzelnen Bäume wurden darin über ein Template-Matching-Verfahren identifiziert, bei dem variable 3D-Schablonen (sphärische und gaußförmige Form für Laubbäume, parabolische, hyperbolische und konische Form für Nadelbäume) über das Vegetationshöhenmodell gelegt werden. Den so gefundenen Baumstandorten wurden mittels einer Segmentierung des Vegetationshöhenmodells Baumkronen zugeordnet, deren senkrechte Projektion auf den Boden zweidimensionale Baumkronenpolygone ergab. Der Datensatz ist im GeoPackage-Format als Original und zur Reduzierung der Dateigröße als Variante mit generalisierten Baumkronenpolygonen unter der Open-Data-Lizenz CC BY 4.0 verfügbar. Wichtiger Hinweis: In dichten Baumbeständen ist die Identifikation einzelner Bäume aufgrund von zusammenwachsenden Baumkronen ("Kronenschluss") erschwert. Auch sogenannte "beherrscht stehende Individuen" unterhalb der aus der Luft sichtbaren Baumkronen lassen sich mit dem twin4tree-Verfahren nicht eindeutig erkennen. Daher unterschätzt das Verfahren die Anzahl von Bäumen in diesen Bereichen deutlich. Aus stichprobenhaften Zählungen in einigen Waldbereichen wurde ein durchschnittlicher Korrekturfaktor von 1,6 abgeleitet.

Übersicht Bildmittelpunkte Datenklasse LUBI10 Langzeitspeicherung Hamburg

Der Kartendienst stellt die Bildmittelpunkte der Digitalen Luftbilder(LUBI) 10cm unbelaubt in Hamburg dar. Mit Hilfe der Bildmittelpunkte ist ein georeferenziertes Suchen der LUBIs in der Langzeitspeicherung möglich. Die Darstellung erfolgt im Bezugsystem ETRS89 in der Projektion UTM.

Entwicklung von analogen und digitalen Auswerteverfahren multispektraler Aufnahmen fuer Umweltprobleme

Ziel: Auswertemodelle fuer multispektrale Aufnahmen zur Erkennung von Umwelteinfluessen. Vorgehensweise: Multispektrale und thermale Aufnahmen von verschiedenen Testgebieten durch Flugzeug und Satellit. Anwendung verschiedener statistischer Verfahren zur Charakterisierung verschiedener Phaenomene. Darstellung in Diagramm und Bild (Karte). Beobachtung von Phaenomenen durch Langzeitaufnahmen.

ATKIS - DOP10 Land Bremen

Die Digitalen Orthophotos (DOP10) mit einer Bodenauflösung von 10cm sind ein ATKIS®-Produkt und geben als georeferenzierte, farbige photographische Abbilder einen Teil der Erdoberfläche wieder. Die True Orthophotos (TrueDOP) entstehen aus Luftbilddatensätzen die im Ergebnis eines Bildfluges erzeugt werden. Über die Dense Image Matching Methode werden sie aus orientierten Luftbildern und einem daraus berechneten Oberflächenmodell (bDOM) abgeleitet. TrueDOPs sind grundsätzlich von Verzerrungen und Umklappeffekten freie und maßstabsgetreue Rasterdaten photographischer Abbildungen der Erdoberfläche sowie der auf ihr befindlichen Objekte. Die Orthophotos bestehen als RGB Ausgabe aus einem 3-Kanal Echtfarbenbild (Rot-Grün-Blau). Befliegung: 2025, 2023, 2021, 2019, 2017, 2015, 2012, 2009, 2008, 2005, 2002 Bildflugtage 2025: Bremen: 06.03./07.03./08.03 2025 Bremerhaven: 07.03.2025

Repository der KI-Ideenwerkstatt: robbenblick

# robbenblick A Computer Vision project for object detection and annotation management using YOLOv8, SAHI, and FiftyOne, with the primary aim of counting objects (Robben) in large aerial images. ## Overview This repository provides a complete MLOps pipeline for: * **Data Preparation:** Converting raw CVAT annotations (XML) and large images into a tiled, YOLO-compatible dataset. * **Automated Experiments:** Systematically training and tuning YOLOv8 models. * **Tiled Inference:** Running optimized inference (SAHI) on large, high-resolution images for object counting. * **Evaluation:** Assessing model performance for both detection (mAP) and counting (MAE, RMSE, R²). * **Visualization:** Analyzing datasets and model predictions interactively with FiftyOne. ## Pretrained Model Weights Pretrained model weights are available on Hugging Face: https://huggingface.co/ki-ideenwerkstatt-23/robbenblick/ ## Project Workflow The project is designed to follow a clear, sequential workflow: 1. **Prepare Data (`create_dataset.py`):** Organize your raw images and CVAT `annotations.xml` in `data/raw/` as shown below. ```text data/raw/ ├── dataset_01/ │ ├── annotations.xml │ └── images/ └── dataset_02/ ... ``` Run the script to generate a tiled, YOLO-formatted dataset in `data/processed/` and ground truth count CSVs. 2. **Tune Model (`run_experiments.py`):** Define a set of hyperparameters (e.g., models, freeze layers, augmentation) in `configs/base_iter_config.yaml`. Run the script to train a model for every combination and find the best performer. 3. **Validate Model (`yolo.py`):** Take the `run_id` of your best experiment and run validation on the hold-out `test` set to get **detection metrics (mAP)**. 4. **Infer & Count (`predict_tiled.py`):** Use the best `run_id` to run sliced inference on new, large images. This script generates final counts and visual outputs. 5. **Evaluate Counts (`evaluate_counts.py`):** Compare the `detection_counts.csv` from inference against the `ground_truth_counts.csv` to get **counting metrics (MAE, RMSE)**. 6. **Visualize (`run_fiftyone.py`):** Visually inspect your ground truth dataset or your model's predictions at any stage. ## Configuration This project uses two separate configuration files, managed by `robbenblick.utils.load_config`. * **`configs/base_config.yaml`** * **Purpose:** The single source of truth for **single runs**. * **Used By:** `create_dataset.py`, `predict_tiled.py`, `run_fiftyone.py`, and `yolo.py` (for validation/single-predict). * **Content:** Defines static parameters like data paths (`dataset_output_dir`), model (`model`), and inference settings (`confidence_thresh`). * **`configs/base_iter_config.yaml`** * **Purpose:** The configuration file for **experiments and tuning**. * **Used By:** `run_experiments.py`. * **Content:** Any parameter defined as a **YAML list** (e.g., `model: [yolov8n.pt, yolov8s.pt]`) will be iterated over. `run_experiments.py` will test every possible combination of all lists. ## Environment Setup 1. Clone the repository: ```sh git clone git@github.com:ki-iw/robbenblick.git cd robbenblick ``` 2. Create the Conda environment: ```sh conda env create --file environment.yml conda activate RobbenBlick ``` 3. (Optional) Install pre-commit hooks: ```sh pre-commit install ``` ## Core Scripts & Usage ### `create_dataset.py` * **Purpose:** Converts raw CVAT-annotated images and XML files into a YOLO-compatible dataset, including tiling and label conversion. * **How it works:** * Loads configuration from a config file. * Scans `data/raw/` for dataset subfolders. * Parses CVAT XML annotations and extracts polygons. * Tiles large images into smaller crops based on `imgsz` and `tile_overlap` from the config. * Converts polygon annotations to YOLO bounding box format for each tile. * Splits data into `train`, `val`, and `test` sets and writes them to `data/processed/dataset_yolo`. * Saves a `ground_truth_counts.csv` file in each raw dataset subfolder, providing a baseline for counting evaluation. * **Run:** ```sh # Do a 'dry run' to see statistics without writing files python -m robbenblick.create_dataset --dry-run --config configs/base_config.yaml # Create the dataset, holding out dataset #4 as the test set python -m robbenblick.create_dataset --config configs/base_config.yaml --test-dir-index 4 ``` * **Key Arguments:** * `--config`: Path to the `base_config.yaml` file. * `--dry-run`: Run in statistics-only mode. * `--test-dir-index`: 1-based index of the dataset subfolder to use as a hold-out test set. * `--val-ratio`: Ratio of the remaining data to use for validation. ### `run_experiments.py` * **Purpose:** **This is the main training script.** It automates hyperparameter tuning by iterating over parameters defined in `base_iter_config.yaml`. * **How it works:** * Finds all parameters in the config file that are lists (e.g., `freeze: [None, 10]`). * Generates a "variant" for every possible combination of these parameters. * For each variant, it calls `yolo.py --mode train` as a subprocess with a unique `run_id`. * After all runs are complete, it reads the `results.csv` from each run directory, sorts them by `mAP50`, and prints a final ranking table. * **Run:** ```sh # Start the experiment run defined in the iteration config python -m robbenblick.run_experiments --config configs/base_iter_config.yaml # Run experiments and only show the top 5 results python -m robbenblick.run_experiments --config configs/base_iter_config.yaml --top-n 5 ``` ### `predict_tiled.py` * **Purpose:** **This is the main inference script.** It runs a trained YOLOv8 model on new, full-sized images using Sliced Aided Hyper Inference (SAHI). * **How it works:** * Loads a trained `best.pt` model specified by the `--run_id` argument. * Loads inference parameters (like `confidence_thresh`, `tile_overlap`) from the `base_config.yaml`. * Uses `get_sliced_prediction` from SAHI to perform tiled inference on each image. * Saves outputs, including visualized images (if `--save-visuals`), YOLO `.txt` labels (if `--save-yolo`), and a `detection_counts.csv` file. * **Run:** ```sh # Run inference on a folder of new images and save the visual results python -m robbenblick.predict_tiled \ --config configs/base_config.yaml \ --run_id "best_run_from_experiments" \ --source "data/new_images_to_count/" \ --output-dir "data/inference_results/" \ --save-visuals ``` ### `evaluate_counts.py` * **Purpose:** Evaluates the *counting* performance of a model by comparing its predicted counts against the ground truth counts. * **How it works:** * Loads the `ground_truth_counts.csv` generated by `create_dataset.py`. * Loads the `detection_counts.csv` generated by `predict_tiled.py`. * Merges them by `image_name`. * Calculates and prints key regression metrics (MAE, RMSE, R²) to assess the accuracy of the object counting. * **Run:** ```sh # Evaluate the counts from a specific run python -m robbenblick.evaluate_counts \ --gt-csv "data/raw/dataset_02/ground_truth_counts.csv" \ --pred-csv "data/inference_results/detection_counts.csv" ``` ### `yolo.py` * **Purpose:** The core engine for training, validation, and standard prediction. This script is called by `run_experiments.py` for training. You can use it directly for validation. * **How it works:** * `--mode train`: Loads a base model (`yolov8s.pt`) and trains it on the dataset specified in the config. * `--mode validate`: Loads a *trained* model (`best.pt` from a run directory) and validates it against the `test` split defined in `dataset.yaml`. This provides **detection metrics (mAP)**. * `--mode predict`: Runs standard (non-tiled) YOLO prediction on a folder. * **Run:** ```sh # Validate the 'test' set performance of a completed run python -m robbenblick.yolo \ --config configs/base_config.yaml \ --mode validate \ --run_id "best_run_from_experiments" ``` ### `run_fiftyone.py` * **Purpose:** Visualizes datasets and predictions using FiftyOne. * **How it works:** * `--dataset groundtruth`: Loads the processed YOLO dataset (images and ground truth labels) from `data/processed/`. * `--dataset predictions`: Loads images, runs a specified model (`--run_id`) on them, and displays the model's predictions. * **Run:** ```sh # View the ground truth annotations for the 'val' split python -m robbenblick.run_fiftyone \ --config configs/base_config.yaml \ --dataset groundtruth \ --split val \ --recreate # View the predictions from 'my_best_run' on the 'test' split python -m robbenblick.run_fiftyone \ --config configs/base_config.yaml \ --dataset predictions \ --split test \ --run_id "my_best_run" \ --recreate ``` ### `streamlit_app.py` * **Purpose:** Quick test runs with the trained model of your choice for counting the seals in the image(s) and visualization. * **How it works:** * Loads the selected YOLO model from `runs/detect/`. * Upload images, run model, then displays the counts and model's predictions as image visualization. * **Run:** ```sh # View the ground truth annotations for the 'val' split export PYTHONPATH=$PWD && streamlit run robbenblick/streamlit_app.py ``` ## Recommended Full Workflow 1. **Add Raw Data:** * Place your first set of images and annotations in `data/raw/dataset_01/images/` and `data/raw/dataset_01/annotations.xml`. * Place your second set (e.g., from a different location) in `data/raw/dataset_02/images/` and `data/raw/dataset_02/annotations.xml`. 2. **Create Dataset:** * Run `python -m robbenblick.create_dataset --dry-run` to see your dataset statistics. Note the indices of your datasets. * Let's say `dataset_02` is a good hold-out set. Run: `python -m robbenblick.create_dataset --config configs/base_config.yaml --test-dir-index 2` * This creates `data/raw/dataset_02/ground_truth_counts.csv` for later. 3. **Find Best Model:** * Edit `configs/base_iter_config.yaml`. Define your experiments. ```yaml # Example: Test two models and two freeze strategies model: ['yolov8s.pt', 'yolov8m.pt'] freeze: [None, 10] yolo_hyperparams: scale: [0.3, 0.5] ``` * Run the experiments: `python -m robbenblick.run_experiments`. * Note the `run_id` of the top-ranked model, e.g., `iter_run_model_yolov8m.pt_freeze_10_scale_0.3`. 4. **Validate on Test Set (Detection mAP):** * Check your best model's performance on the unseen test data: `python -m robbenblick.yolo --mode validate --run_id "iter_run_model_yolov8m.pt_freeze_10_scale_0.3" --config configs/base_config.yaml` * This tells you how well it *detects* objects (mAP). 5. **Apply Model for Counting:** * Get a new folder of large, un-annotated images (e.g., `data/to_be_counted/`). * Run `predict_tiled.py`: `python -m robbenblick.predict_tiled --run_id "iter_run_model_yolov8m.pt_freeze_10_scale_0.3" --source "data/to_be_counted/" --output-dir "data/final_counts/" --save-visuals` * This creates `data/final_counts/detection_counts.csv`. 6. **Evaluate Counting Performance (MAE, RMSE):** * Now, compare the predicted counts (Step 5) with the ground truth counts (Step 2). Let's assume your "to_be_counted" folder *was* your `dataset_02`. `python -m robbenblick.evaluate_counts --gt-csv "data/raw/dataset_02/ground_truth_counts.csv" --pred-csv "data/final_counts/detection_counts.csv"` * This gives you the final MAE, RMSE, and R² metrics for your **counting task**. ## Additional Notes This repository contains only the source code of the project. The training data and the fine-tuned model weights are not included or published. The repository is currently not being actively maintained. Future updates are not planned at this time. For transparency, please note that the underlying model used throughout this project is based on **YOLOv8 by Ultralytics**. ## License Copyright (c) 2025 **Birds on Mars**. This project is licensed under the **GNU Affero General Public License v3.0 (AGPL-3.0)**. This aligns with the license of the underlying **YOLOv8** model architecture used in this project. Please note: **Training data and fine-tuned model weights are not part of the licensed materials** and are not included in this repository. For full details, see the LICENSE file. ## Troubleshooting ### FiftyOne: images (partially) not visible Try using `--recreate` flag to force FiftyOne to reload the dataset: ```sh python robbenblick/run_fiftyone.py --dataset groundtruth --split val --recreate ``` ### FiftyOne: failed to bind port If you get: ``` fiftyone.core.service.ServiceListenTimeout: fiftyone.core.service.DatabaseService failed to bind to port ``` Try killing any lingering `fiftyone` or `mongod` processes: ```sh pkill -f fiftyone pkill -f mongod Then rerun your script. ``` # Collaborators The code for this project has been developed through a collaborative effort between [WWF Büro Ostsee](https://www.wwf.de/themen-projekte/projektregionen/ostsee) and [KI-Ideenwerkstatt](https://www.ki-ideenwerkstatt.de), technical implementation by [Birds on Mars](https://birdsonmars.com). <p></p> <a href="https://ki-ideenwerkstatt.de" target="_blank" rel="noopener noreferrer"> <img src="assets/kiiw.jpg" alt="KI Ideenwerkstatt" height="100"> </a> <p></p> Technical realization <br> <a href="https://birdsonmars.com" target="_blank" rel="noopener noreferrer"> <img src="assets/bom.jpg" alt="Birds On Mars" height="100"> </a> <p></p> An AI initiative by <br> <a href="https://www.bundesumweltministerium.de/" target="_blank" rel="noopener noreferrer"> <img src="assets/bmukn.svg" alt="Bundesministerium für Umwelt, Klimaschutz, Naturschutz und nukleare Sicherheit" height="100"> </a> <p></p> In the context of <br> <a href="https://civic-coding.de" target="_blank" rel="noopener noreferrer"> <img src="assets/civic.svg" alt="Civic Coding" height="100"> </a>

Sen2Europe (2021)

Das Bundesamt für Kartographie und Geodäsie (BKG) hat ein Verfahren zur bedarfsbezogenen Bereitstellung von Fernerkundungsdaten entwickelt. Für die fernerkundliche Produktion werden derzeit optische Satellitenbilddaten in der Bundesverwaltung bevorzugt eingesetzt. Hierfür ist das sogenannte Mosaik-Verfahren eine wichtige Methode. Das Verfahren wurde mit den von der EU finanzierten Sentinel-2- Daten der europäischen Erdbeobachtungsinitiative Copernicus aufgebaut und kann für jeden optischen Datensatz (inkl. Luftbilder) angewendet werden. Wir stellen mit dieser Methode einen Service zur Verfügung, über den sich optische Fernerkundungsdaten für jedes Gebiet auf der Erde fachlich und bedarfsorientiert aufbereiten lassen. Über den Dienst Web Map Service (WMS) Sen2Europe wird den Bedarfsträgern ermöglicht, vorprozessierte und aufbereitete Fernerkundungsinformationen aus dem Erdbeobachtungsprogramm Copernicus (Sentinel-2, L1C-L2A), für Europa, in bestehende eigene Fachverfahren mit einzubinden. Die Bilddaten des Jahres 2021 wurden jeweils zu einem Mosaik zusammengefügt, welches eine Bodenauflösung von 10m hat. Ein Komposit aus drei Bändern (Sentinel-2 Bänder: 2, 3, 4 (R, G, B)) sowie eine Information zu den Eingangsbilddaten werden angeboten. Die Bilddaten wurden einem radiometrischen Farbausgleichsverfahren unterzogen um ein einheitliches Erscheinungsbild zu erlangen. Für jedes Mosaik beträgt die Wolkenbedeckung über das gesamte Gebiet weniger als 3%. Über den Request-Parameter TIME kann hier gezielt ein spezifischer Jahresstand angezeigt werden (z.B. Time=2018) (ohne TIME-Parameter wird der neueste Stand angezeigt). Die nachfolgende URL des freien Webdienstes können Sie direkt, z.B. in Ihrem Geo-Informationssystem (GIS), verwenden:https://sgx.geodatenzentrum.de/wms_sen2europe

1 2 3 4 5158 159 160