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

从零开始跑通3DGS教程:(一)数据(采集)

写在前面

  • 本文内容
    本文所属《从零开始跑通3DGS教程》系列文章;
    本文介绍数据准备或者采集准备方式

  • 平台/环境
    linux, nvidia GPU, docker

  • 转载请注明出处:
    https://blog.csdn.net/qq_41102371/article/details/146533367

目录

  • 写在前面
  • 系列文章
  • 公开数据
  • 自己的数据
  • 参考

系列文章

  • 介绍
    从零开始跑通3DGS教程:介绍

  • 数据(采集):
    从零开始跑通3DGS教程:(一)数据(采集)

  • SFM(colmap)计算初始点云和相机pose:
    从零开始跑通3DGS教程:(二)SFM(colmap)计算初始点云和相机pose
    该步骤将通过structure from motion算法,计算出每张图像的pose,以及整个场景和目标的稀疏点云

  • 坐标系与尺度编辑(CloudCompare):
    从零开始跑通3DGS教程:(三)坐标系与尺度编辑(CloudCompare)

  • 3DGS训练:
    从零开始跑通3DGS教程:(四)3DGS训练

  • Gaussian Model编辑与渲染:
    从零开始跑通3DGS教程:(五)Gaussian Model编辑与渲染

公开数据

下载官方给出的公开数据集
https://github.com/graphdeco-inria/gaussian-splatting?tab=readme-ov-file
在这里插入图片描述

将解压后的truck/images复制到YOUR_PATH/3dgs_tutorial/pro/truck/images在这里插入图片描述

在这里插入图片描述

自己的数据

使用手机或者相机采集视频,然后对视频进行抽帧,建议保留3-5帧/s即可。比如原始视频30fps,抽成3fps,那么就抽1/10,下面是抽帧的代码

import os
import cv2

video_path = "xxx/my_video.mp4"
print(video_path)
dir_save = "YOUR_PATH/3dgs_tutorial/pro/my_video/images"
if not os.path.exists(dir_save):
    os.makedirs(dir_save)
    
cap = cv2.VideoCapture(video_path)

if not cap.isOpened():
    print("Error: Could not open video.")
    exit()

frame_count = 0
save_count = 0

# read each frame
while True:
    ret, frame = cap.read()
    if not ret:
        print("Done extracting frames. End of video.")
        break
    if frame_count % 10 != 0:
        frame_count += 1
        continue

    # save frame
    cv2.imwrite(f"{dir_save}/{save_count}.jpg", frame)
    print(f"saved {save_count}")
    frame_count += 1
    save_count += 1

# release the VideoCapture object
cap.release()

参考

文中已列出

主要做激光/影像三维重建,3DGS,配准、分割等常用点云算法,熟悉open3d、pcl等开源点云库,技术交流、咨询可私信


http://www.kler.cn/a/613814.html

相关文章:

  • 群体智能优化算法-蜂鸟优化算法(Artificial Hummingbird Algorithm, AHA, 含Matlab源代码)
  • EF Core 乐观并发控制(并发令牌)
  • Vue学习笔记集--postcss-px-to-viewport
  • 性能比拼: Rust vs C++
  • 从泛读到精读:合合信息文档解析如何让大模型更懂复杂文档
  • SQLModel笔记
  • 视图、MySQL、触发器、存储过程、流程控制语句
  • 免去繁琐的手动埋点,Gin 框架可观测性最佳实践
  • SpringBoot 面试八股文
  • 【Pytorch实战教程】with torch.no_grad():
  • 【ArcGIS】ArcGIS10.6彻底卸载和ArcGIS10.2安装全过程
  • git push的时候出现无法访问的解决
  • Flink TaskManager之间数据传输(NetworkManager)
  • 服务器硬盘出现故障都有哪些解决方法?
  • Redis中的数据类型与适用场景
  • MATLAB 控制系统设计与仿真 - 31
  • NFC 碰一碰发视频的短视频剪辑功能源码技术开发
  • 编程技术水平横向和垂直发展的抉择全方位分析
  • 【HTML】验证与调试工具
  • 前端性能优化思路_场景题