Pytorchによる物体検出 YoLov5 part(5)

colaboratory

はじめに

swim-loverです。PythonとPytorchで物体検出を行っています。 Pythonを始めたばかりですが、「使いながら覚える」をコンセプトに勉強しています。

以前に物体検出の一つである、YoLov3をColabで動かしてみました。今回は、YoLov5について取り上げたいと思います。

YoLov5

YoLov5は、2020年6月9日のリリースとなっています。現時点2022年8月27日時点では、YoLov7まで進んでいるようです。

以下のリポジトリを参考にしました。

GitHub - ultralytics/yolov5: YOLOv5 🚀 in PyTorch > ONNX > CoreML > TFLite
YOLOv5 🚀 in PyTorch > ONNX > CoreML > TFLite. Contribute to ultralytics/yolov5 development by creating an account on GitHub.

YoloV5は、”n,s,m,l,x”の5バージョンがあるようです。(2022/7/28時点)

“n”が4.5FLOPSでもっとも処理負荷が低い。処理が早い。

一方、物体検出の評価指標である、mAPvalは、一番低いスコアになっています。

さっそく、Colab上で試してみます。

Colab上にDriveをマウントしましす。

from google.colab import drive
drive.mount('/content/drive')

予め作成しておいたディレクトリtest_yolo_v5に移動します。

cd drive/MyDrive
cd test_yolo_v5

gitよりCloneします。

!git clone https://github.com/ultralytics/yolov5
cd yolov5

YoLov5の実行に必要な関連モジュールも一括してインストールします。

pip install -r requirements.txt

推論処理 inference

学習済モデルを使用して推論処理を試してみます。

pytorchのインポート

import torch

学習済モデルのLoadします。yolo5sを使う設定です。

# Model
model = torch.hub.load('ultralytics/yolov5', 'yolov5s')  # or yolov5n - yolov5x6, custom

イメージのDownload

# Images
img = 'https://ultralytics.com/images/zidane.jpg'  # or file, Path, PIL, OpenCV, numpy, list

推論処理の実行

# Inference
results = model(img)

結果を確認します。

# Results
results.save()

すごいサンプルの画像でした。

別の画像を試してみます。以前にも使用した手持ちの画像です。

2台の重なった自転車が1台の自転車として認識されました。

次の画像です。4台の自転車の検出に加えて、Bottleも検出できています。YoLov3ではBottleは検出していませんでした。

まとめ

今回、YoLov5の動作を確認してみました。次回以降も物体検出を試していきたいと思います。

コメント

タイトルとURLをコピーしました