news 2026/1/18 11:06:19

【视觉多模态】- 3D建模尝试 III(室内静态多视角,建模成功)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【视觉多模态】- 3D建模尝试 III(室内静态多视角,建模成功)

【视觉多模态】- 3D建模尝试 III(室内静态多视角,建模成功)

  • 背景
  • 新数据新尝试【静态多视角静态室内】
  • 室内3D重建

背景

3D建模一直没成功,试过很多回,静态多视角动态广场、动态多视角静态房间,试过多回,修改参数尝试,都建模失败,基本败在稀疏点云构建环节,所给的图要找出2张特征能匹配对应上的都难,并因此失败。
因此,猜测:

  1. 静态多视角动态广场的失败,猜测主要是图与图之间有很多人在动导致特征在变化,进行了黑色遮罩后每张图留下的特征太少,也很难匹配上,试过用于建模的图像张数:6、10、50、100、200,均建模失败,于是放弃用这个数据集进行3D建模;
  2. 动态多视角静态房间的失败,猜测是视角间重叠度太低、焦点差异显著,而且可用的图很有限,导致图之间特征匹配失败,而稀疏点云建立失败,于是放弃用这个数据集进行3D建模;

新数据新尝试【静态多视角静态室内】

  1. Panoptic Studio(最佳选择)
    配置:120 路同步摄像头(54 个 RGB+66 个深度),环形分布,360° 覆盖
    重叠率:相邻摄像头重叠 > 80%,任意两帧间重叠 > 90%(静态设计 + 同步采集)
    适用场景:室内动态 / 静态场景、人体 3D 重建、多视角融合
    获取方式:https://panoptic.stanford.edu/(需申请)
    Panoptic Studio:多路静态相机 + 极高重叠 + 同步采集,适合验证多路摄像头重建方案;
    斯坦福大学的数据集看起来非常贴合,但需要申请,想想算了。
  2. Replay Dataset(全称:Replay: A Dataset of Synchronized Multi-View Videos for Social Interaction Analysis),由 Meta(原 Facebook)人工智能研究院(FAIR)发布。
    官方主页链接:https://replay-dataset.github.io/

    数据链接:
    {
    “full”: {
    “metadata”: [
    “https://dl.fbaipublicfiles.com/replay/v0/metadata.zip”
    ],
    “videos”: [
    “https://dl.fbaipublicfiles.com/replay/v0/videos_SC-1001-1007.zip”,
    “https://dl.fbaipublicfiles.com/replay/v0/videos_SC-1008-1018.zip”,
    “https://dl.fbaipublicfiles.com/replay/v0/videos_SC-1019-1028.zip”,
    “https://dl.fbaipublicfiles.com/replay/v0/videos_SC-1032-1044.zip”,
    “https://dl.fbaipublicfiles.com/replay/v0/videos_SC-1045-1052.zip”,
    “https://dl.fbaipublicfiles.com/replay/v0/videos_SC-1053-1071.zip”,
    “https://dl.fbaipublicfiles.com/replay/v0/videos_SC-1073-1079.zip”,
    “https://dl.fbaipublicfiles.com/replay/v0/videos_SC-1081-1091.zip”,
    “https://dl.fbaipublicfiles.com/replay/v0/videos_SC-1092-1104.zip”,
    “https://dl.fbaipublicfiles.com/replay/v0/videos_SC-1105-1109.zip”
    ],
    “masks”: [
    “https://dl.fbaipublicfiles.com/replay/v0/mask_videos_SC-1001-1109.zip”
    ],
    “audio”: [
    “https://dl.fbaipublicfiles.com/replay/v0/audio_SC-1001-1109.zip”
    ]
    }
    }
    我只下载了:https://dl.fbaipublicfiles.com/replay/v0/videos_SC-1001-1007.zip,是录像。包含现场11台不同机位的动、静态相机的2分多钟视频。

    有一个围绕转动的相机(G3)中的场景前64秒机位在动,场景内的人物、物件不动。非常吻合建模需求(只要我等时间隔截取帧,就相当于静态多视角静态室内,对于3D建模非常理想,当然,当时只是猜测)
    于是我进行间隔1秒的帧截取,获取64帧图像(相当于64个重叠度极高的不同视角):

    于是得到3D建模用的纯图。

室内3D重建

进行如下流程的建模过程:

# ========== 步骤1:稀疏重建(基础位姿与特征) ==========# 1. 创建COLMAP数据库colmap database_creator --database_path database.db# 2. 特征提取(GPU/CPU兼容,无GUI环境适配)exportQT_QPA_PLATFORM=offscreen xvfb-run colmap feature_extractor --database_path database.db --image_path /data1/projs/airport_human_trail/selected_masked_images --SiftExtraction.use_gpu0# 3. 特征匹配(穷尽匹配,控制匹配数提升精度)colmap exhaustive_matcher --database_path database.db --SiftMatching.use_gpu0--SiftMatching.max_num_matches4# 4. 三角化生成稀疏点云colmap point_triangulator --database_path database.db --image_path selected_masked_images --input_path colmap_sparse/0 --output_path ./colmap_sparse/triangulated# ========== 步骤2:稠密重建(生成深度图+稠密点云) ==========# 1. 图像去畸变(校正镜头畸变)colmap image_undistorter --image_path /data1/datas/videos_SC-1001-1007/extracted_frames_SC-1001_GOPRO-3 --input_path sparse/0 --output_path dense --output_type COLMAP# 2. PatchMatch立体匹配(生成深度图,几何一致性校验)colmap patch_match_stereo --workspace_path dense --workspace_format COLMAP --PatchMatchStereo.geom_consistencytrue--PatchMatchStereo.filtertrue--PatchMatchStereo.num_samples15--PatchMatchStereo.max_image_size2000--PatchMatchStereo.num_iterations5# 3. 立体融合生成稠密点云colmap stereo_fusion --workspace_path dense --workspace_format COLMAP --input_type geometric --output_path dense/fused.ply --StereoFusion.min_num_pixels=3--StereoFusion.max_reproj_error=4# ========== 步骤3:表面重建(点云→3D网格模型) ==========colmap poisson_mesher --input_path dense/fused.ply --output_path dense/meshed-poisson.ply

得到如下结果:


截止当前为止的首次成功,效果确实不好,但可以逐步尝试优化一下。

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

四层PCB板设计

在 Altium Designer 的 Layer Stack Manager 中,这几个概念的区别和设置方式如下: 一、Add Layer vs Add Internal Plane 功能 Add Layer Add Internal Plane 层类型 添加信号层(Signal Layer) 添加内部电源 / 地平面层(Power/Ground Plane) 用途 用于走信号线(如 Top …

作者头像 李华
网站建设 2026/1/11 21:59:23

bss段、data段、text段、heap堆、stack栈的基本概念

1. bss段bss段(bss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域。bss是英文Block Started by Symbol的简称。bss段属于静态内存分配。2. data段数据段(data segment)通常是指用来存放程序中已初始化的全局变…

作者头像 李华
网站建设 2026/1/15 1:42:52

基于STM32单片机的智能窗帘/晾衣架控制系统 物联网无线控制 蓝牙WIFI传输 定时开关 光线采集 雨滴感应 防盗报警成品套件 DIY设计 实物+源程序+原理图+仿真+其它资料(832-4/5/6)

本人从事毕业论文设计辅导10余载,撰写的毕业论文超2000余篇,为广大的应届毕业生节省了大量的设计和撰写时间。在单片机领域,参与设计51系列、STM32系列、Proteus仿真、JAVA上位机、Android Studio、物联网无线通信等千余套项目,具…

作者头像 李华
网站建设 2026/1/13 0:25:05

并发编程中的CAS机制:原理、实现与应用剖析

在并发编程领域,确保线程安全通常首先会联想到加锁机制,如synchronized或ReentrantLock。虽然加锁是直观且广泛采用的方案,但在高并发场景下,锁带来的性能开销——如上下文切换、内核态切换及线程阻塞——可能成为系统瓶颈。为此&…

作者头像 李华
网站建设 2026/1/13 5:13:36

把设备参数翻译成老板听得懂的“利润语言”

制造业销售常常会犯一个错误:对工厂老板大谈“主轴转速12000rpm”“定位精度0.003mm”“支持五轴联动”……老板表面上点点头,心里却在想:“这跟我赚不赚钱有什么关系?”技术参数是工程师的语言,而利润才是老板的母语&#xff0c…

作者头像 李华