文档首页/ 图像搜索 ImageSearch/ 快速入门/ 创建实例以实现图像搜索功能
更新时间:2023-12-11 GMT+08:00

创建实例以实现图像搜索功能

关于图像搜索服务的概念、优势、功能和应用场景等,请参见《图像搜索服务产品介绍》

使用图像搜索服务,具体流程如下:

场景描述

为了便于您快速了解并使用图像搜索服务,本文档将介绍如何通过使用图像搜索服务的通用图片搜索功能,查找出图片库中与本地存储的图片相匹配的图片信息。

针对该样例,我们需要选定本地图片,暂定本地图片名称为“1.jpg”。利用图像搜索服务创建实例,选择服务模型为“通用图片搜索”,将已有的图片库进行离线数据导入到OBS桶中。当实例运行完成后,通过测试实例输出图片库中与本地图片“1.jpg”匹配的图片信息。

步骤1:申请服务

登录管理控制台具体流程如下:

  1. 登录华为云。若您没有华为云账号,请在“注册”页面,根据提示信息完成注册。
  2. 在华为云页面顶部选择“产品>人工智能>图像搜索”,进入图像搜索产品页。
  3. 进入产品页,单击立即使用,输入您的华为云账号密码登录,进入图像搜索管理控制台。
  4. 系统将自动跳转到“总览”页面,如图1所示,显示近一周实例API总调用次数和当前所有实例状态。
    图1 总览

步骤2:创建实例

在使用图像搜索服务时,首先要创建一个实例,选择对应的服务模型进行搜索。

  1. 在图像搜索服务管理控制台,“总览”“实例管理”页面创建实例。

    通过“实例管理”页面创建实例进行说明,单击“创建实例”,进入“创建实例”页面,具体参数说明信息,详情请参见表创建实例参数说明。

    图2所示。

    图2 创建实例
    表1 创建实例参数说明

    配置参数

    说明

    实例名称

    所创建的实例的名称,仅支持小写字母、数字、中划线和下划线且必须以小写字母开头。

    服务模型

    服务模型包括:通用图片搜索。

    通用图片搜索:适用于从图片库中搜索相似内容或类别的图片。

    自定义标签

    您可以通过自定义标签添加图像标签,为后续添加图片和查询图片时起到筛选图片的作用,最多支持10个标签。

    例如:在创建实例时,设置一个自定义标签:scenery。在创建实例完成后,测试实例时,首先在“添加图片”页面上传图片,比如您上传了一张天空的图片,这样标签scenery的标签值就可以设置为“天空”。添加图片完成后,您可以在“搜索图片”页面,上传想要搜索的图片,在标签scenery处输入标签值“天空”,这样在搜索结果中只会返回scenery为天空的图片搜索结果。

    设置自定义标签可以帮助您筛选搜索到的图片。如果您在创建实例时忘记设置自定义标签,也可以在“实例管理>实例详情”中进行设置。

    描述

    对所创建的实例进行描述说明。

    您可以购买套餐包来调用图像搜索服务的API,开通套餐包之后将优先扣除套餐包内的费用。

  2. 单击“立即创建”,创建成功的实例会展示在“实例管理”页面中,如图3所示。
    图3 实例管理

步骤3:离线导入

图像搜索服务提供离线导入功能,可以向实例中批量导入图像文件,在使用此功能之前,您需要预先在OBS中上传所需图像文件。

一、准备离线导入数据

  1. 在使用OBS之前,您需要先开通OBS,具体操作请参见《对象存储服务控制台指南》中的“登录OBS管理控制台”章节。
  2. 在OBS中存储数据,您需要先创建一个桶。桶是OBS中存储对象的容器。具体操作请参见《对象存储服务控制台指南》中的“创建桶”章节。

    创建的OBS桶信息:

    区域:华北-北京一

    桶名称:obs-5daf

    存储类别:标准存储

    桶策略:私有

    1. 离线导入功能仅支持从对象存储服务(Object Storage Service ,简称OBS)中导入图像数据,在使用此功能之前,您需要预先在OBS中上传所需图像文件。
    2. 参数“桶策略”选择默认设置即可。
    3. 图像搜索服务实例和预先上传图像的OBS桶的区域要保持一致。
  3. 向OBS桶中上传文件,具体操作请参见《对象存储服务控制台指南》中的“上传文件”章节。

二、执行离线导入任务

离线导入功能可以通过OBS桶或列表文件两种方式执行离线导入任务。

  • 方式一:从OBS桶导入(需要您提供数据所在OBS的目录)

    图像搜索服务使用OBS实现离线导入,您需要为图像搜索服务账号授予访问OBS对象的权限。

    1. 在图像搜索服务管理控制台“实例管理”页面,单击实例操作列的“离线导入”,进入“离线导入”页面。
      图4 离线导入
    2. 选择存放数据的OBS桶,例如“obs-5daf”。单击“授权”按钮,字体由蓝色显示为灰色即完成OBS授权访问。

      OBS桶只需授权一次,之后创建的实例无需再次授权,“授权”按钮字体显示灰色表示选择的该桶已授权。未授权时是蓝色的,表示该OBS桶需要授权。

    3. 点击“确定”按钮即可创建离线导入任务,如图5所示。
      图5 从OBS桶导入
    4. 若勾选“指定目录或文件列表”,可以填写OBS桶下的文件夹,从指定目录导入。例如,导入“obs-5daf”桶中文件目录data下的数据,如图6所示。
      图6 从OBS目录导入
  • 方式二:从列表文件导入(需要您提供以.batch为后缀名的json格式文件)。

    图像搜索服务支持从列表文件中获取需导入的图像信息,文件列表中存储离线导入任务的相关内容,可以自定义标签,对于列表文件格式做以下约定:

    1. 列表文件需要使用.batch作为后缀名。
    2. 列表文件需要放到数据所在的桶中,在桶内的具体目录不做限制,从列表文件导入数据如图7所示。
      图7 从列表文件导入
    3. 列表文件内容具体格式为:
      • 每行对应一张图片,示例请参见列表文件参考示例
      • 每张图片由 JSON 格式表示,具体字段含义请参见表2
        表2 列表文件参数说明

        名称

        是否必选

        类型

        说明

        operation

        String

        操作类型,支持add,表示新增图片。

        path

        String

        图片的URL路径,作为图片库中索引图片的ID,也作为作为下载图片的地址(当前仅支持从华为云图像搜索服务所在区域的OBS下载图片)。

        tags

        Array

        图片自定义标签,最多支持10个标签。

      • 列表文件参考示例
        {"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所示。

图8 查看当前和历史的离线导入任务

步骤4:测试实例

  1. 在图像搜索服务管理控制台“实例管理”页面,单击实例操作列的“测试”,进入“实例测试”页面进行图片添加和图片搜索。

    本样例以搜索图片为例,搜索出obs桶中已经离线导入的图片与本地图片“1.jpg”匹配的图片。

  2. “搜索图片”页签,选择“本地”搜索方式,选择本地图片“1.jpg”,单击“开始搜索”,如图9所示。
    图9 测试实例
  3. “响应结果”栏输出实例“imagesearch-test”在“obs-5daf”桶中与本地图片名为“1.jpg”的图片匹配结果,响应结果参数说明详见表-响应参数说明
    图10所示。
    图10 响应结果

步骤5:删除实例

实例运行完成后,如果不再需要本实例,可以将它删除,以免浪费资源或占用配额。

有未完成的离线导入任务时,该实例不能删除。

实例删除后无法恢复,请谨慎操作。

  1. 在图像搜索管理控制台的左侧导航栏中,单击““实例管理”,进入“实例管理”页面。
  2. “实例管理”页面的“test1”作业所在行,单击更多 > 删除
  3. 在弹出的确认对话框中,单击“确认”完成操作。