This repository contains the code, datasets, trained models, and evaluation results associated with the paper:
Ghaderpour, E.; Nekoulnang, C.D.; Noudjiko, H.M.; Rossi, P.P.; Rotunno, R.; di Lernia, S. A YOLO-Based Workflow for Detecting and Mapping Archaeological Stone Cairns in Satellite Imagery: A Case Study from Western Ennedi, Chad. Heritage 2026, 9, 237. https://doi.org/10.3390/heritage9060237
The repository provides all data and Python scripts required to reproduce the workflow presented in the paper, including Google Satellite imagery preprocessing, YOLOv8 model training and inference, post-processing of detections using DBSCAN clustering, and accuracy assessment of the resulting stone-cairn maps.
The code and data provided in this repository are freely available for research and educational purposes. If you use any part of this repository in your research, publications, software, or derived works, please acknowledge the authors by citing the above paper.
This folder contains the shapefiles used in the study, including:
- Country boundaries
- Training circles (ground-truth stone cairns for the training region)
- Testing circles (ground-truth stone cairns for the testing region)
The following GeoTIFF files contain the Google Satellite imagery used in this study:
- GoogleSatTrain285mm.tif – Google Satellite image for the training region.
- GoogleSatTest285mm.tif – Google Satellite image for the testing region.
Due to GitHub file-size limitations, the training dataset components are provided as separate archives:
- train.zip – Training image tiles generated by
YOLOInput.py. - val.zip – Validation image tiles generated by
YOLOInput.py. - labels.zip – Annotation files corresponding to the training and validation tiles.
The following folders contain vector datasets used for training, validation, and performance assessment:
- TrainCircles – Ground-truth stone cairns within the training region.
- TestCircles – Ground-truth stone cairns within the testing region.
- PredictedBoxes – YOLO-predicted bounding boxes for the testing region.
- PredictedCircles – Predicted stone-cairn circles generated from YOLO detections after DBSCAN clustering.
- yolov8n.pt – Pretrained YOLOv8n model weights.
- data.yaml – Dataset configuration file used for YOLO training.
This folder contains the training logs, model outputs, and validation results obtained from the optimized YOLOv8n model.
Downloads the highest-resolution Google Satellite imagery, mosaics the image tiles, clips the mosaic to the input boundary shapefile, and exports the final RGB image as a GeoTIFF.
Prepares the training and validation image tiles and corresponding annotation files required for YOLO model training.
Trains the YOLOv8 model using the training and validation datasets specified in data.yaml.
Applies the best-performing trained YOLO model (best.pt) to a GeoTIFF image and predicts bounding boxes corresponding to stone cairns.
Converts YOLO-predicted bounding boxes into circular representations of stone cairns and performs DBSCAN-based clustering to merge overlapping detections.
Evaluates the accuracy of the predicted circles by comparing them with reference circles. The script computes the Root Mean Square Error (RMSE) and additional performance metrics, including precision, recall, and F1-score.