论文连接
https://arxiv.org/abs/1506.01497

Faster R-CNN: 基于区域建议网络的实时目标检测

0. 摘要

目前最先进的目标检测网络都依赖区域建议(也称候选框)算法来假设目录的位置。SPPnet和Fast RCNN网络的改进主要是减少了检测网络的运行时间,但是暴露出了 计算候选框的瓶颈 问题。在本文中,我们介绍一个候选区域网络(RPN),该网络与检测网络共享整图的卷积特征,使生成候选区域的开销几乎为0。RPN是一个完完全全的卷积网络,它同时预测每个位置的目标边界和目标得分。RPN通过端到端的训练来生成高质量的候选框,这些候选框被Fast R-CNN用来做检测。通过共享卷积特征,我们进一步将RPN和Fast R-CNN融合成了一个网络——使用最近流行的神经网络术语“注意力”机制,RPN模块告诉融合后的检测网络要看向哪里。对于非常深的VGG16模型[3],我们在一个GPU上的检测帧率为5fps(包含所有的步骤),而且每张图片300个候选框可以在PASCAL VOC 2007,2012和MS COCO数据集上取得了最高的目标检测精度。在ILSVRC和COCO 2015竞赛中,Faster R-CNN和RPN是在多个赛道中获得第一名的作品的基础。代码已公开可获取。https://github.com/ShaoqingRen/faster_rcnn

1. 介绍

区域建议方法和基于区域的卷积神经网络(R-CNN)的成功应用推动了目标检测的最新进展。虽然的最初在[5]中提出的基于区域的CNN网络最初版本计算代价昂贵,但是得益于候选框之间共享卷积[1][2]使计算开销已大大降低。该方式的最新代表作,Fast R-CNN使用非常深的网络几乎达到了实时检测速率,当然需要忽略掉生成候选框所占用的时间。 现在生成候选框已经成了最新检测系统中测试阶段的计算瓶颈。

区域推荐方法通常依赖计算开销少的特征和经济的推理方案(个人理解:这里指候选框多的时候要能够用最小的开销获取对应的特征值,经济性应该是不会在占用硬盘空间吧)。选择性搜索(Selective Search)[4],最受欢迎的候选框生成方法之一,基于人工设计的低级别特征通过贪婪方式合并超级像素来生成候选框。但是与高效的检测网络[2]相比,选择性搜索慢了一个数量级,在一个CPU上处理一张图片需要2秒。EdgeBoxes[6]提供了目前候选框质量和速度最好的折中方案,0.2秒处理一张图片。然而,生成候选框的步骤仍然花费了与检测网络相同的时间。

我们应该注意到了,基于区域的CNN网络运行在GPU上,但是生成候选框却在CPU上实现,使得这样比较运行时间会不公平。很明显,一个加快生成候选框计算的方法就是在GPU上重新实现。这可能是一种有效的设计方案,但是重新实现忽略了下游的检测网络,因而也错过了共享计算的重要机会。

在本文中我们展示一个算法上的变化——使用深度卷积神经网络来生成候选框——根据新的算法可以设计出优雅而且高效的解决方案,候选框的计算几乎不会为检测网络添加额外的开销。为此,我们引入了新颖的区域建议网络(RPNs),与最新的目标检测网络[1][2]共享卷积层。通过在测试阶段共享卷积,计算候选框的边际成本非常小(差不多10ms一张图片。)

边际成本指的是每一单位新增生产的产品(或者购买的产品)带来的总成本的增量。 这个概念表明每一单位的产品的成本与总产品量有关。这里指的添加RPN网络后对整个检测网络的影响。

据我们的观察,像Fast R-CNN这种基于区域的检测器使用的卷积特征图,同样可以用来生成候选框。在这些卷积特征的基础上,我们创建了一个RPN网络,是由额外的几个卷基层构成并且可以同时为网格的每一个位置同时进行区域边框回归和目标打分。(这里的网格是不是指讲原始的图片进行分割出来的??继续往下读)。RPN是一种完完全全的卷积网络(FCN:fully convolutional network),可以针对生成检测候选框进行端到端的训练(个人理解:RPN是卷积网络,将其与之前的检测网络融合到一起,可以进行端到端的训练)。

在这里插入图片描述
FPN旨在高效的预测不同尺度和纵横比的候选框。与当前流行的使用图像金字塔(图1,a)和滤波器金字塔(图1,b,用来提取特征值)的方法相比,我们引入了一个新概念**"锚定"框(anchor box)作为多种尺度和纵横比的参照物**。我们的方案可以认为是参照物的回归金字塔(图1,c),这样可以避免将不同尺度和纵横比的图像和滤波器都枚举出来。该模型在使用单尺度图片进行训练和测试时表现良好,单尺度同样有利于加快运行速度。

为了将RPN和目标检测网络Fast R-CNN整合到一起,我们提出了一个训练方案,该方案对生成候选框任务和目标检测任务交替进行微调(fine tuning),任务交替但是候选框保持不变。该方案收敛快并且创造了一个融合的网络,两个任务可以共享卷积特征。(个人理解:训练时使用一组候选框分别对生成候选框和目标检测进行微调,然后换下一组)

我们使用PASCAL VOC检测基准对我们的方法进行了全面的评估,结果显示RPN + Fast R-CNN的检测精度比选择性搜索+faste R-CNN的精度更好。同时,我们的方法几乎消除了选择性搜索(下面开始简称SS)给测试阶段带来的计算负担——生成候选框的有效运行时长仅为10ms。使用计算开销很大的非常深的模型[3],我们的方法在一个GPU的帧率仍然可以达到5fps(包含所有步骤),因此该模型从精度和性能上看都是可以实际应用的目标检测系统。我们同样发布了在MS COCO数据集[12]上的结果,并研究了使用COCO数据给PASCAL VOC带来的提升。公开代码地址:https://github.com/shaoqingren/faster_rcnn (in MATLAB), https://github.com/rbgirshick/py-faster-rcnn (in Python)。

先前已经发布了本文的一个早期版本[10]。从那以后,RPN和Fast R-CNN组成的框架被采用并且推广到了其他的场景中,例如3D目标检测[13],基于部分的检测[14],实例分割[15],图像字幕[16]。我们的检测系统快速有效,并且已经集成到商业系统中,例如Printrests,据说客户的参与度得到了提升。

在ILSVRC和COCO 2015竞赛中,Faster R-CNN和RPN的组合是ImageNet检测、ImageNet定位、COCO检测、COCO分割等几个项目第一名的基础。RPN完全是通过学习从数据中提取候选区域,因此可以更容易的从更深的网络和更有表达力的特征中受益 (例如[18]中采用的101层的残差网络)。Faster R-CNN和RPN也被其他一些领先的参赛者所使用。这些结果表明,该方法不仅在实际应用中是一种经济有效的解决方案,而且是提高目标检测精度的有效途径。

2. 相关工作

目标建议。 有大量的生成目标建议方法(生成候选框)的资料。 [19], [20], [21]中是对这些方法的全面的介绍和比较。广泛应用的目标建议方法包括基于超像素分组(例如,选择性搜索[4]、CPMC[22]、MCG[23])和基于滑动窗口(例如,窗口的物体性 objectness in window[24]、EdgeBoxes[6])。目标建议方法通常作为独立于检测器的外部模块来应用(例如,使用选择性搜索的目标检测、RCNN、Fast RCNN)。

目标检测中使用的深度网络。 R-CNN通过端到端的训练CNN实现将候选框分为目标类别和背景。R-CNN主要功能是一个分类器,不能够预测目标的边框(除非使用边框回归进行优化)。它的精度取决于生成候选框模块的性能,能够选出优质的候选框(参考[20]中的对比)。一些论文中提出了使用深度网络来预测物体边框的一些方法[25][9][26][27]。在OverFeat方法中[9],训练一个全连接层来为只有一个目标(假定只有一个)的定位任务预测框的坐标。随后该全连接层替换为卷积层来检测多类别的目标。MultiBox多框方法[26][27]使用网络来构造候选框,该网络最后的全连接层同时预测多个不知类别的框,扩展了OverFeat的"单框"模式的应用。这些不同类别的框等同于R-CNN[5]中的候选框。与我们的全卷积方案不同,MultiBox应用在单张图片的裁剪或者对一张大图片进行多次裁剪(例如,224x224)。MultiBox方法的候选框与检测网络之间并不共享特征。我们将在后面介绍我们的方法的上下文中更深入的讨论OverFeat和MultiBox。在我们开展工作的同时,开发出了DeepMask方法用于候选框的分割学习。

卷积共享计算以其高效准确的视觉识别得到了越来越多的关注。在OverFeat论文中[9]会计算图像金字塔的卷积特征进行分类、定位和检测。基于共享卷积特征图的自适应大小池化(SPP)[1]用于基于区域的目标检测[1][30]和语义分割[29]。Fast R-CNN[2]实现了使用共享特征完成端到端训练,并且展示了令人信服的精度和速度。
在这里插入图片描述

3. Faster R-CNN

我们的目标检测系统——Faster R-CNN,由两个模块组成:第一个模块是深度卷积网络,用来生成候选框;第二个模块是Fast R-CNN检测器[2],使用候选框实现检测。整个系统是单一并且是统一的目标检测网络(图2)(一句话:从头到尾是一个整体)。用最近流行的神经网络术语"注意力"机制来说,RPN模块告诉Fast R-CNN要往图片的哪里看。在3.1章节我们讲介绍生成候选框网络的设计的特性。在3.2章节我们开发了使用共享特征训练两个模块的算法。

3.1 Region Proposal Network

Region Proposal Network(RPN)接收一张任意大小的图片作为输入,输出一组矩形候选框,每个候选框还有一个目标得分。我们使用一个全是卷积的网络对该过程进行抽象建模,也是本章节将要讲的。因为我们的最终目标是RPN与Fast R-CNN检测网络共享计算,我们假设两个网络共享一组卷积层。在实验中,我们研究了拥有5个共享卷积层的Zeiler and Fergus模型[32](ZF)和拥有13个共享卷基层的Simonyan and Zisserman模型[3] (VGG6)。

为了生成候选框,我们在最后一个共享卷基层的输出特征图上加了一个小的滑动网络。(好好理解一下这里生成proposal的过程)这个小网络将输入的卷积特征图中的一个nxn的空间窗口作为输入(个人理解:就是滑动遍历最后一个特征图,每次读取大小为nxn)。每一个滑动窗口都映射到一个低纬度的特征(ZF:256d,VGG:512d,后面接一个ReLU[33])。然后将该特征输入到两个滑动的全连接层——一个边框回归层(reg)和一个分类层(cls)。在本文中我们取n=3,可以看到在输入图片上的有效感受野很大(ZF:171像素,VGG:228像素)。这个迷你网络在图三左侧进行了单独的描述。注意迷你网络是通过滑动窗口的方式来运行,全连接层在所以空间位置上共享。很自然的该架构有一个nxn的卷积层后面跟着两个并行的1x1的卷积层(分别对应reg和cls)。(个人理解:这段的意思主要是将通过卷积生成的特征图传给一个小的网络进行滑动遍历,得到一个低纬度的特征,然后讲得到的低纬度特征创给回归和分类两个分支进行处理)
在这里插入图片描述

3.1.1 锚点(Anchors)

在每个滑动窗口位置,我们同时预测多个候选框,每个位置候选框的最大个数用k表示。因此,reg有4k个输出对应到k个框,cls有2k个得分用来评估每个候选框是不是目标的可能性(为了实现简单我们使用二分类的softmax层,或者使用sigmode获得k个得分)。这k个候选框是对k个参考框(我们成为锚点)的参数化。锚点位于现在讨论的滑动窗口的中心,每个锚点都有几种尺度和纵横比(图三左侧)。默认情况下我们使用三种尺度和三种纵横比,每一个滑动位置会产生9个锚点。对于一个大小为WxH(通常~2400)的卷积特征图,总共会有WxHxk个锚点。

锚点的平移不变性(Translation-Invariant Anchors)
我们的方法一个很重要的特性是它的平移不变性,无论是锚点还是计算锚点对应候选框的计算函数都具有该特性。如果平移一个图片中的物体,那么候选框也应该会平移,使用同一个函数同样应该可以预测两个位置的候选框。我们的方法保证了这种平移不变性(与FCN[7]情况一样,我们的网络可以满足所有步长的平移不变性)。作为比较,MultiBox方法使用k-means来生成800个锚点,并且这些锚点不具有平移不变性。所以MultiBox不能保证图片中的物体平移后还能够得到相同的候选框。

平移不变性还可以减小模型的大小。MultiBox方法的全连接输出层输出是一个(4 + 1) × 800维,而我们的方法当取k=9个锚点时卷基层输出的是(4 + 2) × 9维。因此我们的输出层有2.8 × 104个参数(VGG16:512 × (4 + 2) × 9),比MultiBox输出层的参数数量少了两个数量级,MultiBox的输出层有6.1 × 106个参数(GoogleNet:1536 × (4 + 1) × 800)。如果把特征映射层也考虑在内,我们生成候选框所用的参数仍然比MultiBox少一个数量级。我们期望我们的方法在小数据集例如PASCAL VOC上有更小的过拟合风险。

多尺度锚点作为回归参考(Multi-Scale Anchors as Regression References)
我们的锚点设计为解决多尺度(和纵横比)提出新的方案。就像图1中展示的,现在已经有两种多尺度预测的流行方法。第一种方法基于图片/特征金字塔,例如:DPM [8] 和基于CNN的方法 [9] [1] [2]。图片按照多种尺度被缩放,然后为每个尺度(图1 a)分别计算特征(HOG[8] or 深度卷积网络 [9] [1] [2])。该方法经常使用,但是比较耗时。第二种方法是在特征图上使用多种尺度的滑动窗口(和/或纵横比)。 例如,在DPM[8]中,不同纵横比的模型分别使用不同的滤波器来训练(例如5x7和7x5)。如果用这种方式实现多尺度的话,可以把它看做是“过滤器金字塔”(图1b)。第二种方法通常和第一种方法联合使用[8]。

作为比较,我们基于锚点的方法基于锚点金字塔实现,该方法的效率更高。我们的方法对以多种尺度和纵横比锚点为参考的框进行分类和边框回归(个人理解:这里指一个锚点可能对应多个不同尺度和纵横比的候选框)。它只依赖图片和一个尺度的特征值,和一种大小的滤波器(特征值上的活动窗口)。我们通过实验展示了这种方案对解决多尺度和多尺度问题的效果(表8)。

由于这种基于锚的多尺度设计,我们可以简单地使用在单尺度图像上计算的卷积特征,Fast R-CNN检测器也是这样做的[2]。多尺度锚点的设计是共享特征来解决多尺度问题而且不增加额外成本的关键。

在这里插入图片描述

3.1.2 损失函数(Loss Function)

为了训练RPN,我们为每一个锚点(anchor)分配一个二分类的标签(区分是不是一个物体)。我们为两类锚点(anchor)分配正标签(也就是正样本):(i)与标注框(ground-true box)有最大的交并比(Intersection-over-Union IoU)的锚点;(ii)与标注框的IoU大于0.7的锚点。(疑问:计算IoU应该是根据锚点生成的候选框吧,anchor只是窗口的中心点,要怎么计算??)。注意,一个标注框可能会为多个锚点分配正标签。通常第二个条件就足以决定哪些是正样本;我们仍然采用第一个条件是因为在极少数的情况下,第二个条件可能找不到正样本。如果一个锚点(anchor)与所有的标注框的IoU都小于0.3,就给该无正样本锚点分配负标签。既不是正标签也不是负标签的锚点对于训练没有任何作用。(注意划分正负样本的方法

有了这些定义,我们根据Fast R-CNN的多任务损失函数定义了我们要最小化的目标函数。我们针对一张图片的损失函数计算方法如下:
在这里插入图片描述
这里,i指的是一个小批量数据中一个anchor的下标,pi是该anchor是一个目标的概率。如果anchor分配的是正标签则标注框标签p*i值为1,否则p*i值为0。ti是预测边框的四个值组成的vector,t*i是标签为正的anchor对应标注框。分类损失函数Lcls是一个二分类的log损失函数(是or不是物体)。回归的损失函数,我们使用Lreg(ti, t*i) = R(ti − t*i),其中R是鲁棒的损失函数(smooth L1)在[2]中定义。多项式p*iLreg的含义是回归的loss只有对标签为正的anchor(p*i = 1)起作用,其他情况(p*i = 0)是不起作用的。cls和reg层的输出分别包含{pi}和{ti}。(个人理解:cls的返回值是不同分类的概率,reg的返回值是预测坐标)

这两个多项式分别使用Ncls和Nreg进行归一化,并且使用平衡参数λ进行加权控制。在我们当前的实现中(与发布的代码一样),公式1中的cls多项式使用小批量数据集的大小(即,Ncls = 256)进行归一化,reg多项式使用anchor位置数量(即,Nreg ∼ 2, 400)进行归一化。默认情况下我们取λ = 10,因此cls和reg的权重大致相等。我们通过实验表明,结果对λ在一个大范围内的取值不敏感(表9)。我们还注意到上面降到的归一化并不是必须的,可以进行简化。

对于边框回归,我们将4个坐标进行参数化[5],如下:
在这里插入图片描述
这里,x,y,w,h分别表示了框的中心点坐标和它的宽和高。变量x,xa,x*分别表示预测框、锚点框、标注框的值(y,w,h也类似)。这个可以看做是一个锚点框到标注框的边框回归。

但是,我们边框回归的实现方法与前面基于RoI(Region of Interest)方法[1][2]不同。在[1][2]中,边框回归是对任意大小的RoI池化后的特征上执行的,并且回归的权重是不同大小的区域共享的。在我们的公式中,回归用的是特征图上空间大小相同(3x3)的特征值。(这里还没理解透)。考虑到大小的变化,我们训练了k个边框回归。每一个回归对应一个尺度和一个纵横比,这k个回归并不共享权重。因此,由于anchor的设计,即使特征值是固定大小/尺度,仍然可以预测不同大小的框。

在这里插入图片描述

3.1.3 训练RPN(Training RPNs)

RPN网络可以通过反向传播和随机梯度下降(SGD)进行端到端的训练[35]。我们遵循[2]中"以图片为中心"的采样策略来训练该网络。每一个小批量数据都来自同一张图片,该图片包含很多的正样本anchor和负样本anchor。可以对所有anchor的损失函数进行优化,但是结果会偏向负样本,因为负样本的数量占多数。取而代之的是,我们从一张图片中随机抽样256个anchor来计算一个小批量数据的loss值,这里选取的正样本和负样本的比例为1:1。如果一张图片中正样本的数量少于128个,则用负样本来补充

我们使用均值为0、标准差为0.01的高斯分布来随机初始化所有新层的权重。所有的其他层(即共享卷基层)通过使用ImageNet分类进行预训练的模型进行初始化,这也是通常的做法[5]。我们调整ZF的所有层和VGG中conv3_1及以上的层来节约内存[2]。我们在PASCAL VOC数据集上使用0.001的学习率训练了钱6万个batch,然后使用0.0001训练了后面的2万个batch。我们使用的momentum为0.9,weight decay为0.0005[37]。我们使用Caffe来实现[38]。

3.2 RPN和Fast R-CNN共享特征值(Sharing Features for RPN and Fast R-CNN)

到目前为止,我们描述了怎么训练一个生成候选框的网络,不考虑后面使用这些候选框的基于区域目标检测的CNN网络。对于检测网络,我们使用Fast R-CNN[2]。下面我们将介绍由RPN和Fast R-CNN组成的统一网络的训练算法,RPN和Fast R-CNN是共享卷基层的(图2)。

RPN和Fast R-CNN都是分别进行训练的,并且以不同的方式来修改他们的卷积层。因此,我们需要开发一种技术可以使两个网络共享卷基层,而不是学习两个独立的网络。我们讨论了三种使用共享特征来训练网络的方法:

(i)交替训练。在该解决方案中,我们首先训练RPN,然后使用RPN创建的候选框训练Fast R-CNN。然后再使用Fast R-CNN修改后的网络来初始化RPN,这个过程是迭代进行的。本文中的所有实验都是用的该方案。

(ii)近似联合训练。在该解决方案中,RPN和Fast R-CNN网络会在训练时合并为一个网络,如图2所示。在每一个SGD的迭代中,前向传播生成候选框,这些候选框在训练Fast R-CNN检测器的时候可以认为是固定的、已计算好的。反向传播照常执行,共享卷基层要将从RPN loss和Fast R-CNN loss获得的反向传播信号组合在一起。该方案很容易实现。但是该方案忽略了候选框坐标的导数,候选框坐标也是网络的响应,因此说它是近似的。通过实验我们发现该方案可以获得与交替训练接近的结果,而且训练时间减少了25%-50%。我们发布的Python代码中已包含了该方案。(总起来说就是得到的结果不比交替训练差,还能节省很多时间

(iii)非近似联合训练。就像上面探讨的,RPN预测的边框也是输入的函数(有点拗口啊)。Fast R-CNN中的RoI池化层[2]接收卷积特征值和预测框作为输入,因此一个理论上有效的反向传播方法应该包含预测框坐标的梯度。这是一个很重要的问题,可以通过[15]中给出的"RoI Warping"层来解决,这已经超出了本文的范围。

4步交替训练。本文中,我们采用了一种实用的4步四步训练算法通过交替优化来学习共享特征。第一步,如3.1.3章节描述的方法来训练RPN网络。RPN网络使用ImageNet预训练的模型进行初始化,然后针对生成候选框任务进行端到端的微调。第二步,我们使用第一步RPN生成的候选框,由Fast RCNN训练一个单独的检测网络。该检测网络也是通过使用ImageNet预训练的模型进行初始化。此时,两个网络还不共享卷积层。第三步,我们使用检测网络来初始化RPN的训练,但是我们固定了共享的卷积层,只微调RPN独有的层。这时两个网络共享卷积层。最后,固定共享的卷积层,对Fast R-CNN网络独有的层进行微调。这样,两个网络共享卷积层并形成了统一的网络。像这样的交替训练可以运行更多的迭代,但是我们发现只有微不足道的提升。

在这里插入图片描述

3.3 实现细节(Implementation Details)

我们使用一种尺度的图片来训练和测试候选区域网络(RPN)和检测网络(Fast R-CNN)[1][2]。我们对图片进行缩放,使图片的短边s=600像素[2]。提取多种尺度的特征(使用图像金字塔)可能提升精度但是不能够很好的平衡速度和精度。在缩放后的图片上,ZF和VGG网络的最后一个卷基层的总步长是16像素,在典型的PASCAL 图像调整大小(~500x375)之前步长为~10像素。即使这么大的步长可以得到比较好的结果,但是更小的步长可以使精度得到进一步的提升。

对于锚点,我们使用三种尺度的框,面积分别是1282、2562、5122像素,和三种长宽比:1:1、1:2、2:1。这些超参数并不是为特定的数据集精心选择的,我们将在下一节中对它们的影响进行消融实验。如前所述,我们的方案不需要图像金字塔或滤波器金字塔来预测多尺度的区域,这样可以节省大量的运行时间。图片三(右侧)展示了我们的方法处理各种尺度和纵横比的能力。表1中展示了使用ZF网络学习到的每个锚点的候选框的平均大小。我们注意到,我们的算法可以实现比基础感受野更大的预测。这样的预测并非不可能——如果只看到物体的中间,人们仍然可以预测出该物体的大概范围。

超出图片边界的锚点框需要小心的处理。在训练过程中,我们忽略了所有超出边界的锚点,这样他们就不会对loss有任何的影响。对于一张典型的1000x600的图片,总共大约有20000(≈ 60 × 40 × 9,这个怎么算的呢??)个锚点。忽略掉超出边界的锚点后,每张图片大约有6000个锚点进行训练。如果训练中不排除超出边界的锚点,这会在目标中引入大而且很难校正的错误项,并且训练也不会收敛。但是,在测试阶段我们仍然对整张图片进行全卷积的RPN操作。这样可能会生成超出边界的候选框,我们将这些候选框进行裁剪,只保留图片范围内的区域。

一些RPN的候选框之间高度重叠。为了减少冗余,我们基于候选框的cls得分执行非极大值抑制(NMS)。我们将NMS的IoU的阈值设置为0.7,这样每张图片还剩下大约2000个候选框。下面我们将会展示,NMS对最终的检测精度没有影响,但是却大大的减少了候选框的数量。在NMS之后,我们使用排名前N的候选框进行检测,随后我们使用2000个RPN的候选框来训练Fast R-CNN,但是在测试时使用不同数据的候选框。
在这里插入图片描述

4. 实验

4.1 PASCAL VOC上的实验

我们在PASCAL VOC 2007检测基准上对我们的方法进行了综合评估[11]。该数据集由20个对象类别的大约5k个训练图像和5k个测试图像组成。我们还提供了一些模型基于PASCAL VOC 2012基准的测试结果。至于预训练的ImageNet网络,我们使用“快速”版本的ZF网络,该网络包含5个卷积层和3个全连接层;公开版本的VGG16模型有13个卷积层和3个全连接层。我们主要评估检测的平均精度(mAP),因为这是目标检测的实际标准(而不是关注候选目标代理指标)。

表2(上面)展示了Fast R-CNN使用不同生成候选框方法的训练和测试结果。这些结果都是使用ZF网络。对于Selective Search(SS)[4]方法,我们使用“fast”模式生成大约2000个候选框。对于EdgeBoxes(EB)[6],我们使用EB的默认配置并将IoU调整为0.7来生成候选框。在Fast R-CNN上SS的mAP为58.7%,EB的mAP为58.6%。RPN + Fast R-CNN取得了更好的结果,在最多使用300个候选框(RPN中候选框的数量指的是每张图片的最大数量即300个。但是执行NMS后RPN生成的候选框数量会更少,因此平均数据会更小一些)的情况下mAP达到了59.9%。由于共享卷积计算,使用RPN比使用SS和EB的检测系统更快,更少的候选框也减少了区域方面的全连接计算成本(表5)。
一句话:RPN比SS和EB更快更准,就是好就是好就是好

RPN上的消融实验。 为了研究RPN作为生成候选框方法的行为,我们进行了几项消融实验。第一,我们展示RPN和Fast R-CNN检测网络共享卷积层的影响。为了达到该目的,我们只进行了4步训练的前两步。使用分开的网络使结果略微的下降到了58.7%(RPN+ZF,unshared,表2)。我们发现,出现这种情况的原因是在第三步中检测网络修改了特征值可以用来对RPN进行微调,这样使候选框的质量得到了提高。总结一下:共享卷积使两个网络相互影响,提升了候选框质量

下一个,我们分析一下RPN对训练Fast R-CNN检测网络的影响。为了达到目的,我们使用2000个SS候选框和ZF网络来训练Fast R-CNN。在测试阶段我们将检测器固定,替换候选区域。在该实验中,RPN与检测器不共享特征值。

在测试时用300个RPN生成的候选框替换SS候选框取得的mAP为56.8%。mAP下降的原因是训练和测试的候选框的不一致。这个结果将作为下面比较的基线。

让人有些吃惊的是,在测试时使用排名前100的候选框仍然可以得到一个不错的结果(55.1%),这说明排在前面的RPN候选框是比较准确的。另一个极端实验,使用排名前6000的RPN候选框(不使用NMS),得到一个差不多的mAP(55.2%)。这说明NMS并不会损害精度,并且可以减少误报

接下来,我们分别研究了RPN的cls和reg两个输出分别承担的角色,通过在测试阶段关闭其中一个来实现。将测试阶段中cls移除以后(这样就不使用NMS和排名了),我们从未排序的区域中随机算账N个作为候选框。当N取1000时,mAP几乎没有变化(55.8%),但是当N取100时mAP下降到44.6%。这说明cls的得分可以用来准确指示排名最高的候选框

另一方面,当在测试阶段讲reg层移除后(这样候选框就是锚点框),mAP掉到了52.1%。这说明高质量的候选框主要以来回归后的框边界。锚点框(anchor box)虽然有多种尺度和纵横比,但是对于检测精度还是不够的

我们还评估了更强大的网络对RPN候选框质量的影响。我们使用VGG16来训练RPN,仍然商用SS+ZF的检测器,mAP从56.8%(使用RPN+ZF)提升到了59.2%(使用RPN+VGG)。这是一个令人鼓舞的结果,因为这说明RPN+VGG生成的候选框质量要比RPN+ZF的要高。由于RPN+ZF的方案与SS相比具有竞争性(在训练和测试时保持一致,两者均为58.7%),我们预计RPN+VGG将优于SS。下面的实验证明了这个假设的正确性。

VGG16的性能。表3中展示了使用VGG时的候选框和检测的结果。使用RPN+VGG,在不共享特征的时候结果是68.5%,稍微比SS基线高一点。就上上面说的,这是因为RPN+VGG生成的候选框比SS的更准确(应该是回归后的位置)。与SS不同,SS是预先定义好的,而RPN是可以动态训练并且可以从更好的网络中获益。对于特征共享的版本,结果是69.9%——比强大的SS基线表现更好,而且生成候选框几乎没有计算成本。我们进一步使用PASCAL VOC 2007 trainval和2012 trainval的合集来训练RPN和检测网络。得到的mAP为73.2%。图5中展示了在PASCAL VOC 2007测试集上的一些结果。在PASCAL VOC2012测试集上(表4),我们的方法可以得到mAP为70.4%,模型是使用VOC 2007 trainval+test 和 VOC 2012 trainval的合集进行训练的。表6和表7展示了一些细节的数据。
在这里插入图片描述在这里插入图片描述在表5中我们汇总了整个目标检测系统的运行时间。SS根据内容需要1-2秒(平均约1.5秒),Fast R-CNN + VGG16在使用2000个SS候选框时使用320ms(如果在全连接层使用SVD则花费223ms)(SVD:奇异值分解)。我们使用VGG的系统生成候选框和检测总共需要198ms。由于卷积特征值共享,RPN只需要单独花费10ms来计算额外的添加的层。我们区域维度的计算也更低,这要归功与更少的候选框(每张图片300张)。我们的系统使用ZF网络的帧率为17fps。

对超参数的敏感性。 在表8中我们探讨了不同anchor的设置。默认情况下我们使用三种尺度和三种纵横比(在表8中mAP为69.9%)。如果每一个位置只用一个anchor,则mAP会下降3-4%。如果使用三种尺度(一种纵横比)或者三种纵横比(一种尺度)mAP都会得到提升,证明使用多种尺寸的anchor作为回归参考是一种有效的解决方案。在该数据集上使用三种尺度一种纵横比(69.8%)与三种尺度三种纵横比得到了一样好的结果,这说明尺度和纵横比对于检测精度来说是不可分离的。 但是我们仍然在设计中采用这两个维度,以保持系统的灵活性。

在表9中,我们比较了等式1中λ取不同值的情况。默认情况下,我们取λ= 10,这使等式1中的两项在归一化后具有大致相等的加权。表9表明,当λ在大约两个数量级(1到100)的范围内时,我们的结果仅受到很小的影响(约1%)。 这表明结果对λ的一个很大范围的取值都不敏感。
在这里插入图片描述

Recall-to-IoU分析。接下来我们计算真值框在不同IoU比率下候选框的召回率。值得注意的是Recall-to-IoU指标与最终的检测精度之间只是松散的关系[19][20][21]。使用该指标来诊断候选框生成方法比评估更合适一些。(个人理解:这里诊断应该是用来找出生成候选框中的问题)

在图4中,我们展示了使用300,1000,2000个候选框的结果。我们与SS和EB进行了比较,N个候选框是选取的基于这些方法产生的置信度排名前N的候选框。这些图表明,当候选框的数量从2000降到300时,RPN表现的更好。就像我们之前分析的,这个特点主要归功于RPN中的cls。当候选框减少时SS和EB的召回率比RPN下降的更快。
在这里插入图片描述
一阶段检测 VS 两阶段候选生成 + 检测。 在OverFeat的论文[9]中提出了一个检测方法,在对卷积的特征图上的滑动窗口进行回归和分类。OverFeat是一阶段的,特定类别的检测流水线;而我们的方法是二阶段瀑布式的,由特定类别的候选框和特定类别的检测组成。在OverFeat中,区域特征是通过在一个尺度金字塔(就是包含多种尺度的)上执行滑动窗口来获得的。这些特征同时确定对象的位置和类别。在RPN中,特征来自于正方形(3x3)的滑动窗口,然后预测相对于anchor的不同尺度和长宽比的候选框。虽然两个方法都使用滑动窗口,生成候选框的任务只是Faster R-CNN的第一阶段——下游的Fast R-CNN检测器只关注候选框并对候选框进行筛选。在我们瀑布流程的第二阶段,区域特征是通过对候选框的自适应池化获得的,这些候选框能够更好的覆盖区域特征。我们相信这些特征能够带来更高的检测精度。

为了比较一阶段和两阶段的检测系统,我们使用一阶段的Fast R-CNN模拟了OverFeat系统(从而也规避了其他执行细节上的差异)。在该系统中,使用三种尺度(128,256,512)和三种纵横比(1:1,1:2,2:1)的密集滑动窗口来模拟"候选框"。Fast R-CNN通过训练来预测这些滑动窗口属于指定类别的得分和边框回归的位置。因为在OverFeat中使用了图像金字塔,我们同样提取五种尺度的卷积特征进行评估。我们使用这五种尺度的方式与[1][2]中一样。

表10中比较了两阶段系统和两个一阶段系统的变体。使用ZF模型,一阶段系统的mAP为53.9%。这比两阶段系统(58.7%)低了4.8%。该实验证明了候选区域算法+目标检测这种级联系统的有效性。在论文[2][39]中发表了类似的发现,他们使用滑动窗口来替代生成候选框的SS,都导致了6%的精度下降。我们也注意到一阶段系统由于需要处理大量的候选框导致运行也会慢一些。
在这里插入图片描述

4.2 在MS COCO上的实验

我们给出了在Microsoft COCO数据集上的更多结果[12]。该数据集包含80种类别的物体。我们使用训练即的80000张图片、验证集的40000张图片、和测试集的20000张图片进行实验。我们评估了IoU∈ [0.5 : 0.05 : 0.95]的平均mAP(COCO的标准指标,可以简写为mAP@[.5, .95])和mAP@0.5(PASCAL VOC的指标)。

我们的系统为这个数据集做了一些小的改动。我们在8GPU的设备上训练我们的模型,小批量数据的大小RPN取8(每个GPU 1个),Fast R-CNN取16(每个GPU 2个)。RPN和Fast R-CNN都用0.003的学习率训练了240k个迭代,0.0003的学习率训练了80K个迭代。我们修改了学习率(起始学习率由0.001修改为0.003)是因为小批量数据的大小变化了。对于锚点,我们使用三种纵横比和四种尺度(添加了642),主要目的是处理该数据集中的小目标。另外,Fast R-CNN阶段的负样本定义与真值框的IoU由[1][2]中的[0.1, 0.5)替换为了[0, 0.5)。我们注意到,在SPPnet系统中[1],[0.1, 0.5)的负样本用来进行网络微调,但是[0, 0.5)的负样本在SVM中作为困难负样本使用。但是Fast R-CNN网络[2]放弃了SVM,所以[0, 0.1)样本永远不会被使用。将[0, 0.1)的负样本包含进去以后提升了Fast R-CNN和Faster R-CNN在COCO数据集上的mAP@0.5精度(但对PASCAL VOC的影响可以忽略不计)。

剩下的实现细节与PASCAL VOC上的一致。特别是,我们继续使用300个候选框和单一尺度(s = 600)进行测试。在COCO数据集上的测试时间依然是200ms一张图片。

在表11中我们第一次发布了使用本文中实现的Fast R-CNN系统[2]的结果。我们的Fast R-CNN在测试集上的基线是39.3% mAP@0.5,比[2]中发布的高。我们推测造成这种差距的主要原因是负样本的定义不同以及小批量数据大小的变化。我们还注意到mAP@[.5,.95]是差不多的。
在这里插入图片描述接下来评估了我们的Faster R-CNN系统。使用COCO训练集来训练,Faster R-CNN在COCO测试集上达到了42.1% mAP@0.5 和 21.5% mAP@[.5, .95]的精度。这比相同约束下Fast R-CNN的mAP@0.5和mAP@[.5, .95]分别高了 2.8%和2.2%(表11)。这表明RPN在更高的IoU阈值的情况下对提升定位的精度表现出色。使用COCO的trainval数据集进行训练,Faster R-CNN在COCO的测试集上可以达到42.7% mAP@0.5和21.9% mAP@[.5, .95]的精度。图6中显示了在COCO测试集上的一些结果。

Fast R-CNN在ILSVRC和COCO2015上的比较,我们已经证明Faster R-CNN从更好的特征值受益更多,这归功于RPN完全是通过神经网络学习来生成候选框。即使当深度增加到100层以上时,该发现仍然有效[18]。仅仅使用101层的残差网络(ResNet-101) [18]替换VGG16,Faster R-CNN在COCO val数据集上的mAP从41.5%/21.2% (VGG-16)提升到了48.4%/27.2% (ResNet-101)。把其他一些改进叠加到Faster R-CNN上,He等人[18]在COCO测试开发集上获得了55.7%/34.9%的单模型结果和59.0%/37.4%的集成结果,这也获得了COCO 2015目标检测竞赛的第一名。相同的系统[18]同时也获得了ILSVRC 2015目标检测竞赛第一名,超过了第二名8.5%。RPN也是ILSVRC 2015定位和COCO 2015分割比赛中第一名获奖作品的组成部分,详情请参见[18]和[15]。

4.3 从 MS COCO 到 PASCAL VOC

大规模数据对于提升深度神经网络具有重要意义。接下来,我们研究MS COCO数据集如何帮助提高PASCAL VOC的检测性能。

我们直接使用COCO的检测模型在PASCAL VOC上进行评估,没有使用PASCAL VOC数据进行任何的微调,将该数据作为基线。这也评估是可行的,因为COCO数据集的物体类别是PASCAL VOC的一个超集。那些COCO特有的类别会在实验中被忽略掉,softmax层也只对PASCAL VOC的20个种类和背景框有效。在PASCAL VOC 2007测试集上,此设置下的mAP为76.1%(表12)。尽管训练没有利用PASCAL VOC数据,但这一结果比VOC07+12训练的结果(73.2%)要好得多。

接下来我们使用VOC数据集对COCO检测模型进行了微调。在该实验中,COCO模型替代了ImageNet预训练模型(用于初始化网络权重),并根据3.2节的叙述对Faster R-CNN系统进行了微调。这样的操作使在PASCAL VOC 2007测试集上的mAP达到了78.8%。COCO数据集中的额外数据使mAP提升了5.6%。表6显示,用COCO+VOC训练的模型在PASCAL VOC 2007上的每个类别都能取得最好的AP。在PASCAL VOC 2012测试集(表12和表7)上也观察到了类似的提升。我们注意到,在测试阶段获得这么好的结果的速度仍然是每幅图像200ms左右。
在这里插入图片描述在这里插入图片描述

5. 结论

我们展示了RPN可以快速且准确的生成候选区域。通过与下游的检测网络共享卷积特征,生成候选区域步骤几乎没有计算成本。我们的方法使一个统一的、基于深度学习的目标检测网络以接近实时的帧率运行的检测系统成为可能。通过训练得到的RPN还提高了候选框的质量,从而提高了整体目标检测精度。

参考文献

[1] K. He, X. Zhang, S. Ren, and J. Sun, “Spatial pyramid pooling in deep convolutional networks for visual recognition,” in European Conference on Computer Vision (ECCV), 2014.

[2] R. Girshick, “Fast R-CNN,” in IEEE International Conference on Computer Vision (ICCV), 2015.

[3] K. Simonyan and A. Zisserman, “Very deep convolutional networks for large-scale image recognition,” in International Conference on Learning Representations (ICLR), 2015.

[4] J. R. Uijlings, K. E. van de Sande, T. Gevers, and A. W. Smeulders, “Selective search for object recognition,” International
Journal of Computer Vision (IJCV), 2013.

[5] R. Girshick, J. Donahue, T. Darrell, and J. Malik, “Rich feature hierarchies for accurate object detection and semantic segmentation,” in IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2014.

[6] C. L. Zitnick and P. Dollár, “Edge boxes: Locating object proposals from edges,” in European Conference on Computer Vision(ECCV),2014.

[7] J. Long, E. Shelhamer, and T. Darrell, “Fully convolutional networks for semantic segmentation,” in IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2015.

[8] P. F. Felzenszwalb, R. B. Girshick, D. McAllester, and D. Ramanan, “Object detection with discriminatively trained part-based models,” IEEE Transactions on Pattern Analysis and Machine Intelligence (TPAMI), 2010.

[9] P. Sermanet, D. Eigen, X. Zhang, M. Mathieu, R. Fergus, and Y. LeCun, “Overfeat: Integrated recognition, localization and detection using convolutional networks,” in International Conference on Learning Representations (ICLR), 2014.

[10] S. Ren, K. He, R. Girshick, and J. Sun, “FasterR-CNN: Towards real-time object detection with region proposal networks,” in
Neural Information Processing Systems (NIPS), 2015.

[11] M. Everingham, L. Van Gool, C. K. I. Williams, J. Winn, and A. Zisserman, “The PASCAL Visual Object Classes Challenge 2007 (VOC2007) Results,” 2007.

[12] T.-Y. Lin, M. Maire, S. Belongie, J. Hays, P. Perona, D. Ramanan, P. Dollár, and C. L. Zitnick, “Microsoft COCO: Common Objects in Context,” in European Conference on Computer Vision (ECCV), 2014.

[13] S. Song and J. Xiao, “Deep sliding shapes for amodal 3d object detection in rgb-d images,” arXiv:1511.02300, 2015.

[14] J. Zhu, X. Chen, and A. L. Yuille, “DeePM: A deep part-based model for object detection and semantic part localization,” arXiv:1511.07131, 2015.

[15] J. Dai, K. He, and J. Sun, “Instance-aware semantic segmentation via multi-task network cascades,” arXiv:1512.04412, 2015.

[16] J. Johnson, A. Karpathy, and L. Fei-Fei, “Densecap: Fully convolutional localization networks for dense captioning,” arXiv:1511.07571, 2015.

[17] D. Kislyuk, Y. Liu, D. Liu, E. Tzeng, and Y. Jing, “Human curation and convnets: Powering item-to-item recommendations on pinterest,” arXiv:1511.04003, 2015.

[18] K. He, X. Zhang, S. Ren, and J. Sun, “Deep residual learning for image recognition,” arXiv:1512.03385, 2015.

[19] J. Hosang, R. Benenson, and B. Schiele, “How good are detection proposals, really?” in British Machine Vision Conference (BMVC), 2014.

[20] J. Hosang, R. Benenson, P. Dollar, and B. Schiele, “What makes for effective detection proposals?” IEEE Transactions on Pattern Analysis and Machine Intelligence (TPAMI), 2015.

[21] N. Chavali, H. Agrawal, A. Mahendru, and D. Batra, “Object-Proposal Evaluation Protocol is ’Gameable’,” arXiv: 1505.05836, 2015.

[22] J. Carreira and C. Sminchisescu, “CPMC: Automatic object segmentation using constrained parametric min-cuts,” IEEE Transactions on Pattern Analysis and Machine Intelligence (TPAMI), 2012.

[23] P. Arbelaez, J. Pont-Tuset, J. T. Barron, F. Marques, and J. Malik, “Multiscale combinatorial grouping,” in IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2014.

[24] B. Alexe, T. Deselaers, and V. Ferrari, “Measuring the objectness of image windows,” IEEE Transactions on Pattern Analysis and Machine Intelligence (TPAMI), 2012.

[25] C. Szegedy, A. Toshev, and D. Erhan, “Deep neural networks for object detection,” in Neural Information Processing Systems (NIPS), 2013.

[26] D. Erhan, C. Szegedy, A. Toshev, and D. Anguelov, “Scalable object detection using deep neural networks,” in IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2014.

[27] C. Szegedy, S. Reed, D. Erhan, and D. Anguelov, “Scalable, high-quality object detection,” arXiv:1412.1441 (v1), 2015.

[28] P. O. Pinheiro, R. Collobert, and P. Dollar, “Learning to segment object candidates,” in Neural Information Processing Systems (NIPS), 2015.

[29] J. Dai, K. He, and J. Sun, “Convolutional feature masking for joint object and stuff segmentation,” in IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2015.

[30] S. Ren, K. He, R. Girshick, X. Zhang, and J. Sun, “Object detection networks on convolutional feature maps,” arXiv:1504.06066, 2015.

[31] J. K. Chorowski, D. Bahdanau, D. Serdyuk, K. Cho, and Y. Bengio, “Attention-based models for speech recognition,” in Neural Information Processing Systems (NIPS), 2015.

[32] M. D. Zeiler and R. Fergus, “Visualizing and understanding convolutional neural networks,” in European Conference on Computer Vision (ECCV), 2014.

[33] V. Nair and G. E. Hinton, “Rectified linear units improve restricted boltzmann machines,” in International Conference on Machine Learning (ICML), 2010.

[34] C. Szegedy, W. Liu, Y. Jia, P. Sermanet, S. Reed, D. Anguelov, D. Erhan, and A. Rabinovich, “Going deeper with convolutions,” in IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2015.

[35] Y. LeCun, B. Boser, J. S. Denker, D. Henderson, R. E. Howard, W. Hubbard, and L. D. Jackel, “Backpropagation applied to handwritten zip code recognition,” Neural computation, 1989.

[36] O. Russakovsky, J. Deng, H. Su, J. Krause, S. Satheesh, S. Ma, Z. Huang, A. Karpathy, A. Khosla, M. Bernstein, A. C. Berg, and L. Fei-Fei, “ImageNet Large Scale Visual Recognition Challenge,” in International Journal of Computer Vision (IJCV), 2015.

[37] A. Krizhevsky, I. Sutskever, and G. Hinton, “Imagenet classification with deep convolutional neural networks,” in Neural Information Processing Systems (NIPS), 2012.

[38] Y. Jia, E. Shelhamer, J. Donahue, S. Karayev, J. Long, R. Girshick, S. Guadarrama, and T. Darrell, “Caffe: Convolutional architecture for fast feature embedding,” arXiv:1408.5093, 2014.

[39] K. Lenc and A. Vedaldi, “R-CNN minus R,” in British Machine Vision Conference (BMVC), 2015.

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

相关文章

  1. 庆祝一下,英特尔(Intel)有史以来第三次换标

    【全球财经观察 | 新闻速递】9月2日,英特尔(Intel)公布了全新Logo,具有极简风格,这也是英特尔有史以来第三次换标。新Logo覆盖到了英特尔整个品牌范围,从英特尔至强服务器到其Optane存储芯片的所有内容都将采用这种简约设计。新Logo字体相比之前更加方正,同时也保留了之前…...

    2024/5/4 6:21:42
  2. 计系2复习(4)存储:磁盘存储与cache

    目录前言磁盘存储磁盘容量磁盘读取速度cache连续内存访问题目1234 前言 这一章节主要介绍两种存储器,磁盘和cache,其中磁盘用以存储大量静态数据,而cache是高速缓存,用于cpu快速读取数据。 复习完了 摸了 磁盘存储 懂的都懂磁盘由多个盘片组成,而一个盘片往往有两个盘面,…...

    2024/4/13 15:46:19
  3. 《动手学深度学习》(PyTorch版)代码注释 - 55 【Text_sentiment_classification(textCNN)】

    目录说明配置环境此节说明代码 说明 本博客代码来自开源项目:《动手学深度学习》(PyTorch版) 并且在博主学习的理解上对代码进行了大量注释,方便理解各个函数的原理和用途 配置环境 使用环境:python3.8 平台:Windows10 IDE:PyCharm 此节说明 此节对应书本上10.8节 此节功能…...

    2024/5/4 6:44:25
  4. [rust-19] 关于HashMap

    一个例子说明use std::collections::HashMap;fn main(){let mut test_hash = HashMap::new();test_hash.insert("item1", 5i32);let y1 = test_hash.entry("item1").or_default();/*or_default函数,如果取不到值,则返回默认值如果屏蔽这一句,输出结果是…...

    2024/4/11 15:34:25
  5. 数据表设计

    一、配置MySQL数据表 添加sql表: “sys_dept”,“sys_dict”,“sys_dict_type”,“sys_file_info”,“sys_login_log”,“sys_menu”,“sys_operation_log”,“sys_position”,“sys_relation”,“sys_role”,“sys_user”,“sys_user_pos” 二、添加相关依赖 在项目pom.xml文…...

    2024/5/4 7:42:54
  6. 2020-09-04 Mysql InnoDB引擎的行锁和表锁

    InnoDB与MyISAM的最大不同有两点:一是支持事务(TRANSACTION);二是采用了行级锁。行级锁与表级锁本来就有许多不同之处,另外,事务的引入也带来了一些新问题。下面我们先介绍一点背景知识,然后详细讨论InnoDB的锁问题。背景知识事务(Transaction)及其ACID属性事务是由一…...

    2024/4/17 18:22:31
  7. vue + element excel表格导出/上传预览

    1.导出a) 在项目中安装插件npm install -S file-saver xlsxnpm install -D script-loaderb)把这个文件放在下图所示位置再放一个百度云的链接链接:https://pan.baidu.com/s/1Dn2ps9pSypBHj2wnTCkifQ 提取码:csdn接下来:直接贴源码<template><div><el-butto…...

    2024/4/11 15:34:22
  8. [Java学习]使用 Files.newBufferedWriter(缓冲) 方法对文件追加内容

    https://blog.csdn.net/qq_39994174/article/details/102834398 java中try(){}的使用简要说明 所有实现Closeable的类声明都可以写在里面,最常见的是用于流操作、socket操作、新版的httpclient也可以;需要注意的是,try()的括号中可以写多行声明,每个声明的变量类型都必须是Clo…...

    2024/4/11 15:34:22
  9. js 数组源码解析

    pushconst array = [1, 2, 3, 4] // console.log(array.push(5,6,7)) // console.dir(array) /* 手写push源码实现1.在数组的末尾添加2.可以一次添加多项不同类型的数据3.返回数组的长度*/ Array.prototype.myPush = function () {for (let i = 0; i < arguments.length; i+…...

    2024/4/27 0:44:21
  10. MyBatis:基本应用

    框架简介 SSM = Spring MVC + Spring + MyBatis 三层架构 软件开发常用的架构是三层架构,之所以流行是因为有着清晰的任务划分。一般包括以下三层:持久层:主要完成与数据库相关的操作,即对数据库的增删改查。因为数据库访问的对象一般称为 Data Access Object(简称 DAO),…...

    2024/4/11 18:54:24
  11. Mybatis框架(四)

    五、ResultMap结果集映射 解决 属性名 与 DB 字段名不一致的问题测试实体类字段不一致的情况 public class User {private int id;private String name;private String password; }出现的问题解决方法 1、起别名 SQL原生语句起别名<select id="getUserById" par…...

    2024/5/4 6:47:10
  12. MapStruct优雅的进行JavaBean转换

    第一次看到 MapStruct 的时候, 我个人非常的开心。因为其跟我内心里面的想法不谋而合。1 MapStruct 是什么?1.1 JavaBean 的困扰对于代码中 JavaBean之间的转换, 一直是困扰我很久的事情。在开发的时候我看到业务代码之间有很多的 JavaBean 之间的相互转化, 非常的影响观感…...

    2024/4/11 18:54:20
  13. MySQL事件定时器,定时查询一张表,将得到的结果插入一张新表

    需求分析 需要定时查询现有的一张表,然后将查询结果插入到另一张表。 查询的表结构(表名:mouse_tbl)如下图查询结果要插入的表(data_time)的结构如下:我们的需求是将表mouse_tbl中所有数据对应的用户id、日期、时间的小时查询出来,然后插入到data_time表中。 我们实际的需…...

    2024/4/20 20:45:02
  14. 浅谈vue中的几个重要的钩子函数

    生命周期 钩子函数一个组件从创建到销毁的过程就是生命周期。beforeCreate:创建前1、当前vue实例化的时候会做一个初始化的操作,在这个生命周期函数里面我们可以做初始化的loading2、在当前函数里面是访问不到data中的属性,但是可以通过vue的实例对象进行访问created:创建后…...

    2024/4/11 18:54:18
  15. 利用Pycharm在项目中搜索字符串

    问题 使用Pycharm作为Python IDE,有时需要查找某个字符串或者文本在项目中的哪个位置(哪个文件中)出现,比较常见的是在Debug时,根据logging信息,查找打印该log的代码在哪里,此时怎么查找呢?难道要凭猜测或者逐个文件找吗?No! 解决办法 利用Pycharm的Find in path功能…...

    2024/5/4 2:18:33
  16. 马斯克:人脑植入芯片时代来临!是否为黑客攻击大脑留下后门?

    马斯克:创造能够解决脑部/脊椎损伤问题的设备​ 美国当地时间8月28日,马斯克旗下的脑机接口公司Neuralink 举办发布活动,公开了可实际运作的Neuralink设备和自动植入手术设备。马斯克在发布会上表示,Neuralink的目的是创造能够解决脑部/脊椎损伤问题的设备,且能够舒适地放…...

    2024/5/3 0:11:32
  17. Go context详解

    什么是 context Go 1.7 标准库引入 context,中文译作“上下文”,准确说它是 goroutine 的上下文,包含 goroutine 的运行状态、环境、现场等信息。 context 主要用来在 goroutine 之间传递上下文信息,包括:取消信号、超时时间、截止时间、k-v 等。 随着 context 包的引入,…...

    2024/5/3 23:39:06
  18. 网易2020校招笔试 系统开发研发工程师(提前批)牛客练习 Apare_xzc

    网易2020校招笔试 系统开发研发工程师(提前批)练习 2020.9.410道选择,2道问答,4道编程 牛客链接<–编程题: 1. 小易的英语软件 小易是班级的英语课代表, 他开发了一款软件开处理他的工作。 小易的软件有一个神奇的功能,能够通过一个百分数来反应你的成绩在班上的位置。…...

    2024/4/21 8:26:20
  19. Grasshopper 二次开发 (C#) Part 5 - Tricks, 5.3 使用 C# 调用 Grasshopper 内的组件

    本博客内容正在持续更新,最后一次更新时间:2020.09.04 【说明】 1.本专栏的 Part 5 主要介绍作者在学习和实践中所遇到的一些问题的解决方案,如有差错或更优解,欢迎指正 2.您如果碰到有关 GH 二开的任何问题,欢迎在本专栏的任意一篇博文下留言交流 【本文重点】 1.查文档:…...

    2024/5/4 2:25:20
  20. MySQL安装及使用教程和Navicat 12 for MySQL安装

    1.下载MySQL MySQL下载 提取码:1024 2.MySQL安装与配置翻译:安装类型界面∶ (1)默认安装(Developer Default ) (2仅安装服务器(Server only ) (3)仅安装客户端(Client only ) (4)完全安装(Fuli) (5)自定义安装( Custom )安装要求检测界面:点击“Excute”,安装Microsoft visua…...

    2024/4/21 14:21:03

最新文章

  1. IDEA2024版本控制台乱码怎么解决?

    在使用最新版本的IDEA时&#xff0c;可能会遇到控制台输出乱码问题&#xff1f; 在网上找了很多办法&#xff0c;修改了IDEA的vmoptions文件也没有用,最后发现原来是要修改这里 Setting>>Build&#xff0c;Execution,Deployment>>Runnr中的VM Options配置&#xf…...

    2024/5/4 8:29:58
  2. 梯度消失和梯度爆炸的一些处理方法

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

    2024/3/20 10:50:27
  3. CTF之矛盾

    这一题就是php的弱比较“” 这里要求输入的不是数字&#xff0c;并且输入要为1才打印flag 那我们就输入一个1后面接随便什么字符&#xff0c;因为php的弱比较将字符与数字进行比较的时候&#xff0c;会把字符转换成数字再比较&#xff0c;当转换到字符时后面便都为空了 flag{…...

    2024/5/3 23:33:03
  4. Docker Desktop+WSL2安装到自定义路径

    现在大多数软件实在太“流氓”了&#xff0c;在安装过程中&#xff0c;根本不让你选择安装路径&#xff0c;默认安装到$HOME下&#xff08;windows C盘&#xff09;&#xff0c;随着软件的使用增多&#xff0c;可能磁盘空间不够&#xff0c;这个时候就想着&#xff0c;看看某些…...

    2024/5/2 2:42:35
  5. DevOps三步法之反馈:流动是油门,反馈是刹车

    打个比方&#xff0c;流动是油门&#xff0c;反馈是刹车。流动是关于行使&#xff0c;反馈是关于安全。车辆要想持续平稳运行&#xff0c;需要油门与刹车良好配合&#xff0c;否则就有可能车毁人亡。核电站需要使核反应处于临界状态&#xff0c;超出临界状态就是核爆炸这也需要…...

    2024/5/3 14:13:48
  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/3 11:50:27
  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/2 23:55:17
  9. TSINGSEE青犀AI智能分析+视频监控工业园区周界安全防范方案

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

    2024/5/3 16:00:51
  10. VB.net WebBrowser网页元素抓取分析方法

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

    2024/5/3 11:10:49
  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/3 21:22:01
  12. 【洛谷算法题】P5713-洛谷团队系统【入门2分支结构】

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

    2024/5/3 23:17:01
  13. 【ES6.0】- 扩展运算符(...)

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

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

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

    2024/5/3 13:26:06
  15. Go语言常用命令详解(二)

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

    2024/5/3 1:55:15
  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/4 2:14:16
  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/3 16:23:03
  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/3 1:55:09
  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/3 14:57:24
  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/4 2:00:16
  23. C++中只能有一个实例的单例类

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

    2024/5/3 22:03:11
  24. python django 小程序图书借阅源码

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

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

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

    2024/5/3 1:54:59
  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