社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

深度学习在机器视觉中的应用与发展

新机器视觉 • 5 年前 • 456 次点击  

在短短几年内,深度学习软件已经比任何传统算法可以更好地对图像进行分类处理,而且可能很快就可以超越人工检查。

近年来,宠物食品制造商已经使用机器视觉软件来验证狗和猫的食品包装上是否存在独特的字符、代码、颜色和图形。然而,现在这些公司可以通过使用深度学习视觉软件验证包装上是否存在狗或猫图像来补充这一过程。

与传统的图像处理软件(依赖于特定任务的算法)不同,深度学习软件使用多层神经自学习算法网络,根据人类检查员标记的图像来识别好图像和坏图像。这些数据集通常包含每个缺陷类型至少100个图像,通过网络提供,以创建一个模型,对每个输入图像中的对象进行分类,并确保高水平的可预测性。

为了验证宠物食品包装上的特定动物照片,复杂的神经网络必须在训练阶段后的几个层次上模仿人类的判断。在高层算法专注于更复杂的特征(如面部,四肢,爪子和尾巴)之前,低层算法会检查图像是否有简单的形状,如边缘。然后,其他高层算法可以识别所有照片变形、背景、光照条件、视点和障碍物。最后,顶层算法给出了图像中动物类型的概率,并验证它是否存在于特定的动物食品包装上。所有四个步骤都在0.5到1秒内完成。

Cognex公司视觉软件营销总监John Petry解释说:“许多节点组成每个神经网络层,每个节点做出一个单一的决定,它们一起识别所有类型的图像模式,并对图像的好坏做出判断。”

用于机器视觉的深度学习软件已经存在了十多年,但直到最近几年才变得对用户友好和可行。在这短短的时间内,几个行业的制造商已经开始将其应用于各种各样的领域,如检测手术器械上的焊接水坑、验证汽车座椅组件中多个组件的存在,以及识别反光金属表面上的不同缺陷。

软件供应商表示,这些例子代表着第二次机器视觉革命的开始。深度学习不仅对机器视觉的各个方面都有积极的影响——比如精度、相机性能和灯光控制——而且这种技术可以完成过去难以完成或需要太多投资的应用。

起源与开放

深度学习的概念对于机器视觉来说相对较新,但对于机器学习来说绝对不是新概念。深度学习是机器学习的一种特殊类型,是人工智能的一种。

丹佛的集成商Artemis Vision总裁Tom Brennan说道:“用于深度学习的当前神经网络算法非常好,但如果你使用图灵测试作为晴雨表,它们还没有达到人工智能的水平,目前深度学习在一些医疗设备和制药应用得到了应用。”

Brennan说:“图灵测试要求机器或技术表现出与人类相当的行为,人工智能级别的算法可以直接响应人类智能的任何问题。

最初的计算机视觉深度学习架构是由Kunihiko Fukushima在20世纪80年代引入的新认知。作为一种人工神经网络,neocognitron已被用于手写字符和模式识别任务,并作为通常用于分析视觉图像的更复杂神经网络的基础。

开源深度学习软件最早出现在20世纪90年代,当时出现了许多关键的算法突破。从那时起,计算机科学家已经能够更好地利用巨大的计算能力和数据,这对神经系统的形成至关重要网络很好地工作。网上可用的开源软件包括C/ c++和Java库、框架和工具包。

Cyth Systems首席执行官Andy Long解释说:“十年前,当深度学习软件和相关硬件的能力远远不够时,培训软件进行深度学习需要大约两周的时间。到2014年,这花了大约两天时间,现在不到一天。”

雄心勃勃的集成商和制造商倾向于从开源软件开始,因为它不需要许可或特许权使用费。在缺点方面,供应商提供的技术支持很少,在网络培训开始之前,最终用户必须仔细地对几百到几千张数据集图像进行分类。

“Petry指出:“使用开源软件开始深度学习实践的公司需要一个真正专家,比如工程学博士。”即使这样,用户也很容易花6到12个月的时间来获得适合应用程序的软件。还有一个问题是,当需要检查不同的零件或装配过程发生变化时,必须重做软件。

Brennan说,Artemis在两个深度学习应用程序中使用了开源软件。在这两种情况下,Artemis的工程师都需要对软件进行“大约2%”的修改和微调,以完全适应每个应用程序。

深度学习适用于机器视觉

随着制造商需要更智能,准确和可重复的视觉系统,深度学习软件越来越受欢迎。终端用户最收益的是软件可以在几分钟内自动编程视觉系统。

深度学习最适合涉及可变形对象而非刚性对象的应用。另一个好的应用是验证在装配体中存在颜色和纹理变化的许多部件。此外,传统软件要求被检部件具有特定的公差范围,而深度学习最好由最大且最清晰标记的好的和坏的部分图像数据集提供。

虽然深度学习通常被认为是化妆品检验应用,但Petry说,它也非常擅长确认试剂盒中存在多个物品。例如,确保手术导管是医疗套件的一部分,而不管导管位于何处或其对相机的视角如何。

“从本质上讲,深度学习是应用统计学的一项重要工作,”布伦南说。 “[神经网络中]每个节点的任务是统计地确定与好的或坏的部分最相关的图像数据。神经算法本身并不聪明,但它学会了以某种方式执行预处理操作,以帮助软件产生与人们告诉它正确的结果相匹配的结果。“

供应商表示,对许多公司而言,深度学习已从实验阶段进入体验阶段。这些制造商已经亲身体会到,并不是每个应用程序都适合进行深度学习,深度学习也不是能够解决所有视觉应用程序问题。

最终用户通常希望对特定的应用程序使用深度学习。然而,供应商知道,为了确定这是最佳选择,需要进行几项测试。软件供应商表示,深度学习软件比标准软件灵活得多。布伦南对此表示赞同,尤其是在照明方面。他说,深度学习能更好地通过降低图像的可变性来控制图像中的光线。

“他指出:“神经网络算法可以在明亮或昏暗的光线下分辨出好的和坏的图像。”“他们能学会识别这些光线的差异并不重要,并能准确地对好的和坏的部分进行分类。”

Teledyne Dalsa亚太区技术总监Yvon Bouchard表示,深度学习主要用于确保整个装配过程的质量,尤其是零件精加工和最终表面检测等任务。有时它也被用来帮助“姿态估计”,或估计一个物体的位置和方向。这适用于组装的部件可能没有固定或在操作之前需要确定部件的方向。

Teledyne Dalsa的Sherlock 8.0软件是一种快速应用程序开发工具,它使用传统的图像处理功能,并具有深入的学习选项。该公司还为制造商独特而苛刻的视觉应用开发定制软件和优化的深度学习模型。

“Sherlock软件更适合那些想要在一个简化基本视觉和深度学习过程的环境中进行自己培训的用户,”Bouchard解释道。“关键在于,该软件允许终端用户访问所有标准工具,并进行深度学习,以生成特定的解决方案。在许多应用中,传统的视觉工具执行部分检查任务,而深度学习处理检查中难以编码的部分。”

Sherlock软件与带有单色或彩色格式成像仪的区域和线扫描相机兼容。它直接连接到火线,GigE和USB摄像头。

Cyth Systems早在2008年就引入了神经视觉(NV)软件的第一个版本,但由于当时的硬件和技术限制,它没有像公司所希望的那样执行。然而到了2014年,第三代NV被开发出来并证明能够更好地解决复杂的视觉问题。今天,近80%的Cyth客户在他们的应用程序中使用深度学习。

Long表示,这些客户包括汽车,食品,航空航天,白色家电和电子产品制造商。后两者使用深度学习进行装配验证,而航空航天公司则依靠它来确保无瑕疵的座椅和发动机。

“几年前,有机食品种植者开始使用我们在该领域的深度学习软件来更好地分类其颜色变化过多的水果和蔬菜,”Long说。 “在汽车行业,一位客户使用深度学习来验证每个座椅组件是否与正确的车辆一起使用。有些座椅的头枕上有一个麦克风,麦克风在头枕的每张训练照片上都有圆圈,因此软件知道要查找什么。“

电子产品客户使用深度学习来组装和分类PCB,电阻器和晶体管。食品制造商依赖它,因此确保包装始终具有最佳美观并包含正确的食品。

在医学领域,Artemis开发了一种深度学习应用程序,以帮助制造商检测焊接中的搅拌,该焊接将金属销连接到手术工具的末端钳口。该工具密封容器以防止出血。

焊接在小而粗糙的表面区域上手动完成,并在使用深度学习软件之前通过标准机器视觉进行验证。两次检查都在一个小型测试工作站中进行。

另一项Artemis项目涉及使用深度学习软件来检测玻璃瓶中的微小缺陷。制药最终用户需要完美无缺的小瓶,可以容纳材料而不会有任何泄漏。 Brennan说Artemis转向深度学习,因为它更好地定位仅在某些角度下出现在光线下的缺陷。

“深度学习是确保产品质量的好方法,例如在人们通常进行某种检查的应用中,”Petry解释道。 “在整个产品生产之后但在包装之前验证组件也非常有用。例如,汽车前灯,徽章和轮子,装满各种食物或糖果的盒子,以及装有支架,管子和夹子等物品的手术包。

两年前,康耐视开始提供ViDi深度学习库,并于去年与其旗舰视觉软件产品VisionPro一起推出。该套件有四个基本工具:化妆品检查,零件定位,分类和光学字符识别(OCR)。

康耐视ViDi可靠地读取许多具有挑战性的日期和批次代码,以及浮雕和蚀刻文本。它还可以自动检查复杂的图案织物并识别缺陷。

ViDi Blue-Locate算法定位零件,计算托盘上的半透明玻璃医用瓶,并对套件和包进行质量控制检查。 ViDi Red-通过了解目标区域的不同外观来分析缺陷或其他感兴趣区域。

ViDi Green-Classify根据包装识别产品,或对可接受或不可接受的异常进行分类,例如焊缝质量。最后,ViDi Blue-Read使用OCR解码严重变形,偏斜和蚀刻不良的代码。其预训练字体库可识别大多数文本,无需额外的编程或字体训练。

Teledyne的一位客户最近使用深度学习软件来解决自动装配过程中涉及小螺钉的问题。由于螺钉未正确配合,公司会定期遇到停机,从而导致螺钉部分堵塞到组件中的交叉螺纹情况。

“虽然一些传统的软件可以检查螺纹特性,但在这种情况下的问题是螺钉尖端已经在主体上经过模具和圆锥形尖头穿过,”Bouchard说。 “深度学习是一个更好的选择,因为尖端的过渡区域可以有无数个可能的形状。视觉系统可以显示成千上万个好的和坏的螺丝尖的例子,这样可以更容易地快速判断它是好还是坏。“

挑战与未来

深度学习给最终用户带来了挑战,而传统视觉软件无法轻松解决这些挑战。 Bouchard表示,大多数用户缺乏对深度学习取得成功所需要的理解。

“到目前为止,主要问题是缺乏高质量,适当分类的图像,”Bouchard说。 “典型的深度学习应用程序需要数百甚至数千个图像样本。在更困难的情况下或自定义应用程序中,训练模型可能需要多达一百万或更多的图像样本。“

龙说,制造商对深度学习的期望是理想主义和现实主义的混合体。这就是他为每个客户提前解释其限制和基本流程的原因。 Cyth还对每个应用程序进行了视觉研究,以确定它是否真的是深度学习的候选者。

“该公司向我们发送了要拍照的部件,我们会为每个部件生成50到100个好的和坏的图像,”Long解释道。 “在我们的测试之后,我们让他们知道基于假阴性和误报百分比的深度学习的成功概率。太多的假阴性令人讨厌,但过多的误报会导致产品质量问题。“

与其他软件不同,Cyth的神经视觉平台从生产环境中捕获图像,并将这些标记的数据集发送到云进行离线处理。然后将图像发送回PC,并对软件进行培训,以便对装配线上的零件进行深度学习检查。

Long说这些图像是通过红外线,3D,线扫描或智能相机拍摄的。该软件仅需25毫秒来分析图像并确定部件是好(绿色检查)还是坏(红叉)。

根据Long的说法,任何拥有产品知识的人都可以训练系统运行,并且始终如一
提供可重复的结果。该软件还允许最终用户轻松推出新应用程序,引用旧应用程序并访问所有检查结果以进行统计分析。

Inspekto的S70自动机器视觉系统使用一系列深度学习引擎作为其Plug and Inspect软件的一部分。它可以快速(30到60分钟)并且经济高效地安装和设置,无需任何阶段的集成商或人工智能专家。紧凑型系统包括先进的视觉传感器和镜头,照明设备和一组可调节臂。

最终用户不需要设置任何质量保证参数,因为系统自动适应检查项目。此外,由于该系统与生产线整合,并且足够坚固,不受任何环境和环境影响,因此无需将特殊结构放置到位。

该系统已经在欧洲各地的工厂中使用,并且每天都要为Mahle等领先的汽车零部件制造商检查数十万种产品。 Inspekto的首席技术官Yonatan Hyatt表示,它提供了越来越多的应用程序,包括完整的归档和可追溯性,并且足够准确,无需将产品脱机进行检查。此外,该系统可用于手动装配线,以确保操作员正确执行每项任务。

“非自动机器视觉系统的最终用户没有直接与视觉质量保证解决方案(集成商)为生产线开发,并且[可能]对当代深度学习软件的期望有限,”首席执行官Harel Boren说。 Inspekto。 “但是,他们确实希望软件[提供]集成商承诺的解决方案。或者使用深度学习引擎阵列的自主视觉系统将彻底解决他们的问题。“


小编推荐HOT

工业视觉都有哪些行业标准可以参照执行

视觉+机器人,如何实现连接器的自动装配?

机器视觉在制造业应用的10个案例 

机器视觉技术发展的五大趋势 

搞懂机器视觉基本内容,这份PPT就够了!

机器视觉系统集成发展的现状和前景 

2019年光技术发展的十大趋势 

机器视觉:PC式视觉系统与嵌入式视觉系统区别  

干货:变成计算机视觉大师,需要经历的几个阶段  

计算机视觉和图像处理之间有什么区别?

基于HALCON的机器视觉开发,C++或C#如何选择?

 

 End 

更多是视觉资讯尽在“新机器视觉”微信公众号~


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/32630
 
456 次点击