4

R-CNNs与目标检测算法

 2 years ago
source link: https://panchuang.net/2021/08/09/r-cnns%e4%b8%8e%e7%9b%ae%e6%a0%87%e6%a3%80%e6%b5%8b%e7%ae%97%e6%b3%95/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

R-CNNs与目标检测算法

fendouai • 2021年8月9日 am5:07 • Medium

毫无疑问,目标检测是计算机视觉领域中最重要的挑战之一。这项工作的一种方法是R-CNN,它是由Ross Girshick、Jeff Donahue、Trevor Darrell和Jitendra Malik在“用于精确对象识别和语义分割的丰富特征层次”中介绍的。本节将研究此算法。Rich feature hierarchies for accurate object recognition and semantic segmentation

用于目标检测的选择性搜索

目标定位是目标检测中最具挑战性的方面。要查找图像中的项目,一种方法是利用各种大小的滑动窗口。这种方法称为穷举搜索。这种方法在计算上非常昂贵,因为我们需要在数千个窗口中搜索对象,即使是在小图像大小的情况下也是如此。已经进行了一些优化,例如对窗口宽度使用不同的比率(而不是将其增加一些像素)。本文研究了一种同时使用穷举和分段搜索方法的选择性搜索算法(一种通过赋予不同颜色来分离图像中不同形状的对象的方法)。

算法步骤:

1-使用Felzenszwalb等人在他们的文章“高效的基于图形的图像分割”中概述的方法创建输入图片的初始子分割。

2-以递归方式将较小的相似区域合并为较大的区域。我们使用贪婪算法将相似的区域合并成更大的区域。算法写在下面。

I) From set of regions, choose two that are most similar.
II) Combine them into a single, larger region.
III) Repeat the above steps for multiple iterations.

R-CNN

这里我们可以看到R-CNN的每一步:

我们调整图片尺寸以匹配Alex Net输入尺寸,以便调整每个区域提案以适合作为R-CNN的输入。这些区域称为翘曲区域。

为了对区域进行分类,R-CNN使用支持向量机,而不是密集层。

让我们检查一下示例中的算法步骤。考虑一下下面的图像。R-CNN将首先使用选择性搜索来识别图片中感兴趣的微小区域。

接下来,我们将根据颜色相似性、纹理、大小、形状和其他因素(如颜色相似性、纹理、大小、形状和其他因素)将这些较小的区域组合在一起,以生成较少的较大区域,这将作为最终的区域建议。

亚历克斯网卷积层引导他们进入他们期望的大小。它们被送入这些区域进行特征提取,然后进入分类层,在这种技术中,分类层是用于获得图片标签的缩放向量机或SVM,以及用于获得感兴趣区域的边界框的回归。

R-CNN的弊端

最初的R-CNN的一个缺点是速度慢。通过选择性搜索来找到这些地区可能会很耗时,而将2000个感兴趣的地区中的每一个都通过CNN进行搜索可能会很耗时,计算成本也很高。最初的R-CNN架构缺乏速度和端到端的可训练性等因素。另一个重要问题是内存需求,这是因为需要为每个对象类型使用大量分类器。

更快的R-CNN

为了改进原有的R-CNN,罗斯·格希克提出了一种名为“快速R-CNN”的新架构。

由于取消了昂贵的选择性搜索算法和其他有趣的架构改进,Fast R-CNN能够在一定程度上解决性能和内存问题。

让我们来看看Fast R-CNN的架构。

应该注意到Fast R-CNN和原来的R-CNN之间的区别。Fast R-CNN不是利用选择性搜索来为每张图片产生多个区域建议,而是接受它们作为输入,而不生成它们。美国有线电视新闻网(CNN)分析了这张图片,并制作了一张特写地图,这是一组特写的集合。

下一步是利用输入区域建议从该特征地图中提取感兴趣的区域,并为每个建议区域构建区域建议特征地图。感兴趣区域投影是此方法的名称。原始特征映射是针对整个画面的,而区域建议特征映射是针对图像的建议区域的特定子部分。

接下来,我们将使用感兴趣区域池图层对此要素地图进行下采样,以生成高度和宽度固定的固定长度要素地图。然后,我们可以将固定大小的要素地图展平为一维矢量,我们将其命名为感兴趣区域特征矢量,并使用几个完全链接的图层生成该感兴趣区域特征矢量,以使该地图变得有用。

然后可以使用感兴趣区域特征向量来创建两个输出。为了对图像进行分类,第一个输出使用完全连通层,然后是Softmax。第二个输出使用完全连通层和不规则回归结果定义所识别项目的边界框的大小和位置。

在这种情况下,没有选择性搜索来定位感兴趣区域。

取而代之的是,使用ConvNet,其过滤器确定哪些感兴趣的区域是感兴趣的。

整个图像被传输到代替子集中,这节省了选择性搜索戳记的资金。然后,特征发现ConvNet可以生成图片的特征地图。

更快的R-CNN

更快的R-CNN是我们CNN的变体,它包括一个地区建议网络,在地区建议功能地图中建议感兴趣的地区。

区域建议网络RPN,简称RPN,是一种完全卷积网络。这是一个只使用卷积的网络,不是致密层。因此,我们可以同时预测每个像素的对象边界和对象分数。RPN的设计目的是端到端地进行训练,以生成高质量的区域建议,并由速度更快的R-CNN使用这些建议进行检测。RPN使得使用锚或先验的对象提议成为可能。

如前所述,全图被馈送到具有更快R-CNN的ConvNet中,然后使用滑动窗口在该特征地图上定位感兴趣的区域,并且利用被称为区域建议网络的新实体与这里产生的数据一起在图片上建立锚框。

锚定框的中心由滑动窗口的坐标确定,而框的边界由RPN确定,从而产生指示框的边界与对象更匹配的分数。RPN的内部工作原理稍微超出了本课程的范围。

原创文章,作者:fendouai,如若转载,请注明出处:https://panchuang.net/2021/08/09/r-cnns%e4%b8%8e%e7%9b%ae%e6%a0%87%e6%a3%80%e6%b5%8b%e7%ae%97%e6%b3%95/


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK