📑
yolov8を用いてmp4動画ファイルの物体検知をする
やること
yolov8を用いてmp4動画ファイルの物体検知を行う。
前提
- Python 3.9.6
- mp4ファイルが手元にあること
手順
- 以下のコマンドを実行
pip install ultralytics
- 以下のコードを実行
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()
- 実行すると、検知結果が描画される
- 検知が終わると、物体検知結果が反映したmp4ファイルが作成されていることを確認
まとめ
yolov8を用いて動画の物体検出を行う方法をまとめました。
サクッと作れて便利でした。
Discussion