我最近安装了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 中得到预测的边界框和类:
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)
.