华为云AI:轻松实现图像识别调用

文章目录

  • 前言
  • 一、环境配置
    • 关键步骤
  • 二、图像识别实例
    • 媒资图像标签
    • 名人识别
  • 总结


前言

基于华为云AI服务和java使用SDK实现图像识别,主要以媒资图像标签和名人识别为例。


一、环境配置

  • Maven(没有直接下载华为的SDK包,而是使用Maven安装依赖)
  • JDK19(官方的SDK包要求JDK版本必须高于JDK8版本,大家根据自己只要满足版本要求即可)
  • 开发工具:IDEA 2023.3(其他版本也可)
    • 能创建Maven项目即可
  • 开通图像识别服务(目前是免费体验):这里我开通的是图像标签/媒资图像标签和名人识别服务。
  • 设置访问密钥
  • 服务区域:我开通的服务区域是华北-北京四

关键步骤

Maven项目的创建和Java环境变量的配置我就不再赘诉,这是大家学习java早已熟练掌握的,这里只讲诉易错的。

开通图像识别服务
华为云首页就有云产品体验区(找不到就在搜索栏检索),勾选AI:
在这里插入图片描述
点击“立即体验”后,找到服务列表,开通你想要的服务(点击开通):
在这里插入图片描述
设置访问密钥
在控制台找到“我的凭证”:
在这里插入图片描述
找到“访问密钥”,如果没有就新增,新增后一定要下载密钥的CSV文件,他会有提示让你下载,防止你忘记:
在这里插入图片描述
下载完csv文件后用记事本打开即可看到AK和SK:
在这里插入图片描述
Maven引入依赖配置
版本可以自己切换

		<dependency><groupId>com.huaweicloud.sdk</groupId><artifactId>huaweicloud-sdk-image</artifactId><version>3.1.8</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.70</version></dependency><dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpcore</artifactId><version>4.4.16</version></dependency><dependency><groupId>commons-codec</groupId><artifactId>commons-codec</artifactId><version>1.16.0</version></dependency><dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>2.13.0</version></dependency>

二、图像识别实例

媒资图像标签

功能介绍:对用户传入的图像可以返回图像中的物体名称、所属类别及置信度信息。

使用图片是网上的,仅作学习使用:
在这里插入图片描述

代码如下:

/*** @Version: 1.0.0* @Author: Dragon_王* @ClassName: RunImageMediaTaggingSolution* @Description: 媒资图像标签* @Date: 2024/1/8 11:51*//*** 此demo仅供测试使用,强烈建议使用SDK* 使用前需配置依赖jar包。jar包可通过下载SDK获取*/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 RunImageMediaTaggingSolution {public static void main(String[] args) {//此处需要输入您的AK/SK信息String ak = "你的AK";String sk = "你的SK";ICredential auth = new BasicCredentials().withAk(ak).withSk(sk);ImageClient client = ImageClient.newBuilder().withCredential(auth).withRegion(ImageRegion.valueOf("cn-north-4"))  //此处替换为您开通服务的区域.build();RunImageMediaTaggingRequest request = new RunImageMediaTaggingRequest();ImageMediaTaggingReq body = new ImageMediaTaggingReq();body.withThreshold(10f);body.withLanguage("zh");body.withUrl("https://tse2-mm.cn.bing.net/th/id/OIP-C.SIuEnb1-arhtDNqfdICVqAHaE7?rs=1&pid=ImgDetMain");  //此处替换为公网可以访问的图片地址request.withBody(body);try {RunImageMediaTaggingResponse response = client.runImageMediaTagging(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());}}
}

运行结果:
在这里插入图片描述

class RunImageMediaTaggingResponse {result: class ImageMediaTaggingResponseResult {tags: [class ImageMediaTaggingItemBody {confidence: 83.63type: 动物tag: 金毛犬i18nTag: class ImageMediaTaggingItemBodyI18nTag {zh: 金毛犬en: Golden retriever}i18nType: class ImageMediaTaggingItemBodyI18nType {zh: 动物en: Animal}instances: []}, class ImageMediaTaggingItemBody {confidence: 81.78type: 动物tag: 金毛i18nTag: class ImageMediaTaggingItemBodyI18nTag {zh: 金毛en: Golden hair}i18nType: class ImageMediaTaggingItemBodyI18nType {zh: 动物en: Animal}instances: []}, class ImageMediaTaggingItemBody {confidence: 77.00type: 动物tag: 金毛寻猎犬i18nTag: class ImageMediaTaggingItemBodyI18nTag {zh: 金毛寻猎犬en: Golden Retriever}i18nType: class ImageMediaTaggingItemBodyI18nType {zh: 动物en: Animal}instances: []}, class ImageMediaTaggingItemBody {confidence: 62.60type: 动物tag: 贵妇犬i18nTag: class ImageMediaTaggingItemBodyI18nTag {zh: 贵妇犬en: Poodle}i18nType: class ImageMediaTaggingItemBodyI18nType {zh: 动物en: Animal}instances: []}, class ImageMediaTaggingItemBody {confidence: 59.02type: 生活tag: 狗链i18nTag: class ImageMediaTaggingItemBodyI18nTag {zh: 狗链en: Dog chain}i18nType: class ImageMediaTaggingItemBodyI18nType {zh: 生活en: Life}instances: []}, class ImageMediaTaggingItemBody {confidence: 53.84type: 动物tag: 宠物狗i18nTag: class ImageMediaTaggingItemBodyI18nTag {zh: 宠物狗en: Pet dog}i18nType: class ImageMediaTaggingItemBodyI18nType {zh: 动物en: Animal}instances: []}, class ImageMediaTaggingItemBody {confidence: 48.01type: 动物tag: 狗狗i18nTag: class ImageMediaTaggingItemBodyI18nTag {zh: 狗狗en: Dog}i18nType: class ImageMediaTaggingItemBodyI18nType {zh: 动物en: Animal}instances: []}, class ImageMediaTaggingItemBody {confidence: 44.02type: 动物tag: 犬i18nTag: class ImageMediaTaggingItemBodyI18nTag {zh: 犬en: Dog}i18nType: class ImageMediaTaggingItemBodyI18nType {zh: 动物en: Animal}instances: []}, class ImageMediaTaggingItemBody {confidence: 42.11type: 动物tag: 纯种犬i18nTag: class ImageMediaTaggingItemBodyI18nTag {zh: 纯种犬en: Purebred dog}i18nType: class ImageMediaTaggingItemBodyI18nType {zh: 动物en: Animal}instances: []}, class ImageMediaTaggingItemBody {confidence: 38.65type: 动物tag: 中华田园犬i18nTag: class ImageMediaTaggingItemBodyI18nTag {zh: 中华田园犬en: Chinese pastoral dog}i18nType: class ImageMediaTaggingItemBodyI18nType {zh: 动物en: Animal}instances: []}]}
}Process finished with exit code 0

名人识别

功能介绍:分析并识别图片中包含的敏感人物、明星及网红人物,返回人物信息及人脸坐标。

使用照片是网上的照片,仅作学习使用:
在这里插入图片描述

代码如下:

/*** @Version: 1.0.0* @Author: Dragon_王* @ClassName: RunCelebrityRecognitionSolution* @Description: 媒资标签* @Date: 2024/1/9 16:23*/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) {// 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全// 本示例以ak和sk保存在环境变量中来实现身份验证为例,运行本示例前请先在本地环境中设置环境变量HUAWEICLOUD_SDK_AK和HUAWEICLOUD_SDK_SKString ak = "你的AK";String sk = "你的SK";ICredential auth = new BasicCredentials().withAk(ak).withSk(sk);ImageClient client = ImageClient.newBuilder().withCredential(auth).withRegion(ImageRegion.valueOf("cn-north-4"))  //此处替换为您开通服务的区域.build();RunCelebrityRecognitionRequest request = new RunCelebrityRecognitionRequest();CelebrityRecognitionReq body = new CelebrityRecognitionReq();body.withThreshold(0f);body.withUrl("https://tse1-mm.cn.bing.net/th/id/OIP-C.tM6jifW1xaCDP7Kia9QiYwHaKD?rs=1&pid=ImgDetMain");   //此处替换为公网可以访问的图片地址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());}}
}

运行结果:

200
{"httpStatusCode":200,"result":[{"confidence":0.9985551,"faceDetail":{"w":132,"h":186,"x":197,"y":79},"label":"成龙"}]}Process finished with exit code 0

总结

以上就是华为云的AI图像识别服务调用,这里提供官方文档

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/336833.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

cpolar 内网穿透 使用

cpolar 内网穿透 使用 官网地址&#xff1a;https://www.cpolar.com/ 官网文档&#xff1a;https://www.cpolar.com/blog/cpolar-quick-start-tutorial-centos-series 获取隧道Authtoken&#xff1a;https://dashboard.cpolar.com/auth 步骤 1、先去注册 在这个地方注册&…

[ 机器学习 ] 关于Jupyter Notebook中pytorch模块import失败的问题

0x01、问题描述 在使用WSL搭建Jupyter进行代码测试的时候 发现Miniconda&#xff08;虚拟环境均适用&#xff09;中安装的pytorch在Jupyter里面import失败 但在python解释器的命令模式里可以测试import成功 并且torch.cuda_available()打印True 以前用的是IDEA没怎么用Jup…

模仿Activiti工作流自动建表机制,实现Springboot项目启动后自动创建多表关联的数据库与表的方案

文/朱季谦 熬夜写完&#xff0c;尚有不足&#xff0c;但仍在努力学习与总结中&#xff0c;而您的点赞与关注&#xff0c;是对我最大的鼓励&#xff01; 在一些本地化项目开发当中&#xff0c;存在这样一种需求&#xff0c;即开发完成的项目&#xff0c;在第一次部署启动时&…

Qt之有趣的数字钟

一.效果 基于网络代码修改,支持时、分、秒;支持滑动、翻页和旋转。 二.实现 #include <QtCore> #include <QPainter> #include <QAction> #include <QWidget> #include <QMainWindow> #include <QTimer> #include <QKeyEvent> #…

【一竞技DOTA2】MinD_ContRoL加盟Tundra

1、近日Tundra战队正式官宣MinD_ContRoL加入队伍。他此前效力于Nigma战队,在离队不久后他便做出了加入Tundra战队的选择,借此他也成为了Tundra Esports战队已官宣了的阵容中的第四名选手。 2、Bleed战队正式官宣Mikoto和poloson加入战队。 Mikoto曾效力于东南亚赛区的Talon战队…

深度解析高防产品---高防CDN

高防CDN是一种基于云计算技术的网络安全防御系统&#xff0c;通过在全球范围内部署多个节点&#xff0c;实现对网站内容的加速和保护。其主要作用和功能包括安全防护、加速访问、跨运营商、跨地域的全网覆盖、提高网站的稳定性以及节约成本。高防CDN可以有效地解决不同地区的网…

阿里云实时计算企业级状态存储引擎 Gemini 技术解读

本文整理自阿里云 Flink 存储引擎团队李晋忠&#xff0c;兰兆千&#xff0c;梅源关于阿里云实时计算企业级状态存储引擎 Gemini 的研究&#xff0c;内容主要分为以下五部分&#xff1a; 流计算状态访问的痛点企业级状态存储引擎GeminiGemini 性能评测&线上表现结语参考 一、…

AArch64 Exception Model学习

提示 该博客主要为个人学习&#xff0c;通过阅读官网手册整理而来&#xff08;个人觉得阅读官网的英文文档非常有助于理解各个IP特性&#xff09;。若有不对之处请参考参考文档&#xff0c;以官网文档为准。 1 Privilege and Exception Levels 1.1 为什么要划分权限&#xf…

# 大模型实战作业02

大模型实战作业02 知识库助手搭建 注 有些问题在回答的时候可能出现乱码的情况 可能的原因 模型内部提示词知识库 这部分可以做适当的优化&#xff0c;对于无法回答或回答质量不佳的回答返回特定话术提升用户体验

(一)Spring Cloud 直击微服务作用、架构应用、hystrix降级

直击微服务作用 微服务架构: 遇到了什么问题? 将单体架构拆分成微服务架构后,如果保证多个服务(项目)正常运行? 哪个技术可以解决这个问题? 微服务技术 服务治理: 服务管理,维护服务与服务之间的关系 这个技术如何使用? netflix/网…

c语言:输入成绩,统计不及格人数|练习题

一、题目 输入学生成绩&#xff0c;统计不及格的学生人数 二、代码截图【带注释】 三、源代码【带注释】 #include <stdio.h> //题目&#xff1a;输入成绩&#xff0c;统计不及格人数 //思考分析 //1、由于学生人数是未知数&#xff0c;所以可以在输入时&#xff0c;以0…

vue2源码解析之第一步(对数据进行劫持)

###环境搭建 第一步 创建项目&#xff1a; npm init -y 第二步 安装对应的插件&#xff1a; npm i rollup rollup-plugin-babel babel/core babel/preset-env --save-dev 第三步 全局下创建rollup配置文件 rollup.config.js import babel from rollup-plug…