3D视觉 之 线激光3D相机
1 3D 视觉
常见的三维视觉技术,包含双目、ToF、激光三角、结构光等,如下图:
1)毫米级
双目、ToF、结构光(散斑)的精度为 mm 级,多见于消费领域,如:导航避障,VR/AR,刷脸支付等
2)微米级
线激光、结构光(编码)的精度是 um 级,主要应用在工业领域,如:表面缺陷检测、三维测量等
3)纳米级
另外,还有 nm 级精度的光谱共焦技术,可用于透明材质物体的三维测量
2 激光三角法
按照激光投射的不同模式,激光三角法有点激光、线激光、多线激光、激光网格等
2.1 测量原理
为了直观的了解激光三角法,用点激光位移传感器,演示其测量原理如下:
假定相机主光轴和激光平面的夹角为 $\theta$,镜头的像方焦距为 $f^{\prime}$,激光平面和主光轴的交点为 $H_2$,镜头前主点到 $H_2$ 的距离为 $l$
$Z_1$ 和 $Z_2$ 为被测物沿光平面的纵向位移,$z_1^{\prime}$ 和 $z_2^{\prime}$ 为对应在图像传感器上的物理尺寸位移
则通过相似三角形,有如下等式
$\quad \begin{split} \frac{z_1^{\prime}}{f^{\prime}} = \frac{Z_1 \cdot sin\theta }{l -Z_1 \cdot cos\theta} \end{split}$(过 $H_3$ 作到主光轴的垂线)
$\quad \begin{split} \frac{z_2^{\prime}}{f^{\prime}} = \frac{Z_2 \cdot sin\theta}{l+Z_2 \cdot cos\theta} \end{split}$(过 $H_1$ 作到主光轴的垂线)
进一步化简得
$\quad \begin{split} Z_1 = \frac{z_1^{\prime} \cdot l}{f^{\prime} \cdot sin\theta + z_1^{\prime} \cdot cos\theta}\end{split}$(近端视场)
$\quad \begin{split} Z_2 = \frac{z_2^{\prime} \cdot l}{f^{\prime} \cdot sin\theta - z_2^{\prime} \cdot cos\theta}\end{split}$(远端视场)
2.2 精度范围
在3D视觉技术中,从被测物的大小和纵向精度来考虑,广义三角法 (包含激光三角法) 处于中间的位置,如下:
- 被测物体的大小范围 1mm ~ 8m,对应精度 1um ~ 0.4mm
3 线激光3D相机
线激光3D相机,是一种基于三角测量原理,通过图像传感器,捕获激光发生器投射在物体表面的激光线信息,重构物体表面轮廓信息的三维相机
其结构示意图,如下:
3.1 深度测量范围
3.1.1 镜头景深
对于普通的3D视觉系统 (物面∥像面),深度测量范围即镜头的景深,假设放大率 $\begin{split}\beta = \frac{y^{\prime}}{y}\end{split}$,镜头的有效F数为 $(f/nr)_e$,则景深 $\begin{split}DOF \approx \frac{2 \cdot (f/nr)_e \cdot \delta}{\beta^2} \end{split}$
当系统设计的光学放大率 $\beta$ 较大时,意味着景深较小,如果要继续增大景深(尤其物体表面和镜头主面不平行),则只能增加 F数,即减小光圈
实际应用中,光圈的减小是有一定限度的:
1) 如果光圈太小,则会产生衍射,使得较小的细节信息变的模糊(即在最佳焦点下可解析的特征尺寸会变大)
2) 随着光圈的减小,进入图像传感器的光线也会越少,相应地,就要增大(激光器)功率或(相机)曝光时间
3.1.2 沙姆定律
在光圈调节受限的情况下,如果仍有部分成像不清晰,则可采用沙姆结构,将镜头逐渐倾斜,从而使整个物体表面都可以清晰成像,如下图:
线激光3D相机,为了增大深度测量范围,通常采用沙姆结构,如下:
- 被摄物平面 (激光平面)、镜头平面、胶片平面 (像平面) 交于一条直线,即沙姆定律(Scheimpflug principle)
假设成像芯片的胶深(Depth of Focus)为 ±g,则成像系统的景深(Depth of Field) 为下图中的阴影部分,即从 $\phi_1$ 到 $\phi_2$ 间的扇形区域
3.2 结构形式
线激光3D相机,基本的结构形式有四种:直射式、斜射式、反射式、同侧式。其它的结构,多是在此基础上的发展演变
直射式,布置安装简单,计算结果的应用非常直观,是目前最常用,也是一种通用的结构形式;
斜射式,布置安装简单,计算结果的应用不够直观,多用于对精度要求高的平面物体的特征测量;
反射式,布置安装复杂,计算结果的应用不够直观,多用于反射特性较弱的深色物体的表面测量;
同侧式,多用于高反光件,比较少见 (因为直射式和斜射式,通过俯仰一定的角度,也可达到类似的效果)
3.2.1 分辨率
线激光3D相机的分辨率,可分为三个方向:
1)激光条方向 (x轴):$\Delta x = \dfrac{\text 沿光条的视场宽度}{\text对应像素数量}$
2)运动方向 (y轴):$\Delta y = \dfrac{\text运动速度}{\text相机帧率}$,或 取决于编码信号
3)深度方向 (z轴):$\Delta z$ 取决于系统光学放大率、相机光轴和激光平面的夹角、激光条提点精度 (如:$\dfrac{1}{16}$像素,$\dfrac{1}{32}$像素,$\dfrac{1}{64}$像素,...)
相机光轴和激光平面的夹角 $\theta$ 越大,则相应的 $z$ 轴分辨率越高,如下:
假定沿激光条方向的分辨率,在以上结构中都为 $\Delta x$,则有:
$\quad\Delta z_{直射式} = \dfrac{\Delta x}{\sin \alpha_1}$,$\quad\Delta z_{斜射式} = \dfrac{\Delta x}{\tan \alpha_2}$
$\quad\Delta z_{反射式} = \dfrac{\Delta x \cdot \cos\beta_3}{\sin (\alpha_3+\beta_3)}$,$\quad\Delta z_{同侧式} = \dfrac{\Delta x \cdot \cos\beta_4}{\sin (\beta_4 -\alpha_4)}$
因此,如果只考虑 θ 角的影响,则 z 向分辨率为:反射式 > 斜射式 > 直射式 > 同侧式
3.2.2 光学遮挡
虽然增大相机光轴和激光平面之间的夹角,可以提高 z 轴分辨率,但随着夹角 θ 的增大,光学遮挡现象也会愈发明显
尤其是物体表面有凹凸起伏时,四种结构均存在一定的遮挡:激光线照不到的区域称为阴影,相机接收不着反射光线的区域称为盲区
因为激光发射线正对被测物,所以直射式的阴影最小;同理,因为相机正对被测物,所以反射式的盲区最小
实际中,大部分被测物的表面,通常都是凹凸起伏的。因此,θ 角的设计,要充分考虑精度(z轴) 和 遮挡(阴影和盲区) 的平衡
此外,也可增加激光器数量,从不同方向投射,来减少阴影;或者增加相机数量,从不同角度拍摄,将多幅图像进行融合,来降低盲区
3.3 散射特性
当激光束打在不同的被测物上时,考虑物体表面的散射特性,可分为四种情况:
a)激光打在镜面上时,发生镜面反射,反射方向取决于激光和表面的相对方向,反射光一般不会进入相机,表现为无信号
b)激光打在朗伯体上,发生均匀散射,散射的强度正比于观察方向和表面法向量夹角的余弦,是一种最理想的情况
c)激光打在普通物体上,通常发生定向散射,即最大散射强度出现在一个理想的反射方向上,散射分布的角半宽,取决于表面粗糙度
d)激光打在半透明物体上(塑料、玻璃等),光线会进入物体内部,发生体散射 (volume scattering)
实际中,物体表面的散射特性是 a) b) c) d) 的混合,其中占主导地位的散射特征,主要取决于表面粗糙度,如下图:
- 随着表面粗糙度的增加,物体的散射特性,由镜面散射占主导地位,逐渐演变为漫散射占主导
如果物体表面的颗粒大小和入射光的波长相近时,激光容易发生相长和相消干涉,产生散斑噪声,如下:
此外,激光散斑噪声,也与成像系统的放大率有关,放大率 β 越大,散斑噪声愈发明显。
保持系统结构不变,更换焦距为之前 1/2 的镜头,对于同样的激光条,新拍摄的图像,如下:
对于线激光3D相机,如果出现比较明显的散斑噪声,会影响光条中心点的提取精度,如下:
3.4 多重反射
如果被测物体的表面不均匀,则除了光学遮挡外,还有可能出现多重反射,如下图:
- 光线1是入射光在物体表面发生的第一次反射,光线2是入射光在物体表面发生的第二次反射,这两条光线在探测器上的成像位置不同
二次或多次反射的光线,与一次反射的光线相比,在光条图像上会看到明显变粗的倾向,因此,可将宽度超过一定阈值的光条剔除掉
但是,对于二次反射的光线,如果其反射的强度大于一次反射的强度,则可能会形成假像,影响测量精度
这种二次反射形成的假像,在物体材质为金属且表面存在小孔洞时,出现的概率较大,目前暂无有效的方法 (潜在可能解决的一个方向是线偏振)
4 行业浅析
从线激光3D相机到3D视觉产业,再到整个机器视觉的产业链图谱,如下:
1)上游是基础器件的生产商,如镜头、图像传感器、算法平台等;
2)中游为视觉系统制造商,如 ToF相机、线激光3D相机、结构光相机等;
3)下游则是围绕中游提供的视觉系统,深入到各个行业的系统集成商,如3C行业的缺陷检测、汽车制造的质量控制等
随着国家智能制造大战略的推进,整个行业将迎来快速增长期,尤其是国产化替代的进程会大大加快,替代过程会先从产业链的下游,再到中游,最后扩展到上游
以线激光3D相机为例,在 2015年以前,第一梯队主要是Keyence、LMI、Cognex等国外品牌,第二梯队有SICK、米铱、SmartRay等众多国外厂家,国内鲜有成规模的企业与之竞争
然而,在 2020年左右,国内涌现出了像是深视智能、中科行智等一批国产厂商,虽然暂时不能完全替代第一梯队,但已经对第二梯队形成了较大的冲击
由此,预测在未来的 5-8年内,机器视觉行业内将会出现不止一家独角兽企业,完成产业链上-中-下游的全面整合,对当前第一二梯队的国外品牌形成全面的冲击,至少完成50%以上的国产化替代
未来机器视觉行业内,独角兽企业的形成有两种可能:
一种可能是,做某行业系统集成的下游企业,在业务拓展到一定规模后,反过来向上收购中游的3D视觉企业,最后把触手伸向上游的基础器件厂家,完成全产业链的整合
另一种则是,中游的视觉系统企业,在给下游企业提供视觉设备时,逐渐积累了具体行业内的应用经验,从而引入新的业务,形成对原来下游企业的成本优势,从而完成产业链的整合
参考资料
GOM High Precision 3D Metrology
Teledyne e2v How does laser triangulation work
Understanding laser-based 3D triangulation methods
《Laser Measurement Technology》ch10
《3D Imaging, Analysis and Applications》2nd, ch5
《Machine Vision: Automated Visual Inspection:Theory, Practice and Applications》
3D视觉 之 线激光3D相机的更多相关文章
- 3D视觉基础(基本原理及3D传感器基本参数)
本人所在行业属于3D视觉方向,因此最近也是学习了很多3D视觉的知识,这次专门总结一下. 传统工业机器视觉中,2D指的是X方向加Y方向,那么3D视觉自然就是加了一个Z方向.目前我接触到的公司产品是3D激 ...
- 奥比中光3D视觉传感器--OpenNI 2配置
PrimeSense是Kinect一代的芯片供应商,位于以色列,也是开源体感开发包OpenNI 的维护者.自从被 Apple 收购后,销声匿迹,OpenNI 也停止更新.现在可以从网站http://s ...
- 足不出户,一探古今,打造线上3D数字博物馆!
随着3D技术的不断革新,为了让更多的用户领略历史之美,越来越多的博物馆开始举办线上展览.通过模拟不同的环境.灯光投影.360°无死角放大缩小展品,观众可以享受到身临其境的沉浸体验.不仅如此,给展品加上 ...
- 3-Highcharts 3D图之3D柱状图分组叠堆3D图
<!DOCTYPE> <html lang='en'> <head> <title>3-Highcharts 3D图之3D柱状图分组叠堆3D图</ ...
- WPF 3D 小小小小引擎 - ·WPF 3D变换应用
原文:WPF 3D 小小小小引擎 - ·WPF 3D变换应用 WPF可以提供的3D模型使我们可以轻松地创建3D实体,虽然目前来看还很有一些性能上的问题,不过对于一些简单的3D应用应该是可取的,毕竟其开 ...
- SLAM入门之视觉里程计(2):相机模型(内参数,外参数)
相机成像的过程实际是将真实的三维空间中的三维点映射到成像平面(二维空间)过程,可以简单的使用小孔成像模型来描述该过程,以了解成像过程中三维空间到二位图像空间的变换过程. 本文包含两部分内容,首先介绍小 ...
- 背水一战 Windows 10 (70) - 控件(控件基类): UIElement - Transform3D(3D变换), Projection(3D投影)
[源码下载] 背水一战 Windows 10 (70) - 控件(控件基类): UIElement - Transform3D(3D变换), Projection(3D投影) 作者:webabcd 介 ...
- 3d角色模型 制作 全过程 。3d max 。3d role model making process.3d Max
3d角色模型 制作 全过程 .3d max 3d role model making process.3 d Max 作者:韩梦飞沙 Author:han_meng_fei_sha 邮箱:313134 ...
- 用Canvas玩3D:点-线-面
声明:本文为原创文章,如需转载,请注明来源WAxes,谢谢! 玩Canvas玩了有两三个礼拜了,平面的东西玩来玩去也就那样,所以就开始折腾3D了. 因为Canvas画布终究还是平面的,所以要有3D就得 ...
随机推荐
- HTTP缓存协议实战
一.什么是缓存 缓存,又称作Cache,我们把临时存储数据的地方叫做缓存池,缓存池里面放的数据就叫做缓存.当用户需要使用这些数据,首先在缓存中寻找,如果找到了则直接使用.如果找不到,则再去其他数据源中 ...
- 基于TI DSP TMS320C6678、Xilinx K7 FPGA XC7K325T的高速数据处理核心板
一.板卡概述 该DSP+FPGA高速信号采集处理板由我公司自主研发,包含一片TI DSP TMS320C6678和一片Xilinx FPGA K7 XC72K325T-1ffg900.包含1个千兆网口 ...
- Solution -「Code+#4」「洛谷 P4370」组合数问题 2
\(\mathcal{Description}\) Link. 给定 \(n,k\),求 \(0\le b\le a\le n\) 的 \(\binom{a}{b}\) 的前 \(k\) 大. ...
- 排查log4j不输出日志到文件的问题
问题描述 项目使用Spring Boot框架,在pom文件中添加了如下配置: <dependency> <groupId>org.slf4j</groupId> & ...
- WebKit Inside: DOM树的构建
当客户端App主进程创建WKWebView对象时,会创建另外两个子进程:渲染进程与网络进程.主进程WKWebView发起请求时,先将请求转发给渲染进程,渲染进程再转发给网络进程,网络进程请求服务器.如 ...
- XStream: Stream Processing Platform at Facebook
这是Facebook在FlinkForward2021上的一个talk, 主题如下 在前面的论文中分析了Facebook的实时计算引擎的设计和选型的考量,里面提到了Facebook的实时计算引擎为了满 ...
- MySQL高级优化
MySQL高级 1.索引是什么? (1)索引是排好序可以快速查找的数据结构 (2)方便快速查找,索引实际上也是一张表所以也是要占内存的 2.索引存在哪里? (1)InnoDB引擎 ①索引是和数据存放在 ...
- Linux C/C++ UDP 网络通信
昨晚 Vv 想让我给她讲讲网络编程,于是我就傻乎乎的带她入了门... 以下内容为讲课时制作的笔记- 1. socket() 函数 1.1 头文件 #include<sys/socket.h> ...
- Typora的使用教程.md
Typora的使用教程 原创:https://home.cnblogs.com/u/cn-zhouchao 2021.12.13 一.软件的介绍 Typora 是一款由 Abner Lee 开发的轻量 ...
- C#源代码的组成
引用 using ...表达式 i=5.i>5 语句:int i=5: 快( block ):{ }