云服务器内容精选

  • 步骤3:用户登录并验证权限 用户创建完成后,可以使用新用户的用户名及身份凭证登录华为云验证权限。 在华为云登录页面,单击右下角的“ IAM 用户登录”. 在“IAM用户登录”页面,输入账号名、用户名及用户密码,使用新创建的用户登录。 账号名为该IAM用户所属华为账号的名称。 用户名和密码为账号在IAM创建用户时输入的用户名和密码。 如果登录失败,您可以联系您的账号主体,确认用户名及密码是否正确,或是重置用户名及密码。 登录成功后,进入华为云控制台,登录后默认区域为“华北-北京四”,请先切换至授权区域。 在“服务列表”中选择图像识别,在服务管理页面进行OBS授权、开通服务、调用均能正常使用,则表示授权已生效。
  • 监控指标 表1 服务支持的监控指标 指标ID 指标名称 指标含义 取值范围 单位 进制 测量对象(维度) 监控周期(原始指标) successful_call_times_of_service 调用图像识别成功次数 该指标用于统计用户调用服务成功次数。 ≥ 0 Times/min 不涉及 接口 1分钟 failed_call_times_of_service 调用图像识别失败次数 该指标用于统计用户调用服务失败次数。 ≥ 0 Times/min 不涉及 接口 1分钟
  • 欠费 按需购买的接口是按照每小时扣费,当账户的余额不足时,无法对上一个小时的费用进行扣费,就会导致欠费,欠费后有宽限期与保留期。 您续费后可继续正常使用,请注意在保留期进行的续费,是以原到期时间作为生效时间,您应当支付从进入保留期开始到续费时的服务费用。 您账号欠费后,会导致部分操作受限,建议您尽快续费。具体受限操作如下: 按需计费方式购买的API接口不可调用。 套餐包方式购买的API接口,在欠费后如果套餐包内有剩余,可继续使用,但不可以再次购买和续期。 无法开通服务。
  • 计费模式 图像识别已商用的服务提供两种计费模式供您选择:按需计费和折扣套餐包计费。 您可以通图像识别提供的价格计算器,快速计算出购买图像识别的参考价格,详情请参见图像识别价格详情。 按需计费 按需计费指按照调用次数阶梯价格计费,按月累计,一个自然月后次数清零重新累计。促销活动期间针对不同服务,每个用户每月有对应的免费调用次数,具体计费价格详情请参见图像识别价格详情。 只有调用成功才会计算调用次数,未用完的免费调用次数不流转到下一个月。 计费规则:调用次数阶梯计费,按月累计,一个自然月后调用次数清零重新累计。 计费周期:按小时计费,实时扣费(账单出账时间通常在当前计费周期结束后一小时内,具体出账时间以系统为准)。
  • 云监控 云监控(Cloud Eye)可以监控图像识别的相关指标,用户可以通过指标及时了解图像识别的使用情况。Cloud Eye更多信息请参见《云监控用户指南》。 表1 图像识别的监控指标 指标名称 指标含义 取值范围 监控周期(原始指标) 调用图像识别成功次数 该指标用于统计用户调用服务成功次数。 单位:次/分钟 ≥ 0 times/min 1分钟 调用图像识别失败次数 该指标用于统计用户调用服务失败次数。 单位:次/分钟 ≥ 0 times/min 1分钟
  • 图像标签 图像标签有以下应用场景: 场景分析 图像标签功能可准确识别视频、图像内容,提高检索效率和精度,从而使得个性化推荐、内容检索和分发更为有效。 图1 场景分析 智能相册 基于图像识别的标签可达近万种,智能相册可以自定义分类,比如“植物”、“美食”、“工作”等类别。方便用户管理相册,带来良好体验。 图2 智能相册场景 目标检测 在建筑施工现场,基于定制化的图像识别目标检测系统,可实时监测现场人员是否佩戴安全帽,以降低安全风险。 图3 目标检测场景 图像搜索 基于图像标签的图像搜索技术,不管用户输入关键字,还是输入一张图像,都可以快速搜索到想要的图像。 图4 图像搜索场景
  • 示例代码 下面代码展示了如何对一个请求进行签名,并通过AisAccess发送一个HTTPS请求的过程: 代码分成两个类进行演示: ResponseProcessUtils:工具类,用于处理结果的返回。 ImageTaggingDemo:进行相关参数ak,sk,region的配置,访问 图像标签服务 的示例。 ResponseProcessUtils.java 1 2 3 4 5 6 7 8 91011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 package com.huawei.ais.demo; import java.io.FileOutputStream; import java.io.IOException; import java.nio.ByteBuffer; import java.nio.channels.FileChannel; import org.apache.http.HttpResponse; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.cloud.sdk.util.Base64; import com.huawei.ais.sdk.util.HttpClientUtils; /** * 访问服务返回结果信息验证的工具类 */ public class ResponseProcessUtils { /** * 打印出服务访问完成的HTTP状态码 * * @param response 响应对象 */ public static void processResponseStatus(HttpResponse response) { System.out.println(response.getStatusLine().getStatusCode()); } /** * 打印出服务访问完成后,转化为文本的字符流,主要用于JSON数据的展示 * * @param response 响应对象 * @throws UnsupportedOperationException * @throws IOException */ public static void processResponse(HttpResponse response) throws UnsupportedOperationException, IOException { System.out.println(HttpClientUtils.convertStreamToString(response.getEntity().getContent())); } /** * 处理返回Base64编码的图像文件的生成 * * @param response * @throws UnsupportedOperationException * @throws IOException */ public static void processResponseWithImage(HttpResponse response, String fileName) throws UnsupportedOperationException, IOException { String result = HttpClientUtils.convertStreamToString(response.getEntity().getContent()); JSONObject resp = JSON.parseObject(result); String imageString = (String)resp.get("result"); byte[] fileBytes = Base64.decode(imageString); writeBytesToFile(fileName, fileBytes); } /** * 将字节数组写入到文件, 用于支持二进制文件(如图片)的生成 * @param fileName 文件名 * @param data 数据 * @throws IOException */ public static void writeBytesToFile(String fileName, byte[] data) throws IOException{ FileChannel fc = null; try { ByteBuffer bb = ByteBuffer.wrap(data); fc = new FileOutputStream(fileName).getChannel(); fc.write(bb); } catch (Exception e) { e.printStackTrace(); System.out.println(e.getMessage()); } finally { fc.close(); } } } ImageTaggingDemo.java 1 2 3 4 5 6 7 8 91011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 package com.huawei.ais.demo.image;import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.JSONObject;import com.alibaba.fastjson.serializer.SerializerFeature;import com.huawei.ais.demo.ResponseProcessUtils;import com.huawei.ais.demo.ServiceAccessBuilder;import com.huawei.ais.sdk.AisAccess;import com.huawei.ais.sdk.util.HttpClientUtils;import org.apache.commons.codec.binary.Base64;import org.apache.commons.io.FileUtils;import org.apache.http.HttpResponse;import org.apache.http.entity.StringEntity;import java.io.File;import java.io.IOException;/** * 图像标签服务的使用示例类 */public class ImageTaggingDemo {//// 图像标签服务的使用示例函数//private static void imageTaggingDemo() throws IOException {// 1. 图像标签服务的的基本信息,生成对应的一个客户端连接对象AisAccess service = ServiceAccessBuilder.builder() .ak("######") // your ak .sk("######") // your sk .region("cn-north-1") // 图像识别服务华北-北京一的配置 .connectionTimeout(5000) // 连接目标url超时限制 .connectionRequestTimeout(1000) // 连接池获取可用连接超时限制 .socketTimeout(20000) // 获取服务器响应数据超时限制 .build();try {//// 2.构建访问图像标签服务需要的参数//String uri = "/v1.0/image/tagging";byte[] fileData = FileUtils.readFileToByteArray(new File("data/image-tagging-demo-1.jpg"));String fileBase64Str = Base64.encodeBase64String(fileData);JSONObject json = new JSONObject();json.put("image", fileBase64Str);json.put("threshold", 60);StringEntity stringEntity = new StringEntity(json.toJSONString(), "utf-8");// 3.传入图像标签服务对应的uri参数, 传入图像标签服务需要的参数,// 该参数主要通过JSON对象的方式传入, 使用POST方法调用服务HttpResponse response = service.post(uri, stringEntity);// 4.验证服务调用返回的状态是否成功,如果为200, 为成功, 否则失败。ResponseProcessUtils.processResponseStatus(response);// 5.处理服务返回的字符流,输出识别结果。JSONObject jsonObject = JSON.parseObject(HttpClientUtils.convertStreamToString(response.getEntity().getContent()));System.out.println(JSON.toJSONString(JSON.parse(jsonObject.toString()), SerializerFeature.PrettyFormat));} catch (Exception e) {e.printStackTrace();} finally {// 6.使用完毕,关闭服务的客户端连接service.close();}}//// 主入口函数//public static void main(String[] args) throws IOException {// 测试入口函数imageTaggingDemo();}}
  • AK/SK认证 AK/SK签名认证、Token认证方式仅支持消息体大小12M以内的请求使用。 AK/SK认证就是使用AK/SK对请求进行签名,在请求时将签名信息添加到消息头,从而通过身份认证。 AK(Access Key ID):访问密钥ID。与私有访问密钥关联的唯一标识符;访问密钥ID和私有访问密钥一起使用,对请求进行加密签名。 SK(Secret Access Key):与访问密钥ID结合使用的密钥,对请求进行加密签名,可标识发送方,并防止请求被修改。 使用AK/SK认证时,您可以基于签名算法使用AK/SK对请求进行签名,也可以使用专门的签名SDK对请求进行签名。详细的签名方法和SDK使用方法请参见API签名指南。 签名SDK只提供签名功能,与服务提供的SDK不同,使用时请注意。 AK/SK获取方式请参考获取AK/SK。
  • Token认证 Token的有效期为24小时,需要使用一个Token鉴权时,可以先缓存起来,避免频繁调用。 Token在计算机系统中代表令牌(临时)的意思,拥有Token就代表拥有某种权限。Token认证就是在调用API的时候将Token加到请求消息头,从而通过身份认证,获得操作API的权限。 Token可通过调用获取用户Token接口获取,调用本服务API需要project级别的Token,即调用获取用户Token接口时,请求body中auth.scope的取值需要选择project,如下所示。 username、domainname 的获取请参考获取账号名和账号ID。password为用户密码。 { "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "name": "username", //IAM用户名 "password": "********", //密码 "domain": { "name": "domainname" //IAM用户所属账号名 } } } }, "scope": { "project": { "name": "xxxxxxxx" } } }} 获取Token 后,再调用其他接口时,您需要在请求消息头中添加“X-Auth-Token”,其值即为Token。例如Token值为“ABCDEFJ....”,则调用接口时将“X-Auth-Token: ABCDEFJ....”加到请求消息头即可,如下所示。 GET https://iam.cn-north-1.myhuaweicloud.com/v3/auth/projects Content-Type: application/json X-Auth-Token: ABCDEFJ.... 您还可以通过这个视频教程了解如何使用Token认证:https://bbs.huaweicloud.com/videos/101333 。
  • 状态码 状态码如表1所示。 表1 状态码 状态码 编码 错误码说明 100 Continue 继续请求。 这个临时响应用来通知客户端,它的部分请求已经被服务器接收,且仍未被拒绝。 101 Switching Protocols 切换协议。只能切换到更高级的协议。例如,切换到HTTPS的新版本协议。 200 OK 服务器已成功处理了请求。 201 Created 创建类的请求完全成功。 202 Accepted 已经接受请求,但未处理完成。 203 Non-Authoritative Information 非授权信息,请求成功。 204 No Content 请求完全成功,同时HTTP响应不包含响应体。 在响应OPTIONS方法的HTTP请求时返回此状态码。 205 Reset Content 重置内容,服务器处理成功。 206 Partial Content 服务器成功处理了部分GET请求。 300 Multiple Choices 多种选择。请求的资源可包括多个位置,相应可返回一个资源特征与地址的列表用于用户终端(例如:浏览器)选择。 301 Moved Permanently 永久移动,请求的资源已被永久的移动到新的URI,返回信息会包括新的URI。 302 Found 资源被临时移动。 303 See Other 查看其它地址。 使用GET和POST请求查看。 304 Not Modified 所请求的资源未修改,服务器返回此状态码时,不会返回任何资源。 305 Use Proxy 所请求的资源必须通过代理访问。 306 Unused 已经被废弃的HTTP状态码。 400 Bad Request 非法请求。 建议直接修改该请求,不要重试该请求 401 Unauthorized 在客户端提供认证信息后,返回该状态码,表明服务端指出客户端所提供的认证信息不正确或非法。 402 Payment Required 保留请求。 403 Forbidden 请求被拒绝访问。 返回该状态码,表明请求能够到达服务端,且服务端能够理解用户请求,但是拒绝做更多的事情,因为该请求被设置为拒绝访问,建议直接修改该请求,不要重试该请求。 404 Not Found 所请求的资源不存在。 建议直接修改该请求,不要重试该请求。 405 Method Not Allowed 请求中带有该资源不支持的方法。 建议直接修改该请求,不要重试该请求。 406 Not Acceptable 服务器无法根据客户端请求的内容特性完成请求。 407 Proxy Authentication Required 请求要求代理的身份认证,与401类似,但请求者应当使用代理进行授权。 408 Request Timeout 服务器等候请求时发生超时。 客户端可以随时再次提交该请求而无需进行任何更改。 409 Conflict 服务器在完成请求时发生冲突。 返回该状态码,表明客户端尝试创建的资源已经存在,或者由于冲突请求的更新操作不能被完成。 410 Gone 客户端请求的资源已经不存在。 返回该状态码,表明请求的资源已被永久删除。 411 Length Required 服务器无法处理客户端发送的不带Content-Length的请求信息。 412 Precondition Failed 未满足前提条件,服务器未满足请求者在请求中设置的其中一个前提条件。 413 Request Entity Too Large 由于请求的实体过大,服务器无法处理,因此拒绝请求。为防止客户端的连续请求,服务器可能会关闭连接。如果只是服务器暂时无法处理,则会包含一个Retry-After的响应信息。 414 Request URI Too Long 请求的URI过长(URI通常为网址),服务器无法处理。 415 Unsupported Media Type 服务器无法处理请求附带的媒体格式。 416 Requested Range Not Satisfiable 客户端请求的范围无效。 417 Expectation Failed 服务器无法满足Expect的请求头信息。 422 Unprocessable Entity 请求格式正确,但是由于含有语义错误,无法响应。 429 Too Many Requests 表明请求超出了客户端访问频率的限制或者服务端接收到多于它能处理的请求。建议客户端读取相应的Retry-After首部,然后等待该首部指出的时间后再重试。 500 Internal Server Error 表明服务端能被请求访问到,但是不能理解用户的请求。 501 Not Implemented 服务器不支持请求的功能,无法完成请求。 502 Bad Gateway 充当网关或代理的服务器,从远端服务器接收到了一个无效的请求。 503 Service Unavailable 被请求的服务无效。 建议直接修改该请求,不要重试该请求。 504 Gateway Timeout 请求在给定的时间内无法完成。客户端仅在为请求指定超时(Timeout)参数时会得到该响应。 505 HTTP Version Not Supported 服务器不支持请求的HTTPS协议的版本,无法完成处理。 父主题: 附录
  • 响应消息 图片为BASE64字符串响应参数请参见表2。 表2 响应参数说明 名称 类型 说明 result String 调用成功时表示图片文件BASE64字符串。 调用失败时无此字段。 error_code String 调用失败时的错误码,具体请参见错误码。 调用成功时无此字段。 error_msg String 调用失败时的错误信息。 调用成功时无此字段。 图片为文件类型响应参数请参见表3。 表3 响应参数说明 名称 类型 说明 error_code String 调用失败时的错误码,具体请参见错误码。 调用成功时无此字段。 error_msg String 调用失败时的错误信息。 调用成功时无此字段。
  • 示例 请求示例(图片文件为BASE64字符串) POST https://image.cn-north-1.myhuaweicloud.com/v1.0/vision/dark-enhance Request Header: Content-Type:application/jsonX-Auth-Token: MIINRwYJKoZIhvcNAQcCoIINODCCDTQCAQExDTALBglghkgBZQMEAgEwgguVBgkqhkiG... Request Body:{ "image":"/9j/4AAQSkZJRgABAgEASABIAAD/4RFZRXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUAAAABAAAAYgEbAAUAAAABAAAAagEoAAMAAAABAAIAAAExAAIAAAAcAAAAcgEyAAIAAAAUAAAAjodpAAQAAAABAAAApAAAANAACvyAAAAnEAAK/IAAACcQQWRvYmUgUGhvdG9zaG9wIENTMyBXaW5kb3dzADIwMTc6MTA6MjAgMTA6NDU6MzYAAAAAA6ABAAMAAAAB//8AAKACAAQAAAABAAALIKADAAQAAAABAAAGQAAAAAAAAAAGAQMAAwAAAAEABgAAARoABQAAAAEAAAEeARsABQAAAAEAAAEmASgAAwAAAAEAAgAAAgEABAAAAAEAAAEuAgIABAAAAAEAABAj...", "brightness":0.9} 成功响应示例 { "result":"/9j/4AAQSkZJRgABAgEASABIAAD/4RFZRXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUAAAABAAAAYgEbAAUAAAABAAAAagEoAAMAAAABAAIAAAExAAIAAAAcAAAAcgEyAAIAAAAUAAAAjodpAAQAAAABAAAApAAAANAACvyAAAAnEAAK/IAAACcQQWRvYmUgUGhvdG9zaG9wIENTMyBXaW5kb3dzADIwMTc6MTA6MjAgMTA6NDU6MzYAAAAAA6ABAAMAAAAB//8AAKACAAQAAAABAAALIKADAAQAAAABAAAGQAAAAAAAAAAGAQMAAwAAAAEABgAAARoABQAAAAEAAAEeARsABQAAAAEAAAEmASgAAwAAAAEAAgAAAgEABAAAAAEAAAEuAgIABAAAAAEAABAj..."} 失败响应示例 { "error_code": "AIS.0105", "error_msg": "Recognize Failed"}
  • Python3语言API示例 本示例以图像标签为例介绍如何使用Python3调用API。 # encoding:utf-8import requestsimport base64url = "https://{endpoint}/v2/{project_id}/image/tagging"token = "用户获取得到的实际token值"headers = {'Content-Type': 'application/json', 'X-Auth-Token': token}imagepath = r'data/image-tagging.jpg'with open(imagepath, "rb") as bin_data: image_data = bin_data.read()image_base64 = base64.b64encode(image_data).decode("utf-8") # 使用图片的base64编码data= {"image": image_base64} # url与image参数二选一response = requests.post(url, headers=headers, json=data, verify=False)print(response.text) 表1 参数说明 参数 参数说明 url API请求URL,例如本示例中https://{endpoint}/v2/{project_id}/image/tagging。 token Token是用户的访问令牌,承载了用户的身份、权限等信息,用户调用API接口时,需要使用Token进行鉴权。 获取Token方法请参见认证鉴权。 imagePath 图片路径。支持图片文件路径或图片url路径。其中,图片的url路径支持公网http/https url或OBS提供的url。 父主题: 应用示例
  • API概览 图像识别服务所提供的API为自研API。通过使用图像识别服务的自研API,您可以完整的使用图像识别服务的如表1所示功能。 表1 接口说明 API 说明 媒资图像标签(分类)-标签识别 标签识别服务使用时,用户发送待处理图片,返回图像标签内容及相应置信度。 媒资图像标签(检测) 对用户传入的图像可以返回图像中物体的坐标位置、物体名称、所属类别及置信度信息。 名人识别 名人识别服务能分析并识别图片中包含的明星及网红人物,返回人物信息及人脸坐标。 主体识别 主体识别服务对用户传入的图片能通过后台算法判断图片主体,并返回主体坐标。 翻拍识别 目前仅支持部分条形码的翻拍识别,可以检测出经过二次处理的不合规范图片,使得统计数据更准确、有效。 图像标签(V2) 图像标签服务准确识别自然图片中数百种场景、上千种通用物体及其属性,让智能相册管理、照片检索和分类、基于场景内容或者物体的广告推荐等功能更加直观。
  • 请求消息 请求参数请参见表1。 表1 请求参数说明 名称 是否必选 类型 说明 image 与file二选一 String 图片文件BASE64编码串。要求base64编码后大小不超过10MB,支持JPEG、PNG、BMP、WEBP格式。 file 与image二选一 File 图片文件。 说明: 不推荐使用该请求参数。 为了保持兼容服务端,对此类接口的支持能力,保留该请求参数,但不再展示该参数对应的请求示例和响应示例。 brightness 否 Float 亮度值,亮度值设置的越高,亮度越大。默认值0.9,取值范围[0,1]。
提示

您即将访问非华为云网站,请注意账号财产安全