HuroCup YOLO Models

YOLO26 detectors for five FIRA HuroCup events (archery, basketball, marathon, weight lifting, united soccer). They are the perception models of the vision–control architecture described in Efficient Integration of Vision and Control for Resource-Constrained Humanoid Robots, deployed on a ROBOTIS OP3 and a Hiwonder AiNex.

The training images and labels are in SHolic/hurocup-yolo-dataset.

Models

Every run is a YOLO26 model trained with Ultralytics 8.4.80 for 100 epochs at batch size 16. Each directory holds the best.pt weights, the OpenVINO and ncnn exports of best.pt, and the training record (args.yaml, results.csv, curves and confusion matrices).

Deployed models (imgsz 320)

Directory Event Classes Base Deployed on
archery Archery Target yolo26n OP3, AiNex
basketball Basketball Ball, Basket yolo26n OP3, AiNex
marathon Marathon forward, left, right yolo26n OP3
marathon_marker Marathon marker yolo26n AiNex
weight_lifting Weight lifting Bar yolo26n OP3, AiNex
united_soccer_clean United soccer Ball yolo26n OP3, AiNex

The two platforms use different marathon models. The OP3 classifies the three direction signs directly. The AiNex is about 350 mm tall, so its camera sits low and a distant arrow subtends too few pixels to classify. It therefore runs the class-agnostic marathon_marker detector, trained on AprilTags and arrow signs as a single marker class, which keeps the marker trackable at range; AprilTag detection and arrow classification take over the turn decision once the robot is close.

Ablation and auxiliary runs

Directory Purpose Base imgsz
archery_640, basketball_640, weight_lifting_640 Input-resolution comparison yolo26n 640
archery_s, basketball_s Model-capacity comparison yolo26s 320
united_soccer Three-class united soccer detector (obstacle, football, goalpost) yolo26n 320

The united soccer model used on both platforms, and referred to as united_soccer in the paper, is united_soccer_clean. The three-class united_soccer run is not part of the reported results.

Accuracy of the deployed models

Best epoch by Ultralytics fitness, on each event's validation split (number of validation images in brackets).

Model mAP@0.5 mAP@0.5–0.95 Precision Recall
archery (17) 0.995 0.993 0.992 1.000
basketball (15) 0.987 0.843 0.940 0.951
marathon (45) 0.981 0.894 0.930 0.942
weight_lifting (15) 0.991 0.766 0.937 0.992
united_soccer_clean (15) 0.988 0.842 0.969 0.933
marathon_marker (7) 0.813 0.447 0.857 0.806

Each event has 50–300 self-collected images (see the dataset card), so these figures describe fit to a small, single-site dataset rather than general-purpose detection accuracy.

Files

<run>/
β”œβ”€β”€ args.yaml                      training arguments
β”œβ”€β”€ results.csv, results.png       per-epoch metrics
β”œβ”€β”€ Box*_curve.png, confusion_matrix*.png, labels.jpg
└── weights/
    β”œβ”€β”€ best.pt                    PyTorch weights (best epoch)
    β”œβ”€β”€ last.pt                    PyTorch weights (last epoch)
    β”œβ”€β”€ best_openvino_model/       OpenVINO IR, used on the OP3 (Intel i3-6100U)
    └── best_ncnn_model/           ncnn, used on the AiNex (Raspberry Pi)

All exports were made with Ultralytics 8.4.80 at imgsz 320 (640 for the _640 runs), with end2end: false, so NMS is not part of the exported graph.

Usage

from huggingface_hub import hf_hub_download
from ultralytics import YOLO

path = hf_hub_download("SHolic/hurocup-yolo-models", "archery/weights/best.pt")
model = YOLO(path)
results = model.predict("image.jpg", imgsz=320)

To use an export, download its whole directory and pass the directory to YOLO:

from huggingface_hub import snapshot_download
from ultralytics import YOLO

root = snapshot_download("SHolic/hurocup-yolo-models", allow_patterns="archery/weights/best_ncnn_model/*")
model = YOLO(f"{root}/archery/weights/best_ncnn_model")

On the robots the models run with Ultralytics 8.4.45 and OpenVINO 2026.1.0 (CPU plugin) on the OP3, and Ultralytics 8.1.31 and ncnn 1.0.20260526 on the AiNex.

Limitations

  • Trained on 50–300 images per event, collected in one laboratory under its lighting, with the competition props used there. Expect lower accuracy on other fields, props or lighting.
  • The models detect competition objects only; they are not general-purpose detectors.
  • basketball loses accuracy at high IoU thresholds (mAP@0.5–0.95 0.843), which follows from the 320 input size.

License

The models were trained with Ultralytics and are released under AGPL-3.0, the license of the Ultralytics framework.

Citation

@article{sheng2026efficient,
  author  = {Sheng, Haoliang and Zheng, Xingyu and Lau, Meng Cheng},
  title   = {Efficient Integration of Vision and Control for Resource-Constrained Humanoid Robots},
  journal = {IEEE Access},
  year    = {2026},
  note    = {Under review}
}

This work builds on our earlier vision system:

@article{lau2026modular,
  author  = {Lau, Meng Cheng and Pottier, Nicolas},
  title   = {A Modular Vision System for Practical Object Detection on Resource-Constrained Humanoid Robots},
  journal = {Biomimetics},
  volume  = {11},
  number  = {6},
  pages   = {363},
  year    = {2026},
  doi     = {10.3390/biomimetics11060363}
}
Downloads last month
686
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support

Dataset used to train SHolic/hurocup-yolo-models