阅读前可以先参看上一篇代数视觉博客:

四点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的算法改成一个优化损失函数的算法

\[min~||A\mathbf{h}||~s.t.~||\mathbf{h}||=1
\]

进一步的,我们可以改写上式成

\[\min \frac{||A\mathbf{h}||}{||\mathbf{h}||}
\]

算法表如下

引用: Multiple View Geometry in Computer Vision Second Edition

多点DLT (Direct Linear Transformation) 算法的更多相关文章

  1. 萌新笔记——Cardinality Estimation算法学习(二)(Linear Counting算法、最大似然估计(MLE))

    在上篇,我了解了基数的基本概念,现在进入Linear Counting算法的学习. 理解颇浅,还请大神指点! http://blog.codinglabs.org/articles/algorithm ...

  2. Cardinality Estimation算法学习(二)(Linear Counting算法、最大似然估计(MLE))

    在上篇,我了解了基数的基本概念,现在进入Linear Counting算法的学习. 理解颇浅,还请大神指点! http://blog.codinglabs.org/articles/algorithm ...

  3. 【线性代数】7-2:线性变化的矩阵(The Matrix of a Linear Transformation)

    title: [线性代数]7-2:线性变化的矩阵(The Matrix of a Linear Transformation) categories: Mathematic Linear Algebr ...

  4. 【线性代数】7-1:线性变换思想(The Idea of a Linear Transformation)

    title: [线性代数]7-1:线性变换思想(The Idea of a Linear Transformation) categories: Mathematic Linear Algebra k ...

  5. DLT(Direct Linear Transform)算法

    1.DLT定义            DLT是一个 用于解决包含尺度问题的最小二乘问题 的算法.           DLT解决问题的标准形式为:                            ...

  6. 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

  7. OpenCV 之 透视 n 点问题

    透视 n 点问题,源自相机标定,是计算机视觉的经典问题,广泛应用在机器人定位.SLAM.AR/VR.摄影测量等领域 1  PnP 问题 1.1  定义 已知:相机的内参和畸变系数:世界坐标系中,n 个 ...

  8. [zt]摄像机标定(Camera calibration)笔记

    http://www.cnblogs.com/mfryf/archive/2012/03/31/2426324.html 一 作用建立3D到2D的映射关系,一旦标定后,对于一个摄像机内部参数K(光心焦 ...

  9. ORB_SLAM2 源码阅读 ORB_SLAM2::Initializer

    ORB_SLAM2::Initializer 用于单目情况下的初始化. Initializer 的构造函数中传入第一张影像,这张影像被称作 reference frame(rFrame).在获得第二张 ...

  10. [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 ...

随机推荐

  1. 发布个工具,一键恢复Win8/8.1中的微软拼音长句模式(新体验模式)

    (cnBeta:http://www.cnbeta.com/articles/277936.htm) 首先贴个图,大家来一起念台词~ 念完了木有?很激情澎湃义愤填膺有木有? 这事情最早追溯到前年 8 ...

  2. 【开源】libserial_parse_text:命令行解析的基础库

    借助五一假期,写了一个命令行解析的基础库,一般可用于串口命令解析.TCP命令解析等等. 具有以下几种特点: 不涉及到具体硬件, 纯软件协议,与具体硬件分离. 支持不定长命令行,逐个字符解码,可以支持不 ...

  3. python生成自动化测试报告并发送到指定邮箱

    #-*-coding:utf-8 -*- import HTMLTestRunner import unittest import time import sys import os import s ...

  4. C#反射运行该类下的方法

    Text:反射的类名 s:方法名 data:参数 如果无参则: (string)method.Invoke(obj, null); Type type = typeof(Text); MethodIn ...

  5. 记一次失败的StackOverflow回答

    有一位同学在StackOverflow上提问,他想创建一个 Future 类,异步的实现 Future 的构造,当构造完成之后自动调用 .then 方法,执行后面的逻辑 class Features ...

  6. 4.12 疫情数据可视化 毕设(初稿版 crud+可视化echarts

    4.22 完成地图 数据可视化~~~  599x150 解决不显示图片的问题 参考文档 https://blog.csdn.net/qq_51917985/article/details/121380 ...

  7. SQL 实现全字段分组,每组取一条记录,记录满足:组内时间最大,组内不同类型数量求和

    1 SELECT 2 TT.CLASS_ID AS "classId", 3 TT.TEMPLATE_ID AS "templateId" , 4 TT.MSG ...

  8. JAVA8 常见用法

    1 . 集合List<T> 去单个元素,返回集合 List<Tbhr01> tbhr01List = new ArrayList<Tbhr01>(); List&l ...

  9. 【ASP.NET Core】标记帮助器——抽象层

    标记帮助器,即 Tag Helpers.这个嘛,就直接翻译了,叫"标记帮助器",虽然不好听,但只能这样了.当然你翻译为"标记增强器"也行. 所谓标记帮助器,就是 ...

  10. 部署Kubernetes v1.22.10高可用集群

    一.概述 Kubernetes集群控制平面(Master)节点右数据库服务(Etcd)+其它服务组件(Apiserver.Controller-manager.Scheduler等)组成:整个集群系统 ...