首页> 中国专利> 面向Android的深度学习模型统一部署系统、方法、设备及介质

面向Android的深度学习模型统一部署系统、方法、设备及介质

摘要

本公开涉及深度学习技术领域,具体提供了面向Android的深度学习模型统一部署系统、方法、介质及设备,其中,所述系统包括:监控统计模块,用于完成对整个系统执行的监控统计以及日志读写;抽象适配模块,用于提供深度学习推断过程所需要的解释器、模型和/或数据源;服务模块,用于对Android应用程序提供统一的编程接口。本公开设计并实现了一个移动深度学习任务的统一部署框架,集成了5种主流的移动深度学习框架,为深度学习推断任务设立软件抽象,屏蔽底层框架的接口异构性,对上层应用程序提供统一编程接口。该框架可用于移动应用开发者快速实现跨框架、跨硬件后端的深度学习任务部署,也可用于框架开发厂商构建模型准确率基准测试、框架性能基准测试等。

著录项

  • 公开/公告号CN112698841A

    专利类型发明专利

  • 公开/公告日2021-04-23

    原文格式PDF

  • 申请/专利号CN202110049287.7

  • 申请日2021-01-14

  • 分类号G06F8/60(20180101);G06F11/36(20060101);G06N20/00(20190101);

  • 代理机构11619 北京辰权知识产权代理有限公司;

  • 代理人刘广达

  • 地址 300452 天津市滨海新区中心商务区于家堡金融区双创大厦25层

  • 入库时间 2023-06-19 10:43:23

说明书

技术领域

本公开涉及深度学习技术领域,更为具体来说,本公开涉及面向Android的深度学习模型统一部署系统、方法、设备及介质。

背景技术

随着移动设备的计算能力显著提升和传感器技术的广泛应用,在移动端直接部署运行深度学习任务的场景也大量涌现。许多深度学习框架生产厂商也推出了针对移动计算优化的深度学习框架以及模型迁移工具,以供应用程序开发者使用。

然而,由于种种限制,移动深度学习任务部署并不能像框架生产厂商所描述的那样方便。这些框架通常存在部署操作API繁复、缺乏自动资源管理、运行库整合层级低等问题。同时,在诸多场景下出现的,要求同时于多框架下部署深度学习任务的情形,进一步提高了开发者部署深度学习任务的难度。

发明内容

为解决现有技术存在部署操作API繁复、缺乏自动资源管理、运行库整合层级低的技术问题。

为实现上述技术目的,本公开提供了一种面向Android的深度学习模型统一部署系统,包括:

监控统计模块,用于完成对整个系统执行的监控统计以及日志读写;

抽象适配模块,用于提供深度学习推断过程所需要的解释器、模型和/或数据源;

服务模块,用于对Android应用程序提供统一的编程接口。

进一步,所述抽象适配模块具体包括:

第一子模块,用于为不同的底层深度学习框架适配一个对应的具体解释器单例;

第二子模块,用于为不同的模型文件,创建模型实例,并初始化所述模型实例的相关元数据;

第三子模块,用于为不同类型的数据输入,适配一个具体的数据源实例。

进一步,所述服务模块具体用于:

调用所述抽象适配模块所适配的底层解释器完成任务的执行,同时调用所述监控统计模块保存相应的统计数据。

为实现上述技术目的,本公开还能够提供一种面向Android的深度学习模型统一部署方法,应用于上述的面向Android的深度学习模型统一部署系统,包括:

初始化统一部署系统;

构建推断任务并执行所述推断任务得到执行结果;

获取任务执行统计数据;

关闭所述统一部署系统。

进一步,所述初始化统一部署系统具体包括:

加载数据源和/或模型,初始化解释器上下文。

进一步,所述构建推断任务并执行所述推断任务得到执行结果具体包括:

创建一个推断任务,指定模型、数据源和/或解释器并指定任务开始前和结束后的操作;

加载单次输入的数据,调用解释器解释模型,计算得出推断任务的执行结果;

获得推断任务的所述执行结果。

进一步,所述执行结果具体包括:

神经网络的输出、分类任务的目录和/或回归任务的输出结果。

进一步,所述获取任务执行统计数据具体包括:

通过所述监控统计模块获取推断任务执行过程中的统计数据,其中,所述统计数据包括模型准确率、资源占用率和/或吞吐率指标。

为实现上述技术目的,本公开还能够提供一种计算机存储介质,其上存储有计算机程序,计算机程序被处理器执行时用于实现上述的面向Android的深度学习模型统一部署方法的步骤。

为实现上述技术目的,本公开还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述的面向Android的深度学习模型统一部署方法的步骤。

本公开的有益效果为:

本公开设计并实现了一个移动深度学习任务的统一部署框架“Deep LearningUnified Deployment Engine”(DUDE)。DUDE集成了5种主流的移动深度学习框架,为深度学习推断任务设立软件抽象,屏蔽底层框架的接口异构性,对上层应用程序提供统一编程接口。DUDE可用于移动应用开发者快速实现跨框架、跨硬件后端的深度学习任务部署,也可用于框架开发厂商构建模型准确率基准测试、框架性能基准测试等。

附图说明

图1示出了本公开的实施例1的结构示意图;

图2示出了本公开的实施例2的流程示意图;

图3示出了本公开的实施例4的结构示意图。

具体实施方式

以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。

在附图中示出了根据本公开实施例的各种结构示意图。这些图并非是按比例绘制的,其中为了清楚表达的目的,放大了某些细节,并且可能省略了某些细节。图中所示出的各种区域、层的形状以及它们之间的相对大小、位置关系仅是示例性的,实际中可能由于制造公差或技术限制而有所偏差,并且本领域技术人员根据实际所需可以另外设计具有不同形状、大小、相对位置的区域/层。

近年来,随着移动设备的广泛普及和互联网技术的高速发展,移动端应用程序大量涌现;与此同时,由计算能力提升而引发的,以神经网络为代表的人工智能技术也开始蓬勃发展。在人工智能应用场景不断扩张的趋势下,由于传感器集成丰富、实时性高、隐私安全性高等优点,移动端也涌现了大量深度学习任务的需求。举例来说,移动端出现了语音识别(输入法及智能助手应用)、图像识别、图像渲染(增强现实及相机应用)等等丰富的场景。此外,电商、信息流和娱乐类应用可实时收集用户行为数据,完成快速的用户画像、个性化推荐生成等任务。

简言之,在移动端进行深度学习任务具有如下优势:

延迟低:移动端不需要通过网络连接发送待处理数据并等待响应,避免由于网络时延带来的体验降级。这对于处理来自摄像头的连续帧的视频应用来说,可以大大提高处理吞吐率。

费用低:所有的推断计算任务都由用户设备完成,无需应用程序开发者提供服务器来处理用户的在线推断任务需求,也缓解了服务器网络带宽瓶颈的压力。

可用性高:即使在网络覆盖范围之外,应用程序也能正确运行。

隐私保密:在收集用户数据,完成个性化深度学习任务的过程中,敏感数据被实时消费,不上传到云端,阻断了用户隐私被窃取的渠道。

然而,尽管移动端芯片在近年已经有了极大的计算能力提升,很多芯片生产厂商还专门针对深度学习计算进行硬件优化,移动端的深度学习计算仍然呈现出诸多局限:计算能力限制、功耗限制、存储容量限制等等……由于深度学习模型的训练过程包含多轮对全量数据集的迭代计算,其消耗资源与计算都远远大于推断过程。应用开发者通常会将模型的训练阶段放到计算能力更强的云端离线完成,而仅安排移动设备执行实时的推断任务。因此,直接将传统服务端的深度学习框架照搬到移动端,显然是难以胜任的。

为满足日益增长的业务场景与受限的计算资源之间的矛盾,一大批深度学习框架厂商相继推出了针对移动端设备优化的轻量级深度学习框架:Google基于其TensorFlow深度学习框架的架构,推出了针对移动端设备的TensorFlow Lite,针对浏览器环境的TensorFlow.js;阿里巴巴推出了MNN;腾讯推出了ncnn……这些框架通常包含运行时推理引擎以及模型迁移工具两部分,用于支持移动端的模型部署和执行推理任务。

然而,在编程范式和流程上,深度学习模型的开发和部署与传统的软件工程相比,还有相当的差距。深度学习作为一个新兴的技术,目前工业界并未就模型编码、交互流程、评价体系等各项标准达成一致,致使各个框架表现参差不齐,彼此之间并不能够完全兼容。这些问题,对于移动端应用程序开发者而言,无疑会增加其学习成本;对于深度学习框架开发厂商而言,无疑会混淆其框架优化努力的方向,加大正确性测试的难度;对于深度学习算法研究者而言,无疑难以准确评估新算法实现的优劣。

总而言之,移动端深度学习任务方兴未艾,研究如何简化模型部署应用流程和如何高效利用移动端计算资源是学术界、工业界关注的焦点问题,具有深远的意义和广阔的发展空间。

实施例一:

如图1所示:

本公开提供了一种面向Android的深度学习模型统一部署系统,

包括:

监控统计模块,用于完成对整个系统执行的监控统计以及日志读写;

抽象适配模块,用于提供深度学习推断过程所需要的解释器、模型和/或数据源;

服务模块,用于对Android应用程序提供统一的编程接口。

具体来说,统一部署框架主要由三个模块构成:

抽象适配模块:提供深度学习推断任务所需要的解释器、模型、数据源三大抽象。为不同的底层深度学习框架,包括TensorFlow Lite、TVM、MNN等,适配一个对应的具体解释器单例;为不同的模型文件,创建模型实例,初始化相关元数据;为不同类型的数据输入,适配一个具体的数据源实例。

服务模块:对上层Android应用程序提供统一的编程接口,包括注册解释器、模型、数据源,构建推断任务,执行推断任务等。部署框架负责调用抽象适配层所适配的底层解释器完成任务的执行,同时调用监控统计模块保存相应的统计数据。

监控统计模块:作为一个辅助模块,完成对于整个框架执行的监控统计以及日志读写。

具体地,

统一部署系统主要由两部分构成,第一部分是对于推断任务所需要的各个组件的抽象,主要包括如下几个类:

Engine:管理推断所需要的组件,包括数据源、解释器和模型等,对上层应用程序提供注册数据源、注册解释器、注册模型、构建任务和执行任务的接口。

DataSource:推断任务的数据输入抽象,对外提供本数据源的元数据和数据的迭代器。另外其子类LabeledDataSource表明输入数据具有标签,可供验证准确率。

Model:推断任务的模型元数据,可供解释器在任务执行时加载模型文件、调用模型进行计算。

Interpreter:推断任务的解释器,是各个底层推断框架实现的抽象,对外提供设置模型,设置硬件配置,执行推断任务,释放底层框架资源等接口。

Metrics:推断任务的监控统计模块,接受并存储各个部分写入的统计数据,包括异常、资源使用率、吞吐率、模型准确率等数据,可供开发者之后进行数据分析。

第二部分是对于推断任务的抽象,主要包括:

Task:对执行整个推断任务执行流程的抽象,分别用onPreExecute,execute,onProgressUpdate,onPostExecute来表示任务执行前的准备流程,任务执行流程,任务状态更新,任务执行后的处理流程。其中execute的具体执行依赖于具体的解释器,即调用解释器的相关接口进行实现。

IProgressListener:为一个接口,是对上层应用程序的抽象。应用程序应在构造Task时注册该接口的具体实现,以便接收推断任务执行的进度更新信息。

进一步,所述抽象适配模块具体包括:

第一子模块,用于为不同的底层深度学习框架适配一个对应的具体解释器单例;

第二子模块,用于为不同的模型文件,创建模型实例,并初始化所述模型实例的相关元数据;

第三子模块,用于为不同类型的数据输入,适配一个具体的数据源实例。

进一步,所述服务模块具体用于:

调用所述抽象适配模块所适配的底层解释器完成任务的执行,同时调用所述监控统计模块保存相应的统计数据。

本公开采用设计模式理论中的模版方法模式,将抽象出的解释器Interpreter、模型Model、数据源DataSource三大模块以及部署框架管理类Engine、监控统计类Metrics改写成抽象类。抽象类仅实现一个算法的不变的部分,例如解释器中的run方法、Engine中的buildTask方法和executeTask方法等,并将可变的部分留待子类(实现类)来实现。抽象类为子类规定必须其实现的方法。因此在开发者适配新的执行器或者数据源类型时,可有相应的规范可循。

本公开针对移动端常见的图像分类任务,实现了相应数据源:带有标签的图像数据集(ImageDataSet)和未带标签的相机(Camera)。

本公开针对使用JNI调用C++Native接口的Tensorflow Lite,MNN,ncnn,TVM等,分别实现了对应的解释器类,这些类均继承自Interpreter类,调用相关接口时,调用方将会阻塞,直到底层执行器的Native方法执行结束返回。

本公开针对在Web环境下执行的TensorFlow.js,抽象出另一类解释器AsyncInterpreter。由于JavaScript常用的编程模型为异步编程模型,解释器在调用TensorFlow.js的编程接口之后,将会立即返回而不是阻塞直到相应函数调用返回。如果要对外呈现出一个同步执行的模式,则需要在向JavaScript的执行方法注册回调函数,即当由TensorFlow.js的方法执行结束之后主动调用AsyncInterpreter的相关事件响应函数,在这个事件响应函数中再串联下一步骤的方法调用。

由于Android系统中与用户进行交互的组件主要为Activity,因此需要Activity实现IProgressListener接口,以达到与应用程序交互的目的。

另外,Android系统中应用程序所申请的资源,也需要和应用程序自身的生命周期绑定,对资源的申请主要是调用应用程序上下文Context的相关方法。因此,在初始化统一部署框架Engine时,需要向其注入应用程序的Context,申请相关资源时,由部署框架Engine调用Context的方法进行相关操作。

实施例二:

如图2所示,

本公开还能够提供一种面向Android的深度学习模型统一部署方法,应用于上述实施例一中的面向Android的深度学习模型统一部署系统,包括:

S201:初始化统一部署系统;

具体地,所述S201具体包括:

加载数据源和/或模型,初始化解释器上下文。

S202:构建推断任务并执行所述推断任务得到执行结果;

具体地,所述S202具体包括:

创建一个推断任务,指定模型、数据源和/或解释器并指定任务开始前和结束后的操作;

加载单次输入的数据,调用解释器解释模型,计算得出推断任务的执行结果;

获得推断任务的所述执行结果。

进一步,所述执行结果具体包括:

神经网络的输出、分类任务的目录和/或回归任务的输出结果。

S203:获取任务执行统计数据;

具体地,所述S203具体包括:

通过所述监控统计模块获取推断任务执行过程中的统计数据,其中,所述统计数据包括模型准确率、资源占用率和/或吞吐率指标。

S204:关闭所述统一部署系统。

在初始化统一部署框架用况中,用户打开应用程序,应用程序在加载过程中,触发了对统一部署框架的初始化。应用程序向部署框架注册相应的模型、数据源和解释器,这一步也可在之后需要时进行。

在构建推断任务用况中,用户和应用程序进行交互,应用程序判断用户即将需要执行某个推断任务,于是由用户手动或者自动化的设置推断任务的各个选项,包括模型、数据源、解释器、硬件参数等。应用程序调用部署框架,生成任务实例,用户设置的选项以option参数的形式传递给任务的构造函数。

执行推断任务用况是各个用况中最复杂的一个。在这个用况中,用户和应用程序进行交互,触发推断任务的执行:应用程序调用部署框架执行推断任务,部署框架首先打开监控统计模块,对推断任务所占用的资源进行监控,然后按顺序分别调用推断任务的执行前方法(onPreExecute),执行方法(execute)和执行后方法(onPostExecute)。由于这些方法通常需要处理大量数据,因此三个方法的执行结果需要采用异步回调的方法通知部署框架,然后部署框架再按顺序调用下一个方法。在推断任务执行过程中,所有与底层推断框架的相关的操作都由创建任务时设置的解释器,映射到底层框架提供的API,进行执行。在任务执行过程中,每次单个推断推断任务执行结束之后,都会触发推断任务的进度更新方法(onProgressUpdate)。当执行过程中,如果推断任务需要使用相关的系统资源时,会调用部署框架相应的API。最后在所有任务执行完成之后,推断任务回调通知部署框架,部署框架调用部署任务的执行后方法,对返回结果进行处理或者进行资源释放等操作。然后部署框架将处理后的执行结果回调通知应用程序,并通知监控统计模块停止监控。

在构建推断任务用况中,用户和应用程序进行交互,应用程序调用监控统计模块获取推断任务的统计数据。

在关闭统一部署框架用况中,用户和应用程序交互,应用程序调用部署框架的关闭方法,部署框架进行资源释放、连接关闭等操作。

实施例三:

本公开还能够提供一种计算机存储介质,其上存储有计算机程序,计算机程序被处理器执行时用于实现上述的面向Android的深度学习模型统一部署方法的步骤。

本公开的计算机存储介质可以采用半导体存储器、磁芯存储器、磁鼓存储器或磁盘存储器实现。

半导体存储器,主要用于计算机的半导体存储元件主要有Mos和双极型两种。Mos元件集成度高、工艺简单但速度较慢。双极型元件工艺复杂、功耗大、集成度低但速度快。NMos和CMos问世后,使Mos存储器在半导体存储器中开始占主要地位。NMos速度快,如英特尔公司的1K位静态随机存储器的存取时间为45ns。而CMos耗电省,4K位的CMos静态存储器存取时间为300ns。上述半导体存储器都是随机存取存储器(RAM),即在工作过程中可随机进行读出和写入新内容。而半导体只读存储器(ROM)在工作过程中可随机读出但不能写入,它用来存放已固化好的程序和数据。ROM又分为不可改写的熔断丝式只读存储器──PROM和可改写的只读存储器EPROM两种。

磁芯存储器,具有成本低,可靠性高的特点,且有20多年的实际使用经验。70年代中期以前广泛使用磁芯存储器作为主存储器。其存储容量可达10位以上,存取时间最快为300ns。国际上典型的磁芯存储器容量为4MS~8MB,存取周期为1.0~1.5μs。在半导体存储快速发展取代磁芯存储器作为主存储器的位置之后,磁芯存储器仍然可以作为大容量扩充存储器而得到应用。

磁鼓存储器,一种磁记录的外存储器。由于其信息存取速度快,工作稳定可靠,虽然其容量较小,正逐渐被磁盘存储器所取代,但仍被用作实时过程控制计算机和中、大型计算机的外存储器。为了适应小型和微型计算机的需要,出现了超小型磁鼓,其体积小、重量轻、可靠性高、使用方便。

磁盘存储器,一种磁记录的外存储器。它兼有磁鼓和磁带存储器的优点,即其存储容量较磁鼓容量大,而存取速度则较磁带存储器快,又可脱机贮存,因此在各种计算机系统中磁盘被广泛用作大容量的外存储器。磁盘一般分为硬磁盘和软磁盘存储器两大类。

硬磁盘存储器的品种很多。从结构上,分可换式和固定式两种。可换式磁盘盘片可调换,固定式磁盘盘片是固定的。可换式和固定式磁盘都有多片组合和单片结构两种,又都可分为固定磁头型和活动磁头型。固定磁头型磁盘的容量较小,记录密度低存取速度高,但造价高。活动磁头型磁盘记录密度高(可达1000~6250位/英寸),因而容量大,但存取速度相对固定磁头磁盘低。磁盘产品的存储容量可达几百兆字节,位密度为每英寸6 250位,道密度为每英寸475道。其中多片可换磁盘存储器由于盘组可以更换,具有很大的脱体容量,而且容量大,速度高,可存储大容量情报资料,在联机情报检索系统、数据库管理系统中得到广泛应用。

实施例四:

本公开还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述的面向Android的深度学习模型统一部署方法的步骤。

图3为一个实施例中电子设备的内部结构示意图。如图3所示,该电子设备包括通过系统总线连接的处理器、存储介质、存储器和网络接口。其中,该计算机设备的存储介质存储有操作系统、数据库和计算机可读指令,数据库中可存储有控件信息序列,该计算机可读指令被处理器执行时,可使得处理器实现一种面向Android的深度学习模型统一部署方法。该电设备的处理器用于提供计算和控制能力,支撑整个计算机设备的运行。该计算机设备的存储器中可存储有计算机可读指令,该计算机可读指令被处理器执行时,可使得处理器执行一种面向Android的深度学习模型统一部署方法。该计算机设备的网络接口用于与终端连接通信。本领域技术人员可以理解,图3中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

该电子设备包括但不限于智能电话、计算机、平板电脑、可穿戴智能设备、人工智能设备、移动电源等。

所述处理器在一些实施例中可以由集成电路组成,例如可以由单个封装的集成电路所组成,也可以是由多个相同功能或不同功能封装的集成电路所组成,包括一个或者多个中央处理器(Central Processing unit,CPU)、微处理器、数字处理芯片、图形处理器及各种控制芯片的组合等。所述处理器是所述电子设备的控制核心(Control Unit),利用各种接口和线路连接整个电子设备的各个部件,通过运行或执行存储在所述存储器内的程序或者模块(例如执行远端数据读写程序等),以及调用存储在所述存储器内的数据,以执行电子设备的各种功能和处理数据。

所述总线可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。所述总线被设置为实现所述存储器以及至少一个处理器等之间的连接通信。

图3仅示出了具有部件的电子设备,本领域技术人员可以理解的是,图3示出的结构并不构成对所述电子设备的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。

例如,尽管未示出,所述电子设备还可以包括给各个部件供电的电源(比如电池),优选地,电源可以通过电源管理装置与所述至少一个处理器逻辑相连,从而通过电源管理装置实现充电管理、放电管理、以及功耗管理等功能。电源还可以包括一个或一个以上的直流或交流电源、再充电装置、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。所述电子设备还可以包括多种传感器、蓝牙模块、Wi-Fi模块等,在此不再赘述。

进一步地,所述电子设备还可以包括网络接口,可选地,所述网络接口可以包括有线接口和/或无线接口(如WI-FI接口、蓝牙接口等),通常用于在该电子设备与其他电子设备之间建立通信连接。

可选地,该电子设备还可以包括用户接口,用户接口可以是显示器(Display)、输入单元(比如键盘(Keyboard)),可选地,用户接口还可以是标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在电子设备中处理的信息以及用于显示可视化的用户界面。

进一步地,所述计算机可用存储介质可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据区块链节点的使用所创建的数据等。

在本发明所提供的几个实施例中,应该理解到,所揭露的设备,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。

以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。本公开的范围由所附权利要求及其等价物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号