YOLOv10とYOLOv5#
適切なニューラルネットワークアーキテクチャを選ぶことは、本番環境でのコンピュータービジョンパイプラインを成功させるうえで重要です。このページでは、リアルタイム物体検出の発展に大きな影響を与えた2つのモデル、YOLOv10とYOLOv5を詳しく技術的に比較します。どちらのモデルもAIコミュニティに大きな影響を与えてきましたが、ディープラーニングのアーキテクチャ設計において異なる時代と理念を代表しています。
このガイドでは、平均適合率(mAP)、推論レイテンシ、パラメーター効率、エコシステムのサポートに基づいてこれらのアーキテクチャを評価し、デプロイのニーズに最適なモデルを選べるようにします。
モデルの概要#
YOLOv10:リアルタイムのエンドツーエンド物体検出#
清華大学の研究者によって開発されたYOLOv10は、NMSの後処理を不要にする新しいアプローチを導入しました。
- 著者: Ao Wang、Hui Chen、Lihao Liuほか
- 組織: 清華大学
- 日付: 2024-05-23
- 研究論文: arXiv:2405.14458
- ソースコード: YOLOv10 GitHubリポジトリ
YOLOv10の最大の特徴は、エンドツーエンドのNMSフリー設計です。従来、YOLOモデルは非最大値抑制(NMS)を使って重複するバウンディングボックスを除外していました。YOLOv10は、NMSフリーのトレーニングに一貫性のあるデュアル割り当てを利用することで、推論レイテンシーのばらつきを抑え、デプロイのロジックを簡素化します。さらに、アーキテクチャには、さまざまなコンポーネントを最適化して計算の冗長性を削減する、効率と精度を総合的に重視した設計が採用されています。
YOLOv5:使いやすさの業界標準#
2020年6月にUltralyticsからリリースされたYOLOv5は、オープンソースのビジョンAIフレームワークにおける使いやすさへの期待を高めました。現在も世界で最も広くデプロイされているアーキテクチャの一つです。
- 著者: Glenn Jocher
- 組織: Ultralytics
- 日付: 2020-06-26
- ソースコード: YOLOv5 GitHubリポジトリ
YOLOv5は、使いやすさと充実したメンテナンス体制のエコシステムで知られています。すべてPyTorchで記述されており、トレーニング、検証、ONNXやTensorRTなどの形式へのエクスポートをすぐに利用できます。物体検出に特化したYOLOv10とは異なり、YOLOv5は汎用性も備えています。YOLOv5の元のリポジトリでは、v7.0でインスタンスセグメンテーション、v6.2で画像分類が追加されました。
パフォーマンスと指標の比較#
速度と精度の関係を可視化することは、速度の制約内で最も高い精度を提供するモデルを特定するうえで重要です。こうした性能指標を理解することは、特定のハードウェア制約に合ったモデルを選ぶための基本です。
| モデル | サイズ (ピクセル) | mAPval 50-95 | 速度 CPU ONNX (ms) | 速度 T4 TensorRT10 (ms) | パラメーター (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv10n | 640 | 38.5 | - | 1.84 | 2.3 | 6.7 |
| YOLOv10s | 640 | 46.3 | - | 2.49 | 7.2 | 21.6 |
| YOLOv10m | 640 | 51.1 | - | 4.74 | 15.4 | 59.1 |
| YOLOv10b | 640 | 52.5 | - | 5.74 | 19.1 | 92.0 |
| YOLOv10l | 640 | 53.2 | - | 7.28 | 24.4 | 120.3 |
| YOLOv10x | 640 | 54.4 | - | 10.70 | 29.5 | 160.4 |
| YOLOv5n | 640 | 28.0 | - | 1.12 | 1.9 | 4.5 |
| YOLOv5s | 640 | 37.4 | - | 1.92 | 7.2 | 16.5 |
| YOLOv5m | 640 | 45.4 | - | 4.03 | 21.2 | 49.0 |
| YOLOv5l | 640 | 49.0 | - | 6.61 | 46.5 | 109.1 |
| YOLOv5x | 640 | 50.7 | - | 11.89 | 86.7 | 205.7 |
技術分析#
- 精度(mAP):YOLOv10は世代の進化に伴う明確な精度向上を示しています。たとえばYOLOv10-Xモデルは54.4% mAPvalを達成し、YOLOv5xの50.7% mAPを上回ります。この向上の大部分は、YOLOv10のアンカーフリーヘッドと、大規模カーネル畳み込みや部分的なセルフアテンションなど、精度を重視した改良によるものです。
- 推論レイテンシー:YOLOv5モデルはT4 TensorRTの生のベンチマークで非常に高速ですが(例:YOLOv5nは1.12 ms)、YOLOv10はNMSの後処理を完全に省略できます。実際のエンドツーエンドのデプロイでは、YOLOv10のNMSフリー設計によりレイテンシーがより安定します。これは自動運転車やロボティクスなどのリアルタイムアプリケーションで重要です。
- パラメーター効率:YOLOv10モデルは優れた性能バランスを実現します。YOLOv10-SはYOLOv5sと同じ7.2M個のパラメーターで46.3% mAPを達成します。一方、YOLOv5sのmAPは37.4%です。
NVIDIA JetsonなどのエッジAIデバイスにデプロイする場合、NMSロジックのないモデル(nms=Falseを使用してエクスポートしたYOLOv10またはYOLO26)は、多くの場合、TensorRT向けにより円滑にコンパイルでき、CPUへのフォールバック処理を回避できます。
ユースケースと推奨事項#
YOLOv10とYOLOv5のどちらを選ぶかは、具体的なプロジェクト要件、デプロイの制約、エコシステムに関する希望によって異なります。
YOLOv10を選ぶ場合#
YOLOv10は、次の用途に適しています:
- NMSを使用しないリアルタイム検出: 非最大抑制を使用しないエンドツーエンド検出によって、デプロイを簡素化できるアプリケーション。
- 速度と精度のバランス: さまざまなモデルスケールで、推論速度と検出精度の優れたバランスが必要なプロジェクト。
- レイテンシーが安定している必要のあるアプリケーション: ロボティクスや自律システムなど、予測可能な推論時間が重要なデプロイシナリオ。
YOLOv5を選ぶ場合#
YOLOv5は、次のような場合に推奨されます。
- 本番環境での実績:YOLOv5の長年にわたる安定性の実績、充実したドキュメント、大規模なコミュニティが重視される既存のデプロイ環境に適しています。
- リソースが限られたトレーニング: GPUリソースが限られており、YOLOv5の効率的なトレーニングパイプラインと低いメモリ要件が有利となる環境です。
- 幅広いエクスポート形式への対応: ONNX、TensorRT、CoreML、LiteRTなど、多様な形式でのデプロイが必要なプロジェクトです。
Ultralytics (YOLO26)を選ぶ場合#
多くの新規プロジェクトにおいて、Ultralytics YOLO26はパフォーマンスと開発者体験を最適なバランスで提供します。
- NMSを使用しないエッジデプロイ: 非最大抑制の後処理を複雑化させずに、安定した低レイテンシー推論を必要とするアプリケーション。
- CPUのみの環境: 専用GPUによる高速化機能のないデバイスでは、YOLO26nはCPU上でYOLO11nより最大43%高速に動作します。
- 小物体検出: ドローンによる空撮画像やIoTセンサー分析などの難しいシナリオでは、ProgLossとSTALが小さな物体の精度を向上させます。
Ultralyticsの強み#
YOLOv10は優れた検出性能を備えていますが、学術機関のリポジトリに依存すると、本番パイプラインが複雑になることがあります。公式のUltralytics Pythonパッケージを使用すると、高度な機能に加え、YOLOv5とYOLOv10の両方に対応する統一されたエコシステムを利用できます。
- トレーニング効率:Ultralytics YOLOアーキテクチャは、トレーニング時のメモリ使用量を抑えるよう最適化されています。多くのCUDAメモリを必要とする、より大規模なRT-DETRなどのTransformerモデルとは異なり、YOLOv5とYOLOv10は一般的なコンシューマー向けGPUで無理なくトレーニングできます。
- エコシステムとの統合:Ultralytics Platformを使うと、開発者はデータセットを視覚的に管理してクラウドでトレーニングできます。また、PythonパッケージはWeights & Biasesなどの実験トラッカーと統合でき、ハイパーパラメーター調整もサポートします。
コード例:トレーニング#
Ultralyticsライブラリでは、モデル文字列を変更するだけで、これらのアーキテクチャを簡単に切り替えられます。トレーニングパイプラインがデータ拡張、スケーリング、オプティマイザーの設定を自動で処理します。
from ultralytics import YOLO
# YOLOv5を使用するには:
# model = YOLO("yolov5su.pt")
# YOLOv10を使用するには:
model = YOLO("yolov10s.pt")
# カスタムデータセットでモデルをトレーニングします
results = model.train(
data="coco8.yaml",
epochs=100,
imgsz=640,
batch=16,
device=0, # GPU 0を使用します
)
# トレーニング済みモデルをONNX形式にエクスポートします
path = model.export(format="onnx")次世代モデル:Ultralytics YOLO26#
新しい機械学習プロジェクトを始める場合は、最新のUltralytics YOLO26をご検討ください。2026年1月にリリースされ、近年のYOLO世代における主要な技術革新を組み合わせています。
YOLO26は、YOLOv10のエンドツーエンドNMSフリーデザインをオプションのone-to-oneヘッド(nms=False)として取り入れ、デプロイを簡素化します。YOLO26では、ほかにも次のような改善が導入されています。
- CPU推論が最大43%高速:Distribution Focal Loss(DFL)モジュールを除去したことで、YOLO26nは一般的なCPU上でYOLO11nより最大43%高速に動作します。そのため、YOLO26はモバイルへのデプロイや低消費電力のIoTセンサーに適しています。
- MuSGDオプティマイザー:Moonshot AIのKimi K2など、大規模言語モデル(LLM)のトレーニング手法に着想を得たYOLO26は、SGDとMuonのハイブリッドを使用します。これにより、従来のYOLOモデルで使われていた標準的なSGDやAdamWオプティマイザーよりも、安定したトレーニングと高速な収束を実現します。
- ProgLoss + STAL:Progressive Lossと小物体を考慮したラベル割り当てにより、小物体の認識性能が向上します。これは、ドローン画像や航空セキュリティの用途で重要です。
- タスク別の改良:バウンディングボックス検出に特化したYOLOv10とは異なり、YOLO26は検出、インスタンスセグメンテーション、セマンティックセグメンテーション、深度推定、分類、姿勢推定、OBBをサポートします。また、姿勢推定向けのResidual Log-Likelihood Estimation(RLE)や、回転バウンディングボックス(OBB)向けの専用角度損失など、タスク別の改良も備えています。
これらのアーキテクチャをほかの検出器ファミリーと比較するには、YOLO11とEfficientDetの比較およびRT-DETRとYOLOv8の比較をご覧ください。
実績のあるYOLOv5、NMSフリーのYOLOv10、最新のYOLO26のいずれを利用する場合でも、Ultralyticsエコシステムは、ビジョンAIアプリケーションを迅速に本番環境へ導入するためのツールを提供します。