在显示图片时由于是在终端输入代码因此无法显示图片,因此写了如下代码将测试图片保存下来进行查看,但不知在如下代码加入什么才可以仅显示得分在0.5以上的检测框
基于最新版ChatGPT4的回答,望采纳!!!有其他问题也可以询问我哦、”(最新版更智能,功能更加强大)
from mmdet.apis import init_detector, inference_detector
config_file = 'configs/swin/faster_rcnn_swin_tiny_patch4_window7_mstrain_480-800_adamw_1x_coco.py'
checkpoint_file = 'work_dirs11/faster_rcnn_swin_tiny_patch4_window7_mstrain_480-800_adamw_1x_coco/epoch_6.pth'
device = 'cuda:0'
# init a detector
model = init_detector(config_file, checkpoint_file, device=device)
# inference the demo image
img = 'testfiles/img1.jpg'
result = inference_detector(model, img)
# show and save the result
model.show_result(img, result, score_thr=0.5, out_file="demo/demo_result111.jpg")
参考GPT:可以使用以下代码将得分大于0.5的检测框筛选出来并绘制在图像上:
from mmdet.apis import init_detector, inference_detector
# 初始化模型
config_file = 'configs/swin/faster_rcnn_swin_tiny_patch4_window7_mstrain_480-800_adamw_1x_coco.py'
checkpoint_file = 'work_dirs/faster_rcnn_swin_tiny_patch4_window7_mstrain_480-800_adamw_1x_coco/epoch_6.pth'
device = 'cuda:0'
model = init_detector(config_file, checkpoint_file, device=device)
# 推理图片
img = 'testfiles/img1.jpg'
result = inference_detector(model, img)
# 筛选得分大于0.5的检测框并绘制在图像上
score_thr = 0.5
bboxes = []
labels = []
scores = []
for i, cls_result in enumerate(result):
for bbox in cls_result:
if bbox[4] > score_thr:
bboxes.append(bbox[:4])
labels.append(i)
scores.append(bbox[4])
model.show_result(
img,
bboxes,
labels,
scores,
score_thr=score_thr,
show=False,
out_file='demo/demo_result.jpg'
)
这里的关键是使用score_thr参数筛选出得分大于0.5的检测框,并在model.show_result函数中设置该参数来绘制筛选后的结果。