Das Projekt zielt darauf ab, die Verbreitung von Wüstenpflastern mithilfe von Social-Media-Daten von Flickr und KI-gestützter Bildklassifikation mittels GroundingDINO zu erfassen.
- Technische Anforderungen
- Installationsanleitung
- Ordnerstruktur
- Skript-Dokumentation - extract_coordinates.py - photo_download.py - color_detection_multiple.py - desertpavement_prediction_multiple.py
- Togglebare Variablen
- Lizenzinformationen
- Python 3.12.x (empfohlen 3.12.8)
- CUDA 11.x (empfohlen 11.7)
- PyTorch 2.5.x (empfohlen 2.5.1)
- NVIDIA GPU mit 3GB VRAM (für GroundingDINO)
- 10 GB freier Festplattenspeicher
- Flickr API-Schlüssel (kostenloses Konto erforderlich)
- Grundinstallation:
- Eine genauere Anleitung zur Installation von GroundingDINO finden Sie im offiziellen Repository
- Es wird empfohlen, GroundingDINO in das Root-Verzeichnis des Projekts zu klonen.
git clone https://github.com/IDEA-Research/GroundingDINO.git
cd GroundingDINO
pip install -r requirements.txt
python setup.py installProjektabhängigkeiten installieren:
pip install geopandas folium scikit-learn opencv-python flickrapi python-dotenv
Umgebungsvariablen einrichten:
Erstellen Sie .env-Datei mit Flickr-API-Schlüsseln:
FLICKR_API_KEY="Ihr-Schlüssel"
FLICKR_SECRET_KEY="Ihr-Geheimschlüssel"Projekt-Root/
├── in/
│ ├── 1976-2000.shp # Klimaklassifikations-Shapefile
│ └── FlickrAPI_keys.env # API-Schlüssel
├── out/
│ ├── downloaded_photos/ # Rohbilder von Flickr
│ ├── possible_desert_pavements/ # RGB-gefilterte Bilder
│ └── annotated_*/ # KI-klassifizierte Ergebnisse
├── output/ # Generierte Bounding-Boxes
└── GroundingDINO/ # Clone des offiziellen Repositories
Funktion: Extrahiert Bounding-Boxes aus Klimazonen-Shapefiles
- Input: - Shapefile: in/1976-2000.shp - Klimazonen-Codes (GRIDCODE 21=BWh, 22=BWk)
- Output: - CSV: output/bounding_boxes.csv - Interaktive Karte: output/bounding_boxes_map.html
- Ausführung:
python scripts/extract_coordinates.py
Funktion: Lädt Bilder von Flickr herunter
- Konfiguration: - Suchbegriff: "desert pavement" - Max. Downloads: 68,000 (anpassbar über DOWNLOAD_LIMIT) - Die Flickr API ist limitiert auf 3600 Anfragen pro Stunde
- Output: - Bilder: out/downloaded_photos/*.jpg - Metadaten: out/data.json
- Ausführung:
python scripts/photo_download.py
Funktion: RGB-basierte Vorauswahl
- Input: - Bilder: out/downloaded_photos/
- Output: - Positivfälle: out/possible_desert_pavements/ - Negativfälle: out/no_desert_pavement/
- Parameter: - Farbtoleranz: 50% (Zeile 96: desert_percentage > 50)
- Ausführung:
python scripts/color_detection_multiple.py
Funktion: KI-gestützte Objekterkennung
- Input: - Bilder: out/possible_desert_pavements/
- Output: - Annotierte Bilder: out/annotated_desert_pavements/ - Log-Daten: groundingdino_scripts/logits_phrases_all.json
- Wichtige Parameter (Zeilen 30-35): TEXT_PROMPT = "road markings . desert pavement ..." # Suchbegriffe BOX_THRESHOLD = 0.35 # Minimale Box-Konfidenz TEXT_THRESHOLD = 0.25 # Minimale Text-Konfidenz
- Ausführung:
python scripts/desertpavement_prediction_multiple.py
- photo_download.py:
- desertpavement_prediction_*.py:
- color_detection_*.py:
- desertpavement_prediction_multiple.py:
In einigen Skripts finden sich zusätzlich DEBUG-Flags zur Fehlerdiagnose.
Dieses Projekt verwendet GroundingDINO, ursprünglich entwickelt von IDEA Research, lizenziert unter der Apache-Lizenz, Version 2.0. Eigenentwickelte Skripte stehen unter MIT-Lizenz. Beachten Sie die Flickr-Nutzungsbedingungen für heruntergeladene Bilder.
Copyright 2024 - Projektteam Geoinformatik, FSU Jena