This project leverages YOLOv8 object detection and satellite imagery to automatically identify and map military infrastructure. Designed for real-time analysis, it integrates FastAPI for API serving and provides clear geospatial visualizations of detected assets.
Detection of military facilities from high-resolution satellite imagery
Fast and scalable inference using YOLOv8
Integrated with FastAPI for API deployment
Designed for potential deployment in defense-tech R&D and advanced geospatial intelligence systems
- Data Preprocessing → Image resizing, normalization, annotation.
- Model Training → YOLOv8 fine-tuned on satellite dataset.
- Evaluation → Precision (85.8%), Recall (44.9%), mAP@50 = 50.9%.
- Experiment Tracking → MLflow logs for metrics & hyperparams.
- API Serving → FastAPI provides
/predictendpoint. - Deployment → Containerized with Docker.
- Visualization → Results mapped with bounding boxes + geospatial view.
The model was trained on a custom dataset of satellite imagery. The raw dataset is available here - https://drive.google.com/drive/folders/1JhbzmCQK6aqwd33azx9k4zvuqr7FXZ_A?usp=sharing
The provided dataset contains raw images and their corresponding label files. To use it for training this YOLOv8 model, you must perform the following preparation steps:
Dataset Splitting: You need to split the data into training, validation, and test sets (e.g., 70%/20%/10%). This can be done using scripts from the scripts/ directory.
Label Format Conversion: Ensure the label files are converted to the correct format expected by YOLOv8 (typically .txt files with one file per image, containing class_id center_x center_y width height normalized to 0-1).
The repository includes utility scripts (scripts/split_dataset.py, scripts/convert_labels.py) to help automate this process. Please refer to the comments within those scripts for usage instructions.
- Clone the repo:
git clone git@github.com:Ajinkya-001/Identifying-Military-Assets-with-Satellite-Image-Analysis.git cd Identifying-Military-Assets-with-Satellite-Image-Analysis - Create a virtual environment & install dependencies:
python -m venv yolo_env source yolo_env/bin/activate pip install -r requirements.txt - Run the FastAPI server:
uvicorn app.main:app --reload
Access the API at http://localhost:8000/
Send satellite images for military asset detection
Receive detection results with bounding boxes and confidence scores
Detected bounding boxes can be overlaid on images for quick analysis.
Box loss: 1.434
Cls loss: 0.842
DFL loss: 0.916
Box loss: 1.466
Cls loss: 0.867
DFL loss: 0.920
Precision (B): 85.8%
Recall (B): 44.9%
mAP@50 (B): 50.9%
mAP@50-95 (B): 28.6%
The normalized confusion matrix below shows class-wise prediction accuracy and misclassifications:
Fighter jet: 64% correctly classified, but often confused with background.
Radar: strongest detection (74% correct).
Tank: seems underrepresented (little data or poor detection).
Military truck: confused with background often.
Background: relatively well recognized (71%), but sometimes objects are misclassified as background.
Real-time streaming satellite data processing
Integration with geospatial visualization dashboards
Multi-class military asset classification
YOLOv8-Object detection framework
Open satellite datasets – Training and validation
FastAPI – API framework
Ajinkya Patil
LinkedIn : https://www.linkedin.com/in/ajinkya-patil-728a19313/