当前位置: 代码网 > it编程>编程语言>Java > 华为云AI:轻松实现图像识别调用

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

2024年08月06日 Java 我要评论
基于华为云AI服务和java使用SDK实现图像识别,主要以媒资图像标签和名人识别为例。以上就是华为云的AI图像识别服务调用,这里提供官方文档。


前言

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


一、环境配置

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

关键步骤

开通图像识别服务
华为云首页就有云产品体验区(找不到就在搜索栏检索),勾选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.63
            type: 动物
            tag: 金毛犬
            i18ntag: class imagemediataggingitembodyi18ntag {
                zh: 金毛犬
                en: golden retriever
            }
            i18ntype: class imagemediataggingitembodyi18ntype {
                zh: 动物
                en: animal
            }
            instances: []
        }, class imagemediataggingitembody {
            confidence: 81.78
            type: 动物
            tag: 金毛
            i18ntag: class imagemediataggingitembodyi18ntag {
                zh: 金毛
                en: golden hair
            }
            i18ntype: class imagemediataggingitembodyi18ntype {
                zh: 动物
                en: animal
            }
            instances: []
        }, class imagemediataggingitembody {
            confidence: 77.00
            type: 动物
            tag: 金毛寻猎犬
            i18ntag: class imagemediataggingitembodyi18ntag {
                zh: 金毛寻猎犬
                en: golden retriever
            }
            i18ntype: class imagemediataggingitembodyi18ntype {
                zh: 动物
                en: animal
            }
            instances: []
        }, class imagemediataggingitembody {
            confidence: 62.60
            type: 动物
            tag: 贵妇犬
            i18ntag: class imagemediataggingitembodyi18ntag {
                zh: 贵妇犬
                en: poodle
            }
            i18ntype: class imagemediataggingitembodyi18ntype {
                zh: 动物
                en: animal
            }
            instances: []
        }, class imagemediataggingitembody {
            confidence: 59.02
            type: 生活
            tag: 狗链
            i18ntag: class imagemediataggingitembodyi18ntag {
                zh: 狗链
                en: dog chain
            }
            i18ntype: class imagemediataggingitembodyi18ntype {
                zh: 生活
                en: life
            }
            instances: []
        }, class imagemediataggingitembody {
            confidence: 53.84
            type: 动物
            tag: 宠物狗
            i18ntag: class imagemediataggingitembodyi18ntag {
                zh: 宠物狗
                en: pet dog
            }
            i18ntype: class imagemediataggingitembodyi18ntype {
                zh: 动物
                en: animal
            }
            instances: []
        }, class imagemediataggingitembody {
            confidence: 48.01
            type: 动物
            tag: 狗狗
            i18ntag: class imagemediataggingitembodyi18ntag {
                zh: 狗狗
                en: dog
            }
            i18ntype: class imagemediataggingitembodyi18ntype {
                zh: 动物
                en: animal
            }
            instances: []
        }, class imagemediataggingitembody {
            confidence: 44.02
            type: 动物
            tag: 犬
            i18ntag: class imagemediataggingitembodyi18ntag {
                zh: 犬
                en: dog
            }
            i18ntype: class imagemediataggingitembodyi18ntype {
                zh: 动物
                en: animal
            }
            instances: []
        }, class imagemediataggingitembody {
            confidence: 42.11
            type: 动物
            tag: 纯种犬
            i18ntag: class imagemediataggingitembodyi18ntag {
                zh: 纯种犬
                en: purebred dog
            }
            i18ntype: class imagemediataggingitembodyi18ntype {
                zh: 动物
                en: animal
            }
            instances: []
        }, class imagemediataggingitembody {
            confidence: 38.65
            type: 动物
            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_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();
        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图像识别服务调用,这里提供官方文档

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com