タイトルで全てなのですが
Ultralyticsのyolov8のモデルと、yolo11のモデルの入出力は同じなので、コードの変更をすることなくモデルの差し替えが可能です!
PythonでUltralyticsを利用しているのであれば、Ultralyticsが全てをいい感じに処理してくれてるんだろう、くらいの話なのですが、エクスポートしたONNXモデルをC++ ONNXRUNTIMEなどで利用している場合でも、コードの変更なしに、モデルの差し替えだけでyolov8からyolo11に変更できます。
きっかけは自作物体検出アプリの処理速度改善アイデア
yolov8とyolo11の入出力が同じなのかな?と調べたきっかけは、自作物体検出アプリの処理速度改善のアイデアとしてでした。
物体検出モデルにはpython Ultralytics yolov8をカスタムデータセットで学習し、ONNXエクスポートしてC++ ONNXRUNTIME DirectMLやTensorRT-RTXなどで利用しています。
yolov8の代わりに、Ultralyticsの最新の安定版の物体検出モデルyolo11を利用したら処理速度が更に改善できるのではないか?
そんな風に考えて検索してみると"yolo11の方が速いよ"アピールをUltralytics公式でしているではありませんか!

yolov8とyolo11のonnxモデルの入れ替えでコードの変更は必要か?
UltralyticsのウェブページにはCHAT AIがあるので、そのまま質問してみました。
You: C++ ONNXで、yolov8のカスタムモデルを利用して物体検出アプリを作成しています。yolo11のonnxモデルを準備した時、c++ onnxruntimeのコードを変更せずにonnxモデルだけ入れ替えるだけで、yolo11の物体検出アプリとして機能するでしょうか
Ultralytics AI: 結論から申し上げますと、多くの場合ONNXモデルを入れ替えるだけでそのまま動作します。
YOLO11はYOLOv8と同じUltralytics 統合APIを採用しており、出力テンソルの構造(Shapeや次元順序)が共通化されています。そのため、後処理(NMSや座標変換)のロジックがYOLOv8に準拠していれば、コードの変更は不要です。
注意点と確認事項
- 入出力サイズ:
yolo export時にimgszを変更した場合は、C++側の入力リサイズ処理を合わせる必要があります。- タスクの一致: YOLOv8で「物体検出(Detect)」を使用していたなら、YOLO11も「Detect」モデルを使用してください。
- 効率の向上: YOLO11はYOLOv8と比較して、同等以上の精度を維持しつつパラメータ数が大幅に削減されているため、モデルを入れ替えるだけで推論の高速化が期待できます。
変換コマンド例
yolo export model=yolo11n.pt format=onnx simplify=true詳細はONNX Exportガイドもあわせてご確認ください。✅
yolo11を学習して早速アプリに載せてみた!
コード変更不要らしいので、早速学習を回して、アプリに載せてみました!
コード変更せずにONNXファイルを入れ替えるだけで、これまでと似たような物体検出処理結果を得ることができました!
そしてモデル入れ替えによる改善結果は!
| yolov8m.onnx | yolo11m.onnx | |
|---|---|---|
| パラメータ数 | 25936904 | 20127378 |
| ファイルサイズ | 50.8MB | 39.5MB |
| 処理速度(DirectML) | 50FPS | 48FPS |
| 処理速度(TensorRT-RTX) | 74FPS | 72FPS |
速くなっていないどころか、やや遅くなっている、だと!?
yolo11のyolov8に対する真価
実はまだ自作アプリでは評価中なのですが、いくつかyolo11とyolov8について評価した結果を検索してみたところ、
- バッチ処理での処理速度(FPS)はyolo11はyolov8にやや劣る
- yolo11はyolov8に比べて誤検出が少ない
- yolo11はyolov8に比べ、他の物体に部分的に隠れた状態での検出精度が高い
わたし的yolo11、yolov8モデルまとめ
- yolo11モデルはyolov8モデルと入出力が同じのため、コードの変更なく、モデルの入れ替えが可能です
- yolo11モデルでは、yolov8より少ないパラメータ、小さいファイルサイズで同等以上の検出精度が得られます
- バッチ処理のFPSではyolo11はyolov8よりやや劣ります
- yolo11はyolov8に比べ誤検出が少ない
(らしい。評価中。確かに荒れてないような・・?) - CPU推論などエッジ環境での推論ではyolov8よりyolo11が良い
(らしい。当方ではあまり関係ないので眼中になし)
私の方では、少しFPSが劣るのは残念ですが、検出結果がより良いのであればyolo11も十分検討に値するかな?と考えています。
