针对图像检索业务场景,PAI提供了端到端的相似图像匹配和图像检索解决方案。本文介绍如何基于未标注的数据构建图像自监督模型,助力您快速搭建相似图像匹配和图像检索业务系统,进而实现以图搜图。
背景信息
针对图像检索的业务场景(例如电商业务中需要根据已有图像搜索目标商品),PAI提供了如下解决方案,帮助您快速搭建相似图像匹配和图像检索业务系统:
- 解决方案
PAI在相似图像匹配和图像检索领域提供了端到端、轻量化的纯白盒解决方案。您只需要准备原始的图像数据,无需标注就能够构建模型。然后利用PAI的可视化建模平台快速自定义构建图像自监督模型。最后将模型在PAI上进行部署推理,形成完整的端到端流程,从而实现相似图像匹配和图像检索的业务系统。
- 方案架构相似图像匹配解决方案的架构图如下所示。
图像检索解决方案的架构图如下所示。
- 方案优势
- 无需标注:图像无需标注,使用原始数据即可建模,从而节省大量人力成本。
- 纯白盒:可以根据自己具体的业务场景,纯自定义构建模型。
- 端到端:从最初的数据准备到最后的模型推理,提供全链路系统构建流程。
- 轻量级:无论是工程师还是初级用户,都能快速搭建图像匹配和检索系统。
前提条件
- 已开通PAI(Studio、DSW、EAS)后付费,详情请参见开通。
- 已开通工作空间,并添加MaxCompute计算资源和DLC计算资源,详情请参见AI工作空间(旧版)。
- 已创建OSS存储空间(Bucket),用于存储原始图像和训练获得的模型文件。关于如何创建存储空间,请参见创建存储空间。
- 已创建PAI-EAS专属资源组,本文训练好的模型会部署至该资源组。关于如何创建专属资源组,请参见创建专属资源组。
- 已完成DLC使用权限授权,授权方法详情请参见云产品依赖与授权:DLC。
操作流程
基于阿里云机器学习PAI平台,构建相似图像匹配与图像检索解决方案的流程如下:
- 准备数据
本文使用的算法为图像自监督算法,训练过程中无需标注数据,您将原始数据存入OSS即可直接进行模型训练。此外,如果使用图像检索解决方案,则需要在本地准备检索图的图像数据库。从而在图像检索模型的部署过程中,将准备好的本地数据注册到数据库中。
PAI提供了原始数据集,您可以直接使用它进行数据准备。关于数据集的下载方式,请参见Deepfashion2图像数据集。
- 构建图像自监督模型
利用可视化建模PAI-Studio平台,基于自己特定的业务场景,采用自监督的图像深度学习训练组件,将原始的尚未标注的图像直接进行训练。对于相似图像匹配场景和图像检索场景,您都可以使用该自监督组件进行模型训练,两种场景在模型训练部分无差别。
- 部署及调用模型服务
通过模型在线服务PAI-EAS,您可以将训练好的图像自监督模型部署为在线服务,并在实际的生产环境中的相似图像匹配和图像检索两个场景下进行推理实践,详情请参见部署及调用相似图像匹配的模型服务和部署及调用图像检索的模型服务。
准备数据
PAI提供了原始数据集,您可以直接使用它进行数据准备。关于数据集的下载方式,请参见Deepfashion2图像数据集。
- 准备模型训练所需的数据。
- 将原始图片上传至OSS的某一目录中。关于如何将文件上传至OSS,请参见上传文件。
- 根据图像上传的OSS文件目录,生成OSS图像目标索引的TXT文件。索引文件的示例请参见demo_img_list.txt。
- 将生成好的TXT索引文件存储到OSS的某一目录下。
- 如果您使用图像检索解决方案,则需要准备图像检索数据库。部署图像检索模型时,您需要准备检索的图像数据库,并对注册到数据库中的图像进行特征提取,从而在目标图像的推理过程中实现在已存在图像数据库中对上传的图像进行相似的快速检索。因此,您需要在本地准备图像检索数据库中的图像数据,为后续模型部署环节的注册数据库做准备。
构建图像自监督模型
- 登录PAI控制台。
- 在左侧导航栏,选择 。
- 基于实验模板,创建相似图像匹配与图像检索实验。
- 在可视化建模(Studio)页面,单击实验模板页签。
- 单击CV页签。
- 在相似图像匹配与图像检索区域,单击创建。
- 在新建模板对话框,先输入实验名称和描述、选择绑定的工作空间和实验存放的位置,再单击确定即可创建实验。
- 进入实验,并配置组件参数。
部署及调用相似图像匹配的模型服务
- 进入PAI EAS模型在线服务页面。
- 登录PAI控制台。
- 在左侧导航栏单击工作空间列表,在工作空间列表页面中单击待操作的工作空间名称,进入对应工作空间内。
- 在工作空间页面的左侧导航栏选择EAS-模型在线服务页面。 ,进入
- 部署模型服务。
- 查看模型服务的公网地址和访问Token。
- 在PAI EAS模型在线服务页面,单击目标服务服务方式列下的调用信息。
- 在调用信息对话框的公网地址调用页签,查看公网调用的访问地址和Token。
- 使用脚本进行批量调用。
- 监控服务指标。调用模型服务后,您可以查看模型调用的相关指标水位,包括QPS、RT、CPU、GPU及Memory。
部署及调用图像检索的模型服务
- 进入PAI EAS模型在线服务页面。
- 登录PAI控制台。
- 在左侧导航栏单击工作空间列表,在工作空间列表页面中单击待操作的工作空间名称,进入对应工作空间内。
- 在工作空间页面的左侧导航栏选择EAS-模型在线服务页面。 ,进入
- 部署模型服务。
- 查看模型服务的公网地址和访问Token。
- 在PAI EAS模型在线服务页面,单击目标服务服务方式列下的调用信息。
- 在调用信息对话框的公网地址调用页签,查看公网调用的访问地址和Token。
- 调用图像检索服务进行推理。图像检索服务需要首先建立图像检索数据库,然后将注册到数据库中的图像进行特征提取,最后从图像数据库的数据中,对上传的图像进行相似快速检索。整个过程需要使用的接口包括数据库初始化、增加数据库、增加数据及检索数据等接口,如下表所示,所有接口说明请参见概述。下文提供一个简单的示例供您参考。
功能 描述 接口文档 初始化 首先基于某一指定的OSS路径进行数据库的初始化。 初始化接口 数据库管理 支持对图像数据库进行增加、查询、删除及存储操作。 数据库管理层接口 图像数据注册 指定已存在的图像数据库,对图像数据进行增加、查询、删除及修改操作。 数据库层接口 图像数据检索 指定已存在的图像数据库,对上传的图片进行图像相似的快速检索。 检索数据(db_search) 说明 该方案主要针对轻量级数据。如果您的检索库数据量预期大于1000万,请联系您的商务经理来处理。