COLMAP输出的文件类型(bin, txt)

这篇具有很好参考价值的文章主要介绍了COLMAP输出的文件类型(bin, txt)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

默认情况下,COLMAP使用二进制文件格式(bin,机器可读,速度速)来存储稀疏模型。此外,COLMAP也可以将稀疏模型存储为文本文件(txt,人类可读,速度慢)。在这两种情况下,模型导出的信息被分为关于相机、图像和点云的三个文件。任何包含这三个文件的目录都构成了一个稀疏模型。二进制文件的扩展名是.bin,文本文件的扩展名是.txt。注意,当从包含二进制文件和文本文件的目录加载模型时,COLMAP更倾向于二进制格式。

参考网页:https://colmap.github.io/format.html

导出bin文件

要在GUI(可视化界面)中导出当前的模型,选择File > Export model,要导出当前数据集中的所有重建模型,选择File > Export all models,为bin文件。要想导入已经导出的模型,例如,为了可视化或恢复重建,选择File > Import model,并选择包含相机、图像和点云文件的文件夹。

colmap camera.txt,COLMAP,COLMAP,GUI,3D重建

此外,还可以将稀疏模型导出为其他格式,例如VisualSfM的NVM、Bundler文件、PLY、VRML等,使用File > Export model as....

colmap camera.txt,COLMAP,COLMAP,GUI,3D重建

导出txt文件

要在GUI导出文本格式,使用File > Export model as text导出模型。三个文本文件:camera .txt、images.txt和points3D.txt。注释以前导“#”字符开始。第一行注释简要描述了文本文件的格式。

cameras.txt

这个文件包含了数据集中所有重建相机的内参,每个相机占一行,例如:

# Camera list with one line of data per camera:
# 一行一个相机参数列表
#   CAMERA_ID, MODEL, WIDTH, HEIGHT, PARAMS[]
#   相机ID, 相机, 宽, 高, 参数[]
# Number of cameras: 3
1 SIMPLE_PINHOLE 3072 2304 2559.81 1536 1152
2 PINHOLE 3072 2304 2560.56 2560.56 1536 1152
3 SIMPLE_RADIAL 3072 2304 2559.69 1536 1152 -0.0218531

上述数据中,数据集包含 3 个相机,这些相机使用具有相同传感器尺寸(宽度:3072,高度:2304)的不同失真模型。 参数的长度是可变的,取决于相机型号。 对于第一个相机,有 3 个参数,单个焦距为2559.81像素,主点(即 cx,cy)位于像素位置(1536、1152)。相机的内参可以被多个图像共享,这些图像使用唯一标识符 CAMERA_ID 来指代相机。

如下:

colmap camera.txt,COLMAP,COLMAP,GUI,3D重建

images.txt

该文件包含数据集中所有重建图像的位姿和关键点,每个图像占两行,例如:

# Image list with two lines of data per image:
# 每张图像数据占两行
#   IMAGE_ID, QW, QX, QY, QZ, TX, TY, TZ, CAMERA_ID, NAME
#   图像ID, QW, QX, QY, QZ, TX, TY, TZ, 相机ID, NAME
#   POINTS2D[] as (X, Y, POINT3D_ID)
#   2D点坐标和对应3D点ID, 若没有对应的3D点则ID标记为-1
# Number of images: 2, mean observations per image: 2
1 0.851773 0.0165051 0.503764 -0.142941 -0.737434 1.02973 3.74354 1 P1180141.JPG
2362.39 248.498 58396 1784.7 268.254 59027 1784.7 268.254 -1
2 0.851773 0.0165051 0.503764 -0.142941 -0.737434 1.02973 3.74354 1 P1180142.JPG
1190.83 663.957 23056 1258.77 640.354 59070

这里,前两行定义了第一张图片的信息,以此类推。使用四元数 (QW, QX, QY, QZ) 和平移向量 (TX, TY, TZ) 将图像的重建位姿指定为从世界到图像的相机坐标系的投影。四元数是使用 Hamilton 约定定义的,例如,Eigen 库也使用该约定。投影/相机中心的坐标由 -R^t * T 给出,其中 R^t 是由四元数组成的 3x3 旋转矩阵的逆/转置,T 是平移向量。从图像上看,图像的局部相机坐标系定义为 X 轴指向右侧,Y 轴指向底部,Z 轴指向前方。

上面示例中的两个图像都使用相同的相机模型并共享内参 (CAMERA_ID = 1)。映像名称与项目的选定基础映像文件夹相关。第一个图像有 3 个关键点,第二个图像有 2 个关键点,而关键点的位置由像素坐标指定。两幅图像都观察到 2 个 3D 点,并注意第一张图像的最后一个关键点在重建中没有观察到 3D 点,因此 3D 点标识符为 -1。

如下:

colmap camera.txt,COLMAP,COLMAP,GUI,3D重建

发现导出的 txt 和示例不一样,找不到第二张图片的信息,苦恼很久,才醒悟是关键点信息太多了,解决办法如下:

COLMAP导出相机外参(bin文件转txt文件)

points3D.txt

该文件包含数据集中所有重建的3D点的信息,每个点占一行,例如:

#   3D point list with one line of data per point:
#   每个点占一行
#   POINT3D_ID, X, Y, Z, R, G, B, ERROR, TRACK[] as (IMAGE_ID, POINT2D_IDX)
#   POINT3D_ID:三维点的id (二维点可以根据此id找到图片对应的三维点) 
#   X, Y, Z:三维点坐标
#   R, G, B:三维点颜色信息
#   ERROR:投影误差(基于像素)
# Number of points: 3, mean track length: 3.3334
63390 1.67241 0.292931 0.609726 115 121 122 1.33927 16 6542 15 7345 6 6714 14 7227
63376 2.01848 0.108877 -0.0260841 102 209 250 1.73449 16 6519 15 7322 14 7212 8 3991
63371 1.71102 0.28566 0.53475 245 251 249 0.612829 118 4140 117 4473

这里有三个重建的 3D 点,其中TRACK[] as (IMAGE_ID, POINT2D_IDX):对应images.txt里的图像id,POINT2D_IDX 定义了 images.txt 文件中关键点的从零开始的索引。比如说上面:16 6542,意思是images.txt中图片ID为16的里面的第6542个点,这个点是该图的特征点,也映射到这个三维点。误差以重投影误差的像素为单位,仅在全局BA后更新。

如下:

colmap camera.txt,COLMAP,COLMAP,GUI,3D重建文章来源地址https://www.toymoban.com/news/detail-784397.html

到了这里,关于COLMAP输出的文件类型(bin, txt)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 三维重建-colmap基本原理

    源码: colmap中的pose是 world to camera,满足: Pc = R * Pw + T colmap坐标系: 补充代码实现: colmap主要相机模型: 径向畸变:一般是有镜头的形变误差导致的。一般分为 枕形畸变和桶形畸变。 切向畸变:又称为偏心畸变。 一般无人机视频选择径向畸变模型(simple Radial)就可以了

    2024年02月13日
    浏览(52)
  • Linux 编译安装colmap

            COLMAP可以作为独立的app,通过命令行或者图形交互界面使用,也可以作为一个库被包含到其他源代码中。         这里记录一下编译安装colmap的过程,首先需要安装好CUDA,CUDA具体安装过程这里就不赘述了。在GitHub上下载源代码,我这里就是下载的主干的源码

    2024年01月25日
    浏览(35)
  • colmap 初体验🫠🎶

    安装:Installation — COLMAP 3.9-dev documentation 使用:Tutorial — COLMAP 3.9-dev documentation 下载一个小猫的RGB数据集 THU-MVS: Multi-View 3D Reconstruction Datasets 创建 project_cat 文件夹,把图片放 project_cat/images 下 运行 COLMAP.bat 启动程序,官方文档中有一些实用的操作说明:Graphical User Interface —

    2024年02月08日
    浏览(45)
  • Colmap 实用教程 —— 整体介绍

    https://colmap.github.io/index.html 获取丰富纹理的图像。避免完全无纹理的区域,比如白墙和空的桌子。如果物体本身没有足够的背景,可以考虑增加待纹理的背景。 图像的光照条件尽可能保持一致。避免高的动态范围,比如逆光图片或者透过门窗的图片。同时避免有光泽的表面的

    2024年02月11日
    浏览(94)
  • colmap的使用简介

    colmap的三维重建使用简介,首先colmap的安装传送门在我另一篇中有记录。 本篇记录一下使用方法。 首先是数据集问题,可以下载自己想试着重建的数据集保存。 通过 colmap -h 和 colmap gui 打开colmap的界面。 首先点击file新建项目 “New Project” ,弹出窗口,首先建立database,命名

    2024年02月05日
    浏览(62)
  • linux下colmap的安装

    如果是仅仅为了安装colmap可以这样安装ceres Ceres的完整安装过程如下 ①安装需要的所有依赖 ②编译安装Ceres 执行 cmake .. 指令的时候出现报错,解决方案如下: 注意:第一次运行时可能会出现以下报错 此时,只需要在终端执行命令即可解决问题: 参考链接:colmap安装与实践

    2024年02月04日
    浏览(32)
  • Colmap在Linux下的安装

    在用Gaussian splatting时,要先装colmap才能做一些预处理。 以下是我这的安装过程记录,可能不一定适合其他人,但是仔细查查肯定能解决~ 我的环境:         系统:Ubuntu 22.04         cuda版本:11.8,显卡是4090 1、先安装一堆依赖库         过程没出现啥问题。如果有问题那

    2024年03月11日
    浏览(46)
  • COLMAP中将旋转矩阵转为四元数的实现

          instant-ngp中执行scripts/colmap2nerf.py时,在colmap_text目录下会生成cameras.txt、images.txt、points3D.txt三个文件:       1.cameras.txt:       (1).该文件包含数据集中所有重构相机(all reconstructed cameras)的内在参数(intrinsic parameters),每个相机占用一行;       (2).参数的长度是可变的,

    2024年02月07日
    浏览(30)
  • cmake/vcpkg x64-windows colmap安装/编译

            colmap是增量式sfm开源软件。相比于之前的sfm工作,colmap在选择最优初始图,选择最优更新图,三角化,BA,和迭代方面都有策略上的更新。本博文介绍其安装/编译方法。博主是先安装跑了下功能,再编译以阅读源码。         安装的软件是封装好的,无法看到源代码

    2024年02月08日
    浏览(46)
  • ubuntu20.04环境下安装运行Colmap+OpenMVS

      我创作这篇博客的初衷是因为我在ubuntu20.04环境下跑Colmap+OpenMVS这个算法框架的时候踩了很多坑,一方面是网上现在很多教程都是基于Windows环境下的,而Windows环境和Linux环境相比还是有很大的差异的;二是现在网上的很多教程基本很多步骤一带而过了,而往往这些一带而过

    2024年03月09日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包