• 沒有找到結果。

名人识别示例_图像识别 Image_SDK参考_使用SDK(Java)_华为云

N/A
N/A
Protected

Academic year: 2022

Share "名人识别示例_图像识别 Image_SDK参考_使用SDK(Java)_华为云"

Copied!
25
0
0

加載中.... (立即查看全文)

全文

(1)

图像识别

SDK 参考

文档版本 01

发布日期 2021-11-11

(2)

版权所有 © 华为技术有限公司 2021。 保留一切权利。

非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传 播。

商标声明

和其他华为商标均为华为技术有限公司的商标。

本文档提及的其他所有商标或注册商标,由各自的所有人拥有。

注意

您购买的产品、服务或特性等应受华为公司商业合同和条款的约束,本文档中描述的全部或部分产品、服务或 特性可能不在您的购买或使用范围之内。除非合同另有约定,华为公司对本文档内容不做任何明示或暗示的声 明或保证。

由于产品版本升级或其他原因,本文档内容会不定期进行更新。除非另有约定,本文档仅作为使用指导,本文 档中的所有陈述、信息和建议不构成任何明示或暗示的担保。

华为技术有限公司

地址: 深圳市龙岗区坂田华为总部办公楼 邮编:518129

网址:

https://www.huawei.com

客户服务邮箱:

[email protected]

客户服务电话:4008302118

(3)

目 录

1 图像识别 SDK 简介...1

2 申请服务...2

3 获取认证信息... 3

4 准备环境...4

5 SDK 列表及指导文档(通用版)... 5

6 使用 SDK(Java)... 6

6.1 Java 开发环境配置... 6

6.2 SDK 获取和安装... 6

6.3 图像标签示例... 7

6.4 名人识别示例... 8

7 使用 SDK(Python)... 11

7.1 Python 开发环境配置...11

7.2 Python 语言 SDK 获取和安装... 12

7.3 图像标签示例...12

7.4 名人识别示例...13

8 使用 SDK(.NET)... 15

8.1 .NET 开发环境配置... 15

8.2 .Net 语言 SDK 获取和安装...15

8.3 图像标签示例...16

8.4 名人识别示例...18

9 使用 SDK(GO)... 20

9.1 GO 开发环境配置... 20

9.2 GO 语言 SDK 获取和安装... 20

9.3 图像标签示例...20

9.4 名人识别示例...21

SDK 参考 目 录

(4)

1 图像识别 SDK 简介

图像识别概述

图像识别(Image Recognition),是指利用计算机对图像进行分析和理解,以识别各 种不同模式的目标和对象的技术,包括图像标签,名人识别等。

图像识别以开放API(Application Programming Interface,应用程序编程接口)的方 式提供给用户,用户通过实时访问和调用API获取推理结果,帮助用户自动采集关键数 据,打造智能化业务系统,提升业务效率。

SDK 概述

图像识别软件开发工具包(Image Recognition Software Development Kit,简称 Image SDK)是对图像识别提供的REST API进行的封装,以简化用户的开发工作。用 户通过添加依赖或下载的方式调用API即可实现使用图像识别业务能力的目的。

接口与 API 对应关系

图像识别接口与API对应关系请参见表1-1。

1-1 接口与 API 对应关系表

接口 API

图像标签 POST /v2/{project_id}/image/tagging 名人识别 POST /v2/{project_id}/image/celebrity-

recognition

说明

翻拍识别暂不支持SDK的使用,请参考翻拍识别API进行调用。

SDK 参考 1 图像识别 SDK 简介

(5)

2 申请服务

申请图像识别服务的具体操作步骤请参见《图像识别API参考》的“如何调用API > 申

请服务”章节。

SDK 参考 2 申请服务

(6)

3 获取认证信息

使用服务API需要进行认证,具体方法如下:

步骤1 注册并登录华为云管理控制台。

步骤2 鼠标移动至用户名处,在下拉列表中单击“我的凭证”。

步骤3 选择“访问密钥”页签,单击“新增访问秘钥”按钮。

步骤4 通过邮箱或者手机进行验证,输入对应的验证码。

步骤5 单击“确定”,下载认证账号的AK/SK,AK/SK数据会以本地文件的形式保存,请妥善 保管。

----结束

SDK 参考 3 获取认证信息

(7)

4 准备环境

在使用图像识别SDK时,各语言需要准备的环境 参照表4-1。

4-1 开发环境

发 语 言

准备项 说明

JAVA 安装JDK JAVA环境开发配置,支持 Java JDK 1.8 及以上版本,

推荐通过Maven 安装依赖的方式使用JAVA版本SDK。

PYTHO N

安装python python版本sdk支持python3.3及以上版本。

.NET 安装.NET .NET Standard 2.0 及其以上版本或C# 4.0 及其以上版 本。

GO 安装go 支持 go 1.14 及以上版本。

SDK 参考 4 准备环境

(8)

5 SDK 列表及指导文档(通用版)

API Explorer能根据需要动态生成SDK代码功能,降低您使用SDK的难度,推荐使用。

SDK中心 https://sdkcenter.developer.huaweicloud.com/zh-cn提供服务SDK依赖引入 的方式。

表5-1 提供了各个云服务支持的SDK列表,您可以在GitHub仓库查看SDK更新历史、

获取安装包以及查看指导文档进行配置。

5-1 SDK 列表

编程语言 github地址 指导文档 视频指导

JAVA

huaweicloud-

sdk-java-v3 Java SDK使用指导 Java SDK视频指导

PYTHON

huaweicloud-

sdk-python-v3 Python SDK使用 指导

Python SDK视频 指导

.NET

huaweicloud-

sdk-net-v3 .Net SDK使用指导

-

GO

huaweicloud-

sdk-go-v3 Go SDK使用指导

-

SDK 参考 5 SDK 列表及指导文档(通用版)

(9)

6 使用 SDK(Java)

6.1 Java 开发环境配置

本SDK包要求的JDK版本必须高于JDK8版本,以下步骤以win7环境配置JDK8 64位为 例,若已经下载JDK并配置好环境请忽略本章节。

步骤1 下载JDK文件。

步骤2 下载完成后按照提示安装,位置自选,比如安装到本地C:\Program Files\Java

\jdk1.8.0_131。

步骤3 配置Java环境变量:右键“计算机>属性>高级系统设置>环境变量”,进行如下操作。

1. 新建系统变量JAVA_HOME,变量值为实际JDK安装位置。

2. 在Path中添加%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin (注意用英文分号 分隔)。

3. 新建系统变量CLASSPATH,变量值为%JAVA_HOME%\lib\dt.jar;%JAVA_HOME

%\lib\tools.jar 。

步骤4 打开命令行窗口,输入“java -version”,显示如图6-1表示配置成功。

6-1 Java 版本信息

----结束

6.2 SDK 获取和安装

JAVA版本图像识别的SDK推荐推荐您通过 Maven 安装依赖的方式使用华为云 Java SDK:

步骤1 首先您需要在您的操作系统中 下载 并 安装Maven 。

SDK 参考 6 使用 SDK(Java)

(10)

步骤2 安装配置完成后,输入命令“mvn -v”,显示如下图 Maven版本信息 表示成功。

步骤3 Maven安装完成后,可根据开发需要,直接引入依赖到已有的Maven工程或先用开发 工具创建Maven工程。

创建项目以idea开发工具为例(已有Maven 工程可跳过此步骤):

1. 打开IntelliJ IDEA 开发工具。

2. 点击File - New - project...

3. 在New Project弹窗点击-Maven-点击Next。

4. 输入GroupId和ArtifactId,点击Next。

5. 输入Project name 和 Project location,点击Finish。

步骤4 在Maven 项目的 pom.xml 文件加入相应的依赖项即可。

以引入3.0.55版本的图像识别SDK为例:

<dependency>

<groupId>com.huaweicloud.sdk</groupId>

<artifactId>huaweicloud-sdk-image</artifactId>

<version>3.0.55</version>

</dependency>

示例代码因需要输出结果更直观,所以新增fastjson的依赖(如接入不涉及此项,可忽 略并在示例代码中删除相关内容),依赖如下:

<dependency>

<groupId>com.alibaba</groupId>

<artifactId>fastjson</artifactId>

<version>1.2.70</version>

</dependency>

----结束

6.3 图像标签示例

本章节对图像标签AK/SK方式使用SDK进行示例说明。

● 图像标签示例代码只需将AK/SK信息替换为实际AK/SK,代码中可以使用

ImageTaggingReq类的withUrl或withImage方法配置图像信息(image和url参数 二选一),示例中以url为例配置完成后运行即可。

● endpoint是华为云各服务应用区域和各服务的终端节点,详情请查看 地区和终端

节点 。

1. 图像标签调用示例代码如下:

package com.huaweicloud.sdk.test;

import com.huaweicloud.sdk.core.auth.ICredential;

import com.huaweicloud.sdk.core.auth.BasicCredentials;

import com.huaweicloud.sdk.core.exception.ConnectionException;

import com.huaweicloud.sdk.core.exception.RequestTimeoutException;

import com.huaweicloud.sdk.core.exception.ServiceResponseException;

import com.huaweicloud.sdk.image.v2.region.ImageRegion;

import com.huaweicloud.sdk.image.v2.*;

SDK 参考 6 使用 SDK(Java)

(11)

import com.huaweicloud.sdk.image.v2.model.*;

public class RunImageTaggingSolution { public static void main(String[] args) { String ak = "<YOUR AK>";

String sk = "<YOUR SK>";

ICredential auth = new BasicCredentials() .withAk(ak)

.withSk(sk);

ImageClient client = ImageClient.newBuilder() .withCredential(auth)

.withRegion(ImageRegion.valueOf("cn-north-4")) .build();

RunImageTaggingRequest request = new RunImageTaggingRequest();

ImageTaggingReq body = new ImageTaggingReq();

body.withLimit(50);

body.withThreshold(95f);

body.withLanguage("zh");

body.withUrl("https://sdk-obs-source-save.obs.cn-north-4.myhuaweicloud.com/tagging- normal.jpg");

request.withBody(body);

try {

RunImageTaggingResponse response = client.runImageTagging(request);

System.out.println(response.toString());

} catch (ConnectionException e) { e.printStackTrace();

} catch (RequestTimeoutException e) { e.printStackTrace();

} catch (ServiceResponseException e) { e.printStackTrace();

System.out.println(e.getHttpStatusCode());

System.out.println(e.getErrorCode());

System.out.println(e.getErrorMsg());

} } }

2. 执行示例代码,控制台返回200即表示程序执行成功。图像标签识别结果输出到控 制台。SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".

SLF4J: Defaulting to no-operation (NOP) logger implementation

SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.

class RunImageTaggingResponse {

result: class ImageTaggingResponseResult { tags: [class ImageTaggingItemBody { confidence: 98.00

type: 树 tag: 树

i18nTag: class ImageTaggingItemBodyI18nTag { zh: 树

en: Tree }

i18nType: class ImageTaggingItemBodyI18nType { zh: 树

en: Tree }

instances: []

}]

} }

Process finished with exit code 0

6.4 名人识别示例

本章节对名人识别AK/SK方式使用SDK进行示例说明。

SDK 参考 6 使用 SDK(Java)

(12)

● 名人识别示例代码只需将AK/SK信息替换为实际AK/SK,代码中可以使用

CelebrityRecognitionReq类的withUrl或withImage方法配置图像信息(image和 url参数二选一),示例中以url为例,配置完成后运行即可。

● endpoint是华为云各服务应用区域和各服务的终端节点,详情请查看 地区和终端

节点 。

1. 名人识别调用示例代码如下:

package com.huaweicloud.sdk.test;

import com.alibaba.fastjson.JSON;

import com.huaweicloud.sdk.core.auth.ICredential;

import com.huaweicloud.sdk.core.auth.BasicCredentials;

import com.huaweicloud.sdk.core.exception.ConnectionException;

import com.huaweicloud.sdk.core.exception.RequestTimeoutException;

import com.huaweicloud.sdk.core.exception.ServiceResponseException;

import com.huaweicloud.sdk.image.v2.ImageClient;

import com.huaweicloud.sdk.image.v2.model.RunCelebrityRecognitionRequest;

import com.huaweicloud.sdk.image.v2.region.ImageRegion;

import com.huaweicloud.sdk.image.v2.model.CelebrityRecognitionReq;

import com.huaweicloud.sdk.image.v2.model.RunCelebrityRecognitionResponse;

public class RunCelebrityRecognitionSolution { public static void main(String[] args) { String ak = "<YOUR AK>";

String sk = "<YOUR SK>";

ICredential auth = new BasicCredentials() .withAk(ak)

.withSk(sk);

ImageClient client = ImageClient.newBuilder() .withCredential(auth)

.withRegion(ImageRegion.valueOf("cn-north-1")) .build();

RunCelebrityRecognitionRequest request = new RunCelebrityRecognitionRequest();

CelebrityRecognitionReq body = new CelebrityRecognitionReq();

body.withThreshold(0f);

body.withUrl("https://sdk-obs-source-save.obs.cn-north-4.myhuaweicloud.com/celebrity- recognition.jpg");

request.withBody(body);

try {

RunCelebrityRecognitionResponse response = client.runCelebrityRecognition(request);

System.out.println(response.getHttpStatusCode());

System.out.println(JSON.toJSONString(response));

} catch (ConnectionException e) { e.printStackTrace();

} catch (RequestTimeoutException e) { e.printStackTrace();

} catch (ServiceResponseException e) { e.printStackTrace();

System.out.println(e.getHttpStatusCode());

System.out.println(e.getErrorCode());

System.out.println(e.getErrorMsg());

} } }

2. 执行示例代码文件,控制台输出名人识别结果即表示程序执行成功。名人识别结

果输出到控制台。

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".

SLF4J: Defaulting to no-operation (NOP) logger implementation

SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.

200{"httpStatusCode":200,"result":[{"confidence":0.9990679,"faceDetail":{"w":357,"h":510,"x":260,"y":

SDK 参考 6 使用 SDK(Java)

(13)

201},"label":"迈克尔·杰克逊"}]}

Process finished with exit code 0

SDK 参考 6 使用 SDK(Java)

(14)

7 使用 SDK(Python)

7.1 Python 开发环境配置

使用图像识别Python版本SDK包,需要您配置Python开发环境。

1. 从Python官网下载并安装合适的Python版本。请使用Python3.3以上版本,如下 以Python3.7 版本为例进行说明。

2. 从PyCharm官网下载并安装最新版本。

3. 在PyCharm开发工具中配置Python环境,在菜单依次选择“File > Settings >

Project Interpreter”。

4. 在页面上方选择您的Python安装路径,如图 PyCharm配置python环境所示。选 择好目标Python之后单击页面下方“Apply”完成配置。

7-1 PyCharm 配置 python 环境

SDK 参考 7 使用 SDK(Python)

(15)

7.2 Python 语言 SDK 获取和安装

python语言SDK的获取和安装推荐使用pip命令进行安装或使用pycharm进行安装,需 要安装huaweicloudsdkcore包以及huaweicloudsdkimage,参考方法如下:

pip 安装:

# 安装核心库

pip install huaweicloudsdkcore

# 安装image服务库

pip install huaweicloudsdkimage 使用pycharm安装,步骤如下:

1. 打开pycharm,点击File -> Settings...

2. 点击Python Interpreter -> 点击+

3. 点击+,分别搜索huaweicloudsdkcore及huaweicloudsdkimage,搜索到包内容点击左下角Install Package完 成安装

7-2 pycharm 安装图像识别 python 版本 sdk 包

7.3 图像标签示例

本章节对图像标签AK/SK方式使用SDK进行示例说明。

● 图像标签示例代码只需将AK/SK信息替换为实际AK/SK,代码中可以使用初始化 ImageTaggingReq中的url或image配置图像信息(image和url参数二选一),示 例中以url为例,配置完成后运行即可。

● endpoint是华为云各服务应用区域和各服务的终端节点,详情请查看 地区和终端

节点 。

SDK 参考 7 使用 SDK(Python)

(16)

1. 图像标签调用示例代码如下:

# coding: utf-8

from huaweicloudsdkcore.auth.credentials import BasicCredentials from huaweicloudsdkcore.exceptions import exceptions

from huaweicloudsdkcore.http.http_config import HttpConfig

from huaweicloudsdkimage.v2 import ImageClient,RunImageTaggingRequest,ImageTaggingReq from huaweicloudsdkimage.v2.region.image_region import ImageRegion

if __name__ == "__main__":

ak = "<YOUR AK>"

sk = "<YOUR SK>"

credentials = BasicCredentials(ak, sk) client = ImageClient.new_builder() \ .with_credentials(credentials) \

.with_region(ImageRegion.value_of("cn-north-1")) \ .build()

try:

request = RunImageTaggingRequest() request.body = ImageTaggingReq(

limit=50, threshold=95, language="zh",

url="https://sdk-obs-source-save.obs.cn-north-4.myhuaweicloud.com/tagging-normal.jpg"

)

response = client.run_image_tagging(request) print(response.status_code)

print(response)

except exceptions.ClientRequestException as e:

print(e.status_code) print(e.request_id) print(e.error_code) print(e.error_msg)

2. 执行示例代码,控制台返回200即表示程序执行成功。图像标签识别结果输出到控 制台。200

{"result": {"tags": [{"confidence": "98.00", "type": "树", "tag": "树", "i18n_tag": {"zh": "树", "en":

"Tree"}, "i18n_type": {"zh": "树", "en": "Tree"}, "instances": []}]}}

Process finished with exit code 0

7.4 名人识别示例

本章节对名人识别AK/SK方式使用SDK进行示例说明。

● 名人识别示例代码只需将AK/SK信息替换为实际AK/SK,代码中可以使用初始化 CelebrityRecognitionReq中的url或image配置图像信息(image和url参数二选 一),示例中以url为例,配置完成后运行即可。

● endpoint是华为云各服务应用区域和各服务的终端节点,详情请查看 地区和终端

节点 。

1. 名人识别调用示例代码如下:

# coding: utf-8

from huaweicloudsdkcore.auth.credentials import BasicCredentials from huaweicloudsdkcore.exceptions import exceptions

from huaweicloudsdkcore.http.http_config import HttpConfig from huaweicloudsdkimage.v2 import

ImageClient,RunCelebrityRecognitionRequest,CelebrityRecognitionReq from huaweicloudsdkimage.v2.region.image_region import ImageRegion if __name__ == "__main__":

SDK 参考 7 使用 SDK(Python)

(17)

ak = "<YOUR AK>"

sk = "<YOUR SK>"

credentials = BasicCredentials(ak, sk) client = ImageClient.new_builder() \ .with_credentials(credentials) \

.with_region(ImageRegion.value_of("cn-north-1")) \ .build()

try:

request = RunCelebrityRecognitionRequest() request.body = CelebrityRecognitionReq(

threshold=0,

url="https://sdk-obs-source-save.obs.cn-north-4.myhuaweicloud.com/celebrity-recognition.jpg"

)

response = client.run_celebrity_recognition(request) print(response.status_code)

print(response)

except exceptions.ClientRequestException as e:

print(e.status_code) print(e.request_id) print(e.error_code) print(e.error_msg)

2. 执行示例代码文件,控制台输出名人识别结果即表示程序执行成功。名人识别结

果输出到控制台。

200{'result': [{'confidence': 0.9990678852332598,

'face_detail': {'h': 510, 'w': 357, 'x': 260, 'y': 201}, 'label': '迈克尔·杰克逊'}]}

SDK 参考 7 使用 SDK(Python)

(18)

8 使用 SDK(.NET)

8.1 .NET 开发环境配置

使用图像识别.NET版本SDK包,需要先配置.Net开发环境。

1. 从Visual Studio官网,下载最新版Visual Studio。

2. 下载完毕后,点击exe文件,开始安装。

3. 安装过程中选择工作负荷ASP.NET和Web开发,安装完成后启动即可。

8-1 选择安装.NET 环境依赖

8.2 .Net 语言 SDK 获取和安装

.NET语言SDK的获取和安装可以使用可以通过命令方式安装或使用Visual Studio开发 工具安装第三方引用,参考方法如下:

使用 .NET CLI 工具

dotnet add package HuaweiCloud.SDK.Core dotnet add package HuaweiCloud.SDK.Image 使用 Package Manager

SDK 参考 8 使用 SDK(.NET)

(19)

Install-Package HuaweiCloud.SDK.Core Install-Package HuaweiCloud.SDK.Image

使用Visual Studio开发工具安装第三方引用:点击工具->选择NuGet包管理器->点击 管理解决方案的NuGet程序包,选择浏览中搜索并安装HuaweiCloud.SDK.Core及 HuaweiCloud.SDK.Image,如下图所示:

8-2 安装图像识别.NET 版本 sdk 包

8.3 图像标签示例

本章节对图像标签AK/SK方式使用SDK进行示例说明。

● 图像标签示例代码只需将AK/SK信息替换为实际AK/SK,代码中可以使用初始化 ImageTaggingReq中的url或image配置图像信息(image和url参数二选一),示 例中以url为例,配置完成后运行即可。

● endpoint是华为云各服务应用区域和各服务的终端节点,详情请查看 地区和终端

节点 。

1. 图像标签调用示例代码如下:

using System;

using System.Collections.Generic;

using HuaweiCloud.SDK.Core;

using HuaweiCloud.SDK.Core.Auth;

using HuaweiCloud.SDK.Image;

using HuaweiCloud.SDK.Image.V2;

using HuaweiCloud.SDK.Image.V2.Model;

using Newtonsoft.Json;

namespace RunImageTaggingSolution { class Program

{

static void Main(string[] args) {

const string ak = "<YOUR AK>";

const string sk = "<YOUR SK>";

SDK 参考 8 使用 SDK(.NET)

(20)

var config = HttpConfig.GetDefaultConfig();

config.IgnoreSslVerification = true;

var auth = new BasicCredentials(ak, sk);

var client = ImageClient.NewBuilder() .WithCredential(auth)

.WithRegion(ImageRegion.ValueOf("cn-north-1")) .WithHttpConfig(config)

.Build();

var req = new RunImageTaggingRequest {

};

req.Body = new ImageTaggingReq() {

Limit = 50, Threshold = 95, Language = "zh",

Url = "https://sdk-obs-source-save.obs.cn-north-4.myhuaweicloud.com/tagging-normal.jpg"

};

try {

var resp = client.RunImageTagging(req);

var respStatusCode = resp.HttpStatusCode;

Console.WriteLine(respStatusCode);

Console.WriteLine(JsonConvert.DeserializeObject(resp.HttpBody));

}

catch (RequestTimeoutException requestTimeoutException) {

Console.WriteLine(requestTimeoutException.ErrorMessage);

}

catch (ServiceResponseException clientRequestException) {

Console.WriteLine(clientRequestException.HttpStatusCode);

Console.WriteLine(clientRequestException.ErrorCode);

Console.WriteLine(clientRequestException.ErrorMsg);

}

catch (ConnectionException connectionException) {

Console.WriteLine(connectionException.ErrorMessage);

} } } }

2. 执行示例代码,控制台返回200即表示程序执行成功。图像标签识别结果输出到控 制台。200

{ "result": { "tags": [ {

"confidence": "98.01", "type": "树",

"tag": "树", "i18n_tag": { "zh": "树", "en": "Tree"

},

"i18n_type": { "zh": "树", "en": "Tree"

},

"instances": [ ] }

] } }

SDK 参考 8 使用 SDK(.NET)

(21)

8.4 名人识别示例

本章节对名人识别AK/SK方式使用SDK进行示例说明。

● 名人识别示例代码只需将AK/SK信息替换为实际AK/SK,代码中可以使用

CelebrityRecognitionReq类的withUrl或withImage方法配置图像信息(image和 url参数二选一),示例中以url为例,配置完成后运行即可。

● endpoint是华为云各服务应用区域和各服务的终端节点,详情请查看 地区和终端

节点 。

1. 名人识别调用示例代码如下:

using System;

using System.Collections.Generic;

using HuaweiCloud.SDK.Core;

using HuaweiCloud.SDK.Core.Auth;

using HuaweiCloud.SDK.Image;

using HuaweiCloud.SDK.Image.V2;

using HuaweiCloud.SDK.Image.V2.Model;

using Newtonsoft.Json;

namespace RunCelebrityRecognitionSolution { class Program

{

static void Main(string[] args) {

const string ak = "<YOUR AK>";

const string sk = "<YOUR SK>";

var config = HttpConfig.GetDefaultConfig();

config.IgnoreSslVerification = true;

var auth = new BasicCredentials(ak, sk);

var client = ImageClient.NewBuilder() .WithCredential(auth)

.WithRegion(ImageRegion.ValueOf("cn-north-1")) .WithHttpConfig(config)

.Build();

var req = new RunCelebrityRecognitionRequest {

};

req.Body = new CelebrityRecognitionReq() {

Threshold = 0.48,

Url = "https://sdk-obs-source-save.obs.cn-north-4.myhuaweicloud.com/celebrity- recognition.jpg"

};

try {

var resp = client.RunCelebrityRecognition(req);

var respStatusCode = resp.HttpStatusCode;

Console.WriteLine(respStatusCode);

Console.WriteLine(JsonConvert.DeserializeObject(resp.HttpBody));

}

catch (RequestTimeoutException requestTimeoutException) {

Console.WriteLine(requestTimeoutException.ErrorMessage);

}

catch (ServiceResponseException clientRequestException) {

Console.WriteLine(clientRequestException.HttpStatusCode);

Console.WriteLine(clientRequestException.ErrorCode);

Console.WriteLine(clientRequestException.ErrorMsg);

SDK 参考 8 使用 SDK(.NET)

(22)

}

catch (ConnectionException connectionException) {

Console.WriteLine(connectionException.ErrorMessage);

} } } }

2. 执行示例代码文件,控制台输出名人识别结果即表示程序执行成功。名人识别结

果输出到控制台。

200{ 'result': [{

'confidence': 0.9990678852332598, 'face_detail': {

'h': 510, 'w': 357, 'x': 260, 'y': 201 },

'label': '迈克尔·杰克逊' }]

}

SDK 参考 8 使用 SDK(.NET)

(23)

9 使用 SDK(GO)

9.1 GO 开发环境配置

使用图像识别GO版本SDK包,需要您配置Go语言开发环境。如已经安装配置go开发 环境,可跳过该步骤。

1. 在golang 官网下载并安装对应的go版本,sdk支持 go 1.14 及以上版本。

2. 下载完成后按照提示安装,位置自选,比如安装到本地D:\develop\go。

3. 配置Java环境变量:右键“计算机>属性>高级系统设置>环境变量”,进行如下操 作。

a. 新建系统变量GOROOT,变量值为实际go安装位置。新增环境变量 GOPATH,变量为go语言工程所在目录。

b. 修改PATH变量,末尾增加GO的编译器路径“;%GOROOT%\bin",中间分隔 符是【;】。

c. 修改CLASSPATH变量,末尾增加GO的编译器路径“;%GOROOT%\lib",中 间分隔符是【;】。

4. 在vs code官网,下载安装操作系统的vs code。

5. 安装go语言的插件Go和 Go Critic。

9.2 GO 语言 SDK 获取和安装

GO语言SDK的获取和安装使用命令进行安装,参考方法如下:

go get -u github.com/huaweicloud/huaweicloud-sdk-go-v3

9.3 图像标签示例

本章节对图像标签AK/SK方式使用SDK进行示例说明。

● 图像标签示例代码只需将AK/SK信息替换为实际AK/SK,代码中可以使用初始化 ImageTaggingReq的Image或Url配置图像信息(image和url参数二选一),示例 中以url为例,配置完成后运行即可。

● endpoint是华为云各服务应用区域和各服务的终端节点,详情请查看 地区和终端

节点 。

SDK 参考 9 使用 SDK(GO)

(24)

1. 图像标签调用示例代码如下:

package main import ( "fmt"

"github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"

image "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/image/v2"

"github.com/huaweicloud/huaweicloud-sdk-go-v3/services/image/v2/model"

region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/image/v2/region"

)

func main() { ak := "<YOUR AK>"

sk := "<YOUR SK>"

auth := basic.NewCredentialsBuilder().

WithAk(ak).

WithSk(sk).

Build()

client := image.NewImageClient(

image.ImageClientBuilder().

WithRegion(region.ValueOf("cn-north-1")).

WithCredential(auth).

Build())

request := &model.RunImageTaggingRequest{}

limitImageTaggingReq:= int32(50) thresholdImageTaggingReq:= float32(95) languageImageTaggingReq:= "zh"

urlImageTaggingReq:= "https://sdk-obs-source-save.obs.cn-north-4.myhuaweicloud.com/tagging- normal.jpg"

request.Body = &model.ImageTaggingReq{

Limit: &limitImageTaggingReq,

Threshold: &thresholdImageTaggingReq, Language: &languageImageTaggingReq, Url: &urlImageTaggingReq,

}

response, err := client.RunImageTagging(request) if err == nil {

fmt.Printf("%+v\n", response) } else {

fmt.Println(err) }}

2. 识别结果输出到控制台表示执行成功。

RunImageTaggingResponse {"result": {"tags": [{"confidence": "98.01", "type": "树", "tag": "树",

"i18n_tag": {"zh": "树", "en": "Tree"}, "i18n_type": {"zh": "树", "en": "Tree"}, "instances": []}]}}

Process exiting with code: 0

9.4 名人识别示例

本章节对名人识别AK/SK方式使用SDK进行示例说明。

● 名人识别示例代码只需将AK/SK信息替换为实际AK/SK,代码中可以使用初始化 CelebrityRecognitionReq的Image或Url配置图像信息(image和url参数二选 一),示例中以url为例,配置完成后运行即可。

● endpoint是华为云各服务应用区域和各服务的终端节点,详情请查看 地区和终端

节点 。

1. 名人识别调用示例代码如下:

package main import ( "fmt"

"github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"

SDK 参考 9 使用 SDK(GO)

(25)

image "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/image/v2"

"github.com/huaweicloud/huaweicloud-sdk-go-v3/services/image/v2/model"

region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/image/v2/region"

)

func main() { ak := "<YOUR AK>"

sk := "<YOUR SK>"

auth := basic.NewCredentialsBuilder().

WithAk(ak).

WithSk(sk).

Build()

client := image.NewImageClient(

image.ImageClientBuilder().

WithRegion(region.ValueOf("cn-north-1")).

WithCredential(auth).

Build())

request := &model.RunCelebrityRecognitionRequest{}

thresholdCelebrityRecognitionReq:= float32(0.48)

urlCelebrityRecognitionReq:= "https://sdk-obs-source-save.obs.cn-north-4.myhuaweicloud.com/

celebrity-recognition.jpg"

request.Body = &model.CelebrityRecognitionReq{

Threshold: &thresholdCelebrityRecognitionReq, Url: &urlCelebrityRecognitionReq,

}

response, err := client.RunCelebrityRecognition(request) if err == nil {

fmt.Printf("%+v\n", response) } else {

fmt.Println(err) }

}

2. 识别结果输出到控制台表示执行成功。

RunCelebrityRecognitionResponse {"result":[{"confidence":0.9990679,"face_detail":{"h":510,"w":

357,"x":260,"y":201},"label":"迈克尔·杰克逊"}]}

Process exiting with code: 0

SDK 参考 9 使用 SDK(GO)

參考文獻

相關文件

請問下列的

有關於 Java 程式語言,下列何者敘述不正確?(A)Java 程式語言透過 extends 提供多重繼承 (Multiple

public static double calculate(int i, int j) throws ArithmeticException,

National Taiwan University July 9, 2005 Page 5..

Contains the core Swing components, including most of the model interfaces and support

JRE (Java Runtime Environment): for users, JVM + basic libraries JDK (Java Development Kit): JRE + compilers + ... —jdk-6u12-windows-i586-p.exe or other platform

• Copy a value from the right-hand side (value or expression) to the space indicated by the variable in the left-hand side.. • You cannot write codes like 1 = x because 1 cannot

• Instead, static nested classes do not have access to other instance members of the enclosing class. • We use nested classes when it