首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在更快的rcnn模型中调整first_stage_anchor_generator

在更快的rcnn模型中调整first_stage_anchor_generator
EN

Stack Overflow用户
提问于 2018-08-27 22:16:19
回答 2查看 5.3K关注 0票数 8

我试图使用来自object_detect_api的更快的rcnn模型从大图像(~ 2040,1536像素)中检测到一些非常小的物体(~25x25像素)。

我对以下配置参数感到非常困惑(我已经阅读了proto文件并尝试修改它们并进行测试):

代码语言:javascript
运行
复制
first_stage_anchor_generator {
  grid_anchor_generator {
    scales: [0.25, 0.5, 1.0, 2.0]
    aspect_ratios: [0.5, 1.0, 2.0]
    height_stride: 16
    width_stride: 16
  }
}

我对这个领域很陌生,如果有人能向我解释一下这些参数,我会非常感激的。

我的问题是,应该如何调整上述(或其他)参数,以适应这样一个事实,即我在大图像中有非常小的固定大小的对象要检测。

谢谢

EN

回答 2

Stack Overflow用户

发布于 2019-02-09 04:30:10

我不知道实际答案,但我怀疑RCNN在Tensorflow对象检测中的工作速度是这样的:

的文章说:“锚在速度更快的role中起着重要的作用。锚是一个盒子。在速度更快的role的默认配置中,在图像的一个位置有9锚。下图显示了图像的(320, 320)位置上的9个锚,大小为(600, 800)。”

并给出了基于"RCNN“模型的"CNN”部分所包含对象的框重叠图像,其次是"RCNN“模型的"R”部分,即区域提案。为了做到这一点,还有另外一个神经网络和CNN一起训练,以找出最适合的盒子。有很多“建议”,其中一个对象可以基于所有的框,但我们仍然不知道它在哪里。

这个“区域建议”神经网络的工作是找到正确的区域,它是根据你提供的标签和图像中每个物体的坐标来训练的。

在查看文件时,我注意到:

代码语言:javascript
运行
复制
line 174:  heights = scales / ratio_sqrts * base_anchor_size[0]

line 175:  widths = scales * ratio_sqrts * base_anchor_size[[1]]

这似乎是配置文件中找到的配置的最终目标(生成具有已知宽度和高度的滑动窗口列表)。而base_anchor_size是作为[256, 256]的默认设置创建的。守则的作者在评论中写道:

例如,设置scales=[.1, .2, .2]aspect ratios = [2,2,1/2]就意味着我们创建了三个盒子:一个是标度.1、纵横比2、一个是标度.2、纵横比2,另一个是标度.2和纵横比1/2。每个方框在将其放在各自的中心之前乘以"base_anchor_size“。

这让我们深入了解了这些框是如何创建的,代码似乎是基于scales =[stuff]aspect_ratios = [stuff]参数来创建框列表的,这些参数将用于滑动图像。标度相当简单,是指在使用256的默认方框之前,应该缩放它的大小,而长宽比是将原始方框更改为更接近预期对象(缩放)形状的矩形的东西。

这意味着,要优化配置比例和高宽比,您应该在图像中找到对象的“典型”大小--不管它是ex(20 by 305 by 10,等等),并计算出256 by 256平方框的默认大小应该在多大程度上适合这一点,然后找到对象的“典型”纵横比(根据google的一种长宽比是:图像或屏幕的宽度与高度的比率)。并将这些设置为您的高宽比参数。

注意:似乎配置文件中的缩放元素和aspect_ratios列表的数量应该是相同的,但我不确定。

另外,我也不知道如何找到最优的步幅,但是如果您的对象比16小( 16像素),那么通过设置缩放和纵横比来创建的滑动窗口可能会完全跳过对象。

票数 5
EN

Stack Overflow用户

发布于 2018-09-19 14:23:58

正如我所相信的那样,建议锚只为速度更快的RCNN模型类型生成。在这个文件中,您已经指定了在您从配置中提到的行中为锚生成设置哪些参数。

我尝试设置base_anchor_size,但是失败了。尽管这个FasterRCNNTutorial教程提到:

..。您还需要配置.config文件中的锚点大小和高宽比。基础锚大小为255 255。 锚比将乘以x维并除以y维数,因此,如果长径比为0.5,则255x255锚将变为128x510。应用列表中的每个纵横比,然后将结果乘以比例。因此,第一步是将图像调整到培训/测试的大小,然后手动检查您期望的最小和最大的对象是什么,以及最极端的纵横比是什么。设置配置文件的值,这将涵盖这些情况时,基本锚大小是调整的纵横比,并乘以规模。

我觉得很简单。我还用了这个“解决办法”。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52047638

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档