为啥热门比赛的获胜者不使用旋转不变神经网络?
Posted
技术标签:
【中文标题】为啥热门比赛的获胜者不使用旋转不变神经网络?【英文标题】:Why rotation-invariant neural networks are not used in winners of the popular competitions?为什么热门比赛的获胜者不使用旋转不变神经网络? 【发布时间】:2017-04-25 11:48:33 【问题描述】:众所周知,现代最流行的 CNN(卷积神经网络):VGG/ResNet (FasterRCNN)、SSD、Yolo、Yolo v2、DenseBox、DetectNet - 不是旋转不变的:Are modern CNN (convolutional neural network) as DetectNet rotate invariant?
还知道,有几个具有旋转不变性对象检测的神经网络:
旋转不变的新感知器 2006 (PDF):https://www.researchgate.net/publication/224649475_Rotation-Invariant_Neoperceptron
学习用于纹理分类的旋转不变卷积滤波器 2016 (PDF):https://arxiv.org/abs/1604.06720
RIFD-CNN:用于对象检测的旋转不变和 Fisher 判别卷积神经网络 2016 (PDF):http://www.cv-foundation.org/openaccess/content_cvpr_2016/html/Cheng_RIFD-CNN_Rotation-Invariant_and_CVPR_2016_paper.html
2014 年卷积神经网络中的编码不变性 (PDF)
用于星系形态预测的旋转不变卷积神经网络 (PDF):https://arxiv.org/abs/1503.07077
学习旋转不变卷积神经网络在 VHR 光学遥感图像中进行目标检测 2016:http://ieeexplore.ieee.org/document/7560644/
我们知道,在以下图像检测竞赛中:IMAGE-NET、MSCOCO、PASCAL VOC - 使用了网络集成(同时还有一些神经网络)。或者网络集成在单个网络中,例如 ResNet (Residual Networks Behave Like Ensembles of Relatively Shallow Networks)
但是在像 MSRA 这样的获胜者中使用了旋转不变网络集成,如果没有,那为什么呢?为什么在集成中附加的旋转不变网络不会增加检测某些物体(如飞机物体)的准确性——哪些图像是在不同的旋转角度完成的?
可以是:
从地面拍摄的飞机物体
或从空中拍摄的地面物体
为什么流行的物体检测竞赛的获胜者不使用旋转不变神经网络?
【问题讨论】:
在许多比赛中,人们分析每个班级及其可能的轮换。一张天空中的飞机图片可以有所有可能的旋转,但一张狗奔跑的水平图片却没有。他们从原始图像中生成新的训练图像,并进行每一次可能的旋转。也许这比旋转不变算法更准确。另一种可能的解释是,有非常高效的库可以在 GPU 上运行 CNN(我不知道 GPU 上是否有用于旋转不变神经网络的高效库)。 @Rob 1. 是的,旋转不变方法只能用于仿射变换(从地面检测空中物体,或从空中检测地面物体),但是不适用于弹性变换(检测动物),也不适用于围绕射击平面外的轴旋转。但是除了普通卷积网络之外,还可以在集成中使用旋转不变 CNN。 Rotate-invariant-CNN 需要更少的输入图像和可调参数 - 因此学习更快、更准确(针对最合适的对象) @Rob 2. 关于 GPU。 5.用于星系形态预测的Rotation-invariant卷积神经网络:7.9 Implementation ... This allowed the use of GPU acceleration without any additional effort... Networks were trained on NVIDIA GeForce GTX 680 cards.
arxiv.org/pdf/1503.07077v1.pdf也可能是rotation-invariantcv::SURF_GPU
以某种方式可以代替卷积核(矩阵)。
事实上,旋转不变特征对于航拍图像中的目标检测非常有用。比如DOTA上的新算法[RoI Transformer] (arxiv.org/abs/1812.00155)。
【参考方案1】:
旋转不变性主要是一件好事,但并非总是如此。对象可以根据它们的旋转有不同的解释,例如。如果旋转的“1”可能难以与“7”区分开来。
【讨论】:
【参考方案2】:图像识别的最新进展主要是通过将方法从经典的特征选择-浅学习算法改为无特征选择-深度学习算法' t 仅由卷积神经网络的数学特性引起。是的 - 当然,他们使用较少数量的参数捕获相同信息的能力部分是由于他们的 shift 不变性属性,但最近的 research 表明这不是理解他们成功的关键。
在我看来,这一成功背后的主要原因是开发出更快的学习算法,而不是在数学上更准确的算法,这就是为什么较少关注开发另一个属性的原因不变的神经网络。
当然 - 旋转不变性根本没有被跳过。这部分是通过数据增强实现的,您将稍微更改(例如旋转或重新缩放)的图像放入数据集中 - 使用相同的标签。正如我们在fantastic book 中所读到的,这两种方法(更多结构 vs 更少结构+数据增强)或多或少是等效的。 (第 5.5.3 章,标题:不变性)
【讨论】:
是的,我认为旋转不变的卷积内核还不能像传统内核那样快速训练。然而,旋转不变核需要较少数量的学习参数(1 个旋转不变核,而不是每 30 度角 12 个不同的普通核),以及更少的输入图像。这应该会加快训练速度。 您能否更具体一点(例如页码),Bishop 指出这两种方法或多或少是等效的?我在这本书中搜索了augment
,但找不到任何东西。【参考方案3】:
对象检测主要是由世界著名的对象检测基准(如 PASCAL-VOC 和 MS-COCO)中检测算法的成功推动的,这些基准是以对象为中心的数据集,其中大多数对象是垂直的(盆栽植物、人类、马等)。 ),因此使用左右翻转的数据增强通常就足够了(据我们所知,使用像倒置翻转这样的旋转图像进行数据增强甚至会损害检测性能)。 每年整个社区都采用获胜解决方案的基本算法结构并在其上进行构建(我有点夸大其词以证明这一点,但不是那么多)。
有趣的是,其他不太广为人知的主题,例如航拍图像中的定向文本检测和定向车辆检测,都需要旋转不变特征和旋转等变检测管道(就像您提到的 Cheng 的两篇文章中一样)。
如果您想查找该领域的文献和代码,您需要深入研究这两个领域。我已经可以给你一些建议,比如航拍图像的DOTA 挑战或定向文本检测的ICDAR challenges。
正如@Marcin Mozejko 所说,CNN 本质上是平移不变的,而不是旋转不变的。尽管someof them 看起来很有希望,但如何结合完美的旋转不变性仍然是一个悬而未决的问题,尽管someof them 似乎很有希望,但处理它的少数文章尚未成为标准。 我个人最喜欢的检测是Ma 最近提出的对 Faster R-CNN 的修改。
我希望一旦人们厌倦了MS-COCO和VOC,这个研究方向将被越来越多地研究。
您可以尝试使用在 MS-COCO 上训练的最先进的检测器,例如 Faster R-CNN with NASNet from TF detection API,看看它在旋转测试图像时的表现如何,在我看来它远非旋转不变。
【讨论】:
【参考方案4】:我也想知道为什么社区或学者没有像@Alex 那样对定量不变的 CNN 给予太多关注。
在我看来,一个可能的原因是很多场景不需要这个属性,尤其是对于那些流行的比赛。就像 Rob 提到的,一些自然的照片已经以统一的水平(或垂直)方式拍摄。例如,在人脸检测中,许多工作将对齐图片以确保人站在地球上,然后再输入任何 CNN 模型。老实说,这是完成这项特定任务的最便宜和最有效的方式。
但是,现实生活中确实存在一些场景,需要旋转不变的属性。于是我又来一个猜测:从那些专家(或研究人员)的角度来看,这个问题并不难。至少我们可以使用数据增强来获得一些旋转不变量。
最后,非常感谢您对论文的总结。我又添加了一篇论文Group Equivariant Convolutional Networks_icml2016_GCNN 和其他人的implementation on github。
【讨论】:
以上是关于为啥热门比赛的获胜者不使用旋转不变神经网络?的主要内容,如果未能解决你的问题,请参考以下文章
什么被公认为 2018 年最好的图像分类神经网络? [关闭]