Link to this sectionYOLOv8 vs DAMO-YOLO#
コンピュータビジョンの領域は常に進化しており、新しいアーキテクチャがエッジデバイスや大規模なクラウドクラスターで可能なことの境界を押し広げています。この技術的な深掘り記事では、2つの著名なリアルタイム物体検出モデルであるYOLOv8とDAMO-YOLOを比較します。アーキテクチャ、パフォーマンス指標、学習方法を検証することで、機械学習エンジニアはデプロイメントパイプラインにおいて情報に基づいた意思決定を行えるようになります。
Link to this sectionモデルの背景と起源#
両モデルはほぼ同時期に発表されましたが、異なる設計思想と研究目標に基づいています。
Link to this sectionYOLOv8の詳細#
- 著者:Glenn Jocher、Ayush Chaurasia、Jing Qiu
- 組織:Ultralytics
- 日付:2023-01-10
- GitHub: Ultralytics GitHub リポジトリ
- ドキュメント: YOLOv8 公式ドキュメント
Link to this sectionDAMO-YOLOの詳細#
- 著者: Xianzhe Xu, Yiqi Jiang, Weihua Chen, Yilun Huang, Yuan Zhang, and Xiuyu Sun
- 組織: Alibaba Group
- 日付: 2022-11-23
- Arxiv: DAMO-YOLO 研究論文
- GitHub: DAMO-YOLO GitHubリポジトリ
Link to this sectionアーキテクチャの革新#
Link to this sectionYOLOv8: 多用途なアンカーフリー設計#
Ultralytics YOLOv8は、前身から大幅な改善を導入し、信頼性の高い最先端モデルとしての地位を固めました。アンカーフリーの検出ヘッドを備えており、ボックス予測数を削減し、推論を高速化します。アーキテクチャはデカップリングされたヘッドを採用しており、物体性、分類、回帰のタスクを分離することで、より正確なバウンディングボックスの予測を実現しています。
さらに、YOLOv8はDistribution Focal Loss (DFL)をCIoU lossと共に実装しており、特に小さなターゲットや隠れたターゲットに対して、物体境界を正確にローカライズするモデルの能力を強化しています。その合理化されたバックボーンは、GPUとCPUの両方の実行において高度に最適化されています。
Link to this sectionDAMO-YOLO: アーキテクチャ探索による駆動#
DAMO-YOLOは異なるアプローチを取り、ニューラルアーキテクチャ探索(NAS)に大きく依存してバックボーンを自動設計します。Alibabaチームは、「MAE-NAS」を導入し、特にTensorRTアクセラレーション下で最適なレイテンシと精度のトレードオフを提供する構造を見つけ出しました。
このモデルは、効率的な特徴融合のためのRepGFPN(Reparameterized Generalized Feature Pyramid Network)と、検出ヘッドの計算負荷を最小限に抑える「ZeroHead」設計を組み込んでいます。学習中には、ラベル割り当てのためにAlignedOTAを活用し、ターゲットとなる生徒モデルを監督するために、より大きな教師モデルを必要とする複雑な知識蒸留プロセスに大きく依存します。
DAMO-YOLOはNASと蒸留によって印象的なレイテンシ指標を達成していますが、これはYOLOv8の高度に最適化された単一ステージの学習パイプラインと比較して、学習中に大幅に多くのCUDAメモリと計算時間を必要とします。
Link to this sectionパフォーマンスとメトリクス#
コンピュータビジョンモデルを本番環境にデプロイする際、精度(mAP)と推論速度のバランスを取ることは極めて重要です。以下の表は、さまざまなサイズにおける両モデルのパフォーマンスを示しています。
| モデル | サイズ (ピクセル) | mAPval 50-95 | 速度 CPU ONNX (ms) | 速度 T4 TensorRT10 (ms) | パラメータ (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv8n | 640 | 37.3 | 80.4 | 1.47 | 3.2 | 8.7 |
| YOLOv8s | 640 | 44.9 | 128.4 | 2.66 | 11.2 | 28.6 |
| YOLOv8m | 640 | 50.2 | 234.7 | 5.86 | 25.9 | 78.9 |
| YOLOv8l | 640 | 52.9 | 375.2 | 9.06 | 43.7 | 165.2 |
| YOLOv8x | 640 | 53.9 | 479.1 | 14.37 | 68.2 | 257.8 |
| 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 |
YOLOv8は並外れたパフォーマンスバランスを示しています。YOLOv8n (nano)モデルは、DAMO-YOLOtの850万パラメーターと比較してわずか320万パラメーターしか必要としないため、モバイルデバイスや厳しいメモリ要件がある環境に対して圧倒的に優れています。さらに、YOLOv8はより広範なサイズ展開を提供しており、クラウドベースのワークロード向けに、精度の高いYOLOv8xまでスケールアップ可能です。
Link to this section開発者のエクスペリエンスとエコシステム#
Link to this section使いやすさと学習の効率性#
最大の差別化要因の一つはユーザーエクスペリエンスです。Ultralyticsエコシステムは開発者のベロシティ(開発速度)のために設計されています。カスタムYOLOv8モデルの学習は非常に低いメモリ使用量で済み、統一されたPython APIまたはコマンドラインインターフェースを介して実行できます。
対照的に、DAMO-YOLOの蒸留を強化した学習を再現するには、多くの場合、複雑な設定ファイルを操作し、多段階の教師・生徒実験追跡を処理する必要があります。
以下は、Pythonを使用してYOLOv8の学習、検証、エクスポートを行うことがいかに簡単かを示す例です。
from ultralytics import YOLO
# Load a pre-trained YOLOv8 nano model
model = YOLO("yolov8n.pt")
# Train the model on the COCO8 dataset
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device="cpu")
# Export the trained model to ONNX format
path = model.export(format="onnx")Link to this sectionビジョンタスク全般の汎用性#
DAMO-YOLOはバウンディングボックスの物体検出専用に構築されています。対照的に、YOLOv8アーキテクチャは複数のタスクをネイティブでサポートしています。モデルの重みを入れ替えるだけで、開発者は基本的なデプロイメントコードベースを変更することなく、インスタンスセグメンテーション、画像分類、および姿勢推定を実行できます。この汎用性により、Ultralyticsモデルは複雑なアプリケーションにおいてより実用的です。
Link to this section実際のユースケース#
Link to this sectionYOLOv8を使用すべき場面#
YOLOv8の速度、精度、デプロイの容易さの組み合わせは、以下のような用途に最適です。
- スマートリテール分析: 物体追跡を実行して、顧客の行動を監視したり、在庫チェックを自動化したりします。
- 農業ロボティクス: さまざまなハードウェアでの高いパフォーマンスを活用して、作物や害虫をリアルタイムで特定します。
- ヘルスケア診断: インスタンスセグメンテーションを使用して、医療画像内の異常を迅速かつ正確にマッピングします。
- エッジデプロイメント: OpenVINOやCoreMLのようなエクスポート形式とのシームレスな統合により、YOLOv8は制約のあるデバイスで優れた性能を発揮します。
Link to this sectionDAMO-YOLOの用途#
DAMO-YOLOは、特定のニッチなシナリオ、特に以下のような場合に有益です。
- 学術的なNAS研究: 再パラメータ化や自動アーキテクチャ設計手法を研究しているチーム向け。
- 厳格にGPU依存のパイプライン: NAS構造がTensorRT実行制限に対して高度に最適化された、特定のNVIDIAハードウェア上でのみ実行されるアプリケーション。
Link to this sectionユースケースと推奨事項#
YOLOv8とDAMO-YOLOのどちらを選択するかは、特定のプロジェクトの要件、デプロイメントの制約、エコシステムの好みによって決まります。
Link to this sectionYOLOv8を選択すべき場合#
YOLOv8は、以下のようなケースに適した強力な選択肢です。
- 汎用的なマルチタスクデプロイメント: Ultralytics エコシステム内で 検出、セグメンテーション、分類、姿勢推定 のために実績のあるモデルを必要とするプロジェクト。
- 確立された運用システム: 既にYOLOv8アーキテクチャ上で構築され、安定してテストされたデプロイメントパイプラインを持つ既存の運用環境。
- 広範なコミュニティとエコシステムのサポート: YOLOv8の広範なチュートリアル、サードパーティ統合、アクティブなコミュニティリソースを活用できるアプリケーション。
Link to this sectionDAMO-YOLOを選択すべきケース#
DAMO-YOLOは以下の場合に推奨されます:
- 高スループットビデオ解析: バッチサイズ1でのスループットが主要な指標となる、固定のNVIDIA GPUインフラストラクチャ上での高FPSビデオストリーム処理。
- 産業用製造ライン: 組立ラインでのリアルタイム品質検査など、専用ハードウェア上での厳格なGPUレイテンシ制約があるシナリオ。
- Neural Architecture Searchの研究: 自動化されたアーキテクチャ探索 (MAE-NAS) や効率的な再パラメータ化バックボーンが検出パフォーマンスに与える影響の研究。
Link to this sectionUltralytics (YOLO26) を選択すべき時#
ほとんどの新規プロジェクトにおいて、Ultralytics YOLO26はパフォーマンスと開発者体験の最良の組み合わせを提供します。
- NMSフリーのエッジ展開: Non-Maximum Suppression後処理の複雑さを伴わずに、一貫した低レイテンシの推論が求められるアプリケーション。
- CPUのみの環境: GPUアクセラレーションを利用できないデバイスにおいて、YOLO26の最大43%高速なCPU推論が決定的な利点となる場合。
- 小さな物体の検出: aerial drone imageryやIoTセンサー分析のような困難なシナリオで、ProgLossとSTALが微小な物体の検出精度を大幅に向上させる場合。
Link to this section展望: より新しいUltralyticsモデル#
YOLOv8は依然として非常に信頼できる主力モデルですが、コンピュータビジョンの分野は急速に動いています。ユーザーはより新しい世代の探索も検討すべきです。
YOLO26: 最新世代であるUltralytics YOLO26は、パラダイムシフトを表しています。これはネイティブのEnd-to-End NMS-Free Designを導入し、Non-Maximum Suppressionのポストプロセッシングに伴うレイテンシのボトルネックを完全に取り除いています。新しいMuSGD Optimizer(SGDとMuonのハイブリッド)および特殊なProgLoss + STAL損失関数を搭載したYOLO26は、驚くほど安定した学習と大幅に改善された小物体認識を実現します。DFL Removal(エクスポートの簡素化とエッジ/低消費電力デバイスとの互換性向上のためにDistribution Focal Lossを削除)により、前世代と比較して最大43%のCPU推論高速化を実現しており、現代のエッジコンピューティングにおける決定的な選択肢となっています。
YOLO11: もう一つの優れた代替案であるUltralytics YOLO11は、YOLOv8よりも段階的なアーキテクチャの改良を提供しており、コミュニティで広く採用されている堅牢なモデルです。
モデルをプロトタイプから本番環境へ移行する準備はできていますか?Ultralytics Platformを利用して、データセットの自動アノテーション、実験の追跡、そしてクラウドやエッジデバイスへのシームレスなモデルデプロイを行ってください。
結論として、DAMO-YOLOはアーキテクチャ探索に関する興味深い学術的な知見を提供しますが、Ultralyticsモデルは、より成熟し、多用途で、開発者に優しいエコシステムを提供します。YOLOv8の証明された安定性にこだわるか、YOLO26の高速なNMSフリーアーキテクチャにアップグレードするかにかかわらず、UltralyticsスイートはリアルタイムビジョンAIにおける最高の選択肢であり続けます。