如何获取YOLO_NAS目标检测中bounding box的坐标?

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

我最近安装了supergradients来使用YOLO_NAS,这个例子很容易做出预测,有谁知道如何得到物体的边界框?或者模型的预测就像另一个模型 yolo.

例子:


from super_gradients.training import models

yolo_nas_l = models.get("yolo_nas_l", pretrained_weights="coco")

url = "https://previews.123rf.com/images/freeograph/freeograph2011/freeograph201100150/158301822-group-of-friends-gathering-around-table-at-home.jpg"

yolo_nas_l.predict(url, conf=0.25).show()

结果:根据预测绘制的图像

谢谢

我期待模型给我一个数组中的预测以及它们的边界框和类。

yolo nas
1个回答
0
投票

你可以像这样在 YOLO-NAS 中得到预测的边界框和类:

predictions = model.predict(url, conf=0.25)
prediction_objects = list(predictions._images_prediction_lst)[0]
bboxes = prediction_objects.prediction.bboxes_xyxy

int_labels = prediction_objects.prediction.labels.astype(int)
class_names = prediction_objects.class_names
pred_classes = [class_names[i] for i in int_labels]

predictions
对象在您调用
predictions._images_prediction_lst
时提供一个生成器。使用这种方法,实际检测不会发生,直到您在生成器上调用
list()
然后提供“预测/检测相关对象”列表。这些对象之一是“预测”。我们可以使用它来获得一组预测边界框。同样我们也可以获得对应类标签的列表。

这在文档中可能没有明确说明(我找不到)。相反,我鼓励您使用 dir() 函数进行探索,以了解有关输出的更多信息。

例如看看这会返回什么

dir(prediction_objects)
.

© www.soinside.com 2019 - 2024. All rights reserved.