计算机视觉中的三维重建:基于激光雷达与相机的方法

这篇具有很好参考价值的文章主要介绍了计算机视觉中的三维重建:基于激光雷达与相机的方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

作者:禅与计算机程序设计艺术

近年来,随着激光雷达、相机等传感器的广泛应用,三维重建技术逐渐成为热门研究方向。三维重建技术可以从多种角度帮助我们理解世界,并进行精准定位、建筑物三维模型化、环境规划、自然现象研究以及各种各样的应用。 但由于三维重建技术的复杂性和多样性,很难给出一个通用的、可行的、完整的解决方案。因此,本文将简要介绍一下如何利用激光雷达、相机进行三维重建技术的基本流程,然后结合具体的代码实例对这一流程进行具体地阐述。

首先,激光雷达与相机分别由哪些参数决定了三维重建结果?其次,如何通过互补信息增强三维重建结果的精确度?最后,如果没有有效的校正或处理,三维重建结果会受到什么影响?本文将分别对以上三个问题进行回答。

2.基本概念术语说明

2.1激光雷达与相机参数

激光雷达包括两种类型,为偶极子阵列(Active Radar)与超声波阵列(Ultrasound)。其采集到的信号具有不同的特性,激光雷达采用矩形脉冲传输系统(Radar Antenna Pattern),超声波阵列则采用方形波束(Square Wave Beam)。激光雷达与相机参数如下图所示:

参数名称 描述
激光频率 激光频率是指激光能量的变化速度。通常按照毫米波、红外线波、可见光波、INFRA-Red波以及可调焦段波等标准定义。
探测距离 激光雷达探测距离越远,性能越高,但是信号不易被其他物体接收;相机也需要相同的距离才能捕捉到相同的图像。
视场角 表示相机能够拍摄的垂直范围。例如,普通镜头的视场角约为60°,超广角镜头的视场角可以达到90°。
分辨率 表示成像设备能显示的最小单位。通常在摄影中,分辨率通常用英寸作为单位,如照相机的ISO100、ISO200、F1.8等表示不同分辨率下的曝光时间、白平衡等参数。
抗辐射 指激光雷达或者相机产生的辐射对被检测目标造成的抵抗能力。常见的辐射包括红外辐射、可见光辐射、微弱外界辐射等。
曝光时间 是指一张图片被成像设备持续曝光的时间。一般情况下,高光学图像由于聚焦时间长,会存在噪声,因而分辨率越高,则可控曝光时间就越短,所以一般认为“优先保证分辨率”。
快门速度 是指相机设备按下快门按钮时拍摄图像的速度,单位为秒/100英寸。通常来说,电动相机的快门速度为20秒/100英寸,静止相机的快门速度为1/30秒/秒。
幅度 表示激光雷达或相机的最大可测量距离。对于激光雷达,其长度通常为几毫米至几厘米,宽度为几毫米至几厘米;对于相机,其所能捕捉到的最短光线长度为几毫米至几厘米。
角度 用于描述激光雷达或相机的扫描方向。对于激光雷达,扫描角度是指激光束在水平面上扫过的角度,通常是180度。对于相机,扫视方向一般是固定的。
全景角度 由于激光雷达或相机的视野范围是球形或椭圆形,因此无法形成一个全局的立体效果,只能看到局部区域。全景角度就是为了得到更加细致的全局环境信息。

2.2三维重建相关术语

2.2.1相机坐标系

三维重建过程中,激光雷达和相机都采用三维坐标系,即以某点为原点建立局部坐标系,该局部坐标系的X轴、Y轴、Z轴分别代表该点处在图像坐标系的什么位置,以此类推,局部坐标系到世界坐标系的转换矩阵为R(Rotation),T(Translation)。

2.2.2激光雷达坐标系

激光雷达在三维重建过程中扮演角色,它也需要由一个坐标系来进行描述。激光雷达坐标系采用笛卡尔坐标系,它的X轴朝向前方,Y轴朝向右方,Z轴朝向上方,所有的物体都是以这个坐标系为参考的。

2.2.3相机投影矩阵

激光雷达和相机在三维重建过程中,经历了图像和激光数据两个过程。首先,激光雷达在某个时刻观察到一组激光束,然后将这些激光束投射到相机面前形成一副图像。之后,相机将图像转化为像素,并根据相机内参计算出每一像素对应的激光束的深度值。

但在投影的过程中,由于激光束经过障碍物、环境等因素反射后可能与真实距离差距较远,因此,将激光束投射到像素上时,有可能会出现像素到激光束的映射关系。这时,就需要用到投影矩阵P,它是一个投影关系矩阵,用来将激光数据投影到像素上。

2.2.4视差映射

对于相机视野很小或者不可导导致的失焦现象,可以通过视差映射技术进行修复。视差映射是在原始图像与修正后的图像之间建立一对一映射关系的过程。当把原始图像上某一点的像素值映射到修正后的图像上时,映射值可以使得两者之间的特征点匹配程度更好。

2.2.5配准问题

因为激光雷达和相机存在漂移和旋转等偏移情况,所以三维重建过程中还需考虑配准问题。配准问题主要是指激光雷达坐标系到相机坐标系的转换。

目前,常见的三维重建配准方法有几何重配准法、变换重配准法、优化重配准法。几何重配准法主要采用闭环控制法,先估计激光雷达与相机初始位置的误差,然后通过闭环控制法确定激光雷达与相机的正确位置及姿态。变换重配准法也属于闭环控制法,不同之处是不需要估计初始位置的误差,直接根据已知的激光雷达与相机运动关系、摄像机内参、环境光流等计算相机坐标系与激光雷达坐标系的转换关系。优化重配准法则是一种非闭环控制法,优化重配准法通过找寻初始位置的最小二乘解,通过迭代的方式寻找最优解,找到最佳的激光雷达与相机的配准关系。

3.核心算法原理和具体操作步骤以及数学公式讲解

3.1计算相机投影矩阵P

为了完成三维重建的第一步——投影,需要计算出相机投影矩阵P。假设激光雷达的位置坐标为s=[x s]T,激光雷达到相机的距离为d,激光雷datera人坐标系的方向向量为r=[rx ry rz]^T,则相机投影矩阵P为:

P = K [R; -Rr^T]

其中,K为相机内参矩阵,[Rx Ry Rz]为相机坐标系在激光雷达坐标系的旋转矩阵,[-Rr^T]为相机坐标系到激光雷达坐标系的转换矩阵,Rr=Rr^T。

3.2从图像中提取特征点

为了计算出三维重建的第二步——特征提取,需要从图像中提取特征点。图像特征提取的方法有Harris、SIFT等。这里,我们以Harris算法为例,来讲解特征点的提取过程。

假设一副图像大小为W*H,每个像素点的灰度值记作G,且每个像素点的坐标为uv=[u v]T。Harris算法的基本思路是通过计算像素梯度的二阶导数来检测角点。具体地,假设邻域窗口为W×W,则其梯度I=[∂Gx, ∂Gy]=[I1 I2],图像梯度的二阶导数IxIy=[∂^2Ix, ∂^2Iy]=∑(∂Ix)^2+(∂Iy)^2。

用以下公式来计算每个像素的二阶梯度幅值:

R=det((Ix)^2 (Iy)^2)-tr((Ix)(Iy))^2 / ((Ix)^2 + (Iy)^2)^2

然后,根据阈值确定每个角点的响应值,只保留响应值高于阈值的特征点,将它们纳入最终的特征点集合。

3.3计算深度

假设已知若干个特征点,每个特征点有一个深度值D。那么,已知每个点的深度值,就可以得到整个图像的三维点云。

如果已知相机投影矩阵P、图像内参矩阵K、相机坐标系到激光雷达坐标系的转换矩阵R、激光雷达到相机的距离d和图像中所有角点的位置,则可以使用深度映射法来计算每个像素的深度值。具体地,假设一副图像的大小为W*H,每个像素的坐标为uv,则其投影坐标为p=[px py]T,则可以得到:

depth = p' * P'/d

其中,P'为投影矩阵P的逆矩阵,p'=[px']/[(px+π)^2+(py+π)^2]^{1/2}=[px' py']T。

3.4获取三维点云

假设已知每个点的深度值,即可构造出三维点云。

不过,因为实际环境中的真实物体往往不是完美的平面形状,所以,三维点云通常是包含着许多不规则的结构。为了解决这一问题,通常采用像素级的法向量法或激光法来进行修复。

3.5基于视差的三维点云修复

因为激光雷达的视野范围较小,所以可能导致相机在某些场景下失焦或被遮挡。在这种情况下,可以通过视差映射技术恢复缺失的区域。

假设一副图像的大小为W*H,设定两个点的图像坐标分别为uv1=(u1 v1)T和uv2=(u2 v2)T,则可以在uv1和uv2之间建立一对一的映射关系,即可以用两点之间的数据作为差值。

假设两点的位置误差和视差误差的相关系数为ρ,则可以通过估计出每个像素的差值:

Δθ = ρ * Δz / d

然后,通过差值差积分拟合出缺失区域的深度。

4.具体代码实例和解释说明

4.1代码示例

这里给出使用Matlab语言进行三维重建的具体代码示例,该示例使用一个Matlab开源项目baka-cv实现了基于激光雷达与相机的三维重建。该项目中提供了常见的激光雷达和相机的内参、标定、标定误差的评价等功能。文章来源地址https://www.toymoban.com/news/detail-842272.html

% 导入样例图像
img = imread('example.jpg');

% 加载激光雷达的内参矩阵、激光到相机的距离d
K = [...]; % (3,3)
d =...;

% 计算相机投影矩阵P
[cx cy fx fy] = size(img);
u0 = cx/(fx+fy)/2; % 假设相机坐标系原点重合图像中心
v0 = cy/(fx+fy)/2; % 假设相机坐标系原点重合图像中心
[R, T] = lookat([0, 0, d], 'xz', [u0, v0]); % 以图像中心为焦点
P = K * [R; -R'*T'];

% 计算图像点云
points = getPointCloudFromImage(img, P, K, d, 'threshold', 1e-4);

% 可视化三维点云
view(points(:, :), 'xzy')

% 三维重建结果精度评价
errors = evaluateCalibrationErrors(K, d, points);
disp(['RANSAC Reprojection Error:', num2str(mean(errors))])

到了这里,关于计算机视觉中的三维重建:基于激光雷达与相机的方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 计算机视觉之三维重建(二)(摄像机标定)

    标定示意图 标定目标 P ′ = M P w = K [ R   T ] P w P^{\\\'}=MP_w=K[R space T]P_w P ′ = M P w ​ = K [ R   T ] P w ​ 其中 K K K 为内参数, [ R   T ] [R space T] [ R   T ] 为外参数。该式子需要使用至少六对内外点对进行求解内外参数(11个未知参数)。 其中 R 3 × 3 , T 3 × 1 R_{3 times 3}, T_{3 times

    2024年02月12日
    浏览(53)
  • 【计算机视觉|人脸建模】3D人脸重建基础知识(入门)

    本系列博文为深度学习/计算机视觉论文笔记,转载请注明出处 三维重建(3D Reconstruction)是指根据单视图或者多视图的图像重建三维信息的过程。 人工几何模型 仪器采集 基于图像的建模 描述 基于几何建模软件通过人机交互生成物体三维几何模型 基于结构光和激光扫描技术

    2024年02月14日
    浏览(60)
  • 计算机视觉 激光雷达结合无监督学习进行物体检测的工作原理

            激光雷达是目前正在改变世界的传感器。它集成在自动驾驶汽车、自主无人机、机器人、卫星、火箭等中。该传感器使用激光束了解世界,并测量激光击中目标返回所需的时间,输出是点云信息,利用这些信息,我们可以从3D点云中查找障碍物。         从自

    2024年02月07日
    浏览(58)
  • 计算机视觉新巅峰,微软&牛津联合提出MVSplat登顶3D重建

    3D场景重建和新视角合成是计算机视觉领域的一项基础挑战,尤其是当输入图像非常稀疏(例如,只有两张)时。尽管利用神经场景表示,例如场景表示网络(SRN)、神经辐射场(NeRF)和光场网络(LFN)等,取得了显著进展,但这些方法在实际应用中仍然不尽人意,原因包括

    2024年04月15日
    浏览(67)
  • 【计算机视觉|人脸建模】深度学习时代的3D人脸重建调查报告

    本系列博文为深度学习/计算机视觉论文笔记,转载请注明出处 标题: 3D Face Reconstruction in Deep Learning Era: A Survey 链接:3D Face Reconstruction in Deep Learning Era: A Survey - PubMed (nih.gov) 随着深度学习的出现和图形处理单元的广泛应用,3D人脸重建已成为生物特征识别最引人入胜的主题。

    2024年02月14日
    浏览(60)
  • 基于半监督学习的深度学习在计算机视觉中的应用

    作者:禅与计算机程序设计艺术 在人工智能领域,深度学习技术逐渐成为解决复杂任务的重要手段。但如何将深度学习技术应用于计算机视觉领域仍存在很多困难。特别是在实际应用场景中,计算机视觉的目标往往是识别图像中的特定对象或场景。现有的很多深度学习模型,

    2024年02月09日
    浏览(46)
  • 基于深度学习的计算机视觉在智能交通系统中的应用

    作者:禅与计算机程序设计艺术 随着智能手机的普及,自动驾驶领域也逐渐被激烈讨论。自动驾驲系统(Autonomous Driving System,ADS)在一定程度上能够代替人类驾驶员,减少人因疏忽造成的安全隐患,提高行驶效率。但是目前市面上的车联网方案仍然存在诸多不足。 智能交通

    2024年02月12日
    浏览(40)
  • 【机器学习案例7】计算机视觉中的小物体检测:基于补丁的方法

    作者简介 : 工学博士,高级工程师,专注于工业软件算法研究 本文已收录于专栏:《机器学习实用指南》本专栏旨在提供 1.机器学习 经典案例及源码 ;2.开源机器学习 训练数据集 ;3.机器学习前沿 专业博文 。以案例的形式从实用的角度出发,快速上手机器学习项目,在案

    2024年02月19日
    浏览(49)
  • 门控循环单元网络(GRU)在计算机视觉中的应用:基于深度学习模型的

    作者:禅与计算机程序设计艺术 《门控循环单元网络(GRU)在计算机视觉中的应用:基于深度学习模型的》 1.1. 背景介绍 随着计算机视觉领域的快速发展,深度学习模型已经在许多任务中取得了显著的成果。但是,为了提高模型的性能,仍需要考虑一些关键问题,如模型的可读

    2024年02月14日
    浏览(49)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包