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 |
各モデルバリアントは、Mean Average Precision(mAP)とレイテンシのバランスを提供するように設計されており、パフォーマンスと速度の両方でオブジェクト検出タスクを最適化するのに役立ちます。
使用例
Ultralyticsは、YOLO-NASモデルを介してpythonアプリケーションに簡単に統合できるようにしました。 ultralytics
python パッケージです。このパッケージは、プロセスを効率化するためのユーザーフレンドリーな Python API を提供します。
次の例は、YOLO-NASモデルを以下で使用する方法を示しています。 ultralytics
推論と検証用のパッケージ:
推論と検証の例
この例では、COCO8データセットでYOLO-NAS-sを検証します。
例
この例では、YOLO-NASの簡単な推論および検証コードを提供します。推論結果の処理については、 予測 mode。追加のモードで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モデルは、を使用して、pythonアプリケーションに簡単に統合できます。 ultralytics
package。以下は、事前学習済みの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などのデータセットで事前トレーニングされており、速度と精度の両面で高いパフォーマンスを保証します。これらのモデルは、Pre-trained Modelsセクションにあるリンクを使用してダウンロードできます。以下にいくつかの例を示します。