今回の記事では2023年5月に登場した最先端の性能を誇るオブジェクト検出モデルであるYOLO-NASの実装を紹介します。
Google Colabを使用して簡単に実装できますので、ぜひ最後までご覧ください。
今回の内容
・YOLO-NASとは
・YOLO-NASの実装
YOLO-NASとは
YOLO-NASは、2023年5月に登場した最先端の性能を誇るオブジェクト検出モデルです。
YOLOv5、YOLOv6、YOLOv7、およびYOLOv8などの他のモデルを上回る独自の精度と速度性能を誇っています。このモデルは、Deciの独自のニューラルアーキテクチャ検索技術であるAutoNAC™によって生成されました。AutoNAC™エンジンは、任意のタスク、データの特性、推論環境、およびパフォーマンス目標を入力し、特定のアプリケーションに適した最適なアーキテクチャを見つけることができます。このエンジンは、データとハードウェアの認識に加えて、推論スタック内の他のコンポーネントも考慮しています。
YOLO-NASは、他の同等のモデルと比較して約0.5 mAPポイントの精度が高く、10~20%高速です。この性能は、Coco 2017 ValデータセットとNvidia T4 GPU上の640×640画像でのレイテンシーベンチマークに基づいています。
このモデルのアーキテクチャは、量子化に対応したブロックと選択的量子化を採用しており、最適化されたパフォーマンスを実現しています。INT8量子化バージョンに変換されると、YOLO-NASは他のモデルと比較して精度が僅かに低下するだけで、オブジェクト検出能力とパフォーマンスが優れた革新的なアーキテクチャが特徴です。
物体検出だけでなく、セグメンテーションタスクや画像分類タスクでも利用することができます。
詳細は以下のリンクからご確認ください。
コード:https://github.com/Deci-AI/super-gradients
YOLO-NASの実装
準備
ここからはGoogle colabを使用して、YOLO-NASの学習済モデルによる推論を実装していきます。
まずはGPUを使用できるように設定をします。
「ランタイムのタイプを変更」→「ハードウェアアクセラレータ」をGPUに変更
必要なライブラリをインストールします。YOLO-NASの環境はpipでインストールすることができます。
!pip install super-gradients
インストールが終了したら、ランタイムを再起動します。
「ランタイム」→「ランタイムの再起動」
Googleドライブをマウントします。
from google.colab import drive
drive.mount('/content/drive')
%cd ./drive/MyDrive
画像の推論
使用するモデルを指定します。今回の例ではyolo_nas_l
を使用します。
import super_gradients
yolo_nas = super_gradients.training.models.get("yolo_nas_l", pretrained_weights="coco").cuda()
推論する対象を指定します。
ここではURLで画像を指定します。.show()
とすることで、結果を表示することができます。
yolo_nas.predict('https://github.com/ultralytics/yolov5/raw/master/data/images/zidane.jpg').show()
実行結果:
画像の推論(閾値を指定)
conf=0.5
とすることで、スコアの閾値を指定することができます。
yolo_nas.predict('https://github.com/ultralytics/yolov5/raw/master/data/images/zidane.jpg',conf=0.5).show()
実行結果:
動画の推論
動画も推論対象とすることができます。
以下の例ではtest.mp4
という動画を指定しています。
.save(output_path = 'result')
とすることで、出力結果を保存することができます。
yolo_nas.predict('test.mp4',conf=0.5).save(output_path = 'result')
出力結果(参考):
まとめ
最後までご覧いただきありがとうございました。
今回の記事では2023年5月に登場した最先端の性能を誇るオブジェクト検出モデルであるYOLO-NASの実装を紹介しました。
精度・推論速度ともに向上しており、非常に使いやすいものになっています。
物体検出の活用の幅がさらに広がりそうですね。