Faster RCNN精读

news2024/11/20 13:29:55

Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks 

Faster R-CNN:使用区域建议网络实现实时目标检测

优异的网络模型总是经得起时间的推敲,Faster RCNN便是其中一员。

目录

一、摘要

二、结论

三、介绍和相关工作

四、Faster RCNN

(1)Region Proposal Networks

(2)Sharing Features for RPN and Fast R-CNN

五、部分实验结果和检测结果


一、摘要

最先进的目标检测网络依赖于区域建议算法来假设目标位置。SPPnet和Fast R- CNN等技术的进步降低了这些检测网络的运行时间,使得区域推荐计算成为瓶颈。在这项工作中,我们引入了一个区域建议网络( RPN ),它与检测网络共享全图像卷积特征,从而实现了几乎无成本的区域建议。RPN是一个全卷积网络,它同时预测每个位置的对象边界和对象得分。RPN经过端到端的训练,生成高质量的区域提案,供Fast R-CNN用于检测。 我们进一步通过共享它们的卷积特征将RPN和Fast R-CNN合并到一个网络中- -使用最近流行的具有"注意力"机制的神经网络术语,RPN组件告诉统一的网络在哪里看。对于非常深的VGG-16模型,我们的检测系统在GPU上的帧率为5fps(包括所有步骤),同时在PASCAL VOC 2007、2012和MS COCO数据集上达到了目前最好的目标检测精度,每幅图像仅有300个提议。在ILSVRC和COCO2015比赛中,Faster R - CNN和RPN是多条赛道获得第1名的基础。代码已公开发布。

二、结论

我们已经提出了RPNs用于高效和准确的区域提案生成。通过与下游检测网络共享卷积特征,区域建议步骤几乎无成本。我们的方法使一个统一的、基于深度学习的目标检测系统能够以接近实时的帧速率运行。学习的RPN还提高了区域建议的质量,从而提高了整体的目标检测精度。

三、介绍和相关工作

提出问题:最近的目标检测技术的进步是由区域推荐方法和基于区域的卷积神经网络的成功推动的。虽然基于区域的CNN如最初在R-CNN中开发的那样在计算上很昂贵,但由于在提案之间共享卷积,它们的成本已经大幅降低。最新的化身Fast R-CNN,在忽略区域建议所花费的时间的情况下,使用VGG达到接近实时的速度。现在,提案是最先进的检测系统中的测试时间计算瓶颈。

以往的解决方案:区域推荐方法通常依赖于廉价的特征和经济的推理方案。选择性搜索《Selective search for object recognition》是最流行的方法之一,它基于工程化的低层特征贪婪地合并超像素。然而,与高效的检测网络Fast R-CNN相比,选择性搜索的速度要慢一个数量级,在CPU实现中,每幅图像的速度为2秒。Edge Boxes目前在提案质量和速度之间提供了最佳折衷,每张图片0.2秒。尽管如此,区域推荐步骤仍然消耗与检测网络一样多的运行时间。人们可能会注意到,快速的基于区域的CNN利用了GPU,而研究中使用的区域建议方法是在CPU上实现的,使得这种运行时比较不公平。加速提案计算的一个显而易见的方法是将其重新实现为GPU。这可能是一个有效的工程解决方案,但重新实现忽略了下游的检测网络,因此错过了共享计算的重要机会。

我们的解决方案:在本文中,我们展示了一个带有深度卷积神经网络的算法更改计算提议--提供一个优雅和有效的解决方案,其中提议计算几乎是免费的,给定检测网络的计算。为此,我们引入了新的区域建议网络( RPN ),它与最先进的目标检测网络共享卷积层。通过在测试时共享卷积,计算提议的边际成本较小(例如,每幅图像10ms)。我们的观察是,基于区域的检测器使用的卷积特征图,如Fast R-CNN,也可以用于生成区域建议。在这些卷积特征的基础上,我们通过添加一些额外的卷积层来构建一个RPN,这些卷积层同时回归规则网格上每个位置的区域界限和客观性分数。因此,RPN是一种全卷积网络( FCN ),可以专门针对生成检测建议的任务进行端到端的训练。RPN旨在以广泛的尺度和纵横比有效地预测区域建议。与流行的使用图像金字塔(图1 , a )或滤波器金字塔(图1 , b)的方法不同,我们引入了新颖的"锚"框,作为多个尺度和纵横比的参考。我们的方案可以被看作是回归参考(图1 , c)的金字塔,避免了枚举多个尺度或纵横比的图像或滤波器。当使用单尺度图像进行训练和测试时,此模型表现良好,从而有利于运行速度。

图1:处理多个尺度和大小的不同方案。

  • ( a )构建图像和特征图的金字塔,并在所有尺度下运行分类器。
  • ( b )在特征图上运行多个尺度/大小的滤波器金字塔。
  • ( c )我们在回归函数中使用参考框的金字塔。

训练方案:为了将RPN与Fast R- CNN目标检测网络统一起来,我们提出了一种训练方案,在保持提案固定不变的情况下,对区域提案任务进行微调,然后对目标检测进行微调。该方案快速收敛并生成一个统一的网络,其中包含两个任务之间共享的卷积特征。

基于数据集的实验结果:我们在PASCAL VOC检测基准上全面评估了我们的方法,其中使用Fast R - CNNs的RPNs产生的检测精度优于使用Fast R - CNNs的Selective Search的强基线。同时,我们的方法几乎免去了选择性搜索的所有计算负担- -提案的有效运行时间仅为10毫秒。使用昂贵的深度模型VGG,我们的检测方法在GPU上仍然具有5fps(包括所有步骤)的帧率,因此在速度和精度方面都是一个实用的目标检测系统。我们还报告了在MS COCO数据集上的实验结果,并研究了使用COCO数据对PASCAL VOC的改进。

比赛结果:在ILSVRC和COCO 2015竞赛中,FasterR - CNN和RPN是ImageNet检测、Ima - geNet定位、COCO检测和COCO分割轨道中多个第一位置的基础。RPN完全学习从数据中提出区域,因此可以轻松地从更深层次和更具表现力的特性(如Resnet101)中获益。Faster R-CNN和RPN也被其他几个在这些比赛中领先的参赛者使用。这些结果表明,我们的方法不仅是一个具有成本效益的解决方案,用于实际使用,而且是提高目标检测精度的有效途径。

Object Proposals:关于对象建议方法的文献很多。对象建议方法的全面调查和比较可以在《How good are de-tection proposals, really?》
《What makesfor effective detection proposals》
《Object-Proposal Evaluation Protocol is ’Gameable’》
中找到。广泛使用的对象建议方法包括基于分组超像素的方法(例如, 选择性搜索、CPMC 、MCG )和基于滑动窗口的方法(如objectness in windows、Edge Boxes )。对象提议方法作为独立于检测器(例如, Selective Search object detectors, R-CNN and Fast R-CNN)的外部模块被采用。

Deep Networks for Object Detection:R - CNN方法端到端地训练CNN,将候选区域分类为目标类别或背景。R - CNN主要作为一个分类器,它不预测对象边界(除通过边界框回归进行精炼外)。其准确性取决于区域建议模块的性能。一些文献提出了利用深度网络预测物体边界框的方法《Overfeat: Integrated recognition,localizationand detection using convolutional networks》《Deep neural networksfor object detection》
《Scalable object detection using deep neural networks》
《Scalable, high-quality object detection》。在OverFeat方法中,训练了一个全连接层来预测假定单个对象的定位任务的框坐标。然后将全连接层变成一个卷积层,用于检测多个特定于类的对象。The MultiBox methods 从最后一个全连接层同时预测多个类别不相关框的网络中生成区域建议,推广了OverFeat的"单框"方式。这些类无关的盒子被用作R - CNN的提案。The MultiBox methods Proposal 网络应用于单个图像 crop 或多个大型图像 crop (例如, 224 × 224),与我们的全卷积方案相反。The MultiBox methods 不在提案和检测网络之间共享特性。后文将结合我们的方法对Over Feat和 The MultiBox methods 进行更深入的讨论。结合我们的工作,发展了Deep Mask方法用于学习分割提议。

卷积的共享计算已经吸引了越来越多的关注,高效准确的视觉识别。Over Feat 从图像金字塔中计算卷积特征用于分类、定位和检测。共享卷积特征图上的自适应大小池化( SPP ) 被开发用于高效的基于区域的目标检测和语义分割。Fast R- CNN能够在共享的卷积特征上实现端到端的检测器训练,并表现出令人信服的精度和速度。

四、Faster RCNN

我们的目标检测系统叫做Faster R-CNN,由两个模块组成。第一个模块是提出区域的深度卷积网络,第二个模块是使用提出区域的Fast R- CNN检测器。整个系统是一个单一的、统一的目标检测网络( 图2 )。使用最近流行的带有"注意力"机制的神经网络术语,RPN模块告诉Fast R - CNN模块在哪里看。接下来,我们将介绍区域建议网络的设计和属性。我们开发了用于训练具有共享特性的两个模块的算法。

图2:Faster R - CNN是一个单一的、统一的目标检测网络。RPN模块作为这个统一网络的"注意力"。

(1)Region Proposal Networks

区域建议网络( RPN )将一个image(任意大小)作为输入,并输出一组矩形对象建议,每个建议都有一个对象性分数。我们用一个全卷积网络来建模这个过程,我们将在本节中描述。因为我们的最终目标是与一个Fast R - CNN目标检测网络共享计算,所以我们假设这两个网络共享一组共同的卷积层。在我们的实验中,我们研究了具有5个共享卷积层的Zeiler和Fergus模型( ZF )和具有13个共享卷积层的the Simonyan and Zisserman model ( VGG-16 )。

为了生成区域建议,我们在最后一个共享卷积层输出的卷积特征图上滑动一个小网络。这个小网络将输入卷积特征图的一个n × n空间窗口作为输入。每个滑动窗口映射到一个低维特征(用于ZF的256-d和用于VGG的512-d ,具有ReLU )。该特征被馈送到两个同胞全连接层- - box回归层( reg )和box分类层( cls )。本文中我们使用n = 3,注意到输入图像上的有效感受野是large( ZF和VGG分别为171和228像素)。在图3 (左)的单个位置展示了这个微型网络。需要注意的是,由于微型网络是以滑动窗口的方式运行的,因此全连接层在所有空间位置上共享。该体系结构自然地由一个n × n卷积层和 two sibling 1 × 1卷积层( for reg and cls,respectively )。

图3:左:区域建议网络( RPN )。右:在PASCALVOC 2007测试中使用RPN建议的示例检测。我们的方法在广泛的尺度和纵横比范围内检测物体。 

Anchors:在每个滑动窗口位置,我们同时预测多个区域提议,其中每个位置的最大可能提议数表示为。因此,reg层有4k个输出,编码k个框的坐标,而cls层输出2k个分数,用于估计每个提案的对象或非对象的概率。k个提议相对于k个参考框是参数化的,我们称之为锚。锚点位于问题的滑动窗口中心,并与尺度和纵横比(图3 ,左)相关。默认情况下,我们使用3个尺度和3个纵横比,在每个滑动位置产生k = 9个锚。对于一个大小为 W × H (典型的有2 , 400)的卷积特征图,共有 WHk 锚点。

Translation-Invariant Anchors:我们的方法的一个重要特性是它的平移不变性,无论是在锚点方面还是在计算相对于锚点的建议的函数方面。如果一个人翻译了一幅图像中的一个物体,那么这个提议应该是翻译的,并且同一个函数应该能够预测任意位置的提议。这种平移不变性质由我们的方法保证。作为比较,The MultiBox mothed 使用k - means生成800个锚,这些锚不是平移不变的。所以 The MultiBox mothed 并不能保证如果一个对象被翻译了,同样的建议也会被生成。平移不变属性也减少了模型大小。The MultiBox mothed 有一个( 4 + 1 ) × 800维全连接输出层,而我们的方法在k = 9个锚点的情况下有一个( 4 + 2 ) × 9维卷积输出层。因此,我们的输出层有2.8 × 104个参数( VGG - 16为512 × ( 4 + 2 ) × 9 ),比 MultiBox 的输出层有6.1 × 106个参数( MultiBox中的GoogleNet为1536 × ( 4 + 1 ) × 800 )少两个数量级。如果考虑特征投影层,我们的建议层的参数仍然比 MultiBox 少一个数量级。我们期望我们的方法在小数据集上有更小的过拟合风险,比如PACSAL VOC。

Multi-Scale Anchors as Regression References:我们的锚点设计提供了一种新颖的方案来处理多个尺度的(和纵横比)。如图1所示,已有两种流行的多尺度预测方法。第一种是基于图像/特征金字塔的方法,如DPM和基于CNN的方法。在多个尺度上对图像进行缩放,计算每个尺度下的特征图( HOG或深度卷积特征) (图1 ( a ) )。这种方式往往是有用的,但很耗时。第二种方法是在特征图上使用多个scale(和/或纵横比)的滑动窗口。例如,在DPM中,使用不同的滤波器尺寸(例如5 × 7和7 × 5)分别训练不同纵横比的模型。如果使用这种方式来处理多个尺度,它可以被认为是一个"过滤器金字塔" (图1 ( b ) )。第二种方式通常与第一种方式结合使用。作为对比,我们的基于锚点的方法是建立在锚点金字塔的基础上,更具有成本效益。我们的方法根据多个尺度和纵横比的锚框对边界框进行分类和回归。它只依赖单一尺度的图像和特征图,并使用单一尺寸的filter(在特征图上滑动窗口)。我们通过实验展示了该方案在处理多个尺度和大小时的效果(表8 )。由于这种基于锚点的多尺度设计,我们可以简单地使用在单尺度图像上计算的卷积特征,正如Fast R - CNN检测器所做的那样。多尺度锚点的设计是在不增加寻址尺度成本的情况下共享特征的关键部分。

表8:使用不同锚点设置的Faster R - CNN在PAS - CAL VOC 2007测试集上的检测结果。

Loss Function(根据正负标签来定义损失函数):对于训练RPN,我们为每个锚点分配一个二进制类标签。我们给两类锚赋予一个正标签:( i )常规的锚或者交并比( IoU )最高的锚与一个真实框重合,或者( ii ) IoU重合度高于0.7的锚与任何真实框重合。需要注意的是,单个真实框可能为多个锚点分配正标签。通常第二个条件足以确定正样本;但我们仍然采用第一个条件,因为在一些罕见的情况下第二个条件可能没有发现阳性样本。如果一个非正定锚点的IoU比在所有真实框中都低于0.3,则为其分配一个负标签。既不积极也不消极的锚对训练目标没有贡献。根据这些定义,我们在Fast R- CNN中最小化多任务损失后的目标函数。我们对图像的损失函数定义为:

这里,是小批量中锚的索引,p_{i} 是锚 i 是对象的预测概率。真实标签 p_{i}^{*} 在锚点为正的情况下为1,在锚点为负的情况下为0,t_{i} 是表示预测边界框的4个参数化坐标的向量,t_{i}^{*} 是与正锚点相关的真实框的坐标。分类损失Lcls是两个class(宾语vs )上的日志损失。对于回归损失,我们使用,其中 R 是 Fast R- CNN 中定义的 robust loss function (smooth L1 )。术语表示仅对正锚( p_{i}^{*} = 1 )激活回归损失,否则禁用( p_{i}^{*} = 0 )。cls 层和 reg 层的输出分别由 { p_{i}} 和 { t_{i} } 组成。 

这两个项由 N_{cls} 和 N_{reg} 标准化,并由平衡参数 λ 加权。在我们目前的实现 (如在发布的代码中),式( 1 )中的 cls 项用小批量的 (即N_{cls} = 256) 进行归一化,reg 项用锚点的个数 (即N_{reg} ≥ 2400) 进行归一化。默认情况下,我们设置 λ = 10,因此 cls reg 项的权重大致相等。我们通过实验发现,该结果在很大范围内对 λ 的取值不敏感 (表9)。我们还注意到,上面的规范化不是必需的,可以简化。

对于边界框回归,我们采用以下4个坐标的参数化(R-CNN):

其中 x、y、w、h 分别表示 box 的中心坐标、宽度和高度。变量 xx_{a} 和 x^{*} 分别表示预测框、锚框和真实框 (同理可得y , w , h)。这可以被认为是从锚框到附近的事实框的边界框回归。

尽管如此,我们的方法通过与以前基于RoI的(感兴趣区域)方法不同的方式实现边界框回归。先前的工作,边界框回归是对来自任意大小RoIs的特征池进行的,回归权重由所有区域大小共享。在我们的公式中,用于回归的特征在特征图上具有相同的空间大小( 3 × 3)。为了适应不同的大小,学习了一组 k 个边界框回归器。每个回归器负责一个尺度和一个纵横比,而 k 个回归器不共享权重。因此,仍然有可能预测不同尺寸的盒子,尽管由于锚的设计,这些特征是固定尺寸/尺度的。

Training RPNs:RPN可以通过反向传播和随机梯度下降( SGD )进行端到端的训练。我们遵循 Fast R-CNN 中的"以图像为中心"的采样策略来训练这个网络。每个迷你批次产生于包含许多正负示例锚点的单个图像。对所有锚点的损失函数进行优化是可能的,但由于负样本占主导地位,这将偏向负样本。相反,我们在一个图像中随机采样256个锚点来计算一个小批量的损失函数,其中采样的正负锚点的比例高达1:1。如果一幅图像中的正样本少于128个,我们用负样本填充小样本。

我们通过从标准差为0.01的零均值高斯分布中抽取权重来随机初始化所有新层。所有其他层(即共享的卷积层)都是通过预训练一个模型来初始化ImageNet分类,作为标准实践。我们对ZF网络的所有层进行调优,并对VGG网络进行conv3 1和up调优以节约内存。在PASCAL VOC数据集上,我们对60k个mini - batch使用0.001的学习率,对接下来的20kmini - batch使用0.0001的学习率。我们使用动量为0.9和重量衰减为0.0005。我们的实现采用Caffe。

(2)Sharing Features for RPN and Fast R-CNN

到目前为止,我们已经描述了如何训练一个用于区域建议生成的网络,而没有考虑将利用这些建议的基于区域的目标检测 CNN。对于检测网络,我们采用 Fast R - CNN。接下来我们描述了学习由 RPN 和 Fast R - CNN 组成的具有共享卷积层的统一网络的算法( 图2 )。

独立训练的RPN和Fast R-CNN都将以不同的方式修改它们的卷积层。因此,我们需要开发一种技术,允许在两个网络之间共享卷积层,而不是学习两个独立的网络。我们讨论了三种共享特征训练网络的方法:

  1. 交替训练。在这个解决方案中,我们首先训练RPN,并使用建议来训练Fast R-CNN。然后使用Fast R - CNN调整后的网络初始化RPN,并迭代该过程。这是本文中所有实验中使用的解决方案。
  2. 近似联合训练。在这个解决方案中,RPN和Fast R-CNN网络在训练期间合并成一个网络,如图2所示。在每次SGD迭代中,前向传递产生区域提议,在训练Fast R - CNN检测器时,这些区域提议被视为固定的、预先计算的提议。反向传播像往常一样发生,对于共享层,来自RPN损失和Fast R-CNN损失的反向传播信号被合并。这个解决方案很容易实现。但是这个解决方案忽略了w . r . t .提案框的坐标也是网络响应,所以是近似的。在我们的实验中,我们经验地发现这个解算器产生了接近的结果,但是与交替训练相比减少了大约25 - 50 %的训练时间。这个求解器包含在我们发布的Python代码中。
  3. 非近似联合训练。如前所述,RPN预测的边界框也是输入的函数。Fast R - CNN中的Ro I池化层接受卷积特征,也接受预测的边界框作为输入,因此一个理论上有效的反向传播求解器还应该包含关于框坐标的梯度。这些梯度在上面的近似联合训练中被忽略。在一个非近似的联合训练解决方案中,我们需要一个RoI池化层,它是可微的w . r . t .盒子坐标。

4-Step Alternating Training. 在本文中,我们采用一种实用的4步训练算法,通过交替优化来学习共享特征。在第一步中,我们按照上文所述方式训练RPN。该网络使用ImageNet预训练模型进行初始化,并针对区域建议任务进行端到端微调。在第二步中,我们使用step - 1 RPN生成的建议通过Fast R- CNN训练一个单独的检测网络。该检测网络同样由ImageNet预训练模型初始化。此时,两个网络不共享卷积层。在第三步中,我们使用探测器网络初始化RPN训练,但是我们固定了共享的卷积层,只对RPN特有的层进行微调。现在这两个网络共享卷积层。最后,保持共享卷积层固定不变,我们微调Fast R-CNN的唯一层。因此,这两个网络共享相同的卷积层,并形成一个统一的网络。类似的交替训练可以运行更多的迭代,但我们观察到的改进微不足道。

五、部分实验结果和检测结果

 >>>如有疑问,欢迎评论区一起探讨!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/81829.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

R语言析因设计分析:线性模型中的对比

对比度可用于对线性模型中的处理进行比较。 常见的用途是使用析因设计时,除析因设计外还使用控制或检查处理。在下面的第一个示例中,有两个级别(1和2)的两个处理(D和C),然后有一个对照 处理。此…

周末来哥家小聚一下

欢迎关注勤于奋 每天12点准时更新国外LEAD相关技术 是的,周末来哥家小聚,他们这儿人不多,就是一些认识的人,没有外人,加上疫情,一般不聚集,大家都清楚没事。 在他家没事,就陪小朋友…

灵活的类加载器OSGI

灵活的类加载器OSGI 简介 OSGi中的每个模块(称为Bundle)与普通的Java类库区别并不太大,两者一般都以JAR格式进行 封装[2],并且内部存储的都是Java的Package和Class。但是一个Bundle可以声明它所依赖的Package(通 过I…

最近的一点杂感

这是学习笔记的第 2444篇文章最近居家办公几周了,除了工作也能想想生活的事情,说说最近自己比较深的几四点感受吧。熵增和待办事项最初居家办公的时候,我们也有日会,也会有一些频繁的沟通,但是总是感觉目标的达成效果上…

JavaScript大作业 基于HTML+CSS+JavaScript站酷静态页面官网7页

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

超高质量堆排序详细讲解,图文并茂,看不懂打我

目录 一,题目 二,堆排序 1、堆排序基本介绍 2、堆排序基本思想 3、堆排序步骤图解说明 四,总结堆排序的整体思路 五,整体代码实现 1.普通版 2,STL版 一,题目 给定你一个长度为 n 的整数数列。 请你使用快堆排序对这个数列…

斐波那契数列问题【Java实现】

目录 题目: 背景: 方法一:暴力递归 复杂度O(2^N) 方法二:复杂度O(N) 方法三:O(logN)复杂度 两个矩阵相乘: 求矩阵m的p次方的代码实现: 用矩阵乘法求斐波那契数列第…

Linux | Posix信号量(semaphore) | 环形队列实现生产消费模型 | 线程池实现

文章目录POSIX信号量信号量接口讲解基于信号量和环形队列实现生产消费模型线程池的实现Posix信号量和System V信号量作用相同,都是用于共享资源的同步访问,Posix信号量通常用于线程间通信,而System V信号量常用于进程间通信,这篇博…

2022-12-09 Redis 学习

Redis简介 Nosql NOSQL:即Not-OnlySQL(泛指非关系型的数据库),作为关系型数据库的补充。 作用:应对基于海量用户海量数据前提下的数据处理问题 特征: 可扩容,可伸缩大量数据下高性能灵活的数…

记录在使用git进行上传本地文件到github上遇到的一些问题以及解决办法

1.warning: in the working copy of ‘XXX’, LF will be replaced by 这是一个警告错误,其实可以不用管他。 如果想要不出现这个警告可以参考这个博客:https://blog.csdn.net/Babylonxun/article/details/126598477 2.fatal: ‘origin’ does not app…

阳了别怕,保护好自己

关注、星标公众号,直达精彩内容图片素材来源:网络素材作者:技术让梦想更伟大 | 李肖遥最近已经陆续有四五个同事🐏了,如果是上一周,那我现在也是妥妥的密接了,不过现在放开的趋势愈发明显&#…

Web 服务的概述

Web 服务的概述 由于能够提供图形、声音等多媒体数据,再加上可以交互的动态 Web 语言的广泛普及,WWW(World Wide Web,万维网)深受Internet用户欢迎。一个最重要的证明就是,当前的绝大部分Internet流量都…

用SQL语句进行数据库查询(简单查询)

前言 🎈个人主页:🎈 :✨✨✨初阶牛✨✨✨ 🐻推荐专栏: 🍔🍟🌯 c语言初阶 🔑个人信条: 🌵知行合一 🍉本篇简介:>: 讲解使用SQL语句进行简单的数据查询、条件查询等. ✨…

考的好不如选的好?中国石油大学(华东)计算机考研报录比

中国石油大学(华东)是一所211大学,位于山东省青岛市。中国石油大学计算机学科评估B-,计算机实力在211大学中还算可以。前段时间,中国石油大学(华东)公布了今年考研的报名人数,区分出…

c#入门-枚举和数字互相转化

枚举的数值绑定 枚举的本质是数字,可以声明为常量。 同类的枚举之间,可以直接使用关系运算符(大于小于等于这些) 同类的枚举之间还可以直接使用数学运算符(但不能直接和数字进行数学运算) 枚举的默认数值…

app自动化环境配置mac版

android sdk 试了各种sdk tools下载、ADT bundle tools总有各种报错,最后直接官网android studio全套,记住下载页面的https改为http 没有试 brew install android-sdkandroid模拟器 能适配mac M1芯片的模拟器好像只有夜神,但是安装后一直卡…

微服务框架 SpringCloud微服务架构 微服务保护 32 隔离和降级 32.5 熔断策略【慢调用】

微服务框架 【SpringCloudRabbitMQDockerRedis搜索分布式,系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】 微服务保护 文章目录微服务框架微服务保护32 隔离和降级32.5 熔断策略【慢调用】32.5.1 熔断策略【慢调用】32.5.2 案例32 隔离和降级 32.5…

为什么APM飞控装不上mission planner双旋翼三旋翼倾转旋翼机固件以及apm飞控红黄绿颜色LED灯的含义

双旋翼bicopter三旋翼tricopter教程本来就不多,看几遍安装博主用的同版本地面站还是无法加装固件,全部参数表也无法搜出你需要的参数尤其是frame class 问题出在那❓还是硬件兼容问题 打开官方网站 点击frame class 这里列出了所有支持的固件 问题就出…

Cybertec PostgreSQL透明加密解析

目前PostgreSQL官方并未推出透明加密功能,但是cybertec开源了一个分支,支持透明加密。感兴趣的同学可以参考:https://www.cybertec-postgresql.com/en/products/postgresql-transparent-data-encryption/它支持对数据和WAL进行透明加密。本文…

非零基础自学Golang 第1章 走进Go 1.1 Go编程语言概述 1.1.2 Go 语言特性及应用场景

非零基础自学Golang 文章目录非零基础自学Golang第1章 走进Go1.1 Go编程语言概述1.1.2 Go 语言特性及应用场景第1章 走进Go 1.1 Go编程语言概述 1.1.2 Go 语言特性及应用场景 随着人工智能、大数据和云计算时代的到来,Python、Java和PHP等编程语言风靡盛行&#…