使用自定义模型在我本地机器上的 Detectron2 预测问题

Detectron2 prediction problem on my local machine with custom model

我在 google colab 上用 detectron2 训练了一个自定义模型,没问题,它工作正常。模型已训练,预测正常,在 google colab 上。但是当我在我的本地机器上做出预测时,它不起作用。这里有一个关于 google colab 的类似示例:https://colab.research.google.com/drive/1bSlH5Am_zFEWbJ9zTRu2wFEDKDvn0LUv?usp=sharing

我使用以下代码导出了最终模型和 运行:

from detectron2.config import get_cfg
from detectron2.engine import DefaultPredictor
from detectron2.data import MetadataCatalog
from detectron2.utils.visualizer import Visualizer, ColorMode
import matplotlib.pyplot as plt
import cv2.cv2 as cv2

cfg = get_cfg()
cfg.merge_from_file("./detectron2_repo/configs/COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x.yaml")
cfg.MODEL.WEIGHTS = "model_final.pth" # path for final model
cfg.MODEL.ROI_HEADS.SCORE_THRESH_TEST = 0.8
predictor = DefaultPredictor(cfg)
im = cv2.imread('0.jpg')
outputs = predictor(im)
v = Visualizer(im[:, :, ::-1],
               metadata=MetadataCatalog.get(cfg.DATASETS.TRAIN[0]),
               scale=0.5,
               instance_mode=ColorMode.IMAGE_BW)
out = v.draw_instance_predictions(outputs["instances"].to("cpu"))
img = cv2.cvtColor(out.get_image()[:, :, ::-1], cv2.COLOR_RGBA2RGB)
cv2.imwrite('img.jpg',img)

我想 cfg.merge_from_file 是问题所在。有其他文件吗?我在哪里可以找到 colab?

我测试了标准模型并在我的本地机器上运行良好,问题出在自定义模型上。

我用这个命令保存了配置,然后我下载了。

f = open('config.yml','w')
f.write(cfg.dump())
f.close()

并替换为:

cfg.merge_from_file("./detectron2_repo/configs/COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x.yaml")

来自

cfg.merge_from_file("config.yml")

并工作。