YoloV8修改检测框为中心点
代码实现参考:
https://github.com/computervisioneng/train-yolov8-custom-dataset-step-by-step-guide/blob/master/local_env/predict_video.py
from ultralytics import YOLO
from PIL import Image
import cv2
import numpy as npmodel = YOLO("/home/ps/Code/ROS/robot_ws/src/vision/yolo/scripts/yolov8x.pt") # load a pretrained model (recommended for training)#识别一张图片
# im1 = Image.open("bus.jpg")
im1 = cv2.imread("bus.jpg")results = model.predict(source=im1)[0]
threshold = 0.1for result in results.boxes.data.tolist():x1, y1, x2, y2, score, class_id = resultif score > threshold:# 绘制框cv2.rectangle(im1, (int(x1), int(y1)), (int(x2), int(y2)), (0, 255, 0), 1)# 获取物体标签label = results.names[int(class_id)].upper()# 绘制文本cv2.putText(im1, label, (int(x1), int(y1 - 10)),cv2.FONT_HERSHEY_SIMPLEX, 0.3, (0, 255, 0), 1, cv2.LINE_AA)
cv2.imwrite("output.jpg", im1)
Yolo可以直接识别一个图片,也可以直接识别一整个文件夹
识别文件夹如下:
# 识别整个文件夹
# results = model.predict(source="./YoloPicture/YoloPicture/inside", save=True) # Display preds. Accepts all YOLO predict arguments
predict方法有很多参数,其中一个关键的参数是save = True,这个可以让识别的结果直接保存下来
具体可以参考官方文档:Predict - Ultralytics YOLOv8 Docs