0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

YOLOv8で物体追跡(MOT)する

Posted at

クラスIDとバウンディングボックスから、接近検知を行いたい…

  • Jetson Orin, Jetson Nano
  • YOLOv8.3.11

物体追跡(MOT)

参考にさせていただきました:
https://qiita.com/daifuku10/items/50cb5cd9740e07fde591

track_webcam.py
import cv2
from ultralytics import YOLO

model = YOLO('yolov8n.pt')  # 学習済みモデルをロード

cap = cv2.VideoCapture(0)   # カメラを開く
cap.set(cv2.CAP_PROP_FRAME_WIDTH, 1280)  # 横1280ピクセル
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 720)  # 縦720ピクセル

while True:
    success, frame = cap.read()  # 1フレーム読み込み

    # 物体のトラッキング persist:フレーム間でトラッキングを永続化
    # verbose:コンソールへのログ出力を無効化 conf:信頼しきい値
    results = model.track(frame, persist=True, verbose=False, conf=0.5)

    annotated_frame = results[0].plot()  # トラッキング結果をフレームに描画

    items = results[0]  # 複数の物体情報を取得

    for item in items:  # 1つ取得し
        cls = int(item.boxes.cls)   # クラスIDを取得
        label = item.names[int(cls)]    # クラスIDからラベル名を取得

        score = item.boxes.conf.cpu().numpy()[0]    # 信頼度を取得

        x1, y1, x2, y2 = item.boxes.xyxy.cpu().numpy()[0]  # バウンディングボックスの座標を取得

        id_value = item.boxes.id  # トラッキングIDを取得 存在しない場合はNone
        if id_value is None:    # トラッキングIDが存在しないなら空文字
            track_ids = ''
        else:   # 存在すればIDを取得
            track_ids = item.boxes.id.int().cpu().tolist()[0]

        print(str(cls), str(label), str(score), str(track_ids), \
            str(x1), str(y1), str(x2), str(y2))

    cv2.imshow("YOLOv8 Tracking", annotated_frame)

    if cv2.waitKey(1) != -1:
        break

cap.release()   # カメラを開放
cv2.destroyAllWindows()  # ウィンドウを閉じる
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?