MORE CONVNETS IN THE 2020S: SCALING UP KER- NELS BEYOND 51 × 51 USING SPARSITY

news2025/1/9 14:55:24

论文链接: https://arxiv.org/pdf/2207.03620.pdf

code: https://github.com/VITA-Group/SLaKlink

MORE CONVNETS IN THE 2020S: SCALING UP KER- NELS BEYOND 51 × 51 USING SPARSITY

  • 一、引言
    • (二)、大内核注意力
    • (二)、卷积中的大核
    • (三)、动态稀疏
  • 二、实现方法
    • (一)、现有方法无法超越31×31内核
    • (二)、超级大内核的配方,超出31×31
    • (三)、“使用稀疏分组,扩展更宽”大大提高了模型的容量
    • (四)、大核比小核更适合推广
    • (五)、构建稀疏大内核网络(slak)
  • 三、实验
    • (一)、分类![在这里插入图片描述](https://img-blog.csdnimg.cn/104a3f75ff3847eda41a2516edf5ed70.png#pic_center)
    • (二)、语义分割
    • (三)、目标检测
    • (四)、消融试验
  • 四、附录

一、引言

自视觉Transformers(ViTs)出现以来,Transformers迅速在计算机视觉界大放异彩。卷积神经网络(CNN)的主导地位似乎受到越来越有效的基于Transformers的模型的挑战。最近,几个先进的卷积模型在局部窗口注意机制的激励下,以大内核进行反击,显示出吸引人的性能和效率。虽然其中之一,即RepLKNet,令人印象深刻地设法将内核大小扩展到31×31,并提高了性能,但与Swin Transformer等高级vit的扩展趋势相比,随着内核大小的继续增长,性能开始饱和。在本文中,探索了训练大于31×31的极端卷积的可能性,并测试是否可以通过策略地扩大卷积来消除性能差距。本研究最后给出了一个从稀疏性角度应用超大内核的配方,可以平滑地将内核扩展到61×61,性能更好。在此基础上,本文提出了稀疏大内核网络(SLaK),这是一种纯CNN架构,配备了稀疏分解的51×51内核,可以与最先进的分层Transformers和现代ConvNet架构(如ConvNeXt和RepLKNet)相比,在ImageNet分类以及广泛的下游任务上执行,包括ADE20K上的语义分割,PASCAL VOC 2007上的对象检测,以及MS COCO上的对象检测/分割。
有些研究认为,vit的最高表现是由于能够捕捉到较大的感受野。与在共享权重的小滑动窗口(例如3×3和5×5)中进行卷积的CNN相比,ViTs中具有较大窗口大小的全局关注或局部关注直接使每一层捕获较大的感受野。
受这一趋势的启发,最近在CNN上的一些工作通过设计先进的纯CNN架构并将大型内核插入其中进行反击。例如,RepLKNet 成功地将内核大小扩展到31×31,同时实现与Swin Transformer的可比结果。然而,众所周知,大核卷积很难训练。即使在具有小内核的并行分支的帮助下,与Swin Transformer等高级vit的扩展趋势相比,随着内核大小的不断增加,RepLKNet的性能也开始饱和。因此,是否能够通过进一步扩展31×31以上的内核大小来超越基于transformer的模型仍然是个谜。
在本文中,试图通过利用人类视觉系统中常见的稀疏性来回答这个研究问题。稀疏性被视为初级视觉皮层(V1)中最重要的原则之一,其中传入的刺激被假设为稀疏编码和选择。本文广泛研究了大型内核的可训练性,并揭示了三个主要的观察结果:(i)现有的方法,要么天真地应用更大的内核,要么协助结构重新参数化,都无法将内核大小扩展到31×31以上;(ii)用两个矩形的并行内核(M×N和N×M,其中N < M)取代一个大的M×M内核,可以平滑地将内核大小扩展到61×61,并提高性能;(iii)在扩展宽度的同时进行稀疏群构造,显著提高了性能。
基于这些观察,本文提出了SLaK(稀疏大内核网络)——一种新的纯CNN架构,它配备了前所未有的51×51内核大小。评估在各种任务包括ImageNet分类、语义分割ADE20K对象检测和目标检测分割,SLaK执行比或与CNN pioneers RepLKNet和ConvNeXt以及SOTA引起模型例如,Swin和Cswin的ImageNet transformer。对有效感受野(ERF)的分析表明,当插入最近提出的ConvNeXt时,能够覆盖比现有的更大的内核范式更大的ERF区域,同时自然地引入类似人类的外围归纳偏差。

(二)、大内核注意力

自注意力最初是在自然语言处理中引入的,并由Dosovitskiy等人在计算机视觉中进行了扩展,可以将其视为一个全局深度内核,使每一层都具有全局感受野。Swin Transformer是一种采用移位窗口方式进行局部注意的ViTs变体。与全局注意力相比,局部注意力可以极大地提高内存和计算效率,具有良好的性能。由于注意窗口的大小至少为7,因此可以看作是大内核的替代类。最近的一项工作提出了一种新的大内核注意力模块,该模块使用深度堆叠、小卷积、扩张卷积以及点卷积来捕获局部和全局结构。

(二)、卷积中的大核

卷积中的大核可以追溯到2010年代,其中应用了较大的内核大小,如7×7和11×11。全局卷积网络(GCNs)通过使用1×M + M×1和M×1 + 1×M卷积的组合将内核大小扩大到15。然而,该方法会导致ImageNet的性能下降。inception家族允许利用不同的卷积核大小来学习不同尺度的空间模式。随着VGG 的流行,在过去的十年中,使用一堆小内核(1×1或3×3)来获得一个大的感受野已经很常见。直到最近,一些工作开始恢复在CNN中使用大内核。Li等人提出了7×7大内核,在空间范围内使用不同的权重,同时跨通道共享权重。然而,当进一步扩大内核大小时,性能的提高就停滞不前了。Han等人发现,如果在Swin Transformer中用前者代替后者,动态深度卷积(7×7)的性能与局部注意力机制相当。Liu et al模仿Swin Transformer 的设计元素,使用7×7内核设计ConvNeXt,性能优于前者。RepLKNet首次通过构建一个与31×31并行的小内核(例如3×3或5×5)将内核大小扩展到31×31,并实现了与Swin Transformer相当的性能。一系列工作的连续卷积核可以用于任意分辨率、长度和维数的数据。最近,Chen等人揭示了大型内核对3D网络也是可行和有益的。之前的工作已经探索了并行的思想或堆叠两个互补的M×1和1×M内核。但是,它们将较短的边限制为1,并且不将内核大小扩展到51×51以上。与之前的方法不同,本文将一个大的核分解为两个互补的非平方核(M×N和N×M),提高了大卷积核的训练稳定性和内存可扩展性。

(三)、动态稀疏

最近对稀疏性的尝试,从头开始训练稀疏神经网络,只使用一小部分参数和flop(如下图所示)。动态稀疏性可以从头开始训练稀疏模型,因此训练和推理flop和内存需求只是密集模型的一小部分。与训练后剪枝不同,使用动态稀疏性构建的模型可以从头开始训练,以匹配它们的密集模型,而不涉及任何预训练或密集训练。动态稀疏性源于稀疏进化训练(SET) ,随机初始化层间的稀疏连通性,并在训练过程中通过参数剪枝-增长方案动态调整稀疏连通性。参数修剪和增长方案允许模型的稀疏结构逐渐进化,获得比训练静态稀疏网络更好的性能。在本文中,不是找到能够匹配相应密集网络的稀疏网络。基于ResNeXt原理-“使用更多的组,扩大宽度”,作者试图利用动态稀疏性来扩展具有极端内核的神经架构。
在这里插入图片描述

二、实现方法

(一)、现有方法无法超越31×31内核

首先研究大于31×31的极端内核大小的性能,并在这里分享三个主要观察结果。以ImageNet-1K上最近开发的CNN架构ConvNeXt 作为基准来进行这项研究。本文采用MegEngine开发的高效大内核实现。
遵循最近的工作使用Mixup,Cutmix,RandAugment 和随机擦除作为数据增强。
随机深度和标签平滑被应用为正则化,具有与ConvNeXt中使用的相同的超参数。用AdamW训练模型。需要注意的是,在本节中,所有模型的训练时间都缩短为120个epoch,只是为了勾勒出大内核大小的缩放趋势。
最近,RepLKNet 通过结构重新参数化成功地将卷积扩展到31×31 。作者进一步将内核大小增加到51×51和61×61,看看更大的内核是否可以带来更多的收益。按照RepLKNet中的设计,设置每个阶段的内核大小为[51,49,47,13]和[61,59,57,13],并在表1中报告测试精度。正如预期的那样,天真地将内核大小从7×7扩大到31×31会降低性能,而RepLKNet可以通过提高0.5%的精度来克服这个问题。当进一步将内核大小增加到51×51时,这种积极的趋势不会继续下去。
一种合理的解释是,尽管感受野可以通过使用超大的核来扩大,但它可能无法保持理想的局部性。由于标准ResNet和ConvNeXt中的主干单元导致输入图像的4×下采样,51×51的极端内核已经大致等于典型的224 × 224 ImageNet的全局卷积。因此,这一观察结果作为精心设计的局部关注是有意义的。通常优于全局注意力。受此激励,通过引入局部性同时保留捕获全局关系的能力来解决这个问题的机会。

(二)、超级大内核的配方,超出31×31

将一个大内核分解为两个矩形的并行内核,可以平滑地将内核大小扩展到61×61。虽然使用中等大小的卷积(例如31×31)似乎可以直接避免这个问题,但是否可以通过使用(全局)极限卷积进一步推动CNN的性能。这里的方法是用两个并行卷积和矩形卷积的组合来近似大型的M×M内核,其内核大小分别为M×N和N×M(其中N < M),如下图所示。保持5×5层与大型内核并行,并在批处理范数层后总结其输出。
在这里插入图片描述
这种分解在捕获长期依赖关系和提取局部细节特征(具有较短的边缘)之间取得平衡。此外,现有的大核训练技术,由于内核大小的增加而遭受二次计算和内存开销。与此形成鲜明对比的是,本方法的开销仅随内核大小线性增加(下图)。
在这里插入图片描述
当N = 5时,内核分解的性能(如下)报告为表2中的“分解”组。由于分解减少了可学习参数和flop,因此与中等内核大小(31×31)的原始RepLKNet相比,我们的网络最初稍微牺牲了精度就不足为奇了。然而,随着卷积大小的不断增加,我们的方法可以将内核大小扩展到61×61,并提高性能。
在这里插入图片描述

(三)、“使用稀疏分组,扩展更宽”大大提高了模型的容量

最近提出的ConvNeXt 重新审视了ResNeXt 中引入的原理,该原理将卷积滤波器分成更小但更多的组。ConvNeXt没有使用标准的组卷积,而是简单地使用增加宽度的深度卷积来实现“使用更多的组,扩大宽度”的目标。在本文中,试图从稀疏性启发的角度扩展这一原则-“使用稀疏组,扩展更宽”。
具体而言,首先将密集卷积替换为稀疏卷积,其中稀疏核是基于SNIP的分层稀疏比随机构造的,因为它在大尺度模型上表现出色。构建后,用动态稀疏性训练稀疏模型,其中稀疏权重在训练过程中通过修剪具有最低量级的权重并随机增长相同数量的权重来动态适应。这样做可以动态适应稀疏权重,从而获得更好的局部特征。由于在整个训练过程中内核是稀疏的,相应的参数计数和训练/推理flop仅与密集模型成正比。动态稀疏性的配置如下。为了进行评估,以40%的稀疏度对分解的内核进行稀疏化,并将性能报告为“稀疏组”列。
在这里插入图片描述

在下表的中间一列中,可以观察到动态稀疏性显著降低了2.0 GFLOPs以上,尽管会导致暂时的性能下降。
在这里插入图片描述
上述动态稀疏性的高效率可以有效地转化为模型的可伸缩性。动态稀疏性允许友好地缩放模型大小。例如,使用相同的稀疏度(40%),可以将模型宽度扩展1.3倍,同时保持参数计数和FLOPs与密集模型大致相同。这带来了显著的性能提升,使用极端的51×51内核将性能从81.3%提高到81.6%。

(四)、大核比小核更适合推广

为了演示大型内核的好处,上表中报告了每个步骤对小型7×7内核的影响。可以看到,性能随着内核大小的增加而不断增加,直到51×51。
与我们的51x51内核相比,将建议的配方的每一部分应用于7×7内核会导致没有收益或边际收益。这个分解实验证明了我们的说法:大内核是能量的根源,我们提出的配方有助于从大内核中释放这种能量。

(五)、构建稀疏大内核网络(slak)

构建自己的稀疏大型内核网络(SLaK),这是一个与极端51×51内核一起使用的纯CNN体系结构。SLaK是基于ConvNeXt架构构建的。stage计算比和stem的设计继承自ConvNeXt。对于SLaK-T,每个阶段的块数为[3,3,9,3],对于SLaK-S/B,每个阶段的块数为[3,3,27,3]。stem只是一个具有4×4内核和4步的卷积层。
首先直接为每个阶段将ConvNeXt的内核大小增加到[51,49,47,13],并将每个M×M内核替换为M×5和5×M内核的组合。在每个分解的内核之后直接添加一个BatchNorm层,在汇总输出之前是至关重要的。按照“使用稀疏群,扩大更宽”的原则,进一步对整个网络进行稀疏化,将阶段宽度扩大1.3倍,最终得到SLaK。即使通过调整模型宽度和稀疏度之间的平衡,可以有很大的空间来提高SLaK性能,所有实验超参数(1.3×宽度和40%稀疏度),因此SLaK工作简单地“开箱即用”,根本没有特别的调整。

三、实验

(一)、分类在这里插入图片描述

(二)、语义分割

加粗样式

(三)、目标检测

在这里插入图片描述
在这里插入图片描述

(四)、消融试验

Ding等人将内核缩放到31×31,并显示放大的ERF和比小内核模型更高的精度。如ERF理论所示,ERF与 O ( k √ n ) O(k√n) O(kn)成比例,其中k和n分别为核大小和网络深度。因此,在SLaK中对内核进行分解的假设是,两个分解后的M×N和N×M内核在捕获大ERF方面能够很好地保持大内核的能力,同时还关注边缘(N)较短的细粒度局部特征。
为了验证这一假设,比较了SLaK和RepLKNet捕获的ERF。对从验证集到1024×1024的50张图像进行采样和调整大小,并测量输入图像上的像素对最后一层生成的特征图中心点的贡献。贡献分数进一步累积并投影到1024×1024矩阵,如下图所示。在左边的子图中,虽然原来的ConvNeXt已经将内核大小提高到7×7,但它的高贡献像素集中在输入的中心。即使RepLKNet使用的31×31内核也不足以让ConvNeXt覆盖整个输入。相比之下,SLaK的高贡献像素分布在一个更大的ERF中,一些高贡献像素出现在非中心区域。这一观察结果与我们的假设一致,即SLaK在捕获长期依赖关系和关注局部细节之间取得了平衡。
在这里插入图片描述
我们进一步发现SLaK似乎能自动恢复周边视觉的归纳偏差。在人类视觉系统中:整个视野从凝视中心附近到远处被划分为多个区域;人类在注视中心(中央和准中心区域)附近进行高分辨率的处理,而在中间和远边缘区域处理的分辨率降低。它被认为是一种高效的感知特征,通过它,人类可以跟踪和聚焦感兴趣的物体(通过凝视运动),以识别其高度相关的视觉细节,同时保持对“周围环境”的运动和高级上下文的意识。通过观察上图中的ERF模式,SLaK似乎自然地复制了人类周边视觉的中心衰减分辨率特征。

内核缩放效率:
SLaK的两个组成部分,内核分解和稀疏组,极大地提高了内核大小的缩放效率。为了进一步支持这一点,在下图-左报告了各种大型内核训练方法所需的开销。简单地用一组从7到151的内核大小替换ConvNeXt-T阶段中的所有内核,并报告所需的gflop和参数的数量。当内核大小超过31×31时,可以清楚地看到全内核扩展(黄线)和内核分解(绿线)之间的巨大差距。
即使使用超大的151×151内核,与使用51×51内核的全内核扩展相比,使用我们的方法也需要更少的flop和参数。越来越多的证据表明,高分辨率的训练是分类和目标检测的性能助推器。在这种情况下,大型内核将受益更多。
在这里插入图片描述
还报告了该方法的真实推理加速。上图-右所示的不同大型内核实现的深度-大小卷积的真实推理时间延迟(ms)。结果是在单个A100 GPU上获得的,使用Pytorch 1.10.0 + cuDNN 8.2.0, FP32精度,没有使用专用的稀疏友好硬件加速器。输入形状为(64,384,R, R)。一般来说,在没有特殊硬件支持的情况下,尽管vanilla稀疏大内核与相同大小的稠密大内核的运行时间相似(稀疏内核在普通硬件中的支持有限),但与直接使用vanilla大内核相比,稀疏分解的内核产生了4倍以上的真实推理速度加速。

四、附录

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
r是最小矩形与总输入面积之比,该输入面积可以覆盖给定阈值t以上的贡献分数。中心可以覆盖t = 30%贡献分数的1024×1024输入,则t = 30%的面积比为r = (A/1024)2。r越大,高贡献像素的分布越平滑。我们可以看到,使用全局内核,SLaK自然会考虑比ConvNeXt和RepLKNet更大的像素范围来做出决策。

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

I/O多路转接 —— select、poll、epoll

目录 一、概述 二、I/O多路转接 —— select 1. select函数的基本介绍 2. select的基本工作流程 3. 文件描述符的就绪条件 4. 基于select函数设计的服务器 1. 基本套接字的编写 2. select服务器的编写 5. select的优缺点 三、I/O多路转接 —— poll 1. poll函数的基…

LeetCode-1799- N 次操作后的最大分数和

1、状态压缩动态规划 我们可以使用动态规划来解决问题&#xff0c;我们利用数组dp[s]dp[s]dp[s]来表示状态为s时&#xff0c;能够去到的最大分数。由于题目限定了n的范围&#xff0c;因此我们可以利用二进制数字s来压缩状态&#xff0c;我们利用长度为m的二进制数s的每一位来表…

Javascript | Popper | 如何下载popper.min.js 与 各类js资源

文章目录问题描述解决办法问题描述 作为一个JS生手只知道使用CDN在线引用或者使用下载好的本地JS文件。 比如popper.js官网显示如下图&#xff0c;没有任何的Download按钮&#xff0c;有部分其他类的JS官网也存在同样的情况。 虽然有提供CDN&#xff0c;但因为国内网络原因&am…

Lua table(表)

table 是 Lua 的一种数据结构用来帮助我们创建不同的数据类型&#xff0c;如&#xff1a;数组、字典等。 Lua table 使用关联型数组&#xff0c;你可以用任意类型的值来作数组的索引&#xff0c;但这个值不能是 nil。 Lua table 是不固定大小的&#xff0c;你可以根据自己需要…

什么是python,为什么要学习Python?

什么是python&#xff1f; 人工智能概念的兴起&#xff0c;使得Python的发展非常迅速&#xff0c;关注度也是越来越高。作为现在最热门的编程语言&#xff0c;Python简单优雅&#xff0c;用尽量少的代码写出最明白的程序&#xff0c;简单易学的特性使其拥有超高的人气&#xf…

VUE—跳转传参

目录 一、基本使用 二、$route和$router 三、路由跳转的两种方式 四、编程式导航 五、传参 六、props 一、基本使用 1、安装vue-router cnpm install --save vue-router3 如果大家用的是vue2&#xff0c;下载vue-router不设置版本好的话&#xff0c;可能会因为版本过高…

大数据Kudu(十一):ClickHouse与Kudu对比

文章目录 ClickHouse与Kudu对比 ClickHouse与Kudu对比 kudu 2015年9月28号出现第一个测试版本0.5.0,2016年2月26第一个正式版0.7.发布。clickhouse 2018年3月开源正式版出现。两者都是列式存储,都可以针对数据进行实时OLAP分析,两者的区别如下: 方面 Kudu

零基础小白如何做到5个月学成Python?学习规划在这里!

自学半个月没用不是正常的吗&#xff1f;一般来说&#xff0c;Python培训需要脱产学习5个月左右&#xff0c;这样的市场既能掌握工作所需的技能&#xff0c;还能够积累一定的项目经验。 当然&#xff0c;如果你想要在Python的路上越走越远&#xff0c;则需要不断的积累和学习&…

实验二 单隐层神经网络

一、实验目的 &#xff08;1&#xff09;学习并掌握常见的机器学习方法&#xff1b; &#xff08;2&#xff09;能够结合所学的python知识实现机器学习算法&#xff1b; &#xff08;3&#xff09;能够用所学的机器学习算法解决实际问题。 二、实验内容与要求 &#xff08…

我们是如何构建自己的可观测性的

引言 近日&#xff0c;关于云平台自身的可靠性问题又成为大家关注的焦点。系统一定会有故障&#xff0c;相信作为用户都能理解&#xff0c;但用户需要在故障发生后&#xff0c;能尽快知晓造成故障的根本原因和修复计划&#xff0c;以便有效调整受影响的业务来降低损失&#xf…

盘点2022年电视行业:科技与美学的战场三星缔造“生活方式”的全新价值

作者 | 曾响铃 文 | 响铃说 前不久&#xff0c;中国质量协会第十一次组织开展了本年度电视行业用户满意度监测&#xff0c;监测对象为市场占有率达90%以上的10个主流电视品牌&#xff0c;结果显示2022年电视行业用户满意度为83分&#xff0c;同比持平&#xff0c;处于较高水平…

【Ctfer训练计划】——(三)

作者名&#xff1a;Demo不是emo 主页面链接&#xff1a;主页传送门 创作初心&#xff1a;舞台再大&#xff0c;你不上台&#xff0c;永远是观众&#xff0c;没人会关心你努不努力&#xff0c;摔的痛不痛&#xff0c;他们只会看你最后站在什么位置&#xff0c;然后羡慕或鄙夷座…

Linux系统安装Zookeeper教程

原文链接 在root账户下创建zookeeper安装目录&#xff1a; mkdir /home/zookeeper进入zookeeper目录&#xff1a; cd /home/zookeeper通过wget命令下载zookeeper安装包&#xff1a; wget https://mirrors.bfsu.edu.cn/apache/zookeeper/zookeeper-3.7.0/apache-zookeeper-3.7.0…

spring+jsp面向社区健康服务的医疗平台

目录 第一章 绪论 5 1.1 研究背景 5 1.2系统研究现状 5 1.3 系统实现的功能 6 1.4系统实现的特点 6 1.5 本文的组织结构 6 第二章开发技术与环境配置 7 2.1 Java语言简介 7 2.2JSP技术 8 2.3 MySQL环境配置 8 2.5 mysql数据库介绍 9 2.6 B/S架构 9 第三章系统分析与设计 11 3…

WebDAV之葫芦儿·派盘+FX文件管理器

FX文件管理器 支持WebDAV方式连接葫芦儿派盘。 想要一款几乎强大到极致的文件/媒体管理器,同时支持手机、电脑文件共享?推荐您选择FX File Explorer,您就可以快速轻松地管理您手机或平板上的所有内容。 FX File Explorer是一个多功能的手机文件流量和管理工具。它的界面美…

拆解一个居家隔离监测的无线门磁

捡到了一个居家隔离监测的无线门磁&#xff0c;拆开来看看&#xff1a; 门磁整体照&#xff1a; 一套门磁分两部分&#xff0c;一个主机&#xff0c;一个磁铁&#xff1b; 可以看到&#xff0c;使用的是两节干电池供电&#xff0c;内置弹簧天线。 拆下来PCBA&#xff0c;可…

(二十)Vue之单文件组件

文章目录基本使用一、如何定义一个组件&#xff1f;二、如何注册组件&#xff1f;三、如何使用组件&#xff1f;演示程序普通Vue程序单文件组件程序局部注册全局注册几个注意点1.关于组件名2.关于组件标签3.一个简写方式组件的嵌套使用关于VueComponent一个重要的内置关系&…

行业唯一,Eolink 入选信通院“云上软件工程社区汽车云工作组”首批企业成员名单

导读&#xff1a;本月20日&#xff0c;由中国信息通信研究院主办的汽车云专场沙龙成功召开&#xff0c;会上信通院发布了业内首个《汽车行业软件研发效能成熟度模型标准》&#xff0c;并成立了“云上软件工程社区-汽车云工作组”&#xff0c;Eolink 作为 API 管理领域唯一企业入…

下载离线地图多种方式(osm,MapTileDownloader )

目录 效果图&#xff1a; 一 下载离线地图的二种方式 1.osm 的方式下载瓦片 2、下载MapTileDownloader 二 代码&#xff08;推荐使用osm方式&#xff09; 效果图&#xff1a; 一 下载离线地图的二种方式 1.osm 的方式下载瓦片 百度网盘分享链接&#xff1a;https://pan.…

平板雷达水位计如何安装?平板雷达水位计怎么用?

1、设备介绍 本产品是一款用于地表水液位监测的非接触式平面雷达水位计&#xff0c;基于精确测量的电磁波测距技术。传感器发射电磁波照射水面并接收其回波&#xff0c;由此获得水面至电磁波发射点的距离、距离变化率&#xff08;径向速度&#xff09;、方位、高度等信息。  …