【计算机视觉】Lecture 20:八点法

2024-05-11 07:58

本文主要是介绍【计算机视觉】Lecture 20:八点法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

提醒

在这里插入图片描述

本质/基础矩阵

本质矩阵和基础矩阵都是 3x3 的矩阵,用于“编码”两个视图的对极几何。
动机:给定一张图像中的一个点,乘以本质/基础矩阵将告诉我们在第二个视图中沿着哪个极线搜索。

本质/基础矩阵总结

Longuet-Higgins方程

在这里插入图片描述

极线:

在这里插入图片描述

极点:

在这里插入图片描述

本质矩阵 vs 基础矩阵:
本质矩阵E在成像坐标上作用(内参校准相机)
基础矩阵F在像素坐标上作用(未内参校准相机)

从匹配点计算基础矩阵F

假设有 m 组匹配点

每组匹配点满足:

在这里插入图片描述

F是一个 3×3 的矩阵(9个元素)
建立具有9个未知数的齐次线性系统

计算F

在这里插入图片描述在这里插入图片描述在这里插入图片描述

多少个点?

与单应性变换不同,在单应性变换中每组匹配点贡献两个约束(线性方程组中的行);但是在估计本质/基础矩阵时,每组匹配点只贡献一个约束(行)。[因为Longuet-Higgins/极线约束是一个标量方程。]

因此至少需要八组匹配点

所以称为八点法

解齐次系统

假设我们需要求解以下方程的非平凡解

在这里插入图片描述

其中,有 m 个方程和 n 个未知数,m >= n-1,rank(A) = n-1

由于 x 的范数是任意的,我们将寻找范数 | | x | | = 1 的解

最小二乘法

我们希望 Ax 尽可能接近0,并且 | | x | | = 1

在这里插入图片描述

有约束的优化问题

定义以下的代价函数:

在这里插入图片描述

这个代价称为拉格朗日代价LAGRANGIAN cost,而 λ 称为拉格朗日乘数LAGRANGIAN multiplier

拉格朗日通过引入额外变量将约束条件纳入代价函数中。

在这里插入图片描述

对 x 和 λ 分别求导:

在这里插入图片描述

第一个方程是特征向量问题

第二个方程是原始约束

在这里插入图片描述

x 是矩阵ATA的特征向量,关联特征值λ 的,表示为eλ

在这里插入图片描述

我们希望得到最小特征值所关联的特征向量

我们可以通过矩阵 A 的SVD分解得到 ATA 的特征向量和特征值

奇异值分解(SVD)

任何 m×n 的矩阵 A 可以被转换为三个矩阵的乘积:

在这里插入图片描述

其中:

  1. U 是 m x m 矩阵,其列向量是正交向量

  2. V 是 n x n 矩阵,其列向量是正交向量

  3. D 是 m x n 对角矩阵,其对角线元素被称为A的奇异值(singular values),并且是这样的:

在这里插入图片描述

SVD性质

在这里插入图片描述

U 的列向量是矩阵 AAT 的特征向量

V 的列向量是矩阵 ATA 的特征向量

矩阵 D 的对角线元素的平方是矩阵 AAT 和矩阵 ATA 的特征值

计算基础矩阵F:八点法

在这里插入图片描述在这里插入图片描述

rank(A) = 8

找到与矩阵 ATA 中最小特征值相关联的特征向量

八点法

输入由 m 组对应点构成,m>=8

  1. 构造 m×9 的矩阵 A

  2. 求解 A 的SVD分解: 在这里插入图片描述

  3. 基础矩阵 F 的元素是矩阵 V 中与最小奇异值相对应的列向量的元素。

八点法

基础矩阵 F 必须是奇异的(请记住,它的秩rank为2,因为对它来说,有一个左右的零空间(即极点)是很重要的)。加入rank为2的约束:

  1. 求解矩阵 F 的SVD分解:在这里插入图片描述

  2. 将矩阵 F 中最小的奇异值设为0,从而构造在这里插入图片描述

  3. 重新计算矩阵 F :在这里插入图片描述

数值细节

对应点的坐标范围大导致数值不稳定。

最好先将它们归一化,这样它们的平均值为0,方差为1,最后将 F 逆归一化:

在这里插入图片描述

哈特利预处理算法(Lecture 16)

实际例子

如何“矫正”图像,以便任何适用于简单立体视觉的扫描线(scan-line)立体视觉算法都可用于查找稠密匹配(也就是为每个像素都计算一个视差图像)
在这里插入图片描述

立体矫正

在这里插入图片描述

图像重投影

将图像平面重新投影到一个公共平面上,这个公共平面平行于两个相机光学中心之间的连线

注意,只有相机的焦点才是最重要的

一般思想

在这里插入图片描述

应用一个单应性变换,这个变换是一个虚拟旋转,以使图像平面与基线平行(极点将会去往无穷远处)

应用射影变换使得极线对应于水平扫描线

在这里插入图片描述

将极点 e 映射到(1, 0, 0)
尝试最小化图像畸变
注意:矫正的图像通常不是长方形的

图像矫正

假设外参 R&T 已知,则计算一个3D旋转,这个旋转使得共轭极线共线并平行于水平图像轴

记住:围绕相机焦点的旋转只是图像中的一个 2D 单应性变换!

注意:本书中的这种方法假定摄像机经过校准(我们可以从本质矩阵 E 中恢复 R,T)。 稍后,我们将看到使用基础矩阵 F 的更通用方法。

• 矫正涉及到两个旋转:

  1. 第一次旋转将极点发送到无穷远处
  2. 第二次旋转使极线平行

• 使用第一个矩阵 R1 旋转左右相机(由平移 T 构成)
• 使用 R 矩阵旋转右相机
• 调整两个相机参考坐标系中的尺度

建立旋转: 在这里插入图片描述

其中在这里插入图片描述

其中 T 表示左图像中的极点,是一个单位向量。上节课中我们知道如何从矩阵 E 计算这个T。

在这里插入图片描述

矫正算法

•建立矩阵Rrect

•设置R1=Rrect,Rr=R Rrect

•对于每个左点pl=(x,y,f)T

–计算R1 pl=(x’,y’,z’)T

–计算p’1=f/z’(x’,y’,z’)T

•对右相机使用Rr重复上述步骤

例子

在这里插入图片描述在这里插入图片描述

一个更好的方法

当极点在图像中时,传统方法不起作用(例如,相机向前平移)

总体思路:在极点周围进行极性矫正(polar rectification)。
论文:“Simple andefficient rectification methodsfor general motion”, MarcPollefeys, R.Koch, L.VanGool, ICCV99.

在这里插入图片描述

极性矫正(polar rectification)

极点周围的极重新参数化

仅需要(方向上的)对极几何

保留极线长度

选择Δθ,这样就不会压缩像素

在这里插入图片描述

适用于所有相对运动

保证最小图像大小

极性矫正(polar rectification):例子

在这里插入图片描述在这里插入图片描述

例子

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

这篇关于【计算机视觉】Lecture 20:八点法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/978954

相关文章

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能

【C++学习笔记 20】C++中的智能指针

智能指针的功能 在上一篇笔记提到了在栈和堆上创建变量的区别,使用new关键字创建变量时,需要搭配delete关键字销毁变量。而智能指针的作用就是调用new分配内存时,不必自己去调用delete,甚至不用调用new。 智能指针实际上就是对原始指针的包装。 unique_ptr 最简单的智能指针,是一种作用域指针,意思是当指针超出该作用域时,会自动调用delete。它名为unique的原因是这个

【JavaScript】LeetCode:16-20

文章目录 16 无重复字符的最长字串17 找到字符串中所有字母异位词18 和为K的子数组19 滑动窗口最大值20 最小覆盖字串 16 无重复字符的最长字串 滑动窗口 + 哈希表这里用哈希集合Set()实现。左指针i,右指针j,从头遍历数组,若j指针指向的元素不在set中,则加入该元素,否则更新结果res,删除集合中i指针指向的元素,进入下一轮循环。 /*** @param

计算机视觉工程师所需的基本技能

一、编程技能 熟练掌握编程语言 Python:在计算机视觉领域广泛应用,有丰富的库如 OpenCV、TensorFlow、PyTorch 等,方便进行算法实现和模型开发。 C++:运行效率高,适用于对性能要求严格的计算机视觉应用。 数据结构与算法 掌握常见的数据结构(如数组、链表、栈、队列、树、图等)和算法(如排序、搜索、动态规划等),能够优化代码性能,提高算法效率。 二、数学基础

java计算机毕设课设—停车管理信息系统(附源码、文章、相关截图、部署视频)

这是什么系统? 资源获取方式在最下方 java计算机毕设课设—停车管理信息系统(附源码、文章、相关截图、部署视频) 停车管理信息系统是为了提升停车场的运营效率和管理水平而设计的综合性平台。系统涵盖用户信息管理、车位管理、收费管理、违规车辆处理等多个功能模块,旨在实现对停车场资源的高效配置和实时监控。此外,系统还提供了资讯管理和统计查询功能,帮助管理者及时发布信息并进行数据分析,为停车场的科学

《计算机视觉工程师养成计划》 ·数字图像处理·数字图像处理特征·概述~

1 定义         从哲学角度看:特征是从事物当中抽象出来用于区别其他类别事物的属性集合,图像特征则是从图像中抽取出来用于区别其他类别图像的属性集合。         从获取方式看:图像特征是通过对图像进行测量或借助算法计算得到的一组表达特性集合的向量。 2 认识         有些特征是视觉直观感受到的自然特征,例如亮度、边缘轮廓、纹理、色彩等。         有些特征需要通

【python计算机视觉编程——7.图像搜索】

python计算机视觉编程——7.图像搜索 7.图像搜索7.1 基于内容的图像检索(CBIR)从文本挖掘中获取灵感——矢量空间模型(BOW表示模型)7.2 视觉单词**思想****特征提取**: 创建词汇7.3 图像索引7.3.1 建立数据库7.3.2 添加图像 7.4 在数据库中搜索图像7.4.1 利用索引获取获选图像7.4.2 用一幅图像进行查询7.4.3 确定对比基准并绘制结果 7.

参会邀请 | 第二届机器视觉、图像处理与影像技术国际会议(MVIPIT 2024)

第二届机器视觉、图像处理与影像技术国际会议(MVIPIT 2024)将于2024年9月13日-15日在中国张家口召开。 MVIPIT 2024聚焦机器视觉、图像处理与影像技术,旨在为专家、学者和研究人员提供一个国际平台,分享研究成果,讨论问题和挑战,探索前沿技术。诚邀高校、科研院所、企业等有关方面的专家学者参加会议。 9月13日(周五):签到日 9月14日(周六):会议日 9月15日(周日

【python计算机视觉编程——8.图像内容分类】

python计算机视觉编程——8.图像内容分类 8.图像内容分类8.1 K邻近分类法(KNN)8.1.1 一个简单的二维示例8.1.2 用稠密SIFT作为图像特征8.1.3 图像分类:手势识别 8.2贝叶斯分类器用PCA降维 8.3 支持向量机8.3.2 再论手势识别 8.4 光学字符识别8.4.2 选取特征8.4.3 多类支持向量机8.4.4 提取单元格并识别字符8.4.5 图像校正