如何将“检测”对象转换为字符串

xiaoxingxing pytorch 205

原文标题How to turn ‘Detections’ object into string

我有这段代码,它使用 YOLOV5 和我训练过的模型的权重来推断图像以检测和识别埃及货币。对象“结果”的数据类型为“检测”。有没有办法将它转换为字符串对象,因为我出于某种目的需要标签输出?我尝试了 str() 函数,但它不起作用。

import torch
import os
import cv2

# Model
model = torch.hub.load(r'C:\Users\HAYA\PycharmProjects\curency_recognition\yolov5-master\yolov5-master', 'custom', path=r'C:\Users\HAYA\PycharmProjects\curency_recognition\_best.pt', source='local')
# Image
im = [r'E:\_currency.jpg']
# Inference
results = model(im)
# results
results.print()
results.save()  # or .show()
results.show()
results.xyxy[0]  # img1 predictions (tensor)
results.pandas().xyxy[0]

原文链接:https://stackoverflow.com//questions/71905867/how-to-turn-detections-object-into-string

回复

我来回复
  • mak13的头像
    mak13 评论

    以下功能有点“错误”,但它可以为您提供所需的结果

    def results_parser(results):
      s = ""
      if results.pred[0].shape[0]:
        for c in results.pred[0][:, -1].unique():
          n = (results.pred[0][:, -1] == c).sum()  # detections per class
          s += f"{n} {results.names[int(c)]}{'s' * (n > 1)}, "  # add to string
      return s
    

    我在原始存储库中的 Zidane 图像上运行默认的 yolov5s,在获取结果对象后,我执行了以下操作:

    # Model
    model = torch.hub.load(r'/content/yolov5//', 'custom', path=r'/content/yolov5/yolov5s.pt', source='local')
    # Image
    im = [r'runs/detect/exp/zidane.jpg']
    # Inference
    results = model(im)
    print(results_parser(results))
    

    输出是:

    2 persons, 2 ties, 
    

    我希望你觉得这个答案有帮助,祝你有美好的一天)

    2年前 0条评论