DAMO-YOLOとYOLOv10:効率的なリアルタイム物体検出の進化
コンピュータビジョンの分野では、リアルタイム物体検出アーキテクチャの急速な進化が続いています。DAMO-YOLOとYOLOv10を比較すると、モデル設計における2つの異なる哲学、すなわち自動アーキテクチャ探索と、NMS(非最大値抑制)を不要にするエンドツーエンド最適化が見えてきます。どちらも精度と速度の限界に挑むものですが、その基礎となる構造や理想的なユースケースは大きく異なります。
DAMO-YOLO:大規模なニューラルアーキテクチャ探索
Alibaba Groupによって開発されたDAMO-YOLOは、構造効率化のために自動探索を活用することに重点を置いた強力な検出器として登場しました。
- 著者: Xianzhe Xu, Yiqi Jiang, Weihua Chen, Yilun Huang, Yuan Zhang, Xiuyu Sun
- 日付: 2022年11月23日
- Arxiv: 2211.15444v2
- GitHub: tinyvision/DAMO-YOLO
アーキテクチャのハイライト
DAMO-YOLOは、パフォーマンスとレイテンシのバランスを取るために、ニューラルアーキテクチャ探索(NAS)に大きく依存しています。MAE-NASと呼ばれるバックボーンは、厳格な計算予算の下で多目的進化探索を使用し、最適なレイヤーの深さと幅を見つけ出します。
スケールを超えた特徴融合を処理するために、このモデルは効率的なRepGFPN(Reparameterized Generalized Feature Pyramid Network)を採用しています。このヘビーネック設計は、複雑な空間階層を抽出することに特に優れており、航空画像解析のようなシナリオで有用です。さらにDAMO-YOLOは、最終的な予測レイヤーの複雑さを大幅に軽減する合理化された検出ヘッドであるZeroHeadを導入しており、トレーニング中の堅牢な蒸留強化プロセスに依存しています。
DAMO-YOLOは多くの場合、多段階の知識蒸留プロセスを利用します。これには、より小さな「学生」モデルを導くために、より重い「教師」モデルをトレーニングする必要があります。これによりmAP (mean Average Precision)は向上しますが、必要なGPUコンピューティング時間は大幅に増加します。
YOLOv10: エンドツーエンド物体検出の先駆者
1年半後にリリースされたYOLOv10は、推論中のNMS(非最大値抑制)の必要性を完全になくすことで、パラダイムシフトをもたらしました。
- 著者: Ao Wang, Hui Chen, Lihao Liu, 他
- 所属: 清華大学
- 日付: 2024年5月23日
- Arxiv: 2405.14458
- ドキュメント: Ultralytics YOLOv10
アーキテクチャのハイライト
YOLOv10の顕著な特徴は、NMS不要のトレーニングに向けた一貫したデュアルアサインメントです。従来の検出器は単一の物体に対して複数の重複するバウンディングボックスを予測するため、重複を除去するためにNMSが必要でした。この後処理ステップが、特にエッジデバイスにおいてボトルネックとなります。YOLOv10は、モデルが物体ごとに正確なバウンディングボックスを1つだけ自然に予測できるようにすることで、この問題を解決しました。
開発者はまた、全体的な効率性と精度を重視したモデル設計にも注力しました。既存アーキテクチャの計算上の冗長性を慎重に分析することで、バックボーンとヘッドを最適化し、FLOPsとパラメータ数を削減しました。この軽量な設計により、YOLOv10はTensorRTやOpenVINOといったフォーマットにエクスポートした際に、優れた推論レイテンシを実現します。
パフォーマンスとベンチマーク
以下の表は、COCOデータセットにおける未加工のパフォーマンス指標を示しています。各列の全体的な最高値は太字で強調されています。
| モデル | サイズ (ピクセル) | mAPval 50-95 | 速度 CPU ONNX (ms) | 速度 T4 TensorRT10 (ms) | パラメータ (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| DAMO-YOLOt | 640 | 42.0 | - | 2.32 | 8.5 | 18.1 |
| DAMO-YOLOs | 640 | 46.0 | - | 3.45 | 16.3 | 37.8 |
| DAMO-YOLOm | 640 | 49.2 | - | 5.09 | 28.2 | 61.8 |
| DAMO-YOLOl | 640 | 50.8 | - | 7.18 | 42.1 | 97.3 |
| YOLOv10n | 640 | 39.5 | - | 1.56 | 2.3 | 6.7 |
| YOLOv10s | 640 | 46.7 | - | 2.66 | 7.2 | 21.6 |
| YOLOv10m | 640 | 51.3 | - | 5.48 | 15.4 | 59.1 |
| YOLOv10b | 640 | 52.7 | - | 6.54 | 24.4 | 92.0 |
| YOLOv10l | 640 | 53.3 | - | 8.33 | 29.5 | 120.3 |
| YOLOv10x | 640 | 54.4 | - | 12.2 | 56.9 | 160.4 |
While DAMO-YOLO holds its own in terms of accuracy, YOLOv10 consistently provides lower latency and significantly smaller model weights. For instance, YOLOv10s achieves a slightly higher mAP (46.7%) than DAMO-YOLOs (46.0%) while using fewer than half the parameters (7.2M vs 16.3M). The lower memory requirements make YOLOv10 an exceptionally versatile choice for embedded systems.
学習効率とユーザビリティ
学術研究から本番環境へ移行する際には、使いやすさが何よりも重要です。DAMO-YOLOの多段階の蒸留プロセスと複雑なNAS構成は、エンジニアリングチームにとって習得のハードルが高い場合があります。
Conversely, YOLOv10 benefits immensely from being fully integrated into the Ultralytics Python SDK. Training a custom model involves minimal boilerplate code. Ultralytics handles data augmentation, hyperparameter tuning, and experiment tracking automatically.
from ultralytics import YOLO
# Load a pretrained YOLOv10 nano model
model = YOLO("yolov10n.pt")
# Train on a custom dataset with built-in validation
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference on an image seamlessly
prediction = model("path/to/image.jpg")
prediction[0].show()Ultralyticsエコシステムを使用することで、開発者はわずか数行のコードでプロトタイプからエクスポートされたONNXモデルまで移行でき、古いフレームワークで必要とされた複雑な環境構築を回避できます。
実際のユースケース
- スマートリテール(DAMO-YOLO): DAMO-YOLOの精度は、GPUが豊富でリアルタイムのNMSボトルネックが管理可能な、顧客行動を分析する高密度サーバー環境に適しています。
- 自動運転車(YOLOv10): NMS不要のアーキテクチャにより、決定論的で予測可能なレイテンシが保証されます。これは自動運転の安全システムにおいて極めて重要です。
- Industrial Automation (YOLOv10): Detecting defects on fast-moving assembly lines requires models that maximize real-time inference speeds without consuming vast VRAM, making YOLOv10 a prime candidate for edge deployment.
ユースケースと推奨事項
DAMO-YOLOとYOLOv10のどちらを選択するかは、特定のプロジェクト要件、展開の制約、およびエコシステムの優先順位によって決まります。
DAMO-YOLOを選択すべきとき
DAMO-YOLOが推奨されるケースは以下の通りです:
- 高スループットビデオ分析: バッチ1のスループットが主要な指標となる、固定されたNVIDIA GPUインフラストラクチャ上で高FPSビデオストリームを処理する場合。
- 産業用製造ライン: 組立ラインでのリアルタイム品質検査など、専用ハードウェア上で厳しいGPUレイテンシ制約があるシナリオ。
- ニューラルアーキテクチャ探索の研究: 検出性能に対する自動アーキテクチャ探索(MAE-NAS)と効率的な再パラメータ化バックボーンの影響を研究する場合。
YOLOv10を選ぶべき場合
YOLOv10は以下の場合に推奨されます:
- NMSフリーのリアルタイム検出: Non-Maximum Suppressionなしでエンドツーエンドの検出を行い、デプロイの複雑さを軽減できるアプリケーション。
- バランスの取れた速度と精度のトレードオフ: さまざまなモデルスケール全体で、推論速度と検出精度の強力なバランスが求められるプロジェクト。
- Consistent-Latency Applications: Deployment scenarios where predictable inference times are critical, such as robotics or autonomous systems.
Ultralytics (YOLO26) を選択すべき場合
ほとんどの新規プロジェクトにおいて、Ultralytics YOLO26はパフォーマンスと開発者体験の最高の組み合わせを提供します:
- NMSフリーのエッジデプロイ: Non-Maximum Suppressionの後処理の複雑さを伴わずに、一貫した低レイテンシの推論が求められるアプリケーション。
- CPUのみの環境: 専用のGPUアクセラレーションがないデバイスにおいて、YOLO26の最大43%高速なCPU推論が決定的な利点となります。
- 小物体の検出: 航空ドローンの映像 やIoTセンサーの分析など、ProgLossとSTALが小物体の精度を大幅に高めることができる困難なシナリオ。
次世代:Ultralytics YOLO26の登場
YOLOv10がNMS不要の検出に向けた土台を築きましたが、技術は急速に進化しています。現代のアプリケーションにおいて、Ultralytics YOLO26モデルは比類のないパフォーマンスとユーザビリティを提供し、前世代のベストな要素を取り入れ、本番環境向けに洗練させています。
YOLO26 features a strictly natively end-to-end design, eliminating NMS post-processing for simpler deployment pipelines across edge devices. Furthermore, the removal of Distribution Focal Loss (DFL) has dramatically improved compatibility with low-power edge AI hardware.
トレーニング面では、YOLO26は大規模言語モデル(LLM)のトレーニング手法から着想を得たハイブリッドであるMuSGD Optimizerを導入しています。これにより、より安定したトレーニングと高速な収束が保証されます。ProgLoss + STAL損失関数と組み合わせることで、YOLO26は野生生物保護やドローン運用において重要な機能である小物体認識において驚異的な改善を示しています。
重要な点として、YOLO26は単なる物体検出器ではありません。インスタンスセグメンテーション(Instance Segmentation)、Residual Log-Likelihood Estimation (RLE) を使用した姿勢推定(Pose Estimation)、および傾いたバウンディングボックス (OBB)向けの特殊な角度損失をネイティブにサポートし、包括的にタスク固有の改善を提供します。前世代よりも最大43%高速なCPU推論を実現しており、アジャイルなエンジニアリングチームにとって決定的な選択肢となります。
YOLO26モデルの集中管理、アノテーション、およびクラウドトレーニングのために、Ultralytics Platformは、コンピュータビジョンのライフサイクル全体を合理化する直感的なインターフェースを提供します。
その他の最近の進歩に関心のある開発者は、Ultralytics YOLO11や、独自のアーキテクチャソリューションを必要とするシナリオ向けに、TransformerベースのRT-DETRフレームワークを検討することもできます。