问题标签 [faster-rcnn]

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 投票
1 回答
1250 浏览

cuda - nvcc 致命:'--ptxas-options=-v':期望一个数字

nvcc fatal : '--ptxas-options=-v': expected a number当我尝试构建Faster- RCNN的 Windows 端口时出现错误。您可以直接从此处访问设置文件(这是一个 Python 脚本) 。

软件环境:

0 投票
0 回答
815 浏览

tensorflow - 如何在 Tensorflow 中训练 RPN 以获得更快的 rcnn

我正在尝试构建此处定义的 Faster-rcnn 架构。有三个主要部分,特征提取器、区域提议网络(rpn)和检测/分类网络。我能够使用 Resnet 架构构建特征提取器,但我在 region-proposal-network 上苦苦挣扎。在 Faster-rcnn 论文中,他们描述了在图像上放置锚点,并计算每个锚点与最近的注释对象的交集比联合(iou)。

“RPN 进行两种不同类型的预测:二元分类和边界框回归调整。

对于训练,我们将所有锚点放入两个不同的 > 类别中。那些与地面实况对象重叠的 > 联合交点 (IoU) 大于 0.5 的那些被认为是 >“前景”,那些不与任何地面实况对象重叠或 > 与地面实况对象的 IoU 小于 0.1 的那些被认为是考虑>“背景”。

然后,我们随机抽样这些锚点,形成一个大小>256 的小批量——试图保持前景和>背景锚点之间的平衡比例。

RPN 使用为小批量选择的所有锚点来计算 > 使用二元交叉熵的分类损失。然后,它只使用那些标记为前景的小批量锚来计算回归损失。为了计算回归的目标,我们 > 使用前景锚点和最近的地面实况对象并 > 计算将锚点转换为 > 对象所需的正确 \DeltaΔ。”来源

在我的尝试中,我能够计算每个锚点的 iou,但我无法弄清楚如何获取锚点的“小批量”(保持前景和背景的平衡)并将损失反向传播到这些单个锚点。我正在使用 tensorflow(带有 tf.keras.Model 的版本 2)。我不能打电话rpn_model.fit(x,y),因为我们不适合所有的锚。我也不能打电话rpn_model.minimize(loss),因为再一次,我们只想将损失应用于 256/(x 个锚点)。

那么,如何将分类和回归损失从 Tensorflow/keras 模型反向传播到特定输出(锚的 mini_batch)?谢谢你。

更新 我花了一整天的时间来重构我的代码以使用 Tensorflow 操作,但它仍然无法正常工作!

ValueError: 变量 shape=(1, 1, 3, 1) dtype=float32> 具有None渐变。请确保 > 确保您的所有操作都定义了渐变(即 > 可微分)。没有梯度的常见操作:K.argmax、K.round、K.eval。

请帮忙!

0 投票
1 回答
82 浏览

python - 训练和预测模块 API 不使用烧瓶同时运行

我将Mask_RCNN 模块与烧瓶一起使用

当我不添加时K.clear_session(),我在训练和预测模块中面临这个错误

错误无法将 feed_dict 键解释为张量:张量张量(\"Placeholder:0\", shape=(7, 7, 3, 64), dtype=float32) is not an element of this graph."}

如果我运行文件,K.clear_session()那么它会停止当前的工作模块并启动我想要运行的模块,就像预测模块正在运行一样,然后我点击训练模块它会停止预测并运行训练。

请帮我

0 投票
2 回答
2277 浏览

python - ValueError:没有足够的值在 MaskRCNN 中解包(预期为 2,得到 1)

我正在尝试使用 MaskRCNN 训练我自己的数据集,我从https://github.com/matterport/Mask_RCNN获得了代码,然后我开始使用这个框架训练我的数据集,但出现了这个错误。

我尝试训练其他人的另一个数据集,然后代码运行良好,但在我的情况下不是

0 投票
1 回答
1308 浏览

tensorflow - 使用 MobileNet 和 Faster RCNN 检测小物体

我正在使用 Tensorflow 对象检测 API 对各种动物进行对象检测。过去,我成功地将 MobileNet v1 应用于各种设置,并且我对结果感到满意。

现在,我遇到了一个新物种的问题,它比我之前处理的动物小约 1/3。从视觉上看,动物在一定比例上看起来是一样的,这意味着要预测的边界框在图像大小的 5-15% 范围内,而不是之前的 20%-30%。

我觉得应该有一些我需要调整的超参数才能让东西恢复工作,但我很难找到合适的管道配置。我已经尝试将 anchor_generator 的 min_scale 和 max_scale 调整为更小的值,但没有成功。

有趣的是,使用 Faster RCNN 可以立即处理完全相同的数据。

有什么想法可以尝试吗?

0 投票
2 回答
5277 浏览

pytorch - 在 Pytorch 中使用 fasterrcnn_resnet50_fpn 进行迁移学习

我正在寻找 PyTorch 中自定义数据集的对象检测。

此处的教程提供了一个片段以使用预训练模型进行自定义对象分类

我尝试使用更快的 rcnn 模型对对象检测使用类似的方法。

PyTorch 抛出这些错误。这种方法首先正确吗?

有没有办法修改此示例以进行自定义对象检测? https://www.learnopencv.com/faster-r-cnn-object-detection-with-pytorch/

0 投票
1 回答
157 浏览

deep-learning - RCNN vs Fast-RCNN 算法——“感兴趣的区域”是如何生成的?

我从这里的博客文章中得到了下面的图片,它提供了非常丰富的信息。

显示卷积神经网络如何用于快速 rcnn 的图像

卷积神经网络

在 RCNN 中,我得到选择性搜索用于选择感兴趣的区域(“建议”),这些区域被传递到一个 convNet 中,该网络可以任意生成一个 4096 维的特征向量。这被传递给 SVM,我们得到一个分类。说得通。

快速RCNN

“我们没有将区域提案提供给 CNN,而是将输入图像提供给 CNN 以生成卷积特征图。从卷积特征图中,我们识别提案区域并将它们扭曲成正方形,并使用 RoI 池化层我们将它们重塑为固定大小,以便可以将其馈入全连接层。”

我分别知道所有这些词;但是像这样把它们放在一起让我很困惑。对于 Fast-RCNN,区别在于 ConvNet 似乎用于生成感兴趣区域,而不是选择性搜索。这是如何运作的?

我目前的理解在第 2/3 步感到困惑,否则我认为我很好:

  1. 我们有一张图像并将其提供给 CNN。
  2. CNN 像往常一样通过随机初始化一些过滤器(然后根据错误进行调整)来生成过滤器。
  3. 在卷积图像堆栈上使用选择性搜索?
  4. 投资回报率汇集到一个大小。
  5. Softmax 层决定分类 + LR 得到边界框。

奖励:为什么 RCNN 中的特征向量是 4096 维?只是随机选择的数字?

0 投票
2 回答
408 浏览

python-3.x - 在 tensorflow api 对象检测模型中检测微小对象

我有一个使用 tensorflow 对象检测 api 和更快的 rcnn 模型制作的对象检测模型。该模型能够检测到清晰可见的对象,但无法检测到尺寸较小/较小或距离较大的对象。在更快的 rcnn 配置文件中是否需要更改任何内容?如果是,那是什么?如果不是,那么这个模型如何检测微小的物体?下面是更快的 rcnn 配置文件供参考

0 投票
1 回答
1729 浏览

tensorflow - 更改批量大小时出现 OOM(Faster R-CNN Inception v2)

我是 tensorflow 和 ML 的初学者,请原谅任何明显的错误或菜鸟问题。

我目前正在处理一个对象检测问题,并且在使用不等于 1 的批量进行训练时遇到了 GPU 上的内存容量问题。在训练期间查看 GPU 和 CUDA 信息的图片

我正在使用来自Tensorflow Github的 Faster R-CNN Inpcetion v2 模型。

train.record 文件为 753,5 MB。

这个问题可以通过更有效的输入管道来解决,还是 tensorflow 的 github 上的模型已经优化?我应该改变网络架构以减少变量的数量吗?批量大小 1 是获得最佳准确性的唯一/最佳选择吗?

我正在尽我所能学习这一点,如果需要更多信息,请询问。

模型配置:

错误信息:

0 投票
0 回答
128 浏览

python - 我们如何以及为什么使用时间分布层包裹的 CNN 层?

我需要知道这段代码是如何工作的。它采用 Embedding 然后将其发送到此模型中。model1 是 CNN,moel2 是时间分布层。为什么在此代码中进行包装,我没有找到有关此的文章。

然后它合并并获得输出。我不明白这背后的计算。