TurtleDetector detects sea turtles, their heads, and their flippers. For flippers, it distinguishes front/rear and left/right flippers, enabling precise matching for re-identification of individual turtles. It is able to detect sea turtles both under and above water.

Training
Two sources were used for training:
- SeaTurtleID2022: A large database of 438 individual loggerhead turtles spanning 13 years. All photos are underwater.
- TurtlesOfSMSRC: Emerging database of mostly juvenile green turtles of both underwater photos and photos from rescue centres. Only the latter were chosen to complement the SeaTurtleID2022 database.
Usage
The model can be used as any ultralytics model. First, download and load the model.
from huggingface_hub import hf_hub_download
from ultralytics import YOLO
path_model = hf_hub_download(
repo_id="BVRA/TurtleDetector",
filename="turtle_detector.pt",
)
model = YOLO(path_model)
Then download an image (or use yours) and run the prediction.
import requests
from io import BytesIO
from PIL import Image
def load_image(url):
r = requests.get(url, timeout=30)
r.raise_for_status()
return Image.open(BytesIO(r.content)).convert("RGB")
img_url = "https://huggingface.co/BVRA/TurtleDetector/resolve/main/images/321595639_581630651.jpg"
img = load_image(img_url)
result = model.predict(img, verbose=False, save=False, show=False)[0]
img_annotated = result.plot()[:, :, ::-1]
Image.fromarray(img_annotated)
Model tree for BVRA/TurtleDetector
Base model
Ultralytics/YOLO11