使用几何和线性代数从单个图像进行 3D 重建

这篇具有很好参考价值的文章主要介绍了使用几何和线性代数从单个图像进行 3D 重建。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

使用几何和线性代数从单个图像进行 3D 重建

萨蒂亚

一、说明

        3D重构是一个挑战性题目,而且这个新颖的题目正处于启发和膨胀阶段;因此,各种各样的尝试层出不穷,本篇说明尝试的一种,至于其它更多的尝试,我们在陆续的跟踪中。

使用几何和线性代数从单个图像进行 3D 重建,3d技术,深度学习,3d

二、介绍

使用几何和线性代数从单个图像进行 3D 重建,3d技术,深度学习,3d

图1

        以上这3张图片有什么共同点?如果你的猜测是平行线,那么你是对的。这种几何属性是艺术家用来在其艺术中呈现 3D 视图的主要工具。此属性也是从单眼摄像头或单个图像构建 3D 视图的主要支柱。让我们在本文中讨论这个问题。

        我通过将图 3 中存在的第 3 张图像作为输入来重建 1D 场景。此实现存在一些缩放和指标校正问题。我会在某个时候解决这个问题。

使用几何和线性代数从单个图像进行 3D 重建,3d技术,深度学习,3d

图2–从单个图像进行3D重建

请观看视频。

这里的主要思想是如何利用几何和线性代数从单眼相机或单个图像重建 3D 视图。

三、概述

        从单个图像进行3D重建主要取决于您如何使用几何结构从单个图像或单眼相机获得K和R值。

相机校准(K)值主要负责将2D点从图像平面反向投影到3D空间,旋转(R)值捕获所有结构之间的旋转

使用几何和线性代数从单个图像进行 3D 重建,3d技术,深度学习,3d

图3

        单图像或单眼相机的3D重建过程通常涉及2步过程

  1. 找到 K 和 R
    1.1。使用前向投影。

    1.2. 使用几何结构。
  2. 背投
    这涉及将 2D 图像点投影到 3D 空间。

四、线性代数

        让我们讨论一些关于线性代数的基础知识以及如何使用它们。我想到的基本问题是为什么需要线性代数?简短的回答是:

几何结构根据一些线性方程给出了场景中存在的不同点/线/圆锥之间的关系,这就是为什么需要线性代数来求解方程并找到未知数的原因。

        以下是线性代数的概述。请参考。

使用几何和线性代数从单个图像进行 3D 重建,3d技术,深度学习,3d

当您设计线性方程组时,它属于以下类别之一:

  • 方形系统(m = n)
  • 矩形系统 (m !=n)- 在确定系统(n > m)- 在确定系统(m > n)
     

使用几何和线性代数从单个图像进行 3D 重建,3d技术,深度学习,3d

        当您使用直接线性变换(DLT)时,非常需要上述理解。

        我认为有了上述理解,我们可以进入下一阶段。

五. 找到 K 和 R :

5.1. 使用前向投影

使用几何和线性代数从单个图像进行 3D 重建,3d技术,深度学习,3d

图5

        在前向投影中,已知的 3D 点(假设 X)首先将其转换为相机坐标系,然后转换为图像坐标系,从而投影到图像平面(假设 x)上。整个过程表示为:

x = PX — -等式(1)

其中 P 是 4x3 投影矩阵。P可以分解为KR[I | -C],其中K=相机校准,R=旋转,C=相机中心。

如果已知 3D 点和 2D 点,则只需要从方程 (1) 中找到 P。所以我们需要了解P的自由度。

P 具有 11 个自由度(不包括比例因子)。

K = 5,R = 3, C= 3

使用几何和线性代数从单个图像进行 3D 重建,3d技术,深度学习,3d

图6

如果 P 有 11 个自由度,这意味着它需要 5 个零 1/2 个点来求解线性方程。这是不可能的,所以我们需要拿6分。

使用几何和线性代数从单个图像进行 3D 重建,3d技术,深度学习,3d

图7

根据上述计算,n = 11 和 m=12。因此,据说该系统是过度确定的,可以有多个解决方案并且需要近似。参见图4。

如何使用直接线性变换(DLT)获得K和R:

使用几何和线性代数从单个图像进行 3D 重建,3d技术,深度学习,3d

DLT基本上形成了方程PX=0的线性系统,并从中找到K和R。它被归类为

  • 基本 DLT。
  • 标准化的 DLT。
    此版本与相机中心的原点不变。因此,它是比基本DLT更受欢迎的一种。
  • 具有成本函数的DLT。
    在超定解的情况下,线性系统可以有许多解。因此,我们需要用一些成本函数(例如代数成本)近似解。

在这里,我们只讨论基本的DLT。

使用几何和线性代数从单个图像进行 3D 重建,3d技术,深度学习,3d

图8

请检查 GitHub - satya15july/2d_3d_corespondence 的实现。

5.2. 使用几何结构:

以下是针孔相机型号中使用的不同几何形状的简短摘要

使用几何和线性代数从单个图像进行 3D 重建,3d技术,深度学习,3d

图10

上述所有几何形状均用于针孔相机模型,用于3D图像重建。

使用几何和线性代数从单个图像进行 3D 重建,3d技术,深度学习,3d

图11

这是射影几何、仿射几何和欧几里得几何之间关系的简化视图。

使用几何和线性代数从单个图像进行 3D 重建,3d技术,深度学习,3d

图12

如何从单视图几何中获取 K 和 R

首先,您需要了解仿射几何、射影几何和欧几里得几何中存在的一些属性。

  1. 角度属性不保留在射影几何或仿射几何中,但它保留在欧几里得几何中。
  2. 圆锥和圆在欧几里得几何中可以唯一标识,但射影几何只能识别点,线和圆锥(圆作为圆锥)。
  3. 如果要在射影几何中找到射线或平面或直线之间的角度,则必须识别圆锥或绝对圆锥(IAC)的图像。原因是
    - 圆锥由欧几里得几何和射影几何确定。
    - 消失线在 2 个圆形点处与锥相交。

以下是从 IAC 获得 K 和 R 的方法

使用几何和线性代数从单个图像进行 3D 重建,3d技术,深度学习,3d

图.13

由上图可知,求K和R的第一步是

  • 找到欧米茄(w)。
  • 然后,找到 K 和 R。

如何从 3 个正交消失对中获取 Omega:

如果存在 3 个正交消失点,就可以轻松找到 Omega。请检查下图。

使用几何和线性代数从单个图像进行 3D 重建,3d技术,深度学习,3d

图.14

        任何直线都可以与圆锥体/日食相交于 1 或 2 个点。因此消失线最多与圆锥体相交于 2 个点。

        这里详细解释了锥体到欧米伽方程是如何推导的。

使用几何和线性代数从单个图像进行 3D 重建,3d技术,深度学习,3d

                                                                图15

如果我们可以施加一些额外的约束,例如,

  • 如果使用方形像素,则 w1==w3 。
  • 如果没有使用比例因子,则 w2=0

然后欧米茄基质变成

使用几何和线性代数从单个图像进行 3D 重建,3d技术,深度学习,3d

请检查 GitHub - satya15july/find_K_from_orthogonal_planes 的实现。

从几何结构中找到欧米茄后,您可以轻松地从中获得K和R。请参考图 13。

六、 背投

使用几何和线性代数从单个图像进行 3D 重建,3d技术,深度学习,3d

                                                                图16

让我们在其他文章中讨论这个问题,因为我不想让这篇文章变得大。

七、结论

        校准相机意味着K是已知的,我们需要知道R,因为我们需要了解场景中存在的2个结构之间所需的旋转。在这里,我们了解如何使用不同的方法从单个图像中找到它们。

现在的问题是,在了解了这种技术之后,我们如何从单个图像或单眼相机重建3D场景。

检查下面的图像或任何随机的街景,我们如何通过使用上述技术重建它?我们可能需要哪些其他技术。这是一个有趣的问题。解决方案在某个时候再见。

使用几何和线性代数从单个图像进行 3D 重建,3d技术,深度学习,3d

        让我们在这里暂停一下,我希望这篇文章能让您清楚地了解 3D 重建的工作原理。感谢您的阅读。

        具体的实现在

  • GitHub - satya15july/2d_3d_corespondence。
  • GitHub - satya15july/find_K_from_orthogonal_planes。
  • GitHub - satya15july/find_K_from_non_othogonal_planes。
  • GitHub - satya15july/3dreconstruction_single_image。

        如果您喜欢这些内容,欢迎拍手,并关注我以获取有关计算机视觉,3D重建和深度学习的更多信息内容。文章来源地址https://www.toymoban.com/news/detail-639293.html

引用

  • 计算机视觉中的多视图几何,作者:Richard Hartley 和 Andrew Zisserman。

到了这里,关于使用几何和线性代数从单个图像进行 3D 重建的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 线性代数克莱姆法则的几何含义

    以二元一次方程组的求解为例: { a c a 1 + b c b 1 = c 1 a c a 2 + b c b 2 = c 2 left{begin{array}{l} a_{c}a_{1} +b_{c}b_{1} =c_{1} \\\\ a_{c}a_{2} +b_cb_{2} =c_{2} end{array}right. { a c ​ a 1 ​ + b c ​ b 1 ​ = c 1 ​ a c ​ a 2 ​ + b c ​ b 2 ​ = c 2 ​ ​ 其中 a c a_c a c ​ 和 b c b_c b c ​ 是我们待求的参数。

    2024年02月12日
    浏览(30)
  • MIT线性代数-方程组的几何解释

    假设有一个方程组 A X = B AX=B A X = B 表示如下 2 x − y = 0 (1) 2x-y=0tag{1} 2 x − y = 0 ( 1 ) − x + 2 y = 3 (2) -x+2y=3tag{2} − x + 2 y = 3 ( 2 ) 矩阵表示如下: [ 2 − 1 − 1 2 ] [ x y ] = [ 0 3 ] (3) begin{bmatrix}2-1\\\\\\\\-12end{bmatrix}begin{bmatrix}x\\\\\\\\yend{bmatrix}=begin{bmatrix}0\\\\\\\\3end{bmatrix}tag{3} ​ 2 − 1 ​

    2024年04月15日
    浏览(35)
  • LA@n维向量@解析几何向量和线性代数向量

    n维向量 由 n n n 个有次序的数 a 1 , a 2 , ⋯   , a n a_1,a_2,cdots,a_n a 1 ​ , a 2 ​ , ⋯ , a n ​ 组成的 有序数组 称为 n维向量 ,简称 向量 数 a i a_i a i ​ 称为向量的第 i i i 个 分量 向量类型 实向量和复向量 分量全为实数的向量称为 实向量 ,分量是复数的向量称为 复向量 (实向量

    2024年02月12日
    浏览(28)
  • 线性代数与解析几何——Part4 欧式空间 & 酉空间

    线性代数与解析几何——Part4 欧式空间 酉空间 1. 欧氏空间 1. 定义 性质 2. 内积表示与标准正交基 3. 欧氏空间的同构 4. 欧氏空间的线性变换 5. 欧氏空间的子空间 2. 酉空间 1. 定义 性质 2. 酉变换 3. Hermite变换 4. 规范变换 1. 定义 性质 定义7.1.1 设 V V V 是实数域 R bold{R} R 上的线

    2024年02月09日
    浏览(31)
  • 线性代数学习笔记4-1:线性方程组的数学和几何意义、零空间/解空间/核

    求解方程 A x ⃗ = v ⃗ mathbf Avec x=vec v A x = v 首先说明系数矩阵的 行数和列数的意义 : 对于系数矩阵 A mathbf A A ,其行数代表方程个数,列数代表未知量个数 对于系数矩阵 A mathbf A A ,矩阵对应线性变换 矩阵 行数 代表变换后的基向量、 x ⃗ vec x x 和 v ⃗ vec v v 等向量的

    2024年02月02日
    浏览(37)
  • 线性代数的学习和整理5: 矩阵的加减乘除及其几何意义

    目录 1 矩阵加法 1.1 矩阵加法的定义 1.2 加法的属性 1.2.1 只有同类型,相同n*m的矩阵才可以相加 1.2.1 矩阵加法的可交换律: 1.2.2 矩阵加法的可结合律: 1.3矩阵加法的几何意义 2  矩阵的减法 2.1 矩阵减法定义和原理基本同 矩阵的加法 2.2 矩阵减法的几何意义 3 矩阵标量乘法

    2024年02月11日
    浏览(31)
  • 人工智能中数学基础:线性代数,解析几何和微积分

    在人工智能领域,线性代数、解析几何和微积分是最基础的数学知识。这些数学知识不仅在人工智能领域中被广泛应用,也是其他领域的重要基础。本文将介绍人工智能中的线性代数、解析几何和微积分的基础知识和应用。

    2024年02月16日
    浏览(36)
  • 线性代数的学习和整理1:用EXCEL进行基础的矩阵计算

    目录 1 写在最开始的话 EXCEL里计算线性代数的起点 心得 内容 2 EXCEL里矩形的加法 2.1  矩阵加法的性质 3 EXCEL里矩阵的减法 4 矩阵标量乘法/ 也称 数乘 4.1 矩阵的标量乘法的性质 5 矩阵点乘, 得到:点积/内积 ,使用mmult() 5.1 矩阵点乘规则 5.2  矩阵的乘法不符合交换性,不能交

    2024年03月20日
    浏览(38)
  • 【C++】开源:Eigen3矩阵与线性代数库配置使用

    😏 ★,° :.☆( ̄▽ ̄)/$: .°★ 😏 这篇文章主要介绍Eigen3线性代数模板库配置使用。 无专精则不能成,无涉猎则不能通。——梁启超 欢迎来到我的博客,一起学习,共同进步。 喜欢的朋友可以关注一下,下次更新不迷路🥞 项目Gitlab地址: https://gitlab.com/libeigen/eigen 官网:

    2024年02月14日
    浏览(32)
  • 线性代数的学习和整理2:什么是线性,线性相关,线性无关 及 什么是线性代数?

    目录 1 写在前面的话 1.1 为什么要先总结一些EXCEL计算矩阵的工具性知识, 而不是一开始就从基础学起呢?  1.2 关于线性代数入门时的各种灵魂发问: 1.3 学习资料 2 什么是线性(关系)? 2.1 线性的到底是一种什么关系: 线性关系=正比例/正相关关系 ≠ 直线型关系 2.2 一次函数

    2024年02月11日
    浏览(114)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包