Как нарисовать ограничительные рамки из «results.xyxy[0]» с прямоугольником cv2 (YOLOv5)?

#python #machine-learning #object-detection #yolov5

Вопрос:

Новичок как в python, так и в машинном обучении. Я пытаюсь нарисовать ограничительные рамки на снимке экрана mss. Это та часть кода, в которой, по моему мнению, я должен получать координаты для рисования прямоугольника.

 while True:   img = screnshot.grab(bounding_box)   frame = np.array(img)   cv2.imshow('Testing', frame)   results = model(frame)   results.print()   pandasbox=results.pandas().xyxy[0]  print(pandasbox)  

Координаты и классы печатаются просто отлично, например, с помощью панд:

 image 1/1: 400x350 1 person, 1 truck Speed: 0.0ms pre-process, 14.4ms inference, 0.0ms NMS per image at shape (1, 3, 640, 576)  xmin ymin xmax ymax confidence class name 0 61.171875 134.765625 133.046875 334.0625 0.810547 0 person 1 181.562500 0.273438 347.500000 86.2500 0.768555 7 truck  

Но… Я понятия не имею, как сформировать прямоугольник, используя эти координаты. Добавление «(xmin, xmax),(ymin, ymax)» в функцию cv2.rectangle не увенчалось успехом, как и многие другие попытки, включая эту попытку, которая никогда не рисовала ограничительные рамки на экране mss, несмотря на обнаружение печати:

 for box in results.xyxy[0]:   if box[5]==0:    xB = int(box[2])  xA = int(box[0])  yB = int(box[3])  yA = int(box[1])    cv2.rectangle(frame, (xA, yA), (xB, yB), (0, 255, 0), 2)  

Если бы кто-нибудь мог показать мне пример использования координат из «results.pandas().xyxy[0]», чтобы нарисовать ограничивающую рамку с cv2.прямоугольником, это было бы здорово! А также любые другие указания или идеи, о которых кто-то новичок в этом не знал бы…