YOLO-NAS
重要な更新
YOLO-NASのオリジナル開発元であるDeciはNVIDIAに買収されたことにご注意ください。その結果、これらのモデルはDeciによって積極的にメンテナンスされなくなりました。Ultralyticsはこれらのモデルの使用を引き続きサポートしますが、オリジナルチームからのさらなる更新は期待されていません。
概要
Deci AIによって開発されたYOLO-NASは、画期的なオブジェクトdetect基盤モデルです。これは、高度なNeural Architecture Search技術の産物であり、以前のYOLOモデルの限界に対処するために綿密に設計されています。量子化サポートと精度-レイテンシのトレードオフにおける大幅な改善により、YOLO-NASはオブジェクトdetectにおいて大きな飛躍を遂げています。
YOLO-NASの概要。 YOLO-NASは、最適なパフォーマンスのために量子化対応ブロックと選択的量子化を採用しています。このモデルは、INT8量子化バージョンに変換された際、他のモデルと比較して精度低下が最小限に抑えられており、これは大きな改善点です。これらの進歩は、これまでにない物体検出能力と優れたパフォーマンスを備えた、より優れたアーキテクチャとして結実しています。
主な特徴
- 量子化フレンドリーな基本ブロック: YOLO-NASは、量子化にフレンドリーな新しい基本ブロックを導入し、以前のYOLOモデルの重要な制限の一つに対処しています。
- 高度なトレーニングと量子化: 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は、YOLO-NASモデルを当社の...を介してpythonアプリケーションに簡単に統合できるようにしました。 ultralytics python パッケージです。このパッケージは、プロセスを効率化するためのユーザーフレンドリーな Python API を提供します。
以下の例は、...を使用してYOLO-NASモデルを使用する方法を示しています。 ultralytics 推論と検証用のパッケージ:
推論と検証の例
この例では、COCO8データセットでYOLO-NAS-sを検証します。
例
この例では、YOLO-NAS用のシンプルな推論および検証コードを提供します。推論結果の処理については、こちらをご覧ください 予測 モード。追加のモードでYOLO-NASを使用する方法については、こちらをご覧ください Val および エクスポート。YOLO-NASは、 ultralytics パッケージはトレーニングをサポートしていません。
PyTorch 学習済み *.pt モデルファイルはに渡すことができます。 NAS() pythonでモデルインスタンスを作成するためのclass:
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")
CLIコマンドは、モデルを直接実行するために利用できます。
# Load a COCO-pretrained YOLO-NAS-s model and validate it's performance on the COCO8 example dataset
yolo val model=yolo_nas_s.pt data=coco8.yaml
# Load a COCO-pretrained YOLO-NAS-s model and run inference on the 'bus.jpg' image
yolo predict model=yolo_nas_s.pt source=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は、その革新的なアーキテクチャと優れた物体検出能力により、開発者と研究者双方にとって不可欠なツールとなると確信しています。
よくある質問
YOLO-NASとは何ですか?また、以前のYOLOモデルと比較してどのように改善されていますか?
Deci AIによって開発されたYOLO-NASは、高度なニューラルアーキテクチャ探索(NAS)技術を活用した最先端の物体検出モデルです。量子化対応の基本ブロックや洗練されたトレーニングスキームといった機能を導入することで、以前のYOLOモデルの限界に対処しています。これにより、特に計算リソースが限られた環境において、性能が大幅に向上します。YOLO-NASは量子化もサポートしており、INT8バージョンに変換しても高い精度を維持し、本番環境への適合性を高めます。詳細については、概要セクションを参照してください。
YOLO-NASモデルをpythonアプリケーションに統合するにはどうすればよいですか?
YOLO-NASモデルは、 ultralytics パッケージです。事前学習済みの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の主要な機能は何ですか?また、なぜそれを使用することを検討すべきですか?
YOLO-NASは、物体検出タスクにおいて優れた選択肢となるいくつかの主要な機能を導入しています。
- 量子化対応基本ブロック: 量子化後のモデル性能を最小限の精度低下で向上させる拡張アーキテクチャ。
- 高度な学習と量子化: 高度な学習スキームと学習後の量子化技術を採用しています。
- AutoNAC最適化と事前学習: AutoNAC最適化を利用し、COCO、Objects365、Roboflow 100などの著名なデータセットで事前学習されています。
これらの機能は、その高い精度、効率的なパフォーマンス、および本番環境へのデプロイへの適合性に貢献しています。詳細については、Key Features セクションをご覧ください。
YOLO-NASモデルはどのタスクとモードをサポートしていますか?
YOLO-NASモデルは、推論、検証、エクスポートなど、さまざまな物体検出タスクとモードをサポートしています。トレーニングはサポートしていません。サポートされるモデルには、YOLO-NAS-s、YOLO-NAS-m、YOLO-NAS-lがあり、それぞれ異なる計算能力と性能要件に合わせて調整されています。詳細な概要については、サポートされるタスクとモードセクションを参照してください。
事前学習済みのYOLO-NASモデルは利用できますか、またどのようにアクセスできますか?
はい、Ultralyticsは直接アクセスできる事前学習済みのYOLO-NASモデルを提供しています。これらのモデルはCOCOのようなデータセットで事前学習されており、速度と精度の両面で高い性能を保証します。事前学習済みモデルセクションに記載されているリンクを使用して、これらのモデルをダウンロードできます。以下にいくつかの例を示します。