目录
----------------------------说明--------------------------------
--------------------------已解决-----------------------------
----------------------------说明--------------------------------
为了避免原链接失效,以下将在原文章复制几句做一个简单介绍。感谢大佬分享!
从mmdetectionv1.0rc1版本及以后的版本中,源代码有了一定的更新,而官方文档上用于测试单张图片的方法还并未更新。在mmdetectionv1.0rc1及以后的版本中,做了以下变更。因此,为测试图片,需要做对应的更改。
1、show_result()函数被封装进了show_result_pyplot()函数中。
2、在show_result_pyplot()函数中,并未留出保存测试好图片的接口。
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。原文链接:https://blog.csdn.net/weixin_41922853/article/details/118807709
报错1:show_result_pyplot(model, img, result, out_file, score_thr=0.6) TypeError: show_result_pyplot() got multiple values for argument 'score_thr':
报错2:if score_thr > 0: TypeError: '>' not supported between instances of 'str' and 'int'
--------------------------已解决-----------------------------
1、新建test.py,代码如下。
不同的是:show_result_pyplot(model, img, result, out_file) #这里删去原博主的score_thr=0.6
from mmdet.apis import init_detector, inference_detector
from mmdet.apis import show_result_pyplot
import os
imagepath = r'D:\images' # 需要加载的测试图片的文件路径
savepath = r'D:\test_img' # 保存测试图片的路径
config_file = r'D:\documents\config.py' # 网络模型
checkpoint_file = r'D:\documents\epoch_55.pth' # 训练好的模型参数
device = 'cuda:0'
# init a detector
model = init_detector(config_file, checkpoint_file, device=device)
# inference the demo image
for filename in os.listdir(imagepath):
img = os.path.join(imagepath, filename)
result = inference_detector(model, img)
out_file = os.path.join(savepath, filename)
show_result_pyplot(model, img, result, out_file) #-------这里删去原博主的score_thr=0.6---
2、跟着代码中注释修改mmdet\apis\inference.py文件中的以下函数:
# mmdet\apis\inference.py
def show_result_pyplot(model,
img,
result,
# score_thr=0.3,#-----这里直接删了--------
out_file, #-------加这一行---------
title='result',
wait_time=0,
palette=None):
# out_file=None):
if hasattr(model, 'module'):
model = model.module
model.show_result(
img,
result,
score_thr=0.6, #-----这里直接改为0.6--------
show=True,
out_file=out_file, #-------加这一行---------
wait_time=wait_time,
win_name=title,
bbox_color=palette,
text_color=(200, 200, 200),
mask_color=palette)
如果不想保存只想看看show一下,不需保存,那就设置show_result_pyplot中的out_file=None
3、运行即可test.py即可。成功了,结果如下。