AI在城市点云里找目标:Urbex不降采样,单条查询怎么做到
2014 年,深度学习刚在图片识别上大杀四方的时候,没人会想到,十年后研究者们还在为一个看起来很简单的问题头疼:怎么让AI在一整座城市的三维点云里,找到你嘴里说的"西米德兰兹警察局拘留所左边那辆橙色车旁边停着的那辆白车"。这事儿听起来简单,做起来却像大海捞针。你可能觉得这不就是"目标检测"的升级版吗?把室内识...
2014 年深度学习在图片识别上势头正猛,那会儿很少有人会想到,十年之后研究者还得为一个看似不难的问题费脑筋:在一整座城市的三维点云里,怎么让 AI 找到你说的“西米德兰兹警察局拘留所左边那辆橙色车旁边停着的那辆白车”。
听起来不难,真做起来跟大海捞针差不多。有人可能觉得,把室内认沙发、认椅子那套模型搬到室外不就成了?
还真不行。
一、城市大到模型装不下
室内三维扫描,一间屋子也就几万个点,客厅撑死五万个点。城市级点云就完全不是这个量级了。本文研究的场景里,一个城市街区能有将近一亿个点。论文提到的 EDA、InstanceRefer 这类现有室内三维定位方法,标准做法是先把点云降采样到固定数量,一般就是五万个点。
打个比方,你要在整座图书馆里找一本书,对方却说“别急,先把书架砍掉百分之九十九,只留一小部分给你翻”。书架少了,找到那本书的概率自然跟着暴跌。论文的实验数据也印证了这点:EDA 在 CityRefer 数据集上的 Hit@1(预测排名第一就命中目标的概率)只有 0.1%,基本等于瞎猜。降采样丢掉的,恰恰是那些占地不到几个像素的小物体,比如路边停的一辆车、邮箱大小的标志牌。
降采样走不通,研究者又换了个办法:候选排序。
候选排序的思路是,先用实例分割模型把场景里的物体都框出来(候选框可能有一千三百多个),再拿每个候选框和文字描述算匹配分数,分数最高的那个就是答案。
听着挺合理,代价却不小。候选集质量直接决定上限:分割模型要是压根没框出目标物体,后面算分再准也白搭。候选一多,打分的时间成本也跟着涨,论文提到的强基线 CityAnchor 靠多模态大语言模型给候选打分,平均每条查询要花 32.1 秒。
二、换个思路:让 AI 像人一样“边走边找”
Urbex(本文提出的方法名)的研究者想明白了一件事:真正的空间定位不是一次性打分,而是一个带着问题主动去探索的过程。
现实里找地方,谁也不会把整座城市的卫星图摊在眼前一眼认出目标。正常做法是先看大致方向,朝哪个区域走;走近了再看细节,这栋楼是不是要找的;必要时绕到侧面确认一下,这个角度看才像。
Urbex 的核心设计正是这个:把三维场景变成 VLM(视觉语言模型,能同时理解图片和文字的 AI 模型)可以“操作”的交互环境,让 AI 像人一样调用工具、主动探索,而不是被动地给一堆候选框打分。
不这么设计会怎样?
就是前面说的两条老路:要么丢细节(降采样),要么效率低(候选排序)。Urbex 走了第三条路:不预先生成任何候选框,让 AI 自己决定“看哪里、怎么看、什么时候该停”。
三、城市级三维场景,怎么变成 AI 能“看懂”的样子
想让 AI 在一亿个点的点云里自由穿梭,先得给它一套“眼睛”和“腿”。
Urbex 把整个三维场景变成了一个基于 BEV(Bird's-Eye View,从正上方往下看的鸟瞰视角)的交互环境。AI 一开始看到的是一张全局俯视图,随后可以调用工具切换到其他视角;每张视角图都配有一套坐标映射关系,因此 AI 无论在哪张图上画出框,最后都能准确对应回真实世界的三维位置。
这里有三个工具,对应三种“看”的方式。
第一个叫地标查询(Landmark Query):文字描述里出现“某某大楼”“某某街道”这类专有名词时,这个工具会返回该地标在世界坐标系里的位置,以及它在当前视角里的像素坐标。
地标查询:根据描述里提到的建筑、道路等专有名词,返回其在场景中的精确位置,相当于给 AI 一个全局锚点。
这个工具的价值,消融实验的数据给出了直接答案:仅使用缩放工具(Zoom-in)时,Hit@3(命中率,即预测的前三名里出现目标就算命中)为 15.5%;再引入地标查询,数字升到 28.2%,几乎翻了一倍。2D IoU(预测框与真实框的重叠程度)同样从 4.1% 提高到 8.9%。
这就像去一个陌生的大学校园找教室。没人告诉你“在图书馆东边那栋楼”,你只能一栋一栋瞎转,运气好能找到,运气不好转一下午也找不着。地标就是那句“在图书馆东边”,它不保证你一步到位,但能让你瞬间排除百分之九十的无关区域。
第二个工具是局部缩放(Zoom-in):它把 AI 选中的一块区域,映射回原始高分辨率俯视图并裁剪出来。前面说的全局俯视图,长边经常超过一万像素,压成一张能塞进模型的小图后,很多小物体就只剩几个像素,根本认不出来。缩放工具要做的,就是把这些细节重新“找回来”。
第三个工具是斜视渲染(Oblique Rendering)。它从指定方向(东南西北)渲染出一张带三维感的侧面图,用来核对候选区域里物体的形状、高度和空间摆放是否和描述对得上。判断一辆车是不是真的“停在空位和红车之间”,只看俯视图可能分不清前后关系,换一个斜着的视角,马上就能看明白。
三个工具串起来用,构成一套完整的侦查流程:先用地标查询锁定大致方位,再用局部缩放走近看细节,最后靠斜视渲染换个角度确认。哪一步缺了,整套流程的效果都会打折扣。
四、怎么教会AI“该用哪个工具、什么时候停”
工具齐了,AI还得学会怎么使。靠人工写规则解决不了这个问题——“什么时候该缩放”“缩放多大范围”“要不要渲染侧视图”,这些判断跟具体场景、具体描述绑得很紧,很难把所有情况都列全。
Urbex 的办法是用强化学习(RL,Reinforcement Learning,一种让AI通过反复试错、根据奖励信号调整行为的训练方法)来训练这套工具调用策略。
研究者采用的具体算法是 GRPO(Group Relative Policy Optimization,群组相对策略优化)。这种强化学习方法不需要额外训练一个“打分裁判”模型(即价值网络)。对同一个问题,AI会同时尝试好几条不同的探索路径(论文里设的是 8 条),再比较哪条路径做得更好,做得好的多给奖励,做得差的少给奖励,不用单独训练一个模型去预判“这条路径大概能得多少分”。显存和计算开销因此省下不少。
至于“做得好不好”怎么判断,论文设计了一套颇为讲究的奖励机制。
终端奖励分三块:IoU 奖励,看预测框和真实框重叠多少,越高越好;距离奖励,看预测框中心和真实目标中心离得多近,越近越好,即使还没完全重叠也能拿到正反馈;步数惩罚,走的步骤越多扣分越多,为的是鼓励高效探索。
有个细节设计得挺巧妙:距离奖励采用指数衰减函数,而不是“重叠了才给分、没重叠就是零分”那种简单规则。
这就像考试判分。老师若只按“答案对不对”二选一,学生哪怕思路写对了九成,只要最后答案差一点,照样零分,根本感受不到自己离正确答案有多近。反过来,老师愿意按“思路接近程度”给部分分,学生就能体会到“我这次比上次更接近了”,进步方向也更清楚。
城市级场景里,AI刚开始探索时常常连目标的影子都碰不到。要是只靠“重叠了才有奖励”这种一刀切规则,AI很可能一直拿不到任何正反馈,训练效果会非常差。距离奖励解决的正是“早期完全没有信号”这个难题。
终端奖励之外,论文还加了工具级别的塑形奖励(Tool-level shaping)。比如用缩放工具时,这次选中的中心点比上次更接近目标,就给一点小奖励;反过来远离了就扣一点分。这些奖励都设了上限,防止盖过主奖励的权重,它们更像给AI的“小提示”,而不是决定成败的主要依据。
消融实验里,仅采用 IoU 奖励时 Hit@3 为 22.8%;引入距离塑形后升到 30.6%;再把工具级塑形叠加进来,整体可达 36.9%。三块奖励设计各自都发挥了实际作用,并非虚设。
五、结果怎么样:又快又准
设计思路说了这么多,最终效果到底如何?
在 CityRefer 数据集上,提供真实候选框的设置下(With GT),Urbex 在 ND(新描述,场景见过但描述没见过)split 的 Hit@1 达到 25.8%,NO(新场景,训练时完全没见过的场景)split 达到 23.9%,两项都是所有对比方法里最高的。
效率上的表现更关键。此前最强的候选排序方法 CityAnchor,平均每条查询要花 32.1 秒,因为它得给场景里所有候选框逐个打分。Urbex 只要 3.2 秒,快了将近十倍。
速度上的差距,道理并不复杂。候选排序这类做法不问候选好坏,每个候选都得逐一打分——就像进超市只买一件商品,却被要求把所有货架扫一遍、把每件商品的价签都看一遍才肯结账。Urbex 的做法是直接问店员某牌子的某样东西摆在哪排货架,过去取走即可。
到了不给候选框、更贴近现实的设定(Without GT,即没有人事先帮忙把所有物体框好,AI 必须完全自行判断),Urbex 的长处更突出:2D IoU 在 ND 下为 15.6%,在 NO 下为 14.6%,把 GPT-5.4 等闭源大模型接入同一工具环境后的成绩(分别为 4.4% 和 4.6%)甩开一大截。可见,单有一个很强的通用视觉语言模型再配上工具,并不足以应对这项任务;真正管用的是针对该任务做过强化学习训练的策略。
论文还专门测了零样本迁移能力:把只在 CityRefer 上训练好的模型,直接拿去测试一个全新的、训练时完全没见过的数据集 STPLS3D-Refer,结果 Urbex 依然拿到所有指标里最好的成绩,Hit@1 达到 27.2%。它学到的不是某个数据集的“套路”,而是一种可以迁移的空间搜索能力。
六、哪里还会出错
论文没有回避问题,专门做了失败案例分析。
研究者发现,两个关键因素会显著影响定位成功率:目标和地标之间的距离,以及目标周围同类物体的密集程度。
目标离最近的地标不到 50 米时,区域搜索(也就是第一步缩放是否圈中了目标)的成功率是 40%(在 ND 数据集上);距离一旦超过 200 米,成功率骤降到 14.3%。地标给出的只是一个大致方向,离得越远,这个方向指引的精确度就越差。
在正确区域内能不能认准具体是哪个物体,局部消歧的表现也遵循相近的规律。目标周围没有同类干扰物时——比如附近没有别的车——成功率达到64.7%;可要是附近停了十辆以上同款车,成功率就掉到25.1%。
道理不复杂。空荡荡的停车场里找一辆红车,一眼就看见了。换成停着二十辆红车的停车场,就得靠“左边第三排”“靠近出口”这类更细的描述反复核对,出错的机会自然大不少。
论文列出的两个失败案例挺典型。一例是首次缩放划出的区域压根没框住目标,AI只能在错误范围里硬搜,最后随手挑了个长得像的物体;另一例是缩放框对了,AI却在多辆相似车辆之间选错了行,后面虽然调用了斜视渲染去确认,判断还是没被纠正过来。说到底,Urbex目前的策略在“回头再看搜索区域”和“在相似物体间细比对”这两件事上,都还有打磨余地。
写在后面
这篇论文让我印象最深的地方在于:研究者没去死磕三维点云处理得够不够“全”、候选生成做得够不够“准”,而是换了个问法,把静态的“检索匹配”改成了动态的“下一步该去哪儿看”。
背后是个挺朴素的道理:人在现实里找东西,靠的本来就不是把整个空间的细节都记在脑子里,而是一套“先粗后细、边走边验证”的流程。论文中地标查询消融实验的数据从15.5%升到28.2%,正好说明一件事——给AI一个能主动查询的“路标系统”,远比让它死记整张地图管用。
训练过和没训练过的差距,在这里露得很清楚。拿固定顺序去跑一个没经过训练的基础模型——先查地标,再缩放,再渲染,最后回答——Hit@1只有2.7%;换作训练过的Urbex走同一套顺序,这个数字变成10.0%。可见光塞给AI一套“正确的操作流程”远远不够,它得在每一步都真正学会做出合适的空间判断。流程只搭起骨架,训练出来的判断力才填得上血肉。
论文留下的一个开放问题是:AI定位到正确物体之后,画出的框往往偏大。按论文自己的统计,预测框与真实框的面积比例中位数是1.4倍,也就是预测框平均比真实目标大了四成。东西是找对了,框却不够精细,这算不算另一种“差不多就行”?
Q&A
Q1:Urbex是什么?
A:Urbex是一套面向城市级三维场景的智能定位系统。它让视觉语言模型像人一样,主动查询地标、放大局部区域、渲染侧面视角,在超大规模点云场景里找到语言描述所指的具体物体,而不是靠预先生成的候选框逐个打分。
Q2:Urbex和传统的候选排序方法比有什么优势?
A:最突出的是速度,还有对候选质量的低依赖。CityAnchor这类排序方法平均每次查询要花32.1秒,Urbex只需3.2秒,快了近十倍。另外Urbex不用提前把所有物体框好,在没有真实候选框这种更贴近现实的场景下,表现也明显强过其他方法。
Q3:Urbex训练用的是什么技术?
A:Urbex采用强化学习中的GRPO算法,让AI同时尝试多条探索路径并比较结果好坏来学习;同时设计了结合重叠度、中心距离和工具调用表现的组合奖励机制,使AI逐步学会什么时候该用哪个工具、什么时候停止探索。