如何用 COLMAP 制作 Blender 格式的数据集

发布于:2025-08-15 ⋅ 阅读:(17) ⋅ 点赞:(0)

如何用 COLMAP 制作 Blender 格式的数据集并划分出 transforms_train.jsontransforms_val.jsontransforms_test.json


一、什么是 Blender 格式数据集?

Blender 格式数据集是 Nerf 和 Nerfstudio 常用的输入格式,其核心是包含了相机内外参的 JSON 文件,一般命名为:

  • transforms_train.json —— 训练用帧信息

  • transforms_val.json —— 验证用帧信息(可选)

  • transforms_test.json —— 测试用帧信息(可选)

每个 JSON 文件结构类似,包含以下关键信息:

  • camera_angle_x:相机水平方向视角(弧度)

  • frames:数组,每个元素代表一帧图像信息,包含图像路径和相机位姿矩阵(4x4变换矩阵)


二、如何用 COLMAP 生成 Blender 格式数据集

详细的可见:

用 COLMAP GUI 在 Windows 下一步步完成 相机位姿估计(SfM) 和 稀疏点云重建的详细步骤:-CSDN博客

1. 运行 COLMAP 稀疏重建(SfM)

  • 打开 COLMAP GUI

  • 新建项目,导入图片

  • 运行 Feature ExtractionFeature Matching

  • 运行 Sparse Reconstruction(SfM)

  • SfM 完成后,sparse/0/ 目录下会生成 cameras.txtimages.txtpoints3D.txt 三个文件

这些文本文件中包含相机内参(焦距、畸变等)、相机外参(旋转、平移)和三维点信息。

或者使用命令行完成以上步骤:

colmap feature_extractor --database_path database.db --image_path ./images
colmap exhaustive_matcher --database_path database.db
mkdir sparse
colmap mapper --database_path database.db --image_path ./images --output_path sparse

sparse/0 文件夹下会有 cameras.txt(内参),images.txt(位姿)和 points3D.txt


2. 解析 COLMAP 导出的文件,生成 Blender 格式的 JSON 文件

  • 内参信息一般在 cameras.txt 中:

    • 焦距 (focal length)

    • 主点 (cx, cy)

    • 图像尺寸(宽、高)

  • 外参images.txt 中:

    • 每张图的旋转四元数 + 平移向量

    • 需转换为 4x4 的相机变换矩阵(world-to-camera 或 camera-to-world)

COLMAP 坐标系是右手坐标系,Nerf / Blender 格式使用的坐标系和矩阵定义和 COLMAP 有差异,需要做转换:

  • COLMAP 的旋转是图像到世界坐标的变换(或者相反,需看具体定义)

  • Nerf 需要的是相机到世界(camera-to-world)4x4矩阵

  • 通常需要对旋转矩阵和位移向量做转置和坐标轴调整(比如 z 轴正方向)

生成的 transforms_train.json 结构示例:

{
    "camera_angle_x": 0.6911112070083618, // 水平视场角,单位弧度
    "frames": [
        {
            "file_path": "./train/r_0", // 图片相对路径(不带后缀)
            "rotation": 0.012566370614359171, <--- 额外字段,可能是额外角度信息
            "transform_matrix": [  // 4x4相机变换矩阵,表示从世界坐标到相机坐标的变换
                [
                    -0.9250140190124512,
                    0.2748899757862091,
                    -0.2622683644294739,
                    -1.0572376251220703
                ],
                [
                    -0.3799331784248352,
                    -0.6692678928375244,
             

网站公告

今日签到

点亮在社区的每一天
去签到