基于深度学习的细粒度图像分析综述【翻译】

🥇 版权: 本文由【墨理学AI】原创首发、各位读者大大、敬请查阅、感谢三连
🎉 声明: 作为全网 AI 领域 干货最多的博主之一,❤️ 不负光阴不负卿 ❤️

0-9

文章目录

    • 基础信息
    • 0 摘要
    • 1 INTRODUCTION
    • 2 识别与检索 RECOGNITION VS. RETRIEVAL
    • 3 问题和挑战 BACKGROUND: PROBLEM AND CHALLENGES
    • 4 基准数据集 BENCHMARK DATASETS
    • 5 细粒度图像识别 :FINE-GRAINED IMAGE RECOGNITION
      • 5.1 Recognition by Localization-Classification Subnetworks
        • 5.1.1 Employing Detection or Segmentation Techniques :使用检测或分割技术
        • 5.1.2 Utilizing Deep Filters :利用深层过滤器
        • 5.1.3 Leveraging Attention Mechanisms : 利用注意力机制
        • 5.1.4 Other Methods : 其他方法
      • 5.2 Recognition by End-to-End Feature Encoding
        • 5.2.1 Performing High-Order Feature Interactions : 执行高阶特征交互
        • 5.2.2 Designing Specific Loss Functions : 设计特别的损失函数
        • 5.2.3 Other Methods : 其他方法
      • 5.3 Recognition with External Information
        • 5.3.1 Noisy Web Data : 有噪声的Web数据
        • 5.3.2 Multi-Modal Data : 多模态数据
        • 5.3.3 Humans-in-the-Loop : 人脑循环认知
      • 5.4 Summary and Discussion
    • 6 细粒度图像检索 :FINE-GRAINED IMAGE RETRIEVAL
      • 6.1 Content-based Fine-Grained Image Retrieval : 基于内容的细粒度图像检索
      • 6.2 Sketch-based Fine-Grained Image Retrieval : 基于草图(概述)的细粒度图像检索
    • 7 细粒度识别和检索共享的通用技术
    • 8 展望 : FUTURE DIRECTIONS
    • 9 CONCLUSION
    • 📙 预祝各位 前途似锦、可摘星辰

基础信息

1-0

部分简译(BD翻译)

1-1

[ 图 1 ]

0 摘要

细粒度图像分析(FGIA)是计算机视觉和模式识别中一个长期存在的基本问题,是一系列实际应用的基础。FGIA的任务是分析下属类别的视觉对象,例如鸟类物种或汽车模型。细粒度图像分析固有的小类间变化和大类内变化使其成为一个具有挑战性的问题。利用深度学习的进步,近年来我们见证了以深度学习为动力的FGIA的显著进步。在本文中,我们对这些进展进行了系统的综述,试图通过整合两个基本的细粒度研究领域——细粒度图像识别和细粒度图像检索,重新定义和拓宽FGIA领域。此外,我们还审查了FGIA的其他关键问题,如公开的基准数据集和相关的领域特定应用程序。最后,我们强调了一些需要社区进一步探索的研究方向和开放性问题。

  • Index Terms—Fine-Grained Images Analysis; Deep Learning; Fine-Grained Image Recognition; Fine-Grained Image Retrieval.
  • 关键词:细粒度图像分类 ;深度学习; 细粒度图像识别;细粒度图像检索;

1 INTRODUCTION

人类视觉系统天生具有精细的图像推理能力——我们不仅能够区分狗和鸟,还能够区分西伯利亚哈士奇犬和阿拉斯加雪橇犬(见图1)。细粒度图像分析(FGIA) 被引入学术界也是为了同样的目的,即教机器以细粒度的方式“看”。FGIA方法在工业和研究领域都有广泛的应用,例如自动生物多样性监测[1]、[2]、[3]、智能零售[4]、[5]、[6]和智能交通[7]、[8],并在保护[9]和商业[10]等领域产生了积极影响。

FGIA在计算机视觉中的目标是检索和识别属于超级类别(又名元类别或基本级别类别)多个下属类别的图像,例如不同种类的动物/植物、不同型号的汽车、不同种类的零售产品、,因此,关键的挑战在于理解细粒度视觉差异,这些差异足以区分总体外观高度相似但细粒度特征不同的对象。自近二十年前成立以来,这项技术取得了长足的进步。深度学习(Deep learning)[14]尤其是作为一种有效的鉴别特征学习方法出现的,并在FGIA领域取得了显著的突破。基于深度学习的FGIA极大地促进了这些方法在各种应用场景中的实际部署【5】、【7】、【8】、【9】。

近年来,计算机视觉和机器学习研究界对FGIA产生了极大的兴趣。粗略统计表明,在每一次高级视觉和机器学习会议上,每年平均发表超过10篇关于基于深度学习的FGIA的会议论文。还有一些关于FGIA的特殊问题【15】、【16】、【17】、【18】、【19】。此外,许多关于FGIA的有影响力的比赛经常在在线平台上举行。代表包括一系列不自然竞赛(针对大量自然物种)[20]、自然保护渔业监测(针对鱼类物种分类)[21]、座头鲸鉴定(针对鲸鱼身份分类)[22]等。每场比赛都吸引了来自世界各地的数百名参赛者,有些甚至超过2000支队伍。顶级国际会议也举办了针对FGIA主题的具体教程和研讨会,例如,【23】、【24】。

尽管人们对FGIA有着如此浓厚的兴趣,但FGIA与深度学习的研究仍然支离破碎。因此,本次综述的目的是(i)全面总结FGIA的最新成就,尤其是深度学习技术带来的成就,更重要的是(ii)通过整合FGIA不同方面的研究,提出统一的研究前沿。我们的方法与现有调查【25】、【26】明显不同,现有调查只关注细粒度识别/分类问题,正如我们所说,这只是FGIA更大规模研究的一部分。特别是,我们试图通过强调细粒度识别与并行但互补的细粒度图像检索任务之间的协同作用,重新定义和拓宽细粒度图像分析的领域,这也是FGIA的一个组成部分。

我们的调查以一种独特的基于深度学习的视角,以广泛、系统和全面的方式回顾FGIA的最新进展。我们的主要贡献总结如下:

  • 我们拓宽了FGIA领域,提供了一个统一的景观,促进细粒度图像分析中相关问题之间的协同作用。

  • 我们对基于深度学习的FGIA技术进行了全面审查,包括公认的问题定义、基准数据集、FGIA方法的不同系列,以及涵盖特定领域的FGIA应用。特别是,我们对这些方法进行分类组织(见图2),为读者提供该领域最新技术的快速快照。

  • 我们在几个公开可用的数据集上整合了现有方法的性能,并提供讨论和见解,为未来的研究提供信息。

  • 最后,我们将讨论现有挑战和未决问题,并确定新趋势和未来方向,为社区解决这些问题提供可行的路线图。

  • 最后,为了不断跟踪这一快速发展领域的最新发展,我们提供了一个随附的网页,根据我们基于问题的分类法,对解决FGIA问题的论文进行分类

2-1

[ 图 2 ]

2 识别与检索 RECOGNITION VS. RETRIEVAL

以往对FGIA的综述,例如[25]、[26],主要集中在细粒度识别上,因此没有揭示FGIA问题的所有方面。在本综述中,我们首次介绍了细粒度图像分析的两个基本领域(即识别和检索),以便全面回顾基于深度学习的FGIA技术的最新进展。在图2中,我们提供了一个新的分类法,该分类法反映了当前FGIA的情况。

细粒度识别: 我们将不同种类的细粒度识别方法组织为三种范式,即1)通过本地化分类子网进行识别,2)通过端到端特征编码进行识别,以及3)使用外部信息进行识别。 细粒度识别是FGIA中研究最多的领域,因为识别是大多数视觉系统的基本能力,因此值得长期持续研究。

细粒度检索: 根据查询图像的类型,我们将细粒度检索方法分为两组,即(1)基于内容的细粒度图像检索和(2) sketch-based(基于描述)的细粒度图像检索。与细粒度识别相比,细粒度检索是近年来FGIA的一个新兴领域,越来越受到学术界和工业界的关注。

识别和检索差异: 细粒度识别和检索的目的都是识别不同细粒度对象之间有区别但细微的差异。然而,细粒度识别是一项封闭的任务,具有固定数量的从属类别。相反,细粒度检索将问题扩展到具有无限子类别的开放世界设置。此外,细粒度检索还旨在对所有实例进行排名,以便根据查询中的细粒度细节对描述感兴趣概念的图像(例如,相同的子类别标签)进行排名。

3 问题和挑战 BACKGROUND: PROBLEM AND CHALLENGES

3-1

细粒度图像分析(FGIA)侧重于处理属于同一元类别的多个次级类别的对象(例如,不同种类的鸟类或不同型号的汽车),通常涉及两个中心任务:细粒度图像识别和细粒度图像检索。如图3 所示,细粒度分析位于基本级别类别分析(即通用图像分析)和实例级别分析(例如个体识别)之间的连续统一体中。

3-2

具体而言,FGIA与一般图像分析的区别在于,在一般图像分析中,目标对象属于粗粒度元类别(即基本级别类别),因此在视觉上非常不同(例如,确定图像中是否包含鸟、水果或狗)。然而,在FGIA中,由于对象通常来自同一元类别的子类别,因此问题的细粒度特性导致它们在视觉上相似。作为细粒度识别的一个示例,在图1中,任务是对不同品种的狗进行分类。为了实现精确的图像识别,需要捕捉细微的视觉差异(例如,耳朵、鼻子或尾巴等辨别特征)。 其他FGIA任务(如检索)也需要描述此类特征。此外,如前所述,由于高度相似的子类别导致的类间变化较小,以及类内姿势、比例和旋转变化较大,因此问题的细粒度性质具有挑战性(见图4)。因此,它与一般图像分析(即小类内变化和大类间变化)相反,是什么使FGIA成为一个独特且具有挑战性的问题。

虽然实例级分析通常针对对象的特定实例,而不仅仅是对象类别,甚至对象子类别,但如果我们向下移动粒度范围,在极端情况下,可以将个人识别(例如面部识别)视为细粒度识别的特殊实例,其中粒度是在个人身份级别。例如,人员/车辆重新识别[7]、[34]可以被视为一项细粒度任务,其目的是确定是否对同一特定人员/车辆拍摄了两张图像。在实践中,这些工作使用FGIA的相关方法解决了相应的领域特定问题,例如,通过捕获对象(人脸、人和车辆)的区分部分【8】、【35】、【36】、发现从粗到细的结构信息【37】、开发基于属性的模型【38】、【39】等等。对这些实例级问题的研究也非常活跃。然而,由于此类问题不在经典FGIA的范围内(见图3),有关更多信息,我们请读者参阅这些特定主题的调查论文,例如,[7]、[34]、[40]。在下文中,我们首先阐述经典FGIA的定义。

下面这几个概念化公式,E:期望、L:Loss ;不影响文章的阅读理解

3-3
3-4
3-5

4 基准数据集 BENCHMARK DATASETS

4-11
4-12

近年来,vision社区发布了许多涵盖不同领域的细粒度基准数据集,例如:鸟类【1】、【13】、【41】、狗【27】、【42】、汽车【43】、飞机【44】、花卉【45】、蔬菜【46】、水果【46】、食品【47】、时尚【6】、【33】、【38】、零售产品【5】、【48】等。此外,值得注意的是,即使是最流行的大规模图像分类数据集,即ImageNet【49】,也包含了涵盖许多狗和鸟子类别的细粒度类。

图5中 可以找到一些来自这些细粒度基准数据集的代表性图像。在表1中,我们总结了最常用的图像数据集,并指出了它们的元类别、图像数量、类别数量、主要任务和其他可用的监控,例如边界框、零件注释、层次标签、属性标签和文本描述(参见图6)。这些数据集是该领域取得重大进展的最重要因素之一,不仅是衡量和比较竞争方法性能的共同基础,而且还将该领域推向日益复杂、实用和具有挑战性的问题。
4-1

5 细粒度图像识别 :FINE-GRAINED IMAGE RECOGNITION

细粒度图像识别是近十年来FGIA最活跃的研究领域。细粒度识别旨在区分许多视觉上相似的从属类别,这些类别属于相同的基本类别,例如动物物种的精细区分【2】、汽车【43】、水果【46】、飞机模型【44】等等。它经常应用于实际任务中,例如生态系统保护(识别生物物种)[9]、智能零售系统[5]、[10]等。由于区分区域定位和细粒度特征学习的挑战,识别细粒度类别很困难。研究人员试图从不同的角度应对这些挑战。在本节中,我们将回顾自深度学习出现以来的主要细粒度识别方法。

大体上,现有的细粒度识别方法可分为以下三种主要范式

  • Recognition by localization-classification subnetworks;
  • Recognition by end-to-end feature encoding;
  • Recognition with external information.

其中,前两种范式仅通过使用与细粒度图像相关的监督信息来限制自身,如图像标签、边界框、部分注解等。为了进一步解决模糊的细粒度问题,有一系列工作使用了其他信息,如图像拍摄的地点和时间【60】、【61】、web图像【62】、【63】或文本描述【58】, [59]. 为了直观地展示这些具有代表性的基于深度学习的细粒度识别方法,我们在图7中按时间顺序对它们进行了概述,将它们组织到上述三种范式中。

对于性能评估,当测试集是平衡的(即每个类中有相似数量的测试示例)时,细粒度识别中最常用的度量是数据集所有次级类别的分类精度。

5-0

5.1 Recognition by Localization-Classification Subnetworks

5.1.1 Employing Detection or Segmentation Techniques :使用检测或分割技术

使用检测或分割技术【116】、【117】、【118】很容易定位与细粒度对象部分相对应的关键图像区域,例如鸟头、鸟尾、车灯、狗耳朵、狗躯干等。由于定位信息,即零件级边界框或分割遮罩,该模型可以通过这些部分获得更具区分性的中级(部分级)表示。因此,它可以进一步增强分类子网的学习能力,从而显著提高最终的识别准确率.

该范式中的早期工作使用了额外的密集部分注释(也称为关键点本地化,参见左图6)来定位对象的语义关键部分。例如,Branson等人[64]建议使用检测到的零件关键点组来计算多个扭曲图像区域,并通过姿势归一化进一步获得相应的零件级特征。在同一时期,Zhang等人【65】首先基于地面真值零件标注生成零件级边界框,然后训练R-CNN【118】模型来执行零件检测。Di等人[67]进一步提出了一种阀门连接功能,该功能不仅连接了所有子网络,而且还根据零件对齐结果细化了定位。为了集成语义零件检测和抽象,SPDA-CNN【69】设计了一种自顶向下的方法,通过继承先前的几何约束生成零件级建议,然后使用更快的R-CNN【116】返回零件定位预测。其他方法利用了分段信息。PS-CNN【68】和Mask CNN【31】采用分割模型获得零件/对象遮罩,以帮助 part/object 定位。与检测技术相比,分割可以实现更精确的 part localization 【31】,因为分割的重点是更精细的像素级目标,而不仅仅是粗糙的边界框。

然而,使用传统检测器或分割模型需要密集的零件标注进行训练,这是一项劳动密集型工作,并且会限制真实世界细粒度应用程序的可扩展性和实用性。因此,希望仅使用图像级标签来准确定位细粒度零件【70】、【72】、【73】、【74】、【75】。这些方法集被称为“弱监督”,因为它们只使用图像级标签。值得注意的是,自2016年以来,在这种弱监督环境中开发细粒度方法的趋势明显,而不是在强监督环境中(using part annotations and bounding boxes),参见表2。

在基于弱监督定位的分类环境中,识别方法通常依赖于无监督的方法来获取与目标部分相对应的语义组。具体而言,Zhang等人【70】采用空间金字塔策略【119】to generate part proposals from object proposals.。然后,通过使用聚类方法,他们生成零件建议原型聚类,并进一步选择有用的聚类,以获得有区别的 part-level features 。在这种弱监督的情况下,也通常使用基于共分割的方法。一种方法是使用共同分割来获得对象掩码,而无需监督,然后执行启发式策略,例如零件约束[72]或零件对齐[66],以定位细粒度 parts 。

值得注意的是,以前的大多数工作忽略了区分 part-level 特征之间的内部语义关联。具体地说,上述方法独立地选择区分区域并直接利用它们的特征,而忽略了对象的特征是相互语义相关的,并且区域组可以更具区分性的事实。因此,最近,一些方法试图联合学习 part-level features 之间的相互依赖关系,以获得更通用、更强大的细粒度图像 representations 。通过执行不同的特征融合策略(例如,LSTMs【71】、【73】、图形【74】或知识提取【75】),这些联合 part feature 学习方法比以前的独立 part feature 学习方法具有更高的识别精度。

5.1.2 Utilizing Deep Filters :利用深层过滤器
5.1.3 Leveraging Attention Mechanisms : 利用注意力机制

尽管以前的本地化分类细粒度方法显示出很强的分类性能,但它们的一个主要缺点是需要对对象部分进行有意义的定义。然而,在许多应用程序中,可能很难表示甚至定义某些对象类的公共部分,例如,非结构化对象,如食物盘[47]或带有重复部分的花[45]。与这些定位分类方法相比,寻找 parts 的一个更自然的解决方案是利用注意机制作为子模块。这使得CNN能够处理细粒度对象的松散定义区域,因此已成为一个有希望的方向。

众所周知,注意力在人类感知中起着重要作用。为了更好地捕捉视觉结构,人类利用一系列部分瞥见并有选择地聚焦于物体或场景的显著部分【127】。受此启发,Fu等人和Zheng等人[83]、[84]率先将注意力处理结合起来,以提高CNN的细粒度识别精度。具体而言,RA-CNN【83】使用一个重复的视觉注意模型来选择一系列注意区域(对应于对象“部分”1)。RA-CNN以从粗到细的方式,以先前的预测为参考,迭代生成区域注意图。MA-CNN【84】配备了多注意CNN,可以并行返回多个区域注意。随后,Peng等人[85]和Zheng等人[88]提出了多层次注意模型,以获得层次化的注意信息(即对象和部分层次)。He等人【128】运用多层次的注意力,通过一个n路径端到端鉴别定位网络,同时定位鉴别区域并编码其特征,为每个图像同时定位多个鉴别区域。与上述单层次注意方法相比,这种多层次注意可以产生多种互补信息。Sun等人【27】结合了通道注意【129】和度量学习【130】,以加强不同参与区域之间的相关性。Zheng等人【87】开发了一个三线注意采样网络,从数百个零件方案中学习细粒度细节,并有效地将学习到的特征提取到单个CNN中。最近,Ji等人【89】提出了一种基于注意的卷积二叉神经树,该树将注意机制与树结构结合起来,以促进粗到细的层次细粒度特征学习。虽然注意机制在细粒度识别中获得了很高的准确性,但在小规模数据的情况下,它往往会过度拟合。

5.1.4 Other Methods : 其他方法

5.2 Recognition by End-to-End Feature Encoding

细粒度识别的第二种学习范式是端到端特征编码。与其他视觉任务一样,特征学习在细粒度识别中也起着基础作用。由于子类别之间的差异通常非常细微和局部,因此仅使用完全连接的层捕获全局语义信息会限制细粒度模型的表示能力,从而限制最终识别性能的进一步提高。因此,已经开发了一些方法,旨在通过以下方式学习统一但有区别的图像表示,以建模细粒度类别之间的细微差异:1)通过执行高阶特征交互,2)通过设计新的损失函数,以及3)通过其他方式。

5-9

5.2.1 Performing High-Order Feature Interactions : 执行高阶特征交互

特征学习在检索、检测、跟踪等几乎所有视觉任务中都起着至关重要的作用。深度卷积网络的成功主要归功于学习到的有区别的深度特征。在深度学习的最初时代,全连接层的特征(即激活)通常用作图像表示。后来,发现更深卷积层的特征图包含中高层信息,例如对象部分或完整对象【134】,这导致卷积 features/descriptors [77], [135], cf. Figure 9。此外,与完全连接的输出相比,对这些局部卷积描述符应用编码技术已经取得了显著的改进【135】、【136】、【137】。在某种程度上,编码技术的这些改进来自最终特征中编码的高阶统计信息。尤其是对于细粒度识别,当SIFT特征的Fisher向量编码在几个细粒度任务中优于微调AlexNet时,高阶统计数据的端到端建模需求变得明显【138】。

基于协方差矩阵的表示法 [139], [140] 是一种具有代表性的高阶(即二阶)特征交互技术,已用于计算机视觉和机器学习。设Vd×n=[v1,v2,…,vn]表示一个数据矩阵,其中每列包含一个局部描述符vi∈ Rd,从图像中提取。V上对应的d×d样本协方差矩阵表示为∑=V´V´>(或简称V´>),其中V´表示居中的V。最初,该协方差矩阵被提议作为区域描述符,例如,表征 image patch中像素的颜色强度的协方差。近年来,它作为一种很有前途的二阶混合图像表示方法被用于视觉识别。

近年来,通过将基于协方差矩阵的表示与深度描述符相结合,一系列方法在细粒度识别中显示出了良好的准确性。其中最具代表性的方法是双线性CNN[95],[141],它将图像表示为来自两个深度CNN的特征的集合外积,从而对卷积激活的二阶统计信息进行编码,从而明显改善细粒度识别。当两个CNN设置为相同时,此外积本质上会导致协方差矩阵(以V V>的形式)。然而,外积运算会产生极高维的特征,即双线性合并特征被重塑为向量z=vec(V V>)∈ 第2条。这导致深度网络分类模块中的参数数量大幅增加,这可能导致过度拟合,使其在实际应用中变得不切实际,尤其是在大规模应用中。为了解决这个问题,Gao等人【96】应用张量草图【142】来近似原始双线性池运算的二阶统计量,并减少特征维数。Kong等人【98】采用了协方差矩阵的低阶近似,并进一步学习了低阶双线性分类器。结果分类器可以在不显式计算双线性特征矩阵的情况下进行评估,从而大大减少了参数大小。Li等人【143】还通过使用低秩约束执行二次变换来模拟成对特征交互。Yu等人【103】在双线性合并之前使用降维投影来缓解维数爆炸。Zheng等人【105】将双线性池应用于特征信道组,其中双线性变换通过计算每组内的成对交互来表示。这也大大节省了计算成本。

除了这些方法之外,一些方法还试图捕获更高阶(多于二阶)的特征交互,以生成更强、更具辨别力的特征表示。Cui等人【97】介绍了一种内核池方法,该方法通过紧凑的特征映射捕获任意有序和非线性特征。Cai等人【100】提出了一种基于多项式核的预测器,用于建模多层卷积激活的高阶统计量,以建模零件交互。随后 DeepKSPD【102】是为了以端到端的可训练方式联合学习深层局部描述符和基于核矩阵的协方差表示。

As L2 特征归一化”可以抑制高响应的常见模式,从而增强这些区别性特征(即视觉突发性问题[104]、[144]),因此上述基于双线性池的方法通常执行元素平方根归一化,然后对协方差矩阵进行“2-归一化”,以提高性能。然而,仅仅采用` 2-归一化会导致高阶信息不稳定,也会导致收敛速度慢。为此,许多方法探索了基于奇异值分解(SVD)或特征分解(EIG)的非线性缩放,以获得二阶表示的更高稳定性。具体而言,Li等人[145]提出将幂指数应用于双线性特征的特征值,以获得更好的识别精度。G2DeNet【99】通过高斯嵌入和矩阵平方根归一化,进一步组合了互补的一阶和二阶信息。iSQRT COV【101】和改进的B-CNN【146】使用牛顿-舒尔茨迭代近似矩阵平方根归一化,仅使用矩阵乘法来减少训练时间。最近,MOMN【106】被提出在多目标优化框架内同时规范化平方根、低秩和稀疏性方面的双线性表示。

5.2.2 Designing Specific Loss Functions : 设计特别的损失函数

损失函数在深度网络的构建中起着重要作用。它们可以直接影响所学习的分类器和特征。因此,设计细粒度裁剪损失函数是细粒度图像识别的一个重要方向。

与一般的图像识别不同,在细粒度分类中,属于不同类别的样本在视觉上非常相似,因此有理由防止分类器对其输出过于自信(即阻止低熵)。根据这一直觉,[107]还在细粒度任务上训练网络时,也最大化了输出概率分布的熵。类似地,Dubey等人【108】使用成对混淆优化方法,通过将不同类别的条件概率分布更紧密地结合在一起并混淆深层网络,来解决细粒度识别中的过度拟合和样本特定瑕疵。这可以减少预测的过度可信度,从而提高泛化性能。

人类可以通过比较图像对有效地识别对比线索,这种度量/对比学习在细粒度识别中也很常见。具体而言,Sun等人【27】首先学习了多个部分对应的注意区域,然后利用度量学习来拉近相同注意的同一类特征,同时将不同注意或不同类特征推离。此外,他们的方法可以在训练过程中连贯地增强不同对象部分之间的相关性。CIN【109】通过对比通道交互模块拉近正对,同时推开负对,该模块还利用样本之间的通道相关性。API Net[111]也建立在一个度量学习框架上,可以自适应地从一对图像中发现对比线索,并通过基于成对注意的交互来区分它们。

文献中还探讨了设计单个损失函数来定位零件级模式并进一步聚合图像级表示。具体而言,Sun等人【110】开发了一种基于梯度增强的损失函数以及多样化块,以迫使网络快速移动以区分硬类。具体而言,多样化块抑制了类激活图的区分区域,因此网络被迫寻找替代信息特征。梯度引导损失集中于每个图像的困难(即混乱)类,并提高其梯度。**MC Loss(MC Loss)[112]通过关注各个part-level regions,鼓励特征通道更具辨别力。他们提出了一种 single loss ,**不需要对细粒度对象的部分本地化进行任何特定的网络修改。

上述基于损失函数的细粒度识别方法与主干无关,通常可以通过使用更强大的主干网络体系结构来提高其性能。

5.2.3 Other Methods : 其他方法

除了对高阶特征之间的相互作用进行建模和设计新的损失函数外,另一组方法还涉及构造细粒度定制辅助任务,以获得统一且有区别的图像表示。

BGL【50】被提议将丰富的二部图标签纳入CNN训练中,以建模细粒度类之间的重要关系。DCL【113】执行了一个“销毁和构造”过程,以提高识别的难度,从而引导网络将重点放在区分部分上进行细粒度识别(即通过销毁学习),然后建模对象各部分之间的语义关联(即通过构造学习)。与DCL类似,Du等人[115]使用拼图生成器代理任务处理细粒度表示学习,以鼓励网络在不同粒度级别学习,同时将这些级别的特征融合在一起。最近,制定了一种更直接的细粒度特征学习方法[147],目的是以对抗式学习方式生成身份保持的细粒度图像,以直接获得统一的细粒度图像表示。作者表明,这种直接特征学习方法不仅保留了生成图像的身份,而且在其他具有挑战性的任务(如细粒度小样本学习)中显著提高了视觉识别性能[148]。

5.3 Recognition with External Information

除了传统的识别范式(仅限于使用与图像本身相关的监督信息)之外,另一种范式是利用外部信息,例如web数据、多模式数据或人机交互,以进一步协助细粒度识别。

5.3.1 Noisy Web Data : 有噪声的Web数据

为了识别不同细粒度类别之间的细微差异,需要大型且标记良好的训练数据集。然而,由于需要领域专业知识和无数细粒度类别(例如,一个元类别中可能有数万个以上的次级类别),很难获得细粒度类别的准确人类标签。因此,一些细粒度识别方法试图利用免费但有噪声的web数据来提高识别性能。这一领域的大多数现有工作大致可分为两个方向:

第一个方向涉及将感兴趣类别的带噪标记web数据作为训练数据进行刮除,这被视为webly监督学习[62]、[154]、[161]。这些方法通常集中于:1)克服容易获取的web图像和标准数据集中标记良好的数据之间的领域差距;2)减少噪声数据带来的负面影响。例如,HARCNN【149】利用细粒度数据中固有的易于注释的元类,还从web上获取了大量标记了元类的图像,以规范化模型,以多任务方式提高识别精度(即细粒度和元类数据识别任务)。Xu等人【150】研究了细粒度web图像是否可以提供弱标记信息,以增强深层特征,从而通过构建多实例(MI)学习器,即将图像视为MI包,将提议部分边界框视为MI实例,从而有助于稳健的对象分类器。Krause等人【151】引入了一种替代方法,通过排除出现在多个类别的搜索结果中的图像,将通用分类模型与web数据相结合,以对抗跨域噪声。受对抗式学习的启发,[162],[62]提出了一种对抗式区分损失,以鼓励标准数据和web数据之间的表示一致性。

5.3.2 Multi-Modal Data : 多模态数据
5.3.3 Humans-in-the-Loop : 人脑循环认知

Human-in-the-loop methods [165] 将人类知识的互补优势与计算机视觉算法相结合。在Loop中对人类进行细粒度识别通常是以迭代的方式进行的,并且要求视觉系统在向人类查询帮助时具有智能。一般来说,对于这些类型的识别方法,在每一轮中,系统都试图了解人类是如何进行识别的,例如,通过要求专家标记图像类别【166】,或通过识别关键部位定位并选择可鉴别特征【167】进行细粒度识别。

表格2、表格 3 分别对应着 5.1、5.2、5.3 三个分类下相关的网络模型,在 细粒度分类数据集上的精度 总结

5-9
5-10
5-11

5.4 Summary and Discussion

The CUB200-2011 [13], Stanford Dogs [42], Stanford Cars [43], and FGVC Aircraft [44] benchmarks是细粒度识别中最具影响力的数据集。表2和表3总结了属于上述三种识别学习范式的细粒度方法所取得的结果,即“本地化分类子网识别”、“端到端特征编码识别”和“外部信息识别”。图7显示了按时间顺序排列的概述。主要观察结果总结如下:

  • 所回顾的方法与上述细粒度识别挑战之间存在明确的对应关系。具体而言,捕获细微视觉差异的挑战可以通过定位分类方法(参见第5.1节)或通过基于特定构造的任务【113】、【115】、【147】以及 human-in-the-loop 方法来克服。通过执行高阶特征交互或利用多模态数据,可以缓解表征细粒度定制特征的挑战。 最后,通过设计特定的损失函数[107]、[108]、[110],可以在一定程度上解决FGIA的挑战性,以获得更好的精度。

  • 在不同的学习范式中, the “recognition by localization-classification subnetworks” and “recognition by end-to-end feature encoding” 是最常被研究的两种范式。

  • 细粒度对象类别的 Part-level 推理提高了细粒度识别的准确性,尤其是对于非刚性对象,例如鸟类。近年来,区分部分之间的内部语义交互/相关性建模越来越受到关注,cf. [27], [71], [73], [74], [75], [81], [94], [109].

  • Non-rigid 细粒度对象识别(例如鸟或狗)比刚性细粒度对象(例如汽车或飞机)更具挑战性,这部分是由于对象外观的变化。

  • 细粒度图像识别性能随着图像分辨率的提高而提高【168】。不同图像分辨率的CUB200-2011对比结果如表4所示。

  • “recognition by localization-classification subnetworks” 范式在识别和本地化能力之间存在权衡,这可能会影响单个集成网络的识别精度。当试图获得更好的识别结果时,这种权衡也反映在实践中,因为训练通常涉及两个网络的交替优化或分别训练这两个网络,然后进行联合调整。交替或多级策略使综合网络的调整复杂化。

  • 虽然有效,但与本地化分类子网络相比,大多数端到端编码网络在非刚性和刚性视觉域中的人类可解释性较差,且准确性不太一致。最近,人们观察到,一些高阶池方法试图通过呈现视觉解释来理解此类方法【141】或从优化角度来理解此类方法【169】。

  • “Recognition by localization-classification subnetworks” based methods are challenging to apply when the fine-grained parts are not consistent across the metacategories (e.g., iNaturalist [2]). Here, unified end-to-end feature encoding methods are more appropriate.

6 细粒度图像检索 :FINE-GRAINED IMAGE RETRIEVAL

细粒度检索是FGIA的另一个基本方面,近年来得到了更多的关注。细粒度检索与细粒度识别的区别在于,除了正确估计子类别外,还需要对所有实例进行排序,以便根据查询中的细粒度细节对属于同一子类别的图像进行排名。具体地说,**在细粒度检索中,我们会得到一个相同元类别(例如鸟类或汽车)的图像数据库和一个查询,目标是基于相关细粒度特征返回与查询相关的图像。**与一般图像检索相比,细粒度检索侧重于检索相同类别类型的图像(例如,相同的附属动物物种或相同的车辆模型),而一般图像检索侧重于根据内容(例如,纹理、颜色和形状)的相似性检索接近重复的图像。更具挑战性的是,细粒度类别的对象表现出细微的差异,并且可能在姿势、比例和方向上有所不同,或者可能包含较大的跨模态差异(例如,在基于草图的检索的情况下)。

细粒度检索技术已广泛应用于商业应用,如电子商务(搜索细粒度产品[172])、触摸屏设备(通过草图搜索细粒度对象[53])、犯罪预防(搜索人脸照片[173])等。根据查询图像的类型,细粒度图像检索研究最多的领域可分为两组:基于细粒度内容的图像检索(FG-CBIR,参见图11)和基于细粒度草图的图像检索(FG-SBIR,参见图12)。细粒度图像检索也可以扩展为细粒度跨媒体检索[57],它可以利用一种媒体类型检索任何媒体类型,例如使用图像检索相关文本、视频或音频。

6.1 Content-based Fine-Grained Image Retrieval : 基于内容的细粒度图像检索

6.2 Sketch-based Fine-Grained Image Retrieval : 基于草图(概述)的细粒度图像检索

7 细粒度识别和检索共享的通用技术

细粒度图像识别和检索的任务是相辅相成的。因此,FGIA文献中存在两个问题的共同技术。在本节中,我们将从方法和基本思想方面讨论这些常见技术,目的是推动这些领域的进一步工作。

Common Methods: 在深度学习的背景下,细粒度识别和检索任务都需要有区别的深层特征嵌入来区分细粒度对象之间的细微差异。识别的目的是区分类别标签,检索的目的是返回准确的排名。为了实现这些目标, deep metric(度量标准) learning and multi-modal matching可以被视为两种常见的技术,适用于细粒度识别和检索。

Specifically, deep metric learning [188] 试图将图像数据映射到 embedding space,在该空间中,相似的细粒度图像紧密相连,而不同的图像相隔很远。一般来说,细粒度识别通过分类损失实现度量学习,其中它包括一个权重矩阵,用于将embedding space 转换为细粒度类logit的向量,例如,[27]、[109]、[111]。然而,细粒度检索任务(大多数情况下没有明确的图像标签)上的度量学习总是通过 embedding 损失来实现的,embedding 损失对一批细粒度样本之间的关系进行操作,例如,[28],[170]。

Recently, multi-modal matching methods [29], [30] 已经成为一种强大的表示学习方法,可以同时增强细粒度识别和检索任务。 特别是,Mafla等人[29]利用文本信息和视觉线索来理解这两种模式之间现有的内在关系。【30】采用图卷积网络进行多模态推理,获得关系增强的多模态特征。这种方法揭示了FGIA中多模态学习的新发展趋势。

Common Basic Ideas:

除了这些常用方法之外,细粒度识别和检索都有许多基本思想,例如,选择有用的深层描述符[31]、[32],减少细粒度预测的不确定性[107]、[108]、[171],以及解构/构建细粒度图像以学习细粒度模式[113]、[178]。这些观察结果进一步说明了在本文中整合细粒度识别和细粒度检索工作的好处。

8 展望 : FUTURE DIRECTIONS

深度学习的进展使细粒度图像分析(FGIA)取得了重大进展。尽管取得了成功,但仍有许多问题没有解决。因此,在本节中,我们旨在明确指出这些问题,并强调一些开放性问题,以推动该领域的未来发展。

Precise Definition of “Fine-Grained”: 虽然FGIA作为计算机视觉和模式识别的一个蓬勃发展的子领域已经存在多年,但FGIA中的一个基本问题仍然存在,即名称缺乏精确的定义[189],[190]。具体来说,社区总是通过粗略地说明其目标对象属于一个元类别,定性地将所谓的细粒度数据集/问题描述为“细粒度”。然而,“细粒度”的精确定义可以使我们定量地评估数据集的粒度。此外,它不仅可以更好地了解不同粒度任务的当前算法性能,还可以为细粒度社区带来更多的视野指导。

Next-Generation Fine-Grained Datasets: Classic finegrained datasets such as CUB200-2011, Stanford Dogs, Stanford
Cars, and Oxford Flowers, 绝大多数用于FGIA的绩效基准测试。然而,按照现代标准,这些数据集规模相对较小,在性能方面基本饱和。 在未来,有必要看到更多的大规模细粒度数据集被推广,以取代这些现有的基准,例如 iNat2017 [2], Dogs-in-the-wild [27], RPC [5]. Stateof-the-art results on these datasets are 72.6% [191], 78.5% [27], 80.5% [192], 这显示了进一步改进的巨大空间。此外,这些新的基准应该包含并体现与细粒度学习相关的所有挑战,除了大规模(就子类别和图像的数量而言),还应包含在真实环境中捕获的各种图像,并包含丰富的注释。然而,高质量的细粒度数据集通常需要领域专家进行注释。这在一定程度上限制了细粒度数据集的开发。作为一种潜在的解决方案,构建一个未标记的大规模细粒度数据库并采用无监督的特征学习技术(例如,自监督学习[193])可以有利于区分性特征学习,并进一步促进无监督的下游任务[3]。此外,合成数据[194]是一种越来越流行的深度模型训练工具,为FGIA提供了进一步探索的机会。

Application to 3D Fine-Grained Tasks: 大多数现有的FGIA方法都以2D细粒度图像为目标,而3D信息(如3D姿势标签或3D形状信息)的价值尚不明确。三维对象表示如何提高二维FGIA方法的性能是一个有趣而重要的问题。另一方面,2D FGIA方法如何推广到3D细粒度应用【195】,例如机器人拣箱、机器人感知或增强现实,也值得未来关注。要在这一领域取得进展,还存在一些悬而未决的问题,这些问题与获取许多 object categories, e.g., animals or other non-rigid objects.的精确3D注释相关。

Robust Fine-Grained Representations: 使FGIA具有独特挑战性的一个重要因素是真实世界细粒度图像中的巨大多样性,包括视点、对象比例、姿势的变化,以及零件变形、背景杂波等因素。同时,FGIA通常要求识别细粒度模式(源自有区别但细微的部分),以推动预测,这使得它对图像分辨率、损坏和干扰以及敌对示例更加敏感。尽管在深度学习方面取得了进展,但当前的模型仍然缺乏对这些变化或干扰的鲁棒性,这严重限制了它们在许多需要高精度的实际应用中的可用性。因此,如何有效地获得鲁棒的细粒度表示(即不仅包含区分性的细粒度视觉线索,而且还抵抗无关信息的干扰)需要进一步深入的探索。
如上所述,当与下一代细粒度数据集结合时,存在与这些领域中自我监督学习的效用相关的问题【196】。例如,自我监督学习是否有助于改进FGIA,我们是否对细粒度数据执行自我监督以生成健壮的细粒度表示 ?

Interpretable Fine-Grained Learning(可解释的细粒度学习): 与非专家人类相比,单方面实现更高的准确性可能不再是FGIA的主要目标。细粒度模型不仅要获得高精度,而且要具有可解释性,这一点非常重要【197】。更具可解释性的FGIA可以帮助社区在使用深度学习处理细粒度任务时解决一些挑战,例如,语义调试 network representations、通过语义级别的人机通信进行学习、设计更有效的、特定于任务的深度模型等。

Fine-Grained Few-Shot Learning (小样本学习): 人类能够在很少监督的情况下学习一个新的细粒度概念(例如,通过一些新物种的图片),然而我们最好的深层次学习细粒度系统需要数百或数千个标记的示例。更糟糕的是,对细粒度图像的监控既耗时又昂贵,因为细粒度对象需要由领域专家精确标记。因此,需要开发细粒度小样本学习(FGFS)方法【148】、【198】、【199】、【200】。FGFS的任务要求学习系统从几个示例(例如,少于10个)中为新的细粒度类别构建分类器。稳健的FGFS方法可以显著增强细粒度识别的可用性和可扩展性。

Fine-Grained Hashing: 最近,发布了更大规模的细粒度数据集,例如,[2]、[3]、[5]、[38]、[41]、[46]。在细粒度图像检索等实际应用中,在参考数据库非常大的情况下,查找精确最近邻的计算成本可能会非常高。图像哈希[201]、[202]是一种流行且有效的近似最近邻搜索技术,也有可能帮助处理大规模细粒度数据。因此,针对大数据挑战,细粒度哈希[203]、[204]是一个值得进一步探索的有希望的方向。

Automatic Fine-Grained Models: 自动细粒度模型:自动机器学习(AutoML)[205]和神经架构搜索(NAS)[206]近来吸引了越来越多的关注。AutoML的目标是将机器学习应用于实际任务的过程自动化,而NAS是自动化神经网络体系结构设计的过程。在各种计算机视觉应用中,AutoML和NAS的最新方法可以与手工设计的体系结构相媲美,甚至优于手工设计的体系结构。因此,AutoML和NAS技术可以为FGIA找到更好、更为定制的深层模型也是合乎逻辑的。

Fine-Grained Analysis in More Realistic Settings: 在过去十年中,已经开发出FGIA相关技术,并在标准的计算机视觉基准中取得了良好的性能,例如,【13】、【42】、【43】。然而,绝大多数现有FGIA基准都是在静态和封闭的环境中定义的。当前FGIA数据集的另一大限制是,它们通常包含对象的大型实例(即,感兴趣的对象占据了图像帧的大部分)。然而,这些设置并不能代表许多现实世界的应用,例如,通过在受控环境中采集的图像训练模型来识别货架上的零售产品【5】,或者识别/检测野外数千种自然物种的趋势【2】。需要在领域适应[207]、[208]、[209]、长尾分布[210]、[211]、开放世界设置[212]、尺度变化[2]、细粒度视频理解[213]、[214]、知识转移和资源受限的嵌入式部署等领域进行更多的研究。

9 CONCLUSION

我们对基于深度学习的细粒度图像分析(FGIA)的最新进展进行了全面的综述。具体而言,我们主张通过整合细粒度识别和细粒度检索方面的工作,拓宽FGIA的定义。我们列举了现有研究中的差距,指出了一系列新出现的课题,强调了未来的重要研究方向,并说明FGIA问题仍然远未得到解决。然而,鉴于在过去十年中性能有了显著改善,我们对未来的进展仍持乐观态度,因为我们正在朝着更现实、更具影响力的应用程序迈进。


📙 预祝各位 前途似锦、可摘星辰


  • 🎉 作为全网 AI 领域 干货最多的博主之一,❤️ 不负光阴不负卿 ❤️
  • ❤️ 过去的每一天、想必你也都有努力、祝你披荆斩棘、未来可期
  • 🍊 深度学习模型训练推理——基础环境搭建推荐博文查阅顺序【基础安装—认真帮大家整理了】
  • 🍊 计算机视觉:硕博士,交流、敬请查阅
  • 🍊 点赞 👍 收藏 ⭐留言 📝 都是博主坚持写作、更新高质量博文的最大动力!

9-9

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

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

相关文章

React01 开发环境搭建

React 开发环境搭建 一、创建 React 项目二、项目精简 一、创建 React 项目 执行下述命令创建 react 项目 blu-react-basis npx create-react-app blu-react-basis项目目录结构如下: 执行下述命令启动项目 npm run start启动效果如下: 二、项目精简 …

Vue.js 错误异常: Component template should contain exactly one root element.

一、错误异常: Errors compiling template: Component template should contain exactly one root element. If you are using v-if on multiple elements, use v-else-if to chain them instead. 二、原因 组件模板应该只包含一个根元素 查看vue代码,发…

OpenCV-人脸检测

文章目录 一、人脸检测流程二、关键方法三、代码示例四、注意事项 OpenCV是一个开源的计算机视觉和机器学习软件库,它提供了多种人脸检测方法,以下是对OpenCV人脸检测的详细介绍: 一、人脸检测流程 人脸检测是识别图像中人脸位置的过程&…

【C语言】数据输出格式控制

数据的输出格式修饰 常用两种&#xff1a; 整型中&#xff0c;输出数据左对齐、右对齐、占m位、不足m位前补0。浮点型中&#xff0c;默认通过四舍五入保留小数点后6位&#xff0c;通过参数设置保留小数点后n位。 #include <stdio.h> #define PI 3.14159 /* 功能&#x…

2024怎么选择网站建设公司?2024靠谱建站公司推荐TOP3

说起怎么挑个靠谱的网站建设公司啊&#xff0c;我觉得有这么几点挺关键的&#xff0c;咱们可以聊聊&#xff1a; 首先啊&#xff0c;你得瞅瞅这公司啥背景&#xff0c;成立了多久了&#xff0c;团队大不大&#xff0c;都服务过哪些客户&#xff0c;有啥拿得出手的成功案例没。…

如何判断通风天窗的优劣

通风天窗是否优质直接决定天窗的通风采光效果&#xff0c;影响厂房的空气质量。判断通风天窗的优劣主要从天窗使用材料、防水密封性能、通风性能、安装与售后服务等多方面出发。‌ ‌通风天窗使用材料是判断通风天窗优劣的重要因素之一。优质的通风天窗应采用耐候性强、坚固耐用…

ESP32-S3无法下载且报错的原因

该文将作为ESP32-S3下载报错记录&#xff0c;将持续更新 ARDUINO-IDE: Sketch uses 289393 bytes (22%) of program storage space. Maximum is 1310720 bytes. Global variables use 18408 bytes (5%) of dynamic memory, leaving 309272 bytes for local variables. Maximu…

多态常见面试问题

1、什么是多态&#xff1f; 多态&#xff08;Polymorphism&#xff09;是面向对象编程中的一个重要概念&#xff0c;它允许同一个接口表现出不同的行为。在C中&#xff0c;多态性主要通过虚函数来实现&#xff0c;分为编译时多态&#xff08;静态多态&#xff09;和运行时多态…

Java项目:160 基于springboot物流管理系统(PPT+论文+说明文档)

作者主页&#xff1a;舒克日记 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 项目介绍 物流管理系统有管理员和用户两个角色。 ​ 管理员功能有个人中心&#xff0c;用户管理&#xff0c;车辆信息管理&#xff0c;公告信息管理&#xff…

windows以zip方式安装mysql8

1.下载安装包 mysql官网&#xff0c;下载后放到D:\Program Files\mysql-8.0.40-winx64 2.安装 cmd进入D:\Program Files\mysql-8.0.40-winx64\bin &#xff08;1&#xff09;在路径下新建my.ini配置文件 [mysql] # 设置mysql客户端默认字符集 default-character-setutf8 …

测网速小程序,纯前端

搜索&#xff1a;证寸照制作 源码介绍: 测网速小程序源码&#xff0c;是一款纯前端无需服务器的测网速小程序&#xff0c;依赖百度开发者中心js接口&#xff0c;真正的永久使用的小工具源码&#xff0c;很实用&#xff0c;可以单独运行&#xff0c;测网速很流畅~ 合法域名: ht…

OPC Router快速打通设备层与influxDB数据通讯

随着时代演化&#xff0c;数据量呈几何倍数增加的情况下出现了时序数据库。时序数据库是基于时间进行存储的数据库&#xff0c;每一条数据中都有一个时间戳&#xff0c;这种数据库特别适合存储那些随着时间变化的数据&#xff0c;通过一些工具处理后&#xff0c;能够分析出数据…

智绘城市地图:使用百度地图 API 实现智能定位

✨✨ 欢迎大家来访Srlua的博文&#xff08;づ&#xffe3;3&#xffe3;&#xff09;づ╭❤&#xff5e;✨✨ &#x1f31f;&#x1f31f; 欢迎各位亲爱的读者&#xff0c;感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢&#xff0c;在这里我会分享我的知识和经验。&am…

SQL优化 TABLE ACCESS BY INDEX ROWID 索引回表

问题&#xff1a; SQL语句运行时间主要消耗在TABLE ACCESS BY INDEX ROWID 索引回表扫描上&#xff0c;怎么优化&#xff1f; 模拟测试&#xff1a; 1.创建测试表 SYSdb11g> create table t1015 as select * from dba_objects;Table created.SYSdb11g> create index …

WPF -- LiveCharts的使用和源码

LiveCharts 是一个开源的 .NET 图表库&#xff0c;特别适用于 WPF、WinForms 和其他 .NET 平台。它提供了丰富的图表类型和功能&#xff0c;使开发者能够轻松地在应用程序中创建动态和交互式图表。下面我将使用WPF平台创建一个测试实例。 一、LiveCharts的安装和使用 1.安装N…

ESP-01S WIFI模块指南

ESP-01S模块&#xff0c;接5V才能正常工作&#xff0c;接3.3V很有可能不会正常工作 ESP-01S模块&#xff0c;TXD和RXD和CH340交叉接入 ESP-01s出厂波特率正常是115200, 注意&#xff1a;AT指令&#xff0c;控制类都要加回车&#xff0c;数据传输时不加回车 上电后&#xff0…

IDEA如何查看所有的断点(Breakpoints)并关闭

前言 我们在使用IDEA开发Java应用时&#xff0c;基本上都需要进行打断点的操作&#xff0c;这方便我们排查BUG&#xff0c;也方便我们查看设计的是否正确。 不过有时候&#xff0c;我们不希望进入断点&#xff0c;这时候除了点击断点关闭外&#xff0c;有没有更快速的方便关闭…

仓储管理系统原型图移动端(WMS),出入库管理、库存盘点、库存调拨等(Axure原型、Axure实战项目)

仓储管理系统原型图移动端 Warehouse Management System Prototype 仓储管理系统原型图移动端是一个以图形化方式展示系统移动端界面和功能的原型设计图。原型图展示和说明系统移动端的功能和界面布局&#xff0c;为相关利益方提供一个直观的视觉化展示&#xff0c;帮助他们更…

修改Linux的IP地址

方法一&#xff08;特点&#xff1a;命令执行后&#xff0c;IP立即修改&#xff0c;但重启后会恢复原来的IP地址&#xff09; 1.含义&#xff1a; inet ip地址 netmask 子网掩码 broadcast 广播地址 inet 192.168.44.129 netmask 255.255.255.0 broadcast 192.168.1.255 …

VScode写Java项目的教程

VScode写Java项目的教程 1.首先必选先安装Java解释器2.安装插件Java Extension Pack3.创建项目创建项目结构选择项目类型 4.测试结果源码内容 今天用一台老式笔记本写代码&#xff0c;IDEA跑不动就准备用VScode突然间就蒙了&#xff0c;怎么创建项目啊&#xff1f;于是就有了这…