背景删除如何帮助减少CNN中的计算?

时间:2017-08-09 08:18:37

标签: image-processing convolution

我在很多论文中都看到,后台删除的预处理有助于减少计算量。但为什么会这样呢?我的理解是,无论它是如何填充,0或正面,CNN在矩形窗口上工作。

有关示例,请参阅this

1 个答案:

答案 0 :(得分:1)

在您提供的论文中,似乎他们没有将整个图像传递到网络。相反,他们似乎是从非白色背景中选择较小的补丁。这是有道理的,因为它减少了数据中的噪声,但它也降低了计算复杂性,因为它对完全连接的层有影响。

假设输入图像的大小为h*w。在您的CNN中,图像通过一系列卷积和最大池,因此,在第一个完全连接的图层之前,您最终会得到一个大小的特征图

sz=m*(h/k)*(w/d) 

其中m是要素平面的数量,kd取决于层数,每个卷积和最大池模块的参数(例如卷积内核的大小等)。通常,我们会d==k。现在,假设您将其提供给完全连接的图层,以生成q参数的矢量。该层的作用基本上是矩阵乘法

A*x

其中A是一个大小为q*sz的矩阵,而x只是您的要素图写为向量。

现在,假设您将大小为(h/t)*(w/t)的补丁传递给网络。最终得到一个大小为

的要素图
sz/(t^2)

考虑到数据集中图像的大小,这是参数数量的显着减少。此外,小补丁也意味着更大的批次,这也可以加速训练(更好的梯度近似。)。

我希望这会有所帮助。

编辑,关注@ wlnirvana的评论:是的,补丁大小是一个超参数。在我给出的示例中,通过选择t进行设置。考虑到数据集中图像的大小,我会说像t>=6这样的东西是现实的。至于这与背景去除的关系,引用文章(第3.1节):

“为了减少计算时间,并且将我们的分析重点放在最可能包含癌症转移的载玻片区域 ......”

这意味着他们只选择非背景区域的补丁。这是有道理的,因为将完全白色的补丁传递到网络只会浪费时间(在图1中,如果您随机选择它们而不删除背景,则可以拥有如此多的白色/灰色/无用补丁)。我没有找到关于如何在他们的论文中完成补丁选择的任何解释,但我假设在非背景区域中选择多个像素p_1,...,p_n,并考虑n大小的补丁{ {1}} 围绕每个人都有意义。