论文笔记:Point Cloud Forecasting as a Proxy for 4D Occupancy Forecasting(1)

论文笔记:Point Cloud Forecasting as a Proxy for 4D Occupancy Forecasting(1)

方法

车队会记录大量未标注的序列LiDAR点云X−T:T\textbf{X}_{-T:T}X−T:T​,同时记录每一帧的传感器位置o−T:T\textbf{o}_{-T:T}o−T:T​,我们将X−T:0\textbf{X}_{-T:0}X−T:0​和o−T:0\textbf{o}_{-T:0}o−T:0​记录为历史部分,X1:T\textbf{X}_{1:T}X1:T​和o1:T\textbf{o}_{1:T}o1:T​记录为未来部分

标准的点云预测办法ggg,将过去点云作为输入,来预测未来点云:X^1:T=g(X−T:0)\hat{\textbf{X}}_{1:T}=g(\text{X}_{-T:0})X^1:T​=g(X−T:0​)(1)(1)(1)

我们的方法将未来LiDAR点云x∈Xt,t=1...T\textbf{x} \in \textbf{X}_t, t = 1 ... Tx∈Xt​,t=1...T重参数化成一条射线:该射线从传感器位置ot\textbf{o}_tot​出发,沿方向d\textbf{d}d,经过距离λ\lambdaλ后到达终点x\textbf{x}x:x=ot+λd,x∈Xt\textbf{x} = \textbf{o}_t + \lambda \textbf{d}, \textbf{x} \in \textbf{X}_tx=ot​+λd,x∈Xt​(2)(2)(2)

我们的方法fff在未来时间ttt选取一条通过原点和方向(ot,d)(\textbf{o}_t, \textbf{d})(ot​,d)进行参数化的射线。然后在给定过去点云X−T:0\textbf{X}_{-T:0}X−T:0​和传感器位置o−T:0\textbf{o}_{-T:0}o−T:0​的情况下,预测射线经过距离λ^\hat{\lambda}λ^:λ^=f(ot,d;X−T:0,o−T:0)\hat{\lambda}=f(\textbf{o}_t, \textbf{d}; \textbf{X}_{-T:0}, \textbf{o}_{-T:0})λ^=f(ot​,d;X−T:0​,o−T:0​)(3)(3)(3)

公式(3)与Nerf类似,Nerf预测颜色,本文预测深度

Spacetime (4D) occupancy

将spacetime occupancy定义为特定时间点的3D位置占用状态。使用z\textbf{z}z来表示真实的spacetime occupancy,由于视线可见性的限制,可能无法直接进行观测。给定一个有界时空4D volume V\mathcal{V}V,该volume被离散为时空voxel v\textbf{v}v。可以使用z[v]∈{0,1},v=(x,y,z,t),v∈V\textbf{z}[\textbf{v}] \in \{0, 1\}, \textbf{v}=(x, y, z, t), \textbf{v}\in \mathcal{V}z[v]∈{0,1},v=(x,y,z,t),v∈V(4)(4)(4)来表示时空voxel grid V\mathcal{V}V中voxel v\textbf{v}v的占用状态,该状态可以是占用(1)或者空闲(0)。

我们通过学习一个占用预测网络hhh(由w\textbf{w}w进行定义),根据历史点云和传感器位置来预测离散化的四维时空占用:z^=h(X−T:0,o−T:0;w)\hat{\textbf{z}}=h(\textbf{X}_{-T:0}, \textbf{o}_{-T:0}; \textbf{w})z^=h(X−T:0​,o−T:0​;w)(5)(5)(5),其中z^[v]∈R[0,1]\hat{\textbf{z}}[\textbf{v}] \in \mathbb{R}_{[0, 1]}z^[v]∈R[0,1]​表示预测的占用

Depth rendering from occupancy

给定射线query x=o+λd\textbf{x}=\textbf{o}+\lambda \textbf{d}x=o+λd,目标是预测λ^\hat{\lambda}λ^与真实λ\lambdaλ尽可能接近。我们首先通过voxel遍历计算其与占用grid的交集(Fig 4)。假定射线和列表voxels{v1...vn}\{\textbf{v}_1... \textbf{v}_n\}{v1​...vn​}相交。假设射线只能停在voxel的边界或者无限远处,从而对射线空间进行离散化,我们将voxel vi\textbf{v}_ivi​解释为从voxel vi−1\textbf{v}_{i-1}vi−1​发出的射线在voxel vi\textbf{v}_ivi​停止的条件概率,可以写为:pi=∏j=1i−1(1−z^[vj])z^[vi]p_i = \prod_{j=1}^{i-1} (1 - \hat{\textbf{z}}[\textbf{v}_j]) \hat{\textbf{z}}[\textbf{v}_i]pi​=∏j=1i−1​(1−z^[vj​])z^[vi​],其中pip_ipi​表示射线停在voxel vi\textbf{v}_ivi​的概率。现在可以通过计算期望中的停止点来渲染距离λ^=f(o,d)=∑i=1npiλ^i\hat{\lambda} = f(\textbf{o}, \textbf{d}) = \sum_{i=1}^{n}p_i\hat{\lambda}_iλ^=f(o,d)=∑i=1n​pi​λ^i​,λ^i\hat{\lambda}_iλ^i​表示voxel vi\textbf{v}_ivi​的停止距离。

在这里插入图片描述


从上式可看出不考虑射线停在voxel grid外面的情况,该停止距离未定义(将在无限远处停止)。在训练时,在真实的grid外部设置一个虚拟的停止点:
λ^=f(o,d)=∑i=1npiλ^i+∏i=1n(1−pi)λ^n+1\hat{\lambda} = f(\mathbf{o}, \mathbf{d}) = \sum_{i=1}^{n} p_i \hat{\lambda}_i + \prod_{i=1}^{n} (1 - p_i) \hat{\lambda}_{n+1}λ^=f(o,d)=∑i=1n​pi​λ^i​+∏i=1n​(1−pi​)λ^n+1​,其中λ^n+1=λ\hat{\lambda}_{n+1} = \lambdaλ^n+1​=λ.

Loss function

使用L1 loss来训练occupancy prediction network:
L(w)=∑(o,λ,d)∈(X1:T,o1:T)∣λ−f(o,d;X−T:0,o−T:0,w)∣L(\mathbf{w}) = \sum_{(\mathbf{o}, \lambda, \mathbf{d}) \in (\mathcal{X}_{1:T}, \mathbf{o}_{1:T})} \left| \lambda - f(\mathbf{o}, \mathbf{d}; \mathbf{X}_{-T:0}, \mathbf{o}_{-T:0}, \mathbf{w}) \right|L(w)=∑(o,λ,d)∈(X1:T​,o1:T​)​∣λ−f(o,d;X−T:0​,o−T:0​,w)∣

Read more

Spring Boot 中基于 WebClient 的 SSE 流式接口实战

—— 从 Feign 到 WebClient 的一次真实踩坑记录 一、背景:为什么我要做 SSE? 在最近的一个项目中,我负责接入一个 AI 问答服务。 一开始的接口形态非常常规: @PostMapping("/health_manager") public RespBean<HealthManagerQueryDataVO> sendQuery(...) 客户端发请求,服务端等 AI 全部生成完内容,再一次性返回。 问题很快就暴露了: * AI 返回慢(10 秒甚至更久) * 用户页面“卡死”,体验极差 * 其实 AI 是“边生成边返回”的,但我们完全浪费了这个能力 于是,目标就很明确了: 把原有同步接口,改造成支持 SSE(Server-Sent

一个 skill ,增加大模型前端的审美能力

上周,我让 AI 帮我做个落地页。 十分钟过去了,生成出来的东西—— 白色背景,紫色渐变,Inter 字体。 我直接关了。 你也遇到过吧? 用 AI 生前端,出来的东西都长一个样。 背景非白即黑,标题栏永远是紫色渐变,字体不是 Inter 就是 Roboto,配色永远是那套蓝绿红黄。 不是说不能用,但—— 太像 AI 了。 一眼看过去就是"机器生成",没有灵魂,没有个性。 直到昨天,我发现了一个东西。 Anthropic 官方出的一个 skill,叫 frontend-design。 让我再试一次。 这次不一样了 同样的提示词,同样的模型。 我只加了一句话: “使用 frontend-design skill” 结果呢?

前端异常捕获与统一格式化:从 console.log(error) 到服务端上报

前端异常捕获与统一格式化:从 console.log(error) 到服务端上报

🧑 博主简介:ZEEKLOG博客专家,「历代文学网」(公益文学网,PC端可以访问:https://lidaiwenxue.com/#/?__c=1000,移动端可关注公众号 “ 心海云图 ” 微信小程序搜索“历代文学”)总架构师,首席架构师,也是联合创始人!16年工作经验,精通Java编程,高并发设计,分布式系统架构设计,Springboot和微服务,熟悉Linux,ESXI虚拟化以及云原生Docker和K8s,热衷于探索科技的边界,并将理论知识转化为实际应用。保持对新技术的好奇心,乐于分享所学,希望通过我的实践经历和见解,启发他人的创新思维。在这里,我希望能与志同道合的朋友交流探讨,共同进步,一起在技术的世界里不断学习成长。 🤝商务合作:请搜索或扫码关注微信公众号 “ 心海云图 ” 前端异常捕获与统一格式化:从 console.log(error) 到服务端上报 引言 在前端开发中,异常监控是保证应用稳定性的重要一环。当用户遇到页面白屏、功能不可用等问题时,如果能及时收集到详细的错误信息(包括堆栈、

2026年最火的前端神器!让AI帮你设计专业级UI,告别丑陋界面

2026年最火的前端神器!让AI帮你设计专业级UI,告别丑陋界面

痛点引入 你是否遇到过这些问题: * 写代码很溜,但设计的界面总是"程序员审美"? * 不知道该用什么颜色、字体,每次都要花大量时间调样式? * 想让 AI 帮你写 UI 代码,但生成的界面总是千篇一律、毫无设计感? * 看到别人的网站那么漂亮,自己却不知道从何下手? 如果你有以上困扰,那么今天要介绍的这个工具,将彻底改变你的开发体验! 🎯 UI UX Pro Max 是什么? UI UX Pro Max 是一个为 AI 编码助手提供设计智能的工具,它就像给你的 AI 助手配备了一个专业的 UI/UX 设计师大脑。 简单来说:它让 AI 不仅会写代码,还懂设计! 核心数据 * ✅ 57 种 UI 样式: