DAMO-YOLOとYOLOv10の比較#
コンピュータビジョンの分野では、リアルタイムのobject detectionアーキテクチャにおいて急速な進化が見られます。DAMO-YOLOとYOLOv10を比較すると、自動化されたアーキテクチャ探索とエンドツーエンドのNMS不要な最適化という、モデル設計における2つの異なる思想が観察されます。どちらも精度と速度の限界を押し広げていますが、その基礎となる構造や最適なユースケースは大きく異なります。
DAMO-YOLO: 大規模な Neural Architecture Search#
Alibaba Groupによって開発されたDAMO-YOLOは、構造効率化のための自動発見の活用に焦点を当てた強力な検出器として登場しました。
- 著者: Xianzhe Xu, Yiqi Jiang, Weihua Chen, Yilun Huang, Yuan Zhang, and Xiuyu Sun
- 日付: 2022年11月23日
- Arxiv: 2211.15444v2
- GitHub: tinyvision/DAMO-YOLO
アーキテクチャのハイライト#
DAMO-YOLOは、パフォーマンスとレイテンシのバランスを取るために、ニューラルアーキテクチャ探索(NAS)を多用しています。MAE-NASと呼ばれるそのバックボーンは、厳格な計算予算の下で多目的進化探索を用いて、最適なレイヤーの深さと幅を見つけ出します。
スケール間の特徴量融合を処理するため、このモデルは効率的なRepGFPN(Reparameterized Generalized Feature Pyramid Network)を採用しています。このヘビーネック設計は複雑な空間階層の抽出に優れており、aerial imagery analysisのようなシナリオで有用です。さらに、DAMO-YOLOは、最終予測レイヤーの複雑さを大幅に軽減する合理化された検出ヘッドであるZeroHeadを導入しており、トレーニング中の堅牢な蒸留拡張プロセスに依存しています。
DAMO-YOLOは、マルチステージの知識蒸留プロセスを利用することがよくあります。より小型の「生徒」モデルを指導するために、より重い「教師」モデルのトレーニングが必要となり、これにより高いmAP (mean Average Precision)が抽出されますが、必要なGPU compute時間が大幅に増加します。
YOLOv10:エンドツーエンドの物体検出の先駆者#
1年半後にリリースされたYOLOv10は、推論中のNMS(非最大値抑制)の必要性を完全になくすことで、パラダイムシフトをもたらしました。
- 著者: Ao Wang, Hui Chen, Lihao Liu, 他
- 組織: Tsinghua University
- 日付: 2024年5月23日
- Arxiv: 2405.14458
- ドキュメント: Ultralytics YOLOv10
アーキテクチャのハイライト#
YOLOv10の際立った特徴は、NMSフリートレーニングのための一貫した二重割り当てです。従来の検出器は、単一のオブジェクトに対して複数の重複するバウンディングボックスを予測するため、重複をフィルタリングするためにNMSが必要でした。このポストプロセスステップは、特にエッジデバイスにおいてボトルネックとなります。YOLOv10は、モデルがオブジェクトごとに自然に単一の正確なバウンディングボックスを予測できるようにすることで、この問題を解決しています。
また、著者らは全体的な効率性と精度を重視したモデル設計に焦点を当てました。既存のアーキテクチャにおける計算の冗長性を慎重に分析することにより、バックボーンとヘッドを最適化してFLOPsとパラメータ数を削減しました。この軽量な設計により、YOLOv10はTensorRTやOpenVINOなどのフォーマットにエクスポートした際に、優れた推論レイテンシを発揮します。
性能とベンチマーク#
以下の表は、COCO datasetにおける生パフォーマンステュメータを示しています。各列の最良の全体値は太字で強調表示されています。
| モデル | サイズ (ピクセル) | 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 |
DAMO-YOLOが精度の面で健闘している一方で、YOLOv10は一貫してより低いレイテンシと大幅に小さいmodel weightsを提供します。例えば、YOLOv10sはパラメータ数が半分未満(7.2M対16.3M)であるにもかかわらず、DAMO-YOLOs(46.0%)よりもわずかに高いmAP(46.7%)を実現しています。より低いmemory requirementsにより、YOLOv10は組み込みシステムにとって非常に汎用性の高い選択肢となっています。
トレーニングの効率とユーザビリティ#
学術研究から本番環境へ移行する際には、使いやすさが最も重要です。DAMO-YOLOの多段階蒸留プロセスと複雑なNAS設定は、エンジニアリングチームにとって習得へのハードルが高い可能性があります。
逆に、YOLOv10はUltralytics Python SDKに完全に統合されているという大きなメリットがあります。カスタムモデルのトレーニングには最小限のボイラープレートコードしか必要ありません。Ultralyticsは、data augmentation、hyperparameter tuning、experiment trackingを自動的に処理します。
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エコシステムを使用すると、開発者はわずか数行のコードでプロトタイプから完全にexported ONNX modelへと移行でき、古いフレームワークで必要となる複雑な環境構築を回避できます。
実際のユースケース#
- スマートリテール (DAMO-YOLO): DAMO-YOLOの精度は、GPUが豊富にあり、リアルタイムのNMSのボトルネックが管理可能な、customer behaviorを分析する高密度サーバー環境に最適です。
- 自動運転車 (YOLOv10): NMS不要のアーキテクチャにより、決定的で予測可能なレイテンシが保証され、これはautonomous drivingの安全システムにとって不可欠です。
- 産業用自動化 (YOLOv10): 高速で移動する組立ライン上の欠陥検出には、膨大なVRAMを消費せずにreal-time inference速度を最大化するモデルが必要であり、YOLOv10はエッジ展開の最有力候補となります。
ユースケースと推奨事項#
DAMO-YOLOとYOLOv10のどちらを選択するかは、特定のプロジェクト要件、展開の制約、およびエコシステムの好みに依存します。
DAMO-YOLOを選択すべきケース#
DAMO-YOLOは以下のような場合に強力な選択肢となります。
- 高スループットビデオ解析: バッチサイズ1でのスループットが主要な指標となる、固定のNVIDIA GPUインフラストラクチャ上での高FPSビデオストリーム処理。
- 産業用製造ライン: 組立ラインでのリアルタイム品質検査など、専用ハードウェア上での厳格なGPUレイテンシ制約があるシナリオ。
- Neural Architecture Searchの研究: 自動化されたアーキテクチャ探索 (MAE-NAS) や効率的な再パラメータ化バックボーンが検出パフォーマンスに与える影響の研究。
YOLOv10を選択すべき場合#
YOLOv10は以下の場合に推奨されます。
- NMSフリーのリアルタイム検出: Non-Maximum Suppression(NMS)を使用しないエンドツーエンド検出のメリットを享受し、デプロイの複雑さを軽減できるアプリケーション。
- バランスの取れた速度と精度のトレードオフ: さまざまなモデルスケール全体で、推論速度と検出精度の強力なバランスを必要とするプロジェクト。
- 一貫したレイテンシが求められるアプリケーション: ロボティクスや自律システムなど、予測可能な推論時間が不可欠なデプロイシナリオ。
Ultralytics (YOLO26) を選択すべき時#
ほとんどの新しいプロジェクトにおいて、Ultralytics YOLO26はパフォーマンスと開発者体験の最高の組み合わせを提供します。
- NMSフリーのエッジ展開: Non-Maximum Suppression後処理の複雑さを伴わずに、一貫した低レイテンシの推論が求められるアプリケーション。
- CPUのみの環境: GPUアクセラレーションを利用できないデバイスにおいて、YOLO26の最大43%高速なCPU推論が決定的な利点となる場合。
- 小物体検出: ProgLossとSTALにより極小オブジェクトの精度が大幅に向上する、空中ドローン画像やIoTセンサー分析などの困難なシナリオ。
次世代:Ultralytics YOLO26の登場#
YOLOv10はNMSフリー検出の基礎を築きましたが、技術は急速に進化しています。現代のアプリケーションにおいて、Ultralytics YOLO26モデルは比類のないパフォーマンスとユーザビリティを提供し、前世代の長所を取り入れ、本番環境向けに洗練させています。
YOLO26は厳密にネイティブなエンドツーエンド設計を特徴としており、エッジデバイス全体でのシンプルなデプロイパイプラインのためにNMSの後処理を排除しています。さらに、Distribution Focal Loss(DFL)の削除により、低電力のedge AIハードウェアとの互換性が劇的に向上しました。
トレーニング面では、YOLO26は大規模言語モデル(LLM)のトレーニング技術からインスピレーションを得たハイブリッドであるMuSGD Optimizerを導入しています。これにより、より安定したトレーニングとより速い収束が保証されます。ProgLoss + STAL損失関数と相まって、YOLO26は小物体認識においてめざましい改善を示しており、これはwildlife conservationやdrone operationsにとって重要な機能です。
重要なことに、YOLO26は単なる物体検出器ではありません。全体にわたってタスク固有の改善を提供し、Instance Segmentation、残留対数尤度推定(RLE)を使用したPose Estimation、およびOriented Bounding Boxes (OBB)用の特殊な角度損失をネイティブにサポートしています。前世代と比較して最大43%高速なCPU推論を備えており、アジャイルなエンジニアリングチームにとって決定版の選択肢となります。
一元管理、アノテーション、およびYOLO26モデルのクラウドトレーニングのために、Ultralytics Platformは、コンピュータビジョンのライフサイクル全体を合理化する直感的なインターフェースを提供します。
その他の最近の進歩の探索に関心のある開発者は、異なるアーキテクチャソリューションを必要とするシナリオに向けて、Ultralytics YOLO11またはTransformerベースのRT-DETRフレームワークを評価することもできます。