综述 | 实时三维形状测量技术的综述

news2024/12/30 3:12:42

原创 | 文 BFT机器人 

图片

随着人工智能和机器人技术的快速发展,实时三维形状测量技术变得愈发重要。由于机器人通常在动态环境中操作,因此机器人装备的三维形状测量技术需要能够实时从运动的物体中获取三维形状信息。未来的三维机器视觉技术实际上依赖于实时三维数据获取和测量技术的发展。实时高精度的三维形状测量技术在医疗手术、生物医学工程、智能制造和娱乐产业等许多领域都得到了科学家和工程师的高度需求。

根据所使用的设备和工作原理,实时三维形状测量技术可以分为三类:结构光(SL)技术、立体视觉(SV)技术和飞行时间(TOF)技术。迄今为止,所有这些技术在学术界和商业领域都取得了巨大的成功。

结构光技术已经发明了几十年。其中一种代表性方法是在1980年代提出的相移方法,该方法采用四个相移来计算具有解析解的相位图。这种方法至今仍在使用,通常使用多频率来增加其鲁棒性。到目前为止,除了正弦相位图案外,还提出了许多其他的三维形状测量方法,并且通常为不同的图案设计了特定的方法,使得结构光技术变得越来越多样化。

然而,大多数提出的一次性结构光方法受到图像处理的瓶颈限制。因此,基于结构光的三维形状测量方法仍然是学术界的研究重点。为了满足实时数据获取的需求,许多研究人员采用了高速摄像机和投影仪,并减少了投影的相位图案数量(通常使用三个图案),以使相移方法能够测量动态物体。由于数据获取速度远高于被测对象的运动速度,因此可以使用非常有限数量的正弦图案或二进制图案来鲁棒地计算相位图。由于这种类型的三维形状测量方法投射和捕获了多个图案,因此它们仅限于测量具有相对缓慢运动的动态物体。

为了消除这一限制,研究了一次性三维形状测量方法。一个流行的方法是将三个相移图案编码到相机的RGB通道中。一次性彩色相位图案被获取后,可以通过不同的方法将其解码为三个单独的相移图案。最后,采用相移轮廓测量法计算三维形状信息。

另一种流行的一次性结构光三维形状测量方法是傅里叶变换轮廓测量法(FTP),该方法于1980年代首次提出。从那时起,这种方法已经被世界各地的研究人员广泛深入地研究。已经提出了许多方法来改进FTP的性能。例如,一种改进的模型被提出,以消除投影仪和摄像机放置的几何约束。在中,使用了交叉条纹图案来提高FTP的分辨率。除了傅里叶变换轮廓测量法,还有小波变换轮廓测量法。在中,作者报告说小波变换轮廓测量法和窗口傅里叶变换轮廓测量法优于傅里叶变换轮廓测量法。然而,在相位图中的不连续性周围,所有基于变换的方法性能都较差,需要进一步研究。

除了上述基于相位图案的一次性方法,还有基于点图案的一次性结构光方法、基于线图案的一次性结构光方法和基于交叉线图案的一次性结构光方法。尽管这些方法的三维形状重建原理都基于三角测量和校准,但这些方法使用的图像处理算法却非常多样化。其中一些基于分割算法来提取捕获的图案,而另一些则基于边缘或特征检测算法来提取捕获的图案。在中,作者从扭曲的线图案中稳健地计算了相位图,从而成功地建立了基于相位的结构光方法和非相位图案的结构光方法之间的转换关系。与基于相位图案的结构光方法相比,基于非相位图案的结构光方法对光干扰更加抵抗。

   结构光技术

1.1

相移轮廓术

多次拍摄相移轮廓测量自上世纪80年代提出以来,在学术界和工业界一直备受欢迎。随着高速摄像机和高速投影仪的发展,相移轮廓测量的测量速度能够满足实时要求。尽管在相位图案设计、相位计算方法和相位展开算法等方面进行了许多创新和改进,但相移轮廓测量的工作原理保持不变。其工作原理如下:

设计相位图案:首先,设计一个具有不同相位的光栅或条纹图案,其数学表示如公式(1)所示。这些图案通常由一台投影仪投射到待测物体的表面上。

图片

公式(1)中的参数解释如下:

Ii(x, y) 表示位于设计相位图案中位置 (x, y) 处的光强度。

I0 是一个常数。

u 是设计的相位,通常以 2πfx 表示,其中 f 是相位图案的频率。

ai 是第 i 个相位图案的偏移值。

N 是偏移的相位图案总数。

(x, y) 表示设计相位图案中的位置,其分辨率为 X x Y。

拍摄图像:一台高速摄像机捕获了被投射图案照射后的物体图像,每幅图像对应一个不同相位的图案。

相位计算:通过分析这些图像中的光栅或条纹的扭曲,可以计算出物体表面的相位信息。这通常需要使用一系列的相移图像,并且可以使用分析方法来计算每个像素点的相位值。

三维形状重建:通过已知的相位信息,可以进行三维形状的重建,得到物体表面的三维坐标信息。

1.2

一次相移轮廓测量

它设计了三种移位相位图案,分别在彩色图像的R通道、G通道和B通道中。

图片

这个组合的彩色相移图案通过一次投射到物体上,并由彩色视频摄像机进行采集。在R通道、G通道和B通道中捕获的三个相位失真图案(如图4(b)所示)然后计算失真相位图。最后,如果设计的相位图案使用了高频率,就需要进行相位展开。据报道,这种方法可以达到约0.5毫米的测量精度。大多数参考文献没有提供定量的测量精度。

1.3

傅里叶变换轮廓测量法

所设计的相位图由傅里叶级数表示:

图片

将所设计的相位图投影到被测物体上后,CCD相机观测到的变形相位图可表示为:

图片

在参考平面上,可以写出相图为:

图片

在频率域中,使用以f0为中心的带通滤波器来选择n = 1的基本分量。然后通过反傅里叶变换来计算受形变影响的相位图案的基本分量。

图片

然后,通过反向傅里叶变换来计算受形变影响的相位图案的基本分量。

图片

结合以上两个公式可得:

图片

这一部分介绍了基于傅里叶变换的三维形状测量方法,其中涉及了不同的技术变种。基本原理是使用相移模式或复合模式创建相位图案,然后通过傅里叶变换从捕获的图像中提取扭曲的相位信息。

1.4

基于点图案的单镜头方法

这种类型的方法基于点阵图案,用于解决相机和投影仪之间的对应问题。根据点图案的设计方法,提出并使用了不同的图像处理方法来分割点或提取特征点。具有足够多点的情况下,可以稳健地测量对象的三维形状。文章提到了一些典型的设计点图案,图中展示了不同方法中设计的标记的形状,尽管它们的形状不同,但其原理相似,一个设计的标记对应一个单一点。深度是通过相机和投影仪之间的点到点三角测量来计算的。根据不同的设计点图案,提出了不同的图像处理算法来计算点的位置。图像处理的准确性在很大程度上决定了测量精度。

图片

1.5

基于线图案的单镜头方法

与基于点图的方法类似:

图片

1.6

基于交叉线的单镜头方法

是一种利用一组交叉线或交叉条纹来解决相机和投影仪之间的对应问题的方法。通常情况下,交叉线图案的水平线和垂直线采用不同的颜色以便更容易进行线的识别。这些图案中,相同颜色的线都是平行排列的。深度是通过对相机和投影仪之间的水平线和垂直线进行三角测量来计算的。

图片

1.7

光编码方法

光编码方法代表了结构光技术的进化。它不再使用精心设计的结构光图案,而是利用随机斑点来通过摄像机和斑点投影仪之间的三角测量来计算深度。通过三角测量的深度计算原理涉及到基线长度(b)、参考平面距离(Z0)、红外摄像机的焦距(f)以及摄像机坐标中观察到的视差(d)等参数。这些参数通过校准来确定,深度(Zk)则通过以下公式计算:

图片

当激光束投射到漫反射表面上时,会随机形成衍射斑点。这些斑点具有高度随机性,并且随着距离的变化而改变模式。斑点图案的生成取决于激光光线的波长、激光束的大小以及漫反射表面与观察平面之间的距离等因素。

由于斑点图案具有高度随机性,其图像处理精度通常较低,与精心设计的图案相比。经过校准后,最佳测量精度可达到1毫米,而其他研究报告的测量误差较高。例如,在某项研究中,姿势重建的精度为3.9厘米,而在另一项研究中,人体重建的精度为数厘米。在另一项研究中,手部姿势恢复误差在5毫米到25毫米之间。与其他结构光方法相比,光编码方法通常提供较低的测量精度,但具有经济实惠和多功能的优点。

图片

1.8

基于深度学习的方法

基于深度学习的结构光方法是相对较新的发展,它利用深度学习神经网络进行三维形状测量。这些方法通过深度学习建立了扭曲相位与高度之间的非线性映射关系。这允许通过投影的相位图案的单次拍摄进行三维形状测量。然而,这些方法严重依赖训练集,其准确性取决于训练数据的质量和多样性。

在一些研究中,基于深度学习的结构光方法在使用真实世界数据进行训练时,实现了0.076%的测量精度。然而,使用模拟数据集进行训练的结果导致了约0.7%的较低测量精度。当使用适当的数据集进行良好训练时,基于深度学习的方法的精度潜力可以接近传统结构光方法的精度水平。

作者 | 宁瑶暴打小平安

排版 | 小河

审核 | 橙橙

若您对该文章内容有任何疑问,请与我们联系,我们将及时回应。如果想要了解更多的前沿资讯,记得点赞关注哦~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1031004.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

个人博客搭建记录

个人博客地址:www.jiasun.top 使用github pagehexo搭建,主题为fluid,搭建步骤参照:Github hexo 实现自己的个人博客、配置主题(超详细) 主题:https://hexo.fluid-dev.com/ 搭建时的问题&…

eNSP模拟器!通过Cloud云使本机与模拟器互通,成功通过ssh登陆设备!

首先配置云接口: 配置路由器IP地址: [Huawei]int g 0/0/0 [Huawei-GigabitEthernet0/0/0]ip ad 192.168.56.2 24 用本机去ping路由器,路由器成功与本机互通。 ssh登陆配置: [Huawei]user-interface vty 0 4 [Huawei-ui-vty0-4]…

计算物理专题----随机游走实战

计算物理专题----随机游走实战 Problem 1 Implement the 3D random walk 拟合线 自旋的 拟合函数(没有数学意义) 参数:0.627,3.336,0.603,-3.234 自由程满足在一定范围内的均匀分布以标准自由程为单位长度,…

ETHERCAT转MODBUS TCP/IP协议网关

产品介绍 JM-ECT-TCPIP是自主研发的一款EtherCAT从站功能的通讯网关。该产品主要功能是将EtherCAT网络和 TCP/IP 网络连接起来。 本网关连接到EtherCAT总线中做为从站使用,连接到 TCP/IP 网络中做为服务器或客户端使用。 产品参数 技术参数 u 网关做为EtherCAT网…

Docker容器数据持久化存储机制

这里写目录标题 一、Docker容器数据持久化存储介绍二、Docker容器数据持久化存储方式三、Docker容器数据持久化存储方式应用案例演示3.1 docker run -v3.1.1 创建了本地目录3.1.2 未创建本地目录 3.2 volumes3.2.1 创建数据卷3.2.2 使用数据卷 一、Docker容器数据持久化存储介绍…

Dynaform 7.0安装说明教程

Dynaform 7.0安装说明教程 1.安装ANSYS License Manager 2023R2 2.用有裂纹的程序文件夹覆盖原始<ANSYS Inc>程序文件夹&#xff08;默认设置为&#xff1a;C:\program Files\ANSYS Inc&#xff09; 3.运行程序>ANSYS&#xff0c;股份有限公司许可管理器>ANSYS许…

安装封箱机需要的条件

任何设备的安装都需要一定的场地条件&#xff0c;封箱机产品也不例外&#xff0c;对于初次使用封箱机的用户&#xff0c;我们会仔细提醒客户需要准备的条件&#xff0c;今天就把这些条件和大家分享一下&#xff0c;方便您今后更方便的使用封箱机产品。 1、适当的场地。用户在购…

【C++】C++11——构造、赋值使用条件和生成条件

移动构造和移动赋值生成条件移动构造和移动赋值调用逻辑强制生成默认函数的关键字default禁止生成默认函数的关键字delete 移动构造和移动赋值生成条件 C11中新增的移动构造函数和移动赋值函数的生成条件为&#xff1a; 移动构造函数的生成条件&#xff1a;没有自己实现的移动…

Redis GEO 类型与 API 结合,地理位置优化的绝佳实践

&#x1f52d; 嗨&#xff0c;您好 &#x1f44b; 我是 vnjohn&#xff0c;在互联网企业担任 Java 开发&#xff0c;CSDN 优质创作者 &#x1f4d6; 推荐专栏&#xff1a;Spring、MySQL、Nacos、Java&#xff0c;后续其他专栏会持续优化更新迭代 &#x1f332;文章所在专栏&…

Linux下的网络编程——网络基础、socket编程(一)

前言&#xff1a; 前面我们学习了Linux的系统编程&#xff0c;从今天我们就要开始Linux网络编程的学习了&#xff0c;Linux网络编程中的知识点可能没有前面的Linux系统多一点&#xff0c;但是基础的网络知识我们还是需要了解的&#xff0c;并且网络编程中的socket编程的知识也…

打赏收款收银台多合一支付收款HTML源码

多合一打赏支付收款&#xff08;微信、QQ、支付宝&#xff09; 源码直接上传到服务器解压缩即可访问,或者用本地浏览器打开访问 PS&#xff1b;只需要将自己的收款二维码替换即可 该源码全开源无加密&#xff0c;所有操作均在本地无需调用外部资源防止失效&#xff01; 源码…

微前端架构的几种技术选型

微前端架构的几种技术选型随着SPA大规模的应用&#xff0c;紧接着就带来一个新问题&#xff1a;一个规模化应用需要拆分。 一方面功能快速增加导致打包时间成比例上升&#xff0c;而紧急发布时要求是越短越好&#xff0c;这是矛盾的。另一方面当一个代码库集成了所有功能时&am…

【校招VIP】java语言考点之反射

考点介绍&#xff1a; java的反射(reflection)机制是指在程序的运行状态中&#xff0c;可以构造任意一个类的对象&#xff0c;可以了解任意一个对象所属的类&#xff0c;可以了解任意一个类的成员变量和方法&#xff0c;可以调用任意一个对象的属性和方法。这种动态获取程序信息…

探索工业路由器如何助力无人驾驶方案的突破性解析

随着无人驾驶技术的发展&#xff0c;越来越多的企业和组织开始部署无人驾驶车辆来提高运输效率和安全性。在这些方案中&#xff0c;工业路由器被广泛应用于建立稳定、安全和高效的通信网络。在本篇文章中&#xff0c;我们将分享一个真实的无人驾驶方案部署案例&#xff0c;其中…

laravel设置与获取header请求头

laravel设置与获取header请求头 设置 <?phpnamespace App\Http\Controllers\Text;use Illuminate\Http\Request; use App\Http\Controllers\Controller;class TextController extends Controller {public function TextCC(Request $request){$token $request->header(j…

【函数进阶】

函数进阶 1 本节目标2 函数的定义和调用2.1 函数的定义方式2.2 函数的调用方式 3 this3.1 函数内 this 的指向3.2 改变函数内部 this 的指向3.2.1 call方法3.2.2 apply方法3.2.3 bind方法3.2.4 call apply bind 总结 4 严格模式4.1 什么是严格模式4.2 开启严格模式4.2.1 为脚本…

【校招VIP】交流技巧之面试时合理表达观点

考点介绍&#xff1a; 交流和表达是产品的面试最重要的考查点之一&#xff0c;也是产品必备工作技能。如果在面试中不能合理的与面试官沟通&#xff0c;或者不能把自己的思路和分析有逻辑的表达出来&#xff0c;都会对面试结果产生不好的影响。 交流技巧之面试时合理表达观点-…

【网络协议】Http-下

因为Http是无状态的&#xff0c;所以为了协助 Web 保持状态&#xff0c;Cookie 诞生了。 下面中是百度百科关于Cookie和Session的解释&#xff1a; Cookie&#xff1a;举例来说, 一个 Web 站点可能会为每一个访问者产生一个唯一的ID, 然后以 Cookie 文件的形式保存在每个用户的…

序列化 qmap

自定义的map不得行 但是qmap可以自己分配具体内存 这里没照完 待会照