ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

跨模态检索研究进展综述【跨模态检索的核心工作在于:①不同模态数据的特征提取、②不同模态数据之间内容的相关性度量】

2022-01-18 22:33:07  阅读:129  来源: 互联网

标签:模态 检索 图像 特征提取 文本 数据


随着互联网上多媒体数据的爆炸式增长,单一模态的检索已经无法满足用户需求,跨模态检索应运而生.

跨模态检索旨在以一种模态的数据去检索另一种模态的相关数据,其核心任务是数据特征提取和不同模态间数据的相关性度量.

文中梳理了跨模态检索领域近期的研究进展,从传统方法、深度学习方法、手工特征的哈希编码方法以及深度学习的哈希编码方法等角度归纳论述了跨模态检索领域的研究成果.

在此基础上,对比分析了各类算法在跨模态检索常用标准数据集上的性能.

最后,分析了跨模态检索研究存在的问题,并对该领域未来发展趋势以及应用进行了展望.

跨模态检索的核心工作关注于数据特征提取不同模态数据之间内容的相关性度量方面

一、概述

随着互联网上数据规模的不断壮大,数据类型越来越呈现多样化的特点,用户感兴趣的数据模态不再单一,用户的检索需求也越来越呈现出从单一模态到跨模态的发展态势.模态是指数据的表达形式,包括文本、图像、视频和音频等.

跨模态检索是至少两种模态的数据之间互相检索,通常是以一种模态作为查询来检索另一种模态的相关数据.通过找出不同模态数据之间的潜在关联,实现相对准确的交叉匹配.

如以文本检索相关图像,文本集为 T = { t , … , t n } T=\{t_,…,t_n\} T={t,​…,tn​}, 图像集为 V = { v , … , v n } V=\{v_,…,v_n\} V={v,​…,vn​},针对查询文本 t q , q ∈ [ 1 , n ] t_q,q∈[1,n] tq​,q∈[1,n],检索出与 t q t_q tq​ 最相 似的图像 v q = { v i ∣ m a x s i m ( t q , v i ) , i ∈ [ 1 , n ] } v_q=\{v_i|maxsim(t_q,v_i),i∈[1,n]\} vq​={vi​∣maxsim(tq​,vi​),i∈[1,n]}.

在互联网海量多模态数据的背景下,跨模态检索一直是学术界的研究热点.

不同模态数据之间的内容相关性度量是跨模态检索任务的核心与挑战.

  • 现有研究一方面通过改善特征提取和公共空间映射等方法减少多模态数据间的跨模态差异,使跨模态检索更精准;
  • 另一方面通过采用哈希编码的方式提升搜索效率,使跨模态检索任务更高效.

由于跨模态检索包括但不限于两种模态,因此设计方法还应考虑模型的可扩展性.尽管国内外学者采用各种方法从不同角度提出了解决跨模态检索的方案,但该领域研究目前仍面临诸多挑战和困难,具体表现在:

  • 多模态表达差异:不同模态的数据表达之间存在较大差异,如文本和图像之间差异巨大,如何度量不同模态数据之间的相关性成为跨模态检索任务必须应对的挑战之一.
  • 语义鸿沟:不同模态之间特征分析的困难在于底层表达和高层语义之间的断层,也称为语义鸿沟,如何挖掘不同模态之间的数据高级语义成为挑战之一.
  • 样本增量学习:在检索数据库中,一旦加入新数据,则需要花费大量时间重新训练模型或者
    重新计算,此时样本的增量学习就显得尤为重要.

一次性解决上述挑战是不现实的,跨模态检索也远未取得令人满意的效果.

对比分析现有研究进展及存在问题,有助于研究人员未来在此基础上找到更好的解决方案.围绕跨模态检索研究进展,

  • Liu 等[1]在 2010 年分析梳理了传统方法 在跨模态检索领域的应用研究.
  • Wang 等[2]在 2016 年总结 分析了跨模态检索领域的相关动态,重点从实值表示和二值表示的角度对训练形式进行梳理.不同于上述文献,

本文一方面增加了深度学习相关方法的论述,另一方面侧重从技术方法角度归纳分析目前主流的跨模态检索解决方案,重点关注近年来的最新研究进展,指出现阶段该领域仍然存在的问题及挑战,并对该领域的未来方向进行展望.本文的主要贡献总结如下:

  1. 探讨了跨模态检索存在的挑战及困难,系统地分析了跨模态检索领域主流方法以及最新研究进展,为跨模态检索领域的初学者提供了便利;
  2. 针对跨模态检索研究面临的不同挑战,讨论了不同应对策略,有助于正在做跨模态检索研究的读者更好地理解该问题,并且可以使其从中了解各种解决方案;
  3. 梳理了用于跨模态检索研究的多种常用标准数据集以及一些针对特殊场景的数据集,并对相关算法在数据集上的性能做出对比;
  4. 分析总结了目前跨模态检索存在的问题,并展望了未来可能的发展方向.

二、跨模态检索研究进展【各种主流研究方法】

跨模态检索研究近年来发展迅速,在跨模态检索任务中利用深度学习的方法也越来越丰富.

当前跨模态检索的主流方法是基于公共空间学习的方法,其依据是不同模态数据具有相似的语义,如数据中的对象、方位、背景等语义信息,而相似语义的数据具有潜在相关性,从而使得构建公共空间并将不同媒体类型的数据投影到这个空间进行相关性度量成为可能.

基于公共空间学习的方法的目的是学习一个公共空间,并显式地将不同媒体类型的数据投影到这个空间进行相关性度量.跨模态检索的流程框架如图 1 所示.
在这里插入图片描述
首先分别提取不同模态数据的特征,然后学习多模态数据的公共表示,最后进行跨模态的匹配与排名.

从图1可以看出,文本、图像、视频等模态数据可以在一个公共的高级语义空间中彼此接近.

本文从技术方法的角度出发,主要将跨模态检索研究分为三大类,包括:

  • 传统方法、
  • 基于深度学习的方法、
  • 基于哈希编码的方法,
    在这里插入图片描述

研究方法的分类架构如图 2 所示.其中:

  • 深度学习方法主要侧重于提升检索准确性,
  • 哈希编码方法主要侧重于提升检索效率.哈希方法中的深度学习哈希方法则是深度学习与哈希编码的融合,以平衡检索的准确性与效率.

1、传统方法

特征提取和内容相关性度量是跨模态检索研究要解决的关键问题.早期特征提取主要围绕文本、视觉及音频展开,本节重点介绍这些模态特征提取的传统方法.

1.1 特征提取

1.1.1 文本特征提取

词袋法(Bag-of-Words,BoW)是一种简单的文本表示方式,它将每个输入文本视为多个单词集合,不考虑其复杂的语义或者语法.也就是说,文本中每个词的出现都是独立的,不影响文中其他词的出现.

在标准的词袋表示法的背景下,Zhu 等[4]对大规模公共数据集的不对称程度进行了度量,提 出了新的不对称差异,分析了标准 BoW 在这种情况下的局限性.TF-IDF[5]通过对每个词进行加权来改进 BoW,从而可以识别出输入文本所特有的关键性词汇.其中,

  • TF 指词频(Term Frequency),
  • IDF 指 逆 文 本 频 率 指 数 (Inverse Docu- ment Frequency),

当文本较长时,TF-IDF 可以有效地提取输入文本的特征.

Blei 等[6]于 2003 年提出了三层贝叶斯主题模型(Latent Dirichlet Allocation,LDA),LDA 通过无监督的学习方法获取输入文本中隐含的主题信息,隐性的语义分析实际上是利用文本中的词项的共现特征来体现文本的主题或概念结构,LDA 模型能够以更精炼的尺度表示文本.

1.1.2 视觉特征提取

尺度不变特征变化(Scale-Invariant Feature Transform,SIFT)是一种检测图像局部特征的算法,该算法通过求一幅图像中的特征点及其尺度上和方向上的相关描述子得到图像特征并进行图像特征点匹配.

方向梯度直方图(Histogramof Oriented Gradient,HOG)特征是一种在计算机视觉和图像处理中用来进行物体检测的特征描述子,它通过计算和统计图像局部区域的梯度方向直方图来构成图像特征.

SIFT 的缺点是需要专业的图像处理器来实现,而加速稳健特征(Speeded Up Robust Features,SURF)把 SIFT 中的卷积平滑操作简化成加减运算,提高了算法的鲁棒性,降低了复杂度,但在运行时间上提升并不显著.

ORB(Oriented Fast and Ro-tated Brief)特征描述算子在运行时间上实现了质的飞跃.

HOG 特征结合 SVM分类器已经被广泛应用于图像识别中,代表性工作包括 2005 年 CVPR 会议上 Dalal 等[7]提出的并获得极大成功的行人检测模型,文献[8]使用具有 HOG 特性的线性 SVM分类器也在字符检测中取得了不错的性能.针对视频中的运动特征的提取方法有光流方程、贝叶斯方法等.

1.1.3 音频特征提取

声波是一种音频信号.

针对音频的相关工作必须对音频信号进行预处理和特征提取.

在传统的语音信号处理中,语音特征以短时音频帧(audio frame)的方式提取.

早期提出的 音频特征提取方法主要有线性预测倒谱系数(Linear Predic-tion Cepstrum Coefficient,LPCC)和梅尔频率倒谱系数(Mel- Frequency Cepstrum Cofficients,MFCC ),其中:

  • LPCC 特征对辅音描述能力弱,抗噪性能差.
  • 而 MFCC 是基于人的听觉特征提取出来的特征参数,更符合人的听觉特性,因此在对音频信号进行特征提取时通常使用 MFCC 特征.但 MFCC 相邻帧特征相对独立,忽略了信号可能的内在结构,如相邻帧的强关联.文献[9-11]在提取音频特征时都采用该思想.

1.2 内容相关性度量

多模态检索主要实现文本、图像等不同模态数据的相互检索,这种相互检索的前提是文本内容和图像内容的相互关联.

2004 年 Hardoon 等提 出 的 典 型 相 关 分 析 (Canonic Correlation Analysis,CCA)用于跨模态检索中的内容相关性度量,是一个里程碑式的工作,其通过最大化两种模态投影之间的相关性来学习公共子空间,在跨模态检索的公共子空间方法中,迅速成为此后同类算法的基准算法.

尽管 CCA 因其简单和高效而广受欢迎,但其缺点也很显著:

  • 经典 CCA 无法理解类标签等高级语义信息,未能充分利用类别信息,因而其学习到的公共子空间本质上判别力较弱.与 CCA 类 似,偏 最 小 二 乘(Partial Least Squares,PLS)和双线性模型[14]等方法也尝试通过学习子空间来进行跨模态检索,但这些方法都依靠两个模态间的显式配对来建立对应关系.事实上,某个模态的某项数据可能存在不止一个语义,因此,仅关注成对耦合还远远不够,以这种方式学习到的通用表示也无法完全保留数据中潜在的跨模态语义结构.

总体来说,上述方法都未利用多标签信息.要想准确表达图像中存在的多个概念,必须充分考虑多标签信息,精确建模不同模态之间的相关性.2015 年,Ranjan 等[15]提出了多标签典型相关分析 ml-CCA,ml-CCA 是 CCA 的扩展,主要用于学习共享子空间,同时考虑了多标签注释等高级语义信息.与 CCA 不同,ml-CCA 不依赖于模态之间一对一的显式配 对,而是使用多标签信息来建立对应关系,因而可产生一对多、多对一等配对情况,形成一个判别子空间,更适合于跨模态检索任务.实际应用中,ml-CCA 的性能胜过大多数其他CCA扩展方法.

如前所述,ml-CCA 依赖于模态对应关系的预建立,因此 针对难以线性建模的更复杂相关性分析问题,ml-CCA 的表 现不很理想.为此,Hwang 等提出了基于内核的 CCA(简 称 KCCA)方法,用于发现图像与文本模态的共享特征空间.KCCA 增加了特征选择的灵活性,是一种在机器学习领域提取非线性特征的有效方法.在 KCCA 的基础上,Jia 等提 出了多标签核典型相关分析(简称 ml-KCCA),通过多标签注 释中的高级语义信息对 KCCA 进行增强.从多标签中提取相关性进行核化,可以测量不同模态之间更复杂的非线性相关性,从而学习更适合跨模态检索任务的判别子空间.而集群 CCA(简称 C-CCA)通过来自跨模态数据对之间的一一对应关系,使用标准的 CCA 来学习投影,可以保留更多的语义信息.随着深度神经网络的发展,涌现出了结合深度神经网络的典型相关分析方法 DCCA[19],它可以不需要 KCCA 的内积计算学习非线性变换.

2、深度学习方法

2016 年,AlphaGo 战胜李世石,直接引发了深度学习技 术的快速发展及其在诸多领域的应用研究,仅在图像领域,包括目标检测、目标跟踪、图像检索、图像分割等任务都开始借助深度学习不断提升各自的性能.

基于深度学习的跨模态检索研究也取得了很多进展,检索准确性得到大幅提升.

跨模态检索的核心工作关注于数据特征提取不同模态数据之间内容的相关性度量方面,本节将围绕深度学习技术方法的应用介绍近几年跨模态检索领域的相关工作.

2.1 特征提取

2.1.1 基本网络结构

近年来:

  • 图像特征提取主要采用卷积神经网络(Convolu-tional Neural Networks,CNN),
  • 文本特征提取主要采用长短 期记忆(Long Short-Term Memory,LSTM)或循环神经网络 (Recurrent Neural Network,RNN),
  • 音频主要是先对音频信号进行降噪及处理,再采用 CNN 或 LSTM提取特征,
  • 视频特征提取主要采用 3D-CNN,

本文将这些方法都归类为基本网络结构.根据具体任务的不同,跨模态检索领域的研究人员在采用深度学习网络进行特征提取时提出了不同的改进和组合方法.

针对自然语言对象检索任务同时涉及场景中的对象和全局场景上下文空间信息,Hu 等[20]提出一种新颖的空间上下 文循环模型(简称 SCRC)作为对象检索候选框的评分函数,将空间配置和全局场景级上下文信息集成到网络中.该模型不仅考虑了图像全局上下文特征,而且考虑了图像中具体对象的特征,因此可以更精准地通过文本信息检索到对应的图像信息.

考虑到图像与文本之间存在语义鸿沟,用户难以使用文本准确描述出所需图像,Vo 等[21]提出一种使用查询文本特 征修改查询图像特征的方法,称为文本图像剩余门(Text Ima-ge Residual Gating,TIRG),其采用剩余连接组合图像和文本特征,生成一个新的查询特征.查询输入可以是一张图像或一段文本,通过文本微调图像特征使其符合预期的查询结果.
在这里插入图片描述

如图 3 所示,输入为一个白天人满为患的埃菲尔铁塔图像和一段文本“无人且转为夜间”,最终输出结果是夜间无人的埃菲尔铁塔图像.该模型在输入图像的基础上改变了某些特征,有效地缓解了语义鸿沟.

针对文本特征提取面临的不同语言之间的差异性以及词汇拼写错误等问题,Wehrmann 等[22]提出采用简单有效的字符级卷积架构来替换词嵌入和RNN,使用字符级而不是词级文本表示,用一小组有限字符构建跨多种语言的描述.使用字符级卷积学习句子表示,对输入噪声也具有鲁棒性.

文本图像检索领域有一类特殊任务是菜谱检索,其特殊性表现在:文本内容包含烹饪说明和食材,其中烹饪说明是有序文本而食材是无序文本,
在这里插入图片描述
如图 4 所示.针对此类应用,Sal- vador 等[23]同时考虑了正向和反向排序,食材样本使用双向 LSTM模型,烹饪说明样本因其有序而使用正向 LSTM 模型,最终两个编码器的输出被串联并嵌入食谱图像联合空间中.根据任务的特殊性,合理地使用模型不仅能提升检索准确性,对于大规模样本还会提升效率.

在视频特征提取方面,2D-CNN 的主要作用是提取视觉空间特征,但由于视频是一个连续的序列,只使用 2D-CNN会丢失时间信息,因此 3D-CNN 的作用就是可以保留视频中的时间特征,更符合视频的特点.因此,Yamaguchi 等[24]采 用局部与全局上下文结合,并使用 2D-CNN 与 3D-CNN 结合的方式提取视频特征.其累计提取 6 种类型的特征,最后全部串联起来作为完整的一个特征向量.文献[9]提出了音频与文本检索的架构,与文献[10-11]一致,均使用 MFCCs 提取音频特征.不同的是,2017 年 Google 公司[25]发现卷积神经网络在图像处理方面非常有效, 同样在音频分类方面也显示出了应用前景.通过对不同CNN 架构进行实验,发现 CNN 在音频分类任务上的效果很好,在大量的 YouTube 数据集上训练得到类 VGG 模型 VG- Gish.此后,许多研究都使用 VGGish 提取音频特征,如文献[26-27].

2.1.2 序列权重机制

序列权重机制已经被成功应用于包括目标检测和细粒度图像分类等在内的许多计算机视觉任务中.其主要目的是,针对不同任务,采用为信息赋权重的方式提取已知序列中的重要信息,忽略无关信息.近年来,在跨模态检索领域也逐渐涌现出一些研究工作采用序列权重机制来提升检索性能.Deng 等[28]提出一种文本-图像协同注意网,可以有效地关注 图像中细粒度的局部特征,更好地与文本进行匹配,然后将有注意的特征输入哈希层得到二进制哈希表示,从而更容易比较文本和图像的内容相似性.Li 等[29]提出一种具有门控神 经注意机制的递归神经网络(简称 GNA-RNN),网络的输入包括描述语句和人物图像,网络的输出是语句和图像间的亲和度,在机场等人员密集的公共场所作为安全监控有广泛的应用前景.具体做法是:将句子作为网络输入,逐个单词进行处理,采用单元级注意机制加权不同单元对不同单词的贡献,同时采用字级门估计不同单词对于自适应单词级加权的重要性.该项研究的贡献还有:整理收集了 CUHK 人员描述数据集(简称 CUHK-PEDES),包括有详细自然语言注释的大规模人员描述数据集和各种来源的人工样本集.在视觉问答任务中,与传统多模态特征融合相反,Li 等[30]采用自然语言统 一所有输入信息,提取上下文和疑问词之间最相关的特征,在模型中构造了上下文到问题的注意力和问题到上下文的注意力,从而将 VQA 转换为机器阅读理解问题,有效缓解了跨模态差异.

不同于上述两项研究在语言特征提取上采用序列权重的方式,Dey 等[31]提出使用 LSTM 为单个图像计算n个不同且 有序依赖的注意力图,然后将该注意力图映射到公共子空间中与其他模态查询特征进行比较,最终进行相关性度量.人员搜索场景下,人们通常可能会分组走路,即使独自走路,出现在同一场景中的其他邻近行人也会包含重要的背景线索.针对该现象,Yan 等[32]提出采用上下文实例扩展模块,使用 相对注意块来搜索和过滤场景中有用的上下文信息,

在这里插入图片描述
如图 5所示;同时构建一个图学习框架,有效使用上下文对来更新目标相似性.通过融合对象外部的上下文特征,增加了有效信息,提高了检索结果的准确性.

与单模态特征提取不同,序列权重机制可以应用于多种模态之间.Mithun 等[33]提出一种弱监督的基于视觉语义嵌 入的联合框架,使用视频级句子描述从视频中学习相关片段的数量.其基本思想是:借助文本引导注意力(Text-Guided Attention,TGA)充分利用视频帧和句子描述之间的潜在对 齐,亦即,使用查询文本引导提取出视频中的关键连续时刻.

Song 等[34]引 入 一 种 多 义 实 例 嵌 入 网 络 (简 称 PIE- Nets),通过多头自我关注和残差学习将全局背景与本地引导 的特征相结合,计算实例的多种表征.

在单模态以及多模态之间采用序列权重机制的基础上,Chen 等[35]提出了一种新颖的注意力引导多模态相关(简称 AMC 模型)学习方法,采用序列权重机制来自适应平衡不同模态特征的重要性.

在这里插入图片描述

如图 6 所示,AMC 模型由联合学习的内部和外部注意网络的层次结构组成,其中,内部注意网络主要包括视觉内注意网络和语言内注意网络.多模态间的外部注意网络主要关注与查询最相关的模态重要性.其不足之处在于序列权重机制仅关注了两种模态的最主要特征,忽略了图像和参照表达之间可能存在多个综合的文本-视觉对的事实.针对该问题,Liu 等[36]设计了一种新颖的跨模态注意力引导 擦除方法,丢弃来自文本或视觉域的最主要信息,在线生成硬训练样本,并驱动模型发现互补的文本视觉对应.序列权重机制的应用非常广泛,在跨模态检索的特征提取阶段,应用该机制可以有效地保留重要特征信息.

2.2 内容相关性度量

解决跨模态检索中不同模态之间的差异性问题,主要依赖于模态间的内容相关性度量.目前深度学习方法中流行的度量策略包括视觉关系和图网络、对抗博弈机制等.

3、哈希编码方法

3.1 手工特征的哈希编码

3.2 深度学习的哈希编码

三、常用数据集与性能评价【常用数据集与性能对比分析】

1、数据集

2、性能指标

3、实验对比

四、未来发展展望【跨模态检索领域存在的问题及未来发展趋势进行分析】

从研究方法层面来看,多数工作关注对图像、视频等数据的全局特征学习,而忽略了这些数据中包含的细粒度语义信息;

从应用层面来看,跨模态检索应用领域主要局限于安全监控与搜索引擎,还有待进一步扩展.

基于此,本文认为,未来一段时间,跨模态检索领域的研究将呈现如下发展趋势:

1、方法改进

在深度学习方法与知识图谱融合、细粒度分析等方面仍有提升空间,甚至可以将情感、环境等信息融合到公共表示学习中,以获取更强的相关,从而进一步改善跨模态检索的准确性.

  1. 融合知识图谱.跨模态检索着重于数据内容的高级语义信息,知识图谱将高级语义信息连接成关系网络,称为语义网,根据检索的输入,可以检索出与输入语义相关的内容,从而增加检索结果的多样性和准确性.
  2. 加入细粒度分析.在目前的跨模态检索研究中,对于视频、图像等数据的特征提取,大多是针对数据进行整体的提取,若加入细粒度分析,对图像或视频等内容进行如对象级地探究,则对于高级语义信息的提取有积极作用.
  3. 融合丰富信息.在跨模态检索任务中,对输入内容可以融合情感、环境、背景等丰富信息,有效区分数据个体之间的差异性,从而可以使检索结果更准确且更具判别性.

2、应用领域

跨模态检索在搜索引擎和安全监控等方面已经有了一些成功应用,未来可以加入环境、情感等上下文
信息进行全面检索、数据整理、语音匹配,甚至是诗画创作等.

  1. 融合丰富信息的检索:对于仅针对内容的图像检索,计算机难以真正理解人的检索意图,因此加入环境、情感等上下文信息进行全面检索,可以有效地理解检索意图,提高检索精度.
  2. 数据整理:海量的多媒体数据往往不易整理和归纳,需要花费大量人力.若利用跨模态检索技术,可以自动识别数据中的内容,进行自动分类归纳,从而减少人力消耗和时间成本.
  3. 语音匹配:音频数据通常需要人工进行匹配整理,而通过跨模态检索可以实现音频关键内容的提取,并且可以根据搜索的输入自动定位出音频时刻位置.
  4. 诗画创作:跨模态检索的一个重要任务就是通过提取各个模态数据的高级语义信息,将其关联起来.而诗画创作则可以利用文字搜索图像或由图像搜索诗句的方式实现.

结束语 本文梳理分析了解决跨模态检索任务的主流研究方法,包括:

  • 传统方法、
  • 基于深度学习的方法、
  • 基于哈希编码的方法以及深度学习与哈希编码融合的方法等.

围绕深度学习方法在跨模态检索领域应用的关键性突破和进展,分析了各主要模块的关键问题以及代表性工作,涵盖了跨模态检索领域的最新相关工作.本文最后总结了跨模态检索研究的常用数据集和性能评价,分析明确了当前存在的主要问题并指出了该领域的未来发展趋势.




参考资料:
跨模态检索研究进展综述 ComputerScience 计算机科学 Vol.48,No.8,Aug.2021

标签:模态,检索,图像,特征提取,文本,数据
来源: https://blog.csdn.net/u013250861/article/details/122570176

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有