YOLO-NAS#
YOLO-NASの開発元であるDeciは、NVIDIAに買収されました。その結果、Deciによるこれらのモデルの積極的なメンテナンスは終了しました。Ultralyticsは引き続きこれらのモデルの使用をサポートしますが、開発元チームからの今後のアップデートは予定されていません。
概要#
Deci AIが開発したYOLO-NASは、画期的な物体検出基盤モデルです。高度なニューラルアーキテクチャサーチ技術を用いて、従来の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 |
各モデルのバリエーションは、平均適合率(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
# COCOで事前学習したYOLO-NAS-sモデルを読み込む
model = NAS("yolo_nas_s.pt")
# モデル情報を表示(任意)
model.info()
# COCO8サンプルデータセットでモデルを検証する
results = model.val(data="coco8.yaml")
# 'bus.jpg'画像でYOLO-NAS-sモデルを使用して推論を実行する
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は、開発者や研究者にとって重要なツールになると考えています。
よくある質問#
Deci AIが開発したYOLO-NASは、高度なニューラルアーキテクチャサーチ(NAS)技術を活用した最先端の物体検出モデルです。量子化に適した基本ブロックや高度なトレーニング方式などの機能を導入し、従来のYOLOモデルの制約に対処しています。その結果、特に計算リソースが限られた環境で性能が大幅に向上しています。また、YOLO-NASは量子化をサポートしており、INT8バージョンに変換した後も高い精度を維持するため、実運用環境への適性が高まります。詳細については、概要セクションをご覧ください。
ultralyticsパッケージを使用すると、YOLO-NASモデルをPythonアプリケーションに簡単に統合できます。事前学習済みYOLO-NASモデルを読み込んで推論を実行する簡単な例を以下に示します。from ultralytics import NAS # COCOで事前学習したYOLO-NAS-sモデルを読み込む model = NAS("yolo_nas_s.pt") # COCO8サンプルデータセットでモデルを検証する results = model.val(data="coco8.yaml") # 'bus.jpg'画像でYOLO-NAS-sモデルを使用して推論を実行する 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などのデータセットで事前学習されており、速度と精度の両面で高い性能を発揮します。事前学習済みモデルのセクションに記載されたリンクから、これらのモデルをダウンロードできます。例をいくつか紹介します。