Core ML first
Fused Conv–BN, inference branch only, cached DFL grids (no meshgrid / arange), host NMS. ReLU: FP16 + 8-bit palettes on the Neural Engine. Converted SiLU: dense FP16 on GPU. iOS 16 and macOS 13.
Core ML. First.
Train an independent detector in Python. Ship Core ML to Apple silicon: palettized ReLU on the Neural Engine, dense FP16 SiLU on GPU. Code is MIT. Weights carry their own license, stated per checkpoint.
Inference-only export. Static DFL grids. ReLU by default. Palettized ReLU on ANE, dense FP16 SiLU on GPU. The Neural Engine is the product path, not an afterthought.
Fused Conv–BN, inference branch only, cached DFL grids (no meshgrid / arange), host NMS. ReLU: FP16 + 8-bit palettes on the Neural Engine. Converted SiLU: dense FP16 on GPU. iOS 16 and macOS 13.
Code is MIT. Weights carry their own license, stated per checkpoint. Choosing a model means choosing its license. GELAN COCO files are MIT. A model you train yourself is yours.
Drop in a Roboflow YOLO or YOLO-Seg export. Same data.yaml you already have.
One SDK. Train, validate, predict, export. Application code loads CoreYOLO files only. Prefer Detector; YOLO is a compatibility alias.
pip install coreyolo
from coreyolo import Detector
model = Detector("n") # GELAN n; also "s" / "m" / "l", or family="e2e"
model.train(data="data.yaml", epochs=100, imgsz=640)
model.save("weights/app.coreyolo")
model.export(imgsz=640) # ReLU: palettes+ANE; SiLU: dense FP16 GPU
# RF-DETR export is FP16 on the Neural Engine, palettes off
Pick the graph that matches the phone.
GELAN as in the YOLOv9 paper. Scales n / s / m / l match public v9-t / s / m / c. Export is the main branch only (no PGI aux). Train ReLU here for ANE. Converted SiLU stays on GPU.
C2f + Distribution Focal Loss. Host NMS. Detect and instance segmentation.
Original C3k2 + C2PSA graph. NMS-free top-300 at inference. You train it from scratch.
Set prediction on LibreYOLO’s Core ML contract for this family: fixed RGB image, ImageNet norm inside the graph, no NMS. Scales n / s / m / l at 384 / 512 / 576 / 704. CoreYOLO ships FP16 on the Neural Engine. Train from scratch (MIT).
Same GELAN trainer. Pick the scale for the device. Converted COCO weights for all four are in the zoo.
Phones, real-time camera. Matches public v9-t. Train with Detector("n") or convert v9-t.pt.
Mac and iPad. Convert v9-s.pt, or train ReLU with --recipe coco-s.
Accuracy-biased. Convert v9-m.pt, or train ReLU with --recipe coco-m.
Offline / max accuracy. Convert v9-c.pt, or train ReLU with --recipe coco-l.
Detection and instance segmentation today. Pose and OBB stay out of scope on purpose.
Anchor-free boxes at strides 8, 16, and 32. Class-aware NMS on the host for GELAN. Top-300 for E2E. Set prediction for RF-DETR, layout (1, Q, 6), no NMS.
Proto masks on P3, Roboflow YOLO-Seg polygons, three Core ML outputs. Assemble masks after NMS.