双目三维重建_【光电视界】简单介绍双目视觉三维重构

今日光电

       有人说,20世纪是电的世纪,21世纪是光的世纪;知光解电,再小的个体都可以被赋能。欢迎来到今日光电!


faa6abe896fcfb00bbde949ec15cd883.png

----与智者为伍 为创新赋能----

1、三维重构

1.1、三维重构到底是什么?

  首先要了解立体匹配算法,首先要知道立体匹配算法主要具体应用于什么方向。

三维重构又被称为三维重建,百度百科中对它的定义为:指对三维物体建立适合计算机表示和处理的数学模型,是在计算机环境下对其进行处理、操作和分析其性质的基础,也是在计算机中建立表达客观世界的虚拟现实的关键技术。 

  在计算机视觉中, 三维重建是指根据单视图或者多视图的图像重建三维信息的过程. 由于单视频的信息不完全,因此三维重建需要利用经验知识. 而多视图的三维重建(类似人的双目定位)相对比较容易, 其方法是先对摄像机进行标定, 即计算出摄像机的图象坐标系与世界坐标系的关系.然后利用多个二维图象中的信息重建出三维信息。

  个人认为,三维重构就是通过计算机视觉技术,将现实世界中物体的三维信息获取到计算机中的过程,使物体的三维信息能够通过点云、网格等形式,显示或是储存在计算机中。(如点云的pcd格式文件保存形式、以及利用Gemagic等软件进行点云的可视化处理等。)

三维数据需要通过三维重建技术获得。广义三维重建是指通过测量工具与解算方法,获取目标局部点、三维坐标、面三维结构乃至整体三维模型;狭义三维重建指通过重建技术,获取包括结构、纹理、尺度等的目标完整三维信息。

1.2、三维重构具体有什么用?

  在阅读文献的过程中,文献提到了三维重构被广泛应用于无人驾驶、物体导航、无人机避障、医学诊断、逆向工程、文物保护、精密仪器测量等方面。提到的这些方面的应用虽然能够给人一种模糊的印象,但是还是不够具体。因此在此,我想尝试揭开他的神秘面纱。

1.2.1、无人机避障与无人驾驶

  三维重构在这两种领域的应用主要在于三维地图的构建,具有代表性的是SLAM中的建图、以及视觉测距等。(SLAM,即定位与地图构建。问题可描述为:将一个机器人放入未知环境中的未知位置,是否有办法让机器人一边移动一边逐步绘制出此环境完全的地图,所谓完全的地图(a consistent map)是指不受障碍行进到房间可进入的每个角落。)其中机器人的主体由无人机、无人汽车、移动机器人等替换。

  其中一种解决无人机避障问题的方法是对无人机到障碍物的距离进行测量。 其中可运用视觉避障方法从二维的图像中获取三维信息,获得障碍物的深度图像。在避障的过程中,利用SLAM获得了场景模型,在机载计算机里用算法去搜索优化的避障路径。

三维重建在SLAM中主要是视觉SLAM应用,主要利用外部传感器获知环境信息。其中相机是常用的传感器之一,相机又分为三种,分别为:单目相机、双目相机、RGB-D相机等。

单目相机对于三维信息的提取效果较差,因此主要使用双目相机与RGB-D相机。其中双目相机则是通过左右眼图像的差异来判断场景中物体的远近,能直接提取完整的特征数据,但是计算量复杂。而RGB-D相机,可同时获取图像彩色信息和深度信息,是一种实用的获取三维信息的工具。视觉传感器很好地利用了丰富的环境信息,实现了从早期二维地图到三维地图的转化,丰富了地图信息,但是在现实环境下还存在很大的鲁棒性和高适应能力技术挑战。

1.2.2、医学诊断

医学图像三维重建技术主要应用于面绘制、体绘制、医学三维可视化系统等方面。主要是计算机断层扫描(CT)、核磁共振(MRI)、超声波等医学成像技术的发展,使得感兴趣区域CT、MRI图像的三维重建成为可能。

利用重建软件,如中国科学院开发的一款用于医学图像数据的分析和处理的软件3DMed,可以处理各种医学图像,包括计算机断层扫描图像,磁共振成像和原始格式图像。以MRI为例,如可以通过研究对获取的MRI图像进行分割、三维建模和显示,可以辅助医生对疾病的判断和制定治疗的方案。与双目视觉重构相比,获取图像的方式较为不同。

1.2.3、三维测量

运用在测量的三维重构方法属于非接触式测量方法,比起三坐标测量机等接触式测量方法更能满足各类不同的测量需求。其中三维重构方法又分为主动式测量与被动式测量方法。主动式测量是利用投射结构光等(如编码结构光、散斑等),运用直接三角法进行重构测量。而被动式测量法可基于不同视角的测量法,通过不同角度获取图像,根据视差恢复待测物体的三维信息,其基本原理是双目交会测量。

双目交会测量使用两台相机从不同角度对待测目标进行拍摄,在相机内、外参数标定基础上,通过对匹配点对进行空间立体交会,获得目标点云,进而进行相关测量。目前图像匹配方法发展成熟,因此双目交会对材质、颜色等物面性质及背景光等环境因素要求较低,适合对大型三维物体如建筑物等的测量。双目交会测量精度主要受匹配精度、基高比、相机标定精度等因素制约,因此测量精度较低,同时难以实现实时测量,重建与测量范围不能覆盖整个待测物体,目前只有在一些特定场合得到应用。

1.3、三维重构的步骤

三维重构的步骤主要分为:图像获取、摄像机标定、特征提取、立体匹配、三维重构等方面。

(1)图像获取

在进行图像处理之前,要使用摄像机获取三维物体的二维图形。光照条件、相机的几何特性等对后续的图像处理造成很大的影响。其中,摄像机的传感器又分为CMOS与CCD,CCD传感器的成像质量比CMOS的更好,但是成本更高。

首先要对相机进行二次开发,而后搭建出双目视觉平台,而双目相机的关系又主要分为平行光轴与相交光轴两种,将在之后对它们进行讨论。

(2)摄像机标定

通过摄像机标定来建立有效的成像模型,求解出摄像机的内外参数,这样就可以结合图像的匹配结果得到空间中的三维点坐标,从而达到进行三维重建的目的。目前最常使用棋盘格,利用张氏标定法进行标定。

(3)特征提取

特征主要包括特征点、特征线和区域。大多数情况下都是以特征点为匹配基元,特征点以何种形式提取与用何种匹配策略紧密联系。因此在进行特征点的提取时需要先确定用哪种匹配方法。匹配算法又包括全局立体匹配算法与局部立体匹配算法。之后会进行讨论。

(4)立体匹配

立体匹配是指根据所提取的特征来建立图像对之间的一种对应关系,也就是将同一物理空间点在两幅不同图像中的成像点进行一一对应起来。在进行匹配时要注意场景中一些因素的干扰,比如光照条件、噪声干扰、景物几何形状畸变、表面物理特性以及摄像机机特性等诸多变化因素。

(5)三维重建

有了比较精确的匹配结果,结合摄像机标定的内外参数,就可以恢复出三维场景信息。由于三维重建精度受匹配精度,摄像机的内外参数误差等因素的影响,因此首先需要做好前面几个步骤的工作,使得各个环节的精度高,误差小,这样才能设计出一个比较精确的立体视觉系统。

之后可以对重构输出的点云数据进行后处理,如去噪处理、表面重建等。

文章来源:网络收集

4b743a7c4c859cc4224087cc58bc79e5.png

申明:感谢原创作者的辛勤付出。本号转载的文章均会在文中注明,若遇到版权问题请联系我们处理。

 faa6abe896fcfb00bbde949ec15cd883.png

----与智者为伍 为创新赋能----

【说明】欢迎企业和个人洽谈合作,投稿发文。欢迎联系我们诚招运营合伙人 ,对新媒体感兴趣,对光电产业和行业感兴趣。非常有意者通过以下方式联我们!条件待遇面谈fa9898844f346982606d87cea1e5d6f0.png806ba21394bd47559af7a784955112aa.png投稿丨合作丨咨询

联系邮箱:598204634@qq.com

QQ:598204634

微信:13998212910

51831a5ee030a4448c8e18b032546866.png

欢迎关注以下公众号了解光电测控相关

6d9d3deb84f2487a5b8996469c07e7a3.png

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

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

相关文章

交换网络中的sniffer讨论-基于交换网络的ARP spoofing sniffer

交换网络中的sniffer讨论->基于交换网络的ARP spoofing sniffer 转自--http://blog.csdn.net/zhangnn5/article/details/6810347 在阅读这篇文章之前,我假设你已经知道TCP/IP协议,ARP协议,知道什么是sniffer等基本网络知识。在一般的局域网…

mendelay为什么安装不了_你为什么消防验收过不了?消防管道安装错误图集

来源:水电工论坛如有侵权,请联系删除消防管道安装如果一次没做好,验收不通过的话重新返工将对工程进度造成很大的影响,所以在施工时一定要注意以下的错误一定不能出现。2个沟槽卡箍间管段未设置支架立管角钢支架安装时应平面朝上管…

.NET 6 中的HTTP 3支持

dotnet团队官方博客发布了一篇HTTP3的文章:HTTP/3 support in .NET 6:https://devblogs.microsoft.com/dotnet/http-3-support-in-dotnet-6/。文章介绍了.NET 6 将预览支持HTTP3,.NET 7正式支持HTTP3,原因主要是HTTP/3 的 RFC 尚未…

JavaScript数组sort方法(数组排序)

数组对象的sort方法可以按照一定的顺序把数组元素重新排列起来。通常情况下&#xff0c;都是按照字母顺序排列的。JavaScript代码 <script type"text/javascript"> var arr ["HTML","CSS","JavaScript","DOM"]…

Lock与synchronized 的区别

2019独角兽企业重金招聘Python工程师标准>>> 多次思考过这个问题&#xff0c;都没有形成理论&#xff0c;今天有时间了&#xff0c;我把他总结出来&#xff0c;希望对大家有所帮助 1、ReentrantLock 拥有Synchronized相同的并发性和内存语义&#xff0c;此外还多了 …

python从入门到实践django_Django入门——《Python编程从入门到实践》

Django是一个Web框架——一套用于帮助开发交互式网站的工具。Django能够响应网页请求&#xff0c;还能让你更轻松地读写数据库、管理用户等。1、建立项目开始编写一个名为“学习笔记”的Web应用程序&#xff0c;让用户能够记录感兴趣的主题&#xff0c;并在学习每个主题的过程中…

linux 内核 三天吐血,编译安装——吐血经验,内附脚本

程序包编译安装&#xff1a;源码包&#xff1a;name-VERSION-release.src.rpmrpm由源码包安装后&#xff0c;使用rpmbuild命令制作成二进制格式的rpm包&#xff0c;而后再安装源代码–> 预处理–> 编译(gcc)–> 汇编–> 链接–> 执行源代码组织格式&#xff1a;…

mac编辑器coda使用小贴条

前言&#xff1a;最近用mac开发环境了&#xff0c;自然一天到晚用coda&#xff0c;可总是有不顺的地方&#xff0c;搜到这篇文章感觉像看到了知音人&#xff0c;实在是解决了我不少疑难问题啊。外文针对的coda版本较低&#xff0c;我总结的针对版本是version1.7.3 coda快捷键操…

我在 GitHub 上发现了一款骚气满满的字体!

全世界只有3.14 % 的人关注了爆炸吧知识转自&#xff1a;量子位&#xff0c;作者&#xff1a;栗体这个字体叫 Leon Sans&#xff0c;表面看去平平无奇。但事实上&#xff0c;它并不是普通的字体&#xff0c;体内蕴藏着魔力。Leon Sans 最特别的地方在于&#xff0c;字体是由代码…

PHP 接收 UDP包_php只能做网站?基于swoole+websocket开发双向通信应用

前言众所周知&#xff0c;PHP用于开发基于HTTP协议的网站应用非常便捷。而HTTP协议是一种单向的通信协议&#xff0c;只能接收客户端的请求&#xff0c;然后响应请求&#xff0c;不能主动向客户端推送信息。因此&#xff0c;一些实时性要求比较高的应用&#xff0c;如实时聊天、…

OSI模型数据链路层为什么需要分层?

1.何为数据链路层的&#xff08;DATA LINK LAYER&#xff09;的MAC子层和LLC子层&#xff1f; MAC子层的主要功能包括数据帧的封装/卸装&#xff0c;帧的寻址和识别&#xff0c;帧的接收与发送&#xff0c;链路的管理&#xff0c;帧的差错控制等。MAC子层的存在屏蔽了不同物理链…

WPF 实现火炬效果

WPF开发者QQ群&#xff1a; 340500857 | 微信群 -> 进入公众号主页 加入组织欢迎转发、分享、点赞、在看&#xff0c;谢谢~。 01—效果预览02—代码如下一、FireControl.cs 代码如下using System; using System.Collections.Generic; using System.Linq; using System.Tex…

08 comet反向ajax

一&#xff1a;HTTP协议与技久链接分块传输---->反向ajax 反向ajax又叫comet, server push,服务器推技术. 应用范围: 网页聊天服务器,, 新浪微博在线聊天,google mail 网页聊天,都有用到. 原理: 一般而言, HTTP协议的特点, 连接<->断开. 具体什么时间断开? 服务器响应…

男朋友出的性格测试题

1 一家人出去玩了三天&#xff0c;把猫忘在家里了&#xff01;2 嗷呜3 竟然毫无违和感4 叫你一声造句鬼才不过分吧5 秋天原来是这样来的嘛~6 当代嗑cp网友现状5 现在的年轻人都哪里学来的这么多招数内容自沙雕男友的日常你点的每个赞&#xff0c;我都认真当成了喜欢

杂项记录

http://poj.org/ 算法 线性代数 编译原理 算法导论 算法&#xff08;软件设计师教程&#xff09; 《ACM国际大学程序设计竞赛亚洲区预选赛真题题解》转载于:https://www.cnblogs.com/end/archive/2011/10/29/2228940.html

linux连接建立的时间,用timedatectl在Linux中检查当前时区及更改时区(创建符号链接来更改时区)...

本文介绍如何在Linux操作系统中设置或更改时区的方法&#xff0c;可以使用timedatectl&#xff0c;包括通过创建符号链接来更改时区。前言时区是具有相同标准时间的地理区域&#xff0c;通常&#xff0c;时区是在操作系统的安装过程中设置的&#xff0c;但以后可以轻松更改。对…

python能不能自动写代码_微软最强 Python 自动化工具开源了!不用写一行代码

1. 前言最近&#xff0c;微软开源了一款非常强大的 Python 自动化依赖库&#xff1a;playwright-python&#xff0c;它支持主流的浏览器&#xff0c;包含&#xff1a;Chrome、Firefox、Safari、Microsoft Edge 等&#xff0c;同时支持以无头模式、有头模式运行&#xff0c;play…

mapbox 导航_狂甩不掉,骑行最稳手机支架!一体式安装太方便,秒变单车导航仪...

发对于骑行爱好者而言&#xff0c;对手机支架的稳固性有很高的要求&#xff0c;同时支架体积不能太大&#xff0c;对手机本身也要有一定的保护性&#xff0c;手机安放好&#xff0c;骑行才能更自在&#xff01;一个舒适的手机支架&#xff0c;对于业务繁忙或者像小渣一样的路痴…

Docker小白到实战之Docker网络简单了解一下

前言现在对于Docker容器的隔离性都有所了解了&#xff0c;但对容器IP地址的分配、容器间的访问等还是有点小疑问&#xff0c;如果容器的IP由于新启动导致变动&#xff0c;那又怎么才能保证原有业务不会被影响&#xff0c;这就和网络有挂钩了&#xff0c;接下来就大概说说。正文…

(三)java的数据类型

java是一种强类型的语言&#xff0c;所谓强类型&#xff0c;意味着每个变量都要有确定的类型&#xff0c;每个表达式也要有明确的类型&#xff0c;包括传递的某些参数。java中从大的方面分有两大数据类型&#xff0c;分别是基本数据类型和引用数据类型&#xff0c;基本数据类型…