在 Amazon SageMaker 上训练和托管用于篡改检测的计算机视觉模型:第二部分 机器学习博
在 Amazon SageMaker 上训练和托管计算机视觉模型进行篡改检测:第 2 部分
关键要点
本文介绍了如何在 Amazon SageMaker 上开发、训练和部署深度学习计算机视觉模型,以检测抵押贷款中的伪造图像。介绍了错误级分析ELA算法作为验证图像篡改的快速方法。文章提供了整合AWS服务的端到端解决方案,通过自动化文档验证和欺诈检测来提升效率。在这篇三部分系列的第一部分,我们展示了如何利用 AWS AI 和机器学习 (ML) 服务,自动化大规模检测文档篡改和欺诈的方法,专注于抵押贷款承保案例。
在本篇文章中,我们提出了一种基于深度学习的计算机视觉模型,以检测和突出抵押贷款中的伪造图像。我们将指导您如何在 Amazon SageMaker 上构建、训练和部署深度学习网络。
在第三部分中,我们将说明如何在 Amazon Fraud Detector 上实现这一解决方案。
解决方案概述
为了实现抵押贷款承保中的文档篡改检测目标,我们采用了一种在 SageMaker 上托管的计算机视觉模型作为我们的图像伪造检测解决方案。该模型接收测试图像作为输入,并生成伪造的可能性预测作为其输出。网络架构如以下图所示。
图像伪造主要涉及四种技术:拼接、复制移动、去除和增强。根据伪造的特征,可以使用不同的线索作为检测和定位的基础。这些线索包括 JPEG 压缩伪影、边缘不一致、噪声模式、颜色一致性、视觉相似性、EXIF 一致性和相机型号。
考虑到图像伪造检测的广泛领域,我们使用错误级分析 (ELA) 算法作为检测伪造的示例方法。我们选择 ELA 技术的原因如下:
实施更加迅速,能轻松捕捉图像篡改。通过分析图像不同部分的压缩级别来工作,能够检测出指示篡改的不一致性,例如,如果某个区域是从另一张以不同压缩级别保存的图像中复制并粘贴的。适合检测更细微或无缝的篡改,这些通常很难用肉眼发现,即使是图像上的小变化也可能引入可检测的压缩异常。不依赖于具有原始未修改图像的对比。ELA 可以仅依据被质疑的图像自身识别篡改迹象。作为一种轻量级技术,仅依赖于分析数字图像数据中的压缩伪影,因此不依赖于专用硬件或法医专业知识,使得 ELA 可作为第一轮分析工具。输出的 ELA 图像能够清晰突出压缩级别的差异,使得篡改区域显而易见,即使非专家也能识别可能的操控迹象。适用于多种图像类型如 JPEG、PNG 和 GIF,只需图像本身进行分析,而其他法医技术可能对格式或原始图像要求更加严格。然而,在实际场景中,您可能会碰到不同格式的输入文档JPEG、PNG、GIF、TIFF、PDF,建议结合使用 ELA 和其他方法,如检测边缘不一致性、噪声模式、颜色均匀性、EXIF 数据一致性、相机型号识别和字体均匀性。我们计划在本帖代码中更新其他伪造检测技术。
ELA 的基本前提假设输入图像为 JPEG 格式,以其有损压缩著称。然而,即使输入图像最初为无损格式如 PNG、GIF 或 BMP,在篡改过程中转换为 JPEG,ELA 依然有效。当 ELA 应用于原始无损格式时,通常表明图像质量一致而没有劣化,使得识别更改区域变得困难。典型情况下,JPEG 图像的预期是整个图像显示相似的压缩级别。然而,如果图像中的某个特定区域显示出明显不同的错误级别,通常意味着数字修改已发生。
ELA 突出 JPEG 压缩率的差异。颜色均匀的区域将产生较低的 ELA 结果例如,与高对比度边缘相比,较暗的颜色。识别篡改或修改的迹象包括:
相似的边缘在 ELA 结果中应该有相似的亮度。所有高对比度边缘应该彼此相似,所有低对比度边缘也应该彼此相似。在原始照片中,低对比度边缘的亮度应该几乎与高对比度边缘一致。相似的纹理在 ELA 下应该有相似的颜色。具有更多表面细节的区域,如篮球的特写,可能会比平滑表面生成更高的 ELA 结果。不管表面的实际颜色,所有平坦的表面在 ELA 下的颜色应该大致相同。前提条件
要跟随本帖的内容,请完成以下前提条件:
拥有一个 AWS 账户。设置 Amazon SageMaker Studio。您可以使用默认预设快速启动 SageMaker Studio。有关更多信息,请参见 Amazon SageMaker 简化了 Amazon SageMaker Studio 的单用户设置。打开 SageMaker Studio 并启动系统终端。
在终端中运行以下命令:
git clone https//githubcom/awssamples/documenttamperingdetectiongit
运行 SageMaker Studio 的费用为每小时 7314 美元。设置模型训练笔记本
完成以下步骤以设置您的训练笔记本:
从 documenttamperingdetection 目录打开 tamperingdetectiontrainingipynb 文件。将笔记本环境设置为使用 TensorFlow 26 的 Python 38 CPU 或 GPU 优化版本。 在选择 GPU 优化的实例时,您可能会遇到可用性不足或达到 AWS 账户中的 GPU 实例配额限制的问题。在这种情况下,您可以访问服务配额控制台并提高所需实例类型的服务限制。您也可以使用 CPU 优化的笔记本环境。
对于 Kernel,选择 Python3。
对于 实例类型,选择 mlm5d24xlarge 或任何其他大型实例。我们选择了更大的实例类型以缩短模型的训练时间。使用 mlm5d24xlarge 笔记本环境,每小时费用为 7258 美元。
运行训练笔记本
按顺序运行笔记本中的每个单元格 tamperingdetectiontrainingipynb。在接下来的部分中,我们将更详细地讨论某些单元格。
准备原始图像和篡改图像的数据集
在运行笔记本中以下单元格之前,根据具体业务需求准备原始和篡改文档的数据集。对于本帖,我们使用了一组示例数据集,包括篡改的工资单和银行对账单。该数据集可在 GitHub 仓库 的图像目录中找到。
笔记本从 images/training 目录读取原始和篡改图像。
训练的数据集是使用 CSV 文件创建的,包含两列:图像文件路径和图像标签0 表示原始图像,1 表示篡改图像。
通过生成每个训练图像的 ELA 结果来处理数据集
在此步骤中,我们生成输入训练图像的 ELA 结果质量为 90。函数 converttoelaimage 接收两个参数:路径表示图像文件的路径,以及质量表示 JPEG 压缩的质量参数。该函数执行以下步骤:
将图像转换为 RGB 格式,并以指定质量重新保存为 JPEG 文件,命名为 tempresavedjpg。计算原始图像与重新保存的 JPEG 图像之间的差异ELA,以确定原始和重新保存图像之间的最大像素值差。根据最大差值计算缩放因子,以调整 ELA 图像的亮度。使用计算的缩放因子增强 ELA 图像的亮度。将 ELA 结果调整为 128x128x3 的大小,其中 3 表示通道数,以减少用于训练的输入大小。返回 ELA 图像。在有损图像格式如 JPEG中,初始保存过程会导致大量的颜色损失。然而,当图像被加载并随后在相同的有损格式中重新编码时,通常会有更少的颜色劣化。ELA 结果强调在重新保存过程中最易受颜色劣化影响的图像区域。通常,修改会 prominently 显示在那些表现出较高劣化潜力的区域。
接下来,图像将处理为 NumPy 数组以进行训练。然后,我们将输入数据集随机拆分为训练和测试或验证数据80/20。在运行这些单元格时,您可以忽略任何警告。
根据数据集的大小,运行这些单元格可能需要时间。对于我们在此仓库提供的示例数据集,可能需要 510 分钟。
配置 CNN 模型
在此步骤中,我们构建了一个使用小卷积滤波器的 VGG 网络的最小版本。VGG16 由 13 个卷积层和三个全连接层组成。以下屏幕截图展示了我们的卷积神经网络 (CNN) 模型的架构。
注意以下配置:
输入 模型接收 128x128x3 的图像输入大小。卷积层 卷积层使用最小感受野 (33),这是捕获上下左右的最小可能大小。后面跟着修正线性的激活函数ReLU,减少训练时间。这个函数是一个线性函数,如果输入为正则输出输入,否则输出为零。卷积步幅固定在默认值1 像素,以保持卷积后的空间分辨率。全连接层 网络有两个全连接层。第一个密集层使用 ReLU 激活,第二个使用 softmax 将图像分类为原始或篡改。在运行这些单元格时,您可以忽略任何警告。
保存模型工件
使用唯一的文件名例如,根据当前日期和时间保存训练好的模型到名为 model 的目录中。
模型以 Keras 格式保存,扩展名为 keras。我们还将模型工件保存为名为 1 的目录,其中包含序列化签名和运行所需的状态,包括在 SageMaker 运行时部署所需的变量值和词汇,稍后我们将在本篇中详细讨论。
评估模型性能
以下损失曲线显示了模型损失在训练历程中的变化。
损失函数衡量模型的预测与实际目标的匹配度。较低的值说明预测与真实值之间的更好对齐。随着历元的增加,损失减少表明模型在改善。准确性曲线展示模型在训练历元中的准确性。准确性是正确预测与总预测数的比率,较高的准确性表示模型表现更佳。通常在训练时,随着模型学习模式并提升其预测能力,准确性会不断上升。这些结果可以帮助您判断模型是否出现了过拟合在训练数据上表现好,但在未见数据上表现差或欠拟合未充分学习训练数据。
以下混淆矩阵直观地展示模型在区分正类伪造图像,代表值 1与负类未篡改图像,代表值 0方面的准确度。
在模型训练完成后,我们的下一步是将计算机视觉模型部署为 API。此 API 将作为承保工作流的一部分集成到业务应用程序中。我们使用 Amazon SageMaker 推理,这是一个完全托管的服务,能够无缝整合 MLOps 工具,实现可扩展的模型部署、成本效益高的推理、增强的模型管理并减少操作复杂性。在本帖子中,我们将模型部署为实时推理端点。值得注意的是,具体的业务应用程序工作流也可以将模型部署调整为批处理、异步处理或通过无服务器部署架构来实现。
啊哈加速器安卓版设置模型部署笔记本
完成以下步骤以设置模型部署笔记本:
从 documenttamperingdetection 目录打开 tamperingdetectionmodeldeployipynb 文件。将笔记本环境设置为使用图像数据科学 30。对于 Kernel,选择 Python3。对于 实例类型,选择 mlt3medium。使用 mlt3medium 笔记本环境,每小时费用为 0056 美元。
创建 SageMaker 角色的自定义内联策略以允许所有 Amazon S3 操作
AWS 身份与访问管理 (IAM) 角色的格式为 AmazonSageMakerExecutionRolelt随机数字gt。请确保您使用的是正确的角色。角色名称可以在 SageMaker 域配置中的用户详情下找到。
更新 IAM 角色,以便包含一个内联政策以允许所有 Amazon 简单存储服务 (Amazon S3) 的操作。这将用于自动创建和删除将存储模型工件的 S3 存储桶。您可以限制特定 S3 存储桶的访问。请注意,我们在 IAM 策略中对 S3 存储桶名称使用了通配符tamperingdetection
创建和微调句子变换器以提升分类准确性 机器学习博客
提升分类准确度的句子变换器创建与微调作者:Kara Yang Farshad Harirchi 和 James Poquiz 发布于 2024年10月30日 亚马逊 SageMaker重点总结句子变换器是一种强大的深度学习模型,能够将句子转化为高质量的固定长度嵌入,从而捕捉其语义含义。在这篇文章中,我们将展示如何微调句子变换器,以便更好地将亚马逊产品分类。我们比较了两种不同的句子变换器,并证明了基...
构建一个生成式 AI 图像描述应用程序,使用 Anthropic 的 Claude 35 Sonn
使用Anthropic Claude 35 Sonnet在Amazon Bedrock和AWS CDK构建生成式AI图像描述应用关键要点在许多行业中,生成图像描述是应用程序的常见需求,从而提高内容发现性和无障碍服务。随着生成式人工智能和多模态模型的进步,生产图像描述变得更加简单。本篇文章详细讨论如何利用Amazon Bedrock和Generative AI CDK Constructs来构建和部...