为什么 Jupyter 内核在使用 YOLOv8 和 DeepSORT 进行对象跟踪的第二次迭代期间死掉了?

问题描述 投票:0回答:1

我将分别使用 YOLOv8 和 DeepSORT 通过导入它们的包来检测和跟踪视频文件中的对象。在帧读取的第一次迭代中,一切正常,但在第二次迭代中,Jupyter 笔记本内核在

tracks = tracker.update_tracks(results, frame=frame)
行处死掉。可能是什么原因? 代码如下:

import torch
import cv2
import ultralytics
from deep_sort_realtime.deepsort_tracker import DeepSort

model = ultralytics.YOLO("yolov8m.pt")
tracker = DeepSort(max_age=50)

CONFIDENCE_THRESHOLD = 0.8

cap = cv2.VideoCapture('video.mp4')

while True:
    ret, frame = cap.read()

    if not ret:
        break
        
    detections = model(frame)[0]
    
    results = []
    for data in detection.boxes.data.tolist():
        
        confidence = data[4]

        if float(confidence) < CONFIDENCE_THRESHOLD:
            continue
        xmin, ymin, xmax, ymax = int(data[0]), int(data[1]), int(data[2]), int(data[3])
        class_id = int(data[5])
        results.append([[xmin, ymin, xmax - xmin, ymax - ymin], confidence, class_id])
        
    tracks =tracker.update_tracks(results, frame=frame)
    for track in tracks:
        if not track.is_confirmed():
            continue

        bbox = track.to_tlbr()
        track_id = track.track_id
        class_name = track.get_class()        
        
    cv2.imshow("Frame", frame)

    if cv2.waitKey(1) == ord("q"):
        break

cap.release()
cv2.destroyAllWindows()
python deep-learning jupyter-notebook pytorch yolo
1个回答
0
投票

解决方案是将

numpy
scipy
升级到最新版本,因为我使用的是最新版本的 Jupyter Notebook。

© www.soinside.com 2019 - 2024. All rights reserved.