WormML โ YOLOv11 Worm Counting Weights
Pretrained YOLOv11-Large checkpoints for counting C. elegans worms across four imaging systems. Each model was trained on images from a specific camera and should be used with its matching preprocessing pipeline.
Models
| File | Camera | Preprocessing |
|---|---|---|
og_best.pt |
OG (original lab microscope) | Hough circle crop โ resize 1344ร1344 |
tau_best.pt |
Tau imaging system | Histogram equalisation + circle crop |
lb_best.pt |
LoopBio automated platform | Circle crop + colour inversion + augmentation |
uva_best.pt |
UVA external dataset | No preprocessing |
Usage
Download all weights with one command using the WormML repository:
git clone https://github.com/tommyli88/wormml.git
cd wormml
pip install -r requirements.txt
python scripts/download_weights.py
Or download a single camera:
python scripts/download_weights.py --camera og
Run inference on a preprocessed image:
from ultralytics import YOLO
model = YOLO("weights/og_best.pt")
results = model("plate_image.jpg", conf=0.35, iou=0.30)
print(f"Worm count: {len(results[0].boxes)}")
Recommended Thresholds
These confidence and IoU thresholds were tuned on each camera's validation set to minimise mean absolute error:
| Camera | Confidence | IoU |
|---|---|---|
| OG | 0.35 | 0.30 |
| Tau | 0.36 | 0.25 |
| LB | 0.265 | 0.30 |
| UVA | 0.32 | 0.30 |
Training
All models use YOLOv11-Large (yolo11l.pt) trained for 100 epochs. Camera-specific hyperparameters (warmup epochs, box loss weight, learning rate, augmentation) are documented in the configs folder of the main repository.
Citation
@misc{wormml2024,
title = {WormML: A Cross-Camera Pipeline for C. elegans Worm Counting},
year = {2026},
note = {\url{https://github.com/tommyli88/wormml}}
}