news 2026/9/15 11:04:10

LingBot-Map天空分割完全指南:skyseg.onnx与skyseg_batch.onnx双模型分工详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
LingBot-Map天空分割完全指南:skyseg.onnx与skyseg_batch.onnx双模型分工详解

LingBot-Map天空分割完全指南:skyseg.onnx与skyseg_batch.onnx双模型分工详解

【免费下载链接】lingbot-map(ECCV 2026 oral) LingBot-Map: Geometric Context Transformer for Streaming 3D Reconstruction项目地址: https://gitcode.com/GitHub_Trending/li/lingbot-map

LingBot-Map(ECCV 2026 oral,Geometric Context Transformer for Streaming 3D Reconstruction)是一款流式 3D 重建基础模型。它的**天空分割(sky masking)**功能使用两个 ONNX 模型完成:skyseg.onnx负责单图推理,skyseg_batch.onnx负责批量加速。本文用最少的话讲清二者的分工、使用位置和缓存机制,帮助你在户外场景中快速过滤天空点、提升重建点云质量。

为什么 LingBot-Map 需要天空分割模型 🌤️

在户外场景重建时,相机拍到的天空区域本身没有真实几何信息。如果不处理,重建出的点云会漂浮着大量"天空点",严重影响可视化质量。

LingBot-Map 的解法是:用 ONNX 格式的天空分割模型对每帧图像打分,把天空区域的置信度清零(apply_sky_segmentation),最终点云里只留下真实场景。

上图为 LingBot-Map 的长序列重建效果,下方户外驾驶场景正是天空分割的典型用武之地

两个模型的输入预处理完全一致:图像缩放到 320×320,使用 ImageNet 均值/标准差归一化(见 run_skyseg)。唯一的本质区别在于批量能力

对比项skyseg.onnxskyseg_batch.onnx
输入方式每次推理 1 张图动态 batch,一次推理多张图
定位交互式场景(逐帧处理)离线批处理(长序列加速)
典型调用方根目录 demo.py、可视化/Glb 导出demo_render/batch_demo.py、评测批处理
默认路径当前目录下skyseg.onnxskyseg_batch.onnx

skyseg.onnx 的使用位置:交互式演示与可视化 👀

当你运行根目录demo.py并加上--mask_sky时,使用的就是skyseg.onnx(参数定义见 demo.py 第 409-414 行):

python demo.py --model_path /path/to/checkpoint.pt --image_folder /path/to/images/ --mask_sky

它的工作流程(load_or_create_sky_masks)是逐帧循环:读图 → 推理 → 把"非天空置信度"缩放到原图分辨率 → 写入缓存。模型路径可以用--sky_model指定其他位置;若默认文件缺失,_ensure_skyseg_model 会自动下载,下载失败会直接报错而非静默跳过,避免你以为做了天空过滤实际没做。

同样依赖skyseg.onnx的还有交互式查看器和模型导出链路:

  • 3D 点云查看器:lingbot_map/vis/point_cloud_viewer.py
  • Viser 可视化封装:lingbot_map/vis/viser_wrapper.py
  • 离线 GLB 导出:lingbot_map/vis/glb_export.py

skyseg_batch.onnx 的使用位置:离线渲染与评测批量处理 🚀

对于超长序列(数帧起步到 25000 帧),逐帧推理开销太大。此时离线渲染管线切换到skyseg_batch.onnx——它把 batch 维设为动态,一次前向推理处理多帧。

离线渲染管线一次处理 25000 帧量级的长序列,天空分割批量推理是其提速关键

核心实现在 run_skyseg_batch:把多帧图像堆叠成(B, 3, H, W)批量推理;如果某模型的 batch 维是固定的,还会自动用最后一帧补齐(padding)后再切回真实帧数,非常省心。

各入口的默认配置都指向它:

  • 离线批处理入口:demo_render/batch_demo.py 的--skyseg_model_path默认值即skyseg_batch.onnx
  • RGB-D 渲染配置:demo_render/config/default.yaml 中preprocess.sky_model默认skyseg_batch.onnx
  • 评测离线脚本:benchmark/sky_seg/seg_sky.py 的segment_batch--batch_size分批推理(显存不足时调小即可),把天空掩码输出到与图像目录平级的sky_mask/文件夹(255=天空,0=非天空)
  • 评测框架封装:benchmark/benchmark/utils/sky_segmentation.py 默认从用户缓存目录~/.cache/benchmark/skyseg.onnx取模型,单张调用

户外数据集 Oxford Spires 的轨迹对比:天空区域被正确排除后,相机轨迹更贴合参考值

缓存与可视化机制:跑一次,永久生效 ⚡

两个模型共用同一套掩码缓存设计,避免重复推理:

  • 交互管线默认把掩码缓存到<图像目录>_sky_masks/,目录内写入版本号文件.skyseg_cache_version(版本常量见 sky_segmentation.py 第 28 行),可用--sky_mask_dir自定义
  • 再次运行时发现掩码已存在且尺寸匹配,直接复用,零推理开销
  • 想直观检查分割质量?加--sky_mask_visualization_dir,会输出"原图 + 掩码 + 红色高亮天空区域"的三联图(_save_sky_mask_visualization)
  • 离线脚本 seg_sky.py 则逐文件跳过已生成的掩码,支持断点续跑

如何选择:3 条判断标准 📋

  1. 跑交互式demo.py或导出 GLB→ 用默认的skyseg.onnx,缺了会自动下载,无需干预
  2. 跑离线长序列渲染或大批量图像→ 用skyseg_batch.onnx,通过--skyseg_model_path/--sky_model指定绝对路径,显存紧张时减小--batch_size
  3. 只做评测前处理→ 直接用 benchmark/sky_seg/seg_sky.py 一条命令生成整目录掩码

一句话总结:模型算法相同、预处理相同、缓存相同;区别只是"单张走"还是"批量跑"。选对模型,户外场景的天空点过滤又快又干净。

【免费下载链接】lingbot-map(ECCV 2026 oral) LingBot-Map: Geometric Context Transformer for Streaming 3D Reconstruction项目地址: https://gitcode.com/GitHub_Trending/li/lingbot-map

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/15 11:01:57

iii 0.21:把任意函数变成 REST 端点的完整路径

iii 0.21&#xff1a;把任意函数变成 REST 端点的完整路径 【免费下载链接】iii Effortlessly compose, extend, and observe every service in real-time for the first time ever. 项目地址: https://gitcode.com/GitHub_Trending/mo/iii 这篇文章带你用 iii 0.21 内置…

作者头像 李华
网站建设 2026/9/15 10:52:45

如何异步导出excel

当用户点击导出按钮时&#xff0c;我们不希望用户等待数据导出的整个过程&#xff0c;因为这可能会很长时间&#xff0c;导致页面超时或者用户体验下降。所以&#xff0c;我们采用异步处理的方式来完成这个任务。这就像是你去餐厅点了一份需要很长时间烹饪的食物&#xff0c;服…

作者头像 李华