Baumer工业相机堡盟工业相机如何实现一次图像采集同时检测产品的5个面甚至多个面(C#)(NEOAPI SDK)
- Baumer工业相机
- 光学棱镜反射图像的技术背景
- 工业相机ROI功能的技术背景
- 图像处理多线程功能的技术背景
- Baumer工业相机通过棱镜同时检测使用产品的5个面
- 1.使用四个棱镜反射显示所检测面图像
- 2.使用Baumer Neoapi SDK中的ROI图像剪切功能进行线程图像处理
- 工业相机使用棱镜一次图像采集同时检测产品的5个面甚至多个面的行业优势
- 工业相机使用棱镜一次图像采集同时检测产品的5个面甚至多个面的行业应用
- 电子制造行业
- 汽车制造行业
- 机械加工行业
- 食品饮料行业
- 制药行业
Baumer工业相机
Baumer工业相机堡盟相机是一种高性能、高质量的工业相机,可用于各种应用场景,如物体检测、计数和识别、运动分析和图像处理。
Baumer的万兆网相机拥有出色的图像处理性能,可以实时传输高分辨率图像。此外,该相机还具有快速数据传输、低功耗、易于集成以及高度可扩展性等特点。
Baumer工业相机由于其性能和质量的优越和稳定,常用于高速同步采集领域,通常使用各种图像算法来提高其捕获的图像的质量。
Baumer工业相机NEOAPI SDK是用于Baumer工业相机的一款最新的软件开发工具包(SDK)。它为开发人员提供了一系列API和工具,用于与Baumer工业相机进行通信和控制,控制方式极为便捷类似Halcon的相机助手类控制方式。
工业视觉检测中一些场景应用中,需要同时采集单个产品多个面进行同时的图像采集和图像检测,由于场景本身的限制,或者成本的控制,采用多个相机拍摄不同的产品面变得较为困难。
堡盟相机对于这种情况具有丰富的经验,首先采用棱镜的方法布局在产品的四周,将四周检测面通过棱镜反射到相机面,其次采用ROI的方式对图像中不同棱镜呈现的产品检测面进行截取,生成产品不同面的多组图像序列,最后在SDK中采用多线程同步方法同时对图像序列进行视觉检测。
光学棱镜反射图像的技术背景
随着成像镜头在监控、安防、车载、投影、特殊环境探测、监视及生物医学检测等领域应用日益广泛,对大视场、大角度范围光学成像的需求增多。但传统技术下,大角度成像存在诸多难题,如视角大于 120° 后畸变量快速增长,图像严重变形,像差难以校正,且软件设计中光线易出错;同时加工成本较高,限制了大角度镜头的量产。而光学棱镜可通过旋转反射面角度等方式,助力实现大视场范围甚至全角度范围内物体的高清晰成像,满足成像技术发展的需求。
工业相机ROI功能的技术背景
Baumer工业相机中的ROI(感兴趣区域)功能允许用户选择图像中他们想重点分析或处理的特定部分。这可以提高图像处理系统的效率,因为它可以排除多余的或不必要的数据。
ROI功能的工作原理是在较大的图像框架内选择一个矩形区域。然后相机只对这个较小的区域应用所有后续的图像处理算法。这可以提高图像分析的速度和准确性,因为它减少了需要处理的数据量。
图像处理多线程功能的技术背景
图像处理算法通常计算量巨大,如高清图像的滤波、特征提取、图像分割等操作。单线程处理时,处理器只能逐个执行任务,耗时较长。多线程技术允许将图像处理任务分解为多个子任务,分配到不同线程并行处理,充分利用处理器的多核资源,从而显著缩短处理时间,提高整体处理效率。
多线程技术为图像处理算法的研究和发展提供了新的思路和方法。研究人员可以设计更复杂、更高效的并行算法,充分利用多线程的优势来提升算法性能。
例如在基于深度学习的图像识别算法中,多线程可以用于并行计算神经网络的不同层或不同样本,加速模型的训练和推理过程,推动深度学习在图像处理领域的应用和发展。
Baumer工业相机通过棱镜同时检测使用产品的5个面
下面介绍在C#里Baumer工业相机如何通过NEOAPI SDK采集产品的5个面进行检测的功能
1.使用四个棱镜反射显示所检测面图像
如下图所示:
2.使用Baumer Neoapi SDK中的ROI图像剪切功能进行线程图像处理
Baumer工业相机ROI图像剪切功能进行线程图像处理功能模式核心代码如下所示:
import sys
import neoapicamera = neoapi.Cam()
# 连接camera
camera.Connect() # 设置曝光时间和帧率
camera.f.ExposureTime.Set(10000)
camera.f.AcquisitionFrameRateEnable.value = True
camera.f.AcquisitionFrameRate.value = 10# 停止启动并加载默认参数
camera.f.AcquisitionStop.Execute();
camera.f.UserSetSelector.Set(UserSetSelector.Default); //选择相机Default设置
camera.f.UserSetLoad.Execute(); //执行UserSet1载入 # 开启设置多ROI功能
camera.f.Region Mode.ValueString = "On";# 设置第一个ROI区域位置大小
camera.f.Regionselector.Value = "Region0";
camera.f.OffsetX.Value = (long)100;
camera.f.OffsetY.Value = (long)100;
camera.f.Width.Value = (long)320;
camera.f.Height.Value = (long)320;# 设置第二个ROI区域位置大小
camera.f.Regionselector.Value = "Region1";
camera.f.OffsetX.Value = (long)200;
camera.f.OffsetY.Value = (long)200;
camera.f.Width.Value = (long)320;
camera.f.Height.Value = (long)3200;
# 设置第三个ROI区域位置大小
camera.f.Regionselector.Value = "Region2";
camera.f.OffsetX.Value = (long)300;
camera.f.OffsetY.Value = (long)300;
camera.f.Width.Value = (long)320;
camera.f.Height.Value = (long)3200;
# 设置第四个ROI区域位置大小
camera.f.Regionselector.Value = "Region3";
camera.f.OffsetX.Value = (long)500;
camera.f.OffsetY.Value = (long)500;
camera.f.Width.Value = (long)320;
camera.f.Height.Value = (long)3200;# 设置第五个ROI区域位置大小
camera.f.Regionselector.Value = "Region4";
camera.f.OffsetX.Value = (long)600;
camera.f.OffsetY.Value = (long)600;
camera.f.Width.Value = (long)320;
camera.f.Height.Value = (long)3200;# 开启相机触发采集功能
camera.f.SequencerMode.ValueString = "On";
camera.f.AcquisitionStart.Execute(); # 执行软件触发器以获取图像
camera.f.TriggerSoftware.Execute();
NeoAPI.Image img = camera.GetImage();# 构造线程处理图像中每个面的图像
if (camera.IsConnected)
{# 线程1检测产品第一面ProcessImageStatus1 = true;ProcessImageThread1 = new Thread((ThreadStart)delegate() { ProcessImageThread1(); });ProcessImageStatus1 .Start();# 线程2检测产品第二面ProcessImageStatus2 = true;ProcessImageThread2 = new Thread((ThreadStart)delegate() { ProcessImageThread2(); });ProcessImageStatus2 .Start();# 线程3检测产品第三面ProcessImageStatus3 = true;ProcessImageThread3 = new Thread((ThreadStart)delegate() { ProcessImageThread3(); });ProcessImageStatus3 .Start();# 线程4检测产品第四面ProcessImageStatus4 = true;ProcessImageThread4 = new Thread((ThreadStart)delegate() { ProcessImageThread4(); });ProcessImageStatus4 .Start();# 线程5检测产品第五面ProcessImageStatus5 = true;ProcessImageThread5 = new Thread((ThreadStart)delegate() { ProcessImageThread5(); });ProcessImageStatus5 .Start();}
工业相机使用棱镜一次图像采集同时检测产品的5个面甚至多个面的行业优势
工业相机使用棱镜一次图像采集同时检测产品的5个面甚至多个面,在提升检测效率、降低成本、提高检测精度等方面具有显著的行业优势,以下是具体介绍:
- 提高检测效率
- 快速多面成像:传统检测方式需多次调整相机位置或产品姿态才能完成多面检测,而利用棱镜的反射原理,工业相机可一次采集获取产品多个面的图像,大幅减少了检测时间,在生产线上能显著提升检测速度,提高生产效率。
- 适应高速生产线:在汽车零部件、电子元器件等高速生产线上,产品流动速度快,使用棱镜的工业相机可在极短时间内完成多面图像采集,满足高速生产过程中的实时检测需求,不会因检测速度慢而影响生产节拍。
- 降低检测成本
- 减少设备投入:无需为检测产品的不同面配备多个相机及复杂的机械调整装置,一台配备棱镜的工业相机就能实现多面检测,降低了设备采购成本。
- 降低人力成本:一次采集完成多面检测,操作更简便,减少了因操作多台设备或频繁调整设备而需要的人力,降低了人力成本。
- 节省空间:相比多个相机组成的检测系统,使用棱镜的工业相机系统结构更紧凑,占用空间小,便于安装在生产线上空间有限的位置,节省了生产空间。
- 提高检测精度
- 统一坐标系统:在一次图像采集中完成多面检测,所有面的图像都在同一相机坐标系下,避免了多个相机检测时因坐标转换带来的误差,提高了多面之间相对位置和尺寸的检测精度。
- 减少外部干扰:减少了相机切换和位置调整过程中可能出现的振动、光线变化等外部因素对检测结果的影响,使检测结果更稳定、准确。
- 增强检测可靠性
- 全面检测:能够同时检测产品的多个面,不会遗漏产品表面的缺陷,对于一些存在隐蔽面缺陷的产品,如内部结构复杂的铸件、具有多个焊接面的电子组件等,可更全面地检测出潜在问题,提高产品质量。
- 实时对比分析:可同时获取多个面的图像,便于系统对不同面的图像进行实时对比分析,更准确地判断产品是否存在缺陷及缺陷的性质和位置,提高检测的可靠性和准确性。
- 提升适应性和灵活性
- 适应不同产品类型:无论是形状规则的长方体、圆柱体产品,还是形状复杂的异形产品,都可通过合理设计棱镜的角度和形状,实现对产品多个面的有效检测,具有很强的通用性和适应性。
- 易于系统集成:在现有的工业自动化检测系统中,只需将配备棱镜的工业相机接入系统,进行简单的参数设置和校准,就能实现多面检测功能的集成,便于与其他检测设备和生产设备协同工作。
- 数据完整性与追溯性
- 完整数据记录:一次采集获取多个面的图像,形成更完整的产品图像数据集合,为产品质量分析和追溯提供了更全面、详细的数据支持。
- 便于质量追溯:在产品出现质量问题时,可通过完整的多面图像数据,更准确地分析问题产生的原因和环节,有助于追溯产品生产过程中的工艺问题和质量隐患,为质量改进提供有力依据。
工业相机使用棱镜一次图像采集同时检测产品的5个面甚至多个面的行业应用
Baumer工业相机使用棱镜一次图像采集同时检测产品的5个面甚至多个面,在诸多行业都有重要应用,以下是一些具体的例子:
电子制造行业
- 手机及零部件检测:在手机生产中,对手机外壳、电路板等零部件进行检测。可通过棱镜让相机一次采集到手机外壳的多个面,检查外壳是否有划痕、裂纹、缺料等外观缺陷,以及按键孔、充电孔等位置的精度。对于电路板,能同时检测其正面的电子元件焊接情况、线路是否短路,以及侧面的板厚是否符合标准等。
- 半导体芯片检测:在芯片制造过程中,检测芯片的表面缺陷、引脚形状和位置等。利用棱镜可同时观察芯片的顶面、侧面以及引脚的多个面,快速发现芯片表面的划痕、崩边,以及引脚是否弯曲、变形、短路等问题,确保芯片质量。
汽车制造行业
- 汽车零部件检测:对汽车发动机缸体、轮毂等零部件进行检测。通过棱镜使相机一次采集到缸体的多个面,检测缸体内部的铸造缺陷、表面粗糙度,以及安装孔的位置精度等。对于轮毂,可同时检测其外表面的涂装质量、是否有裂纹,以及轮毂边缘和内侧的尺寸精度等。
- 汽车内饰件检测:检测汽车仪表盘、座椅框架等内饰件。能同时采集到仪表盘的正面显示区域、侧面的安装结构,检查是否有显示异常、外壳变形等问题。对于座椅框架,可检测其各个面的焊接质量、是否有脱焊、漏焊等情况。
机械加工行业
- 精密机械零件检测:对齿轮、轴承等精密机械零件进行检测。使用棱镜可让相机同时获取齿轮的齿面、端面以及外圆面,检测齿形误差、齿面磨损、端面跳动等参数。对于轴承,能同时检测内圈、外圈的表面质量、滚道的精度,以及保持架的形状和位置等。
- 模具检测:在模具制造和使用过程中,检测模具的型腔、型芯等部位。通过棱镜一次采集到模具的多个面,检查型腔表面是否有磨损、拉伤,型芯的尺寸是否准确,以及模具的分型面是否贴合紧密等。
食品饮料行业
- 食品包装检测:对食品包装盒、瓶罐等包装进行检测。可以同时检测包装盒的四个侧面和顶面,查看是否有印刷错误、颜色偏差、表面破损等问题。对于瓶罐,能检测其瓶身是否有裂纹、划痕,瓶口的平整度和密封性能等。
- 食品外形检测:对饼干、糖果等具有规则形状的食品进行外形检测。利用棱镜一次采集到食品的多个面,检查饼干是否缺角、破碎,糖果的形状是否完整、表面是否光滑等。
制药行业
- 药品包装检测:对药盒、药瓶等包装进行检测。可同时检测药盒的多个面,查看是否有文字印刷错误、图案模糊、折叠不规范等问题。对于药瓶,能检测瓶身是否有裂纹、刻度是否清晰,以及瓶盖是否拧紧等。
- 药品片剂、胶囊检测:检测药片、胶囊的外观质量。通过棱镜配合光线,可对药片或胶囊进行360°全方位的图像采集,检查药片是否有裂片、缺角、表面斑点,胶囊是否有破损、漏粉等问题。