作者

Kaiming He,Xiangyu Zhang,Shaoqing Ren,Jian Sun
(Microsoft Research {kahe, v-xiangz, v-shren, jiansun}@microsoft.com)

摘要

更深的神经网络更难训练。 我们提出了一种残差的学习框架,以简化比以前使用的网络更深入的网络训练。 我们显式地将层重新配置为参考层输入学习剩余函数,而不是学习未参考函数。 我们提供了全面的经验证据,表明这些残差网络更易于优化,并且可以通过深度的增加而获得准确性。 在ImageNet数据集上,我们评估深度最大为152层的残差网络-比VGG网络深8倍,但仍具有较低的复杂度。 这些残留网络的整体在ImageNet测试集上实现3.57%的误差。 该结果在ILSVRC 2015分类任务中获得第一名。 我们还将介绍具有100和1000层的CIFAR-10的分析。
表示的深度对于许多视觉识别任务至关重要。 仅由于我们的深度表示,我们在COCO对象检测数据集上获得了28%的相对改进。 深度残差网是我们向ILSVRC&COCO 2015竞赛1提交的基础,在该竞赛中,我们还获得了ImageNet检测,ImageNet本地化,COCO检测和COCO分割等任务的第一名。( http://image-net.org/challenges/LSVRC/2015/ and http://mscoco.org/dataset/#detections-challenge2015.)

1. 引言

深度卷积神经网络为图像分类带来了一系列突破。 深度网络自然地以端到端的多层方式集成了低/中/高级功能和分类器,并且功能的“级别”可以通过堆叠的层数(深度)来丰富。 最近的证据表明,网络深度至关重要,在具有挑战性的ImageNet数据集上的领先结果都采用了“非常深”的模型,深度为16到30。 许多其他非平凡的视觉识别任务也从非常深入的模型中受益匪浅。
在深度意义的驱动下,出现了一个问题:学习更好的网络是否像堆叠更多的层一样容易? 回答这个问题的一个障碍是臭名昭著的梯度消失/爆炸问题,从一开始就阻碍了收敛。 但是,此问题已通过归一化初始化层和中间归一化层得到了很大解决,这使具有数十个层的网络能够开始进行反向传播的随机梯度下降(SGD)收敛。
当更深的网络能够开始融合时,就会出现降级问题:随着网络深度的增加,精度达到饱和(这可能不足为奇),然后迅速降级。 出乎意料的是,这种降级不是由过度拟合引起的,并且在我们的实验中报告并充分验证了,将更多层添加到适当深度的模型中会导致更高的训练误差。 图1显示了一个典型示例。

图1. 在带有20层和56层“普通”网络的CIFAR-10上的训练错误(左)和测试错误(右)。 较深的网络具有较高的训练错误,从而导致测试错误。 ImageNet上的类似现象如图4所示

训练准确性的下降表明并非所有系统都同样容易优化。 让我们考虑一个较浅的体系结构及其更深的对应结构,它会在其上添加更多层。 通过构建更深层的模型,可以找到一种解决方案:添加的层是身份映射,而其他层是从学习的浅层模型中复制的。 该构造解决方案的存在表明,较深的模型不会比浅模型产生更高的训练误差。 但是实验表明,我们现有的求解器无法找到比构造的解决方案好或更好的解决方案(或无法在可行的时间内找到解决方案)。
在本文中,我们通过引入深度残差学习框架来解决退化问题。 而不是希望每个堆叠的层都直接适合所需的基础映射,我们明确让这些层适合残差映射。 形式上,将所需的基础映射表示为H(x)H(x),我们让堆叠的非线性层适合F(x):=H(x)xF(x):= H(x)-x的另一个映射。 原始映射将重铸为F(x)+xF(x)+ x。 我们假设优化残差映射比优化原始未引用映射要容易。 极端地,如果身份映射是最佳的,则将残差推到零比通过非线性层堆栈拟合身份映射要容易。
公式F(x)+xF(x)+ x可通过具有“快捷连接”的前馈神经网络来实现(图2)。快捷连接是跳过一层或多层的连接。 在我们的情况下,快捷方式连接仅执行身份映射,并将其输出添加到堆叠层的输出中(图2)。身份快捷方式连接既不增加额外的参数,也不增加计算复杂度。 整个网络仍然可以通过SGD反向传播进行端到端训练,并且可以使用通用库(例如Caffe)轻松实现,而无需修改求解器。
我们在ImageNet上进行了全面的实验,以显示退化问题并评估我们的方法。 我们表明:1)我们极深的残差网络很容易优化,但是当深度增加时,对应的“普通”网络(简单地堆叠层)显示出更高的训练误差; 2)我们的深层残差网络可以通过大大增加深度来轻松享受精度提升,从而产生比以前的网络更好的结果。
CIFAR-10集上也显示了类似的现象,这表明优化困难和我们方法的效果不仅类似于特定数据集。 我们在这个数据集上成功地训练了100多个层的模型,并探索了1000多个层的模型。
在ImageNet分类数据集中,我们通过极深的残差网络获得了出色的结果。 我们的152层残差网络是ImageNet上展示的最深的网络,同时其复杂度仍低于VGG网络。 我们的合奏在ImageNet测试集上的前5个错误的错误率为3.57%,并在ILSVRC 2015分类竞赛中获得第一名。 极深的表示法在其他识别任务上也具有出色的泛化性能,使我们在ILSVRC和COCO 2015竞赛中进一步赢得了第一名:ImageNet检测,ImageNet本地化,COCO检测和COCO细分。 有力的证据表明,残差学习原理是通用的,我们希望它适用于其他视觉和非视觉问题。

图2. 残差学习:构造块

2. 相关工作

残差表示。 在图像识别中,VLAD是通过相对于字典的残差矢量进行编码的表示形式,Fisher Vector可以表示为VLAD的概率版本。 它们都是用于图像检索和分类的有力的浅层表示。 对于矢量量化,编码残差矢量显示比编码原始矢量更有效。
在低级视觉和计算机图形学中,为了求解偏微分方程(PDE),广泛使用的Multigrid方法将系统重新构建为多个尺度的子问题,其中每个子问题都负责较大和较小尺度之间的残差解。 Multigrid的替代方法是分层基础预处理,它依赖于表示两个尺度之间残差矢量的变量。 已经表明,这些求解器的收敛速度比不知道解决方案剩余性质的标准求解器快得多。 这些方法表明,良好的重构或预处理可以简化优化过程。
**短路连接。**导致快捷连接的实践和理论已经研究了很长时间。 训练多层感知器(MLP)的早期实践是添加从网络输入连接到输出的线性层。 在[44,24]中,一些中间层直接连接到辅助分类器,以解决消失/爆炸梯度。 [39,38,31,47]的论文提出了通过快捷连接实现对层响应,梯度和传播误差进行居中的方法。 在[44]中,“起始”层由快捷分支和一些更深的分支组成。
与我们的工作同时,“高速公路网络”提供具有选通功能的快捷连接。 与我们的不带参数的身份快捷方式相反,这些门取决于数据并具有参数。 当封闭的快捷方式“关闭”(接近零)时,高速公路网络中的图层表示非残留功能。 相反,我们的公式总是学习残差函数。 我们的身份快捷键永远不会关闭,所有信息始终都会通过传递,还需要学习其他残余功能。 另外,高速公路网络还没有显示出深度极大增加(例如,超过100层)的准确性。

3. 深度残差学习
3.1 残差学习

让我们将H(x)H(x)视为由一些堆叠层(不一定是整个网络)拟合的基础映射,其中x表示这些层中的第一层的输入。 如果假设多个非线性层可以渐近逼近复杂函数(但是,这个假设仍然是一个悬而未决的问题。 参见[28]),则等效于假设它们可以渐近逼近残差函数,即H(x)xH(x)-x(假设输入和输出的维数相同)。因此,我们没有让堆叠的层逼近H(x)H(x),而是明确让这些层逼近残差函数F(x):=H(x)xF(x):=H(x)−x。 因此,原始函数变为F(x)+xF(x)+ x。尽管两种形式都应能够渐近地逼近所需的函数(如假设),但学习的难易程度可能有所不同。
关于降级问题的反直觉现象促使这种重新形成(图1,左)。 正如我们在导言中讨论的那样,如果可以将添加的层构造为身份映射,则更深的模型的训练误差应不大于其较浅的对应部分。 退化问题表明,求解器可能难以通过多个非线性层来逼近身份映射。 通过残差学习的重构,如果身份映射是最佳的,则求解器可以简单地将多个非线性层的权重逼近零以逼近身份映射。
在实际情况下,身份映射不太可能是最佳的,但是我们的重新制定可能有助于解决问题。 如果最优函数比零映射更接近恒等映射,则求解器参考恒等映射来查找扰动应该比学习新函数更容易。 我们通过实验(图7)表明,所学习的残差函数通常具有较小的响应,这表明身份映射提供了合理的预处理。

3.2 通过短路方式进行身份映射

我们对每几个堆叠的层采用残差学习。构造块如图2所示。在形式上,在本文中,我们考虑定义为:
y=F(x,{Wi})+x..........................(1) y=F(x, \{W_i\})+x..........................(1)
这里的xxyy是所考虑层的输入和输出向量。函数F(x,{Wi})F(x,\{W_i\})表示要学习的残差映射。对于图2中具有两层的示例,F=W2σ(W1x)F=W_2σ(W_1x),其中σσ表示ReLU,并且为了简化符号省略了偏置。F+xF+x操作通过短路连接和逐元素加法执行。在加法之后我们采用第二个非线性度(即σ(y)σ(y),见图2)。
公式(1)中的短路连接既没有引入额外的参数,也没有引入计算复杂性。 这不仅在实践中具有吸引力,而且在我们比较普通网络和残差网络时也很重要。 我们可以公平地比较同时具有相同数量的参数,深度,宽度和计算成本(除了可以忽略的逐元素加法)的普通/残差网络。
x和F的维度在等式(1)中必须相等。 如果不是这种情况(例如,在更改输入/输出通道时),我们可以通过短路方式连接来执行线性投影WsW_s以匹配尺寸:
y=F(x,{Wi})+Wsx...........................(2) y=F(x,\{W_i \})+W_sx...........................(2)
我们也可以在等式(1)中使用平方矩阵WsW_s。但是我们将通过实验证明,身份映射足以解决降级问题并且很经济,因此WsW_s仅在匹配尺寸时使用。
残差函数F的形式是灵活的。本文中的实验涉及一个具有两层或三层的函数F(图5),而更多的层是可能的。 但是,如果F仅具有单层,则等式(1)类似于线性层:y=W1x+xy=W_1x+x,对此我们没有观察到优点。
我们还注意到,尽管为简化起见,上述符号是关于全连接层的,但它们也适用于卷积层。 函数F(x,{Wi})F(x,\{W_i\})可以表示多个卷积层。在两个功能图上逐个通道执行逐元素加法。

3.3 网络架构

我们已经测试了各种平原/残差网络,并观察到了一致的现象。为了提供讨论实例,我们描述了ImageNet的两个模型,如下所示。
普通网络。 我们简单的基线(图3,中间)主要受到VGG网络原理(图3,左)的启发。 卷积层通常具有3×3的过滤器,并遵循两个简单的设计规则:(i)对于相同的输出要素图大小,这些层具有相同的过滤器数; (ii)如果特征图的大小减半,则过滤器的数量将增加一倍,以保持每层的时间复杂度。 我们直接通过步长为2的卷积层执行下采样。网络以全局平均池化层和带有softmax的1000路全连接层结束。 图3中的加重层总数为34(中)。
值得注意的是,我们的模型比VGG网络具有更少的过滤器和更低的复杂度(图3,左)。 我们的34层基准具有36亿个FLOP(乘法加法),仅占VGG-19(196亿个FLOP)的18%。

图3. ImageNet的示例网络架构。 左:作为参考的VGG-19模型(196亿个FLOP)。 中:包含34个参数层(36亿个FLOP)的普通网络。 右图:一个具有34个参数层的残差网络(36亿个FLOP)。 虚线快捷方式会增加尺寸。 表1显示了更多详细信息和其他变体

残差网络。 在上面的普通网络的基础上,我们插入快捷方式连接(图3,右),将网络变成其对应的剩余版本。 当输入和输出的尺寸相同时,可以直接使用标识快捷方式(等式(1))(图3中的实线快捷方式)。 当维度增加时(图3中的虚线快捷方式),我们考虑两个选项:(A)快捷方式仍然执行身份映射,并为增加维度填充了额外的零条目。 此选项不引入任何额外的参数。 (B)等式(2)中的投影快捷方式用于匹配尺寸(按1×1卷积完成)。 对于这两个选项,当快捷方式跨越两种尺寸的特征图时,步幅为2。

3.4 实现

我们对ImageNet的实现遵循[21,41]中的做法。 调整图像大小,并在[256,480]中随机采样其较短的一面以进行缩放。 从图像或其水平翻转中随机采样224×224作物,并减去每像素均值。 使用[21]中的标准色彩增强。 在每次卷积之后和激活之前,我们都采用批量归一化(BN)[16]。 我们按照[13]中的方法初始化权重,并从头开始训练所有普通/残差网络。 我们使用最小批量为256的SGD。学习率从0.1开始,当误差平稳时除以10,并且训练模型的次数最多为60×10460×10^4次迭代。 我们使用0.0001的权重衰减和0.9的动量。 按照[16]中的做法,我们不使用dropout。
在测试中,为了进行比较研究,我们采用了标准的10种作物测试。 为了获得最佳结果,我们采用[41,13]中的全卷积形式,并在多个尺度上平均分数(图像被调整大小,使得较短的边在{224,256,384,480,640}中)。

4. 实验
4.1 ImageNet图像分类

我们在包含1000个类的ImageNet 2012分类数据集中评估我们的方法。 在128万张训练图像上训练模型,并在50k验证图像上进行评估。 我们还将在测试服务器报告的10万张测试图像上获得最终结果。我们评估了top-1和top-5的错误率。
普通网络。 我们首先评估18层和34层普通网。 34层普通网在图3中(中)。 18层普通网具有类似的形式。 有关详细架构,请参见表1。
表2中的结果表明,较深的34层普通网比较浅的18层普通网具有更高的验证误差。 为了揭示原因,在图4(左)中,我们比较了他们在训练过程中的训练/验证错误。 我们已经观察到退化问题-尽管18层普通网络的解决方案空间是34层普通网络的子空间,但在整个训练过程中34层普通网络具有较高的训练误差。
我们认为,这种优化困难不太可能是由消失的梯度引起的。 这些普通网络使用BN进行训练,可确保前向传播的信号具有非零的方差。 我们还验证了向后传播的梯度具有BN的健康规范。 因此,前进或后退信号都不会消失。 实际上,34层普通网络仍然可以达到竞争精度(表3),这表明求解器在某种程度上可以工作。 我们推测,深平原网络可能具有指数级的收敛速度,这会影响训练误差的降低(我们已经尝试了更多的训练迭代(3x),并且仍然观察到了退化问题,这表明仅通过使用更多的迭代就无法解决该问题)。将来将研究这种优化困难的原因。

表1. ImageNet的体系结构。括号中显示了构造块(另请参见图5),其中堆叠了许多块。 下采样由conv3_1,conv4_1和conv5_1执行,步长为2

表2. ImageNet验证中的前1个错误(%,10次裁剪测试)。ResNet与参照网络相比没有额外的参数。图4显示了训练过程

图4. ImageNet训练。 细曲线表示训练误差,粗曲线表示中心农作物的验证误差。 左:18和34层的普通网络。 右:18和34层的ResNet。 在该图中,残差网络与普通网络相比没有额外的参数

残差网络。 接下来,我们评估18层和34层残差网络(ResNets)。 基线架构与上述普通网络相同,希望将快捷连接添加到图3(右)中的每对3×3过滤器中。 在第一个比较中(右表2和图4),我们将身份映射用于所有快捷方式,将零填充用于增加尺寸(选项A)。 因此,与普通副本相比,它们没有额外的参数。
我们从表2和图4中获得了三个主要观察结果。首先,这种情况通过残差学习得以逆转– 34层ResNet优于18层ResNet(降低了2.8%)。 更重要的是,34层ResNet表现出较低的训练误差,并且可以推广到验证数据。 这表明在这种情况下可以很好地解决退化问题,并且我们设法从增加的深度中获得准确性的提高。
其次,与普通的相比,34层ResNet将top-1错误减少了3.5%(表2),这是由于成功减少了训练错误(图4右与左)。 这项比较验证了残留学习在极深系统上的有效性。
最后,我们还注意到18层普通/残差网络比较准确(表2),但18层ResNet收敛更快(图4右与左)。当网“不是太深”(此处为18层)时,当前的SGD解算器仍然能够为纯网找到良好的解决方案。 在这种情况下,ResNet通过在早期提供更快的收敛来简化优化。
识别与投影短路。 我们已经证明,无参数的身份快捷方式有助于培训。 接下来,我们研究投影快捷方式(等式(2))。 在表3中,我们比较了三个选项:(A)零填充快捷方式用于增加尺寸,并且所有快捷方式都是无参数的(与表2和右图4相同); (B)投影快捷方式用于增加尺寸,其他快捷方式是标识。(C)所有快捷方式都是投影。
表3显示,所有三个选项都比普通选项好得多。 B比A稍好。我们认为这是因为A中的零填充维确实没有残留学习。 C比B好一点,我们将其归因于许多(十三)投影快捷方式引入的额外参数。 但是,A / B / C之间的细微差异表明,投影捷径对于解决降级问题并不是必不可少的。 因此,在本文的其余部分中,我们不会使用选项C来减少内存/时间的复杂性和模型大小。 身份快捷方式对于不增加下面介绍的瓶颈架构的复杂性特别重要。

表3. ImageNet验证的错误率(%,10次裁剪测试)。 VGG-16基于我们的测试。 ResNet-50 / 101/152是选项B的选项,仅使用投影来增加尺寸

表4. ImageNet验证集上单模型结果的错误率(%)(测试集上报告的除外)

表5. 错误率(%)。 前5个错误位于ImageNet的测试集中,并由测试服务器报告

图5. ImageNet的更深的残差函数F。 左:ResNet-34的构造块(在56×56特征图上),如图3所示。右:ResNet-50 / 101/152的“瓶颈”构造块

更深的瓶颈架构。 接下来,我们将介绍ImageNet的更深层网络。 由于担心我们可以负担得起的培训时间,我们将构造块修改为瓶颈设计(更深的非瓶颈ResNets(例如,图5左)也可以通过增加深度来获得准确性(如CIFAR-10所示),但不如瓶颈ResNets经济。 因此,瓶颈设计的使用主要是出于实际考虑。 我们进一步注意到,瓶颈设计也见证了普通网的退化问题)。对于每个残差函数F,我们使用3层而不是2层的堆栈(图5)。 这三层是1×1、3×3和1×1卷积,其中1×1层负责减小然后增加(还原)尺寸,从而使3×3层成为输入/输出尺寸较小的瓶颈 。 图5显示了一个示例,其中两种设计都具有相似的时间复杂度。
无参数标识快捷方式对于瓶颈体系结构特别重要。 如果将图5(右)中的身份快捷方式替换为投影,则可以显示时间复杂度和模型大小增加了一倍,因为快捷方式连接到两个高维端。 因此,身份快捷方式可以为瓶颈设计提供更有效的模型。
**50层ResNet:**我们将3层瓶颈模块替换为34层网络中的每个2层模块,从而得到50层ResNet(表1)。 我们使用选项B来增加尺寸。 该模型具有38亿个FLOP。
101层和152层ResNet: 我们通过使用更多的3层块来构建101层和152层ResNet(表1)。 值得注意的是,尽管深度显着增加,但152层ResNet(113亿个FLOP)的复杂度仍低于VGG-16 / 19网(153.96亿个FLOP)。
50/101/152层ResNet比34层ResNet准确度高(表3和表4)。 我们没有观察到降级问题,因此深度的增加大大提高了精度。 所有评估指标都证明了深度的好处(表3和表4)。
与最新方法的比较。 在表4中,我们与以前的最佳单模型结果进行了比较。 我们的基准34层ResNet获得了非常具有竞争力的准确性。 我们的152层ResNet的单模型top-5验证错误为4.49%。 该单模型结果优于所有之前的整体结果(表5)。 我们将六个不同深度的模型组合在一起,形成一个整体(提交时只有两个152层模型)。 这导致测试集上3.5-5的top-5错误(表5)。该作品在ILSVRC 2015中获得第一名。

4.2 CIFAR-10与分析

我们对CIFAR-10数据集进行了更多研究,该数据集包含10个类别的5万个训练图像和1万个测试图像。 我们介绍在训练集上训练的实验,并在测试集上进行评估。 我们的重点是极度深度的网络的行为,而不是推动最先进的结果,因此我们有意使用了如下的简单架构。
普通/残留体系结构遵循图3中的形式(中间/右侧)。 网络输入为32×32图像,每像素均值被减去。 第一层是3×3卷积。 然后,我们分别在大小为{32,16,8}的特征图上使用具有3×3卷积的6n层堆栈,每个特征图尺寸为2n层。 过滤器的数量分别为{16,32,64}。 二次采样通过步幅为2的卷积执行。网络以全局平均池,10路全连接层和softmax结尾。 总共有6n + 2个堆叠的加权层。 下表总结了体系结构:

使用快捷方式连接时,它们连接到成对的3×3层对(总共3n个快捷方式)。 在此数据集上,我们在所有情况下都使用了身份快捷方式(即选项A),因此我们的残差模型的深度,宽度和参数数量与普通模型完全相同。
我们使用0.0001的权重衰减和0.9的动量,并在[13]和BN中采用权重初始化,但是没有丢失。 这些模型在两个GPU上的最小批量为128。 我们从0.1的学习率开始,在32k和48k迭代中将其除以10,然后在64k迭代中终止训练,这是由45k / 5k的火车/ val分配决定的。 我们遵循[24]中的简单数据增强进行训练:在每侧填充4个像素,并从填充的图像或其水平翻转中随机采样32×32的作物。 为了进行测试,我们仅评估原始32×32图像的单个视图。
我们比较n = {3,5,7,9},得出20、32、44和56层网络。 图6(左)显示了普通网络的行为。 较深的平原网会增加深度,并且在深入时会表现出较高的训练误差。 这种现象类似于ImageNet(图4,左)和MNIST(参见[42])上的现象,表明这种优化困难是一个基本问题。
图6(中)显示了ResNets的行为。 同样类似于ImageNet的情况(图4,右),我们的ResNet设法克服了优化难题,并证明了深度增加时精度的提高。
我们进一步探索n = 18导致110层ResNet。 在这种情况下,我们发现初始学习速率0.1太大,无法开始收敛5。 因此,我们使用0.01来预热训练,直到训练误差低于80%(约400次迭代),然后返回0.1并继续训练。 其余的学习时间表与之前一样。 这个110层的网络可以很好地融合(图6,中间)。 它的参数比其他深层和瘦网络(例如FitNet和Highway)(表6)少,但仍属于最新结果(6.43%,表6)。

表6. CIFAR-10测试仪上的分类错误。 所有方法都具有数据增强功能。 对于ResNet-110,我们将其运行5次并显示为[best(mean±std)”,如[43]所示

响应层分析。 图7显示了层响应的标准偏差(std)。 响应是BN之后以及其他非线性(ReLU /加法)之前每个3×3层的输出。 对于ResNet,此分析揭示了残差函数的响应强度。 图7显示ResNet的响应通常比普通响应小。 这些结果支持我们的基本动机(第3.1节),即与非残差函数相比,残差函数通常可能更接近于零。 我们还注意到,更深的ResNet具有较小的响应幅度,如图7中ResNet-20、56和110的比较所证明的。当有更多层时,ResNets的单个层往往会较少地修改信号。
探索超过1000层。 我们探索了一个超过1000层的深度模型。 我们将n设置为200,这将导致1202层网络的运行,如上所述。 我们的方法没有优化困难,该10310^3层网络能够实现训练误差<0.1%(图6,右)。其测试误差仍然相当不错(7.93%,表6)。
但是,在如此积极的深度模型上仍然存在未解决的问题。 尽管这两个1202层网络的训练误差相似,但它们的测试结果却比我们的110层网络的测试结果差。 我们认为这是由于过度拟合。 对于这个小的数据集,1202层网络可能会不必要地大(19.4M)。 应用强正则化(例如maxout或dropout)以在此数据集上获得最佳结果([10、25、24、35])。 在本文中,我们不使用maxout / dropout,而只是通过设计通过深度和精简架构强加正则化,而不会分散对优化困难的关注。 但是,结合更强的正则化可能会改善结果,我们将在以后进行研究。

图6. 在CIFAR-10上的训练。 虚线表示训练错误,而粗线表示测试错误。 左:普通网络。 Plain-110的错误高于60%,并且不显示。 中:ResNets。 右:具有110和1202层的ResNet

图7. CIFAR-10上层响应的标准偏差(std)。 响应是BN之后和非线性之前每个3×3层的输出。 顶部:图层以其原始顺序显示。 下:响应按降序排列

表7. 使用基准Faster R-CNN在PASCAL VOC 2007/2012测试集中进行的对象检测mAP(%)。 另请参见表10和11,以获得更好的结果

表8. 使用基线Faster R-CNN在COCO验证集上进行的对象检测mAP(%)。 另请参见表9,以获得更好的结果

4.3 PASCAL和MS COCO上的目标检测

我们的方法在其他识别任务上具有良好的泛化性能。 表7和8显示了PASCAL VOC 2007和2012以及COCO上的对象检测基准结果。 我们采用Faster R-CNN作为检测方法。 在这里,我们对用ResNet-101替换VGG-16的改进感兴趣。 使用这两种模型的检测实现方式(请参阅附录)是相同的,因此只能将收益归因于更好的网络。 最值得注意的是,在具有挑战性的COCO数据集上,我们的COCO标准指标(mAP @ [.5,.95])增加了6.0%,相对提高了28%。 该收益完全归因于所学的表示。
基于深层残差网络,我们在ILSVRC和COCO 2015竞赛的多个赛道上均获得了第一名:ImageNet检测,ImageNet本地化,COCO检测和COCO分割。 详细信息在附录中。

A. 目标检测基线

在本节中,我们介绍基于基线Faster R-CNN系统的检测方法。 这些模型由ImageNet分类模型初始化,然后根据目标检测数据进行微调。 在ILSVRC和COCO 2015检测竞赛时,我们已经对ResNet-50 / 101进行了试验。
与[32]中使用的VGG-16不同,我们的ResNet没有隐藏的fc层。 我们采用“ Conv特征图上的网络”(NoC)的思想来解决此问题。 我们使用图像上的步幅不大于16个像素的图层(即conv1,conv2_x,conv3_x和conv4_x,在ResNet-101中总共91个conv图层;表1)计算全图像共享conv特征图。 我们认为这些层类似于VGG-16中的13个conv层,这样做,ResNet和VGG-16都具有相同总步幅(16像素)的conv特征图。 这些层由区域提议网络(RPN,生成300个提议)和快速R-CNN检测网络共享。 RoI池在conv5_1之前执行。 在此RoI合并功能中,每个区域都采用了conv5_x和up的所有层,起到了VGG-16的fc层的作用。 最终的分类层被两个同级层替代(分类和框回归)。
对于BN层的使用,在预训练之后,我们为ImageNet训练集上的每个层计算BN统计信息(均值和方差)。 然后在微调过程中将BN层固定以进行对象检测。 这样,BN层变为具有恒定偏移量和比例的线性激活,并且不会通过微调更新BN统计信息。 我们修复BN层主要是为了减少Faster R-CNN训练中的内存消耗。

PASCAL VOC

按照[7,32],对于PASCAL VOC 2007测试集,我们使用VOC 2007中的5k火车图像和VOC 2012中的16k火车图像进行训练(“ 07 + 12”)。 对于PASCAL VOC 2012测试集,我们使用VOC 2007中的10k trainval + test图像和VOC 2012中的16k trainval图像进行训练(“ 07 ++ 12”)。 用于训练Faster R-CNN的超参数与[32]中的相同。 表7示出了结果。 与VGG-16相比,ResNet-101将mAP改善了3%以上。 这一收益完全是由于ResNet学会了改进的功能。

MS COCO

MS COCO数据集[26]涉及80个对象类别。 我们评估了PASCAL VOC指标(mAP @ IoU = 0.5)和标准COCO指标(mAP @ IoU = .5:.05:.95)。 我们将火车上的80k图像用于训练,将val上的40k图像用于评估。 我们的COCO检测系统与PASCAL VOC相似。 我们使用8-GPU实现训练COCO模型,因此RPN步骤的最小批量大小为8张图像(即每个GPU 1个),而Fast R-CNN步骤的最小批量大小为16张图像。 RPN步骤和Fast R-CNN步骤均以0.001的学习率进行240k迭代的训练,然后以0.0001进行80k迭代的训练。
表8显示了MS COCO验证集的结果。 ResNet-101的mAP @ [。5,.95]比VGG-16增加了6%,相对改善了28%,这完全归功于更好的网络所了解的功能。 值得注意的是,mAP @ [。5,.95]的绝对增长(6.0%)与mAP @ .5的绝对增长(6.9%)差不多。 这表明更深的网络可以同时提高识别能力和定位能力。

B. 目标检测的改进

为了完整起见,我们报告了比赛的改进。 这些改进基于深层功能,因此应该从残差学习中受益。

MS COCO

盒子精修。 我们的盒子精炼部分遵循[6]中的迭代定位。 在Faster R-CNN中,最终输出是一个回归框,不同于其提案框。 因此,为了进行推断,我们从回归框中合并了一个新功能,并获得了新的分类得分和新的回归框中。 我们将这300个新的预测与原始的300个预测结合在一起。 使用IoU阈值0.3将非最大抑制(NMS)应用于预测框的并集,然后进行框投票。 盒子精修可将mAP提高约2个点(表9)。
全局环境。 我们在快速R-CNN步骤中结合了全局上下文。 给定完整图像的转换特征图,我们通过全局空间金字塔池(带有“单级”金字塔)对特征进行池化,可以使用整个图像的边界框作为RoI来实现为“ RoI”池。 将此合并的功能馈入后RoI层以获得全局上下文功能。 此全局特征与原始的按区域特征连接在一起,然后是同级分类和框回归图层。 这种新结构经过端到端的培训。 全局环境将mAP @ .5提高了约1个点(表9)。
多尺度测试。 在上面,所有结果都是通过[32]中的单尺度训练/测试获得的,其中图像的短边是s = 600像素。 在[12,7]中通过从要素金字塔中选择比例来开发多尺度训练/测试,在[33]中通过使用maxout层来开发多尺度训练/测试。 在我们当前的实现中,我们根据[33]进行了多尺度测试; 由于时间有限,我们尚未进行多尺度培训。 此外,我们仅针对Fast R-CNN步骤(但尚未针对RPN步骤)执行多尺度测试。 通过训练有素的模型,我们可以在图像金字塔上计算出conv特征图,其中图像的短边为s∈{200,400,600,800,1000}。 我们从[33]之后的金字塔中选择两个相邻的比例尺。 RoI池和后续层在这两个比例尺的特征图上执行,并由maxout合并,如[33]中所述。 多尺度测试将mAP提高了2个百分点(表9)。
使用验证数据。 接下来,我们使用80k + 40k trainval集进行训练,并使用20k test-dev集进行评估。 测试开发集没有公开可用的基础事实,结果由评估服务器报告。 在此设置下,结果的mAP @ .5为55.7%,mAP @ [。5,.95]为34.9%(表9)。 这是我们的单模型结果。
集成。 在Faster R-CNN中,该系统旨在学习区域建议以及对象分类器,因此可以使用集成来完成这两项任务。 我们使用整体建议区域,建议的联合集由按区域分类的整体处理。 表9显示了基于3个网络的合计结果。 在测试开发集上,mAP分别为59.0%和37.4%。 该结果在COCO 2015的检测任务中获得了第一名。

PASCAL VOC

我们基于上述模型重新访问PASCAL VOC数据集。 使用COCO数据集上的单个模型(表9中的55.7%mAP @ .5),我们可以在PASCAL VOC集上微调该模型。 盒子改进,上下文和多尺度测试的改进也被采用。 这样一来,我们在PASCAL VOC 2007(表10)和PASCAL VOC 2012(表11)上实现了85.6%的mAP(http://host.robots.ox.ac.uk:8080/anonymous/3OJ4OJ.html,
提交于2015-11-26)。PASCAL VOC 2012的结果比以前的最新结果高10点。

表9. 使用Faster R-CNN和ResNet-101在MS COCO上的目标检测改进

表10. PASCAL VOC 2007测试集的检测结果。 基线是Faster R-CNN系统。 表9中的“基准+++”系统包括框优化,上下文和多尺度测试

表11. 在PASCAL VOC 2012测试集上的检测结果(http://host.robots.ox.ac.uk:8080/leaderboard/displaylb.php?challengeid=11&compid=4)。 基线是Faster R-CNN系统。 表9中的“基准+++”系统包括框优化,上下文和多尺度测试

表12. 我们在ImageNet检测数据集上的结果(mAP,%)。 我们的检测系统是Faster R-CNN,使用ResNet-101进行了表9的改进

ImageNet检测

ImageNet检测(DET)任务涉及200个对象类别。 精度由mAP @ .5评估。 我们针对ImageNet DET的对象检测算法与表9中针对MS COCO的对象检测算法相同。网络在1000类ImageNet分类集上进行了预训练,并在DET数据上进行了微调。 在[8]之后,我们将验证集分为两部分(val1 / val2)。 我们使用DET训练集和val1集微调检测模型。 val2集用于验证。 我们不会使用其他ILSVRC 2015数据。 我们使用ResNet-101的单个模型具有58.8%的mAP,而我们的3个模型的集合在DET测试集上具有62.1%的mAP(表12)。 该结果在ILSVRC 2015的ImageNet检测任务中获得了第一名,以8.5点(绝对值)超过了第二名。

表13. ImageNet验证上的本地化错误(%)。 在“ GT类的LOC错误”列中,使用了地面真实性类。 在“测试”列中,“ 1-crop”表示对224×224像素的中心作物进行测试,“ dense”表示密集(完全卷积)和多尺度测试

C. ImageNet本地化

ImageNet本地化(LOC)任务需要对对象进行分类和本地化。 [40,41]之后,我们假设首先采用图像级分类器来预测图像的类别标签,而定位算法仅根据预测的类别来说明边界框的预测。 我们采用“每班级回归”(PCR)策略,为每个班级学习边界框回归器。 我们预训练网络以进行ImageNet分类,然后对其进行微调以进行本地化。 我们在提供的1000级ImageNet训练集中训练网络。
我们的定位算法基于[32]的RPN框架,并做了一些修改。 与[32]中的与类别无关的方法不同,我们的本地化RPN是按类设计的。 该RPN以两个同级1×1卷积层结束,用于二进制分类(cls)和框回归(reg),如[32]所示。 与[32]相反,cls和reg层都属于每个类。 具体来说,cls层具有1000-d输出,并且每个维度都是用于预测是否为对象类的二进制逻辑回归。 reg层具有1000×4-d输出,该输出由1000类的框式回归组成。 如[32],我们的边界框回归是在每个位置参考多个平移不变的“锚”框。
与我们的ImageNet分类训练(第3.4节)一样,我们随机抽取224×224种作物进行数据增强。 我们使用256幅图像的小批量大小进行微调。 为避免负样本占主导地位,每个图像随机采样8个锚点,其中采样的正锚点和负锚点的比例为1:1。 为了进行测试,将网络完全卷积地应用到图像上。
表13比较了本地化结果。 继[41]之后,我们首先使用地面真理类作为分类预测来执行“ oracle”测试。 VGG的论文使用地面实况类报告了33.1%的中心裁剪误差(表13)。 在相同的设置下,我们使用ResNet-101 net的RPN方法将中心裁切误差显着降低到13.3%。 此比较证明了我们框架的出色性能。 通过密集(完全卷积)和多尺度测试,我们的ResNet-101使用地面真理类的错误率为11.7%。 使用ResNet-101预测类别(前5名分类错误为4.6%,表4),前5名本地化错误为14.4%。
以上结果仅基于Faster R-CNN中的提案网络(RPN)。 可以在Faster R-CNN中使用检测网络(Fast R-CNN)来改善结果。 但是我们注意到,在该数据集上,一张图像通常只包含一个主要对象,并且投标区域彼此高度重叠,因此具有非常相似的RoI合并特征。 结果,Fast R-CNN的以图像为中心的训练会生成小变化的样本,这对于随机训练而言可能是不希望的。 因此,在我们当前的实验中,我们使用以RoI为中心的原始R-CNN代替了Fast R-CNN。
我们的R-CNN实现如下。 我们在训练图像上应用如上训练的每类RPN,以预测地面实况类的边界框。 这些预测框起着与类有关的提议的作用。 对于每个训练图像,将获得最高评分的200个建议作为训练样本,以训练R-CNN分类器。 图像区域从提案中裁剪出来,变形为224×224像素,然后像R-CNN中一样输入到分类网络中。 该网络的输出由cls和reg的两个同级fc层组成,也是每类的形式。 该R-CNN网络在训练集上进行了微调,使用以RoI为中心的256的小批量大小。 为了进行测试,RPN为每个预测的课程生成得分最高的200个建议,并且R-CNN网络用于更新这些建议的分数和方框位置。
此方法将前5位的定位错误降低到10.6%(表13)。 这是我们在验证集上的单模型结果。 使用网络集成进行分类和本地化,我们在测试集上实现了9.0%的top-5本地化误差。 该数字明显优于ILSVRC 14结果(表14),相对误差降低了64%。 该结果在ILSVRC 2015的ImageNet本地化任务中获得了第一名。

查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. 代理模式解析,静态代理、动态代理一文全都告诉你

    Proxy Pattern 经过两个月的学习,我们的设计模式系列学习也将近到了尾声。不过设计模式这东西一时半会肯定是掌握不下来的,需要我们在后续的工作中持续的去练习。有了这方面的思维,剩下的就是靠自己刻意训练了。 今天带来的是代理模式,Proxy Pattern。这个模式想必大家都不…...

    2024/4/29 5:53:16
  2. POS机刷卡没到账的原因有哪些,怎么处理

    刷卡没到账,让很多个人商家心急如焚,毕竟牵扯资金,三陆合提醒其实不用太过于着急,只要是正规的收单机构旗下的品牌,一清机都是安全的,首先询问办理POS机的相关人员,再则打pos机的客服电话询问具体原因,不规范的POS机就另当别论。 主要的原因有以下几种 网络故障引起的俗…...

    2024/4/29 16:18:16
  3. 线性代数应该这样学读后感

    开始 线代考试大概是9初,之前学的云里雾里,最近我又重新看了一遍,总结了我学了以后有关的想法,希望能和大家探讨。 虽然前面很罗嗦,但是全部看下来,整本书的思路很清晰,就是寻找能够让算子的矩阵简单表示的基。 需要注意的一些点:讨论的是复空间上的(说实话,实化这部…...

    2024/4/29 5:53:13
  4. 关于面试总结9-接口测试面试题

    前言接口测试最近几年被炒的火热了,越来越多的测试同行意识到接口测试的重要性。接口测试为什么会如此重要呢? 主要是平常的功能点点点,大家水平都一样,是个人都能点,面试时候如果问你平常在公司怎么测试的,你除了说点点点,还能说什么呢,无非就是这个项目点完了点那个项…...

    2024/4/29 5:53:07
  5. 学者学习游戏建模先从基础做起?几个技巧让你轻车熟路

    初学者容易出现几个问题:一是对工具的使用还不够熟练,有些工具都不知道是干嘛用的;二是对布线的规范没有太大的了解;三是对建模制作流程不清晰和板绘下的功力不够,对贴图制作用工少。今天就来和大家来说说该如何解决这些问题。3DMAX是个庞大的软件,广泛应用于影视动画、建…...

    2024/4/29 5:53:00
  6. 计算机网络复习—1、概述

    网络的网络 网络把主机连接起来,而互连网(internet)是把多种不同的网络连接起来,因此互连网是网络的网络。而互联网(Internet)是全球范围的互连网。ISP 互联网服务提供商 ISP 可以从互联网管理机构获得许多 IP 地址,同时拥有通信线路以及路由器等联网设备,个人或机构向…...

    2024/4/29 5:53:26
  7. 3分钟搞懂 springBoot 初始化过程

    初始化SpringBootServletInitializer 通过new SpringApplication(primarySources)初始化SpringBootServletInitializer 相关源码代码: @SpringBootApplication public class MySpringbootTomcatStarter extends SpringBootServletInitializer {public static void main(String[…...

    2024/5/1 17:48:00
  8. leetcode_93_复原ip地址

    老样子,先上题目:给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式。有效的 IP 地址正好由四个整数(每个整数位于 0 到 255 之间组成),整数之间用 . 分隔。示例:输入: "25525511135" 输出: ["255.255.11.135", "255.255.111.35&…...

    2024/4/29 5:52:44
  9. 一篇文章了解计算机常识写给小白和想买电脑的人

    引文 在写下这篇文章之前,博主已经写过两篇写硬件知识的文章,但是,由于对写博客经验的缺失导致两篇文章比较零散,不够系统,这篇文章要弥补之前两篇文章的不足之处,也写给没看过前两篇写硬件文章的人们 初识计算机 在当下,信息技术高速发展,计算机从刚出现时的稀有发展到…...

    2024/4/29 5:52:45
  10. 【渗透测试笔记】之【SSH 本地端口转发】

    模拟环境:内网一台Linux 主机只能访问外网的53端口,将此主机的SSH 转发给外网的kali,通过kali 再转发给其它服务器(Windows2003) 配置实验环境 配置防火墙 同上一篇端口转发配置。 配置kali 网卡桥接到物理网络模拟外网。 开机后kali默认关闭了所有服务,需要开启ssh: se…...

    2024/4/29 5:53:01
  11. A Tutorial on Learning With Bayesian Networks 翻译

    文章目录AbstractIntroductionThe Bayesian Approach to Probability and StatisticsBayesian NetworksInference in a Bayesian NetworkLearning Probabilities in a Bayesian Network 作者:David Heckerman (此版本为2020年1月修订版) Abstract 贝叶斯网络是一个编码了随机…...

    2024/4/29 5:52:46
  12. 只有懂Beanshell才敢说懂jmeter

    简介 BeanShell是一种脚本语言,一种完全符合java语法的java脚本语言,并且又拥有自己的一些语法和方法,beanShell是一种松散类型的脚本语言(这点和JS类似)。 BeanShell是什么? BeanShell是一种完全符合Java语法规范的脚本语言,并且又拥有自己的一些语法和方法; BeanShell是…...

    2024/4/29 2:59:50
  13. Ubuntu16.04双系统安装与相关软件安装

    1.win10安装Ubuntu16.04双系统 https://blog.csdn.net/zhuiqiuzhuoyue583/article/details/866691422.卸载无关软件(1)卸载LibreOffice:sudo apt-get remove libreoffice-common(2)卸载亚马逊链接:sudo apt-get remove unity-webapps-common参考:https://blog.csdn.net/…...

    2024/4/29 5:52:30
  14. 常用的CSDN博客操作命令

    我的第一个博客2020-8-9常用的CSDN博客操作命令功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可…...

    2024/4/29 5:52:32
  15. kafka初探--基本概念

    Kafka的特性: 高吞吐量、低延迟:kafka每秒可以处理几十万条消息,它的延迟最低只有几毫秒,每个topic可以分多个partition, consumer group 对partition进行consume操作。 可扩展性:kafka集群支持热扩展 持久性、可靠性:消息被持久化到本地磁盘,并且支持数据备份防止数据丢…...

    2024/4/29 5:52:19
  16. Flutter技术与实战(3)

    Dart语言基础 基础语法与类型变量 Dart初体验 printInteger(int a) {print(Hello world, this is $a.); }main() {var number = 2019; printInteger(number); } —————————————————————————————————————————————————————…...

    2024/4/29 5:52:18
  17. SqlServer2008实例48条件处理

    条件处理可以根据一个或者一组表达式的值来返同结果。CASE函数用于根据一个表达式的值返回结果。它常用于将代码转换为描述性的值或者计算多个条件来返回一个值(例如,“如果行是2008年的并且小于或等于当前的季度,则返回销售总数”)。IF…ELSE结构计算一个布尔表达式,如果…...

    2024/4/29 5:52:19
  18. 牛客网华为在线编程题

    题目描述 王强今天很开心,公司发给N元的年终奖。王强决定把年终奖用于购物,他把想买的物品分为两类:主件与附件,附件是从属于某个主件的,下表就是一些主件与附件的例子: 主件 附件 电脑 打印机,扫描仪 书柜 图书 书桌 台灯,文具 工作椅 无 如果要买归类为附件的物品,必…...

    2024/4/29 5:52:06
  19. springboot整合swagger---坑(傻)

    1.今天整合和swagger的时候访问http://localhost:8080/swagger-ui.html#/ 的时候一直显示404,然后各种百度,找答案。。 2.后来发现原来是自己配置了项目的访问路径 /personblog 3.最后访问http://localhost:8080/personblog/swagger-ui.html#/ 就可以成功了,,被自己蠢到了。…...

    2024/4/29 5:52:22
  20. NOI2012随机数生成器 递推构造矩阵+矩阵快速幂+快速乘

    分析:这道题longlong类型整数相乘会溢出,用快速乘取模就好了,至于矩阵构造,利用递推式Xn+1=(aXn +c) mod m构造{{a,1},{0,1}}*{Xn,c}后,做坏左乘矩阵n次方后与右乘矩阵初始矩阵{X0,c}相乘即可 #include<iostream> #include<cstring> #include<cstdio>…...

    2024/4/29 5:51:56

最新文章

  1. MySQL——88张表汇总——DDL+外键

    外键er图 88张表 /* Navicat MySQL Data TransferSource Server : MyList Source Server Version : 50726 Source Host : localhost:3309 Source Database : schooldbTarget Server Type : MYSQL Target Server Version : 50726 File Encoding …...

    2024/5/2 22:03:02
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/3/20 10:50:27
  3. 白盒测试-条件覆盖

    ​ 条件覆盖是指运行代码进行测试时&#xff0c;程序中所有判断语句中的条件取值为真值为假的情况都被覆盖到&#xff0c;即每个判断语句的所有条件取真值和假值的情况都至少被经历过一次。 ​ 条件覆盖率的计算方法为&#xff1a;测试时覆盖到的条件语句真、假情况的总数 / 程…...

    2024/5/2 15:05:16
  4. 医院内外网安全通讯:实现安全与便捷的跨网即时通讯

    医院作为医疗信息化程度较高的机构之一&#xff0c;内部数据传输频繁&#xff0c;网络安全问题备受关注。医院内外网隔离是确保医院网络安全性和保密性的关键措施。然而&#xff0c;医院在业务开展中经常需要进行内外网数据交换&#xff0c;比如患者数据传输至内网&#xff0c;…...

    2024/4/30 2:54:39
  5. Java最短路径算法知识点(含面试大厂题和源码)

    最短路径算法是计算机科学和图论中的核心问题之一&#xff0c;它旨在找到从一个顶点到另一个顶点或在所有顶点之间的最短路径。这个问题在多种实际应用中都非常重要&#xff0c;如网络路由、交通规划、社交网络分析等。以下是一些与最短路径算法相关的知识点&#xff1a; Dijks…...

    2024/5/1 6:43:28
  6. 416. 分割等和子集问题(动态规划)

    题目 题解 class Solution:def canPartition(self, nums: List[int]) -> bool:# badcaseif not nums:return True# 不能被2整除if sum(nums) % 2 ! 0:return False# 状态定义&#xff1a;dp[i][j]表示当背包容量为j&#xff0c;用前i个物品是否正好可以将背包填满&#xff…...

    2024/5/2 11:19:01
  7. 【Java】ExcelWriter自适应宽度工具类(支持中文)

    工具类 import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.CellType; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet;/*** Excel工具类** author xiaoming* date 2023/11/17 10:40*/ public class ExcelUti…...

    2024/5/2 16:04:58
  8. Spring cloud负载均衡@LoadBalanced LoadBalancerClient

    LoadBalance vs Ribbon 由于Spring cloud2020之后移除了Ribbon&#xff0c;直接使用Spring Cloud LoadBalancer作为客户端负载均衡组件&#xff0c;我们讨论Spring负载均衡以Spring Cloud2020之后版本为主&#xff0c;学习Spring Cloud LoadBalance&#xff0c;暂不讨论Ribbon…...

    2024/5/1 21:18:12
  9. TSINGSEE青犀AI智能分析+视频监控工业园区周界安全防范方案

    一、背景需求分析 在工业产业园、化工园或生产制造园区中&#xff0c;周界防范意义重大&#xff0c;对园区的安全起到重要的作用。常规的安防方式是采用人员巡查&#xff0c;人力投入成本大而且效率低。周界一旦被破坏或入侵&#xff0c;会影响园区人员和资产安全&#xff0c;…...

    2024/5/2 9:47:31
  10. VB.net WebBrowser网页元素抓取分析方法

    在用WebBrowser编程实现网页操作自动化时&#xff0c;常要分析网页Html&#xff0c;例如网页在加载数据时&#xff0c;常会显示“系统处理中&#xff0c;请稍候..”&#xff0c;我们需要在数据加载完成后才能继续下一步操作&#xff0c;如何抓取这个信息的网页html元素变化&…...

    2024/5/2 9:47:31
  11. 【Objective-C】Objective-C汇总

    方法定义 参考&#xff1a;https://www.yiibai.com/objective_c/objective_c_functions.html Objective-C编程语言中方法定义的一般形式如下 - (return_type) method_name:( argumentType1 )argumentName1 joiningArgument2:( argumentType2 )argumentName2 ... joiningArgu…...

    2024/5/2 6:03:07
  12. 【洛谷算法题】P5713-洛谷团队系统【入门2分支结构】

    &#x1f468;‍&#x1f4bb;博客主页&#xff1a;花无缺 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! 本文由 花无缺 原创 收录于专栏 【洛谷算法题】 文章目录 【洛谷算法题】P5713-洛谷团队系统【入门2分支结构】&#x1f30f;题目描述&#x1f30f;输入格…...

    2024/5/2 9:47:30
  13. 【ES6.0】- 扩展运算符(...)

    【ES6.0】- 扩展运算符... 文章目录 【ES6.0】- 扩展运算符...一、概述二、拷贝数组对象三、合并操作四、参数传递五、数组去重六、字符串转字符数组七、NodeList转数组八、解构变量九、打印日志十、总结 一、概述 **扩展运算符(...)**允许一个表达式在期望多个参数&#xff0…...

    2024/5/1 11:24:00
  14. 摩根看好的前智能硬件头部品牌双11交易数据极度异常!——是模式创新还是饮鸩止渴?

    文 | 螳螂观察 作者 | 李燃 双11狂欢已落下帷幕&#xff0c;各大品牌纷纷晒出优异的成绩单&#xff0c;摩根士丹利投资的智能硬件头部品牌凯迪仕也不例外。然而有爆料称&#xff0c;在自媒体平台发布霸榜各大榜单喜讯的凯迪仕智能锁&#xff0c;多个平台数据都表现出极度异常…...

    2024/5/2 5:31:39
  15. Go语言常用命令详解(二)

    文章目录 前言常用命令go bug示例参数说明 go doc示例参数说明 go env示例 go fix示例 go fmt示例 go generate示例 总结写在最后 前言 接着上一篇继续介绍Go语言的常用命令 常用命令 以下是一些常用的Go命令&#xff0c;这些命令可以帮助您在Go开发中进行编译、测试、运行和…...

    2024/5/1 20:22:59
  16. 用欧拉路径判断图同构推出reverse合法性:1116T4

    http://cplusoj.com/d/senior/p/SS231116D 假设我们要把 a a a 变成 b b b&#xff0c;我们在 a i a_i ai​ 和 a i 1 a_{i1} ai1​ 之间连边&#xff0c; b b b 同理&#xff0c;则 a a a 能变成 b b b 的充要条件是两图 A , B A,B A,B 同构。 必要性显然&#xff0…...

    2024/5/2 9:47:28
  17. 【NGINX--1】基础知识

    1、在 Debian/Ubuntu 上安装 NGINX 在 Debian 或 Ubuntu 机器上安装 NGINX 开源版。 更新已配置源的软件包信息&#xff0c;并安装一些有助于配置官方 NGINX 软件包仓库的软件包&#xff1a; apt-get update apt install -y curl gnupg2 ca-certificates lsb-release debian-…...

    2024/5/2 9:47:27
  18. Hive默认分割符、存储格式与数据压缩

    目录 1、Hive默认分割符2、Hive存储格式3、Hive数据压缩 1、Hive默认分割符 Hive创建表时指定的行受限&#xff08;ROW FORMAT&#xff09;配置标准HQL为&#xff1a; ... ROW FORMAT DELIMITED FIELDS TERMINATED BY \u0001 COLLECTION ITEMS TERMINATED BY , MAP KEYS TERMI…...

    2024/5/2 0:07:22
  19. 【论文阅读】MAG:一种用于航天器遥测数据中有效异常检测的新方法

    文章目录 摘要1 引言2 问题描述3 拟议框架4 所提出方法的细节A.数据预处理B.变量相关分析C.MAG模型D.异常分数 5 实验A.数据集和性能指标B.实验设置与平台C.结果和比较 6 结论 摘要 异常检测是保证航天器稳定性的关键。在航天器运行过程中&#xff0c;传感器和控制器产生大量周…...

    2024/5/2 8:37:00
  20. --max-old-space-size=8192报错

    vue项目运行时&#xff0c;如果经常运行慢&#xff0c;崩溃停止服务&#xff0c;报如下错误 FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory 因为在 Node 中&#xff0c;通过JavaScript使用内存时只能使用部分内存&#xff08;64位系统&…...

    2024/5/2 9:47:26
  21. 基于深度学习的恶意软件检测

    恶意软件是指恶意软件犯罪者用来感染个人计算机或整个组织的网络的软件。 它利用目标系统漏洞&#xff0c;例如可以被劫持的合法软件&#xff08;例如浏览器或 Web 应用程序插件&#xff09;中的错误。 恶意软件渗透可能会造成灾难性的后果&#xff0c;包括数据被盗、勒索或网…...

    2024/5/2 9:47:25
  22. JS原型对象prototype

    让我简单的为大家介绍一下原型对象prototype吧&#xff01; 使用原型实现方法共享 1.构造函数通过原型分配的函数是所有对象所 共享的。 2.JavaScript 规定&#xff0c;每一个构造函数都有一个 prototype 属性&#xff0c;指向另一个对象&#xff0c;所以我们也称为原型对象…...

    2024/5/1 14:33:22
  23. C++中只能有一个实例的单例类

    C中只能有一个实例的单例类 前面讨论的 President 类很不错&#xff0c;但存在一个缺陷&#xff1a;无法禁止通过实例化多个对象来创建多名总统&#xff1a; President One, Two, Three; 由于复制构造函数是私有的&#xff0c;其中每个对象都是不可复制的&#xff0c;但您的目…...

    2024/5/2 18:46:52
  24. python django 小程序图书借阅源码

    开发工具&#xff1a; PyCharm&#xff0c;mysql5.7&#xff0c;微信开发者工具 技术说明&#xff1a; python django html 小程序 功能介绍&#xff1a; 用户端&#xff1a; 登录注册&#xff08;含授权登录&#xff09; 首页显示搜索图书&#xff0c;轮播图&#xff0…...

    2024/5/2 7:30:11
  25. 电子学会C/C++编程等级考试2022年03月(一级)真题解析

    C/C++等级考试(1~8级)全部真题・点这里 第1题:双精度浮点数的输入输出 输入一个双精度浮点数,保留8位小数,输出这个浮点数。 时间限制:1000 内存限制:65536输入 只有一行,一个双精度浮点数。输出 一行,保留8位小数的浮点数。样例输入 3.1415926535798932样例输出 3.1…...

    2024/5/1 20:56:20
  26. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  27. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  28. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  29. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  30. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  31. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  32. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  33. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  34. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  35. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  36. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  37. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  38. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  39. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  40. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  41. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  42. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  43. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  44. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  45. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57