Skip to content

Repository files navigation

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.

Citation and Usage

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.

Repository Contents

Border.zip

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)

Google Satellite Imagery

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.

YOLO Training Dataset

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.

Shapefile Folders

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.

YOLO Configuration Files

  • yolov8n.pt – Pretrained YOLOv8n model weights.
  • data.yaml – Dataset configuration file used for YOLO training.

runs-optimal.zip

This folder contains the training logs, model outputs, and validation results obtained from the optimized YOLOv8n model.

Python Scripts

GoogleSatClip.py

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.

YOLOInput.py

Prepares the training and validation image tiles and corresponding annotation files required for YOLO model training.

YOLOTrain.py

Trains the YOLOv8 model using the training and validation datasets specified in data.yaml.

YOLOOutput.py

Applies the best-performing trained YOLO model (best.pt) to a GeoTIFF image and predicts bounding boxes corresponding to stone cairns.

YOLOBox2Circ.py

Converts YOLO-predicted bounding boxes into circular representations of stone cairns and performs DBSCAN-based clustering to merge overlapping detections.

CircRMSE.py

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.

About

Just another repository

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages