【图像识别】名人识别示例
引导式阅读
Java
【图像识别】名人识别示例
作者
C***
上架时间
2021-06-28 12:12:25

名人识别示例

版本说明

本示例基于华为云SDK V3.0版本开发。

前期准备

账号准备

  • 要使用华为云 Java SDK,您需要拥有华为云账号以及该账号对应的 Access Key(AK)和 Secret Access Key(SK)。请在华为云控制台“我的凭证-访问密钥”页面上创建和查看您的 AKSK。更多信息请查看访问密钥
  • 华为云 Java SDK 支持 Java JDK 1.8 及其以上版本。

开通服务

图像识别服务申请开通您可以按照以下步骤进行操作:

1.登录华为云,申请华为云账号,并完成实名认证

2.在华为云页面顶部选择“EI企业智能>AI服务>图像识别 Image”。

3.进入产品页,单击立即使用,输入您注册的用户名密码,进入图像识别管理控制台。

4.用户可以在图像识别管理控制台“服务列表”或“服务管理”页面申请开通服务。 以在“服务管理”页面开通“图像识别-图像标签”服务为例,在“商用服务”栏中选择“图像标签”,单击“开通服务”开通。

>说明:服务只需要开通一次即可,后面使用时无需再申请

5.商用服务申请成功后,在“服务管理”页面,“我的服务”中显示已经申请开通成功的服务,此时,您可以通过调用API接口的方式使用图像识别服务。

环境配置

需要具备jdk环境

SDK 获取和安装

  • 通过 Maven 安装依赖

    <dependencies> <dependency> <groupId>com.huaweicloud.sdk</groupId> <artifactId>huaweicloud-sdk-core</artifactId> <version>3.0.7-beta</version> </dependency> <dependency> <groupId>com.huaweicloud.sdk</groupId> <artifactId>huaweicloud-sdk-image</artifactId> <version>3.0.7-beta</version> </dependency> </dependencies>

代码示例

  • 该名人识别Demo示例对应URI:POST /v1.0/image/celebrity-recognition。将AK/SK等信息替换后,即可运行体验Demo。
  1. 在 com.huawei.codelabs.image.ImageTagging.java文件中配置用户AK/SK。示例代码如下:

    // 名人识别服务的的基本信息,生成对应的一个客户端连接对象 BasicCredentials credential = new BasicCredentials() .withAk(ak) // your ak .withSk(sk) // your sk .withProjectId(projectId); // projectId

    说明:

    • ak 华为云账号 Access Key 。
    • sk 华为云账号 Secret Access Key 。具体请参考访问密钥
    • projectId 云服务所在项目 ID 。具体请参考API凭证
  2. 初始化客户端

    ImageClient client = ImageClient.newBuilder() .withCredential(credential) .withHttpConfig(config) .withEndpoint(endpoint) .build();

    说明:

    • endpoint 华为云各服务应用区域和各服务的终端节点,详情请查看地区和终端节点
    • 举例: 如下图,如果要使用北京四的图像识别服务,endpoint应填入 https://image.cn-north-4.myhuaweicloud.com 终端节点举例.png
  3. 选择一张明星或者网络红人的人像图片(url或者本地图片)

    // url形式 CelebrityRecognitionReq image = new CelebrityRecognitionReq(); image.setUrl(url); // base64形式 byte[] fileData = FileUtils.readFileToByteArray(new File("./resource/celebrity-recognition.jpg")); String fileBase64Str = Base64.encodeBase64String(fileData); CelebrityRecognitionReq image = new CelebrityRecognitionReq(); image.setImage(fileBase64Str);

    说明:

    • url和base64选择其中一种进行赋值
  4. 构建发送请求

    RunCelebrityRecognitionRequest req = new RunCelebrityRecognitionRequest(); req.setBody(image);

    client.runCelebrityRecognition(req);

运行结果

[main] INFO HuaweiCloud-SDK-Access - "POST https://image.cn-north-4.myhuaweicloud.com/v1.0/image/celebrity-recognition" 200 125 e4b023aeea93393afe9dd9d78c09630c [class CelebrityRecognitionResultBody { confidence: 0.9897535374803481 faceDetail: {w=365, h=514, x=260, y=198} label: 迈克尔·杰克逊 }]