gpt4 book ai didi

deep-learning - 微调 Faster RCNN 对象检测模型后,如何可视化 bbox 预测?

转载 作者:行者123 更新时间:2023-12-04 04:17:39 26 4
gpt4 key购买 nike

我在自己的自定义数据集上微调了 pytorch torchvision model = torchvision.models.detection.fasterrcnn_resnet50_fpn(pretrained=True)。

我遵循了本指南 https://pytorch.org/tutorials/intermediate/torchvision_tutorial.html#torchvision-object-detection-finetuning-tutorial但只训练了 Faster RCNN,没有训练 Mask RCNN。

我成功地完成了训练,没有出现错误,模型返回了一个包含预测框、标签和分数的字典。

在我遵循的指南中,他们展示了如何可视化训练模型预测的掩码。是否有类似的方法来可视化边界框?我在解决这个问题时遇到了很多麻烦。

谢谢

最佳答案

FasterRCNN 的预测是这样的形式:

>>> predictions = model([input_img_tensor])
[{'boxes': tensor([[419.6865, 170.0683, 536.0842, 493.7452],
[159.0727, 180.3606, 298.8194, 434.4604],
[439.7836, 222.6208, 452.0138, 271.8359],
[444.3562, 224.4628, 456.1511, 265.5336],
[437.7808, 226.5965, 446.2904, 271.2691]], grad_fn=<StackBackward>),
'labels': tensor([ 1, 1, 32, 32, 32]),
'scores': tensor([0.9997, 0.9996, 0.5827, 0.2102, 0.0943], grad_fn=<IndexBackward>)}]

其中预测框为[x1, y1, x2, y2]格式,值在0H之间,0W

您可以使用 OpenCV 的 rectangle 函数在图像上叠加边界框。

import cv2
img = cv2.imread('input_iamge.png', cv2.COLOR_BGR2RGB)

for i in range(len(predictions[0]['boxes'])):
x1, x2, x3, x4 = map(int, predictions[0]['boxes'][i].tolist())
print(x1, x2, x3, x4)
image = cv2.rectangle(img, (x1, x2), (x3, x4), (255, 0, 0), 1)

cv2_imshow('img', image)

关于deep-learning - 微调 Faster RCNN 对象检测模型后,如何可视化 bbox 预测?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60272086/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com