ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

from ultralytics import YOLO
import cv2
import torch
from supervision.video.source import get_video_frames_generator
from supervision.notebook.utils import show_frame_in_notebook
from supervision.draw.color import ColorPalette
from supervision.tools.detections import Detections, BoxAnnotator
from supervision.video.sink import VideoSink
from supervision.video.dataclasses import VideoInfo

# Load the YOLO model
MODEL = "yolov8x.pt"
model = YOLO(MODEL)
model.fuse()

source = "output5.mp4"

CLASS_NAMES_DICT = model.model.names
CLASS_ID = [0]
# Generate video frames from the source
generator = get_video_frames_generator("output5.mp4")
iterator = iter(generator)

# Initialize box annotator
box_annotator = BoxAnnotator(color=ColorPalette(), thickness=4, text_thickness=4, text_scale=2)

video_info = VideoInfo.from_video_path(source)

# Get the first frame from the video
frame = next(iterator)


results = model(frame)[0]  # Pass the frame as a list

detections = Detections(
    xyxy=results.boxes.xyxy.cpu().numpy(),
    confidence=results.boxes.conf.cpu().numpy(),
    class_id=results.boxes.cls.cpu().numpy().astype(int)
)

labels = [
    f"{CLASS_NAMES_DICT[class_id]} {confidence:0.2f}"
    for _, confidence, class_id, tracker_id
    in detections
]

frame = box_annotator.annotate(frame=frame, detections=detections, labels=labels)

show_frame_in_notebook(frame, (16,16))



The error I am getting is :

YOLOv8x summary: 268 layers, 68200608 parameters, 0 gradients, 257.8 GFLOPs
Traceback (most recent call last):
File “C:\Users\khars\PycharmProjects\Bytetrack\main.py”, line 33, in
results = model(frame)[0] # Pass the frame as a list
File “C:\Users\khars\PycharmProjects\Bytetrack\venv\lib\site-packages\ultralytics\yolo\engine\model.py”, line 58, in call
return self.predict(source, **kwargs)
File “C:\Users\khars\PycharmProjects\Bytetrack\venv\lib\site-packages\torch\utils_contextlib.py”, line 116, in decorate_context
return func(*args, **kwargs)
File “C:\Users\khars\PycharmProjects\Bytetrack\venv\lib\site-packages\ultralytics\yolo\engine\model.py”, line 130, in predict
predictor.setup(model=self.model, source=source)
File “C:\Users\khars\PycharmProjects\Bytetrack\venv\lib\site-packages\ultralytics\yolo\engine\predictor.py”, line 111, in setup
source = str(source or self.args.source)
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

Process finished with exit code 1

This topic was automatically closed 21 days after the last reply. New replies are no longer allowed.