在AWS无服务器架构中插入并执行机器学习模型以检测视觉异常
想象一下,你拥有一个大型的各种设备的基础设施,你需要定期维护或确保它们不会对周围环境造成危险。
一种方法是定期派人到每个地点检查一切是否正常。这种方法可能可行,但也非常耗时和资源昂贵。如果基础设施足够大,你可能无法在一年内覆盖到所有地方。
另一种方法是自动化这个过程,让云端的工作来验证。为此,你需要执行以下步骤:
👉 快速获得设备图片的过程。这仍然可以由人来完成,因为仅仅拍照比进行所有设备验证流程要快得多。也可以通过汽车或甚至无人机拍摄的照片来完成,这样就成为了一个更快速和更自动化的图片收集过程。
👉 然后,你需要将所有获取到的图片发送到云中的一个专用位置。
👉 在云端,你需要一个自动化的任务来获取这些图片,并使用训练有素的模型来识别设备损坏或异常。
👉 最后,结果必须对需要的用户可见,以便可以为有问题的设备安排维修。
让我们看看如何在AWS云中从图片中实现异常检测。亚马逊有一些预先构建的机器学习模型可以用于此目的。
创建视觉异常检测模型的方法
要创建视觉异常检测模型,你需要按照以下几个步骤进行操作:
步骤1:明确你想要解决的问题和你想要检测的异常类型。这将帮助你确定需要用于训练模型的适当测试数据集。
步骤2:收集一组大型数据集,其中包含代表正常和异常条件的图像。标记这些图像以指示哪些是正常的,哪些包含异常。
步骤3:选择适合任务的模型架构。这可能涉及选择预训练模型并对其进行微调以适应你特定的用例,或者从头开始创建自定义模型。
步骤4:使用准备好的数据集和选择的算法训练模型。这意味着使用迁移学习来利用预训练模型,或者使用卷积神经网络等技术从头开始训练模型。
如何训练机器学习模型
训练AWS机器学习模型进行视觉异常检测的过程通常涉及几个重要步骤。
#1. 收集数据
首先,你需要收集并标记一组大型图像数据集,这些图像代表正常和异常条件。数据集越大,模型训练得越好和更精确。但同时,这也需要更多时间来训练模型。
通常,你希望测试集中有大约1000张图片,以便有一个良好的起点。
#2. 准备数据
图片数据必须首先经过预处理,以便机器学习模型能够获取它们。预处理可能意味着各种操作,例如:
- 清理输入图片并将其分开到单独的子文件夹中,纠正元数据等。
- 调整图片的大小以满足模型的分辨率要求。
- 将它们分发到更小的图片块中,以进行更有效和并行处理。
#3. 选择模型
现在选择合适的模型来完成适当的工作。可以选择一个预训练模型,或者可以创建一个适用于模型视觉异常检测的自定义模型。
#4. 评估结果
一旦模型处理完您的数据集,您应该验证其性能。您还想检查结果是否满足需求。这可能意味着结果在超过99%的输入数据上是正确的。
#5. 部署模型
如果对结果和性能满意,可以将模型部署到AWS账户环境中的特定版本中,以便进程和服务可以开始使用它。
#6. 监控和改进
让模型通过各种测试作业和图片数据集,不断评估检测正确性所需的参数是否仍然存在。
如果不存在,可以通过包含模型生成错误结果的新数据集来重新训练模型。
AWS机器学习模型
现在,看一些您可以在Amazon云中利用的具体模型。
AWS Rekognition
Rekognition是一种通用的图像和视频分析服务,可用于各种用例,例如人脸识别、物体检测和文本识别。大部分时间,您将使用Rekognition模型对检测结果进行初始原始生成,以形成已识别异常的列表。
它提供了一系列可直接使用而无需训练的预构建模型。Rekognition还提供了具有高准确性和低费用的实时图像和视频分析。
以下是一些Rekognition适用于异常检测的典型用例:
- 具备用于异常检测的通用用例,例如检测图像或视频中的异常。
- 执行实时异常检测。
- 将您的异常检测模型与AWS服务(如Amazon S3、Amazon Kinesis或AWS Lambda)进行集成。
以下是使用Rekognition可以检测到的一些具体异常示例:
- 人脸异常,例如检测超出正常范围的面部表情或情绪。
- 场景中缺失或错位的物体。
- 拼写错误或文本的异常模式。
- 异常的光照条件或场景中的意外物体。
- 图像或视频中的不适宜或冒犯性内容。
- 运动的突然变化或意外的运动模式。
AWS Lookout for Vision
Lookout for Vision是一种专门用于工业流程异常检测的模型,例如制造和生产线。它通常需要一些自定义代码来预处理和后处理图片或图片的具体剪裁,通常使用一种特定的编程语言完成。大部分时间,它专注于图片中的一些非常特殊的问题。
它需要对正常和异常图像数据集进行自定义训练,以创建用于异常检测的自定义模型。它不太注重实时性,而是专注于批量处理图像,强调准确性和精度。
以下是一些Lookout for Vision适用于的典型用例,如果需要检测以下情况,它是一个不错的选择:
- 在制造产品中发现缺陷或在生产线中识别设备故障。
- 大量图像或其他数据集。
- 工业过程中的实时异常。
- 与其他AWS服务集成的异常,例如Amazon S3或AWS IoT。
以下是使用Lookout for Vision可以检测到的一些具体异常的示例:
- 制造产品中的缺陷,例如划痕、凹痕或其他瑕疵,可能会影响产品的质量。
- 生产线上的设备故障,例如检测到破损或发生故障的机器,可能会导致延迟或安全隐患。
- 生产线上的质量控制问题,包括检测不符合要求的产品规格或公差的产品。
- 生产线上的安全隐患,包括检测可能对工人或设备构成风险的物体或材料。
- 生产过程中的异常,例如检测到物料或产品在生产线上流动发生意外变化。
AWS Sagemaker
Sagemaker是一个完全托管的平台,用于构建、训练和部署定制的机器学习模型。
这是一个更加强大的解决方案。实际上,它提供了一种将多个多步骤过程连接并执行为一个连续的作业链的方式,类似于AWS Step Functions可以做到的。
但由于Sagemaker在其处理中使用特定的EC2实例,因此不存在单个作业处理的15分钟限制,就像AWS Step Functions中的AWS Lambda函数一样。
您还可以使用Sagemaker进行自动模型调优,这无疑是一个使其脱颖而出的功能。最后,Sagemaker可以轻松将模型部署到生产环境中。
以下是SageMaker适用于异常检测的一些典型用例:
- 特定用例未由预构建模型或API覆盖,并且如果您需要构建符合您特定需求的定制模型。
- 如果您具有大量图像或其他数据集。预构建模型在这种情况下需要一些预处理,但Sagemaker可以在无需预处理的情况下完成。
- 如果您需要进行实时异常检测。
- 如果您需要将模型与其他AWS服务集成,例如Amazon S3、Amazon Kinesis或AWS Lambda。
以下是Sagemaker能够执行的一些典型异常检测:
- 金融交易中的欺诈检测,例如异常的消费模式或超出正常范围的交易。
- Cybersecurity中的网络流量,例如数据传输的异常模式或与外部服务器的意外连接。
- 医学图像中的医学诊断,例如检测肿瘤。
- 设备性能异常,例如检测振动或温度的变化。
- 制造过程中的质量控制,例如检测产品缺陷或与预期质量标准不符的偏差。
- 能源使用的异常模式。
如何将模型整合到无服务器架构中
训练好的机器学习模型是一个不使用任何集群服务器的云服务,因此可以轻松地包含在现有的无服务器架构中。
自动化通过AWS Lambda函数实现,连接到AWS Step Functions服务中的多个步骤作业中。
通常,在收集图像并对其进行预处理之后,您需要在S3存储桶上进行初始检测。这是您将在输入图像上生成原子异常检测并将结果保存到数据湖中的地方,例如Athena数据库。
在某些情况下,这种初始检测对于您的具体用例来说可能不足够。您可能需要另一种更详细的检测。例如,初始(例如Recognition)模型可以检测到设备上的某些问题,但无法可靠地确定是什么类型的问题。
为此,您可能需要具有不同功能的另一个模型。在这种情况下,您可以在初始模型识别出问题的图片子集上运行另一个模型(例如Lookout for Vision)。
这也是一种节省成本的好方法,因为您不需要在整个图片集上运行第二个模型。相反,您只在有意义的子集上运行它。
AWS Lambda函数将使用Python或Javascript代码来处理所有这些处理。这仅取决于流程的性质以及您需要在其中包含多少个AWS Lambda函数。 AWS Lambda调用的最大持续时间为15分钟,将决定此类过程需要包含多少个步骤。
最后的话
使用云机器学习模型是一项非常有趣的工作。如果您从技能和技术的角度来看,您会发现您需要一个具有多种技能的团队。
团队需要了解如何训练模型,无论是预先构建的还是从头开始创建的。这意味着需要大量的数学或代数知识来平衡结果的可靠性和性能。
您还需要一些高级的Python或Javascript编码技能,数据库和链接_15技能。在完成所有内容工作之后,您需要具备DevOps技能,将其插入到管道中,以使其成为一个自动化作业,准备部署和执行。
定义异常和训练模型是一回事。但是,将其全部整合到一个功能团队中,以处理模型的结果并以有效和自动化的方式保存数据,为最终用户提供服务,这是一个挑战。
接下来,请查看链接_16的所有内容。