亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial Internet of Things >> 物联网技术

开源软件满足机器人视觉开发人员的广泛需求


本文是关于视觉引导机器人的 AspenCore 特别项目的一部分。

机器人视觉应用可能会带来一系列复杂的需求,但开源库已准备好为几乎所有需求提供解决方案。开发人员可以找到从基本图像处理和对象识别到运动规划和碰撞避免的开源软件包,并且在一篇简短的文章中给出了他们的全部应有的内容。不过,这里有一些关键的开源图像处理包,可以帮助开发人员实现复杂的机器人系统。 (注意:本报告侧重于更基本的基于图像的算法的库,并明确排除了基于 AI 的机器人视觉的开源软件。)

没有任何关于机器人视觉软件的文章不能不突出开源计算机视觉库 (OpenCV) [来源]。在可用的开源软件包中,OpenCV 可能是使用最广泛且功能最丰富的。 OpenCV 发行版实现了 2,500 多种算法,解决了一系列模块中的图像处理要求,其中包括以下内容:

OpenCV 用 C++ 编写,可提供 C++、Python、Java 和 Matlab 的接口,并支持 Windows、Linux、Android 和 Mac OS。除了支持单指令多数据 (SIMD) 指令集外,OpenCV 还通过其 gpu 模块为许多功能提供基于 CUDA 的 GPU 加速,并通过其 ocl 模块提供 OpenCL 加速。最近发布的 OpenCV 4.0 带来了许多性能改进和功能,包括流行的 Kinect Fusion 算法的实现。

对于其功能,OpenCV 需要的学习曲线超出了希望通过机器人视觉快速移动的开发人员的耐心。对于这些开发人员,基于 Python 的 SimpleCV [source] 可能是答案。 SimpleCV 基于 OpenCV 构建,提供高级机器人视觉开发人员所需的功能,但提供可访问的框架,帮助经验不足的开发人员通过简单的 Python 函数调用探索基本的机器视觉功能。例如,开发人员可以使用 SimpleCV Image 类中的简单内置方法(下面列表中的 img.binarize())快速实现图像阈值等常用功能,最终显示如图 1 所示的结果。

from SimpleCV import Image, Color, Display # 做一个函数,做一半一半的图像.def halfsies(left,right):result =left # 将右边的图像裁剪到右边。 crop =right.crop(right.width/2.0,0,right.width/2.0,right.height) # 现在将裁剪粘贴到左侧图像上。 result =result.blit(crop,(left.width/2,0)) # 返回结果。 return result# 从 imgur.img 加载图像 =Image('http://i.imgur.com/lfAeZ4n.png')# 使用阈值 90# 将图像二值化# 并反转 results.output =img.binarize( 90).invert()# 创建并排图像 image.result =halfsies(img,output)# 显示结果 image.result.show()# 将结果保存到文件中.result.save('juniperbinary.png' )


图 1. 上面列出的 Python 代码的结果(来源:SimpleCV)

除了基本的图像处理功能外,OpenCV 和 SimpleCV 还实现了许多高级图像处理算法,机器人系统需要这些算法来处理物体或在其物理环境中安全运行。许多这些计算中使用的基本数据结构之一是点云——代表对象的多维数据点的集合(图 2)。从相机获取的对象点云用于基本的机器人操作,例如对象识别、对齐和拟合。为了处理点云,点云库 (PCL) [来源] 实现了用于过滤、拟合、关键点提取、分割等的算法。


图 2. 基本环面的点云数据集。 (来源:维基共享资源/基夫)。


物联网技术

  1. 开放式 DDS 与 RTI DDS 软件
  2. 物联网中的软件更新:SOTA 简介
  3. GE 将推出价值 1.2B 美元的 IIoT 公司
  4. 万物互联
  5. 物联网与 SaaS 集成的结合
  6. Software AG 预测物联网的未来
  7. 在工业领域,值得信赖的软件意味着安全
  8. 塔塔称赞 IIoT 的好处
  9. 软件测试物联网设备的挑战
  10. 10 个迹象表明您的 ERP 软件需要改进
  11. 使用 DevOps 解决嵌入式软件挑战
  12. 面向物联网开发人员的 7 大播客