package com.sinata.rest.core.huawei.ivs;
|
|
import cn.hutool.core.codec.Base64Encoder;
|
import cn.hutool.core.io.FileUtil;
|
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.ivs.v2.region.IvsRegion;
|
import com.huaweicloud.sdk.ivs.v2.*;
|
import com.huaweicloud.sdk.ivs.v2.model.*;
|
import com.sinata.rest.core.huawei.HuaWeiConfig;
|
|
import java.util.List;
|
import java.util.ArrayList;
|
import java.util.UUID;
|
|
public class DetectStandardByNameAndIdSolution {
|
|
public static void main(String[] args) {
|
String encode = Base64Encoder.encode(FileUtil.readBytes("D:\\www\\test.jpg"));
|
System.out.println(encode);
|
|
String similarity = similarity("xx", "500xxxxxxxxxxxxxx", encode);
|
System.out.println(similarity);
|
}
|
|
public static String similarity(String verificationName, String verificationId, String faceImageBase64) {
|
String similarity = "0";
|
try {
|
DetectStandardByNameAndIdResponse response = request(verificationName, verificationId, faceImageBase64);
|
similarity = response.getResult().getRespData().get(0).getSimilarity();
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
return similarity;
|
}
|
|
public static DetectStandardByNameAndIdResponse request(String verificationName, String verificationId, String faceImage) {
|
String ak = HuaWeiConfig.AK;
|
String sk = HuaWeiConfig.SK;
|
|
ICredential auth = new BasicCredentials()
|
.withAk(ak)
|
.withSk(sk);
|
|
IvsClient client = IvsClient.newBuilder()
|
.withCredential(auth)
|
.withRegion(IvsRegion.valueOf("cn-north-4"))
|
.build();
|
DetectStandardByNameAndIdRequest request = new DetectStandardByNameAndIdRequest();
|
IvsStandardByNameAndIdRequestBody body = new IvsStandardByNameAndIdRequestBody();
|
List<StandardReqDataByNameAndId> listDataReqData = new ArrayList<>();
|
listDataReqData.add(
|
new StandardReqDataByNameAndId()
|
.withVerificationName(verificationName)
|
.withVerificationId(verificationId)
|
.withFaceImage(faceImage)
|
);
|
IvsStandardByNameAndIdRequestBodyData databody = new IvsStandardByNameAndIdRequestBodyData();
|
databody.withReqData(listDataReqData);
|
Meta metabody = new Meta();
|
metabody.withUuid(UUID.randomUUID().toString());
|
body.withData(databody);
|
body.withMeta(metabody);
|
request.withBody(body);
|
try {
|
DetectStandardByNameAndIdResponse response = client.detectStandardByNameAndId(request);
|
System.out.println(response.toString());
|
return 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.getRequestId());
|
System.out.println(e.getErrorCode());
|
System.out.println(e.getErrorMsg());
|
}
|
return null;
|
}
|
}
|