我是 Ultralytics YOLO 的新手。我正在尝试获取在单个图像中识别的总对象(指定类“人”的)。
这是代码:
import json
from ultralytics import YOLO
def test_yolo(image_path):
model = YOLO('yolov8n.pt')
results = model(image_path)
return results
if __name__ == "__main__":
results = test_yolo('/home/myuser/test/yolo/data/persone.jpg')
count = 0
results_array = json.loads(results[0].tojson())
for result in results_array:
if result["name"] == "person":
count = count +1
print("Persons: ", count)
使用此方法,使用“.json()”方法将结果转换为 Json 数组,并使用“json.loads()”将 Json 数组转换为 Python 字典列表。 但我确信这不是完成任务的正确方法。
这是输出:
图片 1/1 /home/myuser/test/yolo/data/persone.jpg:384x640 6 人,1 条领带,63.5ms 速度:形状 (1, 3, 384, 640) 下每张图像的预处理时间为 2.2 毫秒,推理时间为 63.5 毫秒,后处理时间为 1.1 毫秒
人数:6人
正如你所看到的,它在第一行打印了识别到的物体的数量,这意味着Yolo已经有了物体的数量。如何在不使用我的(低效)代码的情况下访问此计数器?
通过以下链接,您将能够使用内置对象计数。
对象计数:https://docs.ultralytics.com/guides/object-counting/#real-world-applications。