[Halcon3D] 主流的3D光学视觉方案及原理

news/2025/1/18 1:35:22/
  • 📢博客主页:https://loewen.blog.csdn.net
  • 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
  • 📢本文由 丶布布原创,首发于 CSDN,转载注明出处🙉
  • 📢现在的付出,都会是一种沉淀,只为让你成为更好的人✨

文章预览:

      • 一. 前言
      • 二. 主流3D成像方法汇总
        • 1、双目立体视觉法(Stereo Vision)
        • 2、激光三角传感器原理
        • 3、结构光法(Structured Light)
        • 4、飞行时间法(Time of Flight)


一. 前言

传统工业机器视觉中,3D视觉与2D视觉技术的最大区别在于处理的数据类型不同:

  • 2D视觉领域中,主要是处理二维(X,Y)平面图像里的信息(像素的灰度值)—— 像素灰度处理
  • 3D视觉领域中,核心是对3D传感器采集到的三维(X,Y,Z点云数据进行处理,可对物体进行立体测量,获取物体平面度、高度等信息 —— 点云数据处理

二. 主流3D成像方法汇总

目前市面上的测距方法主要分为两个大类:

  1. 被动测量类:单目视觉、双目视觉和多目视觉;
  2. 主动测量类:结构光法、TOF飞行时间法,激光三角测距法;

一般工业领域都是普遍采用激光三角测距法,因为激光三角测距法的精度比较高,抗干扰能力也很强,此外结构光+双目/单目的方式也比较常见。

1、双目立体视觉法(Stereo Vision)

双目立体视觉法的技术原理是通过从两个视点观察同一物体,从而来获得同一物体在不同视角下的图像。通过三角测量原理来计算图像像素间的位置偏差(视差)来获取物体的三维图像,比如把一只手指放在鼻尖前方,左右眼看到手指会有一个错位的效果,这个位置差被称为视差。相机所要拍摄的物体离相机越近,视差越大,离相机越远,视差就越小。由此可以得出,当两个相机的位置等条件已知时,就可以通过计算相似三角形的原理来得出从物体到相机的距离。

在这里插入图片描述


2、激光三角传感器原理

3D激光相机利用激光三角反射原理生成点云数据,它由激光发射器镜头以及感光芯片,如图所示:

在这里插入图片描述

3D相机中,取代光源的是激光发射器,通过复杂的光学系统设计,激光发射器发出一束激光照射到被测物体表面,反射光经过光学透镜组在相机的感光元件表面形成光斑,不同高度的表面反射形成的光斑位置各不相同。如下图所示,当被检测表面偏高时,测量激光光斑位置会右移;反之,如果被检测表面偏低时,测量激光光斑位置会左移。

在这里插入图片描述
而我们实际需要求的就是物体表面①②之间高度差h,具体计算如下所示(以直射式为例):

在这里插入图片描述
已知激光和相机之间的夹角θ、像高h’(通过处理图像获得)、焦距 fOH = hcosθAH = hsinθA’JO’AJH为相似三角形,则可通过公式计算高度h
f a + h c o s θ = h ’ a + h s i n θ \frac{f}{a+hcosθ} = \frac{h’}{a+hsinθ} a+hcosθf=a+hsinθh

三维(X,Y,Z)点云数据的获取:

一般我们把激光线方向称为X方向,也就是激光照射出来的那条线定义为X轴,高度为Z方向,通过一次静态拍照,我们可以得到XZ两个方向的数据,Y方向可以通过移动相机或者移动物体,使相机持续不断的拍照,就形成了连续的Y方向数据,最后组合在一起,就是我们所需要的3D点云数据。
在这里插入图片描述
注:不同厂家的产品,X/Y方向可能是相反的。

3D激光相机的手动搭建流程:

相机内外参标定(同2D标定)—— 激光器发射的光平面和相机之间的位置关系标定 —— 移动标定(激光器不一定垂直发射到平面的,需要校正)


3、结构光法(Structured Light)

结构光(Structured light):通常采用特定波长的不可见的红外激光作为光源,它发射出来的光经过一定的编码投影在物体上,通过一定算法来计算返回的编码图案的畸变来得到物体的位置和深度信息。根据编码图案不同一般有条纹结构光—enshape ,编码结构光—Mantis Vision, Realsense(F200), 散斑结构光–apple(primesense)

结构光法利用光学三角测量原理,分为单目结构光和双目结构光,如图所示以双目结构光为例:

在这里插入图片描述

特定波长的Laser发出的结构光照射在物体表面,其反射的光线被带滤波的camera相机接收,滤波片保证只有该波长的光线能为camera所接受。芯片对接收到的光斑图像进行运算,得出物体的深度数据。


4、飞行时间法(Time of Flight)

TOF是Time of Flight的简写,直译为飞行时间的意思。所谓飞行时间法3D成像,是通过给目标连续发送光脉冲,然后用传感器接收从物体返回的光,通过探测光脉冲的飞行(往返)时间来得到目标物距离,从而获取物体三维轮廓信息。

在这里插入图片描述
TOF法根据调制方法的不同,一般可以分为两种:脉冲调制(Pulsed Modulation)和连续波调制(Continuous Wave Modulation)。

TOF深度相机对时间测量的精度要求较高,即使采用最高精度的电子元器件,也很难达到毫米级的精度。因此,在近距离测量领域,尤其是1m范围内,TOF深度相机的精度与其他深度相机相比还具有较大的差距,这限制它在近距离高精度领域的应用,具体应用场景参考:3D视觉传感技术。


下雨天,最惬意的事莫过于躺在床上静静听雨,雨中入眠,连梦里也长出青苔。

http://www.ppmy.cn/news/103726.html

相关文章

位图、布隆过滤器、海量数据处理

提示: 本文介绍了,位图、布隆过滤器、以及海量数据处理问题。 本节有很多关于大数处理的案例(已解答)。 ——细雨斜风作晓寒,淡烟疏柳媚晴滩。(苏轼) 文章目录 一、位图1.1 位图概念1.2 位图实…

Linux:LAMP的架构与环境配置

这里写目录标题 一、LAMP1.1 LAMP是什么1.2 安装顺序 二、编译安装Apache httpd服务2.1 关闭防火墙,将安装Apache所需软件包传到/opt目录下2.2 安装环境依赖包2.3 配置软件模块2.4 编译及安装2.5 优化配置文件路径2.6 添加httpd系统服务2.7 修改httpd 服务配置文件2…

springweb

SpringWeb 概述 springWeb 是 spring 框架的一个模块,springWeb 和 spring 无需通过中间整 合层进行整合。 springWeb 是一个基于 mvc 的 web 框架,方便前后端数据的传输. SpringWeb 拥有控制器,接收外部请求,解析参数传给服务层. SpringM…

枚举_源码_分析

枚举源码分析 前言 这是所有Java语言枚举类型的公共基类。关于枚举的更多信息,包括编译器合成的隐式声明方法的描述,可以在Java的第8.9节中找到™ 语言规范。 请注意,当使用枚举类型作为集合的类型或映射中键的类型时,可以使用专…

Java Spring概述

文章目录 1、Spring是什么?2、Spring 的狭义和广义3、Spring Framework特点4、Spring模块组成5、Spring6版本要求 1、Spring是什么? Spring 是一款主流的 Java EE 轻量级开源框架 ,Spring 由“Spring 之父”Rod Johnson 提出并创立&#xff…

推荐一波免费的ChatGPT镜像,助力开发,事半功倍!

目录 核桃 andisearch 小杰AI zw7 AI万能助手 核桃 ​​​​​​​https://chat.jubianxingqiu.com/ 这个网站的使用和回答都是快速和准确的,只要提问的问题越具体,回答的答案就会更精准。而且这个网站还有一个好处就是不用充值也能用&#xff…

Java 集合、数组、字符串的相互转换(关于list.toArray(new String[0])的源码分析)

在 Java 中&#xff0c;可以通过以下方式实现集合、数组和字符串之间的相互转换。 一、集合和数组的相互转化 ①、将集合转为数组&#xff1a;&#xff08;toArray 方法&#xff09; List<String> list new ArrayList<>(); list.add("apple"); lis…

七个合法学习黑客技术的网站,让你从萌新成为大佬

合法的学习网站&#xff0c;以下这些网站&#xff0c;虽说不上全方位的满足你的需求&#xff0c;但是大部分也都能。能带你了解到黑客有关的技术&#xff0c;视频&#xff0c;电子书&#xff0c;实践&#xff0c;工具&#xff0c;数据库等等相关学习内容。以上这些网站我都是用…