问题标签 [detectron]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
740 浏览

python - 使用 Detectron2 进行每图像模型评估

我已经使用Detectron2训练了一个自定义图像分割模型,并且我已经成功地对一批图像进行了推理和模型评估,主要是按照创建者提供的Colab Notebook中的指南进行的。

现在,我还想为测试数据集中的每个图像而不是整个批次收集评估指标(AP 或 mAP)。为此,我修改了inference_on_dataset函数,将原始代码的最后一位从

进入

Whereimg_ids是要评估的图像列表,res_dict最初是空字典。这样做,推理应该只对整批图像运行一次,而对每个图像进行评估,将结果保存在字典中。

for循环的前两次迭代一切正常,但在第三次迭代时,出现以下错误

但是预测都是正确的,并且在正确的 ID 范围(0-3)内,我不明白 4 是从哪里来的。此外,如前所述,问题仅出现在第三次迭代中,而且奇怪的是,它独立于图像(如果我交换列表中图像的顺序,如果它在第一次迭代中,相同的图像不会出错两个位置)。也许每次迭代都必须以某种方式重置评估过程,但我找不到任何函数可以这样做(除非我也清除了预测)。

关于如何在测试数据集的每个图像上递归运行评估的任何想法?谢谢!

0 投票
1 回答
40 浏览

python - Torch 已安装,但我无法将其导入 Jupyter 笔记本的计算机视觉 python 项目中

我正在使用detectron2进行计算机视觉项目。我在安装 torch 或将其导入我的 jupyter 笔记本时遇到问题。我正在使用 3.8.2 中运行 MACOS Catalina、Python3 版本的 Mac,并且我将 Anaconda 用于我的开发环境。在屏幕截图中,它说安装了torch,但是在导入它时会抛出错误 在此处输入图像描述

0 投票
2 回答
1470 浏览

deep-learning - 如何在 Detectron2 中使用 DefaultTrainer 保存模型?

如何使用 DefaultTrainer 在 Detectron2 中保存检查点?这是我的设置:

我得到错误:

文档:https ://detectron2.readthedocs.io/en/latest/modules/checkpoint.html

0 投票
1 回答
2495 浏览

pytorch - Detectron2 的 DefaultPredictor 中的图像大小

对于物体检测,我使用的是detectron2。我想修复输入图像的大小,所以我制作了我的自定义数据加载器:

我想知道的是预测,我可以使用Detectron2的DefaultPredictor并将我的图像调整为(1200、1200)作为prepossessing,然后再发送到预测器?或者 DefaultPredictor 在预测之前调整图像大小,我必须重写一个函数来调整大小为 (1200, 1200)?

0 投票
2 回答
1029 浏览

python - 将Detectron2实例分割转换为opencv Mat数组

我正在尝试从使用 Detectron2 执行的实例分割输出中获取二进制图像。根据官方文档,掩码的输出格式如下:

“pred_masks”:形状 (N, H, W) 的张量,每个检测到的实例的掩码。

所以我尝试将其转换为 numpy: mask = outputs["instances"].get("pred_masks").numpy() 输出如下:

但是数据类型是布尔值,所以我添加了以下行以更接近 opencv 格式: array = (mask > 126) * 255

这就是我所到之处。我希望能够将每个蒙版单独可视化为 opencv 图像: cv2.imshow("Mask", mask) ,而无需保存图像。

我想达到什么

先感谢您。

0 投票
1 回答
107 浏览

json - 将 json 注解转换为 coco 格式

我已经使用 vott 注释了我的数据,默认格式是 json。我想将我的数据加载到detectron2模型,但似乎所需的格式是coco。谁能告诉我如何将我的数据从 json vott 转换为 coco 格式?

0 投票
1 回答
441 浏览

pytorch - 将detectron2模型导出到torchscript时得到“无法导出Python函数调用'_ScaleGradient'”

通过 Detectron2 训练了一个模块后,我尝试将模型导出到 TorchScript,然后出现以下错误:

无法导出 Python 函数调用“_ScaleGradient”。删除对 Python 函数的调用 > 在导出之前。您是否忘记添加 @script 或 @script_method 注释?如果这是 > nn.ModuleList,请将其添加到 __constants__

我发现代码在detectron2/modeling/roi_heads/cascade_rcnn.py

所以我将@statcmethod annos 更改为@torch.jit.script_method,之后出现“'ScriptMethodStub' 对象不可调用”错误。

我对torchscript不熟悉,如何解决这个问题?

提前致谢。

0 投票
0 回答
282 浏览

deep-learning - 如何在训练集中训练没有边界框但有分割标签的detectron2模型

我有一个训练数据集,其中包含许多图像但没有边界框注释。我在验证和测试数据集中对图像进行了注释。目标是使用验证(带 bbox)和训练数据集(不带 bbox)训练detectron2 模型,而不影响模型的准确性。当我尝试使用验证数据集训练模型时,准确度仅为 71%,但当我尝试将训练数据集和验证数据集结合起来时,准确度降低到 9%。我正在使用 Faster RCNN 是一种对象检测架构 (faster_rcnn_R_50_FPN_1x.yaml) 有人可以帮助我如何在没有边界框的情况下训练模型吗?

0 投票
1 回答
395 浏览

python-3.x - 从推理 Pytorch 接收坐标

我正在尝试获取由 Pytorches DefaultPredictor 生成的蒙版内像素的坐标,以便稍后获取多边形角并在我的应用程序中使用它。

但是,DefaultPredictor 产生了 pred_masks 的张量,格式如下: [False, False ... False], ... [False, False, .. False] 其中每个单独列表的长度是图像的长度,并且总列表的数量是图像的高度。

现在,由于我需要获取掩码内的像素坐标,因此简单的解决方案似乎是循环遍历 pred_masks,检查值并 if == "True" 创建这些元组并将它们添加到列表中。然而,当我们谈论宽度 x 高度约为 3200 x 1600 的图像时,这是一个相对较慢的过程(循环单个 3200x1600 大约需要 4 秒,但是因为有很多对象需要我进行推理最后 - 这最终会变得非常缓慢)。

使用pytorch(detectron2)模型获取检测到的对象的坐标(掩码)的更智能方法是什么?

请在下面找到我的代码以供参考:

//

编辑:在将 for 循环部分更改为压缩后 - 我设法将 for 循环的运行时间减少了 ~3 倍 - 但是,理想情况下,如果可能的话,我希望从预测器本身接收它。

0 投票
1 回答
890 浏览

performance - Detectron2 加速推理实例分割

我有工作实例分割,我正在使用“mask_rcnn_R_101_FPN_3x”模型。当我推断图像时,GPU 上大约需要 3 秒/图像。我怎样才能更快地加快速度?

我在 Google Colab 中编码

这是我的设置配置:

这是推论:

回程时间:

每张图像的推理时间为:2.7835421562194824 s

图像 I 推断大小为 1024 x 1024 像素。我改变了不同的大小,但它仍然推断出 3 秒/图像。我是否缺少有关 Detectron2 的任何信息?

更多信息 GPU 在此处输入图像描述