YOLO-NAS#
YOLO-NASの開発元であるDeciがNVIDIAに買収されたことにご注意ください。その結果、これらのモデルはDeciによる積極的なメンテナンスの対象ではなくなりました。Ultralyticsは引き続きこれらのモデルの使用をサポートしますが、元のチームからのさらなる更新は予定されていません。
概要#
Deci AIによって開発されたYOLO-NASは、画期的な物体検出基盤モデルです。これは、高度なニューラルアーキテクチャサーチ技術の成果であり、従来のYOLOモデルの制限に対処するために綿密に設計されています。量子化サポートと精度とレイテンシのトレードオフが大幅に改善されており、YOLO-NASは物体検出における大きな飛躍を実現しています。
YOLO-NASの概要。 YOLO-NASは、最適なパフォーマンスを実現するために、量子化対応ブロックと選択的量子化を採用しています。モデルをINT8量子化バージョンに変換した場合でも、精度の低下は最小限に抑えられ、他のモデルと比べて大幅に改善されています。これらの進歩により、卓越した物体検出能力と優れたパフォーマンスを備えた、より優れたアーキテクチャが実現されています。
主な特徴#
- 量子化に適した基本ブロック: YOLO-NASは量子化に適した新しい基本ブロックを導入し、従来のYOLOモデルにおける重要な制限の1つに対処しています。
- 高度なトレーニングと量子化: YOLO-NASは、高度なトレーニング手法とトレーニング後量子化を活用してパフォーマンスを向上させています。
- AutoNACの最適化と事前トレーニング: YOLO-NASはAutoNACの最適化を活用し、COCO、Objects365、Roboflow 100などの主要なデータセットで事前トレーニングされています。この事前トレーニングにより、実運用環境における下流の物体検出タスクに非常に適しています。
事前トレーニング済みモデル#
Ultralyticsが提供する事前トレーニング済みYOLO-NASモデルで、次世代の物体検出の性能を体験できます。これらのモデルは、速度と精度の両方で優れたパフォーマンスを発揮するように設計されています。特定のニーズに合わせて、さまざまなオプションから選択できます。
| モデル | mAP | レイテンシ (ms) |
|---|---|---|
| YOLO-NAS S | 47.5 | 3.21 |
| YOLO-NAS M | 51.55 | 5.85 |
| YOLO-NAS L | 52.22 | 7.87 |
| YOLO-NAS S INT-8 | 47.03 | 2.36 |
| YOLO-NAS M INT-8 | 51.0 | 3.78 |
| YOLO-NAS L INT-8 | 52.1 | 4.78 |
各モデルバリアントは、平均適合率 (mAP)とレイテンシのバランスを提供するように設計されており、パフォーマンスと速度の両面で物体検出タスクを最適化できます。
使用例#
Ultralyticsは、ultralytics Pythonパッケージを使用して、YOLO-NASモデルをご自身のPythonアプリケーションに簡単に統合できるようにしています。このパッケージは、そのプロセスを効率化するための使いやすいPython APIを提供します。
以下の例では、ultralyticsパッケージを使用してYOLO-NASモデルで推論と検証を行う方法を示します。
推論と検証の例#
この例では、COCO8データセットでYOLO-NAS-sを検証します。
この例では、YOLO-NASの推論と検証を行うためのシンプルなコードを示します。推論結果の処理については、Predictモードを参照してください。YOLO-NASを追加のモードで使用する方法については、ValとExportを参照してください。ultralyticsパッケージのYOLO-NASはトレーニングをサポートしていません。
PyTorchで事前トレーニングされた*.ptモデルファイルをNAS()クラスに渡すことで、Python内でモデルインスタンスを作成できます。
from ultralytics import NAS
# Load a COCO-pretrained YOLO-NAS-s model
model = NAS("yolo_nas_s.pt")
# Display model information (optional)
model.info()
# Validate the model on the COCO8 example dataset
results = model.val(data="coco8.yaml")
# Run inference with the YOLO-NAS-s model on the 'bus.jpg' image
results = model("path/to/bus.jpg")サポートされるタスクとモード#
YOLO-NASモデルには、Small (s)、Medium (m)、Large (l)の3つのバリアントがあります。各バリアントは、異なる計算リソースとパフォーマンスのニーズに対応するように設計されています。
- YOLO-NAS-s: 計算リソースが限られている一方で、効率性が重要な環境向けに最適化されています。
- YOLO-NAS-m: バランスの取れたアプローチを提供し、より高い精度が求められる汎用的な物体検出に適しています。
- YOLO-NAS-l: 計算リソースの制約が比較的少なく、最高精度が必要なシナリオ向けに調整されています。
以下では、各モデルの詳細な概要として、事前トレーニング済みの重みへのリンク、サポートされるタスク、さまざまな動作モードとの互換性を示します。
| モデルタイプ | 事前学習済み重み | サポートされているタスク | トレーニング | 検証 | 推論 | エクスポート |
|---|---|---|---|---|---|---|
| YOLO-NAS-s | yolo_nas_s.pt | オブジェクト検出 | ❌ | ✅ | ✅ | ✅ |
| YOLO-NAS-m | yolo_nas_m.pt | オブジェクト検出 | ❌ | ✅ | ✅ | ✅ |
| YOLO-NAS-l | yolo_nas_l.pt | オブジェクト検出 | ❌ | ✅ | ✅ | ✅ |
引用と謝辞#
研究または開発でYOLO-NASを使用する場合は、SuperGradientsを引用してください。
@misc{supergradients,
doi = {10.5281/ZENODO.7789328},
url = {https://zenodo.org/records/7789328},
author = {Aharon, Shay and {Louis-Dupont} and {Ofri Masad} and Yurkova, Kate and {Lotem Fridman} and {Lkdci} and Khvedchenya, Eugene and Rubin, Ran and Bagrov, Natan and Tymchenko, Borys and Keren, Tomer and Zhilko, Alexander and {Eran-Deci}},
title = {Super-Gradients},
publisher = {GitHub},
journal = {GitHub repository},
year = {2021},
}この貴重なリソースをコンピュータビジョンコミュニティ向けに作成・維持している、Deci AIのSuperGradientsチームに感謝します。革新的なアーキテクチャと優れた物体検出能力を備えたYOLO-NASは、開発者と研究者の双方にとって重要なツールになると考えています。
FAQ#
Deci AIによって開発されたYOLO-NASは、高度なニューラルアーキテクチャサーチ(NAS)技術を活用した最先端の物体検出モデルです。量子化に適した基本ブロックや高度なトレーニング手法などの機能を導入することで、従来のYOLOモデルの制限に対処しています。その結果、特に計算リソースが限られた環境で、パフォーマンスが大幅に向上しています。YOLO-NASは量子化もサポートしており、INT8バージョンに変換した場合でも高い精度を維持するため、実運用環境により適しています。詳しくは、概要セクションをご覧ください。
ultralyticsパッケージを使用すると、YOLO-NASモデルをPythonアプリケーションに簡単に統合できます。以下に、事前トレーニング済みのYOLO-NASモデルを読み込み、推論を実行する簡単な例を示します。from ultralytics import NAS # Load a COCO-pretrained YOLO-NAS-s model model = NAS("yolo_nas_s.pt") # Validate the model on the COCO8 example dataset results = model.val(data="coco8.yaml") # Run inference with the YOLO-NAS-s model on the 'bus.jpg' image results = model("path/to/bus.jpg")詳しくは、推論と検証の例を参照してください。
YOLO-NASには、物体検出タスクにおける優れた選択肢となる、次のような主な特徴があります。
- 量子化に適した基本ブロック: 量子化後の精度低下を最小限に抑えながら、モデルのパフォーマンスを向上させる強化されたアーキテクチャです。
- 高度なトレーニングと量子化: 高度なトレーニング手法とトレーニング後量子化技術を採用しています。
- AutoNACの最適化と事前トレーニング: AutoNACの最適化を活用し、COCO、Objects365、Roboflow 100などの主要なデータセットで事前トレーニングされています。
これらの特徴により、高い精度、効率的なパフォーマンス、実運用環境へのデプロイに適した特性が実現されています。詳しくは、主な特徴セクションをご覧ください。
YOLO-NASモデルは、推論、検証、エクスポートなど、さまざまな物体検出タスクとモードをサポートしています。トレーニングはサポートしていません。サポートされるモデルにはYOLO-NAS-s、YOLO-NAS-m、YOLO-NAS-lがあり、それぞれ異なる計算能力とパフォーマンスのニーズに合わせて設計されています。詳しい概要については、サポートされるタスクとモードセクションを参照してください。
はい、Ultralyticsは事前トレーニング済みのYOLO-NASモデルを提供しており、直接アクセスできます。これらのモデルはCOCOなどのデータセットで事前トレーニングされているため、速度と精度の両面で高いパフォーマンスを発揮します。事前トレーニング済みモデルセクションに記載されているリンクから、これらのモデルをダウンロードできます。以下にいくつか例を示します。