创建实例以实现图像搜索功能
关于图像搜索服务的概念、优势、功能和应用场景等,请参见《图像搜索服务产品介绍》。
使用图像搜索服务,具体流程如下:
针对该样例,我们需要选定本地图片,暂定本地图片名称为“1.jpg”。利用图像搜索服务创建实例,选择服务模型为“通用图片搜索”,将已有的图片库进行离线数据导入到OBS桶中。当实例运行完成后,通过测试实例输出图片库中与本地图片“1.jpg”匹配的图片信息。
步骤2:创建实例
在使用图像搜索服务时,首先要创建一个实例,选择对应的服务模型进行搜索。
- 在图像搜索服务管理控制台,“总览”或“实例管理”页面创建实例。
通过“实例管理”页面创建实例进行说明,单击“创建实例”,进入“创建实例”页面,具体参数说明信息,详情请参见表创建实例参数说明。
如图2所示。
表1 创建实例参数说明 配置参数
说明
实例名称
所创建的实例的名称,仅支持小写字母、数字、中划线和下划线且必须以小写字母开头。
服务模型
服务模型包括:通用图片搜索。
通用图片搜索:适用于从图片库中搜索相似内容或类别的图片。
自定义标签
您可以通过自定义标签添加图像标签,为后续添加图片和查询图片时起到筛选图片的作用,最多支持10个标签。
例如:在创建实例时,设置一个自定义标签:scenery。在创建实例完成后,测试实例时,首先在“添加图片”页面上传图片,比如您上传了一张天空的图片,这样标签scenery的标签值就可以设置为“天空”。添加图片完成后,您可以在“搜索图片”页面,上传想要搜索的图片,在标签scenery处输入标签值“天空”,这样在搜索结果中只会返回scenery为天空的图片搜索结果。
设置自定义标签可以帮助您筛选搜索到的图片。如果您在创建实例时忘记设置自定义标签,也可以在“实例管理>实例详情”中进行设置。
描述
对所创建的实例进行描述说明。
您可以购买套餐包来调用图像搜索服务的API,开通套餐包之后将优先扣除套餐包内的费用。
- 单击“立即创建”,创建成功的实例会展示在“实例管理”页面中,如图3所示。
步骤3:离线导入
图像搜索服务提供离线导入功能,可以向实例中批量导入图像文件,在使用此功能之前,您需要预先在OBS中上传所需图像文件。
一、准备离线导入数据
- 在使用OBS之前,您需要先开通OBS,具体操作请参见《对象存储服务控制台指南》中的“登录OBS管理控制台”章节。
- 在OBS中存储数据,您需要先创建一个桶。桶是OBS中存储对象的容器。具体操作请参见《对象存储服务控制台指南》中的“创建桶”章节。
创建的OBS桶信息:
区域:华北-北京一
桶名称:obs-5daf
存储类别:标准存储
桶策略:私有
- 离线导入功能仅支持从对象存储服务(Object Storage Service ,简称OBS)中导入图像数据,在使用此功能之前,您需要预先在OBS中上传所需图像文件。
- 参数“桶策略”选择默认设置即可。
- 图像搜索服务实例和预先上传图像的OBS桶的区域要保持一致。
- 向OBS桶中上传文件,具体操作请参见《对象存储服务控制台指南》中的“上传文件”章节。
二、执行离线导入任务
离线导入功能可以通过OBS桶或列表文件两种方式执行离线导入任务。
- 方式一:从OBS桶导入(需要您提供数据所在OBS的目录)。
图像搜索服务使用OBS实现离线导入,您需要为图像搜索服务账号授予访问OBS对象的权限。
- 方式二:从列表文件导入(需要您提供以.batch为后缀名的json格式文件)。
图像搜索服务支持从列表文件中获取需导入的图像信息,文件列表中存储离线导入任务的相关内容,可以自定义标签,对于列表文件格式做以下约定:
- 列表文件需要使用.batch作为后缀名。
- 列表文件需要放到数据所在的桶中,在桶内的具体目录不做限制,从列表文件导入数据如图7所示。
- 列表文件内容具体格式为:
- 每行对应一张图片,示例请参见列表文件参考示例。
- 每张图片由 JSON 格式表示,具体字段含义请参见表2。
- 列表文件参考示例
{"operation":"add","path":"https://obs-5daf.obs.cn-north-1.myhuaweicloud.com/data/1.jpg", "tags":{"tag1":"v1"}} {"operation":"add","path":"https://obs-5daf.obs.cn-north-1.myhuaweicloud.com/data/1.jpg"} {"operation":"add","path":"data/1.jpg", "tags":{"my_tag1":"v1","my_tag2":"v2","my_tag3":"v3"}}
三、查看离线导入任务
在图像搜索服务管理控制台“实例管理”页面,单击“离线导入”页面,可以查看当前和历史的离线导入任务。
离线导入状态有“初始化”、“运行中”、“成功”三种状态。初始化表示任务准备中,运行中表示图片正在导入到实例中,成功表示离线导入任务结束。
如图8所示。