GELAN — default
ELAN1, RepNCSPELAN4, SPPELAN, AConv, DFL head. Scales n / s / m / l match public v9-t / s / m / c. Export is inference-only (no PGI aux). Train ReLU for ANE; remap stays SiLU.
Models
Nano for phones. Small for Mac and iPad. Larger when accuracy leads and the model can wait.
GELAN (default) uses a fixed channel table; n / s / m / l match v9-t / s / m / c. DFL follows the usual n / s / m / l / x ladder. E2E uses depth 0.50 on n / s / m.
| Scale | DFL depth / width | Params (detect, nc=80) | Typical use |
|---|---|---|---|
| n | 0.33 / 0.25 | 2.13M (GELAN) · 3.16M (DFL) · 2.73M (E2E) | iPhone, real-time camera |
| s | 0.33 / 0.50 | 7.32M (GELAN) · 11.17M (DFL) · 10.65M (E2E) | Mac / iPad |
| m | 0.67 / 0.75 | 20.22M (GELAN) · 25.90M (DFL) · 22.63M (E2E) | Accuracy-biased |
| l / x | 1.00 / 1.00–1.25 | 25.59M (GELAN-l) · 43.69M (DFL-l) · 27.17M (E2E-l) | Offline / max accuracy |
Same trainer. Different graphs. Default is --family gelan (YOLOv9). Also dfl, e2e, or rfdetr.
ELAN1, RepNCSPELAN4, SPPELAN, AConv, DFL head. Scales n / s / m / l match public v9-t / s / m / c. Export is inference-only (no PGI aux). Train ReLU for ANE; remap stays SiLU.
Older C2f, SPPF, PAN-FPN, decoupled DFL head, reg_max=16. Eval is decoded xywh plus class scores. NMS on the host. Core ML layout (1, 4+nc, N).
Original C3k2, residual SPPF, C2PSA, dual TAL head, reg_max=1. Eval is NMS-free top-300, (B, 300, 6) as xyxy, conf, cls. Export drops the one-to-many train head. Train from scratch.
Set prediction, on LibreYOLO's Core ML contract for this family: fixed RGB image, ImageNet norm inside the graph, no NMS. n / s / m / l at 384 / 512 / 576 / 704. CoreYOLO ships it as FP16 on the Neural Engine. Train from scratch (MIT). Upstream Nano–Large stays Apache-2.0. XLarge / 2XLarge (PML 1.0) are refused.
Binaries live on GitHub Releases, not in git. mAP stays blank until you record COCO val.
Converted zoo rows (n-coco, s-coco, m-coco, l-coco) are MIT and keep SiLU (GPU). Train recipes are original MIT weights (ReLU, Neural Engine).
| Id | Graph | Task | Act | Compute | How | License |
|---|---|---|---|---|---|---|
| coreyolo-n-coco | gelan | detect | SiLU | GPU | coreyolo convert --weights v9-t.pt |
MIT |
| coreyolo-s-coco | gelan | detect | SiLU | GPU | coreyolo convert --weights v9-s.pt |
MIT |
| coreyolo-m-coco | gelan | detect | SiLU | GPU | coreyolo convert --weights v9-m.pt |
MIT |
| coreyolo-l-coco | gelan | detect | SiLU | GPU | coreyolo convert --weights v9-c.pt |
MIT |
| coreyolo-n-coco-seg | gelan | segment | ReLU | ANE | coreyolo train --task segment --family gelan |
MIT |
| coreyolo-n-coco-relu | gelan | detect | ReLU | ANE | coreyolo train --recipe coco-n |
MIT |
| coreyolo-e2e-n-coco | e2e | detect | ReLU | ANE | coreyolo train --recipe coco-n-e2e |
MIT |
| coreyolo-rfdetr-n | rfdetr | detect | GELU | ANE | coreyolo train --recipe coco-n-rfdetr |
MIT |
See weights/manifest.json and weights/LICENSE_NOTICE.txt in the repository.
CoreYOLO code is MIT. Converted zoo weights are MIT. A model you train yourself is yours.
Choosing a model means choosing its license.