一种土地分类方法、装置和云服务器

文档序号:33151339发布日期:2023-02-03 22:55阅读:34来源:国知局
1.本发明涉及遥感数据处理
技术领域
:,尤其涉及一种土地分类方法、装置和云服务器。
背景技术
::2.近年来,随着遥感技术和航天技术的发展,遥感数据的质量和体量都呈现出爆发式的增长。如何充分利用海量的遥感数据成为了一个重要的研究和应用方向。土地利用和土地分类是遥感的重要应用。现有技术中,土地分类大多是对有限的土地进行分类,通常是由单台计算机完成。大范围的土地分类需要大量的算力和存储资源,会造成计算的时间增加和存储成本的增加。单台计算机很难实现对大范围的土地进行土地分类处理。因此,亟需一种可以对大范围的土地进行土地分类处理的方案。技术实现要素:3.为了解决上述的问题,本技术的实施例中提供了一种土地分类方法、装置和云服务器,利用云计算技术,结合分布式计算引擎和容器化技术,实现大范围的遥感土地进行土地分类。相比较传统的单台计算机处理方式,可以提高计算时间和得到高精度的土地分类制图。本技术在得到大量的遥感数据后,会将大量的遥感数据直接转化成土地分类处理所需要的输入数据。相比较现有的土地分类算法,降低了输入数据的要求,从而拓展了使用场景。本技术是基于云原生的容器化技术,对多样化的土地分类算法和运行环境进行封装,使得本技术可以适用于任何土地分类算法类型,如机器学习、深度学习等。4.为此,本技术的实施例中采用如下技术方案:5.第一方面,本技术提供一种土地分类方法,包括:获取遥感数据;将所述遥感数据划分成至少两个子区域;基于计算引擎,将所述至少两个子区域输入到至少一个土地分类容器中进行分类,所述土地分类容器是指利用容器化技术将土地分类算法进行封装的容器。6.在该实施方式中,在大范围的土地分类过程中,利用容器化技术,将土地分类算法封装在容器中,在土地分类过程中可以调用任意土地分类算法。将遥感数据分割成多个子区域,通过计算引擎调用相应的容器,对分割后的子区域并行处理,可以快速地得到大范围的土地分类制图。7.在一种实施方式中,所述获取遥感数据之后,还包括:对所述遥感数据进行预处理,得到第一遥感数据,所述第一遥感数据中的各个图像具有同质性;基于所述第一遥感数据,构建数据立方体,所述数据立方体是指将所述第一遥感数据中相同时间的图像集合成为一个独立的层,多个时相的层堆叠后得到立方体结构;降低所述数据立方体的维度,得到第二遥感数据,所述第二遥感数据中各个图像不携带时间信息。8.在一种实施方式中,还包括:当所述数据立方体的同一位置上存在多个灰度值时,按照设定规则选择出一个灰度值。9.在一种实施方式中,还包括:当所述数据立方体的一个位置上没有灰度值时,按照设定规则计算出一个灰度值。10.在一种实施方式中,所述将所述遥感数据划分成至少两个子区域,具体包括:基于空间要求,将所述第二遥感数据划分成至少两个子区域。11.在一种实施方式中,所述容器化技术为docker技术,所述土地分类容器是利用所述docker技术将所述土地分类算法进行封装的容器。12.在一种实施方式中,所述计算引擎为spark,所述基于计算引擎将所述至少两个子区域输入到至少一个土地分类容器中进行分类,包括:基于spark调用所述至少一个土地分类容器;将所述至少两个子区域输入到所述至少一个土地分类容器中进行分类。13.第二方面,本技术提供一种土地分类装置,包括:至少一个处理器,所述处理器用于执行存储器中存储的指令,以使得终端执行如第一方面各个可能实现的方法。14.第三方面,本技术提供一种云服务器,包括:云存储端,处理端,包括多个虚拟机,所述多个虚拟机用于执行所述云存储端中存储的指令,以使得所述虚拟机执行如第一方面各个可能实现的方法。附图说明15.下面对实施例或现有技术描述中所需使用的附图作简单地介绍。16.图1为本技术实施例中提供的一种云服务器的架构示意图;17.图2为本技术实施例中提供的一种土地分类方法的流程示意图;18.图3为本技术实施例中提供的一种遥感数据预处理的流程示意图;19.图4为本技术实施例中提供的一种土地分类装置的结构示意图。具体实施方式20.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行描述。21.本文中术语“和/或”,是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。本文中符号“/”表示关联对象是或者的关系,例如a/b表示a或者b。22.本文中的说明书和权利要求书中的术语“第一”和“第二”等是用于区别不同的对象,而不是用于描述对象的特定顺序。例如,第一响应消息和第二响应消息等是用于区别不同的响应消息,而不是用于描述响应消息的特定顺序。23.在本技术实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本技术实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。24.在本技术实施例的描述中,除非另有说明,“多个”的含义是指两个或者两个以上,例如,多个处理单元是指两个或者两个以上的处理单元等;多个元件是指两个或者两个以上的元件等。25.土地分类是基于遥感地图中的植被、灌木、草地、耕地、建筑物、冰雪、水体、草本湿地、树林植被、苔藓地衣等物体,将图像中的土地划分成植被地区、灌木地区、草地、耕地、建筑物群、冰雪地区、水体地区、草本湿地、树林植被地区、苔藓地衣地区等,从而准确识别出遥感地图各个特征。26.为了解决单台计算机无法对大范围土地进行土地分类,现有技术提出了几种解决方案,分别为:27.1、利用多台计算机并行处理,实现对大范围土地进行土地分类。但是,多台计算机并处处理的本质,还是单台计算机对有限的土地进行土地分类,不仅没有提高计算能力,还增加了硬件成本。28.2、利用主流的土地分类算法进行处理,如谷歌地球引擎(googleearthengine,gee)算法等,实现对大范围土地进行土地分类。但是,现有的土地分类算法能力是有限的,会造成土地分类有误差、计算时间比较长等缺陷。例如,谷歌地球引擎算法不支持深度学习功能,在处理过程中计算时间比较长。29.为了解决现有技术存在硬件成本高、计算时间长等缺陷,本技术实施例提出了一种基于云计算的大范围自动化土地分类方法。本技术利用了云计算技术,结合分布式计算引擎和容器化技术,实现大范围的遥感土地进行土地分类。相比较传统的单台计算机处理方式,可以提高计算时间和得到高精度的土地分类制图。本技术在得到大量的遥感数据后,会将大量的遥感数据直接转化成土地分类处理所需要的输入数据。相比较现有的土地分类算法,降低了输入数据的要求,从而拓展了使用场景。本技术是基于云原生的容器化技术,对多样化的土地分类算法和运行环境进行封装,使得本技术可以适用于任何土地分类算法类型,如机器学习、深度学习等。30.图1为本技术实施例中提供的一种云服务器的架构示意图。如图1所示,如图1所示,该云服务器100包括云存储端110和处理端120,处理端120包括多个虚拟机120-n-n。其中,云服务器100依赖于云存储服务(dataasaservice,daas)和基础设计即服务(infrastructureasaservice,iaas)。云服务器100可以为现有的服务器,如阿里云、华为云、百度云等,也可以为私有构建的云服务器。31.云存储端110用于存储大量的遥感数据、分类处理过程中的中间数据、执行分类处理的算法等。处理端120包括多个虚拟机120-n,虚拟机120-n根据执行功能,可分为客户端(client)121、控制端(master)122和工作端(worker)123。其中,虚拟机120-n是指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。在实体计算机中能够完成的工作在虚拟机中都能够实现。云服务器100在创建虚拟机120-n时,需要将云服务器100中部分存储空间作为虚拟机的存储空间,将部分运行内存作为虚拟机的运行内存。每个虚拟机120-n都有独立的存储空间、运行内存和操作系统,可以像使用实体机一样对虚拟机120-n进行操作。32.控制端122和工作端123构成了分布式存储和计算的主从节点。客户端121负责任务发布。为了隔离任务执行和任务发布,一般只在客户端121节点上编程和部署服务,服务都尽量暴露客户端121的网际互连协议(internetprotocol,ip)。控制端122节点负责任务的调度和集群管理。对于大型集群,一般设置两个控制端122节点,以保证集群的高可用性。工作端123节点负责实际的数据存储和计算任务的执行。实际的计算能力将由工作端123机器的配置以及数量决定。一般情况下,工作端123至少应当有两个虚拟机。33.示例性地,云服务器100中虚拟机集群统一安装了linux操作系统(centos7.1),并且全部使用了开源的大数据和数据处理软件。云服务器100使用spark作为计算引擎,负责集群计算资源的整合,任务的生成、调度和docker容器的启动。此外,每个计算节点安装了docker作为容器引擎,负责实际计算任务的执行。容器内部安装有遥感数据处理库,如开源栅格空间数据转换库(geospatialdataabstractionlibrary,gdal),机器学习库(scikit-learn)和深度学习处理库(pytorch)以及其它库。主要的软件及其版本如下表所示。34.表1基于云计算的土地分类装置中使用的软件[0035][0036][0037]图2为本技术实施例中提供的一种土地分类方法的流程示意图。如图2所示,该方法是由云服务器100执行,具体实现过程如下:[0038]步骤s201,获取遥感数据。[0039]本技术中,为了满足大范围土地的分类制图的需求,需要将遥感数据进行预处理,得到具有同质性和适用于土地分类的数据。其中,同质性指具有相同的投影、分辨率、数据等级和精度的遥感数据。本技术在得到大量的遥感数据后,通过将遥感数据转换成具有同质性、且适用于土地分类的数据,可以降低输入数据的要求,使得遥感数据可以使用不相同的土地分类算法,拓展了本技术保护方法的应用场景。[0040]图3为本技术实施例中提供的一种遥感数据预处理的流程示意图。如图3所示,预处理的具体过程如下:[0041]步骤s2011,对遥感数据进行预处理,得到第一遥感数据。其中,第一遥感数据中的各个图像具有同质性。[0042]具体地,遥感数据中包括大量的图像,图像的投影、分辨率和精度可能存在差异。虚拟机120-n需要将遥感数据中图像的投影、分辨率和精度统一为相同数值,让每个图像的投影、分辨率和精度都相同。虚拟机120-n再根据不同的遥感数据产品的类型和等级,分别采用对应的处理算法,将遥感数据中各个图像处理成后续分类所需要的、相同的数据级别。虚拟机120‑ꢀn再按照制图的要求,将每个图像重投影和重采样到标准的统一状态。最终的各个图像具有同质性。可选地,虚拟机120-n在处理遥感数据的过程中,对遥感数据中的各个图像的处理是相互独立,使得云服务器100具有良好的并行性。[0043]步骤s2012,基于第一遥感数据,构建数据立方体。[0044]具体地,数据立方体(datacube)是一种被广泛运用于遥感大数据计算的遥感数据组织形式。虚拟机120-n将第一遥感数据中相同时间的图像集合成为一个独立的层,多个时相的层堆叠之后形成了一个稀疏的立方体结构(每个波段有三个维度),也就是数据立方体的主体。[0045]通常情况下,数据立方体的每一个空间位置上,在不同的时相中可能存在多个灰度值。因此,虚拟机120-n在构建数据立方体时,需要依据一定的选择方法,如选取最大值、求平均值、求中值等方式,获得每一个位置上的唯一灰度值,使得数据立方体各个空间位置上的灰度值具有唯一性。另外,数据立方体的部分空间位置上可能存在缺失灰度值。因此,虚拟机120-n在构建数据立方体时,需要采用一定的补偿方法,如空间差值法等,将缺失灰度值的空间位置填补上对应的灰度值,使得数据立方体具有完整的灰度值。[0046]步骤s2013,降低数据立方体的维度,得到第二遥感数据。其中,第二遥感数据中各个图像不携带时间信息。[0047]具体地,数据立方体是三维的,是由图像的两个维度和时间的一个维度构成。虚拟机120‑ꢀn可以按照空间位置进行降维处理,将数据立方体降到二维,保留每个图像的两个维度,得到一个比较密集的数据集,也即第二遥感数据。第二遥感数据是可以用于土地分类。第二遥感数据中的每个图像是不携带时间维度的。第二遥感数据在每一个空间位置都有唯一的灰度值,且灰度值之间具有相同的数据级别。虚拟机120-n可以用相同的算法处理每一个灰度值,并获得具有同等鲁棒性的计算结果。[0048]步骤s202,将遥感数据划分成至少两个子区域。[0049]具体地,虚拟机120-n在大范围的土地进行土地分类过程中,可以将大范围的土地分类制图任务按照空间分解为多个互相独立的计算任务。鉴于土地分类算法的特殊性,不同区域的土地分类制图可以分别视为互相独立的计算任务,且每个任务具有良好的可并行性。因此,虚拟机120-n可以按照空间位置、时间顺序等方式,将第二遥感数据分割为多个子区域。[0050]虚拟机120-n分割出子区域的数量,与遥感数据的大小有关。在一个例子中,遥感数据越大,虚拟机120-n分割出子区域的数量越多;遥感数据越小,虚拟机120-n分割出子区域的数量越少。虚拟机120-n分割出子区域的数量,还与其计算能力有关。在一个例子中,如果虚拟机120-n的计算能力比较弱,虚拟机120-n分割出子区域的数量越多;如果虚拟机120-n的计算能力比较强,虚拟机120-n分割出子区域的数量越少。[0051]通常情况下,虚拟机120-n处理一个子区域时,会启动一个土地分类任务。因此,第二遥感数据被分割出多少个子区域,虚拟机120-n会启动相应数量的土地分类任务。虚拟机120-n根据可用计算资源的大小以及总计算区域的大小,可以将计算任务切分为不同的粒度计算。粒度越细则计算的总任务数量越多,但是单个任务的计算越小。[0052]特殊情况下,虚拟机120-n采用如深度学习图像分割的土地利用算法中,一般需要舍弃边缘的部分像素,会导致图像不完整。因此,子区域之间应当相互重叠,以保证输出结果的完整性和有效性。[0053]步骤s203,基于计算引擎,将至少两个子区域输入到至少一个土地分类容器中进行分类。[0054]土地分类算法一般包括有随机森林算法、gee算法等,不同的算法所依赖的操作系统、统一计算设备架构(computeunifieddevicearchitecture,cuda)版本、依赖库等环境是不同的。为了让不同的土地分类算法在任何环境中都可以对遥感数据进行土地分类,本技术利用云原生的容器化技术封装多样化的土地分类算法。[0055]容器化技术是云原生的核心技术,被广泛运用于微服务等应用场景中。容器化技术可以将算法和其所需要的运行环境进行打包,以实现算法可以在任意的计算平台上的运行。容器化可以隔绝算法所需的操作系统、cuda版本、依赖库等环境。目前主流的容器化技术是docker,本技术下面将以docker技术为例来介绍本技术的技术方案。当然,容器化技术不仅限于docker,还可以为其它技术,本技术在此并不作限定。[0056]本技术中,虚拟机120-n将单个图像的土地分类算法封装在docker中,同时暴露出输入图像的路径、输出图像的路径、分类算法的主要参数等接口。虚拟机120-n在启动镜像时,docker会自动运行镜像(image)中封装的土地分类程序。docker通过接收输入的相关参数,实现对单个图像的分类,并输出结果到指定的位置。在执行的过程中,docker将从挂载的云存储端110中直接加载计算的输入数据,并且将分类的结果数据直接保存在指定的云存储端110中。[0057]在大范围的土地分类过程中,虚拟机120-n需要调用计算引擎,将多个子区域分配到相应容器中进行土地分类。本技术中,计算引擎可以是基于云的大数据计算引擎、或者分布式计算引擎等,本技术在此以spark为例,可以想到的是,计算引擎还可以为其它类型。本发明可以依赖于最简单的便携式批处理系统(portablebatchsystem,pbs),也可以采用先进的容器调度技术kubernetes。最重要的是,虚拟机120-n也支持采用mapreduce编程范式的计算引擎,例如spark、hadoopmapreduce等,以应对具有复杂计算流程的分类应用。[0058]目前主流的技术路线是基于kubernetes编排docker容器。相比之下,kubernetes并不擅长于离线任务的管理和调度,而更适合构建和管理微服务系统。spark是一个基于mapreduce的大数据批处理计算引擎,支持多样化的批处理算子,可以实现更为复杂的离线计算的任务流。此外,spark支持java、python和scala等编程语言,可以更为方便的构建批处理的任务集以及配置参数。[0059]本技术中,虚拟机120-n将第二遥感数据分割成多个子区域后,在spark的所在的虚拟机120-n中构建计算任务,将子区域的土地分类制图任务封装在sparkmap算子的函数中。sparkmap算子负责从spark的任务分配信息中解析计算所需的参数,包括分类算法的必要参数、数据集参数等。sparkmap算子还负责docker镜像的启动、运行和日志信息解析。集群中的每一个线程可以同时处理一个map的实例并执行单个子区域的土地分类制图任务。spark将负责任务队列的维护。当任务数量大于可用线程数量时,spark将会按照任务队列将待执行的任务分配给空闲的可用线程。[0060]本技术实施例中,在大范围的土地分类过程中,在得到遥感数据后,将遥感数据转换成土地分类所需要的数据,可以降低输入数据的要求,使得遥感数据可以使用不相同的土地分类算法,拓展了本技术保护方法的应用场景。再利用容器化技术,将土地分类算法封装在容器中,在土地分类过程中可以调用任意土地分类算法。将遥感数据分割成多个子区域,通过计算引擎调用相应的容器,对分割后的子区域并行处理,可以快速地得到大范围的土地分类制图。[0061]图4为本技术实施例中提供的一种土地分类装置的结构示意图。如图4所示,该装置400包括收发单元401和处理单元402。其中,各个单元具体执行功能如下:[0062]收发单元401用于获取遥感数据;处理单元402用于将所述遥感数据划分成至少两个子区域;以及基于计算引擎,将所述至少两个子区域输入到至少一个土地分类容器中进行分类,所述土地分类容器是指利用容器化技术将土地分类算法进行封装的容器。[0063]在一种实施方式中,处理单元402还用于对所述遥感数据进行预处理,得到第一遥感数据,所述第一遥感数据中的各个图像具有同质性;基于所述第一遥感数据,构建数据立方体,所述数据立方体是指将所述第一遥感数据中相同时间的图像集合成为一个独立的层,多个时相的层堆叠后得到立方体结构;降低所述数据立方体的维度,得到第二遥感数据,所述第二遥感数据中各个图像不携带时间信息。[0064]在一种实施方式中,处理单元402还用于当所述数据立方体的同一位置上存在多个灰度值时,按照设定规则选择出一个灰度值。[0065]在一种实施方式中,处理单元402还用于当所述数据立方体的一个位置上没有灰度值时,按照设定规则计算出一个灰度值。[0066]在一种实施方式中,处理单元402具体用于基于空间要求,将所述第二遥感数据划分成至少两个子区域。[0067]在一种实施方式中,所述土地分类容器是利用docker技术将所述土地分类算法进行封装的容器。[0068]在一种实施方式中,处理单元402还用于基于spark将所述至少两个子区域输入到至少一个土地分类容器中进行分类。[0069]本技术实施例中还提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行上述图2-图3和相应描述内容中记载的任一项方法。[0070]本技术实施例中还提供了一种计算机程序产品,所述计算机程序产品存储有指令,所述指令在由计算机执行时,使得所述计算机实施上述图2-图3和相应描述内容中记载的任一项方法。[0071]本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术实施例的范围。[0072]此外,本技术实施例的各个方面或特征可以实现成方法、装置或使用标准编程和/或工程技术的制品。本技术中使用的术语“制品”涵盖可从任何计算机可读器件、载体或介质访问的计算机程序。例如,计算机可读介质可以包括,但不限于:磁存储器件(例如,硬盘、软盘或磁带等),光盘(例如,压缩盘(compactdisc,cd)、数字通用盘(digitalversatiledisc,dvd)等),智能卡和闪存器件(例如,可擦写可编程只读存储器(erasableprogrammableread-onlymemory,eprom)、卡、棒或钥匙驱动器等)。另外,本文描述的各种存储介质可代表用于存储信息的一个或多个设备和/或其它机器可读介质。术语“机器可读介质”可包括但不限于,无线信道和能够存储、包含和/或承载指令和/或数据的各种其它介质。[0073]在上述实施例中,图4中的土地分类装置400可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本技术实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,高密度数字视频光盘(digitalvideodisc,dvd))、或者半导体介质(例如,固态硬盘(solidstatedisk,ssd))等。[0074]应当理解的是,在本技术实施例的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。[0075]所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。[0076]在本技术所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。[0077]所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。[0078]所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者接入网设备等)执行本技术实施例各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。[0079]以上所述,仅为本技术实施例的具体实施方式,但本技术实施例的保护范围并不局限于此,任何熟悉本
技术领域
:的技术人员在本技术实施例揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术实施例的保护范围之内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1