- 12/15
- 2023
-
QQ扫一扫
-
Vision小助手
(CMVU)
如今,深度学习算法由于运行相对简单被广泛应用。深度学习算法在新型机器视觉工具的开发中展现了的巨大潜力,在各行各业的各种工作流程中(如制药、食品、原材料、半导体行业)实现了质量的保证和效率的提高。
深度学习算法能够实现传统的机器视觉方法很难或根本无法企及的目标。
然而,采用深度学习算法的新应用开发依然面临巨大挑战。比如说,单纯使用最新、最先进的深度学习模型或算法并不能奇迹般地解决我们所面临的问题。为最大限度发掘深度学习算法的开发能力,Euresys推荐采用以数据为中心的方法。
在采用以数据为中心的方法时,用户必须先收集和处理数据,然后利用系统正确地进行管理和跟踪,最终解决实际问题。
在深度学习应用中,数据不只限于要处理的输入图像,还包含标注,即根据图像做出预测的数据。此类数据是用来比较和选择最佳模型的训练会话的结果,它涉及到表征图像(ROI、掩码等),数据使用方法(数据集分割)、训练方法(数据增强设置、模型设置等)的所有元数据。这也是机器视觉软件行业为帮助客户应对深度学习应用中面临的挑战而遵循的主要方向之一。
今天,Euresys软件工程师Antoine Lejeune将通过Euresys Deep Learning Studio的实际应用来解释以数据为中心的方法的工作原理。
Deep Learning Studio是用于管理和标注数据并训练深度学习模型的图形化工具,可以与Euresys OpeneVision 图像处理库一起使用。它是一款免费的桌面应用程序,也就是说,用户无需支付任何费用,也无需在线上传机密图像,就可以直接对现有数据进行处理。
在处理新的深度学习应用程序时,第一步需要确定的是我们想要从图像中检测到什么样的对象。筛选条件有很多,比如:图像的大小、图像中要检测的对象的数量、对象能否重叠、所需要的精度水平等。
在Euresys Deep Learning Studio中,有五类深度学习工具可供选择:1. EasyClassify:用于图像分类。2. EasySegment Unsupervised:用于异常检测(仅对优良图像进行训练)。3. EasySegment Supervised:用于精确的像素级分割。4. EasyLocate Bounding Box:用于定位和识别不同大小的对象。5. EasyLocate Interest Point:用于定位和识别相同大小的对象。
那么,为数据选择合适的深度学习工具就显得至关重要。
在咖啡豆中污染物的检测中,我们使用的是 EasySegment分割工具,因为它不仅可以检测污染物的存在与否,还能显示其在图像中的位置和表面积,以方便清除污染物,进而防止污染和过度磨损加工机器。
图1 影响深度学习工具选择的条件
图2 检查咖啡豆中的污染物
第二步是收集和标注图像。Euresys Deep Learning Studio能帮助跟踪数据集中的既有图像,并确定已标注的图像,在标注图像时我们需要优先考虑一致性。以咖啡豆数据集为例, 只有在异物尺寸大到足以导致生产线出现问题时,我们才考虑视其为缺陷。在这种情况下, 要确保训练数据的一致性就需要对大小不一的所有异物进行标注,然后通过分析结果中的异物大小,来决定是拒绝还是接受异物。
图3 标注一致性非常重要
Euresys Deep Learning Studio将许多先进的机器学习最优应用和概念进行了透明整合,或使之成为应用程序工作流程中的一部分。
数据平衡(Data balancing)技术是在每个标签的图像数量截然不同的情况下对模型进行正确训练。这一点在缺陷检测应用中显得格外重要,因为优良样本数可能比缺陷样本数多出几个数量级。
Euresys Deep Learning Studio在核心技术中整合了数据平衡概念,即通过为每个标签提供一个叫“标签权重”的参数,这样一来,数据均衡技术中面临的复杂问题都会被自动解决。Euresys Deep Learning Studio的这种技术整合使得深度学习训练更流畅和准确,
数据集拆分(Dateset splitting)技术也是一个很好的例子,在机器学习中,数据集拆分可以确保训练结果鲁棒,且能够被应用于新图像中。
数据集拆分技术将图像分成三种子集:“训练集”、“验证集”和“测试集”。1, 训练集:直接用于训练神经网络的图像。2, 验证集: 在训练期间,用于选择最佳神经网络的图像。3. 测试集: 在训练期间不会使用,但在训练结束后会使用的图像,以确保训练后的模型对新图像的使用效果良好。
一般来说,“训练集”包含的图像比“验证集”更多,而“验证集”包含的图像又比“测试集”多。但在机器视觉应用中,获取图像的过程可能很复杂,每个图像都很重要,因此不同的拆分方法会对结果产生截然不同的影响。
例如,如果一个罕见的缺陷在数据集中只有寥寥几个图像,但这几个图像都被放在测试集中,那么模型就无法学习该缺陷。因此,使用工具来创建、跟踪和管理这些数据集拆分就显得格外重要。
我们可以借助一种能够管理图像、训练模型和分析结果的程序,来构建先进的迭代模型和数据集。面对复杂的问题,深度学习模型可能需要大量图像才能发挥作用,因为我们无法事先知道哪些图像中会出现对神经网络来说棘手的问题。
以Euresys Deep Learning Studio应用中的咖啡豆检测数据集为例。我们首先标注10%到20%的图像,并对这些图像进行模型训练,训练得到的EasySegment Supervised模型,已经可以为其余30%的图像输出正确的结果,并为另外30%的图像输出大致正确的结果。最终,只有40%到50%的图像需要完全进行手工标注,其余的标注均由深度学习模型直接产生,或是由“足够好”的结果调整而来。
图4 在Deep Learning Studio中,一键点击即可导入正确的预测结果作为真实数据
当然,运用深度学习技术来解决机器视觉应用中遇到的挑战并不局限于数据管理。设计或选择一种神经网络架构来达到我们所需要的性能或处理时间,这个过程可能会非常复杂。Euresys Open eVision机器视觉软件库为我们提供了定制化的神经网络,来解决机器视觉行业中遇到的典型问题。
在生产过程中部署深度学习模型也可能很有难度,比如:如何在程序中整合深度学习模型?如何确保深度学习模型在不同的平台(Windows/Linux, x86/ARM/GPU)上稳定工作?如何将深度学习模型与其他机器视觉操作相结合?
Euresys Open eVision这样的全功能工业机器视觉软件库可以帮您解决这些问题。它的应用程序编程接口(API)适用于多种编程语言,可以帮助我们将深度学习算法与读码器或传统模式查找器整合到新的应用程序中。
Euresys Open eVision库的弱依赖性简化了应用程序的维护和发展。举个例子,在检测咖啡豆中异物的深度学习模型中,只需要部署不到10行的代码,我们就可以在运行速度为10 fps的NVIDIA Jetson Xavier NX智能相机下,处理512x512的图像。
总之,数据是深度学习算法应用的核心,拥有能够管理数据和处理深度学习算法的工具是一切的先决条件,Euresys Open eVision库和Deep Learning Studio程序是您数据处理过程中的不二选择。