Instructions to use tillsc/perp-cnn with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- ultralytics
How to use tillsc/perp-cnn with ultralytics:
from huggingface_hub import hf_hub_download from ultralytics import YOLO # pick the weights file from this repo's "Files and versions" tab weights = hf_hub_download("tillsc/perp-cnn", "<weights>.pt") model = YOLO(weights) source = 'http://images.cocodataset.org/val2017/000000039769.jpg' model.predict(source=source, save=True) - Notebooks
- Google Colab
- Kaggle
perp-cnn โ Bowtip Detection
Detects the bow tip of boats in photofinish images. Used in perp_web for automated boat race timing.
Usage
import numpy as np
from perp_cnn import predict
image: np.ndarray = ... # HรWร3, BGR or RGB
results = predict(image)
for box in results[0].boxes:
x1, y1, x2, y2 = map(int, box.xyxy[0])
conf = float(box.conf[0])
Or install as a Git dependency via Poetry:
perp-cnn = { git = "https://github.com/tillsc/perp_cnn.git" }
Model
- Architecture: YOLO11n
- Input: arbitrary image size (resized to 640px internally)
- Output: bounding boxes for class
bowtip - Training data: photofinish images from rowing races
Performance
| Precision | 100% |
| Recall | 97.9% |
| Box accuracy (mAP50) | 99.5% |
| Box precision (mAP50-95) | 74.6% |
| CPU inference | ~19ms / ~52 FPS |
Training Notes
- No horizontal or vertical flips (boat orientation matters)
- No rotation or perspective warp
- Slight translation and scaling augmentation
- Downloads last month
- 8