pred.py 1.1 KB

1234567891011121314151617181920212223242526272829303132333435
  1. # 侦测
  2. from ultralytics import YOLO
  3. import cv2
  4. import numpy as np
  5. # 加载我们训练的模型
  6. model = YOLO("runs/detect/train5/weights/best.pt")
  7. # 预测结果
  8. result = model("0a6b02a4527e19eef8c6fd19497104e.jpg") # 利用模型侦测图片中的目标
  9. # print(result[0]) # [0]表示第一张图像的识别结果
  10. names = result[0].names # 类别对应的名字
  11. print(names)
  12. boxes = result[0].boxes # 取一个目标
  13. if len(boxes.cls) > 0:
  14. cls = int(boxes.cls[0].cpu().item()) #
  15. conf = boxes.conf[0].cpu().item()
  16. x1, y1, x2, y2 = boxes.xyxy[0].cpu().numpy().astype(np.int32)
  17. print(cls) # 类别ID
  18. print(conf) # 目标侦测成功的置信度
  19. print(x1, y1, x2, y2) # 侦测目标的区域
  20. print(names[cls]) # 获取侦测的目标名字
  21. # 把目标在图像中标注出来
  22. # 1. 打开图像
  23. img = cv2.imread("0a6b02a4527e19eef8c6fd19497104e.jpg")
  24. # 2. 标注图像
  25. img = cv2.rectangle(img, (x1, y1), (x2, y2), color=(0, 0, 255), thickness=5)
  26. # 3. 保存图像
  27. cv2.imwrite("1.jpg", img)