图像 检测 - DETR: End-to-End Object Detection with Transformers (arXiv 2020)

图像 检测 - DETR: End-to-End Object Detection with Transformers - 端到端目标检测的Transformers(arXiv 2020)

  • 摘要
  • 1. 引言
  • 2. 相关工作
    • 2.1 集预测
    • 2.2 Transformers和并行解码
    • 2.3 目标检测
  • 3. DETR模型
  • References

声明:此翻译仅为个人学习记录

文章信息

  • 标题:DETR: End-to-End Object Detection with Transformers (arXiv 2020)
  • 作者:Nicolas Carion*, Francisco Massa*, Gabriel Synnaeve, Nicolas Usunier, Alexander Kirillov, and Sergey Zagoruyko (* Equal contribution)
  • 文章链接:https://arxiv.org/pdf/2005.12872.pdf
  • 文章代码:https://github.com/facebookresearch/detr
    (推荐:亦可参考 图像 处理 - 开源算法集合)

摘要

  我们提出了一种新的方法,将目标检测视为一个直接集预测问题。我们的方法简化了检测流程,有效地消除了对许多手工设计的组件的需求,如非最大值抑制程序或锚生成,这些组件对我们关于任务的先验知识进行了明确编码。新框架称为DEtection TRansformer或DETR,其主要组成部分是基于集合的全局损失,通过二分匹配强制进行唯一预测,以及transformer 编码器-解码器架构。给定一组固定的学习目标查询,DETR对目标和全局图像上下文的关系进行推理,以直接并行输出最终的预测集。与许多其他现代检测器不同,新模型概念简单,不需要专门的库。DETR在具有挑战性的COCO目标检测数据集上展示了与完善且高度优化的Faster R-CNN基线相当的准确性和运行时性能。此外,DETR可以很容易地推广,以统一的方式产生全景分割。我们表明,它显著优于竞争基线。训练代码和预训练模型可在https://github.com/facebookresearch/detr.

1. 引言

  目标检测的目标是为每个感兴趣的目标预测一组边界框和类别标签。现代检测器通过在一大组提议[37,5]、锚[23]或窗口中心[53,46]上定义代理回归和分类问题,以间接的方式解决这一集合预测任务。它们的性能受到崩溃接近重复预测的后处理步骤、锚集的设计以及将目标框分配给锚的启发式方法的显著影响[52]。为了简化这些流水线,我们提出了一种直接集预测方法来绕过代理任务。这种端到端的哲学在复杂结构的预测任务(如机器翻译或语音识别)方面取得了重大进展,但在目标检测方面尚未取得重大进展:以前的尝试[43,16,4,39]要么添加了其他形式的先验知识,要么在具有挑战性的基准上与强大的基线相比没有竞争力。本文旨在弥合这一差距。

在这里插入图片描述

图1. DETR通过将公共CNN与transformer架构相结合,直接预测(并行)最终检测集。在训练过程中,二分匹配将预测唯一地分配给真值框。不匹配的预测应产生“无目标”(∅)类预测。

  我们通过将目标检测视为直接集预测问题来简化训练管道。我们采用了一种基于transformer[47]的编码器-解码器架构,这是一种用于序列预测的流行架构。Transformer的自注意力机制显式地对序列中元素之间的所有成对交互进行建模,使这些架构特别适合于集合预测的特定约束,例如去除重复预测。

  我们的DEtection TRansformer(DETR,见图1)一次预测所有目标,并使用集损失函数进行端到端训练,该函数在预测目标和真值目标之间执行二分匹配。DETR通过丢弃对先验知识进行编码的多个手工设计的组件(如空间锚或非最大抑制)来简化检测流水线。与大多数现有的检测方法不同,DETR不需要任何自定义层,因此可以在任何包含标准CNN和transformer类的框架中轻松复制。(在我们的工作中,我们使用了标准深度学习库中Transformer[47]和ResNet[15]主干的标准实现。)

  与以前关于直接集预测的大多数工作相比,DETR的主要特征是二分匹配损失和transformers与(非自回归)并行解码的结合[29,12,10,8]。相比之下,先前的工作侧重于使用RNNs[43,41,30,36,42]的自回归解码。我们的匹配损失函数唯一地将预测分配给真值目标,并且对预测目标的排列是不变的,因此我们可以并行发射它们。

  我们在最流行的目标检测数据集之一COCO[24]上评估了DETR,并与竞争激烈的Faster R-CNN基线[37]进行了比较。Faster R-CNN经过了多次设计迭代,自最初发布以来,其性能得到了极大的提高。我们的实验表明,我们的新模型达到了类似的性能。更准确地说,DETR在大型目标上表现出明显更好的性能,这一结果可能是由transformer的非局部计算实现的。然而,它在小目标上的性能较低。我们预计,未来的工作将以FPN[22]开发Faster R-CNN的方式改进这一方面。

  DETR的训练设置与标准目标检测器在多个方面不同。新模型需要超长的训练时间表,并且受益于transformer中的辅助解码损耗。我们深入探讨了哪些组件对演示的性能至关重要。

  DETR的设计理念很容易扩展到更复杂的任务中。在我们的实验中,我们表明,在预训练的DETR之上训练的简单分割头在全景分割[19]上的性能优于竞争性基线,这是一项具有挑战性的像素级识别任务,最近越来越受欢迎。

2. 相关工作

  我们的工作建立在几个领域的先前工作的基础上:用于集合预测的二分匹配损失、基于transformer的编码器-解码器架构、并行解码和目标检测方法。

2.1 集预测

  没有规范的深度学习模型可以直接预测集合。基本的集合预测任务是多标签分类(例如,参见[40,33]以获取计算机视觉背景下的参考文献),其中基线方法,一对一,不适用于诸如元素之间存在底层结构(即,接近相同的框)的检测等问题。这些任务的第一个困难是避免近乎重复的情况。大多数当前的检测器使用诸如非最大抑制之类的后处理来解决这个问题,但直接集预测是免后处理的。他们需要全局推理方案,对所有预测元素之间的交互进行建模,以避免冗余。对于恒定大小的集合预测,密集全连接网络[9]是足够的,但代价高昂。一种通用的方法是使用自回归序列模型,如递归神经网络[48]。在所有情况下,损失函数都应通过预测的排列保持不变。通常的解决方案是基于匈牙利算法[20]设计损失,以找到真值和预测之间的二分匹配。这增强了排列不变性,并保证每个目标元素具有唯一匹配。我们遵循二分匹配损失方法。然而,与大多数先前的工作相反,我们放弃了自回归模型,并使用具有并行解码的transformers,我们将在下面进行描述。

2.2 Transformers和并行解码

  Transformers是由Vaswani等人引入的。[47]作为一种新的基于注意力的机器翻译构建块。注意力机制[2]是聚集来自整个输入序列的信息的神经网络层。Transformers引入了自注意力层,类似于非局部神经网络[49],它扫描序列的每个元素,并通过聚合整个序列的信息来更新它。基于注意力的模型的主要优点之一是它们的全局计算和完美的内存,这使得它们比长序列上的RNN更适合。在自然语言处理、语音处理和计算机视觉的许多问题中,Transformers正在取代RNN[8,27,45,34,31]。

  Transformers最初用于自回归模型,遵循早期的序列到序列模型[44],逐个生成输出令牌。然而,在音频[29]、机器翻译[12,10]、单词表示学习[8]以及最近的语音识别[6]等领域,令人望而却步的推理成本(与输出长度成比例,且难以批量处理)导致了并行序列生成的发展。我们还将transformers和并行解码相结合,以在计算成本和执行集合预测所需的全局计算的能力之间进行适当的权衡。

2.3 目标检测

  大多数现代目标检测方法都是相对于一些初始猜测进行预测的。两级检测器[37,5]预测框w.r.t.提案,而单级方法预测w.r.t.锚[23]或可能的目标中心网格[53,46]。最近的工作[52]表明,这些系统的最终性能在很大程度上取决于这些初始猜测的确切设置方式。在我们的模型中,我们能够去除这种手工制作的过程,并通过对输入图像而不是锚的绝对框预测来直接预测检测集,从而简化检测过程。

基于集合的损失。几个目标检测器[9,25,35]使用了二分匹配损失。然而,在这些早期的深度学习模型中,不同预测之间的关系仅用卷积层或全连接层建模,手工设计的NMS后处理可以提高其性能。最近的检测器[37,23,53]使用真值和预测之间的非唯一分配规则以及NMS。

  可学习的NMS方法[16,4]和关系网络[17]显式地对不同预测之间的关系进行建模。使用直接集合损耗,它们不需要任何后处理步骤。然而,这些方法采用了额外的手工制作的上下文特征,如提议框坐标,以有效地对检测之间的关系进行建模,同时我们寻找减少模型中编码的先验知识的解决方案。

递归检测器。与我们的方法最接近的是用于目标检测[43]和实例分割[41,30,36,42]的端到端集合预测。与我们类似,他们使用基于CNN激活的编码器-解码器架构的二分匹配损失来直接生成一组边界框。然而,这些方法只在小型数据集上进行了评估,而没有对照现代基线进行评估。特别是,它们基于自回归模型(更准确地说是RNNs),因此它们没有利用最近的transformers进行并行解码。

3. DETR模型

两个因素对于检测中的直接集合预测至关重要:(1)集合预测损失,它迫使预测框和真值框之间进行唯一匹配;(2) 预测(一次通过)一组目标并对其关系建模的体系结构。我们在图2中详细描述了我们的体系结构。

在这里插入图片描述

图2. DETR使用传统的CNN主干来学习输入图像的2D表示。该模型对其进行平坦化,并在将其传递到transformer编码器之前用位置编码对其进行补充。然后,transformer解码器将少量固定数量的学习位置嵌入作为输入,我们称之为目标查询,并额外处理编码器输出。我们将解码器的每个输出嵌入传递到共享前馈网络(FFN),该网络预测检测(类和边界框)或“无目标”类。

References

  1. Al-Rfou, R., Choe, D., Constant, N., Guo, M., Jones, L.: Character-level language modeling with deeper self-attention. In: AAAI Conference on Artificial Intelligence (2019)
  2. Bahdanau, D., Cho, K., Bengio, Y.: Neural machine translation by jointly learning to align and translate. In: ICLR (2015)
  3. Bello, I., Zoph, B., Vaswani, A., Shlens, J., Le, Q.V.: Attention augmented convolutional networks. In: ICCV (2019)
  4. Bodla, N., Singh, B., Chellappa, R., Davis, L.S.: Soft-NMS improving object detection with one line of code. In: ICCV (2017)
  5. Cai, Z., Vasconcelos, N.: Cascade R-CNN: High quality object detection and instance segmentation. PAMI (2019)
  6. Chan, W., Saharia, C., Hinton, G., Norouzi, M., Jaitly, N.: Imputer: Sequence modelling via imputation and dynamic programming. arXiv:2002.08926 (2020)
  7. Cordonnier, J.B., Loukas, A., Jaggi, M.: On the relationship between self-attention and convolutional layers. In: ICLR (2020)
  8. Devlin, J., Chang, M.W., Lee, K., Toutanova, K.: BERT: Pre-training of deep bidirectional transformers for language understanding. In: NAACL-HLT (2019)
  9. Erhan, D., Szegedy, C., Toshev, A., Anguelov, D.: Scalable object detection using deep neural networks. In: CVPR (2014)
  10. Ghazvininejad, M., Levy, O., Liu, Y., Zettlemoyer, L.: Mask-predict: Parallel decoding of conditional masked language models. arXiv:1904.09324 (2019)
  11. Glorot, X., Bengio, Y.: Understanding the difficulty of training deep feedforward neural networks. In: AISTATS (2010)
  12. Gu, J., Bradbury, J., Xiong, C., Li, V.O., Socher, R.: Non-autoregressive neural machine translation. In: ICLR (2018)
  13. He, K., Girshick, R., Doll´ar, P.: Rethinking imagenet pre-training. In: ICCV (2019)
  14. He, K., Gkioxari, G., Doll´ar, P., Girshick, R.B.: Mask R-CNN. In: ICCV (2017)
  15. He, K., Zhang, X., Ren, S., Sun, J.: Deep residual learning for image recognition. In: CVPR (2016)
  16. Hosang, J.H., Benenson, R., Schiele, B.: Learning non-maximum suppression. In: CVPR (2017)
  17. Hu, H., Gu, J., Zhang, Z., Dai, J., Wei, Y.: Relation networks for object detection. In: CVPR (2018)
  18. Kirillov, A., Girshick, R., He, K., Doll´ar, P.: Panoptic feature pyramid networks. In: CVPR (2019)
  19. Kirillov, A., He, K., Girshick, R., Rother, C., Dollar, P.: Panoptic segmentation. In: CVPR (2019)
  20. Kuhn, H.W.: The hungarian method for the assignment problem (1955)
  21. Li, Y., Qi, H., Dai, J., Ji, X., Wei, Y.: Fully convolutional instance-aware semantic segmentation. In: CVPR (2017)
  22. Lin, T.Y., Doll´ar, P., Girshick, R., He, K., Hariharan, B., Belongie, S.: Feature pyramid networks for object detection. In: CVPR (2017)
  23. Lin, T.Y., Goyal, P., Girshick, R.B., He, K., Doll´ar, P.: Focal loss for dense object detection. In: ICCV (2017)
  24. Lin, T.Y., Maire, M., Belongie, S., Hays, J., Perona, P., Ramanan, D., Doll´ar, P., Zitnick, C.L.: Microsoft COCO: Common objects in context. In: ECCV (2014)
  25. Liu, W., Anguelov, D., Erhan, D., Szegedy, C., Reed, S.E., Fu, C.Y., Berg, A.C.: Ssd: Single shot multibox detector. In: ECCV (2016)
  26. Loshchilov, I., Hutter, F.: Decoupled weight decay regularization. In: ICLR (2017)
  27. L¨uscher, C., Beck, E., Irie, K., Kitza, M., Michel, W., Zeyer, A., Schl¨uter, R., Ney, H.: Rwth asr systems for librispeech: Hybrid vs attention - w/o data augmentation. arXiv:1905.03072 (2019)
  28. Milletari, F., Navab, N., Ahmadi, S.A.: V-net: Fully convolutional neural networks for volumetric medical image segmentation. In: 3DV (2016)
  29. Oord, A.v.d., Li, Y., Babuschkin, I., Simonyan, K., Vinyals, O., Kavukcuoglu, K., Driessche, G.v.d., Lockhart, E., Cobo, L.C., Stimberg, F., et al.: Parallel wavenet: Fast high-fidelity speech synthesis. arXiv:1711.10433 (2017)
  30. Park, E., Berg, A.C.: Learning to decompose for object detection and instance segmentation. arXiv:1511.06449 (2015)
  31. Parmar, N., Vaswani, A., Uszkoreit, J., Kaiser, L., Shazeer, N., Ku, A., Tran, D.: Image transformer. In: ICML (2018)
  32. Paszke, A., Gross, S., Massa, F., Lerer, A., Bradbury, J., Chanan, G., Killeen, T., Lin, Z., Gimelshein, N., Antiga, L., Desmaison, A., Kopf, A., Yang, E., DeVito, Z., Raison, M., Tejani, A., Chilamkurthy, S., Steiner, B., Fang, L., Bai, J., Chintala, S.: Pytorch: An imperative style, high-performance deep learning library. In: NeurIPS (2019)
  33. Pineda, L., Salvador, A., Drozdzal, M., Romero, A.: Elucidating image-to-set prediction: An analysis of models, losses and datasets. arXiv:1904.05709 (2019)
  34. Radford, A., Wu, J., Child, R., Luan, D., Amodei, D., Sutskever, I.: Language models are unsupervised multitask learners (2019)
  35. Redmon, J., Divvala, S., Girshick, R., Farhadi, A.: You only look once: Unified, real-time object detection. In: CVPR (2016)
  36. Ren, M., Zemel, R.S.: End-to-end instance segmentation with recurrent attention. In: CVPR (2017)
  37. Ren, S., He, K., Girshick, R.B., Sun, J.: Faster R-CNN: Towards real-time object detection with region proposal networks. PAMI (2015)
  38. Rezatofighi, H., Tsoi, N., Gwak, J., Sadeghian, A., Reid, I., Savarese, S.: Generalized intersection over union. In: CVPR (2019)
  39. Rezatofighi, S.H., Kaskman, R., Motlagh, F.T., Shi, Q., Cremers, D., Leal-Taix´e, L., Reid, I.: Deep perm-set net: Learn to predict sets with unknown permutation and cardinality using deep neural networks. arXiv:1805.00613 (2018)
  40. Rezatofighi, S.H., Milan, A., Abbasnejad, E., Dick, A., Reid, I., Kaskman, R., Cremers, D., Leal-Taix, l.: Deepsetnet: Predicting sets with deep neural networks. In: ICCV (2017)
  41. Romera-Paredes, B., Torr, P.H.S.: Recurrent instance segmentation. In: ECCV (2015)
  42. Salvador, A., Bellver, M., Baradad, M., Marqu´es, F., Torres, J., Gir´o, X.: Recurrent neural networks for semantic instance segmentation. arXiv:1712.00617 (2017)
  43. Stewart, R.J., Andriluka, M., Ng, A.Y.: End-to-end people detection in crowded scenes. In: CVPR (2015)
  44. Sutskever, I., Vinyals, O., Le, Q.V.: Sequence to sequence learning with neural networks. In: NeurIPS (2014)
  45. Synnaeve, G., Xu, Q., Kahn, J., Grave, E., Likhomanenko, T., Pratap, V., Sriram, A., Liptchinsky, V., Collobert, R.: End-to-end ASR: from supervised to semi-supervised learning with modern architectures. arXiv:1911.08460 (2019)
  46. Tian, Z., Shen, C., Chen, H., He, T.: FCOS: Fully convolutional one-stage object detection. In: ICCV (2019)
  47. Vaswani, A., Shazeer, N., Parmar, N., Uszkoreit, J., Jones, L., Gomez, A.N., Kaiser, L., Polosukhin, I.: Attention is all you need. In: NeurIPS (2017)
  48. Vinyals, O., Bengio, S., Kudlur, M.: Order matters: Sequence to sequence for sets. In: ICLR (2016)
  49. Wang, X., Girshick, R.B., Gupta, A., He, K.: Non-local neural networks. In: CVPR (2018)
  50. Wu, Y., Kirillov, A., Massa, F., Lo, W.Y., Girshick, R.: Detectron2. https://github.com/facebookresearch/detectron2 (2019)
  51. Xiong, Y., Liao, R., Zhao, H., Hu, R., Bai, M., Yumer, E., Urtasun, R.: Upsnet: A unified panoptic segmentation network. In: CVPR (2019)
  52. Zhang, S., Chi, C., Yao, Y., Lei, Z., Li, S.Z.: Bridging the gap between anchor-based and anchor-free detection via adaptive training sample selection. arXiv:1912.02424 (2019)
  53. Zhou, X., Wang, D., Kr¨ahenb¨uhl, P.: Objects as points. arXiv:1904.07850 (2019)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【VisualGLM】大模型之 VisualGLM 部署

目录 1. VisualGLM 效果展示 2. VisualGLM 介绍 3. VisualGLM 部署 1. VisualGLM 效果展示 VisualGLM 问答 原始图片 2. VisualGLM 介绍 VisualGLM 主要做的是通过图像生成文字,而 Stable Diffusion 是通过文字生成图像。 一种方法是将图像当作一种特殊的语言进…

SAS-数据集SQL水平合并

一、SQL水平合并基本语法 sql的合并有两步,step1:进行笛卡尔乘积运算,第一个表的每一行合并第二个表的每一行,即表a有3行,表b有3行,则合并后3*39行。笛卡尔过程包含源数据的所有列,相同列名会合…

mysql进阶篇(二)

前言 「作者主页」:雪碧有白泡泡 「个人网站」:雪碧的个人网站 「推荐专栏」: ★java一站式服务 ★ ★ React从入门到精通★ ★前端炫酷代码分享 ★ ★ 从0到英雄,vue成神之路★ ★ uniapp-从构建到提升★ ★ 从0到英雄&#xff…

3.2用互斥元保护共享数据

概述 于是,你有一个类似于上一节中链表那样的共享数据结构,你想要保护它免于竞争条件以及可能因此产生的不变量损坏。如果你可以将所有访问该数据结构的代码块标记为互斥的(mutually exclusive),岂不是很好?如果任何线…

DuDuTalk:AI语音工牌在家装行业门店销售场景有何应用价值?

随着科技的不断发展,人工智能技术的应用也越来越广泛。作为人工智能技术的一种应用形式,AI语音工牌在家装行业门店销售场景中起到了重要的作用。本文将从AI语音工牌的定义、功能、应用场景以及优势等方面,探讨它在家装行业门店销售场景的应用…

Qt多线程编程

本章介绍Qt多线程编程。 1.方法 Qt多线程编程通常有2种方法: 1)通过继承QThread类,实现run()方法。 2)采用QObject::moveToThread()方法。 方法2是Qt官方推荐的方法,本文介绍第2种。 2.步骤 1)创建Worker类 这里的Worker类就是我们需要…

【Docker】Windows下docker环境搭建及解决使用非官方终端时的连接问题

目录 背景 Windows Docker 安装 安装docker toolbox cmder 解决cmder 连接失败问题 资料获取方法 背景 时常有容器方面的需求,经常构建调试导致测试环境有些混乱,所以想在本地构建一套环境,镜像调试稳定后再放到测试环境中。 Windows …

音视频--视频数据传输

参考文献 H264码流RTP封装方式详解:https://blog.csdn.net/water1209/article/details/126019272H264视频传输、编解码----RTP协议对H264数据帧拆包、打包、解包过程: https://blog.csdn.net/wujian946110509/article/details/79129338H264之NALU解析&a…

汽车维修保养记录查询API:实现车辆健康状况一手掌握

在当今的数字化世界中,汽车维修保养记录的查询和管理变得前所未有地简单和便捷。通过API,我们可以轻松地获取车辆的维修和保养记录,从而实现对手中车辆健康状况的实时掌握。 API(应用程序接口)是进行数据交换和通信的标…

RocketMQ第二课-核心编程模型以及生产环境最佳实践

一、回顾RocketMQ的消息模型 ​ 上一章节我们从试验整理出了RocketMQ的消息模型&#xff0c;这也是我们使用RocketMQ时最直接的指导。 二、深入理解RocketMQ的消息模型 1、RocketMQ客户端基本流程 <dependency><groupId>org.apache.rocketmq</groupId>&…

以http_proxy和ajp_proxy方式整合apache和tomcat(动静分离)

注意&#xff1a;http_proxy和ajp_proxy的稳定性不如mod_jk 一.http_proxy方式 1.下载mod_proxy_html.x86_64 2.在apache下创建http_proxy.conf文件&#xff08;或者直接写到conf/httpd.conf文件最后&#xff09; 3.查看server.xml文件 到tomcat的安装目录下的conf/serve…

【word密码】word设置只读,如何取消?

Word文件打开之后发现是只读模式&#xff0c;那么我们如何取消word文档的只读模式呢&#xff1f;今天给大家介绍几种只读模式的取消方法。 属性只读 有些文件可能是在文件属性中添加了只读属性&#xff0c;这种情况&#xff0c;我们只需要点击文件&#xff0c;再次查看文件属…

命令模式(C++)

定义 将一个请求(行为)封装为一个对象&#xff0c;从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志&#xff0c;以及支持可撤销的操作。 应用场景 在软件构建过程中&#xff0c;“行为请求者”与“行为实现者”通常呈现一种“紧耦合”。但在某些场合——比…

后端进阶之路——深入理解Spring Security配置(二)

前言 「作者主页」&#xff1a;雪碧有白泡泡 「个人网站」&#xff1a;雪碧的个人网站 「推荐专栏」&#xff1a; ★java一站式服务 ★ ★前端炫酷代码分享 ★ ★ uniapp-从构建到提升★ ★ 从0到英雄&#xff0c;vue成神之路★ ★ 解决算法&#xff0c;一个专栏就够了★ ★ 架…

CAD绘制法兰、添加光源、材质并渲染

首先绘制两个圆柱体&#xff0c;相互嵌套 在顶部继续绘制圆柱体&#xff0c;这是之后要挖掉的部分 在中央位置绘制正方形 用圆角工具&#xff1a; 将矩形的四个角分别处理&#xff0c;效果&#xff1a; 用拉伸工具 向上拉伸到和之前绘制的圆柱体高度齐平 绘制一个圆柱体&#…

golang 自定义exporter - 端口连接数 portConnCount_exporter

需求&#xff1a; 1、计算当前6379 、3306 服务的连接数 2、可prometheus 语法查询 下面代码可直接使用&#xff1a; 注&#xff1a; 1、windows 与linux的区分 第38行代码 localAddr : fields[1] //windows为fields[1] &#xff0c; linux为fields[3] 2、如需求 增加/修改/删除…

opencv基础48-绘制图像轮廓并切割示例-cv2.drawContours()

绘制图像轮廓&#xff1a;drawContours函数 在 OpenCV 中&#xff0c;可以使用函数 cv2.drawContours()绘制图像轮廓。该函数的语法格式是&#xff1a; imagecv2.drawContours( image, contours, contourIdx, color[, thickness[, lineType[, hierarchy[, maxLevel[, offset]]…

【数据结构与算法】Vue3实现选择排序动画效果与原理拆解

系列文章目录 删除有序数组中的重复项 JavaScript实现选择排序 文章目录 系列文章目录1、选择排序的原理1.1、选择排序的基本步骤1.2、拆解思路 2、动画演示原理3、代码实现4、优化后的选择排序5、用Vue3实现选择排序的动画效果&#xff08;第二部分的动画效果图&#xff09; …

【uniapp 小程序开发语法篇】资源引入 | 语法介绍 | UTS 语法支持(链接格式)

博主&#xff1a;_LJaXi Or 東方幻想郷 专栏&#xff1a; uni-app | 小程序开发 开发工具&#xff1a;HBuilderX 小程序开发语法篇 引用组件easycom Js文件引入NPM支持 Css文件引入静态资源引入css 引入静态资源如何引入字体图标&#xff1f;css 引入字体图标示例nvue 引入字体…

基于2.4G RF开发的无线游戏手柄解决方案

平时喜欢玩游戏的朋友&#xff0c;肯定知道键鼠在某些类型的游戏适配和操作方面&#xff0c;不如手柄。作为一个游戏爱好者&#xff0c;还得配上一个游戏手柄才行。比如动作和格斗、体育游戏&#xff0c;由于手柄更合理的摇杆位置和按键布局&#xff0c;操作起来也是得心应手。…