华为云用户手册

  • 开通服务 进入图像识别官网主页,单击“立即使用”,进入图像识别服务管理控制台。 单击左侧导航栏的“服务列表”,在“服务列表”页面,选择您想要使用的服务,单击“开通”按钮后即可开通本服务。 服务开通成功后,状态列将显示为“已开通”(此时的计费方式默认采用按需计费)。 如果您想使用购买套餐包的计费方式使用本服务,单击“购买套餐包”列的“购买”按钮,会跳转到对应的购买页面,购买完成后使用即可。 如果您需要对OBS中的数据进行图像识别,请开启“对象存储服务OBS授权”按钮。 图1 服务列表 主体识别当前仅支持按需计费的方式。 lmage不支持跨区域私有权限的OBS,OBS的区域需要和服务保持一致。 OBS授权需要使用IAM主账号进行授权,不支持使用子账号进行授权。
  • 操作步骤 登录API Explorer。 登录后,“X-Auth-Token”和“project_id”参数会自动填充,无需填写。 填写待检测图片数据。 输入数据可选image或url,本示例使用url,例如https://support.huaweicloud.com/productdesc-image/zh-cn_image_0000001382844041.jpg。 单击“调试”按钮,获取识别结果。
  • 准备数据 服务不同功能部署的区域,数据格式和调用并发数有相应的约束限制,需要您在使用服务前参考约束准备好待识别的数据。 服务功能的使用约束请参见约束与限制。 例如媒资图像标签,输入数据存在以下约束: 支持“华北-北京四”区域。 支持识别处理PNG、JPEG、BMP、WEBP格式的图片。 图像各边的像素大小在1px至10000px之间。 图片base64编码后大小不超过10MB(原图像大小不超过7.5MB)。 默认API调用最大并发为10,更高并发需要,请提交工单联系专业工程师为您服务。 服务所支持的区域是指服务部署在该区域下的服务器,用户所在地区与服务部署区域不一致也是可以开通和使用本服务的。有如下两种情况: 如果请求输入的数据是OBS地址方式,就需要使用相同区域的图像识别服务。 例如:您的OBS请求数据在“华北-北京四”,只能调用“华北-北京四”区域下的图像识别服务,如果本服务不支持该区域则不能调用。 如果请求输入的数据是Base64图片或者公网URL,则不受区域影响。 例如:您的服务器在“华东-上海一”可以调用“华北-北京四”的图像识别服务接口。
  • 服务使用流程 图像识别(Image Recognition),是指利用计算机对图像进行分析和理解,以识别各种不同模式的目标和对象的技术,用户通过实时访问和调用API获取推理结果,帮助用户自动采集关键数据,打造智能化业务系统,提升业务效率。 使用本服务的操作流程如下所示: 图1 使用流程 表1 使用流程说明 流程 子任务 说明 详细指导 开通服务 注册华为账号并实名认证 使用图像识别服务之前,您需要注册华为账号并进行实名认证。 注册华为账号 开通服务步骤说明 需要您按照步骤操作说明来申请开通服务。 开通服务 准备数据 数据要求 数据格式和调用并发数有相应的约束限制,需要您在使用服务前参考约束准备好待识别的图像。 准备数据 调用API或SDK 在线调试 以媒资图像标签为例,介绍如何使用API Explorer调试API。 在线调试 本地调用 介绍使用Image SDK在本地进行开发,用户直接调用接口函数即可使用SDK功能。 本地调用 查看调用次数 调用结果统计 开始使用服务后,可以在管理控制台上查看服务使用详情和调用次数统计。 查看调用次数
  • 申请服务 图像标签、名人识别、主体识别、翻拍识别等服务功能的开通,您可以按照如下步骤操作申请开通本服务。 其余服务功能目前处于邀测状态,需要您通过提交工单的方式,联系专业工程师为您服务后台开通邀测白名单。 申请服务前,必须先申请华为账号,并完成实名认证。 服务只需要开通一次即可,后面使用时无需再申请。 进入图像识别官网主页,单击“立即使用”,进入图像识别服务管理控制台。 单击左侧导航栏的“服务列表”,在“服务列表”页面,选择您想要使用的服务,单击“开通”按钮后即可开通本服务。 服务开通成功后,状态列将显示为“已开通”(此时的计费方式默认采用按需计费)。 如果您想使用购买套餐包的计费方式使用本服务,单击“购买套餐包”列的“购买”按钮,会跳转到对应的购买页面,购买完成后使用即可。 如果您需要对OBS中的数据进行图像识别,请开启“对象存储服务OBS授权”按钮。 服务不支持跨区域私有权限的OBS,OBS的区域需要和服务保持一致。 图1 服务列表 父主题: 如何调用API
  • 从控制台获取项目ID和名称 从控制台获取项目ID(project_id)和名称(project name)的步骤如下: 注册并登录管理控制台。 在页面右上角单击用户名,然后在下拉列表中单击“我的凭证”,进入“我的凭证”页面。 如果您登录的是华为云官网,而非管理控制台。在单击用户名后,选择下拉列表中的“账号中心”,然后单击“管理我的凭证”进入“我的凭证”页面。 在“API凭证”页面的项目列表中查看项目ID和名称(即“项目”)。 图1 查看项目ID 多项目时,展开“所属区域”,从“项目ID”列获取子项目ID。
  • 调用API获取项目ID 项目ID通过调用查询指定条件下的项目信息API获取。 获取项目ID的接口为GET https://{iam-endpoint}/v3/projects,其中{iam-endpoint}为IAM的终端节点,可以从地区和终端节点处获取。 响应示例如下,例如ModelArts部署的区域为"cn-north-4",响应消息体中查找“name”为"cn-north-4",其中projects下的“id”即为项目ID。 { "projects": [{ "domain_id": "65382450e8f64ac0870cd180d14e684b", "is_domain": false, "parent_id": "65382450e8f64ac0870cd180d14e684b", "name": "cn-north-4", "description": "", "links": { "next": null, "previous": null, "self": "https://www.example.com/v3/projects/a4a5d4098fb4474fa22cd05f897d6b99" }, "id": "a4a5d4098fb4474fa22cd05f897d6b99", "enabled": true }], "links": { "next": null, "previous": null, "self": "https://www.example.com/v3/projects" } }
  • 错误码说明 调用接口出错后,将不会返回结果数据。调用方可根据每个接口对应的错误码来定位错误原因。 返回的消息体中是具体的错误代码及错误信息。在调用方找不到错误原因时,可以联系华为云客服,并提供错误码,以便尽快帮您解决问题。 当您调用API时,如果遇到“APIGW”开头的错误码,请参见API网关错误码进行处理。 状态码 错误码 描述信息 说明 处理措施 400 AIS.0002 The authentication token is abnormal. 验证Token异常。 请检查Token是否正确。 400 AIS.0003 Failed to complete the request because of an internal service error. 服务内部错误。 请联系华为云支持人员,请提交工单联系专业工程师为您服务。 400 AIS.0004 The request is unauthorized. 无权限操作。 服务未开通,请先开通服务。服务开通请参见《图像识别快速入门》。 400 AIS.0007 The service has not been enabled yet. 服务未开通。 请开通服务。 400 AIS.0010 The header is missing or left empty. 缺少Header或者Header为空。 HTTP请求缺少必须的header信息,请检查是否有Content-type等必须字段 400 AIS.0011 The request parameter is missing or left empty. 缺少请求参数或者参数为空。 请检查请求body是否缺少必须字段,请参考对应API的请求说明。 400 AIS.0012 The request parameter is not supported. 请求参数不支持。 请检查请求中的字段不合法,请参考对应API的请求说明。 400 AIS.0013 The request method is not allowed. 请求方法不允许。 请检查请求方法。 400 AIS.0014 The JSON format of the input data is incorrect. 输入数据JSON格式错误。 请检查输入数据的JSON格式。 400 AIS.0015 Base64 decoding of the input data is incorrect. 输入数据BASE64解码错误。 图片的Base64编码错误,请检查Base64内容 400 AIS.0020 The size of the request body exceeds the upper limit. 请求体大小超过限制。 请检查请求体大小。 400 AIS.0021 The requested file type is not supported. 请求的文件类型不支持。 请检查请求的文件类型。 400 AIS.0022 The URL is invalid. URL不合法。 请检查输入的url格式。 400 AIS.0023 The file stored on OBS is oversized. 存储在OBS上的文件过大。 检查图片格式是否是服务支持的格式。具体请参见《图像识别使用限制》。 400 AIS.0024 Failed to obtain the file from OBS. The signature has expired or fails to pass the authentication. 从OBS上获取文件失败。原因可能为签名过期或签名验证未通过等。 原因可能为签名过期或签名验证未通过等。 400 AIS.0025 The file stored on OBS is empty. 存储在OBS上的文件为空。 请先上传文件到OBS上。 400 AIS.0026 The token type is incorrect. The token of the project type must be used. token类型错误,应使用project类型的token。 应使用project类型的token。 400 AIS.0027 The account has been frozen. 此账户已被冻结。 请检查是否账户是否欠费。 400 AIS.0028 The job is not owned by the current user. 此任务不属于当前用户。 请检查当前账户。 400 AIS.0029 Failed to download the file from the Internet. Check whether the URL of the file is correct and supported. 从外网下载文件失败。检查文件url是否正确以及是否在支持的范围内。 检查文件url是否正确以及是否在支持的范围内。 400 AIS.0030 Failed to find the job. The job has expired or the passed job_id is incorrect. Check whether job_id is correct. 任务未找到。任务已过期被清理了或者传入的job id错误,检查job id是否正确。 任务已过期被清理了或者传入的job id错误。请检查job id是否正确 400 AIS.0031 The maximum number of uncompleted jobs has been reached. The submission of new jobs has been suspended. 未处理完的任务总数达到限制。暂停提交新任务。 暂停提交新任务。 400 AIS.0032 The monthly free calls have been used up. To continue to use the service, top up your account. 月免费调用量已使用完。如需继续使用给关联的华为云账户充值即可。 如需继续使用给关联的华为云账户充值即可。 400 AIS.0201 An exception occurred during the process of obtaining the input image. 获取输入图像异常。 请检查输入图像,重新获取。 400 AIS.0202 The image format is not supported. 图片格式不支持。 检查图片格式是否是服务支持的格式。 400 AIS.0203 The input parameter does not meet the requirements. 输入参数不符合规范。 请重新检查输入的参数。 400 AIS.0204 The color depth is not supported. 图片位深不支持。 请重新检查。 400 AIS.0205 The resolution of the image exceeds the upper limit. 图片分辨率超限。 检查图片格式是否是服务支持的格式。 400 AIS.0206 Algorithm calculation failed. 算法计算失败。 请重新检查。如需帮助请联系华为云支持人员,请通过工单联系我们。 400 AIS.0501 The input parameter is invalid. 输入参数不合法。 请重新检查输入的参数。 400 AIS.0502 The image format is not supported. 图像格式不支持。 检查图片格式是否是服务支持的格式。具体请参见《图像识别使用限制》。 400 AIS.0503 The image is damaged. 图像受损。 检查图像是否受损,然后重新上传符合要求的图片文件。 400 AIS.0504 The image size does not meet requirements. 图像大小不符合要求。 检查图像大小是否符合要求。 图片base64编码,要求base64编码后大小不超过10M,最短边至少15px,最长边最大4096px,支持JPEG/PNG/BMP/WEBP格式。 400 AIS.0505 Failed to run the algorithm. 算法运行失败。 请重新检查,如需帮助请联系华为云支持人员,请通过工单联系我们。 400 AIS.0506 An internal error occurred. 出现内部错误。 请联系华为云支持人员,请通过工单联系技术支持人员。 400 APIG.0101 The API does not exist or has not been published. 您所访问的API不存在或尚未在环境中发布。 请检查输入的api信息是否正确,是否该服务存在在对应区域中。检查API的URL是否拼写正确,HTTP请求方法(POST,GET等)是否正确,请检查服务调用配置的域名和uri信息是否正确,域名可参考域名。 400 APIG.0301 1. Incorrect IAM authentication information: Failed to decrypt the token. Check whether the entered token is complete. 2. The validity period of a token is 24 hours. If the token expires, obtain a new token and pass it. 3. The AK/SK authentication fails. Check whether the AK/SK is correct and whether the account is restricted due to arrears. 1.IAM身份验证信息不正确:解密令牌失败,检查输入的token是否完整。 2.token有效期为24小时,token超时,重新传入获取token值。 3.因为AK/SK认证失败,请检查AK/SK是否正确,账号是否因欠费等原因权限被限制。 decrypt token fail:发送的HTTP请求header中x-auth-token的token请求认证信息错误,请检查发送的请求和token。 token expires:token超时,请重新获取新token传入。 verify aksk signature fail:请检查AK、SK是否正确,账号是否欠费。 400 APIG.0201 The request body is oversized. 请求体过大。 请检查请求的body体是否过大,具体请参见《图像识别使用限制》,进行调整。 400 APIG.0308 The request is sent too fast and exceeds the default rate limit of the service. 请求发送太快,超过了服务的默认配置限流。 请求发送太快,达到了API的限速阈值,请降低请求速度。如有更高请求速度要求,请联系华为云支持人员,请通过工单联系我们。 400 ModelArts.0203 Invalid token. 非法Token。 请检查Token是否正确。 400 ModelArts.4101 The token is empty. Token为空。 发送的HTTP请求header中没有带x-auth-token的token请求认证信息,请检查发送的请求。 400 ModelArts.4102 Failed to parse the token. 解析Token失败。 发送的HTTP请求header中x-auth-token的token请求认证信息错误,请检查发送的请求和token。 400 ModelArts.4103 The token is invalid. Token不合法。 发送的HTTP请求header中x-auth-token的token请求认证信息错误,请检查发送的请求和token。 400 ModelArts.4104 The length of the request body is invalid. 请求body体长度不合法。 请检查请求body体长度。 400 ModelArts.4105 The JSON format of the request body is incorrect. 请求body体json格式不对。 请检查请求body体是否符合json格式。 400 ModelArts.4106 The account is restricted. 用户账号受限。 请检查用户资源状态,账号受限原因请参考账号中心相关描述。 400 ModelArts.4107 An exception occurred when obtaining the temporary AK/SK. 获取用户临时AK,SK异常。 请联系华为云支持人员,通过工单联系我们。 400 ModelArts.4201 The request URL does not contain the service ID. 请求url中需要包含服务ID。 请检查请求url中的服务ID。 400 ModelArts.4202 The request URL format is invalid. 请求url格式不合法。 请检查请求url格式。 400 ModelArts.4203 No access permission. 没有权限访问。 请检查访问权限。 400 ModelArts.4204 The API is not subscribed to. 没有订阅该API。 请订阅该API,订阅API请参考服务介绍开通申请服务。如已开通服务,请检查开通服务的区域与服务调用的一致,若一致请检查API的URL是否拼写正确,HTTP请求方法(POST,GET等)是否正确。 400 ModelArts.4601 The external URL is invalid. 外网下载地址不合法。 请检查输入的url下载地址参数格式。 400 ModelArts.4603 The file failed to be downloaded from the external URL. 下载外网URL文件失败。 请检查输入的url是否可下载。 400 ModelArts.4702 The OBS agency failed to be queried. 查询OBS委托失败。 请检查是否已开通给服务的OBS委托。 400 ModelArts.4703 The OBS URL is invalid. OBS地址不合法。 请检查输入的OBS的url地址。 400 ModelArts.4704 Failed to obtain the OBS file. 获取OBS文件失败。 下载OBS文件失败,请检查对应的文件是否存在。 400 ModelArts.4705 The OBS file is oversized. OBS文件大小超限。 请使用符合服务大小限制的文件作为输入,具体请参见《图像识别使用限制》。 400 ModelArts.4706 The OBS file does not exist. OBS文件不存在。 下载OBS文件失败,请检查对应的文件是否存在。 403 AIP.0001 The authentication token is abnormal. token鉴权异常。 检查token。 500 AIP.0500 Failed to complete the request because of an internal service error. 服务内部错误。 请联系华为云支持人员,通过工单联系我们。 401 AIP.0003 The request is unauthorized. 请求未经授权。 检查请求URL中的项目ID。 400 AIP.0004 The service does not exist. 服务不存在。 检查服务名或者服务版本是否正确。 400 AIP.0005 Lack Header or Header %s is empty. header缺失或者header为空。 检查header。 400 AIP.0006 Lack the request parameter, or the request parameter %s is empty. 请求参数缺失或者请求参数为空。 检查是否缺少必选参数。 400 AIP.0007 The request parameter %s is incorrect. 请求参数不正确。 检查服务允许的请求参数。 405 AIP.0008 The request method %s is not allowed, allow is %s. 请求方法不允许。 检查服务允许的请求方法。 400 AIP.0009 The JSON format of the input data is incorrect. 输入数据的json格式不正确。 检查输入数据的json格式。 400 AIP.0010 The param:%s, val:%s , exceeds the range:[%s,%s]. 参数超出范围。 检查参数正确范围。 400 AIP.0011 Service of %s has been subscribed. 服务已订阅。 请勿重复订阅服务。 400 AIP.0012 The input parameter is incorrect. 输入参数错误。 检查服务输入参数是否正确。 400 AIP.0013 Lack the parameter %s, or the parameter is incorrect. 订阅参数缺失或参数不正确。 检查服务输入参数是否正确。 400 AIP.0014 %s already exists. 数据已存在。 检查已存在的数据。 400 AIP.0015 Service of %s hasn't been subscribed. 服务未订阅。 请先订阅该服务。 400 AIP.0016 The request parameter is wrong, %s 请求参数错误。 检查服务允许的请求参数。 400 AIP.0017 The task id %s not exist. 任务ID不存在。 检查任务ID是否正确或者已经过期。 400 AIP.0018 Unable to get agency. 获取委托失败。 检查服务是否开启委托。 400 AIP.0019 Multi input is not supported in current service: [%s], version: [%s]. 当前服务版本不支持多输入。 检查服务是否支持多输入。 400 其他 如若出现其他无法解决的错误码,请通过工单联系我们。
  • 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 。
  • 示例代码 下面代码展示了如何对一个请求进行签名,并通过AisAccess发送一个HTTPS请求的过程: 代码分成两个类进行演示: ResponseProcessUtils:工具类,用于处理结果的返回。 ImageTaggingDemo:进行相关参数ak,sk,region的配置,访问图像标签服务的示例。 ResponseProcessUtils.java 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 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 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 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。
  • 为什么个别服务接口没有开通服务按钮? 图像标签、名人识别、主体识别、翻拍识别等服务功能的开通,您可以按照开通服务步骤申请开通本服务。 其余服务功能目前处于邀测状态,仅面向企业用户开放并且需要通过提交工单的方式,联系专业工程师为您服务后台开通邀测白名单。 申请服务前,请您先申请华为账号,并完成实名认证。 用户第一次使用图像识别时,需要先申请开通该服务。服务只需要开通一次即可,后面使用时无需再申请。 图像识别已商用的服务提供两种计费模式供您选择:按需计费和折扣套餐包计费。服务计费问题请参考计费说明。 父主题: 服务开通
  • 步骤3:用户登录并验证权限 用户创建完成后,可以使用新用户的用户名及身份凭证登录华为云验证权限。 在华为云登录页面,单击右下角的“IAM用户登录”. 在“IAM用户登录”页面,输入账号名、用户名及用户密码,使用新创建的用户登录。 账号名为该IAM用户所属华为账号的名称。 用户名和密码为账号在IAM创建用户时输入的用户名和密码。 如果登录失败,您可以联系您的账号主体,确认用户名及密码是否正确,或是重置用户名及密码。 登录成功后,进入华为云控制台,登录后默认区域为“华北-北京四”,请先切换至授权区域。 在“服务列表”中选择图像识别,在服务管理页面进行OBS授权、开通服务、调用均能正常使用,则表示授权已生效。
  • 异构数据源联邦分析 车企数字化服务转型 面临市场新的竞争压力及出行服务不断变革,车企通过构建车联云平台和车机OS,将互联网应用与用车场景打通,完成车企数字化服务转型,从而为车主提供更好的智联出行体验,增加车企竞争力,促进销量增长。例如:通过对车辆日常指标数据(电池、发动机,轮胎胎压、安全气囊等健康状态)的采集和分析,及时将维保建议回馈给车主。 优势 多源数据分析免搬迁:关系型数据库RDS中存放车辆和车主基本信息,表格存储CloudTable中存放实时的车辆位置和健康状态信息,数据仓库DWS中存放周期性统计的指标。通过DLI无需数据搬迁,对多数据源进行联邦分析。 数据分级存储:车企需要保留全量历史数据支撑审计类等业务,低频进行访问。温冷数据存放在低成本的对象存储服务OBS上,高频访问的热数据存放在数据引擎(CloudTable和DWS)中,降低整体存储成本。 告警快速敏捷触发服务器弹性伸缩:对CPU、内存、硬盘空间和带宽无特殊要求。 建议搭配以下服务使用 DIS、CDM、OBS、DWS、RDS、CloudTable 图2 车企数字化服务转型
  • 大数据ETL处理 运营商大数据分析 运营商数据体量在PB~EB级,其数据种类多,有结构化的基站信息数据,非结构化的消息通信数据,同时对数据的时效性有很高的要求,DLI服务提供批处理、流处理等多模引擎,打破数据孤岛进行统一的数据分析。 优势 大数据ETL:具备TB~EB级运营商数据治理能力,能快速将海量运营商数据做ETL处理,为分布式批处理计算提供分布式数据集。 高吞吐低时延:采用Apache Flink的Dataflow模型,高性能计算资源,从用户自建的Kafka、MRS-Kafka、DMS-Kafka消费数据,单CU每秒吞吐1千~2万条消息。 细粒度权限管理:P公司内部有N个子部门,子部门之间需要对数据进行共享和隔离。DLI支持计算资源按租户隔离,保障作业SLA;支持数据权限控制到表/列,帮助企业实现部门间数据共享和权限管理。 建议搭配以下服务使用 OBS、DIS、DataArts Studio 图3 运营商大数据分析
  • 地理大数据分析 地理大数据分析 地理大数据具有大数据的相关特征,数据体量巨大,例如,全球卫星遥感影像数据量达到PB级。数据种类多,有结构化的遥感影像栅格数据、矢量数据,非结构化的空间位置数据、三维建模数据;在大体量的地理大数据中,通过高效的挖掘工具或者挖掘方法实现价值提炼,是用户非常关注的话题。 优势 提供地理专业算子:支持全栈Spark能力,具备丰富的Spark空间数据分析算法算子,全面支持结构化的遥感影像数据、非结构化的三维建模、激光点云等巨量数据的离线批处理,支持带有位置属性的动态流数据实时计算处理。 CEP SQL:提供地理位置分析函数对地理空间数据进行实时分析,用户仅需编写SQL便可实现例如偏航检测,电子围栏等地理分析场景。 大数据治理能力:能快速将海量遥感影像数据接入上云,快速完成影像数据切片处理,为分布式批处理计算提供弹性分布式数据集。 建议搭配以下服务使用 DIS、CDM、DES、OBS、RDS、CloudTable 图4 地理大数据分析
  • 海量日志分析 游戏运营数据分析 游戏公司不同部门日常通过游戏数据分析平台,分析每日新增日志获取所需指标,通过数据来辅助决策。例如:运营部门通过平台获取新增玩家、活跃玩家、留存率、流失率、付费率等,了解游戏当前状态及后续响应活动措施;投放部门通过平台获取新增玩家、活跃玩家的渠道来源,来决定下一周期重点投放哪些平台。 优势 高效的Spark编程模型:使用DLI直接从DIS中获取数据,进行数据清理等预处理操作。只需编写处理逻辑,无需关心多线程模型。 简单易用:直接使用标准SQL编写指标分析逻辑,无需关注背后复杂的分布式计算平台。 按需计费:日志分析按时效性要求按周期进行调度,每次调度之间存在大量空闲期。DLI按需计费只在使用期间收费,成本较独占队列降低50%以上。 建议搭配以下服务使用 OBS,DIS,DWS,RDS 图1 游戏运营数据分析
  • 扫描量计费模式 扫描量支持以下计费模式: 按需计费:在default队列中提交作业按扫描数据量计费,一种按需计费模式。 计费方式自创建起按自然小时收费。按小时结算,小时数按整点计算。 扫描量计费=单价*扫描量数据(GB)。 套餐包:数据湖探索支持扫描数据量套餐包,购买了扫描数据量套餐包,按需使用过程中优先抵扣扫描数据量套餐包的规格额度,超过扫描数据量套餐包额度的按照按需计费。扫描数据量套餐的额度每个月会重置。 更多套餐包计费信息请参考套餐包计费。 本文将介绍按需计费的DLI数据扫描量计费的计费规则。
  • 约束限制 仅default队列适用按数据扫描量计费。 如果扫描字节数量少于10M, 则按10M计算。 数据定义语言(DDL)语句(如 CREATE、ALTER、DROP TABLE等语句)、管理分区语句、失败的查询语句无需付费。 取消的查询,按取消查询时扫描的总数据量计费。 若计算任务超时或失败,则当次计算不收取费用。 数据的存储方式(包括格式,是否压缩)对计算费用有直接的影响。 假设Parquet格式文件为原CSV文件大小的1/4,则数据扫描费用为原CSV文件扫描费用的1/4。
  • 续费相关的功能 包年/包月的DLI资源续费相关的功能如表1所示。 表1 续费相关的功能 功能 说明 手动续费 包年/包月的DLI资源从购买到被自动删除之前,您可以随时在DLI控制台为队列或弹性资源池续费,以延长资源的使用时间。 自动续费 开通自动续费后,DLI资源会在每次到期前自动续费,避免因忘记手动续费而导致资源被自动删除。 在DLI资源生命周期的不同阶段,您可以根据需要选择一种方式进行续费,具体如图1所示。 图1 DLI资源生命周期 DLI资源从购买到到期前,处于正常运行阶段,资源状态为“运行中”。 到期后,资源状态变为“已过期”。 到期未续费时,DLI资源首先会进入宽限期,宽限期到期后仍未续费,资源状态变为“已冻结”。 超过宽限期仍未续费将进入保留期,如果保留期内仍未续费,资源将被自动删除。 华为云根据客户等级定义了不同客户的宽限期和保留期时长。 在DLI资源到期前均可开通自动续费,到期前7日凌晨3:00首次尝试自动续费,如果扣款失败,每天凌晨3:00尝试一次,直至DLI资源到期或者续费成功。到期前7日自动续费扣款是系统默认配置,您也可以根据需要修改此扣款日。
  • 续费简介 包年/包月DLI资源到期后会影响资源的正常使用。如果您想继续使用,需要在指定的时间内续费,否则队列、弹性资源池等资源会自动释放,数据丢失且不可恢复。 续费操作仅适用于包年/包月资源,按需计费资源不需要续费,只需要保证账户余额充足即可。DLI的包周期资源包括:队列、弹性资源池。 在到期前续费成功,所有资源得以保留,且作业的运行不受影响。资源到期后的状态说明,请参见到期后影响(适用于包年/包月计费模式)。
  • 欠费影响 包年/包月 对于包年/包月DLI资源。如队列或弹性资源池,用户已经预先支付了资源费用,因此在账户出现欠费的情况下,已有的包年/包月资源仍可正常使用。然而,对于涉及费用的操作,如新购资源、弹性资源池规格变更、续费订单等,用户将无法正常进行。 按需计费 当您的账号因按需DLI资源自动扣费导致欠费后,账号将变成欠费状态。欠费后,资源进入宽限期,不能在DLI服务中提交作业,包括SQL作业,Spark作业和Flink作业。 如果您在宽限期内仍未支付欠款,那么就会进入保留期,资源状态变为“已冻结”,您将无法对处于保留期的按需计费资源执行任何操作。 保留期到期后,若您仍未支付账户欠款,那么DLI的按需资源都将被释放,数据无法恢复。 图1 按需计费DLI资源生命周期 华为云根据客户等级定义了不同客户的宽限期和保留期时长。
  • 排查思路 DLI提供优惠的资源套餐包,购买套餐包后,资源按照套餐包类型计费。 套餐包是用户预先购买的资源使用量配额,超出当前套餐包的额度,将自动转为按需收费。 建议您按以下顺序排查原因。 可能原因 处理措施 未购买对应的套餐包 请参考判断是否经购买了对应的套餐包 套餐包额度已用完 请参考判断套餐包额度是否超出 购买的套餐包没有涵盖到DLI所有计费项 请参考判断是否产生了套餐包未涵盖的计费项 如果处理完某个可能原因仍未解决问题,请继续排查其他可能原因。
  • 判断是否经购买了对应的套餐包 目前DLI支持的套餐包类型如表1所示。 不同套餐包抵扣的费用不同,详见套餐包计费。请确认是否已经购买了产生按需费用的计费项所对应的套餐包。 如果未购买,产生按需计费为正常现象;如果已购买,请继续排查判断套餐包额度是否超出。 表1 套餐包类型及适用场景 类型 说明 适用场景 重置规则 扫描数据量套餐包 按照用户每个作业的数据扫描量(单位为“GB”)收取计算费用。 仅适用于default 队列。 扫描数据量套餐的额度按订购周期会重置。 弹性资源池CU时套餐包 按照“CU时”收取计算费用,用户在弹性资源池添加的队列上运行作业时按照弹性资源池CU时计费。 适用于可预估队列使用量的场景、或测试项目等资源消耗不高的场景。 弹性资源池CU时套餐包的额度按订购周期重置。 存储量套餐包 按照存储在DLI服务中的数据存储量(单位为“GB”)收取存储费用。 适用于在DLI 存储表数据的场景,例如时延敏感类的业务将表存储在DLI,使用存储量套餐包可以节省存储费用。 存储套餐的额度每个小时会重置。
  • 到期后影响(适用于包年/包月计费模式) 图3描述了包年/包月DLI资源各个阶段的状态。购买后,在计费周期内资源正常运行,此阶段为有效期;资源到期而未续费时,将陆续进入宽限期和保留期。 图3 包年/包月DLI资源生命周期 到期预警 包年/包月DLI资源在到期前第7天内,系统将向用户推送到期预警消息。预警消息将通过邮件、短信和站内信的方式通知到华为云账号的创建者。 到期后影响 当您的包年/包月DLI资源到期未续费,首先会进入宽限期,资源状态变为“已过期”。 如果您在宽限期内仍未续费包年/包月资源,那么就会进入保留期,资源状态变为“已冻结”,您将无法对处于保留期的包年/包月资源执行任何操作。 保留期到期后,若包年/包月资源仍未续费,那么资源将被释放,数据无法恢复。 华为云根据客户等级定义了不同客户的宽限期和保留期时长。 关于续费的详细介绍请参见账户充值。
  • 计费示例 价格仅供参考,实际计算请以数据湖探索价格详情中的价格为准。 样例1:包年/包月弹性资源池场景 假设您在2023/03/08 15:50:04购买了包年/包月弹性资源池(CU范围:100CUs),购买时长为一个月,并在到期前手动续费1个月,则: 第一个计费周期为:2023/03/08 15:50:04 ~ 2023/04/08 23:59:59 第二个计费周期为:2023/04/08 23:59:59 ~ 2023/05/08 23:59:59 您需要为每个计费周期预先付费,计费公式如表2所示。 表2 计费公式 资源类型 计费公式 资源单价 计算资源 规格单价 * 购买时长 请参见数据湖探索价格详情价格。 包年/包月弹性资源池费用计算示例: 队列单价:17000元/月 加上续费的周期共计时长2个月。 费用合计:34000元。 样例2:按需专属弹性资源池场景(含扩缩容场景计费样例) 弹性资源池CU时按照时间顺序分为三个周期来计费,分别为:弹性资源池创建周期、弹性资源池使用中周期、弹性资源池删除周期。三个周期时间范围定义可以参考图2所示。 图2 弹性资源池CU时计费的三个周期示意图 start_time:弹性资源池创建成功状态为“可使用”时间点。 start_time_next:弹性资源池创建成功状态为“可使用”时间点的下一个整点。比如当前start_time为9点45分,则start_time_next为10点00分。 end_time:弹性资源池删除成功的时间点。 end_time_before:弹性资源池删除成功时间点的上一个整点。比如当前end_time为14点25分,则end_time_before为14点00分。 弹性资源池创建周期 = start_time_next - start_time 弹性资源池使用中周期 = end_time_before - start_time_next 弹性资源池删除周期 = end_time - end_time_before 弹性资源池计算费用=单价*CU数*小时数。 弹性资源池CU时在三个周期的计费有所差异,详细可参考表3的场景说明: 表3 弹性资源池CU时计费场景说明 场景 场景简介 弹性资源池创建周期 弹性资源池使用中周期 弹性资源池删除周期 场景一 弹性资源池创建成功状态为“可使用”时间点为:09:40,则下一个整点为10:00 弹性资源池删除成功时间点为:11:40,则上一个整点为11:00 弹性资源池整个周期CU数为64CU,期间没有执行过弹性扩缩容 创建周期时长按小时计算: (10:00-09:40)=1/3小时 总的CU时 = 64CU/3 (向上取整) = 22CU时 使用中周期时长按小时计算: (11:00-10:00)=1小时 总的CU时 = 64CU/1 = 64CU时 删除周期时长按小时计算: (11:40-11:00)=2/3小时 总的CU时 = 64CU*2/3(向上取整) = 43CU时 场景二 弹性资源池创建成功状态为“可使用”时间点为:09:40,则下一个整点为10:00 弹性资源池删除成功时间点为:11:40,则上一个整点为11:00 弹性资源池初始CU数为64CU,在10点10分弹性扩容到128CU,在11点10分弹性缩容到64CU 创建周期时长按小时计算: (10:00-09:40)=1/3小时 总的CU时 = 64CU/3 (向上取整) = 22CU时 使用中周期时长按小时计算: 弹性扩容前时长=10:10-10:00=1/6时 弹性扩容后时长=11:00-10:10=5/6时 总的CU时 = (64CU*1/6 + 128CU*5/6)(向上取整) = 118CU时 删除周期时长按小时计算: 弹性缩容前时长=11:10-11:00=1/6时 弹性缩容后时长=11:40-11:10=1/2时 总的CU时 = (128CU*1/6+64CU*1/2)(向上取整) = 54CU时 场景三 弹性资源池创建成功状态为“可使用”时间点为:09:40,则下一个整点为10:00 弹性资源池删除成功时间点为:10:50,则上一个整点为10:00 弹性资源池初始CU数为64CU,在10点10分弹性扩容到128CU 创建周期时长按小时计算: (10:00-09:40)=1/3小时 总的CU时 = 64CU/3 (向上取整) = 22CU时 无 删除周期时长按小时计算: 弹性缩容前时长=10:10-10:00=1/6时 弹性缩容后时长=10:50-10:10=2/3时 总的CU时 = (64CU*1/6+128CU*2/3)(向上取整) = 96CU时 样例3:包年/包月弹性资源池+扩缩容场景 假设您在2023/03/08 15:50:04购买了包年/包月弹性资源池(CU范围:64CUs),购买时长为一个月,在资源运行一段时间后发现使用过程中大部分时间CU数在128CU以上(假设每天累计12个小时实际CUs为128CUs,超出规格64CUs。),因此在2023/03/10 15:50:04变更弹性资源池规格为128CU。弹性资源池计费详情请参见数据湖探索价格详情。 该示例计费详情如表4所示。 表4 包年/包月弹性资源池+扩缩容场景计费示例 计费模式 计算规则 付费周期 费用计算 包年/包月 弹性资源池64CUs包周期 1个月 费用:10880元 包年/包月 规格变更增加64CUs,包周期计费 28天 费用:(10880元 / 30) x 28天 = 10154.7元 按需 超出规格部分的按需计费: 计算费用=单价*CU数*小时数 2*12=24小时 费用:0.4 x 64 x 24(小时数)= 614.4 元 - - - 合计:21649.1 元
  • 弹性资源池计费模式 弹性资源池为DLI作业运行提供计算资源。弹性资源池支持三种计费模式: 包年包月:是预付费模式,按订单的购买周期计费。拥有专属的计算资源,空闲(无作业运行)时不会释放,使用体验更佳,价格比按需计费模式更优惠。 适用于可预估资源使用周期的场景,例如已完成开发进入生产阶段的项目,推荐使用包年包月计费模式预留业务所需资源。 包年包月的弹性资源池在使用过程中规格内按包周期计费,超出规格部分按需计费。 按需计费:按需计费是一种后付费模式,默认勾选专属资源模式,空闲时资源不被释放。 专属资源自创建起根据购买的实际CU按自然小时收费,秒级计费,按小时结算。计算费用=单价*实际CU数*小时数。 按需计费模式适用于测试项目,资源消耗不高,按需计费成本更低。 套餐包:DLI支持购买弹性资源池CU时套餐包,购买后在弹性资源池中提交作业按CU时计费。建议购买弹性资源池CU时套餐包和按需计费模式结合使用, 购买了弹性资源池CU时套餐包时,按需使用过程中优先抵扣弹性资源池CU时套餐包的规格额度,超过额度的使用量按照按需计费。弹性资源池CU时套餐包额度按订购周期重置。更多套餐包计费信息请参考套餐包计费。 本文将介绍按需计费的DLI弹性资源池的计费规则。
  • 适用场景 包年/包月:该计费模式需要用户预先支付一定时长的费用,适用于长期、稳定的业务需求。 按需计费:按需计费模式的弹性资源池适用于测试项目场景,作业随机性大,数据量小,资源消耗不高,按需计费成本更低,无需任何预付款。 包年/包月+按需计费:假设弹性资源池的规格为64CU,实际使用过程中大部分时间CU数在128CU以上,没有规格变更的场景下64CU部分采用包年包月计费,超出的64CU按弹性资源池CU时计费方式计费。 为了满足该场景下更优惠的计费,则可以通过规格变更的方式,将弹性资源池的规格扩大到128CU,则规格变更成功后128CU范围内都使用包年包月计费,整体相比原来更优惠。详细操作指导请参考弹性资源池规格变更。 按需计费+套餐包:适用于可预估队列使用量的场景、或测试项目等资源消耗不高的场景。使用过程中优先抵扣弹性资源池CU时套餐包的规格额度,超过额度的使用量按照按需计费。
  • 约束限制 按需专属弹性资源池自创建起按自然小时收费。弹性资源池的按需模式默认勾选专属资源模式。 弹性资源池秒级计费,按小时结算,小时数按整点计算。 按需计费的弹性资源池按实际CUs计费,非作业运行CUs。即按照实际物理资源占用来计费。 按需弹性资源池创建成功一小时后方可删除。 按需计费模式支持与CU时套餐包组合使用,按需使用过程中优先抵扣弹性资源池CU时套餐包的规格额度,超过额度的使用量按需计费。弹性资源池的CU时套餐包的额度每个月会重置。 弹性资源池单个计费周期内小于1CU的向上取整。 弹性资源池扩缩容的开始时间点是以实际扩缩容成功后时间点开始计算,不是按照扩缩容配置的时间开始计费。 弹性资源池队列扩容成功后,系统开始对扩容的CU进行计费,直到缩容成功停止对扩容的CU计费。 当业务发生调整,对这部分CU没有使用需求时,请及时清理释放资源,否则扩容的CU会持续计费。 弹性资源池中的队列不计费,以弹性资源池作为计算资源的计费项。
  • 计费规则 弹性资源池根据计费模式的不同计费规则各不相同。 表1 弹性资源池计费规则 计费模式 资源 说明 包年/包月 弹性资源池 包年包月的弹性资源池在使用过程中规格内按包周期计费,超出规格部分按需计费。 按需计费 弹性资源池 计算费用=单价*CU数*小时数 按需计费的DLI弹性资源池(专属资源),无论是否运行作业,自创建起根据购买的实际CUs按自然小时收费。 假设您选择购买按需计费模式的队列资源。在购买页面底部,您将看到所需费用的明细,如图1所示。 图1 配置费用示例 根据所选配置包括弹性资源池CU范围,购买时长计算配置费用。 包年/包月:根据所选配置,弹性资源池CU范围和购买时长计算配置费用。 按需计费:根据所选配置,弹性资源池CU范围计算配置费用。
共100000条