見出し画像

我が家のにゃん'sをYOLOv8でトラッキング

YOLOv8を使った案件が決まりました!

こんにちは前回サッカーの選手のトラッキングをYOLOv8で実施しました。

細かくは言えませんがYOLOPyTorchを使った挑戦的な案件をご縁があって受託することになりました。

以前のブログはこちら

会社としてもAI関連はもっと力を入れていきたいので僕も開発者ではないのですがエンジニアとして末席ながら勉強していきたいと思います。

我が家の猫をYOLOv8でトラッキングしてみたいと思います。



Google driveをマウント

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

Google driveに動画を置く


Google colabで開始

movie.pyで動画の切り出し

2分ほどの動画を15秒ほどに切り出します。

from moviepy.editor import VideoFileClip

# 動画ファイルのパス
input_video_path = '/content/drive/MyDrive/Project_folder/yolo_cat/IMG_4098.mov'
output_video_path = '/content/drive/MyDrive/Project_folder/yolo_cat/yolo_cat14sec.mov'

# 動画を読み込み、最初の15秒間を切り出し
clip = VideoFileClip(input_video_path).subclip(0, 15)
clip.write_videofile(output_video_path, codec="libx264")


動いています。

movie.py

できました。

動画の切り出し


Ultralytics YOLOv8のインストール

次に、Ultralytics YOLOv8をインストールします。

!pip install ultralytics

yolov8n.ptとは?

YOLOv8(You Only Look Once バージョン8)Nanoモデルの事前学習済みウェイトファイルです。このファイルは、Ultralyticsが提供しているYOLOv8モデルの中で、最も軽量で計算効率の高いバージョンのモデルを指します。

YOLOv8n(Nanoモデル)の特徴

  • サイズが小さい: Nanoモデルは、非常に軽量で計算負荷が少ないため、特にリソースが限られたデバイス(低スペックのPCやエッジデバイスなど)でのリアルタイム推論に向いています。

  • 速度が速い: 他のバージョン(Small、Medium、Large、X-Large)と比較して推論速度が速く、リアルタイム性が重要なアプリケーションで使用されます。

  • 精度がやや低い: モデルが軽量化されているため、他の大きなモデルと比較して検出精度は低めです。しかし、軽量化とリアルタイム性が求められるタスクにおいては有用です。

YOLOv8のモデルサイズの比較

YOLOv8には、以下のような異なるモデルサイズがあり、nはNanoを示しています。

  1. yolov8n.pt: Nanoモデル(最も軽量、推論が高速)

  2. yolov8s.pt: Smallモデル(少し重いが、精度が向上)

  3. yolov8m.pt: Mediumモデル(NanoやSmallよりもさらに高精度だが、計算コストも高い)

  4. yolov8l.pt: Largeモデル(非常に高精度だが、計算リソースが多く必要)

  5. yolov8x.pt: Extra Largeモデル(最高の精度を持つが、推論速度は最も遅い)

実際に我が家のねこ動画のトラッキングをやってみる

from ultralytics import YOLO

# YOLOv8のモデルをロード
model = YOLO('yolov8n.pt')  # 小型のYOLOv8モデルを使用

# 切り出した動画ファイルへのパスを指定
video_path = output_video_path

# 動画から物体検出・トラッキングを実行
results = model.track(source=video_path, show=True, save=True)

1フレームごとに検出しているようです。

検出中

runs/detect/trackフォルダに
yolo_cat14sec.avi
が生成されました。

runs/detect/track はGoogle Colabのローカル(仮想マシン内)のディレクトリです。

蛇足ですがGoogle Driveにコピー

!cp runs/detect/track/yolo_cat14sec.avi /content/drive/MyDrive/Project_folder/yolo_cat/

さてみてみましょう!

今回のにゃん'sはアビシニアンのブルーとルビーです。
ブルー♂が寝転んでいます。
ルビー♀が行ったり来たりしています。

ちゃんとトラッキングできていますね。

できました!!

まあ、我が家の猫ちゃんのかわいいこと

今度はかくれクマのみをトラッキングしてみようかな。

まとめ

今回はUltralyticsが提供しているYOLOv8モデルの中で、最も軽量で計算効率の高いYOLOv8Nanoの事前学習済みモデルを使って「我が家の可愛いにゃん'sのトラッキング」成功しました!


いいなと思ったら応援しよう!