现代 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 其他架构是最先进的。例如:
- 更快的 RCNN:https://arxiv.org/pdf/1506.01497.pdf
- YOLO 网络:https://pjreddie.com/darknet/yolo/
- 固态硬盘:https://arxiv.org/pdf/1512.02325.pdf
这些架构可以检测图像中任何位置的对象,但您还必须在训练集中包含具有不同旋转的样本(并且训练集必须使用边界框进行标记,这非常耗时)。
加上 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
已知的 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 其他架构是最先进的。例如:
- 更快的 RCNN:https://arxiv.org/pdf/1506.01497.pdf
- YOLO 网络:https://pjreddie.com/darknet/yolo/
- 固态硬盘:https://arxiv.org/pdf/1512.02325.pdf
这些架构可以检测图像中任何位置的对象,但您还必须在训练集中包含具有不同旋转的样本(并且训练集必须使用边界框进行标记,这非常耗时)。
加上 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