基于视觉重定位的室内AR导航APP的大创项目思路(3)手机相机内参数据获取和相机标定

2023-11-11


前情提要:

是第一次做项目的小白,文章内的资料介绍如有错误,请多包含!


相机内参

相机内参是本身的物理数据,包括焦距f和缩放c,一般以矩阵K的形式存放和使用
在这里插入图片描述

为什么要获取相机的内参数据:

1.相机的内参数据在建图的时候就需要使用,SLAM中需要根据相机内参数据结合传入的图像数据等进行建图,不然无法根据2D图像建立三维点云地图。

如果使用的是SFM技术构建三维点云地图,运动结构恢复,就无相机内参数据

2.在进行视觉重定位的时候,无论是几何方法还是图像检索方法,都需要当前传入输入数据的相机的内参来进一步计算得出当前的位姿信息。

因此,获取当前相机的内参数据是必不可少的。

如果不了解什么是几何方法或是图像检索方法,可以看看这篇文章:基于视觉重定位的室内AR导航APP的大创项目思路(2):改进的项目思路——建图和定位分离

由于项目的预期搭配设备是手机,因此需要解决的问题变为了如何获取手机相机的内参数据。

获取相机内存数据的方法

棋盘格标定

目前主流的获取相机内参数据的方法是:使用棋盘格进行相机标定(张正友棋盘格标定法)。

但是对于这个项目来说,这个方法是无法在项目的全部流程中使用的。

你可以在建图时使用这个标定方法获取建图时的手机的相机内参,但是在定位导航时,你是无法要求用户在使用一个app的时候,还要专门购买一个标定板进行相机标定的。

项目思路2中提到了建图和定位分离的思想,因此我们并非要完全舍弃标定板标定,而是只在建图时使用这种方法,定位导航时另寻他法。

自动相机标定

使用棋盘格标定获取的相机内参数据是较为准确的,要不是别无选择,使用这种准确的数据进行相机重定位是最好的。

项目思路1中,我提到过使用过一个ORB-SLAM3的安卓端移植APP,这个APP在进行建图的时候是无需进行相机标定的。

那么必然存在一种或是多种无需进行标定板标定就能获取相机内参数据的方法,尽管数据可能不如使用标定板进行相机标定那么准确。

在经过一系列的搜寻和确定后,目标的关键词变为了:自动相机标定

而自动相机标定的方法有很多种,后文展开再讲


未完待续

如果你觉得这篇文章写的不错,多多点赞~收藏吧!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于视觉重定位的室内AR导航APP的大创项目思路(3)手机相机内参数据获取和相机标定 的相关文章

  • angular : 自定义组件双向绑定 [(ngModel)]

    NG VALUE ACCESSOR 用于为表单控件提供 ControlValueAccessor interface ControlValueAccessor writeValue obj any void registerOnChange
  • Java进阶9--多线程

    Java进阶9 多线程 文章目录 Java进阶9 多线程 概述 一个线程的生命周期 线程的优先级 创建一个线程 通过实现 Runnable 接口来创建线程 通过继承Thread来创建线程 Thread 方法 实例 通过 Callable 和
  • next.js 源码解析 - getStaticProps、getStaticPaths 篇

    好久前写了关于 getStaticProps 和 getStaticPaths 的内容 然而半年过去了源码解析就一直忘记了 不久前有人提醒才想起来 补下坑 本文主要是解读下 getStaticProps getStaticPaths 相关的

随机推荐

  • 基于主成分分析(PCA)的人脸识别算法

    本次实战的所有数据 文献 代码及输出均在以下百度云链接 链接 https pan baidu com s 1tR3VCyHxL7EZx su 3mxNg 提取码 siso 1 要求 实战的数据及要求如下 用到的数据库为XM2VTS中的前20
  • 二进制转换为三进制 ——C++实现

    二进制转换为三进制 题目 输入一个2进制的数 要求输出该2进制数的3进制表示 在3进制的表示中 只有0 1 2三种符号 Input 第1行是测试数据的组数n 后面跟着n行输入 每组测试数据占1行 包括一个以0和1组成的字符串 字符串长度至少
  • 简单的用Python采集招聘数据内容,并做可视化分析!

    哈喽大家好 现在刚毕业 很多小伙伴因为找不到工作或者找了很多也不喜欢 再有懒一点的 太热了根本不想出门到处找 所以今天给大家分享使用Python批量采集招聘数据 进行可视化分析 轻松找到心仪工作 话不多说 我们直接开始 准备工作 软件工具
  • linux 卸载 rtx,在Ubuntu 18.04系统中安装RTX 2080Ti显卡驱动的方法

    在Ubuntu 18 04操作系统中使用GeForce RTX 2080Ti显卡 但是系统内置的驱动与PPA安装都不行 需要安装NVidia官方的驱动才能运行起来 下面是实现的方法 1 先禁用Ubuntu 18 04系统默认显卡驱动 打开系
  • ECM麦克风电路元器件计算

    ECM麦克风电路元器件设计 一 计算Micbias 偏置电阻R R 偏置电压 micbias电压 静态电流 1 偏置电阻计算案例 供电2V ECM麦克风电流500uA 偏置电阻取值 设置合适的偏置电阻 麦克风实现最大输出 需麦克风两端电压是
  • Multisim14基本介绍(上)

    Multisim14是一种专门用于电路仿真和设计的软件之一 是NI公司下属的ElectroNIcs Workbench Group推出的以Windows为基础的仿真工具 是目前最为流行的EDA软件之一 该软件基于PC平台 采用图形操作界面虚
  • ValueError: Input contains NaN, infinity or a value too large for dtype('float64').

    笔者在使用LogisticRegression模型进行预测时 报错 Traceback most recent call last File D 软件 学习 Python MachineLearing taitannike train py
  • Linux Docker容器 镜像的详解与创建

    一 什么是docker 镜像 就是把业务代码 可运行环境进行整体的打包 二 如何创建docker镜像 现在docker官方共有仓库里面有大量的镜像 所以最基础的镜像 我们可以在公有仓库直接拉取 因为这些镜像都是原厂维护 可以得到即使的更新和
  • 响应式原理

    vue响应式原理 vue2 vue2中使用了ES5里面的Object defineProperty方法 给对应data中的数据的每个值添加了set和get方法 当值被修改时 就会触发对应的set方法 set方法里会通知独影的watcher
  • Python循环结构——for

    for循环是循环结构中的另外一种 基本使用方法 for 变量名 in 目标对象 用于循环的子代码 在for循环中 必定存在一个变量作为游标 且变量会在每次循环开始时自动发生变化 如果没有特别设定变化的值 则默认为 1 当目标对象为列表 字典
  • redis学习:redisKey的基本命令

    Redis是一个开源 BSD许可 内存存储的数据结构服务器 可用作数据库 高速缓存和消息队列代理 它支持字符串 哈希表 列表 集合 有序集合 位图 hyperloglogs等数据类型 内置复制 Lua脚本 LRU收回 事务以及不同级别磁盘持
  • 激光雕刻机:废旧光驱的涅槃之路

    激光雕刻机 废旧光驱的涅槃之路 从 FeedzShare 1天最热 有超过 100 人喜欢此条目 来自 www guokr com FeedzShare 发布时间 2011年04月20日 已有 5 人推荐 DIYer zieak 制作时间
  • ROS 安装详细教程 —— Ubuntu20.04 LTS 安装

    ROS 安装详细教程 Ubuntu20 04 LTS 安装 ROS 简介 官方文档对 ROS 的介绍如下 The Robot Operating System ROS is a set of software libraries and t
  • 网站优化搜索引擎与关键词

    网站优化搜索引擎与关键词 人们不应该高估搜索引擎的智商 这不利于seo的研究 事实上 搜索引擎是非常愚蠢的 让我们举一个非常简单的例子 你在搜索引擎中输入 教师 这个词 搜索引擎就会给出一个准确的搜索列表 我们不会给出 教师 一词的检索信息
  • 使用Docker部署前后端分离项目

    目录 引言 部署需要用到的镜像汇总 1 Redis部署 1 搜索Redis镜像 2 拉取Redis镜像 3 创建Redis容器 2 MySQL部署 1 拉取MySQL镜像 2 查看镜像 3 启动MySQL容器 4 使用本地Navicat测试
  • 报错(内存溢出):Exception in thread "Thread-8" java.lang.OutOfMemoryError: PermGen space

    Exception in thread Thread 8 java lang OutOfMemoryError PermGen space 解决办法 能正常使用 但是偶尔会报下面这个错误 从偶尔这个说法来看 是你热部署次数太多了 导致JVM
  • http协议访问网址的流程

    http协议 http协议可以说是由三个部分组成的 超文本 URL Http 超文本 网页中的信息 如文字 图片 视频 URL 统一资源定位符 由三个部分组成 协议 主机端口 文件名及路径 使用http协议的访问流程 例如我们想访问百度 则
  • C# => Lambda表达式理解

    本文参考网上的博客和找到的资料加上个人理解编写的 主要的代码借鉴 http www cnblogs com knowledgesea p 3163725 html 百度百科 希望能够帮助理解lambda表达式 定义 Lambda表达式 是一
  • 阿里测开的性能测试技术笔记:如何快速上手压测工作

    新年第一个工作日 继续整理之前的技术笔记 前面通过三篇的内容 将自动化测试相关的技术笔记做了整理汇总 这篇内容 主要是我刚开始做性能测试时的一些记录 对新手或者刚进入一个新项目的同学 应该有所帮助 一般我们在刚介入一个项目时 我认为可以从如
  • 基于视觉重定位的室内AR导航APP的大创项目思路(3)手机相机内参数据获取和相机标定

    文章目录 相机内参 为什么要获取相机的内参数据 获取相机内存数据的方法 棋盘格标定 自动相机标定 前情提要 是第一次做项目的小白 文章内的资料介绍如有错误 请多包含 相机内参 相机内参是本身的物理数据 包括焦距f和缩放c 一般以矩阵K的形式