当前位置: 首页 > news >正文

《论文阅读13》Efficient Urban-scale Point Clouds Segmentationwith BEV Projection

一、论文

  • 研究领域: 城市级3D语义分割
  • 论文:Efficient Urban-scale Point Clouds Segmentationwith BEV Projection
  • 论文链接

注: BEV: Bird's Eye View

BEV投影是指鸟瞰视角(Bird's Eye View,简称BEV)的一种从上方观看对象或场景的视角,就像鸟在空中俯视地面一样。在自动驾驶和机器人领域,通过传感器(如LiDAR和摄像头)获取的数据通常会被转换成BEV表示,以便更好地进行物体检测、路径规划等 。

二、论文概要

 与其他已发表方法的比较结果。我们使用ResNet-34和HRNet实现了我们的模型,这两个模型都在SensatUrban数据集上实现了具有竞争力的平均IoU和整体准确性。 请注意,由于无法访问测试集标签,我们的结果是在验证集上计算的,而其他模型的结果由数据集发布者提供,并使用测试数据进行评估。

 图二.3D-2D任务转移过程概述。

1、城市规模的点云地图被预先划分成边长小于400米的网格。

2、我们进一步生成了25× 25 m2的正方形,放大倍数为20倍。

3、2D分割输出将根据其x/y坐标重新映射到大型3D标测图。

 空间重叠率统计结果。x轴表示滑动窗口(1m×1m)的点数排名,前0%表示点数最多的窗口。y轴指示投影到BEV图像上的点的重叠比。

三、论文全文

基于BEV投影的城市尺度点云高效分割

摘要:近年来,点云分析已经吸引了研究人员的目光,而3D语义分割仍然是一个问题。大多数深度点云模型直接在3D点云上进行学习,这将受到城市规模数据严重稀疏和极端数据处理负载的影响。为了解决这一挑战,我们建议将三维点云转移到密集的鸟瞰图投影。在这种情况下,由于类不平衡减少和利用各种2D分割方法的可行性,分割任务被简化。我们进一步设计了一个基于注意力的融合网络,可以对投影图像进行多模态学习。最后,2D输出被重新映射以生成3D语义分割结果。为了证明我们的方法的好处,我们在SensatUrban数据集上进行了各种实验,其中我们的模型呈现出竞争力的评估结果(61.17% mIoU和91.37% OverallAccuracy)。我们希望我们的工作可以启发进一步探索点云分析。

  • 介绍

3D语义分割是点云学习的关键技术,其目的是为每个单独的点数据分配语义标签,已广泛应用于自动驾驶[1],虚拟现实[2],3D重建[3]等。虽然深度学习在2D语义分割任务中表现突出,但它无法直接处理不规则,无序和非结构化的点数据[4]。因此,目前有几种方法[5]-[11]将非结构化点转换为某些有效的中间表示,例如体素[7],[12]和多视图[10],[13],[14],以利用经典CNN模型处理点云。随着对三维场景理解需求的不断增加,提出了越来越多的三维点云数据集。从室内数据集(例如,S3DIS [15]和ScanNet [16])到道路级数据集(例如,SemanticKITTI [17]),数据集的空间大小也更大。最近的工作[3],[18]提出了城市级数据集,为大规模数据集的语义分割带来了一些新的挑战。

  • 室内数据集(例如,S3DIS [15]和ScanNet [16])
  • 道路级数据集(例如,SemanticKITTI [17]),数据集的空间大小也更大
  • [3],[18]提出了城市级数据集

与基于LiDAR的数据集不同,这些城市规模的点云大多是从无人机摄影测量中获得的,这可能导致数据集中的以下特征。首先,无人机摄影测量的扫描不均匀,扫描区域不集中,捕获的图像边缘有散乱的区域。其次,重建的点云部分缺失。我们在SensatUrban [3]数据集中观察到这种现象,一个典型的例子是,在对点云进行可视化后,屋顶下没有对应的墙点,这使得屋顶似乎悬浮在空中。有趣的是,我们发现基于无人机的点云中垂直点的类别重叠率较低,例如,SensatUrban为2.3%,这意味着鸟瞰图是一种合适的投影方法,它更简单,更有效,并且能够最大限度地保留点细节。

此外,对于投影图像,具有更丰富标记的2D像素级数据集可以用于预训练。因此,在本文中,我们提出了一个BEV投影分割方法来处理城市规模的三维分割问题。

我们的主要贡献是:

1)对城市规模的点云进行点级分析;

2)提出了一种基于BEV投影算法的多模态融合分割模型;

3)我们在SensatUrban数据集上对我们的方法进行了评估,我们的竞争结果证明了我们设计的有效性。

  • 相关工作

A.语义分割

通常,根据输入网络的点云数据的形式,现有的大多数3D语义分割方法可以分为三类:基于点、基于3D表示和基于投影。

基于点的方法直接处理原始点云,其代表方法是PointNet,计算开销大。虽然[19],[20]对PointNet进行了一些有益的改进,但由于这些方法直接处理sprase数据,因此仍然难以加速。最近的RandLA-Net [2]引入了随机采样和轻型网络架构,大大加快了模型的速度。然而,如[21]中所提到的,基于点的方法中不可忽视的问题是,由低效的随机存储器访问引起的处理sprase数据的大量时间浪费(80%),这意味着实际上只有少量的时间用于提取特征。此外,大的存储器开销也是一个严重的问题。

基于3D表示的方法将原始点云数据变换成某些3D表示(例如,体素和晶格),然后利用3D卷积[5]-[8]。然而,很难平衡分辨率和内存之间的关系[21],[22]。分辨率越低,同一网格中的点融合在一起,导致点云信息丢失越严重。分辨率越高,计算开销和内存使用量越大。此外,预处理和后处理步骤需要大量时间[23]。

  • 分辨率越低,同一网格中的点融合在一起,导致点云信息丢失越严重。
  • 分辨率越高,计算开销和内存使用量越大

基于投影的方法利用成熟的2D卷积模型来处理从3D点云投影的图像,而不是直接处理点。基于投影的方法包括几个特定的类别,如多视图,基于球面的方法。多视图方法[10],[13],[14]将点云投影到多个虚拟相机视图中。例如,[10]利用多流CNN来处理从每个视图生成的图像,然后融合每个点的不同图像的预测分数,[13]定义了旋转相机并提出了Katz投影来选择每个相机角度中的点,[14]在不同的相机位置生成深度图像和RGB图像。[24]利用球面投影方法将三维点云转换为图像,利用SqueezeSeg网络进行分割,并应用条件随机场(CRF)对分割结果进行优化。[11]提出了基于SqueezeSeg的上下文聚合模块(CAM)来扩展感受野,并且[4]引入了空间自适应卷积(SAC)来进一步提高分割精度。

基于投影的方法包括几个特定的类别:

  • 多视图方法[10],[13],[14]将点云投影到多个虚拟相机视图中。
  • 利用球面投影方法将三维点云转换为图像

 B 大规模场景的语义分割

在最近的工作中,已经提出了几个由无人机拍摄的城市尺度3D点云数据集[3],[18],[25],其中最大的是SensatUrban [3]数据集,其覆盖面积为7.64×106 m2,具有30亿个注释点。然而,这些大而密集的数据集给语义分割带来了新的挑战。

城市尺度3D点云数据集: 

  • 最大的是SensatUrban

首先,面对海量数据,预处理方法的选择,例如,数据分区、下采样等。意义重大。其次,城市规模点云存在类分布不均衡的问题。第三,基于无人机的数据集和基于激光雷达的数据集之间的一个显着差异是,前者包含RGB特征。对于大规模数据集,是否将RGB特征纳入网络以及如何有效地利用RGB特征值得考虑。最近的工作,例如RandLA-Net [2]和BAAF-Net [23]利用RGB颜色并取得了积极的分割结果。对于BEV投影生成的图像,我们设计了一个基于注意力的多模型融合网络,有效地融合了RGB和几何细节。与单模态网络相比,分割效果取得了一定的提高,进一步验证了RGB颜色对分割的意义。


海量数据预处理方法:

  • 数据分区
  • 下采样等

近年来,已经提出了几种针对大型数据集的语义分割算法[2],[9],[26],[27]。例如,RandLA-Net [2]引入了随机采样以提高计算和内存的效率,TagentConv [9]利用基于切线卷积的U型网络进行大型和密集数据集的语义分割,SPGraph [27]提出了一种新的点云表示(SPG),能够捕获3D点的上下文结构。需要提出更多的大规模点云分割算法。

  • 方法:

A 问题陈述

3D点云语义分割的目的是为每个单独的点分配语义标签,而2D分割是为每个像素分配特定的标签。在某种程度上,这两种类型的任务具有相似的目的和解决方案。根据我们上面的陈述,可以将3D点云语义分割任务转移到2D鸟瞰图分割问题。主要过程包括鸟瞰图映射和2D多模态分割。

B 鸟瞰投影为什么合理

当我们将一个任务转移到另一个任务时,它要求输入数据和预期输出的一致性。为了评估我们的想法,我们在构建模型之前进行点级分析。我们首先将3D点投影到BEV图上(将在下文中详细描述)并计算重叠率。在投影中以0.04m为单位进行坐标缩放时,约有25.44%的点会丢失。对于那些点密集的地方,比例将提高到50%或更多。然而,我们发现大多数重叠点属于与顶部点相同的类别。类重叠率低于2.3%,mIoU可达93.7%。在这种情况下,可以将3D分割任务转移到2D BEV分割。我们的目标是在BEV图像上进行精确识别

C 鸟瞰图

为了优化这种大型点云的数据处理负载,我们将整个工作分为三个部分:3D到BEV投影、稀疏BEV图像完成和BEV到3D重新映射。 前两个部分的处理在下面的算法1中被呈现为伪代码。我们设置一个滑动窗口来处理点并生成BEV图像。在投影之前,我们需要初始化参数gscale,gscale,gscale,它控制滑动窗口的缩放,大小和移动步骤。对于每个滑动步骤,我们通过x/y坐标对点进行排序,并从当前BEV投影窗口开始/结束坐标中查询点,之后将删除处理过的点以减少后续数据处理量。为了获得最佳的参数,我们测试了不同的投影尺度从0.01到0.04的空间重叠率,如图3所示。当我们将点云的尺度设置在[0.01,0.03]时,会导致点云不同部分的重叠分布非常接近,即城市尺度点云中的点的最小间距在[0.03,0.05](m)以内。此外,根据我们的投影图像数量估计,合适的窗口长度在[20,50](m)以内。因此,我们将参数设置为gscale = 0.05,gsize = gstep = 25。然而,我们也建议多尺度,多尺寸和多步采样,以便在未来的工作或其他类似的任务中更好地训练。

对于单个滑动窗口中的点,我们通过积分x/y坐标将点映射到像素。这将不可避免地带来值量化的损失,但是,如果我们在3D重映射中进行相同的过程,它不会影响标签检索过程。BEV图使用顶部的点进行更新,生成具有颜色和z坐标值的RGB和海拔(Alt)图像。考虑到BEV图像上投影点云的显著稀疏性,这将在标记和模型学习中引入严重的噪声,因此有必要对投影进行像素级完成,特别是对于不同类点周围的内部区域和边缘。在我们的实验中,我们迭代地对每个图像中的每个通道进行三次2D最大池化。标签的渐进变化如图4所示。

 

 完工测试。对于从左到右,我们呈现原始BEV标签和具有一次/两次/三次最大池化完成的标签。

对于3D重映射,我们存储每个投影窗口的绝对x/y坐标,并使用主题查询原始大规模点云中的提取位置以获得2D分割输出。对应于相同像素的点将被赋值为与像素相同的类。之后,我们能够评估3D语义分割性能。

D.最大值多模态分割

通过BEV投影的高度和RGB图像,我们可以利用多模态网络从数据的不同方面进行学习。为了快速开发一个合适的模型,我们考虑一个编码器-解码器网络UNet作为我们的基线,不仅因为它的流行模型架构,而且因为它在修改,训练和推理方面的效率。它包括编码器中的4个块和解码器中的5个块,其中两个是ResNet-34块,最后四层使用转置卷积,其余是卷积块。所有卷积块都有一个批量归一化层和一个ReLU层,所有内核大小都是3x 3。编码器中的每个块都用虚线链接到解码器中的相应块,该虚线将它们的输出连接起来以检索低级特征。

通常,多模态融合依赖于各层中的特征通信。在此基础上,提出了一种灵活的多级融合网络,支持不同时间、不同地点的多管道数据融合。熔合层包括若干恒定形状的熔合块。每个块接受来自两个管道的两个相等形状的张量,并采用注意力层从连接的特征图中选择关键通道。以这种方式,熔合块倾向于丢弃不相关的特征,并且熔合在随后的层中容易被激活的那些特征。对于注意力块,我们参考我们以前的工作??,提出了一种用于语义分割的跨通道多模态融合注意块。之后,我们添加1x1卷积以降低维度,并针对图像特征和融合特征、海拔特征和融合特征重复这样的融合块。重要的是外块保持特征图的恒定形状,这意味着我们可以根据需要堆叠具有各种网络形状的无限块。

  • 实验

 A setup 

数据集:SensatUrban [3]在英国3个大城市采集,包含2847M个点,覆盖真实的世界7.64× 106m2的面积,是目前最大的3D点云数据集。在获得无人机拍摄的区域图像序列后,从这些图像重建SensatUrban点云数据集。它包含13个语义类,包括地面、建筑物、交通道路等大类和自行车、铁路、桥梁等小类。在实验中,37个点云用于训练,6个点云用于测试。每个点包含三维坐标、RGB颜色和语义类的特征。请注意,由于缺乏测试集标签,我们将训练集随机分为4:1,使用80%的数据进行训练,使用20%的数据进行测试。所有测试数据都不用于训练。

度量:我们将我们的模型与几个使用不同方法(例如,基于点的方法、基于投影的方法等)并且最近出版。选择平均IoU(mIoU)和总体准确度(OA)作为评价指标。

实施情况:我们在训练中使用交叉熵作为损失函数。考虑到不同类间的不平衡性,我们使用对数倒数权值来调整学习中的损失。我们将批处理大小设置为8,将输入大小设置为投影大小500 x500。我们的模型在两个GPU上训练,RTX 3090具有24 G RAM和E5- 2678 v3 CPU。此外,我们使用以下软件设置:Ubuntu 16.04 64位操作系统,Python 3.6,gcc5.4.0,PyTorch 1.7与CUDA 11.0硬件加速。

B. Results

我们使用三个主干实现了我们的模型,UNet和ResNet34,Deeplabv3和ResNet101,OCRNet和HRNet。最后两个模型被训练以探索在我们的BEV分割框架下的潜在性能。我们在表I中展示了分割结果(重新映射到3D点云并在3D中进行评估)。与现有的模型相比,我们的模型可以实现相当有竞争力的结果,在大多数classed和整体performancee在OA,mAcc,和mIoU。缺点是我们的BEV分割仍然无法识别一些小物体,如自行车,因为它们在投影图像中占用的像素也非常有限。在未来的工作中,融合3D和我们的BEV模型可能会解决这个问题。可视化如图5所示。

  • CONCLUSION

针对大规模无人机点云数据稀疏、处理负担重的问题,设计了一种大规模无人机点云数据预处理方法,即将三维点云投影到密集的鸟瞰图上。此外,我们还提出了一种基于注意力的多模态融合网络来分割生成的二维图像,充分利用RGB颜色和几何信息。我们在SensatUrban数据集上获得了61.17%的mIoU和91.37%的OverallAccuracy测试结果。我们希望我们的工作可以启发大规模的点云语义分割任务。

 

 

 

相关文章:

《论文阅读13》Efficient Urban-scale Point Clouds Segmentationwith BEV Projection

一、论文 研究领域: 城市级3D语义分割论文:Efficient Urban-scale Point Clouds Segmentationwith BEV Projection论文链接 注: BEV: Birds Eye View BEV投影是指鸟瞰视角(Birds Eye View,简称BEV)的一种从上方观看对象或场景的…...

Django实现音乐网站 ⑻

使用Python Django框架制作一个音乐网站, 本篇主要是后台对单曲原有功能的基础上进行部分功能实现和显示优化。 目录 新增编辑 歌手下拉显示修改 设置歌曲时长 安装eyed3库 获取mp3时长 歌曲时长字段修改 重写save方法 增加歌手单曲数量 查询歌手单曲数量 …...

VScode中同时打开两个脚本

使用快捷键: CtrlAltRightArrow 效果: 可以看到,上述两个脚本使用独立的窗口进行编辑和查看。...

能源电力工程师专属Python学习资料

随着我国新型电力系统的建设,一方面电源侧各类新能源装机快速增长,对于新能源出力的功率预测需求日益增长;另一方面,我国电力市场经过 8 年建设,关于电力商品价格影响因素的研究亟待深入。超过 90% 的业务小伙伴都具备…...

推荐5款实用软件,提高工作效率,丰富生活乐趣

​ 分享软件会让我感到开心和满足,因为我知道这些软件可以提高工作效率,丰富生活乐趣。今天再次将几款非常实用的软件推荐给大家。 截图翻译工具——CopyTranslator ​ CopyTranslator是一款非常实用的截图翻译软件,它支持对截图、选定区域进行OCR文字识别,自动翻…...

Python爬虫在电商数据挖掘中的应用

作为一名长期扎根在爬虫行业的专业的技术员,我今天要和大家分享一些有关Python爬虫在电商数据挖掘中的应用与案例分析。在如今数字化的时代,电商数据蕴含着丰富的信息,通过使用爬虫技术,我们可以轻松获取电商网站上的产品信息、用…...

element-ui 表格el-table的列内容溢出省略显示,鼠标移上显示全部和定制样式

1、在对应列加上省略显示show-overflow-tooltip属性&#xff0c;如果加上这属性&#xff0c;鼠标移上还是没效果&#xff0c;要考滤是不是层级的原因&#xff0c;被其他挡住了。 :deep(.el-tooltip){position: relative;z-index:9; } <el-table-column label"用款渠…...

研究人员发现特斯拉汽车能被越狱,可免费解锁付费功能

Bleeping Computer 网站披露&#xff0c;柏林工业大学&#xff08;Technical University of Berlin&#xff09;的研究人员开发出一种新技术&#xff0c;可以破解特斯拉近期推出所有车型上使用的基于 AMD 的信息娱乐系统&#xff0c;并使其运行包括付费项目在内的任何软件。 实…...

【设计模式】责任链的基本概念及使用Predicate灵活构造校验链

文章目录 1. 概述1.1.背景1.2.责任链模式的概念 2.责任链的基本写法2.1.链表实现2.2.数组实现 3.Predicate校验链2.1.使用Predicate改写代码2.1.更丰富的条件拓展 4.总结 1. 概述 1.1.背景 在最近的开发中遇到了这么一个需求&#xff0c;需要对业务流程中的各个参数做前置校验…...

Taro保存图片到手机

萌新亚历山大啊&#xff0c;搞了一下午&#xff0c;真多坑 Taro.downloadFile({url: res,filePath: Taro.env.USER_DATA_PATH /xcxcode.jpg,success: res > {if (res.statusCode 200) {console.log(res)const tempFilePath res.filePath; // 获取下载的临时文件路径// …...

zookeeper --- 基础篇

一、zookeeper简介 1.1、什么是zookeeper zookeeper官网&#xff1a;https://zookeeper.apache.org/ 大数据生态系统里的很多组件的命名都是某种动物或者昆虫&#xff0c;他是用来管 Hadoop&#xff08;大象&#xff09;、Hive(蜜蜂)、Pig(小 猪)的管理员。顾名思义就是管理…...

Golang map 常用方法

文章目录 前言按key排序按value排序统计字符串中元素重复出现次数并将结果排序返回 前言 由于map是无序的&#xff0c;所以排序成 slice 返回&#xff0c;且都使用泛,代码只是示例&#xff0c;省略了错误判断 按key排序 package mainimport "fmt"func example[T c…...

用于视觉跟踪的在线特征选择研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…...

Docker基本使用

查看本地镜像 查看本地&#xff1a;docker imagesPull镜像&#xff1a;docker pull nginx:latest登录镜像&#xff1a;docker login hub.docker.com -u **** -p ****制作镜像&#xff1a;docker build -t xxxx:v1push&#xff1a;docker push xxx:v1删除镜像:docker rmi #imag…...

PHP生成随机数

要在 PHP 中生成随机密码&#xff0c;可以使用 rand() 函数和字符串操作函数。以下是一个示例代码来生成包含字母、数字和特殊字符的随机密码 function generateRandomPassword($length 8) {// 定义包含字母、数字和特殊字符的字符集$characters abcdefghijklmnopqrstuvwxyz…...

MongoDB:Unrecognized option: storage

MongoDB一直显示 Unrecognized option: storage try ‘mongod --help’ for more information 意思是我们配置的config文件出了问题。 说明&#xff1a;MongoDB采用的是YAML格式&#xff0c;所以我们只需要稍微改改就好。 在storage前面&#xff1a;没有空格 下面两行最前面…...

Java基础九 - 异常

1. throw 和 throws 1. throw是在代码运行过程中引起一个异常 2. throws是将异常声明但是不处理&#xff0c;而是将异常往上传&#xff0c;谁调用我就交给谁处理 2. final、finally、finalize 1. final是修饰符&#xff0c;用于修饰变量、方法、类修饰变量&#xff0c;最开始…...

[国产MCU]-BL602开发实例-UART数据发送与接收

UART数据发送与接收 文章目录 UART数据发送与接收1、BL602的UART介绍2、UART相关驱动API介绍3、UART使用示例3.1 轮询方式数据接收与发送3.2 中断方式数据接收与发送3.3 DMA方式接收与发送数据通用异步收发传输器(Universal Asynchronous Receiver/Transmitter,通常称为UART)…...

mac安装open3d时候出现错误

在测试open3d是否正常顺利安装时&#xff0c;出现了如下错误&#xff1a; python -c "import open3d as o3d; print(o3d.__version__)" Traceback (most recent call last):File "<string>", line 1, in <module>File "/Users/huangzhe/…...

打造本地户外装备小程序商城教程大揭秘

在如今的移动互联网时代&#xff0c;小程序已经成为了各行各业的发展利器。尤其对于户外用具行业来说&#xff0c;一个专属的小程序商城将能够极大地提升企业的品牌形象和销售业绩。下面就来介绍一下快速上手制作户外用具小程序的攻略吧。 首先&#xff0c;登录乔拓云平台进入商…...

在外SSH远程连接Ubuntu系统

在外SSH远程连接Ubuntu系统【无公网IP】 文章目录 在外SSH远程连接Ubuntu系统【无公网IP】前言1. 在Ubuntu系统下安装cpolar软件2. 完成安装后打开cpolar客户端web—UI界面3. 创建隧道取得连接Ubuntu系统公网地址4. 打开Windows的命令界面并输入命令 前言 随着科技和经济的发展…...

GOTS标准速递---7.0 版将于2024年3月1日起全面生效

【GOTS标准速递---7.0 版将于2024年3月1日起全面生效】 全球有机纺织品标准很高兴地宣布发布GOTS 7.0 版&#xff0c;该版本扩大了环境和社会标准的范围&#xff0c;同时保持了适用于工业生产并适用于各种产品的标准。在为期一年的定期修订过程中&#xff0c;在有机生产、纺织品…...

Ansible的安装和配置

安装和配置 Ansible 安装所需的软件包 创建名为 /home/greg/ansible/inventory 的静态清单文件&#xff0c;以满足以下要求&#xff1a; 172.25.250.9 是 dev 主机组的成员 172.25.250.10 是 test 主机组的成员 172.25.250.11 和 172.25.250.12 是 prod 主机组的成员 172.2…...

口-肠-脑轴与精神健康的关系

谷禾健康 在个体中&#xff0c;每个微生物栖息地都表现出独特的微生物种群模式。迄今为止&#xff0c;关于微生物组相关疾病的研究主要集中在器官特异性微生物组上。然而&#xff0c;器官间的微生物网络正逐渐成为生理功能和病理过程中的重要调节因子和治疗机会。 在正常情况下…...

Dubbo是干嘛的,Dubbo原理和机制,Dubbo的核心组件

目录 一、介绍1、Dubbo是什么2、为什么需要Dubbo3、Dubbo的特性 二、 Dubbo的核心概念1、暴露和引用&#xff08;Export and Refer&#xff09;2、服务提供者和服务消费者3、注册中心4、负载均衡5、集群容错 三、Dubbo的架构1、服务提供者和服务消费者之间的通信流程2、Dubbo的…...

自动zksync刷账户交互(附代码)

自动化任务的 Python 代码。它使用 Selenium 库来控制浏览器。 #解锁小狐狸 task.unlock_metamask(ads) #zk主网连接钱包,初始化 #ZK主网任务1:转账 print(选择ZK主网任务1:转账) task.zk_task1(ads,address) #…...

荐读 | 《揭秘云计算与大数据》

当我们回顾过去几十年的科技进步时&#xff0c;云计算和大数据在现代科技发展史上无疑具有里程碑式的意义&#xff0c;它们不仅改变了我们的生活方式&#xff0c;而且对各行各业产生了深远的影响。 在这个数字化时代&#xff0c;云计算和大数据技术已经成为推动全球发展的关键…...

RISC-V基础之内存分布与映射

内存映射是指将地址空间划分为不同的部分或段&#xff0c;每个段有不同的用途和属性。这段话介绍了五个段&#xff1a;文本段、全局数据段、动态数据段、异常处理器段和操作系统&#xff08;OS&#xff09;段。下面是对每个段的简要说明&#xff1a; 文本段&#xff1a;存放程序…...

【Unity3D应用案例系列】Unity3D中实现文字转语音的工具开发

推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享简书地址我的个人博客 大家好&#xff0c;我是佛系工程师☆恬静的小魔龙☆&#xff0c;不定时更新Unity开发技巧&#xff0c;觉得有用记得一键三连哦。 一、前言 在开发中&#xff0c;会遇到将文字转语音输出的需求&#xff0…...

STM32入门——定时器

内容为江科大STM32标准库学习记录 TIM简介 TIM&#xff08;Timer&#xff09;定时器定时器可以对输入的时钟进行计数&#xff0c;并在计数值达到设定值时触发中断16位计数器、预分频器、自动重装寄存器的时基单元&#xff0c;在72MHz计数时钟下可以实现最大59.65s的定时&…...