Meteorix DETR-ResNet-50 (meteor detection)
DETR-ResNet-50 fine-tuned from facebook/detr-resnet-50 to detect meteors (single class meteor)
in ground-based night-sky images, as part of the Meteorix study comparing YOLO26n, RF-DETR Small and DETR-ResNet-50.
Usage
import torch
from PIL import Image
from transformers import DetrForObjectDetection, DetrImageProcessor
model = DetrForObjectDetection.from_pretrained("Didrien/meteorix-detr-resnet50").eval()
processor = DetrImageProcessor.from_pretrained("Didrien/meteorix-detr-resnet50")
image = Image.open("sky.jpg").convert("RGB")
width, height = image.size
# The model was trained on square 800x800 images only: resize to that format before inference.
inputs = processor(images=image.resize((800, 800)), return_tensors="pt")
with torch.no_grad():
outputs = model(**inputs)
detections = processor.post_process_object_detection(
outputs, threshold=0.5, target_sizes=torch.tensor([[height, width]])
)[0]
Feed square images: on non-square images given at their native aspect ratio, the predicted boxes are shifted.
Training
- Full fine-tuning of every layer, 300 epochs, AdamW (lr 1e-4, backbone 1e-5, weight decay 1e-4), learning rate divided by 10 after epoch 200, effective batch size 64, gradient clipping 0.1, horizontal flip and multi-scale resizing (shortest side 480-800 px), auxiliary decoder losses.
- Data: Mendeley meteor image dataset (Gradvohl & Shirasuna, DOI 10.17632/4k98n84d9g.1, CC BY 4.0), 3,849 training / 550 validation / 1,100 test images, 800x800.
Results (image level, confidence 0.5, matching IoU 0.5)
| Test set | Precision | Recall | F1 |
|---|---|---|---|
| Mendeley test split (1,100 images) | 0.969 | 0.979 | 0.974 |
| NEO-Bench UAEMMN, all splits (1,382 images) | 0.909 | 0.764 | 0.830 |
Mean latency on an RTX 4090: 21.6 ms per image.