Pythonによるデータ分析・機械学習ブログ

Pythonによるデータの前処理・グラフ化、機械学習、統計解析、画像処理、Webスクレイピング、自然言語処理の基礎について紹介していきます。

MENU

YOLO-NASによる物体検出:動作環境の構築と推論デモ

はじめに

YOLO-NASが2023年5月にリリースされました。YOLO-NASは、比類のない精度と速度のパフォーマンスを備えた最先端のパフォーマンスを提供し、YOLOv5、YOLOv6、YOLOv7、YOLOv8 などの他のモデルを上回ると唱っています。

引用:https://github.com/Deci-AI/super-gradients/tree/master

YOLO-NASGIthubリポジトリは下記のリンクです。

github.com

 

本記事では、YOLO-NASによる物体検出をGoogle Colaboratoryで行うための動作環境の構築と推論デモを実施した方法を紹介します。

 

 

 

 

1. YOLO-NASGithubリポジトリ

YOLO-NASGIthubリポジトリは下記のリンクです。

github.com

 

2. Google Colaboratoryでの動作環境の構築と推論デモの方法一覧

以下がGoogle Colaboratoryでの動作環境の構築と推論デモの方法一覧です。

 

2.1 Google Colaboratoryでの動作環境の構築

まずはGoogle Driveのマイドライブに接続します。

次に、Git cloneでリポジトリスクリプトを取得し、必要なライブラリを取得します。

これでひとまず動作環境の構築は完了です。

 

2.2 学習済みモデルの取得

YOLO-NASの物体検出の学習済みモデルには、yolo_nas_s、yolo_nas_m、yolo_nas_lがあります。この中から選択します。以下のリンクから学習済みモデルを確認することができます。

github.com

学習済みモデルyolo_nas_s、yolo_nas_m、yolo_nas_lはCOCOデータセットで学習されているので、引数pretrained_weightsには"coco"を指定します。

 

2.3 画像に対する物体検出のデモ

それでは、画像に対する推論を行っていこうと思います。以下のコードでは以下のことをしています。

  1. まずモデルをGPUに転送しています。
  2. 推論対象画像のパスを指定(ここではYOLOXのGithubリポジトリにある画像を指定、ローカルの画像パスでもOK)
  3. 推論
  4. 推論結果画像の描画

 

推論結果として下図が得られます。バウンディングボックスが描画されているのが確認できると思います。

 

画像の保存には下記のコードを実行します。ここではGoogle Driveの/content/drive/MyDrive/super-gradients/resultに保存したいと思います。

 

2.4 動画に対する物体検出のデモ

次に、動画に対する推論を行っていこうと思います。以下のコードでは以下のことをしています。

  1. まずモデルをGPUに転送しています。
  2. 推論対象動画のパスを指定推論

 

動画の保存には下記のコマンドを実行します。下記の内容ですと/content/drive/MyDrive/super-gradientsのディレクトリにresult.mp4が保存されます。

 

下の動画が推論結果です。バウンディングボックスが描画されているのが確認できると思います。

youtu.be

 

おわりに

本記事では、YOLO-NASによる物体検出をGoogle Colaboratoryで行うための動作環境の構築と推論デモを実施した方法を紹介しました。気軽にGoogle Colaboratoryでできるようになっているのはありがたいですね。今後、YOLO-NASを深堀りしていこうと思います。

 

オススメ書籍

物体・画像認識と時系列データ処理入門

現場で使える!PyTorch開発入門 深層学習モデルの作成とアプリケーションへの実装

PyTorchで作る!深層学習モデル・AIアプリ開発入門