当前位置: 首页 > news >正文

《Deep learning for fine-grained image analysis: A survey》阅读笔记

论文标题

《Deep learning for fine-grained image analysis: A survey》

作者

魏秀参,旷世研究院

初读

摘要

  • 细粒度图像分析(FGIA)的任务是分析从属类别的视觉对象。

  • 细粒度性质引起的类间小变化类内大变化使其成为一个具有挑战性的问题。

  • 本文旨在系统地调查基于深度学习的 FGIA 技术的最新进展。

  • 本文将现有的 FGIA 技术研究分为三大类:

    • 细粒度图像识别

    • 细粒度图像检索

    • 细粒度图像生成

  • 本文还涵盖了 FGIA 的其他一些重要问题,例如公开的基准数据集及其相关的特定领域应用。

  • 最后在总结这项调查时强调了几个方向和有待社会进一步探索的问题。

结论

这篇文章主要是未来展望,后面写。

再读

Section 1 Introduction

  • 第一段:介绍 CV

  • 第二段:介绍细粒度图像分析(FGIA)

    • FGIA 的目标是检索、识别和生成属于超类别(也称为元类别)的多个次级类别的图像,例如不同种类的动物/植物、不同型号的汽车、不同种类的零售产品等。

    • 关于 FGIA 的一些有影响力的学术竞赛经常在 Kaggle 上举行。几项具有代表性的竞赛,例如自然保护协会渔业监测(用于鱼类物种分类)、座头鲸识别(用于鲸鱼身份分类)等。每项竞赛都吸引了全球 300 多个团队参加,有些甚至超过了 2000 支队伍。

  • 第三段:深度学习+FGIA 很火

    根据每年的粗略统计,平均每年约有十篇基于深度学习的 FGIA 技术的会议论文发表在人工智能和简历的高级会议上,如 IJCAI、AAAI、CVPR、ICCV、ECCV 等。

  • 第四段:本文工作亮点

    • 在文献中,已有一项与细粒度任务相关的调查 [Zhao et al., 2017](上一篇读的那个),其中仅包括几种用于比较的细粒度识别方法。

    • 本文工作更全面。

      本文还分析和讨论了另外两个核心且不可忽视的细粒度分析任务,即细粒度图像检索细粒度图像生成

    • 此外,在环太平洋国家举行的另一次重要的人工智能会议上,PRICAI、Wei 和 Wu 组织了一场针对细粒度图像分析主题的专题辅导会。我们推荐感兴趣的读者参考教程,该教程提供了一些额外的详细信息。

  • 第五段 三大贡献:

    1. 对基于深度学习的 FGIA 技术进行了全面的综述,包括问题背景、基准数据集、具有深度学习的一系列 FGIA 方法、特定领域的 FGIA 应用等。

    2. 以分层和结构化的方式对基于深度学习的 FGIA 技术的最新进展进行了系统概述,参见下图。

      在这里插入图片描述

    3. 讨论了挑战和悬而未决的问题,并确定了新的趋势和未来方向,为细粒度的研究人员或广泛的人工智能社区中的其他感兴趣的读者提供了一个潜在的路线图。

  • 第六段:其他部分

    • 第二节介绍了本文的背景,即 FGIA 问题及其主要挑战。
    • 第三节回顾了多个常用的细粒度基准数据集。
    • 第四节分析了细粒度图像识别的三种主要范式。
    • 第五节介绍了细粒度图像检索的最新进展。
    • 第六节从生成的角度讨论细粒度图像生成。
    • 第七节中介绍了现实世界中与 FGIA 相关的其他一些特定领域的应用。
    • 第八节总结了本文并在中讨论了未来的方向和悬而未决的问题。

Section 2 Background: problem and main challenges

背景:问题和主要挑战

  • 细粒度识别(FGIA)是干啥的:

    FGIA 专注于处理属于同一元类别的多个子类别的对象(如鸟、狗和汽车),通常涉及细粒度图像识别、细粒度图像检索、细粒度图片生成等核心任务。

  • FGIA 与一般图像分析的区别:

    • 在一般图像分析中,目标对象属于粗粒度的元类别(例如,鸟类、橙子和狗),因此在视觉上截然不同。

    • 然而,在 FGIA 中,由于对象来自一个元类别的子类别,细粒度的特性使它们在视觉上非常相似

    • 以图像识别为例。在细粒度识别中,需要识别多个类似物种的狗,例如哈士奇、萨摩耶和阿拉斯加。为了准确识别,需要通过捕捉细微的差异(如耳朵、鼻子、尾巴)来区分它们,这也满足了其他 FGIA 任务(如检索和生成)的需求。

      在这里插入图片描述

  • FIGA 的挑战:

    • 细粒度性质还带来了由高度相似的子类别引起的小的类间变化,以及姿态、尺度和旋转方面的大的类内变化,

    • 它与一般图像分析(即小的类内变化和大的类间变化)相反,这使得细粒度图像分析成为一个具有挑战性的问题。下图分别展示了图中每行四种燕鸥中的每一种。

      在这里插入图片描述

Section 3 Benchmark datasets

基准数据集

  • 数据集介绍:

    • 在过去的十年里,视觉社区发布了许多基准细粒度数据集,涵盖了不同的领域,如鸟类、狗、汽车、飞机、花卉、蔬菜、水果,零售产品等等。下表列出了细粒度社区常用的一些图像数据集,并具体指出了它们的元类别、细粒度图像的数量、细粒度类别的数量、额外不同类型的可用监督,即边界框、零件注释、层次标签、属性标签和文本视觉描述,下图为示例。

      在这里插入图片描述

    • 示例图像及其与 CUB200-2011 相关的监督。如图所示,多种类型的监督包括:图像标签、零件注释(也称为关键点定位)、对象边界框(即绿色边界框)、属性标签(即“ATR”)和自然语言的文本描述。

      在这里插入图片描述

  • 这些数据集功不可没:

    这些数据集是该领域取得长足进展的最重要因素之一,不仅是衡量和比较竞争方法性能的共同基础,而且将该领域推向越来越复杂、实用和具有挑战性的问题。

  • CUB200-2011 记首功:

    • 具体来说,其中 CUB200-2011 是最受欢迎的细粒度数据集之一。几乎所有的 FGIA 方法都选择它来与现有技术进行比较。
    • 此外,CUB200-2011 不断为进一步的研究做出贡献,例如,收集细粒度图像的文本描述用于多模态分析。
  • 这两年的新数据集及其引入的新特征:

    • 此外,近年来越来越多地提出了更具挑战性和实用性的细粒度数据集,例如,用于植物和动物自然物种的 iNat2017 和用于日常零售产品的 RPC。
    • 从这些数据集衍生出的许多新特征,仅举几个例子,就是大规模、层次结构、域间隙和长尾分布,这揭示了现实世界中的实际需求,并可能引发在更现实的环境中对 FGIA 的研究。

Section 4 Fine-grained image recognition

细粒度图像识别

  • 地位:

    在过去的十年里,细粒度图像识别一直是 FGIA 最活跃的研究领域。

  • 从广义上讲,这些细粒度识别方法可以分为三个主要范式:

    1. 具有本地化分类子网络
    2. 具有端到端特征编码
    3. 具有外部信息
  • 第一和第二范式通过仅利用与细粒度图像相关联的监督来限制自身,所述细粒度图像诸如图像标签、边界框、零件注释等。

  • 多模态趋势:

    由于细粒度的挑战,自动识别系统还不能获得优异的性能。因此,研究人员逐渐尝试将外部但廉价的信息(如网络数据、文本描述)纳入细粒度识别,以进一步提高准确性,这与细粒度识别的第三范式相对应。

  • 评估指标:

    细粒度识别中常用的评估指标是数据集所有次级类别的平均分类精度

4.1 By localization-classification subnetworks

按本地化分类的子网络

  • 第一个范式——具有本地化分类子网络的细粒度识别

    • 思想:

      为了缓解类内变异的挑战,细粒度社区的研究人员关注捕捉细粒度对象的判别语义部分,然后构建与这些部分相对应的中级表示,用于最终分类。

    • 架构:

      • 定位子网络:定位这些关键部分;
      • 分类子网络紧随其后用于识别;
      • 这两个协作子网络的框架形成了第一个范式。
  • 定位信息的作用:

    定位信息,例如零件级边界框或分割掩码,可以获得与这些细粒度零件相比更具鉴别力的中级(零件级)表示。进一步增强了分类子网络的学习能力,可以显著提高最终识别的准确性。

  • 注释依赖:

    • 属于该范式的早期工作依赖于额外的密集部分注释(也称为关键点定位)来定位对象的语义关键部分(例如,头部、躯干)。
    • 他们中的一些人训练基于零件的检测器,另一些人利用分割方法定位零件。
    • 这些方法将多个部分级特征连接为一个完整的图像表示,并将其输入到下面的分类子网络中进行最终识别。因此,这些方法也被称为基于零件的识别方法。
  • 克服注释依赖的新趋势:

    • 获得如此密集的零件注释是费力的,这限制了现实世界细粒度应用程序的可扩展性和实用性。
    • 最近,出现了一种趋势,即在这种范式下,更多的技术只需要图像标签来实现准确的零件定位。它们的共同动机是首先找到相应的部分,然后比较它们的外观。
    • 具体来说,我们希望捕捉语义部分(例如,头部和躯干),以便在细粒度的类别中共享,同时,我们也渴望发现这些部分表示之间的细微差异。
    • 先进的技术,如注意力机制和多阶段策略使集成定位分类子网络的联合训练复杂化。

4.2 By end-to-end feature encoding

通过端到端特征编码

  • 第二范式思想:

    与第一种范式不同,第二种范式,即端到端特征编码,倾向于通过开发用于细粒度识别的强大深度模型来直接学习更具鉴别力的特征表示

  • 其中最具代表性的方法——双线性 CNN

    • 它将图像表示为源自两个深层 CNN 的特征的合并外积,并因此对卷积激活的高阶统计量进行编码,以增强中级学习能力。
    • 由于其高模型容量,双线性 CNN 实现了显著的细粒度识别性能。
    • 问题与解决:
      • 但同时,双线性特征的极高维数仍然使其在现实应用中不切实际,尤其是在大规模应用中。
      • 针对这个问题的最近的尝试:试图通过应用张量绘制来聚合低维嵌入,这可以近似双线性特征并保持可比或更高的识别精度。
  • 其他工作,专注于设计针对细粒度定制的特定损失函数,并能够驱动整个深度模型来学习有区别的细粒度表示。

4.3 With external information

有外部信息

  • 第三范式思想:

    第三范式是利用外部信息,例如网络数据、多模态数据或人机交互,来进一步帮助细粒度识别。

  • 使用 web 数据

    利用自由但有噪声的网络数据来提高识别性能。这条线路上的大多数现有工程大致可以分为两个方向。

    • 一是网络监督学习:抓取测试类别的有噪声标记的网络数据作为训练数据。

      • 此方法的主要努力集中在:

        • 克服容易获取的 web 图像和来自标准数据集的标记良好的数据之间的数据集差距;

        • 减少由噪声数据引起的负面影响。

      • 为了解决上述问题:经常使用对抗性学习的深度学习技术和注意力机制。

    • 另一是将知识从具有良好标记的训练数据的辅助类别转移到测试类别,这通常采用零样本学习或元学习来实现这一目标。

  • 使用多模态数据

    • 思想:

      在细粒度识别中用多模态数据来建立联合表示/嵌入,以合并多模态信息,能够提高细粒度识别的准确性。

    • 常用的两种多模态数据

      经常使用的多模态数据包括文本描述(例如,自然语言的句子和短语)和图形结构知识图谱

      • 文本描述

        • 与细粒度图像的强监督(例如,零件注释)相比,文本描述是弱监督。

        • 普通人可以相对准确地返回文本描述,而不是特定领域的专家。

      • 图形结构知识图谱:

        • 高级知识图是现有的资源,包含丰富的专业知识,如 DBpedia。
        • 在实践中,文本描述和知识库都是有效的,可以作为更好的细粒度图像表示学习的额外指导。
    • 具体应用:

      • [Reed et al.,2016] 收集文本描述,并通过结合文本和图像,为零样本细粒度图像识别引入结构化联合嵌入。

      • 后来,[He和Peng,2017a] 以端到端的联合训练方式结合了视觉和语言流,以保留模态内和模态间信息,用于生成互补的细粒度表示。

      • 对于具有知识库的细粒度识别,例如 [Chen et al.,2018;Xu et al.,2018a],引入了知识库信息(总是与属性标签相关联),以隐含地丰富嵌入空间(也推理细粒度对象的判别属性)。

        在这里插入图片描述

  • 人在循环

    • 循环中有人的细粒度识别通常是一个由机器和人类用户组成的迭代系统,它结合了人类和机器的努力和智能
    • 此外,它要求该系统尽可能以人类劳动经济的方式工作
    • 通常,对于这类识别方法,每一轮的系统都在寻求了解人类是如何进行识别的,
      • 例如,通过要求未经训练的人类标记图像类别并选取硬例子;
      • 或者通过识别关键部分定位并选择判别特征进行细粒度识别。

Section 5 Fine-grained image retrieval

细粒度图像检索

  • 评估指标:共同平均精度(mAP)

  • 细粒度图像检索是什么:

    • 给定相同子类别(例如,鸟类或汽车)的数据库图像和查询,它应该返回与查询相同种类的图像,而不需要求助于任何其他监督信号

    • 与基于内容相似性(如纹理、颜色和形状)检索近似重复图像的通用图像检索相比,细粒度检索侧重于检索相同类型的图像(如动物的相同从属物种和汽车的相同模型)。同时,细粒度图像中的对象只有细微的差异,并且在姿势、比例和旋转方面各不相同。

    • 示例:

      下图给定“Dodge Charger Sedan 2012”的查询图像(又名探测器),通过细粒度检索从汽车数据库(又名星系)返回同一车型的图像。在这张图中,红色矩形标记的前4名返回图像显示了错误的结果,因为其型号是“Dodge Caliber Wagon 2012”。

      在这里插入图片描述

  • 相关工作:

    • [Wei et al.,2017] 首次尝试使用深度学习进行细粒度图像检索。它使用预先训练的 CNN 模型,通过在细粒度图像中无监督地定位主要对象来选择有意义的深度描述符,并进一步表明,只选择去除背景或噪声的有用深度描述符可以显著有利于检索任务。
    • 最近,为了突破预训练模型进行无监督细粒度检索的局限性,一些试验倾向于在监督度量学习范式下发现新的损失函数。同时,他们仍然为细粒度对象设计了额外的特定子模块,例如,在 [Zheng et al.,2018] 中提出的弱监督定位模块,该模块是在 [Wei等人,2017] 的启发下提出的。

Section 6 Fine-grained image generation

细粒度图像生成

  • 什么是图像生成:

    细粒度生成将合成细粒度类别中的图像,例如特定人物的面部或从属类别中的对象。

  • 相关工作:

    • 这方面的第一项工作是 [Bao et al.,2017] 中提出的 CVAE-GAN,它将变分自动编码器与条件生成过程下的生成对抗性网络相结合,以解决这个问题。具体地,CVAE-GAN 将图像建模为概率模型中的标签和潜在属性的组合。然后,通过改变输入生成模型的细粒度类别,它可以生成特定类别的图像。
    • 最近,从文本描述生成图像由于其多样性和实际应用,如艺术生成和计算机辅助设计,表现得很流行。通过执行具有注意力的生成网络,该模型可以通过关注文本描述的相关单词来合成细微区域的细粒度细节。

Section 7 Domain specific applications related to fine-grained image analysis

与细粒度图像分析相关的特定领域应用程序

  • 基于深度学习的细粒度图像分析技术在现实世界中各种特定领域的应用
    • 推荐系统中的衣服/鞋子检索、
    • 电子商务平台中的时尚图像识别、
    • 智能零售中的产品识别等。
    • 在极端情况下,人脸识别可以被视为细粒度识别的一个实例,其中粒度低于身份粒度级别。
    • 人/车再识别是另一项细粒度相关任务,旨在确定两张图像是否取自同一特定人/车。显然,重新识别任务也处于身份粒度之下。

在实践中,这些工作通过遵循 FGIA 的动机来解决相应的领域特定任务,包括捕捉物体(人脸、人和车辆)的辨别部分,发现从粗到细的结构信息。

Section 8 Concluding remarks and future directions

结束语和今后的方向

  • 自动细粒度模型
    • **自动机器学习(AutoML)和神经架构搜索(NAS)**正吸引着人工智能界尤其是在计算机视觉领域的热烈关注
      • AutoML 的目标是将机器学习应用于现实世界任务的端到端过程自动化。
      • NAS,即自动化神经网络架构设计的过程,因此是 AutoML 中合乎逻辑的下一步。
    • AutoML 和 NAS 的最新方法在各种计算机视觉应用中可以与手工设计的架构相媲美,甚至优于手工设计的体系结构。因此,利用 AutoML 或 NAS 技术开发的自动细粒度模型也有望找到更好、更具针对性的深度模型,同时反过来推动 AutoML 和 NAS 的研究。
  • 细粒度的少镜头学习
    • 人类能够在很少的监督下学习一个新的细粒度概念,例如,一种鸟类的示例图像很少,但我们最好的深度学习细粒度系统需要数百或数千个标记的示例。更糟糕的是,对细粒度图像的监督既耗时又昂贵,因为领域专家应该始终准确地标记细粒度对象。因此,需要开发细粒度的少镜头学习(fine-grained few-shot,FGFS)。
    • FGFS 的任务要求学习系统以元学习的方式从几个例子(只有一个或少于五个)中为新的细粒度类别构建分类器
    • 稳健的 FGFS 方法可以极大地增强细粒度识别的可用性和可扩展性。
  • 细粒度哈希
    • 在参考数据库非常大的情况下,找到精确的最近邻居的成本高得令人望而却步。
    • 哈希作为最流行、最有效的近似近邻搜索技术之一,具有处理大规模细粒度数据的潜力。因此,细粒度哈希是一个值得进一步探索的方向。
  • 在更真实的设置中进行细粒度分析
    • 在过去的十年中,细粒度图像分析相关技术得到了发展,并在其传统设置中取得了良好的性能,例如经验协议。然而,这些设置无法满足当今各种现实世界应用的日常要求,例如,通过使用在受控环境中收集的图像训练的模型来识别货架中的零售产品,以及识别/检测野生自然物种。
    • 因此,新的细粒度图像分析主题,仅举几个例子——具有域自适应的细粒度分析、具有知识转移的细粒度解析、具有长尾分布的细粒度剖析,以及在资源受限的嵌入式设备上运行的细粒度分析,为更先进、更实用的 FGIA 提供了大量研究工作。

相关文章:

《Deep learning for fine-grained image analysis: A survey》阅读笔记

论文标题 《Deep learning for fine-grained image analysis: A survey》 作者 魏秀参,旷世研究院 初读 摘要 细粒度图像分析(FGIA)的任务是分析从属类别的视觉对象。 细粒度性质引起的类间小变化和类内大变化使其成为一个具有挑战性的…...

节点导纳矩阵

节点导纳矩阵(Node Admittance Matrix)是电力系统分析中的关键工具,它用于描述电力系统中不同节点之间的电导和电纳参数。这个矩阵为电力工程师提供了深入了解电力系统运行和分析所需的数学工具。 节点导纳矩阵是一个复数矩阵,通常…...

小米真无线耳机 Air 2s产品蓝牙配对ubuntu20.04 笔记本电脑

小米真无线耳机 Air 2s产品蓝牙配对ubuntu20.04 笔记本电脑 1.我的笔记本是 22款联想拯救者y9000k,安装了双系统,ubuntu20.04。 2.打开耳机,按压侧面按钮2秒,指示灯显示白色闪烁。 3.打开ubunru20.04 系统右上角wifi的位置&…...

Python爬虫批量下载图片

一、思路: 1. 分析URL,图片的URL内嵌于base_url的返回当中 2. 下载图片 二、代码 import time import requests import os from lxml import etreeclass DownloadImg():爬虫进行美女图片下载def __init__(self):self.url http://xxxxxx/4kmeinv/self…...

java入门,从CK导一部分数据到mysql

一、需求 需要从生产环境ck数据库导数据到mysql,数据量大约100w条记录。 二、处理步骤 1、这里的关键词是生产库,第二就是100w条记录。所以处理数据的时候就要遵守一定的规范。首先将原数据库表进行备份,或者将需要导出的数据建一张新的表了…...

表白墙/留言墙 —— 中级SpringBoot项目,MyBatis技术栈MySQL数据库开发,练手项目前后端开发(带完整源码) 全方位全步骤手把手教学

🧸欢迎来到dream_ready的博客,📜相信你对这篇博客也感兴趣o (ˉ▽ˉ;) 📜表白墙/留言墙初级Spring Boot项目(此篇博客的简略版,不带MyBatis数据库开发) 目录 1、项目前端页面及项目…...

Stable Diffusion - StableDiffusion WebUI 软件升级与扩展兼容

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/134463035 目前,StableDiffusion WebUI 的版本是 1.6.0,同步更新 controlnet、tagcomplete、roop、easy-prompt-selector等…...

git创建新分支将项目挂载到新分支操作

1.如果是本地项目,没有关联过git // 在git创建仓库(默认master分支) // 复制克隆链接(默认下载下来的是master仓库,克隆指定分支如下所示) git clone -b 分支名 克隆地址 // 将某分支克隆下来后,直接将项目放到新文件夹内(执行以下命令提交即可) git add . git commit -m 备注…...

WEB 自动化神器 TestCafe(一)—安装和入门篇

今天小编给大家带来WEB 自动化神器 TestCafe(一) —安装和入门篇 一、TestCafe 介绍: TestCafe 是一款基于 Node.js 的端到端 Web 自动化测试框架,支持 TypeScript 或 JavaScript 来编写测试用例,运行用例,并生成自动化测试报告。…...

asp.net 学校资源信息管理系统VS开发sqlserver数据库web结构c#编程计算机网页项目

一、源码特点 asp.net 学校资源信息管理系统 是一套完善的web设计管理系统,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。 asp.net学校资源管理系统 二、功能介绍 本系统使用Microsoft Visual Studio 2019为开发工具,SQL …...

【汇编】栈及栈操作的实现

文章目录 前言一、栈是什么?二、栈的特点三、栈操作四、8086cpu操作栈4.1 汇编指令4.2 汇编代码讲解问题:回答: 4.3 栈的操作4.3 push 指令和pop指令的执行过程执行入栈(push)时,栈顶超出栈空间执行出栈(pop)时,栈顶超…...

前段-用面向对象的方式开发一个水管小鸟的游戏

首先准备好各类空文件 index.js css html 和图片 图片是下面这些,如果没有的可在这里下载 2 开发开始 好了,基础准备工作完毕,开发开始, 首先,先把天空,大地,小鸟的盒子准备好,并…...

Java中利用OpenCV进行人脸识别

OpenCV 概述 ​ OpenCV(Open Source Computer Vision Library)是一个开源计算机视觉库,它提供了丰富的工具和算法,用于处理图像和视频数据。该库由一系列高效的计算机视觉算法组成,涵盖了许多领域,包括目…...

23111708[含文档+PPT+源码等]计算机毕业设计基于javaweb的旅游网站前台与后台旅景点

文章目录 **论文截图:****实现:****代码片段:** 编程技术交流、源码分享、模板分享、网课教程 🐧裙:776871563 下面是系统运行起来后的部分截图: 论文截图: 实现: 代码片段&#xf…...

Windows安装nvm【node.js版本管理工具】

目录 下载安装包 安装 配置 配置node的国内镜像源 配置npm的国内镜像源 常用命令 查看可安装的node版本 安装指定的版本 查看已有的node版本列表 切换版本 下载安装包 https://github.com/coreybutler/nvm-windows/releases/tag/1.1.11 安装 安装过程就不贴了&#xff0…...

让资产权利归于建设者:Kiosk使过程变得更简单

区块链凭借着其将人的权利地位置于平台之上的能力,可以重塑互联网,而自托管为个人提供了控制和管理其资产和数据的能力。链上交易支持建设者和客户之间的点对点交易。这些特质联合起来,可以将数字世界从基于价值提取的模式转变为基于价值创造…...

MLP感知机python实现

from torch import nn from softmax回归 import train_ch3 import torch import torchvision from torch.utils import data from torchvision import transforms# ①准备数据集 def load_data_fashion_mnist(batch_size, resizeNone):# PyTorch中的一个转换函数,它…...

Es 拼音搜索无法高亮

目录 背景: Es 版本: 第一步 第二步 (错误步骤 - 只是记录过程) 第三步 第四步 第五步 第六步 第七步 背景: app 原有的搜索功能无法进行拼音搜索,产品希望可以支持,例如内容中含有&a…...

java线性并发编程介绍-锁(二)

2.5 重量锁底层ObjectMonitor 需要去找到openjdk,在百度中直接搜索openjdk,第一个链接就是 找到ObjectMonitor的两个文件,hpp,cpp 先查看核心属性:http://hg.openjdk.java.net/jdk8u/jdk8u/hotspot/file/69087d08d473…...

Java JPA详解:从入门到精通

描述:本文详细介绍了Java JPA的概念、使用方法以及常见问题,帮助读者从入门到精通掌握JPA。 关键词:Java JPA、Hibernate、持久层框架、ORM、数据库访问 一、Java JPA概述 Java Persistence API(JPA)是JavaEE 5规范…...

使用Open3D库处理3D模型数据的实践指南

目录 引言 一、安装Open3D库 二、加载3D模型数据 三、处理3D模型数据 1、去除模型中的无效面 2、提取模型特征 四、存储处理后的3D模型数据 五、可视化处理后的3D模型数据 六、注意事项 结论 引言 在处理3D模型数据时,Open3D库是一个功能强大且易于使用的…...

代码随想录算法训练营第五十八天丨 动态规划part18

739. 每日温度 思路 首先想到的当然是暴力解法,两层for循环,把至少需要等待的天数就搜出来了。时间复杂度是O(n^2) 那么接下来在来看看使用单调栈的解法。 什么时候用单调栈呢? 通常是一维数组,要寻找任一个元素的右边或者左边…...

Pytest自动化测试框架介绍

1、什么是单元测试框架 单元测试是指在软件开发当中,针对软件的最小单位(函数,方法)进行正确性的检查测试。 2、单元测试框架主要做什么 测试发现:从多个文件里面去找到我们需要的测试用例。 测试执行:按…...

基于SpringBoot+Redis的前后端分离外卖项目-苍穹外卖(五)

公共字段自动填充 1.1 问题分析1.2 实现思路1.3 代码开发1.3.1 步骤一1.3.2 步骤二1.3.3 步骤三 1.4 功能测试 1.1 问题分析 在前面我们已经完成了后台系统的员工管理功能和菜品分类功能的开发,在新增员工或者新增菜品分类时需要设置创建时间、创建人、修改时间、修…...

Oracle 监控的指标有哪些和oracle巡检的内容

日常监控指标: 性能指标: 查询响应时间CPU利用率内存利用率磁盘 I/O 活动网络吞吐量 空间管理: 表空间使用率数据文件增长情况Undo 表空间使用率临时表空间使用率 会话和连接: 活跃会话数等待事件监控连接数和连接池效率 数据库对…...

Uniapp有奖猜歌游戏系统源码 带流量主

有奖猜歌游戏是一款基于uni-app、uniCloud、uniAD 开发的小游戏,通过猜歌曲、观看广告赚取现金奖励。 本游戏基本特征如下: 1、玩家可以通过猜歌、做任务等方式直接获取现金奖励 2、玩家可以通过猜歌、拆红包、做任务等方式获取金币奖励,当金币累积到一定数量可以兑换现金 3…...

【算法与数据结构】前言

算法与数据结构是OI中不可或缺的一部分。 今天,让我们走进算法与数据结构独特世界。 性能 算法与数据结构都是完成任务的方法。 方法就要有性能。 有效率就有描述性能的语言。 这就是复杂度。 复杂度的描述 由于复杂度描述的是大致性能,所以采用的是…...

(六)什么是Vite——热更新时vite、webpack做了什么

vite分享ppt,感兴趣的可以下载: ​​​​​​​Vite分享、原理介绍ppt 什么是vite系列目录: (一)什么是Vite——vite介绍与使用-CSDN博客 (二)什么是Vite——Vite 和 Webpack 区别&#xff0…...

贝加莱MQTT功能

贝加莱实现MQTT Client端的功能库和例程 导入库和例程,AS Logical View中分别通过Add Object—Library,Add—Program插入MQTT库和例程。 将例程Sample放置于CPU循环周期中 定义证书存放路径,在AS Physical View 中,右击PLC—Con…...

基于JavaWeb+SSM+购物系统微信小程序的设计和实现

基于JavaWebSSM购物系统微信小程序的设计和实现 源码获取入口前言主要技术系统设计功能截图Lun文目录订阅经典源码专栏Java项目精品实战案例《500套》 源码获取 源码获取入口 前言 第一章 绪 论 1.1选题背景 互联网是人类的基本需求,特别是在现代社会,…...

为什么需要Code Review?

1. Code Review 是什么? 代码审查(Code Review)是软件开发过程中对代码进行系统性检查和评审的一项活动。它是指团队成员之间相互检查彼此编写的代码,以确保代码质量、可读性和符合编码标准等。 2. Code Review 的必要性 ● 提…...

【计算机网络笔记】ICMP(互联网控制报文协议)

系列文章目录 什么是计算机网络? 什么是网络协议? 计算机网络的结构 数据交换之电路交换 数据交换之报文交换和分组交换 分组交换 vs 电路交换 计算机网络性能(1)——速率、带宽、延迟 计算机网络性能(2)…...

Git教程1:生成和提交SSH公钥到远程仓库

要生成 Git 的公钥并将其提交到远程仓库,你可以按照以下步骤进行操作: 打开命令行终端,并确保已经安装了 Git。在终端中输入以下命令来生成 SSH 密钥对:ssh-keygen -t rsa -b 4096 -C "your_emailexample.com"这将生成…...

贝茄莱BR AS实时数据采集功能

实时数据采集功能在PLC系统调试过程中,有助于调试人员对变量变化进行监测,通过波形对比,反应不同变量间的相互作用。该测试目的在于验证贝加莱系统组态软件的实时数据采集功能。 贝加莱系统组态软件提供Trace功能,连接PLC&#x…...

Git的基本操作以及原理介绍

文章目录 基本操作创建git仓库配置name和email .git目录的结构git add & git commit.git目录结构的变化 git追踪管理的数据git的版本回退回退的原理回退的三种情况 版本库中文件的删除git分支管理分支的删除合并分支时的冲突分支的合并模式分支策略git stash不要在master分…...

2023安全与软工顶会/刊中区块链智能合约相关论文

2023安全与软工顶会/刊中区块链智能合约相关论文 前言软工顶会ISSTAFSEASEICSE 软工顶刊TOSEMTSE 安全顶会S&PUSENIX SecurityCCSNDSS 前言 主要整理了2023年四大安全顶会、四大软工顶会和两个软工顶刊中,有关区块链智能合约的相关论文。 搜索方式是&#xff1…...

word文档转换为ppt文件,怎么做?

大家是否会遇到需要将word文档转换为ppt文件的情况?除了反反复复粘贴复制以外,还有其他方法可以转换文件格式,今天给大家分享word转换ppt方法。 首先我们先将word文件打开大纲模式 然后我们将文中的大标题设置为1级标题,副标题设…...

机器视觉选型-什么时候用远心镜头

物体厚 当被检测物体厚度较大,需要检测不止一个平面时,典型应用如食品盒,饮料瓶等。 物体位置变化 当被测物体的摆放位置不确定,可能跟镜头成一定角度时。 物体上下跳动 当被测物体在被检测过程中上下跳动,如生产线上下…...

quartz笔记

Quartz-CSDN博客 上面是Quartz的一些基本知识,如果对quartz的基本API不是很了解的话,建议先看下上面的 和Linux Crontab对比 1.执行粒度: Linux Crontab是进程级 quart是线程级 2.跨平台性: Crontab只能在Linxu运行 quart是java实现,可以跨平台 3.调度集上 Crontab的…...

ER 图是什么

文章目录 前言什么是 ER图ER 图实例简化的 ER 图总结 前言 产品经理在梳理产业业务逻辑的过程中,非常重要的一项工作就是梳理各个业务对象之间的关系。如果涉及对象很对的时候,没有工具支持的话很难处理清楚。今天我们就来介绍一个梳理业务对象关系的工…...

PLC电力载波通讯,一种新的IoT通讯技术

前言: PLC-IoT 是 PLC 技术应用在物联场景的创新实践,有效解决电力线路信号干扰、衰减问题,支持 IP 化通信能力,使能终端设备智能化,构建智慧边缘联接。PLC让传统IoT有了更多的连接可能: 电力线通信技术适用的场景包括电力配用电网络、城市智慧路灯、交通路口信号灯、园…...

Elasticsearch:通过摄取管道加上嵌套向量对大型文档进行分块轻松地实现段落搜索

作者:VECTOR SEARCH 向量搜索是一种基于含义而不是精确或不精确的 token 匹配技术来搜索数据的强大方法。 然而,强大的向量搜索的文本嵌入模型只能按几个句子的顺序处理短文本段落,而不是可以处理任意大量文本的基于 BM25 的技术。 现在&…...

OpenCV图像纹理

LBP描述 LBP(Local Binary Pattern,局部二值模式)是一种用来描述图像局部纹理特征的算子;它具有旋转不变性和灰度不变性等显著的优点。它是首先由T. Ojala, M.Pietikinen, 和D. Harwood 在1994年提出,用于纹理特征提取…...

自媒体写手提问常用的ChatGPT通用提示词模板

如何撰写一篇具有吸引力和可读性的自媒体文章? 如何确定自媒体文章的主题和受众群体? 如何为自媒体文章取一个引人入胜的标题? 如何让自媒体文章的开头更加吸引人? 如何为自媒体文章构建一个清晰、逻辑严谨的框架?…...

分类预测 | Matlab实现PSO-LSTM-Attention粒子群算法优化长短期记忆神经网络融合注意力机制多特征分类预测

分类预测 | Matlab实现PSO-LSTM-Attention粒子群算法优化长短期记忆神经网络融合注意力机制多特征分类预测 目录 分类预测 | Matlab实现PSO-LSTM-Attention粒子群算法优化长短期记忆神经网络融合注意力机制多特征分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述 1…...

3GPP TS38.201 NR; Physical layer; General description (Release 18)

TS38.201是介绍性的标准,简单介绍了RAN的信道组成和PHY层承担的功能,下图是PHY层相关标准的关系。 文章目录 结构信道类型调制方式PHY层支持的过程物理层测量其他标准TS 38.202: Physical layer services provided by the physical layerTS 38.211: Ph…...

【GitLab】-HTTP 500 curl 22 The requested URL returned error: 500~SSH解决

写在前面 本文主要介绍通过SSH的方式拉取GitLab代码。 目录 写在前面一、场景描述二、具体步骤1.环境说明2.生成秘钥3.GitLab添加秘钥4.验证SSH方式4.更改原有HTTP方式为SSH 三、参考资料写在后面系列文章 一、场景描述 之前笔者是通过 HTTP Personal access token 的方式拉取…...

【如何学习Python自动化测试】—— 自动化测试环境搭建

1、 自动化测试环境搭建 1.1 为什么选择 Python 什么是python,引用python官方的说法就是“一种解释型的、面向对象、带有励志语义的高级程序设计语言”,对于很多测试人员来说,这段话包含了很多术语,而测试人员大多是希望利用编程…...

在通用jar包中引入其他spring boot starter,并在通用jar包中直接配置这些starter的yml相关属性

场景 我在通用jar包中引入 spring-boot-starter-actuator 这样希望引用通用jar的所有服务都可以直接使用 actuator 中的功能, 问题在于,正常情况下,actuator的配置都写在每个项目的yml文件中,这就意味着,虽然每个项目…...

Seaborn 回归(Regression)及矩阵(Matrix)绘图

Seaborn中的回归包括回归拟合曲线图以及回归误差图。Matrix图主要是热度图。 1. 回归及矩阵绘图API概述 seaborn中“回归”绘图函数共3个: lmplot(回归统计绘图):figure级regplot函数,绘图同regplot完全相同。(lm指lin…...