YOLOV8 绘制追踪路径(基于ultralytics)

完整代码脚本如下:
from collections import defaultdict
import cv2
import numpy as np
from ultralytics import YOLO

# 加载YOLOv8模型
model = YOLO('yolov8x.pt')

# 打开视频文件
video_path = 0
cap = cv2.VideoCapture(video_path)

# 存储追踪历史和未检测到的连续帧数
track_history = defaultdict(lambda: {'track': [], 'missed_frames': 0})
max_missed_frames = 5  # 设置最大允许连续未检测到的帧数

# 循环遍历视频帧
while cap.isOpened():
    # 从视频读取一帧
    success, frame = cap.read()

    if not success:
        print("无法读取视频帧,可能已到达视频末尾或视频文件损坏。")
        break

    # 在帧上运行YOLOv8追踪,持续追踪帧间的物体
    results = model.track(frame, persist=True)

    # 获取框和追踪ID
    if results[0].boxes.id is not None:
        boxes = results[0].boxes.xywh.cpu()
        track_ids = results[0].boxes.id.int().cpu().tolist()
    else:
        boxes = []
        track_ids = []

    # 维护一个活跃目标集合
    active_track_ids = set(track_ids)  # 当前帧中的活跃目标ID

    # 更新活跃目标的历史记录,并重置未检测到的帧数
    for box, track_id in zip(boxes, track_ids):
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值