LiDAR 语义分割评测:榜单头名的模型,装上车却失灵
排行榜第一名的模型,装上车为什么可能失灵?
先别急着给“榜单第一”开香槟。想象你是自动驾驶公司的算法负责人:香槟还没开,测试车的雨刮器已经先响了。你的团队把语义分割模型在 SemanticKITTI 上刷到 66% 的细粒度精度,同期横评里全场第一,产品化的信心很足。把模型装进测试车,开到雨里,激光回波被雨滴散射,路面湿漉漉地反光;开到另一座城市,点云的分布整个变了;换一台 32 线的雷达,模型过去学到的规律全都对不上号。你很快会发现:这些场景,没有一个现成的评测能替你回答。
这不是编出来的故事,正是这篇论文要消化的真问题。它在引言里给出一句相当尖锐的判断:目前不存在任何一个评测协议,能同时评估语义相关性、传感器退化鲁棒性、跨域泛化和计算效率。锚论文
原因是现有的评测体系各自只管一段:
| 评测体系 | 覆盖的维度 | 漏掉的维度 |
|---|---|---|
| 标准 benchmark(SemanticKITTI、nuScenes) | 干净数据的细粒度精度(19 类 mIoU) | 恶劣条件、跨域、速度、安全语义 |
| Robo3D | 8 类合成 corruption 鲁棒性(mCE) | 安全语义、跨域泛化、计算效率 |
| COLA | 粗标签安全语义、跨数据集公平比较 | corruption 鲁棒性、计算效率 |
| 域泛化研究 | 跨域迁移,通常只测单轴 | 其余所有轴 |
每一根柱子都有人量,但没有一家把四件事放进同一个模型里一起量。2026 年初发表的一篇恶劣天气 LiDAR 分割综述也观察到同样的病灶:论文之间往往因为目标域信息的可用权限、改动流水线的环节、评测协议本身不同而互相不可比,方法的对比是乱的。天气综述 这个缺口不是孤例,是整个方向的通病。把时间线拉长看就更明显:2019 年 SemanticKITTI 立起任务标杆,2023 年 Robo3D 和 COLA 各补一轴,2026 年初的综述还在呼吁统一协议。按锚论文自己的定位,它是第一个把这四件事放进同一个评测里的工作。
这篇论文的回应很直接:把 10 个主流分割模型全部用同一套协议重新训练,然后在三根支柱上统一重测,外加一块嵌入式实时性约束。
为什么排行榜答不了这个问题?因为现有评测的三条默认前提,恰好都是真实部署里没法保证的条件:数据必须干净,标签必须分得够细,场景必须和训练时是同一个地方。论文把这三条前提逐一击穿,对应三根支柱。第一根,把 19 类细标签合并成 7 个安全导向粗类重新打分,度量"语义相关性";第二根,往干净点云里注入 8 类传感器退化,度量"鲁棒性";第三根,把模型扔到从没见过的巴黎数据上直接测试,度量"跨域泛化"。最后再加一道现实约束:在车载级的 Jetson 上量端到端速度。它选了 point、projection、sparse-conv、fusion 四个架构族里最主流的 10 个模型,全部用统一协议从零重训,优化器、学习率调度、数据增广全都对齐,投影类只是额外加了一项边界损失。这样表上的差距,基本只能归因于架构本身,而不是调参运气。这个前提后面会反复用到。
先给结论:光看排行榜分数,你几乎判断不了"这个模型装上车能不能用"。
先补点背景:逐点分类在做什么,四条架构路线各是什么路数
LiDAR 语义分割任务一句话就能说清:激光雷达每转一圈扫回几万到十几万个 3D 点,网络要把每个点贴上"路面、车辆、行人、建筑"之类的语义标签。它是自动驾驶场景理解的地基,后面的避障、路径规划全都踩在它上面。这套任务的标准定义来自 SemanticKITTI:在德国 Karlsruhe 采集,单帧评估 19 个类,主指标是 mIoU。mIoU 是逐类的交并比再取平均,交并比指预测与真实标注的重叠部分除以它们的并集,越高越好。SemanticKITTI 为什么是 19 类而不是更多?因为单帧激光没有多普勒测速,车和人的运动、静止状态分不出来,就把这类 pair 合并了。
数据集本身不小:训练集 23201 帧、测试集 20351 帧。但测试集的标注从不公开,只能通过在线 benchmark 提交评测,外面的人拿不到 ground truth。这正是 2026 年这篇评测论文必须亲手把 10 个模型全部重训一遍的原因:历史上各家自报的数字口径不一,直接横向比较没有意义。
传感器是 Velodyne HDL-64E,64 线激光。它按 KITTI Odometry 的采集惯例以 10 Hz 出帧,也就是一帧的预算只有 100 毫秒。频率这条线索值得交代清楚:10 Hz 并不是 SemanticKITTI 论文自己写下的数字,而是 KITTI Odometry 基准的标准采集频率,锚论文沿用它推出每帧 100 毫秒的实时阈值。后面引到这个阈值时,记住它的来源链。这个数字接下来会成为"实时"的物理基准。
同一个任务,主流做法分成四条路线,区别本质上是"怎么组织这一堆 3D 点":
| 架构族 | 代表模型 | 路数 |
|---|---|---|
| point-based | KPConv、WaffleIron、PTv3 | 直接在 3D 点上做邻域聚合,几何信息保留最完整,但邻域查询很贵 |
| projection(range-view) | SalsaNext、CENet、FRNet | 把点按方位角和俯仰角投到 2D 网格,像一张展开的全景图,快但丢几何 |
| sparse-conv | Minkowski、Cylinder3D | 把空间切成小格子再卷积,只让非空的格子参与计算 |
| fusion | SPVCNN、HARP-NeXt | 同时养 2D 投影和 3D 点两条支路,多尺度来回对接 |
这和图像分类完全不同:同一个任务,光"输入长什么样"就有四种哲学。四家的物理直觉先各用一句记下。point 类直接在原始 3D 点上干活,每个点都要问一圈邻居,几何最保真但天然昂贵;range-view 把球面上的点按角度摊平成一张 2D 图,卷积可以在上面跑得飞快,可投影这一步把深度、遮挡这类信息压掉了一部分;稀疏卷积先把空间切成固定的小格子,只有非空的格子参与计算,几何与效率两头兼顾;fusion 类干脆两条支路都要,2D 图快、3D 点准,代价是结构复杂。记住这四句,后面每一根柱子的结果都能对上号。
最后交代一个设定。论文的域泛化支柱用的是"无适配"这个最严的档位,对应 domain generalization(域泛化):训练阶段完全不接触目标域数据,模型必须在从没见过的城市直接上场。它和 domain adaptation(域适应)的区别只在目标域扫描何时可用,后者允许训练时使用目标域的无标签数据。天气综述 无适配为什么难,第五、六章会见真章。
把货车认成小汽车,算不算错?用 7 个粗类重新量安全语义
第一根支柱,从锚论文唯一的一张原图讲起:

图注:锚论文 Fig.1 的两个细粒度误判案例。左:nuScenes 场景里一辆卡车被错认成小汽车;右:SemanticKITTI 场景里一名自行车骑手被错认成摩托车骑手。上下栏分别是真实标注(Ground Truth)与模型预测。来源:Toward Robust LiDAR Semantic Segmentation(arXiv:2609.02830)。
这两个"错误"用细粒度 mIoU 衡量都是实打实的错,每个都扣分。可如果只看"前方是否存在车辆、是否存在活体"这一层障碍语义,它们在评测口径内完全等价。感知系统真正要回答的是"前面有没有障碍物、是不是活人",不是"这辆车是轿车还是卡车"。把卡车认成小汽车再刹车,与把卡车认对再刹车,在"有没有车"这个问题上没有区别。但要划清边界:这个等价是评测尺子上的约定,用来统一度量语义相关性,它并不构成对真实下游制动策略的证明。真实的车会怎么决策,取决于控制层如何消费这些标签,那不在本支柱的评测范围里。
这就是支柱一的起点,也顺手拆掉一个最容易的误解:粗标注不是"标得糙",更不是混入噪声的低质量标签。它是一把新尺子,把功能上相近、"是否存在车辆/活体"这一安全语义上等价的细类,合并成 7 个面向安全的粗类:Driveable Ground(可行驶地面)、Other Ground、Structure、Vehicle、Nature、Living Being(活体)、Object。这有点像把逐字听写换成阅读理解:听写时每个字写错都扣分,判阅读只看句子意思对不对。car 和 truck 都落进 Vehicle,bicyclist 和 motorcyclist 都落进 Living Being,粗类内部的混淆不再记错,跨粗类的混淆仍然重罚。这套映射来自 COLA,它把各数据集 13 到 45 类不等的细标签投到同一棵七类树上,成本几乎为零,跨数据集因此可以直接比。COLA
映射的机制,看这张图最直观:

图注:COLA 论文的层级映射图。左侧是 SemanticKITTI 的 19 个细类,经层级树归并进右侧 7 个粗类分组。粗类不是新标出来的标签,是把既有细类合并出来的。来源:COLA 论文(arXiv:2311.03017)Fig.3。
换尺子之后,排行榜的直觉开始出问题。锚论文把 10 个模型全部用统一协议重新训练,再按细粒度和粗类两套口径打分。最刺眼的是 FRNet:细粒度 mIoU 全场最高,66.0%;粗类分数却只有 83.3%,被 Living Being 这个类拖垮。Living Being 覆盖行人、骑车人、摩托车骑手,是锚论文点名的安全关键类,在它上面 FRNet 只有 55.6%,而同一个类 Minkowski 有 83.5%。锚论文 整体精度第一,不等于安全关键类可靠。这是"精度排名与部署直觉分道扬镳"第一次在数字上显形。
WaffleIron 是另一个信号:它在 SemanticKITTI 粗类 mIoU 上以 87.4% 排第一,可在 nuScenes 上粗类头名的 PTv3(87.8%)也一样,两者都付出了速度代价,一个 2.7 FPS,一个 4.1 FPS,全都跑在测试机 RTX 4090 上。这页速度账,下一章细算。不过也别急着给高精度模型判死刑:融合路线的 HARP-NeXt 是另一个参照,在 RTX 4090 上它 nuScenes 粗类拿到 86.7% 的同时跑出 100 FPS,快与准至少在它身上不冲突。真正的问题是大多数模型做不到,而不是这条路线不存在。
雨雪雾、丢线、串扰之下还剩几分?嵌入式上还要付多少时间?
第二根支柱处理恶劣条件。锚论文沿用了 Robo3D 的 8 类 corruption(合成退化扰动)体系,按来源把退化分成三组,每组再分轻、中、重三档:

图注:Robo3D 论文 Fig.1 的 corruption 分类树。三组来源从左向右展开:恶劣天气(雾、雨、雪)、外部扰动(运动模糊、光束缺失)、内部传感器故障(串扰、不完整回波、跨传感器),每类带 light / moderate / heavy 三档严重度标识。来源:Robo3D 论文。
Robo3D 原图把三组叫恶劣天气、外部扰动、内部传感器失效,锚论文的归纳是大气的、几何的、传感器的,一一对应。物理动因各自不同:雾雨雪让激光回波被散射衰减;运动模糊和丢线来自颠簸与遮挡;串扰是路上多台雷达互相干扰,不完整回波是深色物体吸波,跨传感器是从 64 线换到 32 线的失配。每种扰动都带着物理依据的仿真参数:雾的散射系数、雪的降落率、湿地的水深,按轻中重三档精确调整,模拟的强度可以控制。把它们合成进干净数据,就得到加了料的 SemanticKITTI-C 和 nuScenes-C 两个评测集。
度量用 mCE(mean Corruption Error)。对每一类 corruption,把模型在轻中重三档上的误差(1 减精度)加起来,除以 MinkowskiNet 基线的同样误差,得到该类的相对误差,8 类取平均就是 mCE。这里有个最容易读错的前提:mCE 是相对基线的比值,超过 100% 表示比 MinkowskiNet 还差,低于 100% 表示更好,越低越好。Robo3D
Robo3D 自己的 benchmark 已经给过警示:干净的 mIoU 排名与 mCE 排名几乎解耦,高精度的模型散布在整个 mCE 横轴上。

图注:Robo3D benchmark 的散点图(部分列)。横轴是 mCE,纵轴是任务精度(分割任务用 mIoU),每个点是一个模型。干净精度高的点分布在 mCE 整个范围内,两者看不出相关性。来源:Robo3D 论文 Fig.2。
锚论文在自己的重训结果里把同样的解耦再演了一遍,还加上了嵌入式实时性这道硬约束。实时阈值不是拍脑袋定的:SemanticKITTI 的雷达 10 Hz,一帧预算 100 毫秒;nuScenes 的雷达 20 Hz,一帧预算 50 毫秒。测速平台是 Jetson AGX Orin 这类车载嵌入式设备。测出的结果相当反直觉:上一章的粗类冠军 WaffleIron,在 Jetson 上只有 0.5 FPS,一帧要两秒,直接出局;融合路线的 HARP-NeXt 在 nuScenes-C 上 14.1 FPS,锚论文说它"显著快于其他高分方法",但仍然够不到 20 FPS 的门槛。锚论文 在 SemanticKITTI 的 10 FPS 门槛下,只有 SalsaNext(9.2 FPS)和 HARP-NeXt(8.3 FPS)接近实时,其余全部掉队。更讽刺的是,在 SemanticKITTI-C 这张表上,SalsaNext 的 mCE 是全场最差(116.1%),FPS 却是全场最高:快,不一定能干活,慢的也未必准。还有一层容易忽略的设定:Minkowski 是归一化基线,它的 mCE 恒为 100.0%,读到这个数字的意思只是"和基线打平",超过它就是不如基线。这里必须交代一个知情事实:HARP-NeXt 的五位作者与锚论文完全相同,这些 FPS 是作者在统一重训协议下自己测的,自带自评视角。HARP-NeXt
速度账里还有一个常被忽略的坑:端到端计时必须包含预处理。HARP-NeXt 团队此前就指出,KDTree、点云序列化这类准备操作卡在 CPU 上,难以并行,预处理可能比推理本身更关键。HARP-NeXt 他们的实测里,PTv3 在 Orin 上预处理花 736 毫秒,总时长 872 毫秒,约 84% 的时间耗在"把数据喂给网络之前"。为什么预处理这么贵?经典流程在 CPU 上把球面投影、特征提取全部做完,再把准备好的输入搬上 GPU,而准备过的输入因为带着额外特征,比原始点云更"胖",搬运也费带宽。有人反过来做:原始数据一上来就搬进 GPU,让预处理在 GPU 上并行完成,带宽省了,时间也省了。只报推理时间的 benchmark,会严重误导嵌入式部署的判断。这个 736 毫秒的口径来自 HARP-NeXt 自己的 1000 帧计时,与锚论文的 Jetson 实测不是同一套数字,两处要分开看。
锚论文还注意到一个数据相关的规律:同样是 corruption,模型在 SemanticKITTI-C 上比在 nuScenes-C 上退化得更厉害。它把这归因于 HDL-64E 的扫描更密,模型在训练时学进了更多细碎的几何结构,一旦这些结构被扰动,退化的幅度反而更大。锚论文 传感器越密、学的越细,反而越经不起扰动,这个反直觉的结论只能靠并排重测才看得见。
SemanticKITTI-C 上的细节同样有戏:KPConv 和 FRNet 并列全场最低的 mCE,都是 99.5%,比作为基线的 Minkowski 还好一点。锚论文把 point 类的这一胜局落在局部邻域聚合对点密度变化不敏感上。反过来,WaffleIron 在"不完整回波"这一个扰动上的 CE 是全场最高(58.6),也就是最差的一档:深色车辆吸走回波这种扰动,恰好打在它最疼的地方。
鲁棒性和速度,几乎是与精度独立的两个维度。分开量,才看得出谁真适合在恶劣环境上车。
换一座城市、换一台雷达,模型还剩几分?
第三根支柱搬出真实世界最狠的一种退化:换一个从没见过的环境。目标域选在巴黎。ParisLuco3D 是专门为跨域评测设计的数据集,沿巴黎卢森堡公园周边 2.1 公里采集了 7501 帧,传感器是 Velodyne HDL-32E。ParisLuco3D
为了让跨数据集可比,ParisLuco3D 定义了 45 个细类,并预先映射到 SemanticKITTI 的 19 类和 nuScenes 的 16 类,评测时类口径完全对齐。它还只开放原始点云,标注藏在线上 benchmark 服务器后面并限制提交次数,防止测试集被反复试探。换句话说,这个数据集的存在意义就是充当一面没有标准答案的墙,专治"在自己的训练分布里自嗨"。

图注:ParisLuco3D 的采集轨迹,红色路线环绕巴黎卢森堡公园约 2.1 公里,叠加在卫星底图上。这个评测目标域的全部范围,就是巴黎市中心这几条街。来源:ParisLuco3D 论文 fig:traj。
巴黎市中心对自动驾驶是出了名的难:每帧平均 56.3 个行人实例,是 nuScenes 的约 10 倍、Waymo 的 4 倍多;欧式窄街、密集行人、路边咖啡座,都是训练数据里稀缺的场景。ParisLuco3D
论文的设计妙在两条源域路径的对照。nuScenes 到巴黎,用的是同一款 HDL-32E 雷达,只换环境和外观,把传感器因素隔离出去;SemanticKITTI 到巴黎,则额外叠加 64 线换 32 线、德国换法国、郊区换市中心三种漂移。哪一类 shift 更致命,被这个设计拆成了可以分别回答的问题:
无适配还意味着:训练时连巴黎的一帧数据都不许碰。
结果比想象更残酷。强漂移路径(SemanticKITTI 到巴黎)上,投影类几乎失明:CENet 只有 2.9%,FRNet 3.4%,约等于在乱猜。全场最好的 Minkowski 也只有 33.3%,没有任何方法越过 35%。锚论文 更反常的是反例:KPConv 和 Cylinder3D 在强漂移路径上的分数反而比弱漂移路径更高,KPConv 22.1% 对 11.4%,Cylinder3D 25.5% 对 17.1%。锚论文的解释是这两家依赖局部几何结构而不是传感器特有的模式,SemanticKITTI 更丰富的几何监督反而教出了可迁移的表征。即便传感器完全同款的弱漂移路径,最好的 Minkowski 也只有 32.5%。逐类的细节也印证了这一点:可行驶路面、人造结构这类大而规则的类,跨域之后依然最高;自行车、交通锥、拖车这类小而稀有的类,几乎所有模型都接近零分。换一座城市,大结构扛得过去,路上的细节全部归零。跨域不是"分数低一点",而是可以整族崩溃,这是无适配泛化必须单独立一根支柱的理由。
四种架构的"部署画像":谁真正接近能上车?评测的边界在哪?
三根支柱拼在一起,四条架构路线的画像清晰得让人不舒服。Robo3D 早就用一张按输入表征分组的柱状图点破过规律:投影类在几乎每一种 corruption 上都是吃亏的一方。

图注:Robo3D 在 SemanticKITTI-C 上的表征对比。横轴是 8 类 corruption,每组柱按输入表征分组,投影类(projection)的柱子普遍高于 point、voxel 与融合类。y 轴是 CE,越低越好。来源:Robo3D 论文 Fig.3。
规律背后的原因还需要更多证据,与这一模式相一致的解释是:投影类的 CE 偏高,可能是因为 range-view 把 3D 点压成 2D 网格时丢掉了几何结构,点一旦被扰动、抖动、丢失,2D 图上的表现最先崩;point 类对局部点缺失更稳,可能是因为邻域聚合对遮挡不那么敏感;稀疏卷积与融合整体最均衡。
对照锚论文自己的数字,每条路线的画像可以这样概括。投影类的 FRNet 是干净数据上的细粒度冠军,却在安全关键类(Living Being 55.6%)和跨域(SemanticKITTI 到巴黎 3.4%)上双输。它的 frustum-range 架构其实已经刻意保留了点级特征来补偿投影损失,这让它在 nuScenes-C 的非基线模型里 mCE 最低(103.7%),但依然没能救回这两个安全轴。FRNet point 类的 WaffleIron 是粗类冠军,可 0.5 FPS 在 Jetson 上直接出局;PTv3 精度全面领先,RTX 4090 上也只有 4.1 FPS。PTv3 的快是写在桌面 GPU 上的:它用空间填充曲线把点云序列化,取代昂贵的邻域查询,在 RTX 4090 上确实高效,但序列化在嵌入式上依旧是 CPU-bound 的苦活。PTv3 稀疏卷积与融合相对最均衡:Minkowski 甚至在两条跨域路径上都拿了第一,而且每个轴都不垫底。不过如果非要问谁最接近上车,锚论文的数据给不出四轴全优者,只能说稀疏卷积和融合是赌注最小的一档。
锚论文的结论三条,全部指向同一个方向:干净的榜单精度预测不了部署就绪度;所有方法在 corruption 下端到端显著退化,退化特征取决于架构;没有任何 SOTA 方法能在精度、鲁棒性、泛化、效率四个轴上同时占优。锚论文
这篇论文的诚实之处,是把自己的边界也标得很清楚。第一,鲁棒性支柱用的是合成 corruption,不是真实恶劣天气采集。真实路线长什么样?SemanticSTF 在德国、瑞典、丹麦、芬兰四国城市真实采集了雪、浓雾、轻雾、雨四类天气下的逐点标注点云,2076 帧,标注花了超过 6600 人时。SemanticSTF

图注:SemanticSTF 论文的四天气并排图。第一行是雪、雨、浓雾、轻雾下采集的同一区域点云,第二行是对应的逐点语义标注。雪天有大量无效白点,浓雾整体稀疏,轻雾与正常天气相近。来源:SemanticSTF 论文 adverse-weather 图。
两条路线各有取舍:合成扰动可控、可分级、能对每个模型重复跑,但终究是物理的近似;真实数据贴近部署,却贵到难规模化。两路并行,谁也不替代谁。第二,域泛化只做了单源到单目标,多源、多目标都还没碰。第三,粗类沿用 COLA 的定义,论文没有自创标签体系。此外,那篇天气综述的中央结论只剩一个截断的摘要句子可引:仅靠输入级的曝光和增广"有帮助但常常饱和",意思是光在输入端做文章不够,表示层和目标层的协同才可能走得更远。天气综述
还有两句知情话要放在最后。这篇论文是 2026 年 9 月的 v1 preprint,尚未经过同行评审;其中 HARP-NeXt 的成绩出自作者自己的统一重训,自带自评视角。数字可以复现,但请带着这两条注意去读。
这套协议真正的价值,是给行业一个可复现的公共参照系。以后研究者报一个新模型,只要把四根轴的数字都亮出来,读者一眼就能看出它是"考试型选手"还是"上路型选手",而不是被一个精心挑选的 mIoU 迷惑。对团队来说,它把"能不能上车"从一个模糊的经验判断,变成一组可以逐项勾选的硬指标。顺着这个框架往下走,可以继续推进的方向自然浮现:真实恶劣天气数据(而不只是合成扰动)、多源到多目标的域泛化,以及比如把预处理和推理一起优化的端到端设计(顺着框架推断,非论文原文自述)。每一条都是它够不着、但已经量出缺口的地方。
它给这个领域留下的,不是一个新冠军,而是一套能同时量四把尺子的量具:语义相关性、退化鲁棒性、跨域泛化、计算效率。下次再看到"榜单第一",先问一句:它是在哪根柱子上拿的第一?
想深入可以读原文:Toward Robust LiDAR Semantic Segmentation for Real-World Deployment: Evaluation under Coarse Labels, Adverse Conditions, and Domain Shifts — arXiv:2609.02830
参考文献
- 锚论文:Toward Robust LiDAR Semantic Segmentation for Real-World Deployment: Evaluation under Coarse Labels, Adverse Conditions, and Domain Shifts — https://arxiv.org/abs/2609.02830
- SemanticKITTI: A Dataset for Semantic Scene Understanding of LiDAR Sequences — https://arxiv.org/abs/1904.01416
- COLA: COarse-LAbel multi-source LiDAR semantic segmentation for autonomous driving — https://arxiv.org/abs/2311.03017
- Robo3D: Towards Robust and Reliable 3D Perception against Corruptions — https://arxiv.org/abs/2303.17597
- ParisLuco3D: A high-quality target dataset for domain generalization of LiDAR perception — https://arxiv.org/abs/2310.16542
- Point Transformer V3: Simpler, Faster, Stronger — https://arxiv.org/abs/2312.10035
- FRNet: Frustum-Range Networks for Scalable LiDAR Segmentation — https://arxiv.org/abs/2312.04484
- HARP-NeXt: High-Speed and Accurate Range-Point Fusion Network for 3D LiDAR Semantic Segmentation — https://arxiv.org/abs/2510.06876
- From clear to adverse: a survey of all-weather LiDAR semantic segmentation for autonomous driving — https://doi.org/10.1016/j.ait.2026.100061
- 3D Semantic Segmentation in the Wild: Learning Generalized Models for Adverse-Condition Point Clouds(SemanticSTF) — https://arxiv.org/abs/2304.00690