📑

yolov8を用いてmp4動画ファイルの物体検知をする

2024/06/12に公開

やること

yolov8を用いてmp4動画ファイルの物体検知を行う。

前提

  • Python 3.9.6
  • mp4ファイルが手元にあること

手順

  1. 以下のコマンドを実行
pip install ultralytics
  1. 以下のコードを実行
import cv2
from ultralytics import YOLO

# 動画ファイルのパス
video_path = '<動画ファイルまでのパス>'

# Yolov8モデルのロード
model = YOLO('yolov8n.pt')

# 動画ファイルの読み込み
cap = cv2.VideoCapture(video_path)

# 出力動画の設定
output_path = '<出力先のファイル名>'
fourcc = cv2.VideoWriter_fourcc(*'mp4v')
out = cv2.VideoWriter(output_path, fourcc, 30.0, (int(cap.get(3)), int(cap.get(4))))

while(cap.isOpened()):
    ret, frame = cap.read()
    if ret:
        # フレームごとに物体検知を行う
        results = model(frame)
        
        # 検知結果を描画
        annotated_frame = results[0].plot()
        
        # 出力動画にフレームを書き込む
        out.write(annotated_frame)
        
        # フレームを表示
        cv2.imshow('Frame', annotated_frame)
        
        # 'q'キーが押されたら終了
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break
    else:
        break

# リソースの解放
cap.release()
out.release()
cv2.destroyAllWindows()

  1. 実行すると、検知結果が描画される
  1. 検知が終わると、物体検知結果が反映したmp4ファイルが作成されていることを確認

まとめ

yolov8を用いて動画の物体検出を行う方法をまとめました。
サクッと作れて便利でした。

ヘッドウォータース

Discussion