• [教程] 轻松搞定图像识别调用
    前言基于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.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图像识别服务调用,这里提供官方文档
  • [问题求助] 鸿蒙开发使用ets语言,目前没有可用的对象存储服务sdk
    鸿蒙开发使用ets语言,目前没有可用的对象存储服务sdk,因为后续鸿蒙开发者会越来越多,希望增加一下
  • [问题求助] 【java-sdk】使用obs的并发分段上传比直接上传速度还慢
    您好,我在使用OBS javasdk的文件上传API,使用中,我发现,对于大文件,使用官方提供的并发上传文件示例,比直接调 putObject方法速度还慢,具体代码如下:1.并发分段上传代码官方示例https://support.huaweicloud.com/sdk-java-devg-obs/obs_21_0607.html2.调用 putObject 上传文件public SaveObjectResult saveObject(String bucket, String objectKey, MultipartFile file) throws Exception { // 校验桶名称是否正确 bucket = checkBucketName(bucket); InputStream in = file.getInputStream(); SaveObjectResult saveObjectResult = new SaveObjectResult(); saveObjectResult.setOk(Boolean.FALSE); saveObjectResult.setStorageMediaType(OSSTypeEnum.OBS.name()); PutObjectResult putObjectResult = getClient().putObject(bucket, objectKey, in); if (putObjectResult != null && putObjectResult.getStatusCode() == HttpStatus.HTTP_OK) { saveObjectResult.setOk(Boolean.TRUE); saveObjectResult.setAccessUrl(putObjectResult.getObjectUrl()); } return saveObjectResult; }此处直接使用ObsCLient 的 PutObjectResult putObject(String bucketName, String objectKey, InputStream input) 方法。测试结果发现,使用并发分段上传,并没有节省时间,反而比直接使用putObject还慢,为什么会这样?怎么优化,才能让上传更快?
  • [问题求助] 使用keil软件编译器,不识别#pragma section 指令
    开发环境:keil软件使用#pragma section  指定内存地址#pragma section (".cal_data") volatile const float c_fRT1PedLatDist = 1.8F; volatile const float c_fCmsFldValveFreq = 1000; volatile const float c_fCmsFldValveDuty = 0; #pragma (section)编译报错../Core/Src/main.c(34): warning: #161-D: unrecognized #pragma #pragma arm section (".cal_data") ../Core/Src/main.c(38): warning: #161-D: unrecognized #pragma #pragma (section) ../Core/Src/main.c: 2 warnings, 0 errors linking... Program Size: Code=26572 RO-data=1356 RW-data=512 ZI-data=29464 FromELF: creating hex file... "pa2_0_min_sys\pa2_0_min_sys.axf" - 0 Error(s), 2 Warning(s). Build Time Elapsed: 00:00:04 Your Code
  • [问题求助] IAM Token所在用户怎么订阅设备接入服务
    请问一下IAM Token所在用户怎么订阅设备接入服务呀?小程序获取token之后获取设备影子报错403
  • [问题求助] 【AppCube】【ROMA】关于在开发试用环境开发安防问题
    目前需要定制化开发智慧安防基线服务,有以下疑问,请大佬们帮忙解答下:1.目前在用的是开发试用环境,要想进入多账号开发,是否需要申请购买开发环境?2.园区平台有基线应用demo:智慧安防,想基于这个基线应用定制化开发,该demo哪里可以申请到?需要走什么流程?3.安防中用到的摄像头等设备,在开发环境是否可以 提供 接入真实设备进行测试,如果不能,园区平台是否可以提供模拟设备进行,摄像头相关场景测试开发?4.关于摄像头视频这块,是否可以通过AppCube+ROMA+IOT就可以接入,进行视频实时查看?如果不能,是否有相应解决方案,比如是否需要购买华为哪款视频服务来做支撑?5.通过link sdk直接摄像头这种方案,sdk包 在哪里可以下载,需要走什么流程可以拿到相应sdk和试用文档?6.南向系统集成相关sdk和二次集成开发文档哪里可以申请到,帮忙给一个链接?以上问题,还请 各位大佬 帮忙解答下,谢谢!
  • [问题求助] 如何对媒体流保活,能通过API来让媒体流保活吗
    如何对媒体流保活,能通过API来让媒体流保活吗,翻了文档没找到哪里说保活,只说支持keepalive。
  • [问题求助] 帖子里的box.huaweicloud开头的链接访问不了?这个怎么解决啊?
    帖子里的box.huaweicloud开头的链接访问不了?这个怎么解决啊?有没有大佬知道的?
  • [问题求助] obs 分片上传如何指定文件夹目录,目前上传的是只能在桶的根目录下
    目前上传的是只能在桶的根目录下,使用的uploadPartRequest.setObjectKey("文件夹/文件名");报错。详情如下:ResponseStatus: Bad Request, XML Error Message: <?xml version="1.0" encoding="UTF-8" standalone="yes"?><Error><Code>MalformedXML</Code><Message>The XML you provided was not well-formed or did not validate against our published schema</Message><RequestId>XXXX</RequestId><HostId>XXXX</HostId></Error> 请问在使用分段上传的时候是在哪个地方设置路径呢?
  • [问题求助] 上传的断点续传功能,可以获取到UploadId吗
    上传大文件,采用断点续传的api,需要在开启上传前获得uploadId,可以像分段上传的api那样,初始化时可以获得UploadId吗,
  • [课程学习] 旧版本的WeAutomate设计器在哪里下载,以及AntRobot设计器在哪下载
    旧版本的WeAutomate设计器在哪里下载,以及AntRobot设计器在哪下载
  • [问题求助] obs 删除对象不成功
    // Endpoint以北京四为例,其他地区请按实际情况填写。 String endPoint = "https://obs.cn-north-4.myhuaweicloud.com"; String ak = "*** Provide your Access Key ***"; String sk = "*** Provide your Secret Key ***"; // 创建ObsClient实例 ObsClient obsClient = new ObsClient(ak, sk, endPoint); obsClient.deleteObject("bucketname", "objectname");使用这种方式删除对象不成功,返回信息:DeleteObjectResult [deleteMarker=false, objectKey=obj-test-sg-3, versionId=null],删除对象要如何操作?
  • [问题求助] 获取文件上传进度问题
    上传进度显示百分之百之后并没有上传成功,反而要等好久才会上传成功,期间也没有报错,不知道是什么问题
  • [问题求助] 本地电脑可以直接获取到摄像机里的视频数据嘛?
    1、C2150-10-SIU型号的摄像机,设定好录像计划,视频是存在sd卡里的,有没有api或者其他方式(java开发,代码写协议?),可以直接拿到视频流?需要用到视频流做后续的开发。2、后台web页面有录像回放,可以查到sd卡里的视频信息并且播放出来,就类似于这个操作
  • [课程学习] 基于MindX SDK的中文语音识别推理实验--swjtu寒假特别版
    关于 基于MindX SDK的中文语音识别推理实验 这个实验,首先是完成ECS环境搭建,再次推荐大家去看昇腾官方视频,里面有详细的步骤,我看的是B站的视频,在此把视频链接放出来,大家可以去看一下【【昇腾小姐姐教你趣味实验】昇腾工业质检应用实践】 https://www.bilibili.com/video/BV1ir4y1V7aK/?p=11&share_source=copy_web&vd_source=df5a85a5c10967c9daaf8538d21c2219 需要看P11-P13三节视频,视频中有一个mxvision的安装,在本实验也是必须的,在此方式百度云链接,大家可以自行下载,官方也有3.0版本,我的是2.0.3版本 链接:https://pan.baidu.com/s/12o6lZmhJ60NAYgKk8Mg6-A 提取码:4e3y注:由于老师发的文档里面并没有相应的安装代码,所以我自己准备了一份在附件里面,大家可以自行下载,但是一定要跟着视频做,以免出错。在环境安装好之后,根据老师的文档里面做就可以,在mobaxterm里面将文件解压和部分环境搭建完成 在此也放上官方视频 【【昇腾小姐姐教你趣味实验】基于MindX SDK的中文语音识别推理实验】 https://www.bilibili.com/video/BV1Xe4y1f7tU/?share_source=copy_web&vd_source=df5a85a5c10967c9daaf8538d21c2219 跟着视频里面做就可以。接下来是针对大家可能遇到的问题(其实是我遇到的问题)提供一些解决方案,亲测有效首先是可能遇到的No module named xxx 的问题(1)如果是MxpiDataType_pb2、或者_StreamManagerApi.so,那么就是环境变量问题,你需要修改环境变量,也就是/root/AutoSpeechRecognition/目录下的rush.sh文件中的PYTHONPATH,在此附上截图,但是mxvision2.0.3版本貌似不需要修改直接可以调用,mxvision3.0版本修改后有用。(2)如果是_bz2、_lzma等,可以采用类似下列的代码修改,在此附上我查到的帖子链接http://t.csdn.cn/a7Hn8cd /usr/local/python3.7.5/lib/python3.7/lib-dynload sudo cp /usr/lib/python3.6/lib-dynload/_lzma.cpython-36m-x86_64-linux-gnu.so ./sudo mv _lzma.cpython-36m-x86_64-linux-gnu.so _lzma.cpython-37m-x86_64-linux-gnu.so还有cannot load library ‘xxx.so‘的问题,这个直接用下面代码就行,但是建议是放在/usr/local/python3.7.5/lib/python3.7/lib-dynload目录下面,你可以先cd一手,切换到该目录apt install libsndfile1以上便是我对这个实验的一些见解,希望能帮到大家。祝大家生活愉快!