halcon深度学习_深度学习在机器视觉系统中的应⽤详解
虽然深度学习,⼈⼯智能和认知系统的概念并不新鲜,但也是近些年它们才真正应⽤于机器视觉系统。
随着机器视觉技术的不断发展,系统在不需要计算机编程的情况下也可以具有分析和分类对象的能⼒。⽽⼈⼯智能(AI)和深度学习是推动机器视觉发展的重要技术⼿段。
然⽽,描述这些概念背后的潜在科学更为简单。例如,在传统的机器视觉系统中,可能需要读取零件上的条形码、判断其尺⼨或检查其是否有缺陷。为此,系统集成商通常使⽤现成的软件,这些软件提供了标准⼯具。例如,可以部署这些⼯具来确定数据矩阵代码,或者使⽤图形⽤户界⾯来测量零件尺⼨的⼯具集。
因此,部件的测量可以分为好或坏,这取决于它们是否符合某些预定标准。与这种测量技术不同,所谓的“深度学习”⼯具更好地归类为图像分类器。与专门读取条形码数据的软件不同,它们被设计⽤于确定图像中的对象是存在还是好或坏。因此,这些⼯具是互补的。
神经⽹络等深度学习⼯具将拓展其他机器视觉技术。例如,这样的神经⽹络可以判断数据矩阵代码存在于图像中的概率,但要解码它,将使⽤传统的条形码算法。
神经⽹络
基于神经⽹络的⼯具通常⽤于确定零件的存在或图像中的物体是好是坏。这些⼯具属于⼀组称为图像分类器的算法,从基于实例的分类器(如k-nearest neighbor (k-NN))到决策树分类器。在Jason Brownlee 2013年11⽉的《机器学习算法之旅》(A Tour of Machine Learning Algorithms)中可以到不同类型分类器的图表。
其中许多可以⽤于机器视觉应⽤程序。MVTec Software已经在其HALCON软件包中提供了预先训练的神经⽹络、⽀持向量机(SVM)、⾼斯混合模型(GMM)和k-NN分类器。需要注意的是,深度学习⽹络训练从⽆到有,每⼀个错误类别都需要⼏⼗万张样本图像才能获得有效的识别结果。然⽽,HALCON集成了⼴泛的深度学习⽹络。因此,训练只需要相对较少的样本图像,节省了⼤量的时间和⾦钱。
Stemmer Imaging公司也在其Common Vision Blox(CVB)Manto软件中使⽤SVM。
当不同组的特征值显着重叠时,SVM可⽤于⽣成多维特征空间以隔离不同的缺陷组。PR Sys Design在其perClass软件中提供许多这样的分类器。它具有⼀系列分类器,如k-NN、神经⽹络、随机森林和SVM。图像分析软件是⼀个基于MATLAB的⼯具箱,允许开发⼈员以交互⽅式处理数据,选择数据中的最佳特征进⾏图像分类、训练多种类型的分类器并优化其性能。
模仿⼤脑
就像许多不同的分类器可以⽤来识别图像中的对象⼀样,也有许多类型的神经⽹络可以⽤来执⾏图像分类功能。这种神经⽹络试图模仿⼈类视觉系统和⼤脑中使⽤的⽣物神经⽹络。其中最简单的是Frank Rosenblatt于1957年发明的感知器(图1)。
图1:由Frank Rosenblatt于1957年发明的感知器,它通过⼀组⼆进制输⼊对⼤脑中的神经元进⾏建模,每个输⼊乘以⼀个连续的值权重,并对这些加权输⼊的和进⾏阈值化,模拟⽣物神经元。
Perceptron通过采⽤⼀组⼆进制输⼊(附近的神经元)对每个输⼊进⾏建模,将每个输⼊乘以连续值权重(每个附近神经元的突触强度),然后阈值化这些加权输⼊的总和,如果总和⾜够⼤,则输出“1”,否则输出“0”,类似于⽣物神经元发射或不发射(参见”神经⽹络与深度学习的历史“,作者:Andrey Kurenkov)。
如今,更复杂的⽹络使⽤两层或更多这样的“神经元”来执⾏图像分类任务。这些“隐藏层”可以在呈现给神经⽹络的图像数据中到特征。从简单的感知器到深度前馈(DFF)和卷积神经⽹络(CNN),许多神经⽹络架构都可以⽤于笔迹分析和语⾳识别等应⽤(参见Andrew Tch 的《神经⽹络的基本完整图表》)。
CNN可能是机器视觉系统中应⽤最⼴泛的神经⽹络。这有⼏个原因。⾸先,CNN的架构旨在更紧密地模仿⼈类视觉⽪层和模式识别机
制,CNN被分成⼏个执⾏不同功能的神经元阶段(图2)。
图2:在CNN中,卷积层⽤于执⾏特征提取,就像使⽤卷积运算符来查边缘等特征⼀样。在传统的图像处理中,诸如⾼斯模糊和中值滤波的图像滤波器执⾏该任务。另⼀⽅⾯,CNN架构模拟⼈类视觉系统(HVS),其中视⽹膜输出执⾏诸如边缘检测的特征提取。
在该简化图中,为了说明的⽬的,分别⽰出了卷积层和池化层。在实践中,它们构成了完整的CNN的⼀部分。在CNN中,卷积层⽤于执⾏特征提取,就像使⽤卷积运算符来查边缘等特征⼀样。
在传统的图像处理中,可以将诸如⾼斯模糊和中值滤波的图像滤波器分解成现场可编程门阵列(FPGA)来执⾏该任务。
另⼀⽅⾯,CNN架构模拟⼈类视觉系统(HVS),其中视⽹膜输出执⾏诸如边缘检测的特征提取。在CNN中,该卷积⽤于执⾏特征提取,因此表⽰输⼊图像的特征。这些卷积层排列成特征图,每个神经元都有⼀个接收域,通过⼀组可训练的权重连接到前⼀层的神经元,这些权重⽤于确定可能应⽤的滤波器类型。
在提取这些特征之后,使⽤所谓的“合并层”来减⼩图像数据表⽰的空间⼤⼩,以提⾼计算速度。然后将该图像数据馈送到最终⽹络层以进⾏进⼀步的数据处理。
⽆需编程
神经⽹络不像其他⽅法那样需要传统的或FPGA编程技术。相反,CNNs可以被训练以三种不同的⽅式识别物体。在第⼀个监督学习中,图像被⼿⼯标记,并使⽤这些数据⽣成⼀个输出模型来分类未知的图像。监督学习需要对图像数据进⾏标记,⽽⾮监督学习⽅法可以在图像数据中发现模式,并从多个未知图像中构建模型。然后,通过对这些结果的解释,可以开发出更精确的监督分类器。
这种⽆监督学习系统通常是不准确的,可以受益于半监督学习技术,其结合标记数据以减少需要训练的图像的数量。
表1:许多机器视觉公司现在推出的产品经常使⽤开源⼯具包开发专门针对机器视觉应⽤的软件。
matlab学好了有什么用“关于这些不同的⽅法,我们的⼤多数⼯具都是基于监督培训,”Adaptive Vision总经理MichałCzardybon说道。“这是最有效的,因为没有必要⼿动设计算法。但是,需要提供标记的训练数据。我们的⼀个⼯具Anomaly Detection使⽤半监督⽅法,开发⼈员提供了⼤
量“良好”的对象图像,并且训练⽹络只是为了识别与这些对象的任何偏差。
Czardybon说:“对于那些希望此类软件在⽆监督模式下运⾏的⼈来说,我们的技术还没有准备好。然⽽,我们正在进⼀步研究半监督学习,即少量带标记的样本与数百个未带标记的样本同时存在,以提⾼准确性。”
在构建这样的⽹络时,开发⼈员可以同时使⽤商⽤和开源开发⼯具。⽽商业上可⽤的⼯具,如Wolfram的Version 11,MathWorks的深度学习⼯具箱Artelnics,可以⽤来开发基于神经⽹络的应⽤程序,其他公司提供开源代码来执⾏这项任务。
开源解决⽅案
英特尔、IBM、NVIDIA、微软等⼤公司和Google都提供开源代码来开发机器学习算法。
有趣的是,Keras是⼀个⽤python编写的⾼级神经⽹络应⽤程序编程接⼝(api)的开发⼈员,在⼀张图表中显⽰了⼀个⽐较基于11个数据源的深度学习框架的图表,⾕歌的TensorFlow机器学习库是最⼴泛使
⽤的机器学习软件(图3)。
图3:Keras已经证明,基于11个数据源,Google的TensorFlow机器学习库是最⼴泛采⽤的机器学习软件。
Keras的创始⼈FrançoisChollet表⽰,虽然Keras提供了⼀个⾼级别的界⾯,但它并不能处理低级操作。相反,这些可以由Google的TensorFlow或Theano的开源代码执⾏的,这是⼀个在蒙特利尔⼤学蒙特利尔学习算法研究所(MILA)开发的开源项⽬。
使⽤这些⼯具,开发⼈员正在部署基于视觉的应⽤程序。例如,英特尔已经展⽰了其与飞利浦合作使⽤其OpenVINO⼯具包的系统,该系统可以在不使⽤GPU的情况下对X射线和计算机断层扫描(CT)进⾏深度学习推断。⽽使⽤通⽤CPU可能需要数⼩时或数天才能进⾏此类分析。
为了扩展现有CPU架构的性能,飞利浦部署了OpenVINO⼯具包和深度学习⽅法,提供了⽐标准CPU⽅法快200倍的速度来进⾏深度学习,从⽽避免了使⽤gpu的需要。然⽽,这类⼯具在医学成像领域得到了应⽤。
机器视觉⽬标
有了所有这些开发⼯具,毫⽆疑问,众多机器视觉公司正在推出经常使⽤这些⼯具包开发专门针对机器视觉应⽤的软件的产品(表1)。虽然不愿意讨论可以使⽤哪些⼯具或者是否也在其产品中使⽤其他分类⼯具,但这些公司为开发⼈员提供了⼀种评估机器视觉中神经⽹络潜⼒的⽅法。
现在已经有许多部署这样软件包的案例,例如:在渝美压铸公司在基于英特尔计算机视觉和深度学习软件的系统中部署了英特尔的联合边缘计算平台,以检测零件铸造时的缺陷。
Cognex意识到这些⽅法的强⼤功能,于2017年购买了ViDi Systems及其ViDi软件套件。最近,该软件由AIS Technologies部署⽤于⽓缸孔检测系统。
图4:Cyth Systems展⽰了其神经视觉软件如何应⽤于以下应⽤:(a)半导体引线框架检查(b)医疗器械检查(c)机器⼈拾取和放置系统
另⼀家公司d-fine为Seidenader Maschinenbau开发了⼀套系统,测试CNNs在医疗产品检测系统中的性能。现在,研究⼈员正在分析这些⽅法与传统机器视觉⽅法的有效性。
Cyth Systems公司拥有⾃⼰的基于AI软件,名为Neural Vision。该软件已⽤于各种应⽤,包括半导体引线框检测,医疗器械检查和机器⼈拾取与定位系统(见图4) 。
智能相机系统
尽管许多系统都在基于pc的系统上部署了这样的软件,但是相机供应商已经意识到提供智能相机来完成这项任务的机会。⽐如:IDS成像开发系统和FLIR Systems。
利⽤⼀种专门开发的⼈⼯智能视觉应⽤,IDS的NXT摄像机可以加载预先训练好的⼈⼯神经⽹络,⽽基于fpga的⼈⼯智能加速则增加了推理时间。在VISION 2018上,该相机被展⽰为⼀个基于⼈⼯智能的⽬标识别系统。此外,FLIR公司的FireFly集成了英特尔公司的Movidius Myriad 2视觉处理单元(VPU),训练好的神经⽹络可以直接加载到该单元上。
智能相机将运⾏传统的机器视觉算法和基于神经⽹络的分类器,从⽽使开发⼈员在使⽤算法时具有灵
活性。推动这⼀趋势的可能是来⾃⾕歌、英特尔和微软等公司的开源代码,商业成像软件开发商将利⽤这些代码更快地将此类产品推向市场。
新机器视觉翻译编辑,仅供学习参考,不⾜之处敬请谅解!
⼩编推荐HOT
⼯业视觉都有哪些⾏业标准可以参照执⾏
视觉+机器⼈,如何实现连接器的⾃动装配?机器视觉在制造业应⽤的10个案例
机器视觉技术发展的五⼤趋势
搞懂机器视觉基本内容,这份PPT就够了!机器视觉系统集成发展的现状和前景

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。