华为云-图像识别API服务调用

1.开通服务使用图像识别服务之前,必须先申请并开通服务。①登录后跳转至控制台页面,点击左上角服务列表按钮,在搜索框中输入"image",在结果中找到【图像识别Image】并点击,即可进入图像识别服务控制台,如下图:②区域默认显示"华北-北京四",实验中无需修改。(注:实际生产使用时,请根据各服务的部署区域选择对应区域,开通与调用的服务必须在同一个区域。)③在"控制台"页,点击【服务列表】,根据【开通状态】查看需调用的服务是否已开通,若未开通,则需点击【开通】按钮。本实验使用的是图像标签服务,请确保该服务是开通状态。

②区域默认显示"华北-北京四",实验中无需修改。(注:实际生产使用时,请根据各服务的部署区域选择对应区域,开通与调用的服务必须在同一个区域。)③在"控制台"页,点击【服务列表】,根据【开通状态】查看需调用的服务是否已开通,若未开通,则需点击【开通】按钮。本实验使用的是图像标签服务,请确保该服务是开通状态。

2.获取AK、SK①华为云控制台页面右上角账号处点击【我的凭证】。

②依次点击【访问密钥】、【新增访问密钥】。

③完成后会生成credentials.csv文件,点击"立即下载":

④文件会下载到实验主机的/home/user/Downloads/路径下。下载完成后,在这里可以打开文件所在位置:

右击文件选择"Open With 'Mousepad'",可查看对应的AK(Access Key)、SK(Secret access Key)信息,AK、SK之间有逗号分隔,如下所示。

3.调用服务3.1 创建工程①打开桌面的eclipse软件,菜单栏选择"File"-"New"-"Project"。如弹出火狐浏览器窗口,关闭即可。

①打开桌面的eclipse软件,菜单栏选择"File"-"New"-"Project"。如弹出火狐浏览器窗口,关闭即可。

②选择"Maven Project" , 单击"Next"

③勾选"Create a simple project" , 单击"Next"。

④填写Group Id:"image";Artifact Id: "recognition";Name: "imagesdk", 单击"Finish"。

⑤修改pom.xml文件。在project部分添加如下代码后保存该pom.xml文件:

java 复制代码
<dependencies>
	<dependency>
		<groupId>com.huaweicloud.sdk</groupId>
		<artifactId>huaweicloud-sdk-image</artifactId>
		<version>3.0.55</version>
	</dependency>
</dependencies>

参考下图:

3.2图像标签服务测试①在当前工程中的src/main/java下新建类:RunImageTaggingSolution,完成后点击finish。

②复制下方代码覆盖至刚刚创建好的"RunImageTaggingSolution"类中,并用你的AK、SK替换代码中的"Your_AK"、"Your_SK"两个字段的值:

java 复制代码
package recognition;

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.*;
import com.huaweicloud.sdk.image.v2.model.*;
                           
public class RunImageTaggingSolution {
 
    public static void main(String[] args) {
    	String HuaweiCloud_SDK_AK = "EFGJLLJRJE8ATUHU6JCY";  //\u8fd9\u91cc\u66ff\u6362\u4e3a\u4f60\u7684AK\u5bf9\u5e94\u7684\u503c
    	String HuaweiCloud_SDK_SK = "JggvfzEXPLY54gUEymh5QGNsCDuPck01bhjrNH4Y";  //\u8fd9\u91cc\u66ff\u6362\u4e3a\u4f60\u7684SK\u5bf9\u5e94\u7684\u503c
        String ak = HuaweiCloud_SDK_AK;
        String sk = HuaweiCloud_SDK_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://sandbox-expriment-files.obs.cn-north-1.myhuaweicloud.com/tagging-plant.png");
        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());
        }
    }
}

代码中使用ImageTaggingReq类的withUrl方法配置图像信息,图片具体如下图所示。

③请求body参数说明。

④运行。先保存代码,再右键点击代码区域,选择"Run As"->"Java Application",运行该段代码,如图:

图像标签识别结果输出到控制台,如下图所示:

即完成实验。

⑦相关响应参数说明。

注:关于获取图片文件Base64编码字符串。您可以参考如下链接内容:https://developer.huaweicloud.com/develop/aigallery/article/detail?id=502ce704-7d44-47a5-8fd8-1dae9f5cfc5f

相关推荐
名字还没想好☜6 分钟前
Spring @EventListener 事件驱动解耦实战:同步转异步、事务绑定与顺序控制
java·数据库·后端·python·spring
一木 之林13 分钟前
插件、MCP、Skill 的区别?
java·c++·人工智能
可乐鸡翅yeah_17 分钟前
hls.js 播放质量埋点实战,采集卡顿、起播、错误指标定位线上用户问题
开发语言·前端·javascript·ecmascript·音视频·m3u8·音视频在线播放
小刘在重生~21 分钟前
面试重点:final、finalize、finally 三者区别
java
szarron33 分钟前
RF Demo Kit|NanoVNA 射频演示测试板完整上手教程,滤波器、衰减器、SOLT 校准学习板
开发语言·人工智能·学习·php·射频工程·频谱仪
边境悍匪1 小时前
蜗牛学苑 Java 智能体学习 Day39|SpringAI 会话存储、Function‑Call 工具调用、MCP 思维导图复盘
java·开发语言·spring boot·学习·阿里云
万物智能信息科技1 小时前
RK3568 的多路显示移植—【万物智能之开源鸿蒙OpenHarmony系统实战开发系列教程】
linux·开发语言·华为·开源·harmonyos
蓝悦无人机1 小时前
Qt Design Studio(QDS)4.8.2项目文件结构详解
开发语言·qt·qt creator·qds·项目文件结构·qtc
letisgo51 小时前
JAVA 高级进阶02篇《并发编程三板斧:JMM、CAS与AQS的源码级拆解》
java·面试·并发编程·aqs·jmm
胡写代码1 小时前
若依 + MyBatis-Plus,分页为什么悄悄失效了?
java·后端