前两篇说了AI识别的准备和录入到腾讯云里,接下来我们就来编写一个从人脸库进行识别的功能,老样子那第一篇摄像头那里拉图片。因为有第二篇拉依赖库,这里就不在叙述了。直接来代码了。。
public static String Find_Person(String GroupId,String IMG_Base64){
String Return_str="";
try
{
Credential cred = new Credential(SecretId, SecretKey);
HttpProfile httpProfile = new HttpProfile();
httpProfile.setEndpoint("iai.tencentcloudapi.com");
ClientProfile clientProfile = new ClientProfile();
clientProfile.setHttpProfile(httpProfile);
IaiClient client = new IaiClient(cred, "", clientProfile);
String params = "{\"GroupIds\":[\""+GroupId+"\"],\"Image\":\""+IMG_Base64+"\",\"MaxPersonNum\":1}";
SearchFacesRequest req = SearchFacesRequest.fromJsonString(params, SearchFacesRequest.class);
SearchFacesResponse resp = client.SearchFaces(req);
Return_str=CreatePersonRequest.toJsonString(resp);
} catch (TencentCloudSDKException e) {
Return_str="error";
}
return Return_str;
}
这个就是根据输入的数据进行查询的。
如果正常,返回的将是多长JSON数据
"{\"FaceModelVersion\":\"3.0\",\"FaceNum\":8,\"RequestId\":\"ec774481-52ac-4cbb-9d6a-11c35503da09\",\"Results\":[{\"Candidates\":[{\"FaceId\":\"3525893998528970078\",\"PersonId\":\"20200227094052\",\"Score\":100.0}],\"FaceRect\":{\"Height\":262,\"Width\":190,\"X\":321,\"Y\":24},\"RetCode\":0}]}";
先判断RetCode是否为0,0为正常的,不是0则自己去查吧,为0然后再查Results下的Candidates,我这里为了尽可能简单,就放1条记录,然后Score就是匹配度,PersonId就是返回的人员ID。
至此,我们就完成简单的AI识别功能人员。最后放出解释多层JSON的代码吧。。。
JsonObject jsonObject =(JsonObject) new JsonParser().parse(JSON);//取原始层
String data = jsonObject.get("Results").toString().replace("[","").replace("]","");//取掉外层
JsonObject Results_obj =(JsonObject) new JsonParser().parse(data);//再转Results层
String RetCode=Results_obj.get("RetCode").toString();//拿到RetCode=0表示正常
String Candidates=Results_obj.get("Candidates").toString();//拿到Candidates
JsonObject Score_obj =(JsonObject) new JsonParser().parse(Candidates);//再转Candidates
String Score=Score_obj.get("Score").toString();
应该可以更简单的,但暂时就这样。。青山不改,绿水长流,后会有期。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。