我が家のにゃん'sをYOLOv8でトラッキング
YOLOv8を使った案件が決まりました!
こんにちは前回サッカーの選手のトラッキングをYOLOv8で実施しました。
細かくは言えませんがYOLOとPyTorchを使った挑戦的な案件をご縁があって受託することになりました。
以前のブログはこちら
会社としても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")
動いています。
できました。
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を示しています。
yolov8n.pt: Nanoモデル(最も軽量、推論が高速)
yolov8s.pt: Smallモデル(少し重いが、精度が向上)
yolov8m.pt: Mediumモデル(NanoやSmallよりもさらに高精度だが、計算コストも高い)
yolov8l.pt: Largeモデル(非常に高精度だが、計算リソースが多く必要)
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のトラッキング」成功しました!