Instructions to use opensar-insight/vessel-detection-model with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- ultralytics
How to use opensar-insight/vessel-detection-model with ultralytics:
# Couldn't find a valid YOLO version tag. # Replace XX with the correct version. from ultralytics import YOLOvXX model = YOLOvXX.from_pretrained("opensar-insight/vessel-detection-model") source = 'http://images.cocodataset.org/val2017/000000039769.jpg' model.predict(source=source, save=True) - Notebooks
- Google Colab
- Kaggle
Vessel Detection Model
Inference models for detecting vessels (including dark/non-cooperative vessels not broadcasting AIS) in Sentinel-1 SAR data, developed as part of the OpenSAR Insight project. See the organization card for full project background, funding, and consortium details.
- Codebase: https://github.com/ESA-PhiLab/OpenSARInsight
- Project website: https://opensarinsightweb.web.uah.es/
- Training dataset: opensar-insight/vessel-detection-dataset
Model description
This repository contains the inference models for vessel detection in range-compressed Sentinel-1 SAR data:
- Teacher model (unrestricted):
yolo26s-pose_opensar_true_vessel_filtered_dataset_640px_unrestricted.ptโ a YOLO26s-Pose model used as the main/teacher model. - Student model (lightweight):
yolo26n-pose_feature_kd_from_s_640_300ep_feat4_lightweight.ptโ a YOLO26n-Pose model, distilled from the teacher via feature-based knowledge distillation, intended for faster/onboard deployment.
Both models were trained on the filtered, higher-quality subset of opensar-insight/vessel-detection-dataset. Vessels are detected as pose keypoints (bounding box plus orientation), supporting downstream estimation of heading in addition to location.
Files
| File | Role |
|---|---|
yolo26s-pose_opensar_true_vessel_filtered_dataset_640px_unrestricted.pt |
Teacher model (YOLO26s-Pose, 640px) |
yolo26n-pose_feature_kd_from_s_640_300ep_feat4_lightweight.pt |
Distilled student model (YOLO26n-Pose, 640px, 300 epochs, feature KD) |
Usage
These are Ultralytics YOLO-Pose checkpoints:
from ultralytics import YOLO
model = YOLO("yolo26s-pose_opensar_true_vessel_filtered_dataset_640px_unrestricted.pt")
results = model.predict("path/to/sar_patch.png", imgsz=640)
For dataset generation, training, and the full processing pipeline (Level-0 to range-compressed to inference), see backend/pipeline/dvd_use_case/ in the OpenSARInsight GitHub repository.
License
These model weights are distributed under AGPL-3.0, since the vessel-detection pipeline (backend/pipeline/dvd_use_case/) depends on Ultralytics YOLO, which is itself AGPL-3.0 licensed. Other components of the OpenSAR Insight codebase (dataset generation, RFI pipeline, geocoding, SARFI) are MIT-licensed โ see the repository LICENSE for the full breakdown.
Citation
If you use this model, please cite the OpenSAR Insight project:
@misc{opensarinsight,
title = {OpenSAR Insight: ML-ready datasets and models for direct insight generation from raw SAR data},
author = {{Indra Space} and {INTA} and {Universidad de Alcal\'a de Henares}},
howpublished = {\url{https://github.com/ESA-PhiLab/OpenSARInsight}},
note = {Funded by ESA \(\Phi\)-lab}
}
- Downloads last month
- 36