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

三维扫描一键变 CAD:Scan2CAD 把家具模型自动摆进真实房间

三维扫描一键变 CAD:Scan2CAD 把家具模型自动摆进真实房间

【免费下载链接】Scan2CAD[CVPR'19] Dataset and code used in the research project Scan2CAD: Learning CAD Model Alignment in RGB-D Scans项目地址: https://gitcode.com/gh_mirrors/sc/Scan2CAD

Scan2CAD 是一个把三维扫描转 CAD 的深度学习方案:输入一个扫描出的室内场景和一堆 CAD 家具模型,它自动告诉你每件家具是哪个模型、放在哪、多大。CVPR 2019 Oral 论文的开源实现,数据集覆盖 1506 个扫描场景、14225 个物体、97607 组对应点。

先跑起来:三步快速上手 🚀

第 1 步,装环境。克隆仓库,装 Python 依赖;C++ 小工具(体素化、裁切、网格转换那几个目录)各自进目录make一下即可。

第 2 步,拿数据。这个仓库没有现成的预训练模型权重,示例数据就是你的"起步包":Assets/scannet-sample是一份 ScanNet 示例场景,Assets/shapenet-sample是几件 ShapeNet 模型,Assets/training-data是训练样本索引。想拉一份示例扫描数据,跑一下python3 Assets/download_dataset.py

第 3 步,执行转化。下面这条是官方 run.sh 里的核心命令:

git clone https://gitcode.com/gh_mirrors/sc/Scan2CAD cd Scan2CAD/Network/pytorch python3 ./main.py --name example --weight 64.0 --batch_size 8 \ --train_list ../../Assets/training-data/trainset.json \ --mask_neg 1 --with_scale 1 --with_match 1

热图网络训完,接着用Alignment9DoF.py解出 9DoF 位姿,再用Alignment2Mesh.py把结果转成能打开看的网格,一条链路就通了。

它是怎么工作的

体素化:把三维数据变成"我的世界方块"

网络吃不了点云和网格,得先变成规整的三维数组。Scan2CAD 把扫描融合成 SDF 符号距离体素网格(默认分辨率 3cm、截断距离 15cm),CAD 模型变成 df 距离网格——相当于把房间变成我的世界场景,每个小方块里存着"离表面有多远"。这块逻辑在Routines/DFGen/CADVoxelization.py里。

3D CNN 对应预测:玩一局"找同一处"

网络(Network/pytorch/ 下的 model.py)同时看"扫描裁剪块"和"候选 CAD",输出热图,指明扫描上的特征点对应到 CAD 的哪个位置——就像找茬游戏:给你一张实拍的椅子和一张理想化的椅模,让你指认靠背落在哪儿。训练样本正是这样的成对数据。

9DoF 姿态优化:推、转、缩放,推到严丝合缝

热图只告诉你"在哪儿"。网络还顺带预测语义匹配(这俩是不是同一类东西)和缩放比,剩下的交给优化求解器:平移 3 个方向、旋转 3 个方向、缩放 3 个方向,共 9 个参数一起解,把 CAD 又推又转又缩放,直到"卡"进扫描里。位姿运算基于 SE3 李群,代码在Routines/AlignmentHeatmap/

调参微调出效果 🎯

参数都是main.py的命令行参数,run.sh里那组就是推荐起点:

  • 训练太慢:先看--batch_size(8)和--n_threads(4);显存富余就把 batch_size 往上加。
  • 损失降不动:把--lr从默认 0.01 降到 0.001,官方脚本就是这么设的。
  • 负样本干扰大:保持--mask_neg 1;想让网络学语义判断开--with_match 1,想让它预测尺度开--with_scale 1
  • 体素化参数设置:扫描侧默认 3cm 体素、15cm 截断。想更细就调小体素,但体积和内存大致按分辨率的立方膨胀,显卡和硬盘扛得住再动。

卡住了怎么办

问:对齐结果偏了,怎么查?先看输入——裁剪块是不是完整、候选 CAD 和场景里的东西是否同类。再看输出目录里的predict-match.txt:如果是 0,说明网络自己就觉得"这俩不是一回事",问题在匹配而不是位姿。最后比对predict-scale.txtgt-scale.txt,差得远多半是数据或尺度学习的问题。

问:.vox / .df 文件打不开?Routines/Vox2Mesh/的工具转成网格:./main --in 文件.vox --out 文件.ply,再拖进 Meshlab 就能看到。

问:训练日志半天不更新?--interval_eval调小(run.sh 用的是 50),每 50 个迭代打印一次验证统计。

它能帮你做什么 📦

  • 开箱即用的数据Assets/scannet-sample(ScanNet 场景,网格 + 语义标签)、Assets/shapenet-sample(椅子、桌子、垃圾桶等模型)、Assets/training-data(训练样本对),拿它们就能把整条流水线跑通。
  • 公开评测:Scan2CAD 维护着 CAD 模型对齐的公开 benchmark,你的方法可以上去跟别人的比。
  • 能延伸的方向:改model.py的网络结构、调losses.py的损失权重,或者把Routines/Script/的数据管线搬到你自己扫的场景上——"体素化 → 生成对应 → 训热图 → 解 9DoF"这套流程换个场景照样成立。

一间屋子扫得好、家具库备得全,Scan2CAD 就能把"是哪个、在哪、多大"一次算清——这正是三维扫描转 CAD 这条路上很实用的一块起点。把仓库克隆下来,照着上面三步从示例数据跑一遍,你就知道它适合不适合你的场景了。

【免费下载链接】Scan2CAD[CVPR'19] Dataset and code used in the research project Scan2CAD: Learning CAD Model Alignment in RGB-D Scans项目地址: https://gitcode.com/gh_mirrors/sc/Scan2CAD

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

http://www.cnnetsun.cn/news/4196038.html

相关文章:

  • 软件测试面试核心考察维度与高频技术问题解析
  • 企业级Spring Boot库存管理系统管理系统源码|SpringBoot+Vue+MyBatis架构+MySQL数据库【完整版】
  • 集合排序和流排序
  • 【C++ 面试真题】29. 聊聊 C++ 的线程管理(std::thread)
  • 单片机毕设项目:基于 STM32/51 单片机的4 通道无线病房呼叫液晶显示与语音报警系统设计 主从架构 NRF24L01 病床呼叫终端软硬件设计(020204)
  • 7个我自己常用的学习网站
  • 开源地理空间智能项目中的本体思想 4-2:影像篇——影像不进图谱,图谱给影像当索引
  • 【自适应滤波实战】归一化最小均方 (NLMS) 自适应噪声对消全解析:原理推导 + 数值实例 + Python 代码实现
  • c语言的纸币找零问题
  • 全球贸易进入“高关税时代”:企业必须重新学习如何做全球生意
  • DeepSeek Harness + GLM-5.3 超详细实战教程:我拼了套自己的AI 工位,还自己开发插件!
  • 扫描件加文本层:OCRmyPDF 离线使用完整指南
  • 溶血磷脂酰胆碱 (LPC):脂质代谢关键毒性分子,云克隆 ELISA 试剂盒助力脂质组与炎症损伤科研检测
  • 压电定位平台为什么要闭环?开环误差、传感器基准与Python测试
  • 大二学生用myBuilder两周搭出完整ERP,面试官直接让他演示了一遍
  • 如何获得更快更私密的浏览体验:开源浏览器 Thorium 完整指南
  • DeepSeek Harness 极简模式跑 Terminal Bench,模型基准测试实操
  • KeyboardChatterBlocker 实战教程:按键调阈值,修掉机械键盘连击
  • 【单片机课设毕设项目】基于 51/STM32 单片机的红外人体感应防盗报警环境监控系统设计 基于 51/STM32 单片机的 LCD1602 显示环境感知智能安防系统设计(017504)
  • Python Web后端框架FastAPI vs Flask
  • 网络安全等保合规文档整理
  • 【 C++ 】AVL树
  • 从ChatiSS九种体质舌面诊参数解码中医AI的Token底盘逻辑
  • 评价类模型
  • 2026深度测评10款降AI率工具红黑榜!优缺点全曝光,达标率对标顶级水准
  • MAA明日方舟自动化助手:新手 5 分钟跑通全流程,把重复劳动交给它
  • 单片机毕设项目:融合温光人体检测的 STM32 智能晾衣架设计与开发 本地显示 + 远程 APP 监控 STM32 智能晾衣架系统研究(017204)
  • 团队一体化协同平台怎么选?多款协作工具能力客观记录
  • SAP Gateway Foundation OData V4 工具全景解析,从服务发布、Metadata Cache 到 Payload Trace 的完整排障链路
  • 8.22【A】