如何将 'Detections' 对象变成字符串
How to turn 'Detections' object into string
我有这段代码,它使用 YOLOV5 和我训练的模型的权重来推断图像以检测和识别埃及货币。对象 'results' 的数据类型为 'Detections'。有什么办法可以将它转换成字符串对象,因为出于某种目的我需要标签输出吗?我尝试了 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]
以下函数有点“错误”,但它可以为您提供所需的结果
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,
希望此回答对您有所帮助,祝您有愉快的一天)
我有这段代码,它使用 YOLOV5 和我训练的模型的权重来推断图像以检测和识别埃及货币。对象 'results' 的数据类型为 'Detections'。有什么办法可以将它转换成字符串对象,因为出于某种目的我需要标签输出吗?我尝试了 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]
以下函数有点“错误”,但它可以为您提供所需的结果
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,
希望此回答对您有所帮助,祝您有愉快的一天)