现代 CNN(卷积神经网络)作为 DetectNet 是否具有旋转不变性?

Are modern CNN (convolutional neural network) as DetectNet rotate invariant?

已知的 nVidia DetectNet - 用于对象检测的 CNN(卷积神经网络)基于 Yolo/DenseBox 的方法:https://devblogs.nvidia.com/parallelforall/deep-learning-object-detection-digits/

DetectNet is an extension of the popular GoogLeNet network. The extensions are similar to approaches taken in the Yolo and DenseBox papers.

如图所示,DetectNet 可以检测任何旋转的物体(汽车):https://devblogs.nvidia.com/parallelforall/detectnet-deep-neural-network-object-detection-digits/

现代 CNN(卷积神经网络)是否像 DetectNet 一样具有旋转不变性?

我能否在具有相同物体旋转角度的数千张不同图像上训练 DetectNet,以检测任何旋转角度的物体?

以及基于 DetectNet 的 Yolo、Yolo v2、DenseBox 的旋转不变量如何?

没有

在分类问题中,CNN 不是旋转不变的。您需要在训练集中包含所有可能的旋转图像。

您可以训练 CNN 将图像分类为预定义的类别(如果您想像示例中那样检测图像中的多个对象,则需要使用分类器扫描图像的每个位置)。

然而,这是一个对象检测问题,而不仅仅是一个分类问题。

在对象检测问题中,可以使用滑动 window 方法,但效率极低。相反,一个简单的 CNN 其他架构是最先进的。例如:

这些架构可以检测图像中任何位置的对象,但您还必须在训练集中包含具有不同旋转的样本(并且训练集必须使用边界框进行标记,这非常耗时)。

加上 Rob 的回答,一般来说 CNN 本身是平移不变的,但不是旋转和缩放。但是,并不是必须将所有可能的旋转都包含到您的训练数据中。最大池化层会引入旋转不变性。

This image posted by Franck Dernoncourt here 可能就是您要找的。

其次,关于 Kershaw 对 Rob 的回答的评论:

A CNN is invariant to small horizontal or vertical movements in your training data mainly because of max pooling.

CNN 平移不变的主要原因是卷积。过滤器将提取特征,而不管它在图像中的什么位置,因为过滤器将在整个图像上移动。当图像旋转或缩放时,由于特征的像素表示差异,过滤器会失败。

来源:Aditya Kumar Praharaj 来自 this link 的回答。

Detectron2 最近添加了 Rotated Faster RCNN 网络。要创建这样的模型,您应该为具有旋转边界框的车辆创建注释,即:

rbbox = [center_x, center_x, width, height, angle]

例如:

访问 this link 了解更多信息。

CNN rotation-invariant 为所有卷积核提供 属性 K = T{K}(例如,使用对称核),并用合并卷积层替换第一个展平层。我叫它 transformation-identical CNN (TI-CNN), https://arxiv.org/abs/1806.03636 and https://arxiv.org/abs/1807.11156

如果你想建立一个rotation-identical CNN(几乎任意小角度),我会介绍geared rotation-identical CNN (GRI-CNN) https://arxiv.org/abs/1808.01280