YOLOv8 得到预测的类名

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

我只想在我的 python 脚本中获取类数据,如:人、汽车、卡车、狗 但我的输出不止于此。我也不能将结果用作字符串。

Python脚本:

from ultralytics import YOLO

model = YOLO("yolov8n.pt") 
results = model.predict(source="0")

输出:

0: 480x640 1 person, 1 car, 7.1ms
0: 480x640 1 person, 1 car, 7.2ms
0: 480x640 1 person, 1 car, 7.1ms
0: 480x640 1 person, 1 car, 7.1ms
0: 480x640 1 person, 1 car, 7.1ms
0: 480x640 1 person, 7.9ms
0: 480x640 1 person, 7.1ms
0: 480x640 1 person, 1 car, 7.1ms
0: 480x640 1 person, 1 car, 7.1ms
python object-detection yolo
2个回答
4
投票

您可以像这样将每个类传递给模型的名称字典:

from ultralytics.yolo.engine.model import YOLO
  
model = YOLO("yolov8n.pt")
results = model.predict(stream=True, imgsz=512) # source already setup

for r in results:
    for c in r.boxes.cls:
        print(model.names[int(c)])

输出:

YOLOv8n summary (fused): 168 layers, 3151904 parameters, 0 gradients, 8.7 GFLOPs
bus
person
person
person
person
image 1/2 /home/xyz/ultralytics/ultralytics/assets/bus.jpg: 512x384 4 persons, 1 bus, 35.7ms
person
person
person
tie
tie
image 2/2 /home/xyz/ultralytics/ultralytics/assets/zidane.jpg: 288x512 3 persons, 2 ties, 199.0ms
Speed: 3.9ms pre-process, 117.4ms inference, 27.9ms postprocess per image at shape (1, 3, 512, 512)

0
投票

单循环代码

clist= res[0].boxes.cls
cls = set()
for cno in clist:
    cls.add(model.names[int(cno)])

print(cls)
© www.soinside.com 2019 - 2024. All rights reserved.