乐趣区

关于算法:工业视觉智能实战经验之IVI算法框架20

简介:工业视觉智能团队在交付了多个工业视觉智能质检我的项目后,发现了工业视觉智能的共性问题和解法,打造了工业视觉智能平台,通过平台的形式积攒和晋升工业视觉的通用能力。在平台建设上最外围的能力是算法能力。算法能力包含一直加强的单点算法能力和一直裁减的新算法能力。那么如何将算法能力输入到平台呢?答案是算法框架。算法框架是算法能力的载体,通过它可能将能力输入到平台。

作者 |
起源 | 阿里技术公众号

导语

工业视觉智能团队在交付了多个工业视觉智能质检我的项目后,发现了工业视觉智能的共性问题和解法,打造了工业视觉智能平台,通过平台的形式积攒和晋升工业视觉的通用能力。

在平台建设上最外围的能力是算法能力。算法能力包含一直加强的单点算法能力和一直裁减的新算法能力。那么如何将算法能力输入到平台呢?答案是算法框架。算法框架是算法能力的载体,通过它可能将能力输入到平台。同时通过算法框架,咱们能够进行进行算法能力的钻研和裁减。所以算法框架设计和演进对于算法能力有余的探查、算法能力加强、算法能力裁减和算法能力输入都是至关重要的。

一 视觉 AI 框架利用在工业上的问题和咱们的改良点

在图像识别畛域,分类、检测、宰割是应用最宽泛的算法。目前人脸、城市、医疗、工业、娱乐、平安等大量场景都须要图像识别算法。在不同的场景或同个场景呈现变动时,算法须要训练或从新训练。

现有的训练框架的问题和咱们的改良点:

工作兼容:

  • 问题剖析:个别是解决繁多类型问题(如检测框架、分类框架、宰割框架),这样导致训练多个不同工作类型的算法(比方分类和检测工作)时,往往须要应用多个框架。
  • 改良点:咱们将工业上利用的支流工作兼容在一个框架中。

操作解耦:

  • 问题剖析:个别在模型训练时候数据处理、模型训练和成果的评估往往是耦合的,这样导致训练时须要依照耦合的流程进行训练,应用雷同数据训练时须要一直反复解决数据,模型训练和成果评估不能同时进行,评估过程占用训练工夫和资源导致无奈高效执行。现有框架个别是基于固定的学术数据集进行训练,在训练到指定工夫进行模型评估。
  • 改良点:咱们将次要性能切分为八个模块,可应用八个模块构建须要的流程,流程构建过程灵便。本框架模块之间是互相独立的,能够独立高效执行。

评估展现:

  • 问题剖析:现有的训练框架个别没有评估成果展现性能或只有简略的评估成果展现性能。因为现有训练框架个别基于固定的学术数据集进行训练,在评估时个别只做简略的性能指标展现。这样导致短少训练的模型评估成果展现或成果展现过于简略,无奈发现模型训练和数据的问题。
  • 改良点:咱们在模型评估模块提供了具体且通过实战经验验证迷信的评估内容,并且能够在工业视觉智能平台中展现,用户能够发现模型训练和数据自身的问题,进一步调整数据或训练。

数据集剖析:

  • 问题剖析:现有的训练框架个别没有数据集剖析性能。这样导致无奈在训练之前发现数据集的特点,只能应用默认配置或集体教训去训练模型。
  • 改良点:咱们设计的框架含有具体和迷信的数据集剖析性能,并且对齐数据集剖析和模型训练模型推理过程的一致性,能够在训练之前剖析数据集的特色,缩小自觉训练的状况;

数据处理可视化调试:

  • 问题剖析:现有的训练框架个别没有数据处理和数据加强的可视化调试性能。这样导致无奈查看数据处理或数据加强的成果,无奈确认单步数据处理成果和多部数据处理的叠加成果。
  • 改良点:咱们在数据载入时采纳可扩大设计,将可视化模块嵌入到流程中,能够任意节点查看数据成果。

部署对接:

  • 问题剖析:个别没有与模型部署对接的局部。现有的训练框架个别没有与模型部署对接的局部。这样导致本人开发与部署对接,过程工作量大,耗时耗力且容易出错;如果是不同工作类型的算法部署,则上述工作量须要翻倍。
  • 改良点:咱们开发了模型转换模块和对应的一套模型部署框架和零碎,能够疾速将模型转换到能够部署的状态,并能够应用模型部署框架和零碎运行。在多个工作中,本框架与对应配套部署框架已实现后果对齐,用户毋庸进行相干开发;

扩展性:

  • 问题剖析:现有的训练框架模块的扩展性不强,模块减少操作时比拟麻烦。这样导致开发者难度晋升,团队合作开发难度大。
  • 改良点:本框架大多数模块基于可扩大模块开发,开发者须要依照要求开发操作即可嵌入到模块中,升高开发难度且易于团队开发。

二 IVI 算法框架具体介绍

IVI 算法框架是一个模块解耦可扩大的深度学习视觉模型训练框架。该框架次要负责三个工作:分类、检测、宰割。该框架次要分为八个模块:数据筹备、配置生成、数据载入、数据集剖析、模型训练、模型推理、模型评估和模型转换。数据筹备模块、数据载入模块、数据集剖析模块、模型评估模块是继承于可扩大模块的,模块减少操作时只须要依据扩大模块的要求编写操作即可。开发者开发难度降落,团队合作开发更顺畅。


图 1:次要模块示意图


图 2:次要工作示意图


图 3:可扩大模块实现示意图

可扩大模块次要分为四个局部。流程配置文件形容模块应用的算子和算子执行的流程。算子执行流程分为初始化、构建和执行三种状态。算子执行流程在初始化时,会依据算子注册表取得已注册的算子汇合。算子执行流程构建时,依据流程配置文件,寻找算子注册流程中已注册的算子,并依据流程配置文件的内容初始化算子,并依据流程配置文件组合算子执行的流程。在算子执行流程执行时,依据算子执行流程对输出数据进行操作。可扩大模型的扩展性次要体现在以下算子新增的扩展性和算子执行的扩展性两个方面。算子新增的扩展性在减少新的算子时,只须要依照固定规定将算子退出到算子汇合中即可。算子执行的扩展性体现在算子执行是依据配置文件形容进行的,配置文件形容能够对算子执行程序、次数和参数等多方面进行管制。

以【阿里云的智能工业·工业视觉智能平台】的一个训练任务为例,如图 4 所示。在平台上开启一个默认训练任务,工作能够分为以下四个步骤:数据抉择、训练、评估和模型提取。其中数据抉择局部会调用数据筹备、配置生成、数据集剖析的模块。训练局部会调用数据载入、模型训练、模型推理和模型评估的模块。评估局部会调用模型推理和模型评估模块。模型提取局部会调用模型转换模块。

1 数据筹备模块


图 4:平台训练流程示意图


图 5:数据筹备模块示意图

数据筹备模块是继承于可扩大模块的。次要分为三个步骤。

  • 第一步读取数据配置文件。
  • 第二步依据数据配置文件构建数据处理流程。
  • 第三步进行多任务兼容的数据疾速解决,依据数据处理流程将平台标注数据转换为多任务兼容的数据结构。多任务兼容的数据结构为多任务兼容的模型训练提供根底。


图 6:平台数据筹备示意图

数据筹备模块的数据配置文件由默认配置文件和平台交互信息交融取得。如图平台数据筹备示意图所示,左侧增加数据集示意抉择的数据集。右侧标签抉择页面的勾选示意抉择的类别。右侧标签抉择页面的操作对应数据筹备模块算子。当在平台上增加数据集时会跳转到下图所示页面,在此页面能够勾选须要退出训练的数据集。同时能够抉择数据集裁减倍数。


图 7:平台增加数据集示意图


图 8:数据筹备模块算子汇合示意图

数据筹备模块算子包含类别扩增、类别屏蔽、子图切割、异样数据荡涤、数据集划分等算子。以类别扩增为例,如图 6 所示,在阿里云的智能工业·工业视觉智能的平台上,能够针对指定标签进行裁减且裁减倍数可抉择(如图 9 所示)。


图 9:平台类别扩增倍数抉择示意图


图 10:数据筹备模块解决示意图

数据筹备模块如图 10 所示,数据筹备模块取得原始图像和原始标注数据,构建数据处理流程并进行解决后,造成解决后图像和多任务兼容格局训练数据。多任务兼容格局训练数据表示造成的训练数据可能同时被此框架中检测、宰割、分类等多种训练任务应用。例如抉择了异样解决操作,解决后图像和训练数据中不会蕴含原始图像中的异样图像。例如抉择了子图切割操作,解决后的图像可能是原始图像对应的子图。如将解决后图像和多任务兼容格局训练数据传到 OSS 存储中,雷同训练任务能够抉择间接继承数据。不须要再次调用数据筹备模块。解决了应用雷同数据训练时须要一直反复解决数据的问题。

2 配置生成模块


图 11:配置生成模块示意图

配置生成模块如图 11 所示,数据通过数据筹备模块解决后会生成形容文件。配置生成模块接管默认配置、数据筹备模块后果和平台配置信息后,造成全局配置。如图 12 所示,平台模型训练时会进入此页面。其中自定义训练参数配置属于平台配置信息。平台配置信息包含模型抉择配置、训练高级参数配置和图像预处理参数配置。如图 13 所示,模型抉择配置负责训练的加载的初始模型。如图 14 所示,训练高级参数配置负责训练学习率、训练迭代数等相干配置。如图 14 所示。图像预处理参数配置负责训练时图像的输出分辨率、图像增强等相干配置。全局配置是作为数据载入、数据集剖析、模型训练、模型推理、模型评估和模型转换的配置文件。


图 12:平台模型训练相干配置入口示意图


图 13:平台模型训练模型抉择配置示意图


图 14:平台模型训练高级参数配置示意图


图 14:平台模型训练图像预处理参数配置示意图

3 数据载入模块


图 15:数据载入模块示意图

数据载入模块是继承于可扩大模块的。如图 15 所示,数据载入模块分为三个步骤。

首先读取全局配置文件,取得数据载入相干的信息,其次依据全局配置文件构建数据载入解决流程,最初进行数据载入。数据载入的输出数据是数据筹备模块产生的数据。数据载入读取全局配置文件中相干内容,如是否应用专家数据、图像预处理参数中的图像输出分辨率和数据加强的一些操作。

图 16:数据载入操作算子汇合示意图

数据载入模块的第二步是构建数据载入流程。如图 16 所示是数据载入的一些操作算子汇合。数据载入流程依据配置信息从操作算子中抉择相应算子并串联造成操作流程。数据载入模块有两种状态(目前工业视觉智能云平台未开启此性能)。别离是运行状态和调试状态。运行状态与其余模块无交互。图 16 中的成果可视化在调试状态时应用,在数据载入流程的任何地位能够嵌入成果可视化模型,用来可视化以后图像状态、类别状态、实例状态。这样就能够查看数据处理或数据加强的成果,确认单步数据处理成果和多部数据处理的叠加成果。图 17 所示为实例扰动加强操作可视化的成果,可视化时将实例相干信息“画”在图像上,不同类别用不同色彩示意。每个框代表一个实例。通过实例扰动加强后,能够直观看到实例的减少和实例在图像中的状况。


图 17:数据载入操作算子可视化示意图

4 数据集剖析模块


图 18:数据集剖析模块示意图

数据集剖析模块是继承于可扩大模块的。如图 18 所示,数据集剖析是集成数据载入模块的,分为四个步骤。

  • 第一个步骤是读取全局配置文件,取得数据集剖析相干的信息。比方图像预处理参数中的图像输出分辨率和数据加强的一些操作。
  • 第二步依据配置构建一个数据载入模块的相干流程。
  • 第三步依据配置构建剖析算子汇合。
  • 第四步串联数据载入和数据集剖析算子汇合进行解决(数据集剖析算子汇合如图 19 所示)。解决实现后所有后果能够在工业视觉智能平台的网页上展现。


图 19:数据集剖析算子合集示意图

5 模型训练模块


图 20:模型训练流程示意图


图 21:平台模型训练展现示意图

如图 20 所示,模型训练是集成数据载入模块的,分为四个步骤。

  • 第一个步骤是读取全局配置文件,取得模型训练相干的信息:比方图像预处理参数中的图像输出分辨率和数据加强的一些操作;比方高级参数配置中的总训练迭代数、默认参数配置文件加载和模型保留距离数;比方模型抉择中的预训练模型。
  • 第二步依据配置构建一个数据载入模块的相干流程。
  • 第三步依据配置构建算法模型和模型训练流程。
  • 第四步串联数据载入和模型训练流程并且运行。

如图 21 所示,模型训练会依照距离数保留到本地或对应的 OSS 中,并且在平台中会展现候选模型和理论产生工夫。同时模型训练的 LOG 文件也同步保留到本地或对应 OSS 中。模型训练的损失值(LOSS)能够通过通信的形式传递到工业视觉智能平台的后端程序中,图中 LOSS 曲线就是将训练框架返回的损失值展现在前端。须要阐明的是在此构建算法模型和模型训练流程是兼容多种工作的,并且数据筹备模型的数据是兼容多种工作的。这样框架就能够进行多任务兼容的模型训练。同时,因为数据集剖析模块和模型训练模块都是基于数据载入模块的,所以数据集剖析性能不仅能够依照原图和标注进行剖析,还能齐全模拟训练的数据处理形式进行剖析。这样就能够在训练之前发现数据集的特点或者提前查看数据处理和数据加强操作的后果,依据数据分析后果一直调整各种配置进行训练。而不是只应用默认配置或者集体教训去训练模型,防止了自觉训练。同时联合数据载入调试性能后,能够更深刻地剖析数据操作对数据集的影响,进一步提供算法优化计划。

6 模型推理模块


图 22:模型推理流程示意图

如图 22 所示,模型推理是集成数据载入模块的,分为四个步骤。

  • 第一个步骤是读取全局配置文件,取得模型推理相干的信息:比方图像预处理参数中的图像输出分辨率等操作;比方模型训练依照距离保留的模型。
  • 第二步依据配置构建一个数据载入模块的相干流程。
  • 第三步依据配置构建算法模型和模型推理流程。
  • 第四步串联数据载入和模型推理流程并且运行。模型推理的后果会保留到本地或者 OSS 中。

7 模型评估模块


图 23:模型评估流程示意图

模型评估模块是继承于可扩大模块的。如图 23 所示,模型评估是集成数据载入模块的,分为四个步骤。

  • 第一个步骤是读取全局配置文件,取得模型评估相干的信息,次要是须要评估的指标。
  • 第二步依据配置构建一个数据载入模块的相干流程,这里载入数据时不载入图像,载入数据筹备产生的 GT 后果(Ground Truth 后果、标注的实在后果)和模型推理产生的对应 AI 后果(算法预测的后果)。
  • 第三步依据配置构建模型评估流程。
  • 第四步串联数据载入和模型评估流程并且运行。

模型推理的后果会保留到本地或者 OSS 中。模型训练模块、模型推理模块、模型评估模块独立存在,评估过程不会占用训练工夫和资源,整体能够高效执行。


图 24:模型评估整体评估局部示意图

模型评估在工业视觉智能平台上分为整体评估后果、具体评估后果和检测后果展现。

图 24 所示是模型整体评估后果,左侧展现了评估的图像和标注数量,左边展现了整体算法指标。图中是指标检测的评估后果,所以展现了不同 IOU(交并比)下的 mAP 指标。

图 25 所示是模型评估的具体评估局部展现,左侧能够调节具体评估时不同类别的阈值,并且展现该类别的图像数量和标注数量。右侧是该类别在不同阈值下的召回率和精确度曲线。

如图 26 所示,依据具体评估中阈值设定,能够展现正确检测、漏检和误检三个局部,用来更加直观地查看模型在不同阈值下的成果和问题。点击正确检测、漏检、误检中的图像,平台会跳转到如图 27 的页面,页面展现了原图、GT 的框和类别、AI 算法预测的框和类别,这样能够单张地查看预测的后果和标注框的差距。工业视觉智能平台能够进行多模型评估性能。

如图 28 和图 9 所示,能够抉择多个候选模型进行模型评估。能够看到本框架和平台联合的模型评估除了进行学术算法指标的展现之外,还展现了不同阈值下的各项指标。和不同阈值下正确检测、漏检和误检的状况。


图 25:模型评估具体评估局部示意图


图 26:模型评估检测后果局部示意图


图 27:模型评估单张检测后果示意图


图 28:平台多模型评估模型抉择局部示意图


图 29:平台多模型评估模型开始局部示意图

8 模型转换模块


图 30:模型转换模块示意图

模型转换分为三个步骤。

  • 第一步是读取全局配置文件,比方图像预处理参数中的图像输出分辨率等操作。
  • 第二步依据全局配置文件中的信息,生成模型推理时应用的配置文件。
  • 第三步将模型训练保留的原始模型转换成推理时可用的加密模型。

相干文件保留在本地或上传到 OSS。其中生成模型推理时的配置文件和加密模型都是和对应模型推理库对应配合设计的,可能间接应用。这样用户不须要开发与部署对接,加重了工作量。并且本框架是兼容不同工作类型的算法的训练。模型和工作相干信息会被保留在配置文件中。

三 总结

本文章次要介绍了工业视觉智能团队实战经验中设计和演变进去的 IVI 算法框架,并联合公共云平台性能做了更具体的介绍。而在工业视觉智能实战中,咱们也会遇到一些工业视觉智能场景业务造成的图像域差别、图像分辨率、指标缺点状态、图像背景烦扰的算法上的挑战,在一直剖析和试验后咱们的算法也往更高精度、更高效和工业内更通用方向一直演变。同时因为工业视觉智能场景业务造成的模型更新需要频繁、算法定制化高、算法精度高、需要响应速度要求低等问题,咱们在算法模型组合、算法方案设计、算法计划评估、行业产品化方面也有了本人的算法模型组合的产品和整套的方法论。

原文链接
本文为阿里云原创内容,未经容许不得转载。

退出移动版