来源:公众号|3D视觉工坊(系投稿)

作者:白杨

「3D视觉工坊」技术交流群已经成立,目前大约有12000人,方向主要涉及3D视觉、CV&深度学习、SLAM、三维重建、点云后处理、自动驾驶、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、学术交流、求职交流、ORB-SLAM系列源码交流、深度估计等。工坊致力于干货输出,不做搬运工,为计算机视觉领域贡献自己的力量!欢迎大家一起交流成长~

添加小助手微信:CV_LAB,备注学校/公司+姓名+研究方向即可加入工坊一起学习进步。

QQ群「3D视觉研习社」,群号:574432628

激光三角测量法,是工业视觉领域较为常用也是比较容易理解的一种3D检测算法。本文主要从应用层次来阐述,包括相机和激光选型、搭接方式的优劣点分析、软件开发过程中的注意事项等。

1.原理及演示

将一条单线细激光光线投射到物体表面,由于物体表面高度发生变化,使得激光线发生了弯曲,根据这个线的变形,可以计算出精确的物体表面三维轮廓。如下图所示,基本组成结构有:1) 2D/3D相机 2)线激光 3)镜头 4)固定架和安装方法




2.特点

1)可以同时获得X,Z向坐标

2)相机与被测物之间必须有相对运行

3)主要用于在线3D测量

4)适合近距离、高精度、高速测量

3.关键参数

相机的选择

相机可以选择普通面阵相机或3D相机,均可以得到3D图像或者点云数据。使用普通面阵相机,需要自己提取轮廓线,并通过标定来重建深度图像,Halcon里面有现成的例程进行实现。如果对行频要求不高、Z向精度要求不高的场合,完全可以使用高速面阵相机来实现。

我近期所做项目,对行频和精度要求偏高,所以还是选取的3D相机的方案。德国的SICK、AT相机是工业检测应用中用的比较多的两款3D相机了,最高行频都可以做到几十KHZ,以AT相机为例,具体参数如下:


行频的大小除了和行数有关,也跟设置的ROI的宽度(像素点数)、曝光时间均有直接的关系。

线激光的选择

线激光的评价参数有很多,如均匀性、点稳定性、准直度、瞄准线、功率稳定性。激光器自身的参数有:扇角、功率、景深等。实际项目选型中,最常用的参数有:


  • 功率:功率越高,激光的强度越大(肉眼看越亮)。对于黑色不反光材质,要选择功率大一点的激光。功率的稳定性也会影响测量的灵敏性,较差的功率稳定性,将不能使用固定的阈值方法,对于较低对比度的物体测量变得困难

  • 均匀性:不好的均匀性会降低分辨率和精度


经过对多个不同品牌激光的测试,德国的ZLaser激光是性价比较高的一款激光,多种型号可以满足不同场合的应用。

搭接方式的选择

1)标准安装:激光垂直材料平面,相机与激光呈α角度


适应场合:大多数场合均适用

优点:轮廓上的点都有相同的Y坐标,标定简单

缺点:存在盲区

2)反向安装:相机垂直材料平面,激光与相机呈α角度


适用场合:平面物体

优点:可增加高度分辨率

缺点:轮廓上的点的Y坐标不相同,标定复杂

3)发射式安装或明场安装方式


适用场合:适用于返光不强的平面物体。由于直接反射,可增加物体的返光亮度(对于某些材质,可能是缺点)。

优点:大大增加高度分辨率

缺点:标定复杂

4)暗场安装方式

适用场合:返光较强的平面物体。


优点:可减少直接光的反射

缺点:会降低高度分辨率,标定复杂

测量角的选择

较大的测量角,可以带来更高的Z方向分辨率,同时也会导致更大的盲区。所以需要根据实际项目情况进行权衡。


例如:5mm高物体,,盲区为mm

4.实际应用

应用举例


需要已知如下信息:

  • 物体大小(长、宽、高)

  • X,Y,Z方向精度要求

  • 扫描速度

  • 应用类型

  • 材质

举个例子,需要测量的物体大小为80*50*5(长*宽*高),X向精度,Y向精度,扫描速度为2m/s,那么需要的X向分辨率不高于,Y向分辨率不高于。

需要选择的像素点数不低于80/;对应的行频不低于2000/。

相机能达到的最大行频,取决于ROI有效区域的大小、曝光时间和轮廓提取算法等。而ROI有效区域的大小又取决于材料的厚度范围,曝光时间一部分取决于材料的材质(有的材料比如橡胶轮胎为黑色吸光的材质,在同等光源亮度情况下,需要的曝光时间要高一些)

2)镜头选择

这个跟2D一致。主要取决于现场安装的工作距离,焦距越大工作距离越远

3)搭接方式

如上所述,各有利弊,可以从标定的难易程度、检测精度、平面物体的材质等多个因素考虑选择哪种方式

采图

当相机和激光角度固定时,相机安装方向的不同会导致灰度极性的不同(即高度越高的物体,对应的灰度值越亮还是越暗)。简单总结:相机自身安装是有方向的,若激光在相机的正方向的上面,则高度越高的物体,对应的灰度值越低;否则对应的灰度值越高。

基于此,如果想改变灰度极性,在不更改相机安装方向的情况下,可以通过设置ReverseY参数来更改。



标定

标定的目的:获得相机内外参数、以及激光光平面的方向。进而可以计算出物体X和Z向的物理单位大小。3D相机一般集成了现成的标定模块,所以标定起来比较容易,经常用的标定方法为:锯齿形标定板


通过在运动方向上移动标定块,调用相机自身的标定算法,来实现对3D相机的标定。

本文仅做学术分享,如有侵权,请联系删文。

opencv 通过标定摄像头测量物体大小_激光三角测量法在工业视觉检测上的应用...相关推荐

  1. 激光三角测量法在工业视觉检测上的应用

    点击上方"计算机视觉工坊",选择"星标" 干货第一时间送达 激光三角测量法,是工业视觉领域较为常用也是比较容易理解的一种3D检测算法.本文主要从应用层次来阐述, ...

  2. opencv 通过标定摄像头测量物体大小_解决方案 | 如何用普通手机准确测量物体体积?...

    点击上方"计算机视觉life",选择"星标" 快速获得第一手干货 本文授权自机器之心. 最近,菜鸟全球科技挑战赛总决赛落幕.赛题「智能体积测量」关注物流要素「长 ...

  3. opencv 通过标定摄像头测量物体大小_视觉激光雷达信息融合与联合标定

    点击上方"新机器视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 编者按 最近在为车辆添加障碍物检测模块,障碍物检测可以使用激光雷达 ...

  4. 激光三角测量法 原理、优点和不足

    目录 引言 激光三角测量法的原理 正入射 斜入射 正入射与斜入射的对比 激光三角测量法测距的特点 主要误差来源 激光抖动 被测物体表面颜色 激光光斑检测精度 入射光束的景深限制 参考文献 引言 激光测 ...

  5. 激光三角测量法中像素坐标与相机坐标转换

    对激光三角测量原理进行数学建模.以相机光心Oc为原点建立相机坐标系Oc-XcYcZc.沿OcZc轴在距离光心Oc焦距f处建立等效像素坐标系Opix-uv.设轴OcZc交Opix-uv平面于Op,建立图 ...

  6. 基于Qt和OpenCV的工业视觉检测APP

    主要功能 颜色识别,角度检测,数字识别,TCP通讯 主界面 包含功能:模板图片集获取,模板图片集清除,端口选择,开启端口监听,关闭端口监听,检测结果发送下位机(本次演示所用下位机为 ABB的IPB 1 ...

  7. java 波峰检测_轻量算法根据核密度估计检测波峰算法 ---基于有限状态自动机和递归实现...

    原创博客,转载请联系博主! 希望我思考问题的思路,也可以给大家一些启发或者反思! 问题背景: 现在我们的手上有一组没有明确规律,但是分布有明显聚簇现象的样本点,如下图所示: 图中数据集是显然是个3维的 ...

  8. 正弦波 程序 角度传感器_激光位移传感器的原理及应用领域

    激光位移传感器是利用激光技术进行测量的传感器,由激光器.激光检测器和测量电路组成.作为新型测量设备,激光位移传感器能够精确非接触测量被测物体的位置.位移等变化,还可测量位移.厚度.振动.距离.直径等精 ...

  9. 热视觉2:使用Python和OpenCV从图像中测量温度

    热视觉2:使用Python和OpenCV从图像中测量温度 这篇博客将介绍学习热/中远红外视觉的基础知识,gray8 和 gray16 图像(即最常见的热成像格式)之间的差异,学习如何使用Python和 ...

最新文章

  1. Laravel:使用Migrations
  2. java设计模式---迭代器模式
  3. mysql视图_mysql之视图详解
  4. 0116互联网新闻 | “DaDa英语”近日完成2.55亿美元D轮融资;腾讯推今年首个手游“闹闹天宫”...
  5. django前后端结合_简单4步用FLASK/Django部署你的Pyecharts项目
  6. 如何使用Dirsearch探测Web目录
  7. Web前端 Javascript笔记(1)数组
  8. DXUT框架剖析(4)
  9. mtk6765上i2c-tools的使用
  10. lzg_ad:在CF卡上实现EWF功能
  11. windows server 驱动精灵_win10网络重置后,无线网卡驱动消失的解决办法
  12. VMWare 卡顿优化详解
  13. PHP小马免杀的浅谈[过最新D盾]
  14. 人生一定要知道的十大“博弈”!
  15. GAMES101-现代计算机图形学学习笔记(作业07)
  16. 大聪明教你学Java | 如何写出优雅的接口
  17. Markdown图片居中、文字居中
  18. zk-web框架的学习之路,重新认识Java,Eclipse安装zk插件
  19. 微信开发者工具的版本管理如何使用
  20. MySQL数据库进阶版

热门文章

  1. 高精地图落地 | InstaGraM:实时端到端矢量化高精地图新SOTA!
  2. [论文翻译]A SURVEY ON DEEP LEARNING METHODS FOR SEMANTIC IMAGE SEGMENTATION IN REAL-TIME
  3. Python各版本安装包下载
  4. tomcat连接池的配置与使用
  5. 18年春季第一题 PAT甲级 1144 The Missing Number (20分) 上限感很重要
  6. ARM安装python模块
  7. 小马哥-----高仿苹果6s版本 m718 6571各日期版本刷机拆机说明
  8. 几款主流快速开发平台比较
  9. 十二、数字图像处理之彩色图像处理
  10. 微信小程序医院门诊体检预约信息管理系统SSM-JAVA【数据库设计、论文、源码、开题报告】