YOLOv8とDAMO-YOLO#
コンピュータービジョンの分野は絶えず進化しており、新たなアーキテクチャがエッジデバイスや大規模なクラウドクラスターで可能なことの限界を押し広げています。この技術解説では、リアルタイム物体検出モデルの代表例であるYOLOv8とDAMO-YOLOを比較します。アーキテクチャ、性能メトリクス、トレーニング手法を検討することで、MLエンジニアはデプロイパイプラインについて情報に基づいた判断を下せます。
モデルの背景と起源#
両モデルはほぼ同時期に発表されましたが、設計思想と研究目標は異なります。
YOLOv8の詳細#
- 著者: Glenn Jocher、Ayush Chaurasia、Jing Qiu
- 組織: Ultralytics
- 日付: 2023-01-10
- GitHub: Ultralytics GitHubリポジトリ
- ドキュメント: YOLOv8公式ドキュメント
DAMO-YOLOの詳細#
- 著者: Xianzhe Xu、Yiqi Jiang、Weihua Chen、Yilun Huang、Yuan Zhang、Xiuyu Sun
- 組織: Alibaba Group
- 日付: 2022-11-23
- Arxiv: DAMO-YOLO研究論文
- GitHub: DAMO-YOLO GitHubリポジトリ
アーキテクチャの革新#
YOLOv8:汎用性に優れたアンカーフリーデザイン#
Ultralytics YOLOv8は、前世代モデルから大幅な改良を加え、信頼性の高い最先端モデルとしての地位を確立しました。アンカーフリーの検出ヘッドを採用し、ボックス予測の数を削減して推論を高速化します。アーキテクチャには分類タスクと回帰タスクを分離する分離型ヘッドを採用し、バウンディングボックスの予測精度を高めています。
さらに、YOLOv8はCIoU損失とともにDistribution Focal Loss(DFL)を実装し、特に小さな物体や遮蔽された対象について、物体の境界を正確に特定する能力を高めています。合理化されたバックボーンは、GPUとCPUの両方での実行に高度に最適化されています。
DAMO-YOLO:アーキテクチャ探索を活用#
DAMO-YOLOは異なるアプローチを採用し、ニューラルアーキテクチャ探索(NAS)に大きく依存してバックボーンを自動設計します。Alibabaのチームは、TensorRTによる高速化を前提に、レイテンシーと精度の最適なトレードオフを実現する構造を見つけるため、「MAE-NAS」を導入しました。
このモデルは、効率的な特徴融合のためにRepGFPN(再パラメーター化された汎用特徴ピラミッドネットワーク)を取り入れ、検出ヘッドの計算負荷を最小限に抑える「ZeroHead」デザインを採用しています。トレーニングでは、ラベル割り当てにAlignedOTAを活用し、複雑な知識蒸留プロセスに大きく依存します。そのため、対象となる生徒モデルを監督する、より大規模な教師モデルが必要です。
DAMO-YOLOはNASと蒸留によって優れたレイテンシーメトリクスを実現しますが、そのためには高度に最適化されたYOLOv8のシングルステージトレーニングパイプラインと比べて、トレーニング時に大幅に多くのCUDAメモリと計算時間が必要です。
パフォーマンスとメトリクス#
コンピュータービジョンモデルを本番環境にデプロイする際は、精度(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.1 |
| 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(ナノ)モデルのパラメーター数はわずか320万個で、DAMO-YOLOtの850万個と比べて大幅に少ないため、モバイルデバイスや厳しいメモリ要件のある環境に非常に適しています。さらにYOLOv8は幅広いサイズを用意しており、クラウドベースのワークロード向けの高精度なYOLOv8xまで拡張できます。
開発者エクスペリエンスとエコシステム#
使いやすさとトレーニング効率#
大きな差別化要因の一つは、ユーザーエクスペリエンスです。Ultralyticsエコシステムは、開発のスピードを高めるように設計されています。カスタムYOLOv8モデルのトレーニングはメモリ使用量が非常に少なく、統一されたPython APIまたはコマンドラインインターフェースから実行できます。
一方、DAMO-YOLOの蒸留を活用したトレーニングを再現するには、複雑な設定ファイルを扱い、教師モデルと生徒モデルを用いる複数段階の実験追跡に対応する必要がある場合がよくあります。
以下に、Pythonを使ってYOLOv8をトレーニング、検証、エクスポートする手順がいかに簡単かを示す例を紹介します。
from ultralytics import YOLO
# 事前学習済みのYOLOv8 nanoモデルを読み込む
model = YOLO("yolov8n.pt")
# COCO8データセットでモデルをトレーニングします
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device="cpu")
# トレーニング済みモデルをONNX形式にエクスポートします
path = model.export(format="onnx")多様なビジョンタスクに対応#
DAMO-YOLOはバウンディングボックスによる物体検出専用に構築されています。一方、YOLOv8のアーキテクチャは複数のタスクをネイティブにサポートします。モデルの重みを入れ替えるだけで、開発者は基盤となるデプロイコードを変更せずに、インスタンスセグメンテーション、画像分類、姿勢推定を実行できます。この汎用性により、Ultralyticsモデルは複雑なアプリケーションで非常に実用的です。
実際のユースケース#
YOLOv8の用途#
YOLOv8は速度、精度、デプロイの容易さを兼ね備えており、次の用途に最適です。
- スマートリテール分析: 物体追跡を行い、顧客の行動を監視したり、在庫確認を自動化したりできます。
- 農業ロボティクス: 多様なハードウェアでの優れた性能を活用し、作物や害虫をリアルタイムで識別できます。
- 医療診断: インスタンスセグメンテーションを用いて、医療画像の異常領域を迅速かつ正確に特定できます。
- エッジデプロイ: OpenVINOやCoreMLなどのエクスポート形式とのシームレスな統合により、YOLOv8はリソースが限られたデバイスでも優れた性能を発揮します。
DAMO-YOLOの用途#
DAMO-YOLOは、特に次のようなニッチなシナリオで有用です。
- 学術的なNAS研究: 再パラメーター化や自動アーキテクチャ設計の手法を研究するチームに適しています。
- GPUに限定されたパイプライン: 特定のNVIDIAハードウェアのみで実行され、TensorRTの実行制約に合わせてNAS構造が高度に最適化されたアプリケーションに適しています。
ユースケースと推奨事項#
YOLOv8とDAMO-YOLOのどちらを選ぶかは、具体的なプロジェクト要件、デプロイの制約、エコシステムに関する優先事項によって異なります。
YOLOv8を選ぶ場合#
YOLOv8は、次のような場合に適しています。
- 汎用的なマルチタスクデプロイ: Ultralyticsエコシステムで、検出、セグメンテーション、分類、ポーズ推定に対応した、実績のあるモデルを必要とするプロジェクト。
- 確立済みの本番システム: 安定性と十分なテストが確認されたデプロイパイプラインを備え、すでにYOLOv8アーキテクチャを基盤として構築されている本番環境。
- 広範なコミュニティとエコシステムのサポート: YOLOv8の豊富なチュートリアル、サードパーティ製ツールとの統合、活発なコミュニティリソースを活用できるアプリケーション。
DAMO-YOLOを選ぶケース#
DAMO-YOLOは、次の用途に適しています。
- 高スループットの動画分析: バッチサイズ1でのスループットが主要な指標となる、固定のNVIDIA GPUインフラストラクチャ上で高FPSの動画ストリームを処理する用途。
- 産業用製造ライン: 組み立てラインでのリアルタイム品質検査など、専用ハードウェア上でGPUレイテンシに厳しい制約があるシナリオ。
- ニューラルアーキテクチャ探索の研究: 自動アーキテクチャ探索 (MAE-NAS) と、効率的に再パラメーター化されたバックボーンが検出性能に与える影響を研究する用途。
Ultralytics (YOLO26)を選ぶ場合#
多くの新規プロジェクトにおいて、Ultralytics YOLO26はパフォーマンスと開発者体験を最適なバランスで提供します。
- NMSを使用しないエッジデプロイ: 非最大抑制の後処理を複雑化させずに、安定した低レイテンシー推論を必要とするアプリケーション。
- CPUのみの環境: 専用のGPUアクセラレーションを備えていないデバイスで、YOLO26の最大43%高速なCPU推論が大きな優位性を発揮します。
- 小物体検出: ドローンによる航空画像やIoTセンサーの分析など、ProgLossとSTALによって小さな物体の精度が大幅に向上する難しいシナリオ。
今後を見据えて:新しいUltralyticsモデル#
YOLOv8は引き続き非常に信頼性の高い主力モデルですが、コンピュータービジョン分野は急速に進化しています。新世代モデルの検討もおすすめします。
YOLO26: 最新世代のUltralytics YOLO26は、パラダイムシフトをもたらします。非極大値抑制の後処理に伴うレイテンシーのボトルネックを解消する、ネイティブのエンドツーエンドNMSフリーデザイン(nms=False)を導入しています。新しいMuSGDオプティマイザー(SGDとMuonのハイブリッド)と専用のProgLoss + STAL損失関数を採用し、非常に安定したトレーニングと小さな物体の認識性能の大幅な向上を実現します。DFLの削除(エクスポートの簡素化とエッジデバイスや低消費電力デバイスとの互換性向上のため、Distribution Focal Lossを削除)を含むアーキテクチャの改良により、前世代と比べてCPU推論が最大43%高速化され、最新のエッジコンピューティングに最適なモデルとなっています。
YOLO11: 優れた代替モデルであるUltralytics YOLO11は、YOLOv8を段階的に改良したアーキテクチャを採用し、コミュニティで広く利用されている堅牢なモデルです。
モデルをプロトタイプから本番環境へ移行する準備はできていますか?Ultralytics Platformを活用すると、データセットへの自動アノテーション、実験の追跡、クラウドやエッジデバイスへのシームレスなモデルデプロイができます。
結論として、DAMO-YOLOはアーキテクチャ探索に関する興味深い学術的知見を提供しますが、Ultralyticsモデルははるかに成熟し、汎用性と開発者への使いやすさに優れたエコシステムを提供します。実績あるYOLOv8の安定性を維持する場合も、非常に高速なNMSフリーアーキテクチャのYOLO26にアップグレードする場合も、UltralyticsのラインアップはリアルタイムビジョンAIに最適な選択肢です。