干货 | 机器人视觉三维成像技术全解析

来源:机器人创新生态

在工业4.0时代,国家智能制造高速发展,传统的编程来执行某一动作的机器人已经难以满足现今的自动化需求。在很多应用场景下,需要为工业机器人安装一双眼睛,即机器人视觉成像感知系统,使机器人具备识别、分析、处理等更高级的功能,可以正确对目标场景的状态进行判断与分析,做到灵活地自行解决发生的问题。

机器视觉系统组成

从视觉软件进入机器视觉行业,有必要全局认识一下机器视觉系统组成。

典型的机器视觉系统可以分为:图像采集部分、图像处理部分和运动控制部分。基于PC的视觉系统具体由如图1所示的几部分组成:

①工业相机与工业镜头——这部分属于成像器件,通常的视觉系统都是由一套或者多套这样的成像系统组成,如果有多路相机,可能由图像卡切换来获取图像数据,也可能由同步控制同时获取多相机通道的数据。根据应用的需要相机可能是输出标准的单色视频(RS-170/CCIR)、复合信号(Y/C)、RGB信号,也可能是非标准的逐行扫描信号、线扫描信号、高分辨率信号等。

②光源——作为辅助成像器件,对成像质量的好坏往往能起到至关重要的作用,各种形状的LED灯、高频荧光灯、光纤卤素灯等都容易得到。

③传感器——通常以光纤开关、接近开关等的形式出现,用以判断被测对象的位置和状态,告知图像传感器进行正确的采集。

④图像采集卡——通常以插入卡的形式安装在PC中,图像采集卡的主要工作是把相机输出的图像输送给电脑主机。它将来自相机的模拟或数字信号转换成一定格式的图像数据流,同时它可以控制相机的一些参数,比如触发信号,曝光/积分时间,快门速度等。图像采集卡通常有不同的硬件结构以针对不同类型的相机,同时也有不同的总线形式,比如PCI、PCI64、Compact PCI,PC104,ISA等。

⑤PC平台——电脑是一个PC式视觉系统的核心,在这里完成图像数据的处理和绝大部分的控制逻辑,对于检测类型的应用,通常都需要较高频率的CPU,这样可以减少处理的时间。同时,为了减少工业现场电磁、振动、灰尘、温度等的干扰,必须选择工业级的电脑。

⑥视觉处理软件——机器视觉软件用来完成输入的图像数据的处理,然后通过一定的运算得出结果,这个输出的结果可能是PASS/FAIL信号、坐标位置、字符串等。常见的机器视觉软件以C/C++图像库,ActiveX控件,图形式编程环境等形式出现,可以是专用功能的(比如仅仅用于LCD检测,BGA检测,模版对准等),也可以是通用目的的(包括定位、测量、条码/字符识别、斑点检测等)。

⑦控制单元(包含I/O、运动控制、电平转化单元等)——一旦视觉软件完成图像分析(除非仅用于监控),紧接着需要和外部单元进行通信以完成对生产过程的控制。简单的控制可以直接利用部分图像采集卡自带的I/O,相对复杂的逻辑/运动控制则必须依靠附加可编程逻辑控制单元/运动控制卡来实现必要的动作。

  

一个完整的机器视觉系统的主要工作过程如下:

1、工件定位检测器探测到物体已经运动至接近摄像系统的视野中心,向图像采集部分发送触发脉冲。

2、图像采集部分按照事先设定的程序和延时,分别向摄像机和照明系统发出启动脉冲。 

3、摄像机停止目前的扫描,重新开始新的一帧扫描,或者摄像机在启动脉冲来到之前处于等待状态,启动脉冲到来后启动一帧扫描。 

4、摄像机开始新的一帧扫描之前打开曝光机构,曝光时间可以事先设定。

5、另一个启动脉冲打开灯光照明,灯光的开启时间应该与摄像机的曝光时间匹配。 

6、摄像机曝光后,正式开始一帧图像的扫描和输出。 

7、图像采集部分接收模拟视频信号通过A/D将其数字化,或者是直接接收摄像机数字化后的数字视频数据。 

8、图像采集部分将数字图像存放在处理器或计算机的内存中。 

9、处理器对图像进行处理、分析、识别,获得测量结果或逻辑控制值。

10、处理结果控制流水线的动作、进行定位、纠正运动的误差等。

机器人视觉成像的结构形式

机器人视觉系统的主要功能是模拟人眼视觉成像与人脑智能判断和决策功能,采用图像传感技术获取目标对象的信息,通过对图像信息提取、处理并理解,最终用于机器人系统对目标实施测量、检测、识别与定位等任务,或用于机械人自身的伺服控制。

在工业应用领域,最具有代表性的机器人视觉系统就是机器人手眼系统。根据成像单元安装方式不同,机器人手眼系统分为两大类:固定成像眼看手系统(Eye-to-Hand)与随动成像眼在手系统(Eye-in-Hand, or Hand-eye),如下图2所示。

图 2  两种机器人手眼系统的结构形式

(a)眼在手机器人系统,(b)眼看手机器人系统

有些应用场合,为了更好地发挥机器人手眼系统的性能,充分利用固定成像眼看手系统全局视场和随动成像眼在手系统局部视场高分辨率和高精度的性能,可采用两者混合协同模式,如用固定成像眼看手系统负责机器人的定位,使用随动成像眼在手系统负责机器人的定向;或者利用固定成像眼看手系统估计机器人相对目标的方位,利用随动成像眼在手系统负责目标姿态的高精度估计等,如图3所示。

图 3   机器人协同视觉系统原理图

机器人视觉三维成像方法

3D视觉成像可分为光学和非光学成像方法。目前应用最多的还是光学方法,其包括:飞行时间法、激光扫描法、激光投影成像、立体视觉成像等。

飞行时间3D成像

飞行时间(TOF)相机每个像素利用光飞行的时间差来获取物体的深度。目前已经有飞行时间面阵相机商业化产品,如Mesa Imaging AG SR-4000, PMD Technologies Cam Cube 3.0,微软Kinect V2等。

TOF成像可用于大视野、远距离、低精度、低成本的3D图像采集,其特点是:检测速度快、视野范围较大、工作距离远、价格便宜,但精度低,易受环境光的干扰。例如Camcueb3.0具有可靠的深度精度(<3mm @ 4m),每个像素对应一个3D数据。

扫描3D成像

扫描3D成像方法可分为扫描测距、主动三角法、色散共焦法。扫描测距是利用一条准直光束通过1D测距扫描整个目标表面实现3D测量的。主动三角法是基于三角测量原理,利用准直光束、一条或多条平面光束扫描目标表面完成3D成像,如图4所示。色散共焦通过分析反射光束的光谱,获得对应光谱光的聚集位置, 如图5所示。

图 4   线结构光扫描三维点云生成示意图

图 5   色散共焦扫描三维成像示意图

扫描3D成像的最大优点是测量精度高。其中色散共焦法还有其它方法难以比拟的优点,如非常适合测量透明物体、高反与光滑表面的物体。但缺点是速度慢、效率低;用于机械手臂末端时,可实现高精度3D测量,但不适合机械手臂实时3D引导与定位,因此应用场合有限。另外主动三角扫描在测量复杂结构面形时容易产生遮挡,需要通过合理规划末端路径与姿态来解决。

结构光投影3D成像

结构光投影三维成像目前是机器人3D视觉感知的主要方式。结构光成像系统是由若干个投影仪和相机组成,常用的结构形式有:单投影仪-单相机、单投影仪-双相机、单投影仪-多相机、单相机-双投影仪和单相机-多投影仪等。结构光投影三维成像的基本工作原理是:投影仪向目标物体投射特定的结构光照明图案,由相机摄取被目标调制后的图像,再通过图像处理和视觉模型求出目标物体的三维信息。

根据结构光投影次数划分,结构光投影三维成像可以分成单次投影3D和多次投影3D方法。单次投影3D主要采用空间复用编码和频率复用编码形式实现。由于单次投影曝光和成像时间短,抗振动性能好,适合运动物体的3D成像,如机器人实时运动引导,手眼机器人对生产线上连续运动产品进行抓取等操作。但是深度垂直方向上的空间分辨率受到目标视场、镜头倍率和相机像素等因素的影响,大视场情况下不容易提升。

多次投影3D具有较高空间分辨率,能有效地解决表面斜率阶跃变化和空洞等问题。不足之处在于:

1)对于连续相移投影方法,3D重构的精度容易受到投影仪、相机的非线性和环境变化的影响;

2)抗振动性能差,不合适测量连续运动的物体;

3)在Eye-in-Hand视觉导引系统中,机械臂不易在连续运动时进行3D成像和引导;

4)实时性差,不过随着投影仪投射频率和CCD/CMOS图像传感器采集速度的提高,多次投影方法实时3D成像的性能也在逐步改进。

对于粗糙表面,结构光可以直接投射到物体表面进行视觉成像;但对于大反射率光滑表面和镜面物体3D成像,结构光投影不能直接投射到被成像表面,需要借助镜面偏折法。

偏折法对于复杂面型的测量,通常需要借助多次投影方法,因此具有多次投影方法相同的缺点。另外偏折法对曲率变化大的表面测量有一定的难度,因为条纹偏折后反射角的变化率是被测表面曲率变化率的2倍,因此对被测物体表面的曲率变化比较敏感,很容易产生遮挡难题。

立体视觉3D成像

立体视觉字面意思是用一只眼睛或两只眼睛感知三维结构,一般情况下是指从不同的视点获取两幅或多幅图像重构目标物体3D结构或深度信息,如图6所示。

图6  立体视觉三维成像示意图

立体视觉可分为被动和主动两种形式。被动视觉成像只依赖相机接收到的由目标场景产生的光辐射信息,该辐射信息通过2D图像像素灰度值进行度量。被动视觉常用于特定条件下的3D成像场合,如室内、目标场景光辐射动态范围不大和无遮挡;场景表面非光滑,且纹理清晰,容易通过立体匹配寻找匹配点;或者像大多数工业零部件,几何规则明显,控制点比较容易确定等。

主动立体视觉是利用光调制(如编码结构光、激光调制等)照射目标场景,对目标场景表面的点进行编码标记,然后对获取的场景图像进行解码,以便可靠地求得图像之间的匹配点,再通过三角法求解场景的3D结构。主动立体视觉的优点是抗干扰性能强、对环境要求不高(如通过带通滤波消除环境光干扰),3D测量精度、重复性和可靠性高;缺点是对于结构复杂的场景容易产生遮挡问题。

基于结构光测量技术和3D物体识别技术开发的机器人3D视觉引导系统,可对较大测量深度范围内散乱堆放的零件进行全自由的定位和拾取。相比传统的2D视觉定位方式只能对固定深度零件进行识别且只能获取零件的部分自由度的位置信息,具有更高的应用柔性和更大的检测范围。可为机床上下料、零件分拣、码垛堆叠等工业问题提供有效的自动化解决方案。

机器视觉3D引导系统框架


3D重建和识别技术

通过自主开发的3D扫描仪可获准确并且快速地获取场景的点云图像,通过3D识别算法,可实现在对点云图中的多种目标物体进行识别和位姿估计。

3D重建和识别效率

多种材质识别效果测试 

得益于健壮的重建算法和识别算法,可对不同材质的零件进行稳定的重建和识别,即便是反光比较严重的铝材料及黑色零件都能获得较好的重建和识别效果,可适用于广泛的工业场景。

机器人路径规划

并不是获得零件的位姿信息后就能马上进行零件的拾取,这仅仅只是第一步,要成功拾取零件还需要完成以下几件事:

自主开发的机器人轨迹规划算法,可轻松完成上述工作,保证机器人拾取零件过程稳定可靠。

快速切换拾取对象

只需要四个简单的操作即可实现拾取对象的快速切换,无需进行复杂的工装、产线的调整。

性能比较

1. 类似于飞行时间相机、光场相机这类的相机,可以归类为单相机3D成像范围,它们体积小,实时性好,适合随动成像眼在手系统执行3D测量、定位和实时引导。但是,飞行时间相机、光场相机短期内还难以用来构建普通的随动成像眼在手系统,主要原因如下:

1)飞行时间相机空间分辨率和3D精度低,不适合高精度测量、定位与引导。

2)对于光场相机,目前商业化的工业级产品只有为数不多的几家,如德国Raytrix,虽然性能较好,空间分率和精度适中,但价格贵,使用成本太高。

图 7  随动成像眼在手系统机器人3D视觉成像优选方案

2. 结构光投影3D系统,精度和成本适中,有相当好的应用市场前景。它由若干个相机-投影仪组成的,如果把投影仪当作一个逆向的相机,可以认为该系统是一个双目或多目3D三角测量系统。

3. 被动立体视觉3D成像,目前在工业领域也得到较好应用,但应用场合有限。因为单目立体视觉实现有难度,双目和多目立体视觉要求目标物体纹理或几何特征清晰。

4. 结构光投影3D、双目立体视觉3D都存在下列缺点:体积较大,容易产生遮挡。针对这个问题虽然可以增加投影仪或相机覆盖被遮挡的区域,但会增加成像系统的体积,减少在Eye-in-Hand系统中应用的灵活性。

总结

虽然光学3D视觉成像测量方法种类繁多,但能够安装在工业机器人上,组成一种合适的随动成像眼在手系统,对位置变动的目标执行3D成像测量、引导机器人手臂准确定位和实施精准操作的方法有限。因为从工业应用的角度来说,我们更关心的是3D视觉传感器的精度、速度、体积与重量。

鉴于机器人末端能够承受的端载荷有限,允许传感器占用的空间有限,传感器在满足成像精度的条件下,重量越轻体积越小也就越实用。所以,对于随动成像眼在手系统,最佳3D成像方法是采用被动单目(单相机)3D成像方法,这样不仅体积小、重量轻,也解决了双目和多目多视图遮挡难题。

未来智能实验室的主要工作包括:建立AI智能系统智商评测体系,开展世界人工智能智商评测;开展互联网(城市)云脑研究计划,构建互联网(城市)云脑技术和企业图谱,为提升企业,行业与城市的智能水平服务。

  如果您对实验室的研究感兴趣,欢迎加入未来智能实验室线上平台。扫描以下二维码或点击本文左下角“阅读原文”

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

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

相关文章

python海龟绘图_Python教学案例|海龟绘图三例

说明&#xff1a;海龟绘图网上的案例非常多&#xff0c;网上百度一搜就可以找到各种各样的不同绘图参考代码&#xff0c;简单的有&#xff0c;难的有绘制梵高画、九大行星图等等&#xff0c;有需求的最好问度娘&#xff0c;简单又方便。分享Python 基础教程:https://www.runoob…

后香农时代,华为提出10大数学挑战问题

来源&#xff1a;机器之心编辑&#xff1a;杜伟后香农时代的通信技术会如何发展&#xff1f;又有哪些值得业界关注的数学问题呢&#xff1f;在上月底结束的长沙「数学促进企业创新发展论坛」上&#xff0c;华为董事、战略研究院院长徐文伟抛出了后香农时代信息产业发展面临的了…

Oracle中如何查询一个表的所有字段名和数据类型

Oracle中如何查询一个表的所有字段名和数据类型 查询语法 select A.COLUMN_NAME,A.DATA_TYPE from user_tab_columns A where TABLE_NAME表名 查询例子 select A.COLUMN_NAME,A.DATA_TYPE from user_tab_columns A where TABLE_NAMEPUB_GOODS 添加排序后例子 select A.COLUMN…

美智库:下一代国防战略之竞争战略

来源&#xff1a;远望智库预见未来编译&#xff1a; 张涛&#xff08;远望智库技术预警中心&#xff09;美国新国家安全中心(CNAS)日前发布题为《竞争战略》的文章&#xff0c;作者梅兰妮西森撰文分析认为五角大楼的下一代国防战略需要一种能够说服盟友和胁迫对手的竞争战略。背…

mysql key buffer_mysql 开发进阶篇系列 16 MySQL Server(myisam key_buffer)

一.概述mysql 提供了很多参数来进行服务器的设置&#xff0c;当服务第一次启动的时候&#xff0c;所有启动参数值都是系统默认的。这些参数在很多生产环境下并不能满足实际的应用需求。在这个系列中涉及到了linux 服务器&#xff0c;我这里是centos7.4, mysql 5.7,Xshell6。1. …

这里有一张中国的数字化地图,请查收

来源&#xff1a;腾讯研究院今天&#xff0c;在2020腾讯全球数字生态大会上&#xff0c;腾讯研究院联合腾讯云发布了《数字中国指数报告&#xff08;2020&#xff09;》。此次发布的报告显示&#xff1a;2019年数字中国指数继续保持高速增长&#xff0c;其中&#xff0c;以珠三…

华为王成录:把安卓最核心部分换得差不多了 手机升级鸿蒙OS 2.0水到渠成

内容来自网易新闻9月10日下午&#xff0c;华为在东莞松山湖举办了2020华为开发者大会&#xff0c;发布了鸿蒙OS 2.0、EMUI 11&#xff0c;并介绍HMS生态目前最新的成果和进展。大会上&#xff0c;华为消费者业务CEO余承东表示&#xff0c;鸿蒙OS 2.0全面使能全场景生态&#xf…

mybatis mysql5.7_spring boot整合ES+mysql5.7+mybatis+iview个人博客系统

项目描述目前博主正在开发自己的博客&#xff0c;分享的目的&#xff0c;是为了给自己留一版基础代码&#xff0c;好用来以后&#xff0c;做二次开发&#xff0c;也方便大家做二次开发。这个代码我还整合了其他的东西&#xff0c;比如qz定时器&#xff0c;shiro&#xff0c;只不…

人工智能写出第一篇文章:我真的没想要消灭你们,人类!

来源&#xff1a;网信科技前沿在攻克棋类&#xff0c;飞行操控&#xff0c;机器视觉&#xff0c;语音识别等领域后&#xff0c;人工智能又开始入侵写作领域。人工智能被人类开发出来是为了方便我们人类的生活&#xff0c;帮助人类处理一些事物&#xff0c;它的优点在于其拥有庞…

html间隔代码_HTML+CSS基础入门开发,经典Loading加载缩放动画特效

大家好&#xff0c;本篇文章分享经典Loading加载缩放动画特效&#xff0c;欢迎参考和指正。效果图&#xff1a;Loading加载缩放动画特效HTML代码&#xff1a;CSS代码&#xff1a;知识点&#xff1a;animation&#xff1a;是CSS3的动画属性&#xff0c;这里把animation绑定到tui…

造一个鸿蒙,仅有华为还不够

来源&#xff1a;雷锋网作者&#xff1a;肖漫“全场景”一词&#xff0c;可以说是整个开发者大会上的高频词汇&#xff0c;在介绍鸿蒙系统 2.0 时&#xff0c;余承东强调&#xff0c;鸿蒙 OS 是首个真正为全场景时代打造的分布式操作系统。用王成录会后采访的话说&#xff0c;鸿…

mysql怎么禁止远程连接_mysql如何设置禁止远程连接

mysql设置禁止远程连接的方法&#xff1a;1、登录数据库服务器&#xff0c;指定mysql数据库&#xff1b;2、执行【update user set hostlocalhost where userroot;】语句&#xff1b;3、刷新权限表。具体步骤&#xff1a;use mysql #打开mysql数据库#将host设置为localhost表示…

凌复华:冯·诺依曼在量子力学领域的贡献

来源&#xff1a;科学出版社约翰冯诺依曼(John von Neumann,1903.12.28—1957.2.8)这个名字, 对大多数读者都不会是陌生的.人们首先想到的很可能是他在研制世界上第一颗原子弹和第一台可编程数字式电子计算机中所做的贡献.这些确实是他的重要成就,但他对人类的贡献远不止于此.冯…

小程序 鼠标事件

微信小程序鼠标事件 事件分类 事件分为冒泡事件和非冒泡事件&#xff1a; 1. 冒泡事件(bind)&#xff1a;当一个组件上的事件被触发后&#xff0c;该事件会向父节点传递。 2. 非冒泡事件(catch)&#xff1a;当一个组件上的事件被触发后&#xff0c;该事件不会向父节点传递。 bi…

agd插值算法_(1)常见插值算法

图像的缩放很好理解,就是图像的放大和缩小。传统的绘画工具中,有一种叫做“放大尺”的绘画工具&#xff0c;画家常用它来放大图画。当然&#xff0c;在计算机上&#xff0c;我们不再需要用放大尺去放大或缩小图像了&#xff0c;把这个工作交给程序来完成就可以了。下面就来讲讲…

5条出人意外的大脑秘密,奇奇怪怪的知识又增加了!

来源&#xff1a;混沌巡洋舰本文授权摘自《人体简史》&#xff0c;作者 比尔布莱森 &#xff0c;畅销书《万物简史》作者。1 你的大脑80%都是水作为一项纯粹的奇迹&#xff0c;人类的大脑长得毫不起眼。首先&#xff0c;它有75%~80&#xff05;都是水&#xff0c;其余的主要成分…

sublime 设置新建文件自动添加author(作者)等文件头信息

很多时候, sublime 自带自动添加文件头信息, 但是并不是我们想要比如下面这样的:新建一个python文件 自动添加的author 信息 上面并不是我想要的, 我想要下面这样的效果: 这就需要我们设置插件来自定义化, 步骤1) 安装 file Header 插件 (一般默认已经安装)2) 设置变量 比如aut…

文章标题(备注)

现在也裁员了吗&#xff1f;怎么感觉越来越垃圾 这个又是什么&#xff1f;真搞笑&#xff0c;我也没开隐私呀

linux 的swap具体分析_SWaP的SWAP分区分析

展开全部SWAP就是LINUX下的虚拟内存分区&#xff0c;它62616964757a686964616fe78988e69d8331333361303030的作用是在物理内存使用完之后,将磁盘空间(也就是SWAP分区)虚拟成内存来使用 。它和Windows系统的交换文件作用类似&#xff0c;但是它是一段连续的磁盘空间&#xff0c;…

你住的城市7.5亿年前长啥样?这张互动地图能让你看到

大数据文摘出品来源&#xff1a;CNN编译&#xff1a;Hippo一位加利福尼亚的古生物学家绘制了一张交互地图&#xff0c;使人们可以看到他们的家乡在超过7.5亿年的大陆漂移中迁移了多远。文摘菌顺手搜了一下7.5亿年前的北京&#xff0c;如下图中红点所示&#xff0c;那时候的北京…