当前位置: 首页 > 知识库问答 >
问题:

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

梁修贤
2023-03-14

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

DetectNet是流行的GoogLeNet网络的扩展。这些扩展类似于Yolo和DenseBox论文中采用的方法。

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

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

我可以在数千个不同的图像上训练DetectNet,其中一个图像具有相同的物体旋转角度,以检测任何旋转角度的物体吗?

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

共有3个答案

田兴朝
2023-03-14

Detectron2最近增加了旋转更快的RCNN网络。要创建此类模型,应为具有旋转边界框的车辆创建注释,即:

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

例如:

有关更多信息,请访问此链接。

亢建木
2023-03-14

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

这张由Franck Dernoncourt发布的图片可能就是您想要的。

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

CNN对于训练数据中的小水平或垂直移动是不变的,主要是因为最大池。

CNN具有平移不变性的主要原因是卷积。无论特征在图像中的什么位置,过滤器都会提取该特征,因为过滤器将在整个图像中移动。当图像旋转或缩放时,由于特征的像素表示不同,过滤器将失败。

资料来源: Aditya Kumar Praharaj对此链接的回答。

白学
2023-03-14

没有啦

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

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

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

在目标检测问题中,您可以使用滑动窗口方法,但效率极低。取而代之的是简单的CNN其他架构是最先进的。例如:

  • 更快的RCNN:https://arxiv.org/pdf/1506.01497.pdf
  • YOLO网:https://pjreddie.com/darknet/yolo/
  • SSD:https://arxiv.org/pdf/1512.02325.pdf

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

 类似资料:
  • 本文向大家介绍TensorFlow实现卷积神经网络CNN,包括了TensorFlow实现卷积神经网络CNN的使用技巧和注意事项,需要的朋友参考一下 一、卷积神经网络CNN简介 卷积神经网络(ConvolutionalNeuralNetwork,CNN)最初是为解决图像识别等问题设计的,CNN现在的应用已经不限于图像和视频,也可用于时间序列信号,比如音频信号和文本数据等。CNN作为一个深度学习架构被

  • 最后,我开始学习神经网络,我想知道卷积深度信念网络和卷积网络之间的区别。在这里,有一个类似的问题,但没有确切的答案。我们知道卷积深度信念网络是CNN DBN。所以,我要做一个物体识别。我想知道哪一个比另一个好得多或者它们的复杂性。我搜索了一下,但找不到任何东西,可能是做错了什么。

  • 注意: 本教程适用于对Tensorflow有丰富经验的用户,并假定用户有机器学习相关领域的专业知识和经验。 概述 对CIFAR-10 数据集的分类是机器学习中一个公开的基准测试问题,其任务是对一组大小为32x32的RGB图像进行分类,这些图像涵盖了10个类别: 飞机, 汽车, 鸟, 猫, 鹿, 狗, 青蛙, 马, 船以及卡车。 想了解更多信息请参考CIFAR-10 page,以及Alex Kriz

  • 卷积神经网络(Convolutional Neural Network, CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。卷积神经网络由一个或多个卷积层和顶端的全连通层(对应经典的神经网络)组成,同时也包括关联权重和池化层(pooling layer)。这一结构使得卷积神经网络能够利用输入数据的二维结构。与其他深度学习结构相比,卷积神经网络

  • 首先我们来看看CNN的基本结构。一个常见的CNN例子如下图: 图中是一个图形识别的CNN模型。可以看出最左边的船的图像就是我们的输入层,计算机理解为输入若干个矩阵,这点和DNN基本相同。 接着是卷积层(Convolution Layer),这个是CNN特有的,我们后面专门来讲。卷积层的激活函数使用的是ReLU。我们在DNN中介绍过ReLU的激活函数,它其实很简单,就是$$ReLU(x) = max

  • 本文向大家介绍Numpy实现卷积神经网络(CNN)的示例,包括了Numpy实现卷积神经网络(CNN)的示例的使用技巧和注意事项,需要的朋友参考一下 以上就是Numpy实现卷积神经网络(CNN)的示例的详细内容,更多关于Numpy实现卷积神经网络的资料请关注呐喊教程其它相关文章!