标签: faster-rcnn

人们是否训练了早期停止的对象检测方法?他们的设置是什么?

我正在研究一些与对象检测方法(YOLOv3、Faster-RCNN、RetinaNet 等)相关的东西,我需要在 VOC2007 和 VOC2012 上进行训练(当然使用预训练模型)。然而,当我阅读相关论文时,我没有看到人们描述他们是使用早期停止训练还是仅使用固定次数的迭代进行训练。如果他们使用提前停止,在停止之前设置了多少步?因为当我在停止前尝试 100 步时,结果非常糟糕。请帮助我,非常感谢。

object-detection object-detection-api yolo faster-rcnn

7
推荐指数
1
解决办法
676
查看次数

为什么 roi_align 在 pytorch 中似乎不起作用?

我是pytorch初学者。pytorch中的RoIAlign模块好像有bug。代码很简单,但结果出乎我的意料。

代码:

import torch
from torchvision.ops import RoIAlign

if __name__ == '__main__':
    output_size = (3,3)
    spatial_scale = 1/4 
    sampling_ratio = 2  

    #x.shape:(1,1,6,6)
    x = torch.FloatTensor([[
        [[1,2,3,4,5,6],
        [7,8,9,10,11,12],
        [13,14,15,16,17,18],
        [19,20,21,22,23,24],
        [25,26,27,28,29,30],
        [31,32,33,34,35,36],],
    ]])

    rois = torch.tensor([
        [0,0.0,0.0,20.0,20.0],
    ])
    channel_num = x.shape[1]
    roi_num = rois.shape[0]

    a = RoIAlign(output_size, spatial_scale=spatial_scale, sampling_ratio=sampling_ratio)
    ya = a(x, rois)
    print(ya)
Run Code Online (Sandbox Code Playgroud)

输出

tensor([[[[ 6.8333,  8.5000, 10.1667],
          [16.8333, 18.5000, 20.1667],
          [26.8333, 28.5000, 30.1667]]]])
Run Code Online (Sandbox Code Playgroud)

但在这种情况下,它不应该是每个 2x2 单元上的平均池化操作,例如

tensor([[[[ 4.5000,  6.5000, 8.5000],
          [16.5000, 18.5000, 20.5000],
          [28.5000, 30.5000, 32.5000]]]])
Run Code Online (Sandbox Code Playgroud)

我的火炬版本是 …

object-detection computer-vision pytorch faster-rcnn

6
推荐指数
1
解决办法
2647
查看次数

从头开始实现 Faster Rcnn

我想从头开始构建我自己的 Faster-RCNN 模型,用于从图像数据中进行多目标检测。

有人可以向我推荐一些好的资源来逐步实现更快的 RCNN 吗?

就准确性和执行时间而言,哪一个是好的 YOLO 或更快的 RCNN?

computer-vision python-3.x tensorflow yolo faster-rcnn

5
推荐指数
1
解决办法
9072
查看次数

TensorFlow 2 Mask-RCNN?

我似乎找不到适用于 TensorFlow 2 的可靠版本的 Mask-RCNN。matterport mask-rcnn ( https://github.com/matterport/Mask_RCNN ) 已贬值 Tensorflow 1 代码。有谁知道 RCNN 或其他对象检测模型的 TensorFlow 2 实现?或者可能是一个可以与 Matterport 一起使用的稳定 Docker 镜像?

machine-learning neural-network docker tensorflow faster-rcnn

5
推荐指数
1
解决办法
3477
查看次数

如何修剪 Detectron2 模型?

我是一名学习计算机视觉几个月的老师。当我能够使用 Detectron2 的 Faster R-CNN 模型训练我的第一个物体检测模型时,我感到非常兴奋。它就像一个魅力!超酷!

但问题是,为了提高准确率,我使用了模型动物园中最大的模型。

现在我想将其部署为人们可以用来减轻工作负担的东西。但是,模型太大了,需要大约 10 秒才能推断出我的 CPU 上的单个图像,即 Intel i7-8750h。

因此,即使在常规云服务器上也很难部署此模型。我需要使用 GPU 服务器或最新型号的 CPU 服务器,这些服务器非常昂贵,而且我不确定是否可以补偿几个月的服务器费用。

我需要使它更小、更快以进行部署。

所以,昨天我发现有类似修剪模型的东西!!我很兴奋(因为我不是计算机或数据科学家,所以不要怪我(((:)

我阅读了 PyTorch 的官方修剪文档,但我真的很难理解。

我发现全局修剪是最容易做到的。 在此处输入图片说明

但问题是,我不知道应该写哪些参数来修剪。

就像我说的,我使用了 Faster R-CNN X-101 模型。我把它作为“ model_final.pth ”。它使用Base RCNN FPN.yaml,其元架构是“GeneralizedRCNN”。

这似乎是一个简单的配置。但是就像我说的,因为这不是我的领域,所以对我这样的人来说很难。

如果你能一步一步地帮助我,我会非常高兴。

我要留下我用来训练模型的 cfg.yaml,为了以防万一,我在 Detectron2 配置类中使用“转储”方法保存了它。这是驱动器链接。

非常感谢您提前。

object-detection web-deployment computer-vision pytorch faster-rcnn

5
推荐指数
1
解决办法
835
查看次数

如何使 tensorflow 对象检测更快-r cnn 模型在 Android 上工作?

我有一个关于Tensorflows Object Detection API 的问题。我用我自己的交通标志分类数据集训练了 Faster R-CNN Inception v2 模型,我想将它部署到 Android,但适用于 Android和/或Tensorflow Lite 的Tensorflows Object Detection API似乎只支持 SSD 模型。

有没有办法将 Faster R-CNN 模型部署到 Android?我的意思是如何将 Faster R-CNN 的冻结推理图放到 android API 而不是 SSD 冻结推理图?

python android object-detection tensorflow faster-rcnn

3
推荐指数
1
解决办法
3116
查看次数

Resnet-18 作为 Faster R-CNN 的主干

我用 pytorch 编码,我想使用resnet-18作为 Faster R-RCNN 的主干。当我打印resnet18 的结构时,这是输出:

>>import torch
>>import torchvision
>>import numpy as np
>>import torchvision.models as models

>>resnet18 = models.resnet18(pretrained=False)
>>print(resnet18)


ResNet(
  (conv1): Conv2d(3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False)
  (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
  (relu): ReLU(inplace=True)
  (maxpool): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)
  (layer1): Sequential(
    (0): BasicBlock(
      (conv1): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
      (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
      (relu): ReLU(inplace=True)
      (conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, …
Run Code Online (Sandbox Code Playgroud)

neural-network deep-learning resnet pytorch faster-rcnn

3
推荐指数
1
解决办法
3483
查看次数

是否有必要在图像上标记一个类的每个对象?

我标记了一堆图像,用于训练 Faster-RCNN 网络,以用一个类进行对象检测。每个图像上大约有数百或数千个此类对象。我必须给所有这些都贴上标签吗?

目前,我在每个图像上标记了大约 20 到 80 个对象实例。因此我选择了我认为容易重新认识的对象。

当我开始使用此数据集训练网络时,损失在 0.9 到 20,000,000 之间变化

通常情况下,损失应该变得更小,但在我的情况下,它会减少并且具有极高的峰值。

object-detection tensorflow object-detection-api labelimg faster-rcnn

3
推荐指数
1
解决办法
1247
查看次数

Fast R-CNN 论文中“每层学习率”的含义是什么?

我正在阅读一篇有关 Fast-RCNN 模型的论文。

在“SGD超参数”的论文第2.3节中,它说所有层使用每层权重学习率为1,偏差为2,全局学习率为0.001


“每层学习率”与按层给出不同学习率的“特定层学习率”相同吗?如果是这样,我无法理解它们(“每层学习率”和“全局学习率”)如何同时应用?


我在pytorch中找到了“特定层学习率”的示例。

optim.SGD([
                {'params': model.some_layers.parameters()},
                {'params': model.some_layers.parameters(), 'lr': 1}
            ], lr=1e-3, momentum=0.9)
Run Code Online (Sandbox Code Playgroud)

根据论文,这是正确的方法吗?


抱歉,五月英语

deep-learning pytorch faster-rcnn

3
推荐指数
1
解决办法
243
查看次数

Matterport Mask-R-CNN的确切损失是什么?

我使用Mask-R-CNN来训练我的数据。当我使用TensorBoard查看结果时,我损失了 mrcnn_bbox_lossmrcnn_class_lossmrcnn_mask_lossrpn_bbox_lossrpn_class_loss以及所有相同的6个损失用于验证:val_loss, val_mrcnn_bbox_loss等。

我想确切地知道每项损失。

我也想知道前6次损失是火车损失还是什么?如果不是火车失窃,我怎么看火车失窃?

我的猜测是:

损失:这是所有5个摘要(但我不知道TensorBoard如何总结它)。

mrcnn_bbox_loss:边框的大小是否正确?

mrcnn_class_loss:该类正确吗?像素正确分配给类别了吗?

mrcnn_mask_loss:实例的形状是否正确?像素正确分配给实例了吗?

rpn_bbox_lossbbox的大小正确吗?

rpn_class_lossbbox的类别正确吗?

但是我很确定这是不对的...

如果我只有1个班级,是否会失去一些无关紧要的东西?例如仅背景和另外1个课程?

我的数据只有背景和另外1个类别,这是我在TensorBoard上获得的结果:

结果1:结果2:结果3:结果:4

我的预测是可以的,但是我不知道为什么最终由于验证而造成的一些损失会不断上升……我认为必须首先下降,然后过度拟合。我使用的预测是TensorBoard上出现次数最多的绿线。我不确定我的网络是否过拟合,因此我想知道为什么验证中的某些损失看起来像它们的样子...

这是我的预测: 我的训练集示例: 这是我的测试集示例的基本事实: 这是来自Testset示例的预测:

instance loss image-segmentation keras faster-rcnn

2
推荐指数
1
解决办法
1434
查看次数

高 mAP@50,但精度和召回率低。这是什么意思,什么指标应该更重要?

我正在比较用于海上搜救 (SAR) 目的的物体检测模型。从我使用的模型中,我得到了改进版 YOLOv3 的最佳结果,用于小物体检测和 FASTER RCNN。

对于 YOLOv3,我得到了最好的 mAP@50,但是对于 FASTER RCNN,我得到了更好的所有其他指标(精度、召回率、F1 分数)。现在我想知道如何阅读它以及在这种情况下哪个模型真的更好?

在此处输入图片说明

我想补充一点,数据集中只有两个类:小对象和大对象。我们选择这个解决方案是因为对我们来说,对象在类别之间的区别不像检测任何人类来源的对象那么重要。

然而,小的物体并不意味着小的 GT 边界框。这些是实际面积很小的物体 - 小于 2 平方米(例如人、浮标)。大物体是面积较大的物体(小船、轮船、独木舟等)。

以下是每个类别的结果:

在此处输入图片说明

以及来自数据集的两个示例图像(使用 YOLOv3 检测): 在此处输入图片说明 在此处输入图片说明

object-detection computer-vision conv-neural-network yolo faster-rcnn

2
推荐指数
1
解决办法
2915
查看次数

为什么ssd和yolo没有roi池层?

我们知道对象检测框架就像faster-rcnnmask-rcnn有一个roi pooling layeror roi align layer。但是,为什么ssd和yolo框架没有这样的层?

object-detection computer-vision yolo faster-rcnn

1
推荐指数
1
解决办法
340
查看次数