多点DLT (Direct Linear Transformation) 算法
阅读前可以先参看上一篇代数视觉博客:
四点DLT (Dierct Linear Transformation) 算法
对于大于4个点的数据点来进行 DLT 算法变换, 如果数据点的标注都十分准确,那么将所有数据点都放进 \(A\) 矩阵中进行求解的话, 与只放4个点没有区别,因为一致性会让矩阵 \(A\) 的秩仍为8.
但由于现实操作中, 数据点总是不准确带有噪声的, 盲目将全部点带入矩阵 \(A\) 会导致\(A\mathbf{h}=0\) 中的 \(\mathbf{h}\) 只有 0 解, 这并不是我们想要的. 因此我们需要进行改造
为了让所有点都可用,我们将所有点的数据构成的 \(A_i\) 矩阵的前两行组成 \(A\) 矩阵. 然后我们可以构造 \(A\mathbf{h}=0\). 但前面已经说明,这样直接求解会导致零解. 因此我们将等于零换为它们乘积的范数近似为0, 即$$||A\mathbf{h}||=0$$ 但为了避免 \(\mathrm{h}\) 为零解, 我们加入一项对 \(\mathrm{h}\) 的约束, \(||\mathbf{h}||=1\)
因此我们可以多点DLT的算法改成一个优化损失函数的算法
\]
进一步的,我们可以改写上式成
\]
算法表如下

引用: Multiple View Geometry in Computer Vision Second Edition
多点DLT (Direct Linear Transformation) 算法的更多相关文章
- 萌新笔记——Cardinality Estimation算法学习(二)(Linear Counting算法、最大似然估计(MLE))
在上篇,我了解了基数的基本概念,现在进入Linear Counting算法的学习. 理解颇浅,还请大神指点! http://blog.codinglabs.org/articles/algorithm ...
- Cardinality Estimation算法学习(二)(Linear Counting算法、最大似然估计(MLE))
在上篇,我了解了基数的基本概念,现在进入Linear Counting算法的学习. 理解颇浅,还请大神指点! http://blog.codinglabs.org/articles/algorithm ...
- 【线性代数】7-2:线性变化的矩阵(The Matrix of a Linear Transformation)
title: [线性代数]7-2:线性变化的矩阵(The Matrix of a Linear Transformation) categories: Mathematic Linear Algebr ...
- 【线性代数】7-1:线性变换思想(The Idea of a Linear Transformation)
title: [线性代数]7-1:线性变换思想(The Idea of a Linear Transformation) categories: Mathematic Linear Algebra k ...
- DLT(Direct Linear Transform)算法
1.DLT定义 DLT是一个 用于解决包含尺度问题的最小二乘问题 的算法. DLT解决问题的标准形式为: ...
- linear map (also called a linear mapping, linear transformation or, in some contexts, linear function
Linear map - Wikipedia https://en.wikipedia.org/wiki/Linear_map
- OpenCV 之 透视 n 点问题
透视 n 点问题,源自相机标定,是计算机视觉的经典问题,广泛应用在机器人定位.SLAM.AR/VR.摄影测量等领域 1 PnP 问题 1.1 定义 已知:相机的内参和畸变系数:世界坐标系中,n 个 ...
- [zt]摄像机标定(Camera calibration)笔记
http://www.cnblogs.com/mfryf/archive/2012/03/31/2426324.html 一 作用建立3D到2D的映射关系,一旦标定后,对于一个摄像机内部参数K(光心焦 ...
- ORB_SLAM2 源码阅读 ORB_SLAM2::Initializer
ORB_SLAM2::Initializer 用于单目情况下的初始化. Initializer 的构造函数中传入第一张影像,这张影像被称作 reference frame(rFrame).在获得第二张 ...
- [Scikit-learn] 1.1 Generalized Linear Models - Lasso Regression
Ref: http://blog.csdn.net/daunxx/article/details/51596877 Ref: https://www.youtube.com/watch?v=ipb2M ...
随机推荐
- 从0到1手把手实现vite
什么是Vite? 法语:轻量化,快速 基于VUE3 非 打包开发服务器,请注意,它是个开发服务器哇!! 快速开发,按需编译,不再等待整个应用编译完成 基于原生模块系统ESModule实现 说白了,就是 ...
- 通过一个示例形象地理解C# async await异步
前言 相信大家看过不少讲C# async await的文章,博客园就能搜到很多,但还是有很多C#程序员不明白. 如果搞不明白,其实也不影响使用.但有人就会疑惑,为什么要用异步?我感觉它更慢了,跟同步有 ...
- springcloud与微服务
springcloud 与 微服务 父工程(按需导入依赖) <!--打包--> <packaging>pom</packaging> <properties& ...
- 网络通讯协议分类-IP地址
网络通讯协议分类 通信的协议还是比较复杂的,java.net包中包含的类和接口,它们提供低层次的通信细节.我们可以直接使用这些类和接口,来专注于网络程序开发,而不用考虑通信的细节. java.net包 ...
- Java 进阶P-8.15
对象串行化 ObjectInputStream类 readObject() ObjectOutputStream类 writeObject() Serializable接口 对象的寿命通常随着生成该对 ...
- 一篇文章带你掌握Flex布局的所有用法
Flex 布局目前已经非常流行了,现在几乎已经兼容所有浏览器了.在文章开始之前我们需要思考一个问题:我们为什么要使用 Flex 布局? 其实答案很简单,那就是 Flex 布局好用.一个新事物的出现往往 ...
- 【踩坑记录】docker启动报错mountpoint for cgroup not found
具体报错信息: docker: Error response from daemon: OCI runtime create failed: container_linux.go:345: start ...
- Java堆外缓存(一个很有意思的应用)
我们在开发过程中会遇到这样的场景:就是一个服务的各项 JVM 的配置都比较合理的情况下,它的 GC 情况还是不容乐观.分析之后发现有 2 个对象特别巨大,占了总存活堆内存的 90%以上.其中第 1 大 ...
- Vue27 scoped样式
https://www.jianshu.com/p/d80383251fc5 1 简介 当我们在组件中写样式,vue最后会把所有样式合在一起,如果样式名称重复的话就会有问题 style标签上加scop ...
- 解析sensor_msgs::PointCloud2 ROS点云数据
1.一个仿真的点云数据 header: seq: 2116 stamp: secs: 1586919439 nsecs: 448866652 frame_id: "LidarSensor1& ...