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

【文献分享】NASA JPL团队CoSTAR一大力作:直接激光雷达里程计:利用密集点云快速定位

论文题目:Direct LiDAR Odometry: Fast Localization With Dense Point Clouds

中文题目:直接激光雷达里程计:利用密集点云快速定位

作者:Kenny Chen, Brett T.Lopez, Ali-akbar Agha-mohammadi

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

论文开源代码:https://github.com/vectr-ucla/direct_lidar_odometry

0 笔者个人体会

这篇文章的整体算法的大结构还是与LOAM类似,分成两个部分:scan-to-scan(对应于LOAM的laserOdometry部分),scan-to-map(对应于LOAM的laserMapping部分),但是对于其中非常多的细节进行了创新,我认为这些创新都很有可取之处。比如文中提到的在判断是否添加关键帧时使用的自适应阈值,根据场景大小调整平移距离阈值,这个就可以用到我们的研究开发中;还有那个数据结构重复利用,节省了数据创建释放过程的时间,这个思想看似小改变,但是对于嵌入式设备中的实时性却是有很重要的意义。

个人认为有一个地方还可以进行小改进,注意到两个部分中都是使用了作者的GICP算法进行点云配准,没有进行解耦,scan-to-map阶段提高精度的作用主要体现在匹配点的数量增加,如果使用了两种不同的配准算法,可能会有更精确的效果。

1 效果展示

2 引言

在大型、具有感知挑战性的环境中,准确的状态估计和映射已经成为自主移动机器人的关键能力。基于激光雷达的SLAM性能的瓶颈之一,就是每次扫描的大量数据点很快就会压倒计算有限的处理器(比如嵌入式),这可能导致帧下降,最终导致姿态估计不佳。更具体地说,scan-to-scan的对齐需要两个云之间对应点的配准,但这个过程通常涉及最近邻搜索,随着每次扫描点的数量呈指数增长。基于特征的方法试图通过只使用最突出的点来缓解这种情况,但这些方法通常采用计算密集型的特征提取步骤,可能会意外丢弃数据,否则可能有助于提高下游配准的质量。

本文主要贡献:

  • 一种自适应关键帧系统,该系统通过一种新颖的空间度量来有效地捕获重要的环境信息。
  • 提出了一种基于关键帧的快速子映射方法,该方法通过凸优化生成允许的局部子映射来进行全局姿态优化。
  • NanoGICP,这时一个定制迭代的壁橱点求解器,用于轻量级点云扫描匹配,数据结构回收,消除冗余计算。

3 算法框架

算法框架如下图所示,主要部分就是预处理、scan-to-scan、scan-to-map、地图关键帧管理几个部分。

3.1 预处理

为了最大限度地减少原始传感器数据的信息损失,在预处理过程中只使用了两个滤波器:

  • 首先,我们通过原点周围大小为1 m³的盒子滤波器去除可能来自机器人本身的所有点返回。
  • 然后将生成的云通过分辨率为0.25 m的3D体素网格滤波器发送,以便对后续任务的数据进行轻微采样,同时在周围环境中保持主导结构。

在这项工作中,没有校正运动失真,因为非刚性变换可能会带来计算负担,而是直接使用密集点云,而不是像大多数工作那样提取特征。经过预处理后,每个云平均包含1万个点

3.2 通过Generalized-ICP进行扫描匹配

这个过程通常分两个阶段进行:

  1. 首先提供最佳的瞬时猜测,也就是scan-to-scan的过程
  2. 随后将其改进为与之前的关键帧位置更加全局一致,也就是scan-to-map的过程

1.scan-to-scan

在雷达里程计L中,计算相邻帧的相对变换 X ^ k L \hat X^L_k X^kL:
X ^ k L = a r g m i n ϵ ( X k L P k s , P k t ) \hat X^L_k = argmin \epsilon (X^L_kP^s_k,P^t_k) X^kL=argminϵ(XkLPks,Pkt)

残差项是由GICP计算得到:
ϵ ( X k L P k s , P k t ) = ∑ i N d i T ( C k , i t + X k L C k , i s X k L T ) − 1 d i \epsilon (X^L_kP^s_k,P^t_k)=\sum^N_i d_i^T(C^t_{k,i} + X^L_kC^s_{k,i}X_k^{L^T})^{-1}d_i ϵ(XkLPks,Pkt)=iNdiT(Ck,it+XkLCk,isXkLT)1di
C k , i t C^t_{k,i} Ck,it C k , i s C^s_{k,i} Ck,is分别是第k-1时刻和k时刻点云的协方差矩阵, d t = p i t − X k L p i s d_t=p^t_i-X^L_k p^s_i dt=pitXkLpis表示对应点的距离残差。

如果有IMU,则使用IMU预积分提供一个先验初始猜测,如果没有IMU则设置先验猜测为单位矩阵I,以减少收敛到次优局部最小值的可能,文章中有一些关于IMU预积分的说明,这里就不多说了。

2.scan-to-map

这部分的目标不是计算两个瞬时点云之间的相对变换,而是通过与局部子图匹配的方式,进一步改进前一步的运动估计,使其更加全局一致。
换句话说,这里的任务是计算当前源云 P k s P^s_k Pks和某些子图 S k S_k Sk之间的最优变换 X k W X^W_k XkW,使得:

X ^ k W = a r g m i n ϵ ( X k W P k s , S k ) \hat X^W_k = argmin \epsilon (X^W_k P^s_k,S_k) X^kW=argminϵ(XkWPks,Sk)
残差项是与scan-to-scan类似:
X k W = a r g m i n ∑ j M d j T ( C k , j S + X k W C k , j s X k W T ) − 1 d j X^W_k=argmin \sum^M_j d_j^T(C^S_{k,j} + X^W_k C^s_{k,j}X_k^{W^T})^{-1}d_j XkW=argminjMdjT(Ck,jS+XkWCk,jsXkWT)1dj
这个公式使用前一节从L到W的scan-to-scan的结果进行初始化,即: X k W = X k − 1 W ∗ X k L X^W_k = X^W_{k−1} * X^L_k XkW=Xk1WXkL,以便该先验运动可以与历史地图数据进行比较,以获得全局一致性。

3.基于关键帧的快速子图

这项工作的一个关键创新在于如何管理地图信息,并在scan-to-map匹配中快速生成局部子地图,以进行全局自运动细化。作者没有直接使用点云并将点存储到典型的八叉树数据结构中,而是保留了要在其中搜索的关键帧的历史记录,其中每个关键帧都以键值对的形式链接到相应的点云帧。然后通过连接关键帧子集的相应点云来生成用于scna-to-map匹配的局部子地图,而不是直接在机器人当前位置的某个半径内检索局部点。

这种设计选择的含义是双重的:首先,通过在“关键帧空间”而不是“点云空间”中搜索,得到了一个计算上更容易处理的问题。

此外,与基于范围的方法相比,基于关键帧的方法构建了更宽松的子地图。也就是说,由于从关键帧点云导出的子图的大小完全依赖于激光雷达传感器的距离,而不是预定的距离,派生的子图可以与当前扫描有更大的重叠。

固定半径r = 20 m的子图(图a)与当前扫描没有充分重叠,并且由于只包含空间附近的点,可能会随着时间的推移而引入漂移;然而,基于关键帧的方法(图b)涵盖了当前扫描的大部分内容,这有助于更好地实现扫描到映射的对齐。

1)通过kNN和凸包选择关键帧:设 K k K_k Kk为所有关键帧点云的集合,如下:将子地图 S k S_k Sk定义为K个最近邻关键帧扫描 Q k Q_k Qk和L个最近邻凸包扫描 H k H_k Hk的连接,使得 S k = Q k ⊕ H k S_k = Q_k⊕H_k Sk=QkHk

2)自适应关键帧:关键帧节点添加通常使用固定阈值(例如,每1米或10◦的平移或旋转变化),但最佳位置可能高度依赖于周围环境的结构。更具体地说,在大规模环境中,点云扫描捕捉到的特征更加突出,可以在更长的时间内依赖。相反,对于狭窄或小规模的环境,需要更小的阈值来持续捕获子地图中的小规模特征(即紧角),以获得更好的定位。因此,需要根据瞬时点云扫描中的“空间”来缩放新关键帧的平移阈值,定义为 m k = α m k − 1 + β M k m_k = \alpha m_{k−1} + \beta M_k mk=αmk1+βMk,其中 M k M_k Mk为预处理点云中原点到每个点的中值欧式距离,α = 0.95, β = 0.05, m k m_k mk为用于缩放关键帧阈值 t h k th_k thk的平滑信号,在k时刻使:

t h k = { 10 m , i f m k > 20 m 5 m , i f m k > 10 m & m k ≤ 20 m 1 m , i f m k > 5 m & m k ≤ 10 m 0.5 m , i f m k ≤ 5 m th_k =\left\{ \begin{array}{l} 10m,\ \ \ \ if\ m_k>20m\\ 5m, \ \ \ \ \ \ if\ m_k>10m\&m_k≤20m\\ 1m, \ \ \ \ \ \ if \ m_k>5m\&m_k≤10m\\ 0.5m, \ \ \ if \ m_k≤5m\\ \end{array} \right. thk= 10m,    if mk>20m5m,      if mk>10m&mk20m1m,      if mk>5m&mk10m0.5m,   if mk5m

旋转阈值固定在30°。下图展示了关键帧添加以及自适应关键帧的效果,这个操作有助于增强对环境维度变化的鲁棒性。

3.3 算法优化

1.扫描拼接子地图法线

广义icp涉及最小化两个云之间的平面距离,其中这些平面通过扫描中每个点的计算协方差来建模。文章不是在每次迭代中计算子地图中每个点的法线,而是假设子地图协方差 C k S C^S_k CkS可以通过将构成子地图的n个关键帧中的法线 C k , n S C^S_{k,n} Ck,nS拼接起来来近似,即 C k S ≈ ∑ n N C k , n S C^S_k≈\sum^N_n C^S_{k,n} CkSnNCk,nS。因此,不需要显式地计算每个子地图的法线集,而只需将先前计算的法线集拼接在一起即可重建。

2数据结构回收利用

在上述基础上,当前LiDAR里程计的几个算法步骤可以从数据结构共享和重用中受益,通过消除不必要和冗余的操作,大大降低了整体系统开销。如下表所示,该系统总共需要8个元素才能成功执行scna-to-scan和scna-to-map的匹配。

在四个必需的kdtree数据结构中,只有两个需要显式构建。也就是说,源(输入)云 T k s o u r c e T^{source}_k Tksource的树可以在每次扫描采集时只构建一次,并在两个模块之间共享(因为两个源都使用相同的扫描)。对于scan-to-scan的目标树 T k t a r g e t T^{target}_k Tktarget,这仅仅是前一次迭代的扫描到扫描的源树 T k − 1 s o u r c e T^{source}_{k-1} Tk1source,因此可以传播。scna-to-map的目标树需要显式地构建,但由于子地图是从一组关键帧派生的,因此只有当通过我们的kNN和凸包策略选择的关键帧集从一次迭代到下一次迭代发生变化时,才需要执行此构建,例如 S k ≉ = S k − 1 S_k≉= S_{k−1} Sk=Sk1。否则,可以再次重用数据结构以节省额外的计算量。另一方面,GICP所需的点协方差 C k C_k Ck只需在每次扫描采集中计算一次,其数据可以直接在其他三个实例中共享。

3.双NanoGICP

为了促进扫描匹配模块之间的交叉对话,作者开发了NanoGICP,这是一种自定义迭代最近点求解器,它结合了FastGICP和NanoFLANN开源软件包,并对数据结构共享进行了额外的修改。
NanoGICP使用NanoFLANN高效构建KD-tree,用FastGICP进行点云对应匹配。

4 实验与结果

4.1 组件评估

1.基于关键帧的子图创建

比较了三种子映射方案的绝对姿态误差(APE)、处理时间和CPU负载,包括:基于半径(r = 10 m)、基于1m静态阈值的关键帧,以及基于自适应阈值的关键帧。

在图中可以看出:关键帧空间中的子地图可以通过考虑更远的点来显著减少位置误差,否则这些点将超出基于半径的方法的范围。处理时间和CPU负载显示出类似的趋势:基于半径的处理每次扫描明显慢于每次扫描74.2 ms,平均CPU负载为37.5%,而静态和自适应方案分别为21.6 ms / 10.2%和19.1 ms / 9.1%。

2.数据结构回收利用

测量和比较不同回收方案之间的处理时间和CPU使用率通过箱线图和下降的百分比扫描数据集。

回收kdtrees而不回收协方差可以略微改善处理时间和CPU百分比,而回收协方差而不回收kdtrees可以提供更显著的性能提升;这是合理的,因为文中的协方差回收方案比kdtree重用更具主动性。最后,使用表中详细说明的完整方案显着降低了这两个指标,平均处理时间为21.9 ms, CPU负载为9.5%,这可以防止任何LiDAR帧丢失。

3.NanoGICP

该基准测试测量了在100次运行中对齐两个LiDAR扫描的平均收敛时间,并与PCL的GICP实现以及FastGICP的多线程实现进行了比较。可以观察到,与FastGICP (72.88 ms)和PCL的GICP (178.24 ms)相比,NanoGICP的平均收敛速度(42.53 ms)更快。

4.2 基准测试结果

为DLO的测程精度和CPU负载与几种LiDAR和LiDAR-imu测程方法(包括BLAM, Cartographer,LIO-Mapping,LOAM和LOCUS)进行了比较,使用来自地下挑战赛城市电路的Alpha和Beta课程数据集,结果如下表所示。

结果所示:提出的方法的CPU负载被测量为远低于任何其他算法,平均和峰值使用不到一个核心。除了内部数据结构的广泛重用之外,这可能是系统生成子地图的结果。这一观察结果也可以解释DLO的绝对姿势误差(APE)和平均误差(ME)要低得多,相对姿势误差也有类似的趋势。有了这个更快的处理时间,文中的方法在Alpha和Beta过程中都优于所有其他方法,即使没有运动失真校正,在Beta过程中对于max, mean和standard deviation的精度也是两倍以上。除了更宽松的子地图方法之外,所提出的方法比其他方法更不可能掉帧,并且有处理资本以更高的分辨率匹配密集的点云。

4.3 田野实验

使用Ouster OS1将DLO集成到飞行器(上图a)上,使用Velodyne VLP-16将DLO集成到Boston Dynamics Spot(上图b)上,在两个具有感知挑战性的环境中进行了手动和自动遍历:在肯塔基州列克星敦的地下石灰岩洞穴和加利福尼亚州洛杉矶的废弃地铁中(下图)。

这两个地点都包含经常挑战感知系统的环境属性,包括光线条件差,没有特色的走廊,以及灰尘或雾等微粒的存在。尽管在废弃的地铁中穿越了超过850米的三个不同的楼层,文中的系统仅报告了10厘米的端到端漂移,这主要归功于DLO强大的关键帧方案,该方案适用于大小空间。在地下矿井的试验表明:虽然洞穴深处的环境没有任何外部照明,但DLO仍然可以在348米的自主飞行中可靠地跟踪飞行器。这些结果证明了文中的方法在现实世界中的可靠性。

5 总结

这项工作提出了Direct LiDAR Odometry (DLO),这是一种轻量级和精确的前端定位解决方案,在极端环境下长期遍历的计算开销最小。一个关键创新是我们如何有效地使用关键帧-点云对数据库派生出用于全局姿态优化的局部子地图。这反过来又允许大量的求解器数据结构在系统模块之间共享和重用,所有这些都可以使用我们定制的NanoGICP云注册包来实现。

未来将会将研究重点放在与IMU的紧耦合上。

相关文章:

【文献分享】NASA JPL团队CoSTAR一大力作:直接激光雷达里程计:利用密集点云快速定位

论文题目:Direct LiDAR Odometry: Fast Localization With Dense Point Clouds 中文题目:直接激光雷达里程计:利用密集点云快速定位 作者:Kenny Chen, Brett T.Lopez, Ali-akbar Agha-mohammadi 论文链接:https://arxiv.org/pd…...

SPASS-探索性分析

探索性分析的意义 探索性分析更加强大,它是一种在对资料的性质、分布特点等完全不清楚的情况下,对变量进行更深入研究的描述性统计方法。在进行统计分析前,通常需要寻求和确定适合所研究的问题的统计方法, SPSS提供的探索性分析是解决此类问题的有效办法 探索性分析提供了很…...

电子印章怎么弄?三步教你电子印章在线生成免费教程!

在这个数字化快速发展的时代,电子印章已经成为日常商务活动中不可或缺的一部分。相对于传统的实体印章,电子印章具有更高的便捷性和安全性,更是无纸化办公中必不可少的一环。那么,电子印章怎么弄呢?跟着下面这三步来操…...

以技术创新引领行业发展,飞凌嵌入式获双项省级荣誉

近日,飞凌嵌入式荣获「2023年河北省专精特新示范企业」以及「第五批省级制造业单项冠军企业」两项殊荣。这两项荣誉的获得,是对飞凌嵌入式在专业技术领域与创新能力的高度认可,荣誉的背后,凝聚着飞凌嵌入式无数次的研发探索与对创…...

在Google Kubernetes集群创建分布式Jenkins(二)

上一篇博客在Google Kubernetes集群创建分布式Jenkins(一)-CSDN博客我介绍了如何在GCP的K8S集群上部署一个分布式的Jenkins,并实现了一个简单的Pipeline的运行。 在实际的开发中,我们通常都会按照以下的CICD流程来设置Pipeline 在我司的实际实践中&…...

GEE:GEE中调用 Math.js 教程

作者:CSDN @ _养乐多_ Math.js 是一个强大的 JavaScript 数学库,它提供了大量用于数学计算的函数和工具。这个库可用于解决各种数学问题,从基本的算术运算到高级数学和线性代数等领域。本文将介绍在 Google Earth Engine(GEE)云平台中调用 Math.js 第三方库做一些事情的方…...

迅为龙芯3A5000主板,支持PCIE 3.0、USB 3.0和 SATA 3.0显示接口2 路、HDMI 和1路 VGA,可直连显示器

性能强 采用全国产龙芯3A5000处理器,基于龙芯自主指令系统 (LoongArch)的LA464微结构,并进一步提升频率,降低功耗,优化性能。 桥片 桥片采用龙芯 7A2000,支持PCIE 3.0、USB 3.0和 SATA 3.0显示接口2 路、HDMI 和1路 …...

Opencv for unity 下载

GitHub - EnoxSoftware/VideoPlayerWithOpenCVForUnityExample: This example shows how to convert VideoPlayer texture to OpenCV Mat using AsyncGPUReadback. OpenCV for Unity | Integration | Unity Asset Store...

独立IP主机怎么样?对网站有什么影响

对于现在企业来说,搭建网站是必不可少的,而大部分企业网站都会选择使用虚拟主机搭建,且使用的也是共享IP的这样会 有许多的弊端,所以部分站长会选择独立IP搭建。那么到底独立IP主机怎么样呢?使用独立IP主机搭建对网站有…...

Gerrit lfs安装及配置

Gerrit版本:3.1.4 lfs下载:Zuul Gerrit CI界面已经没有3.1.4对应版本的lfs.jar了,需要从上面的页面下载。 一、安装配置lfs 将上面下载的lfs.jar放到$GERRIT_SITE/plugins目录。 修改配置文件:$GERRIT_SITE/etc/gerrit.config …...

基于表面电势的AlGaN/GaN MODFET紧凑模型

标题:A Surface-Potential-Based Compact Model for AlGaN/GaN MODFETs 来源:IEEE TRANSACTIONS ON ELECTRON DEVICES(11年) 摘要 - 本文首次构建了基于表面势(SP)的AlGaN/GaN调制掺杂场效应晶体管&#…...

c语言中的fread

#include <stdio.h> //函数的定义&#xff1a; //size_t fread(void *ptr,size_t nmemb,FILE *stream); //函数的说明&#xff1a; //fread函数从stream所标示的文件中读取数据&#xff0c;一块是size个字节&#xff0c;共nmemb块&#xff0c;存放到ptr指向的内存里 …...

Unity游戏开发基础组件

Unity2D 相机调整&#xff1a;Projection设置为Orthographic。也就是正交模式&#xff0c;忽视距离。 资源&#xff1a; Sprite&#xff1a;一种游戏资源&#xff0c;在2D游戏中表示角色场景的图片资源 SpriteSheet&#xff1a;切割一张图片为多个Sprite 在Sprite Editor中可以…...

股票四倍杠杆什么意思?

股票四倍杠杆是指投资者通过借款或使用金融衍生品&#xff0c;以增加其投资股票的能力&#xff0c;达到放大投资回报的目的。具体来说&#xff0c;投资者可以通过向券商或银行等金融机构借入资金&#xff0c;或者使用融资融券等金融衍生品&#xff0c;以增加其购买股票的资本&a…...

【hcie-cloud】【2】华为云Stack解决方案介绍、缩略语整理 【下】

文章目录 华为文档获取方式、云计算发展背景、坚实基座华为云Stack&#xff0c;政企只能升级首选智能数据湖仓一体&#xff0c;让业务洞见更准&#xff0c;价值兑现更快MRS&#xff1a;一个架构可构建三种数据湖&#xff0c;业务场景更丰富离线数据湖&#xff1a;提供云原生、湖…...

多无人机在线路径规划的新算法

南京航空航天大学自动化学院使用NOKOV度量动作捕捉系统获取多架无人机的精确位置信息&#xff0c;实现多架无人机协同实时路径规划。 研究背景 近年来&#xff0c;无人机越来越多地应用于执行战场侦察、目标识别、跟踪打击等任务。 由多架无人机协同执行任务&#xff0c;通过…...

什么是运营商精准大数据?又有什么作用?

大数据&#xff08;big data&#xff09;&#xff0c;指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合&#xff0c;是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。 精准大数据&#xff0c;是一种…...

Adobe Photoshop 2020给证件照换底

1.导入图片 2.用魔法棒点击图片 3.点选择&#xff0c;反选 4.选择&#xff0c;选择并遮住 5.用画笔修饰证件照边缘 6. 7.更换要换的底的颜色 8.新建图层 9.使用快捷键altdelete键填充颜色。 10.移动图层&#xff0c;完成换底。...

传来喜讯,优维又获奖了!!!

优维科技作为国内DevOps领域的行业领先企业&#xff0c;从诞生之日起&#xff0c;就一直致力于为中国企业提供一流的数字化运维服务&#xff0c;不断深耕核心技术&#xff0c;向客户提供专业强大的产品与服务。多年来&#xff0c;不仅获得了大量客户认可&#xff0c;更是屡次获…...

河南开放大学与电大搜题微信公众号:携手共进,助力学习之路

作为河南省内颇具影响力和声誉的高等教育机构之一&#xff0c;河南开放大学一直致力于提供优质的教育资源和灵活的学习方式&#xff0c;以满足广大学习者的需求。而在这个追求知识的时代&#xff0c;学习者们尤其需要一个便捷、高效的工具来辅助学习。电大搜题微信公众号应运而…...

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…...

前端导出带有合并单元格的列表

// 导出async function exportExcel(fileName "共识调整.xlsx") {// 所有数据const exportData await getAllMainData();// 表头内容let fitstTitleList [];const secondTitleList [];allColumns.value.forEach(column > {if (!column.children) {fitstTitleL…...

Axios请求超时重发机制

Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式&#xff1a; 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...

【python异步多线程】异步多线程爬虫代码示例

claude生成的python多线程、异步代码示例&#xff0c;模拟20个网页的爬取&#xff0c;每个网页假设要0.5-2秒完成。 代码 Python多线程爬虫教程 核心概念 多线程&#xff1a;允许程序同时执行多个任务&#xff0c;提高IO密集型任务&#xff08;如网络请求&#xff09;的效率…...

node.js的初步学习

那什么是node.js呢&#xff1f; 和JavaScript又是什么关系呢&#xff1f; node.js 提供了 JavaScript的运行环境。当JavaScript作为后端开发语言来说&#xff0c; 需要在node.js的环境上进行当JavaScript作为前端开发语言来说&#xff0c;需要在浏览器的环境上进行 Node.js 可…...

DeepSeek越强,Kimi越慌?

被DeepSeek吊打的Kimi&#xff0c;还有多少人在用&#xff1f; 去年&#xff0c;月之暗面创始人杨植麟别提有多风光了。90后清华学霸&#xff0c;国产大模型六小虎之一&#xff0c;手握十几亿美金的融资。旗下的AI助手Kimi烧钱如流水&#xff0c;单月光是投流就花费2个亿。 疯…...

Python环境安装与虚拟环境配置详解

本文档旨在为Python开发者提供一站式的环境安装与虚拟环境配置指南&#xff0c;适用于Windows、macOS和Linux系统。无论你是初学者还是有经验的开发者&#xff0c;都能在此找到适合自己的环境搭建方法和常见问题的解决方案。 快速开始 一分钟快速安装与虚拟环境配置 # macOS/…...

在Zenodo下载文件 用到googlecolab googledrive

方法&#xff1a;Figshare/Zenodo上的数据/文件下载不下来&#xff1f;尝试利用Google Colab &#xff1a;https://zhuanlan.zhihu.com/p/1898503078782674027 参考&#xff1a; 通过Colab&谷歌云下载Figshare数据&#xff0c;超级实用&#xff01;&#xff01;&#xff0…...

Qwen系列之Qwen3解读:最强开源模型的细节拆解

文章目录 1.1分钟快览2.模型架构2.1.Dense模型2.2.MoE模型 3.预训练阶段3.1.数据3.2.训练3.3.评估 4.后训练阶段S1: 长链思维冷启动S2: 推理强化学习S3: 思考模式融合S4: 通用强化学习 5.全家桶中的小模型训练评估评估数据集评估细节评估效果弱智评估和民间Arena 分析展望 如果…...

计算机系统结构复习-名词解释2

1.定向&#xff1a;在某条指令产生计算结果之前&#xff0c;其他指令并不真正立即需要该计算结果&#xff0c;如果能够将该计算结果从其产生的地方直接送到其他指令中需要它的地方&#xff0c;那么就可以避免停顿。 2.多级存储层次&#xff1a;由若干个采用不同实现技术的存储…...