colmap的几种相机类型和内外参取得方法

Colmap三维重建详解与使用方法 在重建场景的稀疏表示和输入图像的相机姿势后,MVS现在可以恢复更密集的场景几何。:空间中的一点与两张图片相机的光心,三者围成一个极平面,极平面与两张图片相交形成两条极线,对极几何约束是指,空间点X在摄像机1的成像平面中的像素点x,与之相匹配的摄像机2的成像平面中的像素点 x' 一定落在极线上。是通过一系列有重叠的且不同视角的图片重建出物体的三维结构(稀疏点云),并且输出相机的内外参数,内参指的是将真实空间的三维点通过内参矩阵转换为相机图片上的二维点,外参包含相机在切换不同视角时的平移和旋转信息。 阅读详情
AI摘要

本文介绍了COLMAP中的几种相机模型,包括SimplePinhole和Pinhole等,并详细解释了如何从images.bin和cameras.bin文件中读取内外参数。此外还提供了具体的Python代码示例。

colmap的相机类型可以参考models.h文件。

主要有以下几种相机类型:

SimplePinhole:
内参格式:f, cx, cy
实际用的时候:fx=fy=f

在这里插入图片描述
Pinhole:
内参格式:fx, fy, cx, cy

在这里插入图片描述
其他可以自行查看models.h文件。

内参存放在images.bin, 外参存放在cameras.bin中

def read_colmap(path):
    try:
        cameras_extrinsic_file = os.path.join(path, "sparse/0", "images.bin")
        cameras_intrinsic_file = os.path.join(path, "sparse/0", "cameras.bin")
        cam_extrinsics = read_extrinsics_binary(cameras_extrinsic_file)
        cam_intrinsics = read_intrinsics_binary(cameras_intrinsic_file)
    except:
        cameras_extrinsic_file = os.path.join(path, "sparse/0", "images.txt")
        cameras_intrinsic_file = os.path.join(path, "sparse/0", "cameras.txt")
        cam_extrinsics = read_extrinsics_text(cameras_extrinsic_file)
        cam_intrinsics = read_intrinsics_text(cameras_intrinsic_file)

extr = cam_extrinsics[key]
intr = cam_intrinsics[extr.camera_id]

R = qvec2rotmat(extr.qvec)
t = np.array(extr.tvec)

#world to camera
T = np.zeros((4, 4))
T[:3, :3] = R
T[:3, 3] = t
T[3, 3] = 1.0

def qvec2rotmat(qvec):
    return np.array([
        [1 - 2 * qvec[2]**2 - 2 * qvec[3]**2,
         2 * qvec[1] * qvec[2] - 2 * qvec[0] * qvec[3],
         2 * qvec[3] * qvec[1] + 2 * qvec[0] * qvec[2]],
        [2 * qvec[1] * qvec[2] + 2 * qvec[0] * qvec[3],
         1 - 2 * qvec[1]**2 - 2 * qvec[3]**2,
         2 * qvec[2] * qvec[3] - 2 * qvec[0] * qvec[1]],
        [2 * qvec[3] * qvec[1] - 2 * qvec[0] * qvec[2],
         2 * qvec[2] * qvec[3] + 2 * qvec[0] * qvec[1],
         1 - 2 * qvec[1]**2 - 2 * qvec[2]**2]])

如果是SimplePinhole,
那么,fx = fy = intr[0], cx = intr[1], cy = intr[2]
其他类推。

Colmap 实用教程 —— 整体介绍 Colmap 实用教程 阅读详情

相关推荐

【colmap】超详细,基于colmap的多视图三维重建实验

点击File->New project后,点击database行的“New”新建一个数据库文件,放在Project1文件夹下,后点击“select”->images文件夹->save即可。点击Processing—>Feature Extraction进行特征提取,默认参数即可,完成后直接关闭即可。Poisson-Rec的输入是带有法向量属性的点云数据(也可以有RGB信息),输出是三角网格模型。2)也会和泊松重建一样,提示你去meshlab看模型,在meshlab打开这个模型就可以看见啦。

m0_62911750的博客 1万+

colmap配置与使用

colmap的配置和使用,作为传统算法的一个baseline,和深度学习算法进行对比。同时为MVSNet提供相机外参、内参等信息

zhingzt的博客 1万+

COLMAP利用已知相机内外参重建NeRF的blender模型

本文的目的是根据已知相机内外参数的blender模型,使用colmap进行稀疏重建和稠密重建。

zParquet的博客 1万+

使用COLMAP进行三维重构

根据运动视频或图像进行三维重构

jiankangyq的博客 1万+

Colmap根据相机内外参数重建稀疏模型

Colmap根据相机内外参数重建稀疏模型1.创建稀疏模型工作文件夹2.命令行执行稀疏重建2.1提取图像特征点2.2手动导入相机内参2.3特征匹配2.4三角测量 官方文档:https://colmap.github.io/faq.html#reconstruct-sparse-dense-model-from-known-camera-poses 参考博客: http://www.mamicode.com/info-detail-2838274.html 1.创建稀疏模型工作文件夹    

m0_47677188的博客 7048

COLMAP稀疏重建得图像内外参文件

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 系列文章目录 前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的

weixin_45880331的博客 4270

已知相机内外参通过COLMAP进行稀疏/稠密模型重建操作过程

已知相机内外参通过COLMAP进行稀疏/稠密模型重建操作过程

网络资源是无限的 7926

COLMAP简明教程 重建 转化深度图 导出相机参数 导入相机参数 命令行

COLMAP简明教程 导入指定参数 命令行 导出深度图

BigYouYou 1万+

colmap导出相机内参/外参

后者images.txt里包含了相机外参,注释写的很清楚,包含了外参中的旋转矩阵R代表的四元数和平移向量T的三个分量。这里很好理解的是前面几个参数"1 OPENCV 1280 720 "分别代表了 CAMERA_ID, MODEL, WIDTH, HEIGHT。后面的参数"1249.43 519.15 640 360"分别代表了内参矩阵中的fx,fy,cx,cy。找到头文件,根据下面的源码地址可以看出实际上这四个数字对应了k1, k2, p1, p2。我们重点来看cameras.txt里的相机内参。

jiangqixing0728的博客 4154

实验笔记之——基于COLMAP的Instant-NGP与3D Gaussian Splatting的对比

之前博客进行了COLMAP在服务器下的测试实验笔记之——Linux实现COLMAP-优快云博客学习笔记之——NeRF SLAM(基于神经辐射场的SLAM)-优快云博客NeRF 所做的任务是 Novel View Synthesis(新视角合成),即在若干已知视角下对场景进行一系列的观测(相机内外参、图像、Pose 等),合成任意新视角下的图像。传统方法中,通常这一任务采用三维重建再渲染的方式实现,NeRF 希望不进行显式的三维重建过程,仅根据内外参直接得到新视角渲染的图像。

gwpscut的博客 1万+

COLMAP生成MVSNet数据集

COLMAP生成MVSNet数据集

qq_43307074的博客 5635

关于colmap+nerf对数据集进行预处理的使用总结

零零碎碎的东西太多,有必要统一记录一下,因为是回忆步骤,所以可能有不准确的地方。

weixin_47343723的博客 6782

COLMAP学习使用笔记

基于Python脚本的database创建 可用于构建带有已知的相机内外参数的database,而不需要在gui界面手动修改参数,具体参考COLMAP官方文档。 由上述文档知,除了使用GUI界面,可以使用 COLMAP build 版本中的colmap\scripts\python\database.py手动创建database文件。 使用时注意,database.py文件中给出了example_usage()函数作为使用示范,可以自行从外部添加图像、相机特征点、匹配点、等信息。 使用方法为: pytho

Ocean_waver的博客 6595

自己安装使用colmap

colmap官方文档:https://colmap.github.io/colmap官方文档installation部分翻译【COLMAP官方文档翻译】Tutorialutm_id=0可以看出,colmap也是走的先估计深度图,再对深度图做融合的路线,所以最后一步是点击fusion,对深度图做融合。从这看,colmap好像也有二进制版的,直接下载使用,不用编译,而且是在windows上。下面操作主要参考这篇博客。可以选择下载预编译的二进制文件或手动构建源代码。

自主无人机 PX4 ROS SLAM 路径规划 MVS等技术分享 4113

初识colmap

COLMAP是一款开源的计算机视觉软件,主要用于从一系列二维图像中进行三维重建。它全称为“COLLISION-MAPping”,是一个高度集成的Structure-from-Motion (SfM) 和 Multi-View Stereo (MVS) 管道工具,由斯坦福大学开发和维护。COLMAP的主要功能包括特征检测与匹配、增量式SfM、多视图立体匹配以及优化。它能够从无序或有序的二维照片集合中恢复出三维场景的几何结构(点云)以及每张图像对应的相机姿态。

Hhsjehejj的博客 5547

Colmap 的安装与使用

一. COLMAP 安装 报错记录 qt.qpa.xcb: could not connect to display. nvcc fatal : Unsupported gpu architecture 'compute_native' 二. 数据准备 三. COLMAP 使用

m0_51976564的博客 6069

相机内外参 学习

内参描述相机自身成像属性,通常包括fxfycxcy,也可能包括 skew 和畸变参数。外参描述相机和世界坐标系之间的刚体变换,通常由旋转R和平移t组成。畸变是镜头导致的非理想成像,常见有径向和切向畸变。多视角重建和 3DGS 需要图像和投影模型一致,因此通常要正确建模或去畸变。

m0_67735352的博客 354

MPC-CBF 控制原理详解

假设系统满足如下离散时间动力学模型xt1fxtutxt∈Xut∈Uxt1​fxt​ut​xt​∈Xut​∈Uxtx_txt​:状态变量,定义域为可行状态集X⊆RnX⊆Rnutu_tut​:控制输入,定义域为控制约束集U⊆RmU⊆Rm系统需满足安全约束,由如下控制障碍函数(CBF)hX→RhX→RCx∈X∣hx≥0C:=x∈X∣hx≥。

m0_54691290的博客 1178

colmap利用已知的相机内外参数重建场景

colmap 一系列琐碎知识积累

CSS360的博客 2083

Navicat16/17数据库密码安全解析与实战解密指南

本文详细解析了Navicat 16/17版本中数据库密码的加密机制,并提供了实用的密码找回指南。通过导出连接文件获取加密密文,利用基于AES-128-CBC算法的本地HTML工具,可安全、离线地解密遗忘的密码。文章强调该方法仅适用于合法恢复自有密码,并给出了操作步骤与安全建议。

weixin_28835583的博客 460

CANoe UDS $27服务DLL生成实战:从工程配置到算法修改全流程

本文详细介绍了在Vector CANoe中为UDS(统一诊断服务)的$27安全访问服务生成定制化DLL(动态链接库)的全流程。从定位官方参考工程、配置Visual Studio开发环境,到深入解析核心的GenerateKeyEx函数接口,并重点演示了如何修改和实现自定义的种子-密钥安全算法,最终完成DLL的编译、部署与CANoe集成测试,为汽车电子诊断开发提供实战指导。

star5的专栏 534
上一篇: torch tensor调用detach时出现RuntimeError: CUDA error: an illegal memory access was encountered解决
下一篇: 自己写一个mask标注工具吧(SAM标注+微调功能)
蓝羽飞鸟
博客等级 码龄8年 1万+粉丝 727原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蓝羽飞鸟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值