云服务、API、SDK,调试,查看,我都行

浏览短文您能够学习到:人工智能AI人脸的辨认、检测、搜寻、比对

1、IntelliJ IDEA 之API插件介绍

API插件反对 VS Code IDE、IntelliJ IDEA等平台、以及华为云自研 CodeArts IDE,基于华为云服务提供的能力,帮忙开发者更高效、便捷的搭建利用。API插件关联华为云服务下的 API Explorer、DevStar、CodeLabs、SDK 核心和 CLI 核心产品,致力于为开发者提供更稳固、疾速、平安的编程体验。

在本插件中,咱们提供了但不局限于如下的性能:

对接华为云API开放平台,反对用户检索API、查看API文档、调试API、以及提供SDK示例代码供用户学习如何应用API。

提供华为云SDK代码片段补全性能,SDK依赖包主动引入,减速用户集成华为云API。

对接华为云开发体验馆Codelabs,提供500+云服务代码示例,向导式教程帮忙用户疾速学习。

阐明:

在IntelliJ IDEA等系列平台和VS Code IDE,华为云API插件的名称是Huawei Cloud API。而在CodeArts IDE,API插件是IDE原生内置的,名称是华为云API开发套件。

API插件在IntelliJ IDEA等系列平台和VS Code IDE的应用依赖底座插件,请提前装置底座插件。

2、API插件装置--IntelliJ IDEA

2.1 IntelliJ IDEA等平台

装置筹备:下载并装置JDK1.8或更高版本。下载并装置IntelliJ IDEA 2020.2或更高版本。

须知:IntellIj平台同时撑持包含Goland、Pycharm等在内的IDE,若在其它相干IDE上开发,请下载配置好对应语言的编译器或者解释器。这里以IDEA为例介绍IntelliJ平台插件的装置流程,其余IntelliJ系列的IDE请参考IDEA。

开始装置:

您能够在间接在IDE插件市场或者间接在JetBrains插件市场下载离线包装置。

https://developer.huaweicloud.com/develop/toolkit.html

IDE装置

  1. 在IntelliJ IDEA顶部菜单栏中抉择File > Settings,在Settings对话框的左侧导航栏中单击Plugins。
  2. Plugins区域单击Marketplace,在搜寻栏中输出Huawei Cloud API。
  3. Search Results区域会呈现Huawei Cloud API,单击Install,实现后重启IDE。

离线包装置:

  1. 进入插件市场搜寻Huawei Cloud API,进入插件详情页,在Versions页签下抉择想要版本的API插件,点击Download下载离线的插件压缩包保留到本地。。
  2. 在IntelliJ IDEA顶部菜单栏中抉择File > Settings,在Settings对话框的左侧导航栏中单击Plugins。
  3. 在Plugins区域单击 ,再单击Install Plugin from Disk...。
  4. 在Choose Plugin File对话框中抉择离线安装包(不必解压),并依照IntelliJ IDEA装置页面的提醒,实现后续装置步骤。

阐明:若以后您想要装置插件的IntelliJ IDE曾经在桌面关上,则进入插件市场搜寻Huawei Cloud API,进入插件详情页,在右上角会辨认到本地曾经关上的IDE,点击相应按钮,在弹出的IDE窗口中点击ok,则IDE后盾会开始装置相应版本的API插件。

装置验证:在IntelliJ系列平台上装置插件胜利后在左侧的导航栏中能够看到Huawei Cloud Toolkit图标,点击后面板会呈现Huawei Cloud API的字样,则阐明装置胜利。

2.2 华为云API

https://developer.huaweicloud.com/develop/toolkit.html

左侧展现API列表,能够查问所有API,目前云服务206,APIs9213

3、抓住偷偷藏不住的你

3.1 后期筹备

华为云提供了人脸识别服务端SDK,您能够间接集成服务端SDK来调用人脸识别服务的相干API,从而实现对人脸识别服务的疾速操作。

该示例展现了如何通过Java版SDK实现人脸识别。

开发前筹备:

  • 已注册华为云,并实现实名认证 。
  • 已订阅人脸识别服务。
  • 已具备开发环境,反对Java JDK 1.8及其以上版本。
  • 已获取华为云账号对应的Access Key(AK)和Secret Access Key(SK)。请在华为云控制台“我的凭证 > 拜访密钥”页面上创立和查看您的AK/SK。具体请参见 拜访密钥 。
  • 已获取直播服务对应区域的我的项目ID,请在华为云控制台“我的凭证 > API凭证”页面上查看我的项目ID。具体请参见 API凭证。

装置SDK:

您能够通过Maven配置所依赖的人脸识别服务SDK

<dependency>    <groupId>com.huaweicloud.sdk</groupId>    <artifactId>huaweicloud-sdk-frs</artifactId>    <version>3.1.19</version></dependency>

开始应用:

导入依赖模块

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;

//v2版本sdk

import com.huaweicloud.sdk.frs.v2.region.FrsRegion;import com.huaweicloud.sdk.frs.v2.*;import com.huaweicloud.sdk.frs.v2.model.*;

初始化认证信息

public static ICredential getCredential(String ak, String sk) {    return new BasicCredentials()            .withAk(ak)            .withSk(sk);}

相干参数阐明如下所示:

ak:华为云账号Access Key。

sk:华为云账号Secret Access Key 。

初始化人脸识别服务的客户端

public static FrsClient getClient(Region region, ICredential auth) {    // 初始化人脸识别服务的客户端    return FrsClient.newBuilder()            .withCredential(auth)            .withRegion(region) // 抉择服务所在区域 FrsRegion.CN_NORTH_4            .build();}

相干参数阐明如下所示:

service region: 服务所在区域,例如:

CN_NORTH_1 北京一

CN_NORTH_4 北京四

SDK demo代码解析

3.2 人脸识别/检测

DetectFaceByBase64Request detectRequest = new DetectFaceByBase64Request();FaceDetectBase64Req faceDetectBase64Req = new FaceDetectBase64Req();faceDetectBase64Req.withImageBase64("/9j/4AAQSkZJRgABAQAAAQABAAD...");faceDetectBase64Req.withAttributes("2");detectRequest.setBody(faceDetectBase64Req);try {    DetectFaceByBase64Response detectResponse = client.detectFaceByBase64(detectRequest);    System.out.println(detectResponse.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());}3.2.1    人脸比对CompareFaceByBase64Request compareRequest = new CompareFaceByBase64Request();FaceCompareBase64Req faceCompareBase64Req = new FaceCompareBase64Req();faceCompareBase64Req.withImage1Base64("/9j/4AAQSkZJRgABAQAAAQABAAD...");faceCompareBase64Req.withImage2Base64("/9j/4AAQSkZJRgABAQAAAQABAAD...");compareRequest.withBody(faceCompareBase64Req);try {    CompareFaceByBase64Response compareResponse = client.compareFaceByBase64(compareRequest);    System.out.println(compareResponse.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());}

3.2.2 人脸搜寻

SearchFaceByBase64Request searchRequest = new SearchFaceByBase64Request();searchRequest.withFaceSetName("face_set_name");FaceSearchBase64Req faceSearchBase64Req = new FaceSearchBase64Req();List<Map<String, String>> listbodySort = new ArrayList<>();Map<String, String> map = new HashMap<>();map.put("timestamp","asc");listbodySort.add(map);List<String> listbodyReturnFields = new ArrayList<>();listbodyReturnFields.add("timestamp");listbodyReturnFields.add("id");faceSearchBase64Req.withSort(listbodySort);faceSearchBase64Req.withReturnFields(listbodyReturnFields);faceSearchBase64Req.withImageBase64("/9j/4AAQSkZJRgABAQAAAQABAAD...");searchRequest.withBody(faceSearchBase64Req);try {    SearchFaceByBase64Response searchResponse = client.searchFaceByBase64(searchRequest);    System.out.println(searchResponse.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());}

创建人脸库

CreateFaceSetRequest createFaceSetRequest = new CreateFaceSetRequest();CreateFaceSetReq createFaceSetReq = new CreateFaceSetReq();createFaceSetReq.withFaceSetName("face_set_name");Map<String, TypeInfo> stringTypeInfoMap = new HashMap<>();TypeInfo typeInfo = new TypeInfo();typeInfo.withType("long");stringTypeInfoMap.put("timestamp", typeInfo);createFaceSetReq.withExternalFields(stringTypeInfoMap);createFaceSetRequest.withBody(createFaceSetReq);try {    CreateFaceSetResponse createFaceSetResponse = client.createFaceSet(createFaceSetRequest);    System.out.println(createFaceSetResponse.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());}

查问人脸库

ShowFaceSetRequest showFaceSetRequest = new ShowFaceSetRequest();showFaceSetRequest.withFaceSetName("face_set_name");try {    ShowFaceSetResponse showFaceSetResponse = client.showFaceSet(showFaceSetRequest);    System.out.println(showFaceSetResponse.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());}

查问所有人脸库

ShowAllFaceSetsRequest showAllFaceSetsRequest = new ShowAllFaceSetsRequest();try {    ShowAllFaceSetsResponse showAllFaceSetsResponse = client.showAllFaceSets(showAllFaceSetsRequest);    System.out.println(showAllFaceSetsResponse.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());}

删除人脸库

DeleteFaceSetRequest deleteFaceSetRequest = new DeleteFaceSetRequest();deleteFaceSetRequest.withFaceSetName("face_set_name");try {    DeleteFaceSetResponse deleteFaceSetResponse = client.deleteFaceSet(deleteFaceSetRequest);    System.out.println(deleteFaceSetResponse.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());}

增加人脸

//add faceAddFacesByBase64Request addFacesByBase64Request = new AddFacesByBase64Request();addFacesByBase64Request.withFaceSetName("face_set_name");AddFacesBase64Req addFacesBase64Req = new AddFacesBase64Req();addFacesBase64Req.withExternalFields("{"timestamp":12}");addFacesBase64Req.withImageBase64("9j/4AAQSkZJRgABAQAAAQABAAD...");addFacesByBase64Request.withBody(addFacesBase64Req);try {    AddFacesByBase64Response addFacesByBase64Response = client.addFacesByBase64(addFacesByBase64Request);    System.out.println(addFacesByBase64Response.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());}

删除人脸

//delete face by faceIdDeleteFaceByFaceIdRequest deleteFaceByFaceIdRequest = new DeleteFaceByFaceIdRequest();deleteFaceByFaceIdRequest.withFaceSetName("face_set_name");deleteFaceByFaceIdRequest.withFaceId("iexEBb6t");try {    DeleteFaceByFaceIdResponse deleteFaceByFaceIdResponse = client.deleteFaceByFaceId(deleteFaceByFaceIdRequest);    System.out.println(deleteFaceByFaceIdResponse.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());}

批量删除人脸

BatchDeleteFacesRequest batchDeleteFacesRequest = new BatchDeleteFacesRequest();batchDeleteFacesRequest.withFaceSetName("face_set_name");DeleteFacesBatchReq deleteFacesBatchReq = new DeleteFacesBatchReq();deleteFacesBatchReq.withFilter("age:[20 TO 30]");batchDeleteFacesRequest.withBody(deleteFacesBatchReq);try {    BatchDeleteFacesResponse batchDeleteFacesResponse = client.batchDeleteFaces(batchDeleteFacesRequest);    System.out.println(batchDeleteFacesResponse.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());}

更新人脸

UpdateFaceRequest updateFaceRequest = new UpdateFaceRequest();updateFaceRequest.withFaceSetName("face_set_name");UpdateFaceReq updateFaceReq = new UpdateFaceReq();updateFaceReq.withFaceId("iexEBb6t");updateFaceRequest.withBody(updateFaceReq);try {    UpdateFaceResponse response = client.updateFace(updateFaceRequest);    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());}

查问人脸

//show faces by faceIdShowFacesByFaceIdRequest showFacesByFaceIdRequest = new ShowFacesByFaceIdRequest();showFacesByFaceIdRequest.withFaceSetName("face_set_name");showFacesByFaceIdRequest.withFaceId("iexEBb6t");try {    ShowFacesByFaceIdResponse response = client.showFacesByFaceId(showFacesByFaceIdRequest);    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());}

 

3.3 活体辨认/检测

3.3.1 动作活体检测

//detect live by base64DetectLiveByBase64Request request = new DetectLiveByBase64Request();LiveDetectBase64Req body = new LiveDetectBase64Req();body.withActions("1,2,3,4");body.withVideoBase64("/9j/4AAQSkZJRgABAQAAAQABAAD...");request.withBody(body);try {    DetectLiveByBase64Response response = client.detectLiveByBase64(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());}

 

3.3.2默活体检测

//detect live face by base64DetectLiveFaceByBase64Request request = new DetectLiveFaceByBase64Request();LiveDetectFaceBase64Req body = new LiveDetectFaceBase64Req();body.withImageBase64("/9j/4AAQSkZJRgABAQAAAQABAAD...");request.withBody(body);try {    DetectLiveFaceByBase64Response response = client.detectLiveFaceByBase64(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());}

3.4人脸搜寻

SearchFaceByBase64Request searchRequest = new SearchFaceByBase64Request();searchRequest.withFaceSetName("face_set_name");FaceSearchBase64Req faceSearchBase64Req = new FaceSearchBase64Req();List<Map<String, String>> listbodySort = new ArrayList<>();Map<String, String> map = new HashMap<>();map.put("timestamp","asc");listbodySort.add(map);List<String> listbodyReturnFields = new ArrayList<>();listbodyReturnFields.add("timestamp");listbodyReturnFields.add("id");faceSearchBase64Req.withSort(listbodySort);faceSearchBase64Req.withReturnFields(listbodyReturnFields);faceSearchBase64Req.withImageBase64("/9j/4AAQSkZJRgABAQAAAQABAAD...");searchRequest.withBody(faceSearchBase64Req);try {    SearchFaceByBase64Response searchResponse = client.searchFaceByBase64(searchRequest);    System.out.println(searchResponse.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());}

3.5 人脸比对

CompareFaceByBase64Request compareRequest = new CompareFaceByBase64Request();FaceCompareBase64Req faceCompareBase64Req = new FaceCompareBase64Req();faceCompareBase64Req.withImage1Base64("/9j/4AAQSkZJRgABAQAAAQABAAD...");faceCompareBase64Req.withImage2Base64("/9j/4AAQSkZJRgABAQAAAQABAAD...");compareRequest.withBody(faceCompareBase64Req);try {CompareFaceByBase64Request compareRequest = new CompareFaceByBase64Request();FaceCompareBase64Req faceCompareBase64Req = new FaceCompareBase64Req();faceCompareBase64Req.withImage1Base64("/9j/4AAQSkZJRgABAQAAAQABAAD...");faceCompareBase64Req.withImage2Base64("/9j/4AAQSkZJRgABAQAAAQABAAD...");compareRequest.withBody(faceCompareBase64Req);try {    CompareFaceByBase64Response compareResponse = client.compareFaceByBase64(compareRequest);    System.out.println(compareResponse.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());}    CompareFaceByBase64Response compareResponse = client.compareFaceByBase64(compareRequest);    System.out.println(compareResponse.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());}

4、偷偷藏不住的你

身份验证

应用人脸检测与比对性能,可进行身份核实,实用于机场、海关等物证合一验证场景。

电子考勤

人脸检测及比对性能实用于客户企业对员工进行电子考勤。

客流剖析

客流剖析对于商场具备重要价值。基于人脸识别、搜寻技术,帮忙客户精准营销。

5、参考文献

https://support.huaweicloud.com/usermanual-cbs/cbs_01_0029.html

https://console.huaweicloud.com/cbs/?region=cn-north-4#/cbs/m...

6、体验插件的魅力

华为云devkit已上线: