Ultralytics YOLOのモデルサイズを選ぶ
YOLO26のn、s、m、l、xを比較し、対象ハードウェアでベンチマークを実施して、レイテンシの予算に収まる最小サイズを選びます。
大きすぎるモデルを選ぶと、30 FPSのカメラアプリが12 FPSで動作します。一方、小さすぎるモデルを選ぶと、GPU上で大きなモデルを使えば得られる精度を活かせません。学習したサイズがそのままデプロイするサイズになるため、この選択は長時間の学習を始める前に行います。
YOLO26には、7つすべてのタスクに対応するn、s、m、l、xの5つのサイズがあります: detect、segment、semantic segmentation、classify、pose、OBB、depth。このレッスンでは、フレームレートをミリ秒単位の予算に換算し、自分のマシンでBenchmarkモードを使って2つのサイズを測定し、適切なサイズを選びます。
実践的
モデルのラインナップを把握する#

以下はYOLO26のドキュメントに掲載されている、640ピクセルでのCOCO物体検出の公式数値です:
| モデル | パラメーター数(M) | FLOPs(B) | mAP50-95 | CPU ONNX(ミリ秒) | T4 TensorRT10(ミリ秒) |
|---|---|---|---|---|---|
yolo26n | 2.4 | 5.5 | 40.9 | 38.9 | 1.7 |
yolo26s | 9.5 | 20.9 | 48.6 | 87.2 | 2.5 |
yolo26m | 20.4 | 68.4 | 53.1 | 220.0 | 4.7 |
yolo26l | 24.8 | 86.8 | 55.0 | 286.2 | 6.2 |
yolo26x | 55.7 | 194.4 | 57.5 | 525.8 | 11.8 |
すべてのタスクで各サイズが利用できます。yolo26s-seg.pt、yolo26s-sem.pt、yolo26s-depth.pt、yolo26s-cls.pt、yolo26s-pose.pt、yolo26s-obb.pt のように、サフィックスを切り替えます。古いプロジェクトを移行する場合は、YOLO11とYOLO26の比較で変更点を確認できます。
表は「次のサイズにすると、どれくらいのコストがかかるか」という観点で読みます:
| 段階 | mAPの増加 | 追加のFLOPs | CPUレイテンシの倍率 |
|---|---|---|---|
| n → s | +7.7 | ×3.8 | ×2.2 |
| s → m | +4.5 | ×3.3 | ×2.5 |
| m → l | +1.9 | ×1.3 | ×1.3 |
| l → x | +2.5 | ×2.2 | ×1.8 |
最初の段階が最も費用対効果に優れています。m 以降は、COCO精度を1ポイント上げるコストが増えていきます。また、80種類の多様なクラスを持つCOCOは、ほとんどの実際のプロジェクトより難しいタスクです。コンベア上の1製品など、対象が限定されたタスクでは、n と s の精度が m と1ポイント以内に収まることもよくあります。
予算から決める#
推論レイテンシの予算は、1000ミリ秒 ÷ 目標FPSで求めます。モデルは、デコード、描画、独自のロジックとこの予算を共有する必要があります。一般的な初期設定の目安:
| 目標 | まず試すサイズ |
|---|---|
| スマートフォン、Raspberry Pi、ブラウザー、その他の小型エッジAIデバイス | n |
| ノートパソコンまたはデスクトップのCPU、10~30 FPS | n から始め、余裕があれば s を試します |
| 単体GPU、リアルタイム動画 | sまたはm |
| オフラインのバッチ処理では、精度を最優先します | lまたはx |
実例:2つのサイズを測定する#
ベンチマークモードでは、モデルをエクスポートし、coco8で検証してから、お使いのマシンで推論時間を計測します。format=onnxを指定すると実行対象が1つの形式に限定され、数秒で完了します。省略すると、すべてのエクスポート形式を比較します。
yolo benchmark model=yolo26n.pt imgsz=640 format=onnx
yolo benchmark model=yolo26s.pt imgsz=640 format=onnxApple M5 Pro搭載ノートPCのCPUで得られた実測値:
| Format Status❔ Size (MB) metrics/mAP50-95(B) Inference time (ms/im) FPS |
| 1 ONNX ✅ 9.5 0.6693 13.87 72.08 | <- yolo26n
| 1 ONNX ✅ 36.5 0.6654 30.87 32.39 | <- yolo26s30 FPS(33 ms)の予算に照らして確認します。
yolo26n、13.87 ms:デコードと描画に19 msの余裕を残して収まります。yolo26s、30.87 ms:ぎりぎり収まりますが、ほかの処理に使える余裕はありません。同じベンチマークでも、マシン上でほかのジョブが実行されている間は60 msかかりました。Size (MB):ONNXファイルのサイズです。アプリのダウンロードやモバイル端末のメモリ使用量に関わります。metrics/mAP50-95(B):ここでは無視してください。coco8の検証画像は4枚だけです。エクスポートが機能することの確認には十分ですが、精度を比較するには少なすぎます。
判断:まずyolo26nを学習し、フォールバックとしてyolo26sをより低いimgszに設定します。
次の間違いに注意する#
症状: ノートPCで70 FPSだったモデルが、エッジデバイスでは8 FPSになります。対処: モデルを実行するデバイスで、他のプロセス、カメラのデコード、実際のランタイム形式を含む現実的な負荷のもとでベンチマークしてください。
症状: メモに「sのほうがnより高速」と書かれています。原因: 片方の実行では imgsz=480 または異なる形式が使われていました。対処: 同じ imgsz、形式、バッチサイズで比較し、一度に変更する変数は1つにしてください。
x をトレーニングして、後から モデルのプルーニング や量子化で n に縮小する計画は避けてください。アーキテクチャを小さくするには再トレーニングが必要です。まずサイズを選び、量子化は適切なサイズの代わりではなく、追加の高速化手段として扱ってください。
バッチ処理、量子化、ランタイムの選択など、レイテンシをさらに掘り下げる作業については、Productionコースのコストとレイテンシのチューニングを参照してください。また、パフォーマンス指標ガイドでは、各精度指標について説明しています。
解答を表示
Budget: 30 FPS on a laptop CPU -> 33 ms per frame, shared with decode and drawing
Measured: ONNX at 640 -> yolo26n 13.9 ms (19 ms headroom), yolo26s 30.9 ms (none; 60 ms under load)
Decision: train yolo26n first. If accuracy on our val set falls short,
try yolo26s at imgsz=480 and re-benchmark before committing.