YOLO-NAS
YOLO-NASのオリジナルの作成者であるDeciがNVIDIAによって買収されました。その結果、これらのモデルはDeciによる積極的なメンテナンスが終了しています。Ultralyticsは引き続きこれらのモデルの使用をサポートしますが、オリジナルのチームからのこれ以上の更新は予定されていません。
概要
Deci AIによって開発されたYOLO-NASは、画期的な物体検出の基盤モデルです。これは、高度なNeural Architecture Search(神経アーキテクチャ探索)技術の成果であり、従来のYOLOモデルの制限に対処するために緻密に設計されています。量子化サポートと精度・遅延のトレードオフにおける大幅な改善により、YOLO-NASは物体検出における大きな飛躍を遂げています。
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 |
各モデルのバリエーションは、Mean Average Precision(mAP)と遅延のバランスを取るように設計されており、パフォーマンスと速度の両面で物体検出タスクを最適化するのに役立ちます。
使用例
Ultralyticsにより、YOLO-NASモデルはultralytics pythonパッケージを通じて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: 計算リソースの制約が少ない、最高の精度が求められるシナリオ向けに調整されています。
以下は、事前トレーニング済みウェイトへのリンク、サポートされているタスク、さまざまな動作モードとの互換性など、各モデルの詳細な概要です。
| モデルタイプ | 事前学習済み重み | サポートタスク | 推論 (Inference) | 検証 | 学習 | Export |
|---|---|---|---|---|---|---|
| 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},
}We express our gratitude to Deci AI's SuperGradients team for their efforts in creating and maintaining this valuable resource for the computer vision community. We believe YOLO-NAS, with its innovative architecture and superior object detection capabilities, will become a critical tool for developers and researchers alike.
FAQ
YOLO-NASとは何ですか?また、従来のYOLOモデルと比べてどのように改善されていますか?
Deci AIによって開発されたYOLO-NASは、高度なNeural Architecture Search(NAS)技術を活用した最先端の物体検出モデルです。量子化フレンドリーな基本ブロックや洗練されたトレーニングスキームといった機能を導入することで、従来のYOLOモデルの限界に対処しています。これにより、特に計算リソースが限られた環境において、パフォーマンスが大幅に向上しました。YOLO-NASは量子化もサポートしており、INT8バージョンに変換された場合でも高い精度を維持できるため、本番環境への適合性が高まっています。詳細については、概要セクションを参照してください。
YOLO-NASモデルをPythonアプリケーションに統合するにはどうすればよいですか?
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の主な特徴は何ですか?また、なぜそれを使用することを検討すべきなのですか?
YOLO-NASには、物体検出タスクにおいて優れた選択肢となるいくつかの重要な特徴があります:
- 量子化フレンドリーな基本ブロック: 量子化後の精度低下を最小限に抑えながらモデルのパフォーマンスを向上させる強化されたアーキテクチャ。
- 洗練されたトレーニングと量子化: 高度なトレーニングスキームと学習後の量子化技術を採用しています。
- AutoNACの最適化と事前トレーニング: AutoNAC最適化を利用し、COCO、Objects365、Roboflow 100などの著名なデータセットで事前トレーニングされています。
これらの特徴により、高い精度、効率的なパフォーマンス、そして本番環境への導入に適した特性が実現されています。詳細は主な特徴セクションでご確認ください。
YOLO-NASモデルではどのようなタスクやモードがサポートされていますか?
YOLO-NASモデルは、推論、検証、エクスポートなど、さまざまな物体検出タスクとモードをサポートしています。トレーニングはサポートされていません。サポートされているモデルには、それぞれの計算能力やパフォーマンスのニーズに合わせて調整されたYOLO-NAS-s、YOLO-NAS-m、YOLO-NAS-lが含まれます。詳細については、サポートされているタスクとモードセクションを参照してください。
事前トレーニング済みのYOLO-NASモデルは利用できますか?また、どのようにアクセスできますか?
はい、Ultralyticsは直接アクセスできる事前トレーニング済みのYOLO-NASモデルを提供しています。これらのモデルはCOCOなどのデータセットで事前トレーニングされており、速度と精度の両面で高いパフォーマンスを保証します。事前トレーニング済みモデルセクションで提供されているリンクを使用して、これらのモデルをダウンロードできます。いくつかの例を以下に示します: