MVG读书笔记——单应矩阵估计这件小事(一)

本文详细介绍了在计算机视觉中,如何通过DLT算法和四点法来估计单应矩阵H的参数,包括数学推导和求解过程,以及在多于四点情况下的最小二乘解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参数估计是计算机视觉中经常遇到的一个问题,为较好的估计参数,人们发明了各种各样的算法。这里我们就以单应矩阵H的估计为例,一个个介绍这些常用算法。

DLT算法

DLT(direct linear transform)算法是一个用于解决包含尺度的最小二乘问题的算法。可以解决的问题包括相机内参估计、单应矩阵估计、基础矩阵估计等。

以单应矩阵H的估算为例。由于H为 3 × 3 3\times3 3×3的矩阵,除去尺度的影响之后有8个自由度。需要4对对应点来求解。假设某一对对应点 x i , x i ′ \textbf x_i,\textbf x_i' xi,xi,则
x i ′ = H x i = [ h 1 T x i h 2 T x i h 3 T x i ] \textbf x_i'=H\textbf x_i=\begin{bmatrix}h^{1T}\textbf x_i\\h^{2T}\textbf x_i\\h^{3T}\textbf x_i\end{bmatrix} xi=Hxi=h1Txih2Txih3Txi
其中 h j T h^{jT} hjT代表H的第j行。

假设 x i ′ = ( x i ′ , y i ′ , w i ′ ) T \textbf x_i'=(x_i',y_i',w_i')^T xi=(xi,yi,wi)T。对等式叉乘一个 x i ′ \textbf x_i' xi我们得到

x i ′ × H x i = [ y i ′ h 3 T x i − w i ′ h 2 T x i w i ′ h 1 T x i − x i ′ h 3 T x i x i ′ h 2 T x i − y i ′ h 1 T x i ] = 0 \textbf x'_i \times H\textbf x_i = \begin{bmatrix}y_i'h^{3T}\textbf x_i-w'_ih^{2T}\textbf x_i\\w'_ih^{1T}\textbf x_i-x'_ih^{3T}\textbf x_i \\x'_ih_{2T}\textbf x_i-y_i'h^{1T}\textbf x_i\end{bmatrix} = 0 xi×Hxi=yih3Txiwih2Txiwih1Txixih3Txixih2Txiyih1Txi=0

(1) [ 0 T − w i ′ x i T y i ′ x i T   w i ′ x i T 0 T − x i ′ x i T   − y i ′ x i T x i ′ x i T 0 T ] [ h 1 h 2 h 3 ] = 0 \begin{bmatrix}0^T&-w'_i\textbf x^T_i&y_i'\textbf x^T_i \\\ w'_i\textbf x_i^T&0^T&-x'_i\textbf x_i^T \\\ -y'_i\textbf x_i^T&x'_i\textbf x^T_i&0^T\end{bmatrix} \begin{bmatrix}\textbf h^1 \\ \textbf h^2 \\ \textbf h^3\end{bmatrix} =0\tag{1} 0T wixiT yixiTwixiT0TxixiTyixiTxixiT0Th1h2h3=0(1)
可以记为 A i h = 0 A_ih=0 Aih=0。其中A是一个 3 × 9 3\times9 3×9的矩阵,h是一个9维向量,它的元素对应H中的元素。即
h = [ h 1 h 2 h 3 ] , H = [ h 1 T h 2 T h 3 T ] h=\begin{bmatrix}h^1\\h^2\\h^3\end{bmatrix},H=\begin{bmatrix}h^{1T}\\h^{2T}\\h^{3T}\end{bmatrix} h=h1h2h3,H=h1Th2Th3T

可以看到, A i h = 0 A_ih=0 Aih=0是一个关于h的线性方程, A i A_i Ai可以由对应点坐标得到。同时A的第三行其实可以由前两行线性表出。由此每对点实际上是给出了H的两个约束。简化A可以得到一个 2 × 9 2\times 9 2×9的矩阵。

四点法

取四对点,将它们的线性方程系数矩阵进行叠加我们就得到了一个 8 × 9 8\times 9 8×9(去除线性相关的行)或者 12 × 9 12\times 9 12×9的矩阵,不论如何这个矩阵的秩都为8。于是我们可以从线性方程 A i h = 0 A_ih=0 Aih=0的一维零空间中得到h。这样的h有无穷多,彼此相差一个尺度,一般为求得唯一的解我们假设 ∣ ∣ h ∣ ∣ = 1 ||h||=1 h=1

这种解法也称为最小解,因为它使用的点数最少。
###多于四点的情况
当两幅图像中的对应点大于4对时,由于噪声的存在,矩阵A的秩为9,得到的线性方程只有零解。我们称这种方程为超定方程,此时可以求它的最小二乘解。即 m i n ∣ ∣ A h ∣ ∣ min||Ah|| minAh。对它的求解同样可以使用SVD分解。这将在后面进一步进行介绍。

退化

在使用四点法时,如果其中3点共线,就会发生退化。(很容易理解,3点共线=一点可以由其他两点线性表出=缺秩)从而得到无穷多解。这种在多于4点的情况也可能发生。

直线与混合情况下的求解

根据对偶原理,显然也可以根据两幅图像中的对应直线对。由 l i = H T l i ′ l_i=H^Tl_i' li=HTli可以进行求解,在此不多赘述。
混合情况下,3个直线对和三个点对互相等价(三角形),从而可以转换成纯点或纯直线的求解。2个直线对、2个点对的情况,和它的对偶情况无法求解,因为这相当于5个点对,其中有4个点共线点情况。

<think>嗯,用户想找多视图几何(MVG)相关的数据集下载。首先,我需要回忆下常见的多视图几何数据集有哪些。多视图几何通常用于三维重建、立体视觉、SLAM等领域,所以相关的数据集应该包含多个视角的图像、相机参数、深度信息或者点云数据。 首先想到的是Middlebury数据集,他们提供了多视图立体匹配的标准数据集,比如2006和2014年的版本,里面应该有多视角图像和真实深度图。然后还有ETH3D,这个也是用于三维重建和立体匹配的高分辨率数据集,适合多视图几何算法测试。 接下来,Euroc MAV数据集,主要用于无人机和SLAM,但里面也有双目相机和IMU数据,可能对多视图几何有用。DTU Robot Dataset应该也不错,特别是用于多视图立体重建,有精确的相机参数和结构化光照扫描的真实数据。 还有TUM的RGB-D SLAM数据集,虽然主要是RGB-D数据,但也适用于多视图研究。KITTI自动驾驶数据集里的立体视觉和视觉里程计部分也可能相关。BlendedMVS和ScanNet这两个大型数据集,前者是合成数据适合训练,后者是真实室内场景的RGB-D数据。 然后,用户可能还需要知道这些数据集的具体内容和下载方式,比如Middlebury和ETH3D的官网,KITTI需要注册,BlendedMVC在GitHub上。要提醒用户注意数据集的许可协议和使用限制,特别是商业用途可能需要授权。 另外,用户提供的引用中有提到多视图几何中的深度融合、三视图稳定性以及物方点与视图的关联,所以推荐的数据集应该包含多视图、深度信息和3D点云,比如Middlebury、DTU和BlendedMVC这些会更符合需求。需要确认每个数据集是否包含相机参数、标定信息,这对多视图几何算法至关重要。 最后,生成相关问题时要考虑用户可能进步的需求,比如如何处理这些数据集、算法实现、评估指标等。要确保回答结构清晰,分点列出数据集,每个数据集的信息和下载链接,以及注意事项,这样用户能方便地找到所需资源。</think>### 多视图几何(MVG)常用数据集及下载方式 多视图几何研究依赖于包含多视角图像、相机参数及三维真值的数据集。以下是经典和最新的公开数据集推荐: --- #### 1. **Middlebury Multi-View Stereo Dataset** - **内容**: 包含高精度多视角图像、相机标定参数、真实深度图和三维模型,适用于立体匹配与重建算法验证。 - **下载**: [Middlebury官网](https://vision.middlebury.edu/mview/) - **特点**: 提供不同光照和纹理场景,如“Temple”“Dino”等[^2]。 --- #### 2. **ETH3D Dataset** - **内容**: 高分辨率多视图图像、激光扫描点云和相机参数,支持多视图立体匹配和SLAM研究。 - **下载**: [ETH3D官网](https://www.eth3d.net/) - **特点**: 包含室内外场景,提供训练集和测试集[^1]。 --- #### 3. **DTU Robot Image Dataset** - **内容**: 超过100个场景的多视图图像,精确的相机姿态和结构化光照扫描的3D真值。 - **下载**: [DTU数据集页面](http://roboimagedata.compute.dtu.dk/) - **特点**: 适用于大规模三维重建算法评估[^3]。 --- #### 4. **KITTI Vision Benchmark Suite** - **内容**: 自动驾驶场景的双目图像、激光雷达点云和相机标定参数,支持多视图几何与SLAM。 - **下载**: [KITTI官网](http://www.cvlibs.net/datasets/kitti/)(需注册) - **特点**: 真实道路场景,包含动态物体干扰。 --- #### 5. **BlendedMVS Dataset** - **内容**: 大规模合成多视图数据集,覆盖多种物体和场景,包含深度图和3D模型。 - **下载**: [GitHub链接](https://github.com/YoYo000/BlendedMVS) - **特点**: 适合深度学习模型训练[^4]。 --- #### 6. **ScanNet Dataset** - **内容**: 真实室内场景的RGB-D视频序列,提供相机轨迹、3D网格和语义标注。 - **下载**: [ScanNet官网](https://www.scan-net.org/) - **特点**: 支持多模态研究(几何+语义)。 --- #### 注意事项 - **数据协议**: 部分数据集(如KITTI)需遵守非商业或学术使用协议。 - **预处理**: 下载后需检查相机参数对齐性(如焦距、畸变系数)[^1]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值