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

【动手学轨迹预测】2.4 考虑地图拓扑关系的表征方法

上一节我们介绍了VectorNet提出了矢量化场景表征方法, 大幅提高了预测网络编码性能. 但是VectorNet对地图数据的编码是基于无向无权图的, 并没有考虑到地图的拓扑关系.

显然在预测中, 地图的拓扑关系应该被考虑到. 于是在VectorNet的基础上, LaneGCN提出一种将地图车道作为节点, 并考虑车道间的拓扑关系的预测网络.

2.4.1 图卷积(Graph Convolution)

图卷积是一种在图结构数据上进行卷积操作的方法, 最常用的操作定义为 Y = L X W Y = LXW Y=LXW ,其中:

  • Y ∈ R N × O Y \in \mathbb{R}^{N \times O} YRN×O 是输出特征矩阵。
  • L ∈ R N × N L \in \mathbb{R}^{N \times N} LRN×N 是图拉普拉斯矩阵(Graph Laplacian Matrix)
  • X ∈ R N × F X \in \mathbb{R}^{N \times F} XRN×F 是节点特征矩阵, N N N 是节点的数量, F F F 是每个节点特征的维度。
  • W ∈ R F × O W \in \mathbb{R}^{F \times O} WRF×O 是权重矩阵,用于将输入特征从 F F F 维映射到输出特征的 O O O 维。

其中图拉普拉斯矩阵 L L L , 是从度矩阵 D D D 和邻接矩阵 A A A 派生出的矩阵,用于描述图中节点间的连接关系。它的形式可以是:

  • 普通形式: L = D − A L = D - A L=DA
  • 对称归一化形式: L s y m = D − 1 / 2 L D − 1 / 2 = I − D − 1 / 2 A D − 1 / 2 L^{sym} = D^{-1/2}LD^{-1/2} = I - D^{-1/2}AD^{-1/2} Lsym=D1/2LD1/2=ID1/2AD1/2
  • 随机游走归一化形式: L r w = D − 1 L = I − D − 1 A L^{rw} = D^{-1}L = I - D^{-1}A Lrw=D1L=ID1A

2.4.2 MapNet:提取结构化的地图表征

2.4.2.1 车道图 (Lane Graph)

首先我们需要基于高精度地图数据, 构造车道图. 如上左图, 车道由一些列的离散点(BEV Point)组成.

当前关注的车道(红色), 前继车道(黄色), 后继车道(蓝色), 左邻居车道(紫色)和右邻居车道(绿色).

作者认为使用GCN无法高效的捕捉地图的拓扑关系, 因为图拉普拉斯矩阵不能记录这么多种拓扑关系. 同时GCN也无法有效的关注到长距离信息, 这对轨迹预测是重要的.

论文将车道数据节点化为右图, 每个Node包括车道的始末点, 平均位置以及前继, 后继, 左邻居和右邻居节点.其中每个节点使用4个邻接矩阵表达拓扑关系: { A i } i ∈ { pre,suc,left,right  } with  A i ∈ R N × N \left\{A_i\right\}_{i \in\{\text { pre,suc,left,right }\}} \text { with } A_i \in \mathbb{R}^{N \times N} {Ai}i{ pre,suc,left,right } with AiRN×N

2.4.2.2 车道卷积 LaneConv

论文设计了两个MLP提取分别提取每个节点的形状和位置特征:

x i = MLP ⁡ shape  ( v i end  − v i start  ) + MLP ⁡ loc  ( v i ) \mathbf{x}_i=\operatorname{MLP}_{\text {shape }}\left(\mathbf{v}_i^{\text {end }}-\mathbf{v}_i^{\text {start }}\right)+\operatorname{MLP}_{\text {loc }}\left(\mathbf{v}_i\right) xi=MLPshape (viend vistart )+MLPloc (vi)

所有的节点信息 x i x_i xi构造成完整的节点信息矩阵 X X X, 接着将 X X X与自己以及每个邻接矩阵加权求和得到lane的编码特征信息:

Y = X W 0 + ∑ i ∈ { pre,suc,left,right  } A i X W i , Y=X W_0+\sum_{i \in\{\text { pre,suc,left,right }\}} A_i X W_i, Y=XW0+i{ pre,suc,left,right }AiXWi,

2.4.2.3 考虑长距车道信息的空洞车道卷积 Dilated LaneConv

车道卷积只考虑了车道的相邻车道, 但是在真实的预测中很有可能需要考虑: 纵向上的长距车道. 比如说前继车道的前继车道, 后继车道的后继车道.

因此作者受CNN中的空洞卷积启发, 设计了空洞车道卷积:

Y = X W 0 + A p r e k X W p r e , k + A s u c k X W s u c , k , Y=X W_0+A_{\mathrm{pre}}^k X W_{\mathrm{pre}, k}+A_{\mathrm{suc}}^k X W_{\mathrm{suc}, k}, Y=XW0+AprekXWpre,k+AsuckXWsuc,k,

A s u c k A_{\mathrm{suc}}^k Asuck是指后继邻接矩阵的 k k k次幂, 相当于沿着当前车道向后走了 k k k步, 这样就可以让网络获取纵向上的长距离车道信息.

2.4.2.4 LaneGCN

综合上面特征提取公式, 最终得到了完整的LaneConv特征提取公式:

Y = X W 0 + ∑ i ∈ { l e f t , r i g h t } A i X W i + ∑ c = 1 C ( A p r e k c X W p r e , k c + A s u c k c X W s u c , k c ) , Y=X W_0+\sum_{i \in\{\mathrm{left}, \mathrm{right}\}} A_i X W_i+\sum_{c=1}^C\left(A_{\mathrm{pre}}^{k_c} X W_{\mathrm{pre}, k_c}+A_{\mathrm{suc}}^{k_c} X W_{\mathrm{suc}, k_c}\right), Y=XW0+i{left,right}AiXWi+c=1C(AprekcXWpre,kc+AsuckcXWsuc,kc),

公式中考虑当前车道的特征, 左右相邻车道的特征以及 k k k个前继, 后继车道的特征. C C C是空洞卷积的尺寸, 代表不同扩展程度的尺寸. 从1到 C C C求和得到多扩展尺度的长距车道特征. 下图表达了LaneGCN的相邻车道和长距车道特征提取能力.

最终论文设计了4个并行的LaneConv模块, 并添加残差连接, 作为完整的LaneGCN 网络.

相关文章:

【动手学轨迹预测】2.4 考虑地图拓扑关系的表征方法

上一节我们介绍了VectorNet提出了矢量化场景表征方法, 大幅提高了预测网络编码性能. 但是VectorNet对地图数据的编码是基于无向无权图的, 并没有考虑到地图的拓扑关系. 显然在预测中, 地图的拓扑关系应该被考虑到. 于是在VectorNet的基础上, LaneGCN提出一种将地图车道作为节点…...

ChatGLM3模型搭建(踩坑记录版)

参考 魔搭社区 https://zhuanlan.zhihu.com/p/720148240 智谱AI通用大模型:本地部署ChatGLM3-6B开源大模型 - 编程库 说明 搭建方式多篇文章结合着看; 模型下载强烈推荐魔塔社区下载ZhipuAI/chatglm3-6b; 官方github指定清华的模型没有…...

基于 Python Django 的花卉商城系统的研究与实现

博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…...

Spring Boot 3 文件下载、多文件下载以及大文件分片下载、文件流处理、批量操作 和 分片技术

在 Spring Boot 3 中,实现文件下载、多文件下载以及大文件分片下载需要结合以下功能:文件流处理、批量操作 和 分片技术。以下是详细实现方案: 1. 单文件下载 基础的单文件下载实现,可以参考以下代码: GetMapping(&…...

什么是事件循环(Event Loop)?请谈谈它在 JavaScript 中的作用?

事件循环(Event Loop)是什么? 事件循环(Event Loop)是JavaScript运行时环境(如浏览器或Node.js)中的一个核心机制,用于处理异步操作和事件。 它负责协调代码的执行、事件的处理、以…...

Lua : Coroutine(协程)

Lua 协程(coroutines)是一种强大的控制结构,允许函数在执行过程中暂停并在稍后恢复。与线程不同,协程是非抢占式的,这意味着它们不会被操作系统调度,而是由程序显式地切换。协程在 Lua 中非常有用&#xff…...

【2024华为OD-E卷-200分-跳格子2】(题目+思路+JavaC++Python解析)

题目描述 在一个二维平面上,有一个 n x m 的网格,每个格子有一个非负整数。你从左上角 (0, 0) 开始,每次只能向右或向下移动,目标是到达右下角 (n-1, m-1)。 在移动过程中,你需要记录经过的格子中,最大数…...

【仓颉语言基础】语言概念、环境配置与语法解析

华为仓颉语言是一门专为分布式系统设计的现代编程语言,以简洁的语法和强大的分布式能力为核心,提供高效的资源管理和任务调度方案。本篇文章将带您从概念入手,逐步掌握环境配置与语法基础,为分布式开发奠定坚实基础。 文章目录 一…...

LeetCode - 初级算法 数组(删除排序数组中的重复项)

免责声明:本文来源于个人知识与公开资料,仅用于学术交流。 删除排序数组中的重复项 这篇文章讨论如何从一个非严格递增的数组 nums 中删除重复的元素,使每个元素只出现一次,并返回新数组的长度。因为数组是排序的,只要是相同的肯定是挨着的,所以我们需要遍历所有数组,然…...

SpringMVC进阶(自定义拦截器以及异常处理)

文章目录 1.自定义拦截器 1.基本介绍 1.说明2.自定义拦截器的三个方法3.流程图 2.快速入门 1.Myinterceptor01.java2.FurnHandler.java3.springDispatcherServlet-servlet.xml配置拦截器4.单元测试 3.拦截特定路径 1.拦截指定路径2.通配符配置路径 4.细节说明5.多个拦截器 1.执…...

2 秒杀系统架构

第一步 思考面临的问题和业务场景 秒杀系统面临的问题: 短时间内并发非常高,如果按照秒杀的并发做相应的承载会造成大量资源的浪费。第二解决超卖的问题。 第二步 思考目前的处境和解决方案 因为秒杀系统属于短时间内的高并发问题,我们不可能使用那么…...

C++如何遍历数组vector

在C中&#xff0c;vector是一个可变数组。那么怎么遍历它呢&#xff1f;我们以for循环为例&#xff08;while循环&#xff0c;大家自己脑补&#xff09;。 方法一&#xff1a; 基于范围的for循环&#xff0c;这是C11新引入的。 std::vector<int> v {1, 2, 3, 4, 5, 6…...

ubuntu非root用户操作root权限问题-virbox挂在共享文件夹

首先讲一下&#xff0c;virtuallbox 挂在文件夹&#xff0c;操作的时候总是需要root权限&#xff0c;比较费劲。 这一操作其实也正对着我们在Ubuntu上的操作。 前段时间我想在ubuntu正常用户下去操作i2c&#xff0c;也出现了类似的问题。 后来把正常的操作加到组里面也解决了类…...

大模型推理:vllm多机多卡分布式本地部署

文章目录 1、vLLM分布式部署 docker镜像构建通信环境配置 2、其他大模型部署工具3、问题记录参考文献 单台机器GPU资源不足以执行推理任务时&#xff0c;一个方法是模型蒸馏量化&#xff0c;结果就是会牺牲些效果。另一种方式是采用多台机器多个GPU进行推理&#xff0c;资源不…...

WFP Listbox绑定数据后,数据变化的刷新

Listbox绑定数据通过ItemsSource来的&#xff0c;如果绑定的是普通的List<数据>&#xff0c;不会自己刷新。 使用ObservableCollection集合 解决问题的方法: 将数组替换为 ObservableCollection ObservableCollection 是专为绑定设计的集合类型&#xff0c;可以通知 W…...

AI + 爬虫:智能化数据采集的未来

随着人工智能&#xff08;AI&#xff09;技术的不断进步&#xff0c;传统的网络爬虫正经历一场前所未有的变革。从规则驱动到智能化演变&#xff0c;AI 的引入不仅提高了爬虫的效率和适应性&#xff0c;更为大规模数据采集提供了全新思路。本文将深入探讨 AI 与爬虫的结合&…...

人工智能知识分享第五天-正则化.损失函数案例

正则化 欠拟合与过拟合 过拟合&#xff1a;一个假设 在训练数据上能够获得比其他假设更好的拟合&#xff0c; 但是在测试数据集上却不能很好地拟合数据 (体现在准确率下降)&#xff0c;此时认为这个假设出现了过拟合的现象。(模型过于复杂) 欠拟合&#xff1a;一个假设 在训…...

WebRTC的线程事件处理

1. 不同平台下处理事件的API&#xff1a; Linux系统下&#xff0c;处理事件的API是epoll或者select&#xff1b;Windows系统下&#xff0c;处理事件的API是WSAEventSelect&#xff0c;完全端口&#xff1b;Mac系统下&#xff0c;kqueue 2. WebRTC下的事件处理类&#xff1a; …...

C++软件设计模式之迭代器模式

迭代器模式是一种行为设计模式&#xff0c;它允许你顺序访问一个聚合对象的元素&#xff0c;而不暴露其底层表示。在C软件设计中&#xff0c;迭代器模式的主要目的是将数据的遍历行为与数据结构本身分离&#xff0c;使得数据结构的修改不会影响到遍历代码。 目的和意图 解耦遍…...

git reset --hard(重置到当前提交,所有未提交的更改都会被永久丢弃)

git reset --hard 是一个强大的命令&#xff0c;它会将你的工作目录、暂存区和当前分支的 HEAD 指针重置到指定的提交状态&#xff0c;所有未提交的更改都会被永久丢弃。因此&#xff0c;使用这个命令时需要非常小心。 基本用法 重置到当前提交&#xff08;丢弃所有未提交的更…...

三分钟在你的react项目中引入tailwindcss

前言&#xff1a;在vite搭建的react项目中引入并使用tailwindcss 一、初始化react项目 1、创建项目 在文件夹下右键打开终端并输入命令使用vite创建项目 pnpm create vite react-tailwind选择reactjavascript&#xff0c;并输入命令安装依赖并启动 2、安装tailwind pnpm …...

Android Studio学习笔记

01-课程前面的话 02-Android 发展历程 03-Android 开发机器配置要求 04-Android Studio与SDK下载安装 05-创建工程与创建模拟器...

19712 数字接龙

/*我觉得重要的理解点&#xff1a;1.四维数组白表示一个点从另一个点沿对角线的方式进行移动&#xff0c;如果这个元素的值为真则表示这样的移动存在。 2.按照0->k-1的顺序移动。这个要求的实现方法也值得学习 3.count和index的含义&#xff1a; index表示索引&#xff0c;表…...

【图像去噪】论文复现:大道至简!ZS-N2N的Pytorch源码复现,跑通源码,获得指标计算结果,补充保存去噪结果图像代码,代码实现与论文理论对应!

请先看【专栏介绍文章】:【图像去噪(Image Denoising)】关于【图像去噪】专栏的相关说明,包含适配人群、专栏简介、专栏亮点、阅读方法、定价理由、品质承诺、关于更新、去噪概述、文章目录、资料汇总、问题汇总(更新中) 完整代码和训练好的模型权重文件下载链接见本文底…...

Linux-mac地址

mac地址 由6位16进制数组成。最高字节的最低位&#xff0c;0表示单播地址&#xff0c;1表示多播地址。最高字节的第二位&#xff0c;0表示全局地址&#xff0c;1表示本地地址。 单播地址&#xff1a;单播MAC地址用于一对一的通信模式&#xff0c;即从单一的源端发送到单一的目…...

旷视科技Java面试题及参考答案

讲一下进程间的通讯方式(如管道、消息队列、共享内存、Socket 等),各有什么特点? 管道(Pipe) 管道是最早出现的进程间通信方式之一,主要用于具有亲缘关系(父子进程)的进程之间通信。 特点: 半双工通信,数据只能单向流动。例如,在一个简单的父子进程通信场景中,父进…...

【无线传感网】WSN数据管理技术

文章目录 WSN数据管理的基本概念以数据为中心的WSN数据库与分布式数据库相比具有的特殊性WSN数据管理技术的研究热点 WSN数据管理的关键技术无线传感器网络数据存储结构网外集中式存储方案网内分层存储方案网内本地存储方案以数据为中心的网内存储方案 数据查询处理技术查询类型…...

硬件基础知识笔记(2)——二级管、三极管、MOS管

Part 2 二级管、三极管、MOS管 1、二级管1.1肖特基二极管和硅二极管选型比较1.2到底是什么决定了二极管的最高工作频率&#xff1f;1.3二极管结电容和反向恢复时间都是怎么来的 1、二级管 1.1肖特基二极管和硅二极管选型比较 肖特基二极管的优势主要在速度和压降&#xff0c;对…...

记录uniapp组件swiper自适应高度

在uniapp组件swiper不能自适应高度 思路: 根据传的图片,进行图片分析宽高, 根据屏幕尺寸,进行换算对应的宽高比。 最后获得图片尺寸,进行赋值。 <swiper class="swiper" :style="{ height: `${swiperheight}` + px }" @change="onSwiperC…...

Presto-简单了解-230403

presto是什么了解一下&#xff1a; 秒级查询引擎&#xff08;不做存储&#xff09;&#xff0c;GB-PB级不依赖于yarn&#xff0c;有自己的资源管理和执行计划支持多种数据源&#xff1a;hive、redis、kafka presto架构 presto优缺点 presto优点 内存到内存的传输&#xff0…...

Windows Knowledge

1 GRUB简介 1.1 MBR和PBR MBR分为GRUB.MBR和DOS.MBR。 由于硬盘上扇区从偏移0到偏移62属于同一个磁道0&#xff0c;虽然DOS.MBR仅占用一个扇区&#xff0c;但是需要将DOS.MBR后面的偏移1到偏移62保留&#xff0c;所以磁盘上第一个分区的第一个扇区是从偏移63开始的。fbinst软件…...

【Rust自学】9.1. 不可恢复的错误以及panic!

喜欢的话别忘了点赞、收藏加关注哦&#xff0c;对接下来的教程有兴趣的可以关注专栏。谢谢喵&#xff01;(&#xff65;ω&#xff65;) 9.1.1. Rust错误处理概述 Rust拥有极高的可靠性&#xff0c;这也延伸到了错误处理的领域。比如说在大部分情况下&#xff0c;Rust会迫使你…...

UE5 Debug的一些心得

1、BUG粗略可分为两类&#xff1a; 一种是显性的&#xff0c;编译直接就通不过&#xff0c;必须马上解决。 第二种是隐性的&#xff0c;新功能完成后&#xff0c;编译成功顺利运行&#xff0c;洋洋自得&#xff0c;而问题隐藏在幕后&#xff0c;测试之后才逐渐发现有问题&…...

Docker Compose 构建 EMQX 集群 实现mqqt 和websocket

EMQX 集群化管理mqqt真香 目录 #目录 /usr/emqx 容器构建 vim docker-compose.yml version: 3services:emqx1:image: emqx:5.8.3container_name: emqx1environment:- "EMQX_NODE_NAMEemqxnode1.emqx.io"- "EMQX_CLUSTER__DISCOVERY_STRATEGYstatic"- …...

通过Xshell远程连接wsl2

目录 一、WSL网络原理 二、 下载XShell 三、Ubuntu里配置ssh 1.查看是否已经安装SSH 2.安装SSH 3.修改SSH配置 4.重启ssh 5.查看ip 四、在Xshell中链接电脑 五、设置端口转发 1.设置主机端口映射到wsl2的端口 六、防火墙设置开放8989端口 方式一(推荐): 方式二:…...

产品原型设计

&#x1f923;&#x1f923;目录&#x1f923;&#x1f923; 一、Axure原型设计&#xff08;Axure RP 9 &#xff09;1.1 软件下载安装1.2 产品原型展示1.3 产品原型下载1.4 视频课程推荐 二、磨刀原型设计2.1 软件下载安装2.2 产品原型展示2.3 产品原型下载2.4 视频课程推荐 什…...

【二】arcgis JavaScript api 实现加载不同坐标系的底图和三维服务

提示&#xff1a;如果是天地图底图参考这篇文章 【一】arcgis JavaScript api 实现加载不同坐标系的底图和三维服务_arcgis js api 调用三维地图服务-CSDN博客 需求&#xff1a; 前端开发实现底图&#xff08;wkid&#xff1a;3857&#xff0c;web墨卡托&#xff09;&#x…...

使用JMeter对Linux生产服务器进行压力测试

安装 JMeter wget https://downloads.apache.org/jmeter/binaries/apache-jmeter-5.4.1.tgz tar -xzf apache-jmeter-5.4.1.tgz cd apache-jmeter-5.4.1创建 JMeter 脚本 设置中文 选择Options—>Choose Language—>选择其他语言&#xff08;例如&#xff1a;Chinese&am…...

mapper文件的解释

<?xml version"1.0" encoding"UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace"com.ruoyi.system.mapper.Jianai…...

利用Claude3.5点评学习LightRAG源码

原始代码为&#xff1a;lightrag. 以下为两次提问记录&#xff1a;↓↓ 1. 请从专业程序员的角度点评这段代码↓ 我来从几个方面分析这段代码: 优点 &#x1f44d; 代码结构清晰 使用了 dataclass 来管理配置清晰的模块化设计,将不同功能分离到不同的存储类中使用了依赖注入…...

linux查看硬件信息

1 CPU # 查看 CPU 详细信息 # 总核数 物理CPU个数 X 每颗物理CPU的核数 # 总逻辑CPU数 物理CPU个数 X 每颗物理CPU的核数 X 超线程数 cat /proc/cpuinfo# 查看物理CPU个数 cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l# 查看每个物理CPU中core的个…...

基于单片机中药存放环境监测系统的实现

基于单片机中药存放环境监测系统的实现 项目开发背景 随着现代中药的广泛应用&#xff0c;中药材的存储环境对其质量有着至关重要的影响。温湿度、烟雾、火灾等环境因素&#xff0c;若不加以控制&#xff0c;将会导致中药材失效或变质。因此&#xff0c;设计一个基于单片机的…...

从零开始开发纯血鸿蒙应用之UI封装

从零开始开发纯血鸿蒙应用 一、题引二、UI 组成三、UI 封装原则四、实现 lib_comps1、封装 UI 样式1.1、attributeModifier 属性1.2、自定义AttributeModifier<T>类 2、封装 UI 组件 五、总结 一、题引 在开始正文前&#xff0c;为了大家能够从本篇博文中&#xff0c;汲…...

0101java面经

1.Java 中有哪些垃圾回收算法? 标记 - 清除算法&#xff08;Mark - Sweep&#xff09; 基本原理&#xff1a;标记 - 清除算法是最基础的垃圾回收算法之一。它分为两个阶段&#xff0c;首先是标记阶段&#xff0c;从根对象&#xff08;如栈帧中的局部变量、静态变量等引用的对…...

逐行讲解大模型流式输出 streamer 源码

目录 简介TextStreamer 基础流式输出TextIterateStreamer 迭代器流式输出本地代码模型加载并前端展示streamlit 输出显示gradio 输出显示 vllm 部署模型并前端展示streamlit 输出显示gradio 输出显示 备注 简介 本文详细讲解了大模型流式输出的源码实现&#xff0c;包括TextSt…...

springboot533图书管理系统(论文+源码)_kaic

摘 要 传统信息的管理大部分依赖于管理人员的手工登记与管理&#xff0c;然而&#xff0c;随着近些年信息技术的迅猛发展&#xff0c;让许多比较老套的信息管理模式进行了更新迭代&#xff0c;图书信息因为其管理内容繁杂&#xff0c;管理数量繁多导致手工进行处理不能满足广…...

Dell服务器升级ubuntu 22.04失败解决

ubuntu系统原版本20.04&#xff0c;服务器dell T40. 执行apt update后&#xff0c;再执行apt upgrade。 apt update执行成功&#xff0c;但apt upgrade执行中断&#xff0c;提示如下&#xff1a; Checking package manager Reading package lists... Done Building dependen…...

sql列转行 行转列

列转行 在 SQL 中&#xff0c;转换数据以按列排列的值成为按行排列的值&#xff08;即所谓的“列转行”或“列转行”&#xff09;是常见的数据操作需求。这个操作在不同的数据库管理系统中可以通过不同的技术手段来实现。以下是几种常见的数据库系统中实现列转行的方法&#x…...

【在Python中生成随机字符串】

在Python中生成随机字符串&#xff0c;你可以使用random模块结合字符串操作来实现。以下是一个简单的例子&#xff0c;展示了如何生成一个指定长度的随机字符串&#xff0c;该字符串可以包含字母&#xff08;大写和小写&#xff09;以及数字&#xff1a; import random import…...

Qt解决可执行程序的图标问题(CMake)

通常情况下&#xff0c;我们编译生成的可执行程序的图标长这个样子&#xff1a; 可以看到他的图标非常丑陋。。。 要想改变图标&#xff0c;你需要通过以下方式&#xff1a; CMakeLists.txt : cmake_minimum_required(VERSION 3.10)project(CountCode VERSION 1.0 LANGUAGE…...