/* * Copyright (c) 2018 THL A29 Limited, a Tencent company. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ namespace TencentCloud.Bda.V20200324 { using Newtonsoft.Json; using System.Threading.Tasks; using TencentCloud.Common; using TencentCloud.Common.Profile; using TencentCloud.Bda.V20200324.Models; public class BdaClient : AbstractClient{ private const string endpoint = "bda.tencentcloudapi.com"; private const string version = "2020-03-24"; /// /// Client constructor. /// /// Credentials. /// Region name, such as "ap-guangzhou". public BdaClient(Credential credential, string region) : this(credential, region, new ClientProfile()) { } /// /// Client Constructor. /// /// Credentials. /// Region name, such as "ap-guangzhou". /// Client profiles. public BdaClient(Credential credential, string region, ClientProfile profile) : base(endpoint, version, credential, region, profile) { } /// /// 用于创建一个空的人体库,如果人体库已存在返回错误。 /// /// 1个APPID下最多有2000W个人体轨迹(Trace),最多1W个人体库(Group)。 /// /// 单个人体库(Group)最多10W个人体轨迹(Trace)。 /// /// 单个人员(Person)最多添加 5 个人体轨迹(Trace)。 /// /// /// public async Task CreateGroup(CreateGroupRequest req) { JsonResponseModel rsp = null; try { var strResp = await this.InternalRequest(req, "CreateGroup"); rsp = JsonConvert.DeserializeObject>(strResp); } catch (JsonSerializationException e) { throw new TencentCloudSDKException(e.Message); } return rsp.Response; } /// /// 用于创建一个空的人体库,如果人体库已存在返回错误。 /// /// 1个APPID下最多有2000W个人体轨迹(Trace),最多1W个人体库(Group)。 /// /// 单个人体库(Group)最多10W个人体轨迹(Trace)。 /// /// 单个人员(Person)最多添加 5 个人体轨迹(Trace)。 /// /// /// public CreateGroupResponse CreateGroupSync(CreateGroupRequest req) { JsonResponseModel rsp = null; try { var strResp = this.InternalRequestSync(req, "CreateGroup"); rsp = JsonConvert.DeserializeObject>(strResp); } catch (JsonSerializationException e) { throw new TencentCloudSDKException(e.Message); } return rsp.Response; } /// /// 创建人员,添加对应人员的人体轨迹信息。 /// /// 请注意: /// - 我们希望您的输入为 严格符合轨迹图片 要求的图片。如果您输入的图片不符合轨迹图片要求,会对最终效果产生较大负面影响。请您尽量保证一个Trace中的图片人体清晰、无遮挡、连贯; /// - 一个人体轨迹(Trace)可以包含1-5张人体图片。提供越多质量高的人体图片有助于提升最终识别结果; /// - 无论您在单个Trace中提供了多少张人体图片,我们都将生成一个对应的轨迹(Trace)信息。即,Trace仅和本次输入的图片序列相关,和图片的个数无关; /// - 输入的图片组中,若有部分图片输入不合法(如图片大小过大、分辨率过大、无法解码等),我们将舍弃这部分图片,确保合法图片被正确搜索。即,我们将尽可能保证请求成功,去除不合法的输入; /// - 构成人体轨迹单张图片大小不得超过2M,分辨率不得超过1920*1080。 /// /// /// public async Task CreatePerson(CreatePersonRequest req) { JsonResponseModel rsp = null; try { var strResp = await this.InternalRequest(req, "CreatePerson"); rsp = JsonConvert.DeserializeObject>(strResp); } catch (JsonSerializationException e) { throw new TencentCloudSDKException(e.Message); } return rsp.Response; } /// /// 创建人员,添加对应人员的人体轨迹信息。 /// /// 请注意: /// - 我们希望您的输入为 严格符合轨迹图片 要求的图片。如果您输入的图片不符合轨迹图片要求,会对最终效果产生较大负面影响。请您尽量保证一个Trace中的图片人体清晰、无遮挡、连贯; /// - 一个人体轨迹(Trace)可以包含1-5张人体图片。提供越多质量高的人体图片有助于提升最终识别结果; /// - 无论您在单个Trace中提供了多少张人体图片,我们都将生成一个对应的轨迹(Trace)信息。即,Trace仅和本次输入的图片序列相关,和图片的个数无关; /// - 输入的图片组中,若有部分图片输入不合法(如图片大小过大、分辨率过大、无法解码等),我们将舍弃这部分图片,确保合法图片被正确搜索。即,我们将尽可能保证请求成功,去除不合法的输入; /// - 构成人体轨迹单张图片大小不得超过2M,分辨率不得超过1920*1080。 /// /// /// public CreatePersonResponse CreatePersonSync(CreatePersonRequest req) { JsonResponseModel rsp = null; try { var strResp = this.InternalRequestSync(req, "CreatePerson"); rsp = JsonConvert.DeserializeObject>(strResp); } catch (JsonSerializationException e) { throw new TencentCloudSDKException(e.Message); } return rsp.Response; } /// /// 将一个人体轨迹添加到一个人员中。一个人员最多允许包含 5 个人体轨迹。同一人的人体轨迹越多,搜索识别效果越好。 /// /// >请注意: /// - 我们希望您的输入为 严格符合轨迹图片 要求的图片。如果您输入的图片不符合轨迹图片要求,会对最终效果产生较大负面影响。请您尽量保证一个Trace中的图片人体清晰、无遮挡、连贯。 /// - 一个人体轨迹(Trace)可以包含1-5张人体图片。提供越多质量高的人体图片有助于提升最终识别结果。 /// - 无论您在单个Trace中提供了多少张人体图片,我们都将生成一个对应的轨迹(Trace)信息。即,Trace仅和本次输入的图片序列相关,和图片的个数无关。 /// - 输入的图片组中,若有部分图片输入不合法(如图片大小过大、分辨率过大、无法解码等),我们将舍弃这部分图片,确保合法图片被正确搜索。即,我们将尽可能保证请求成功,去除不合法的输入; /// - 构成人体轨迹单张图片大小限制为2M,分辨率限制为1920*1080。 /// /// /// public async Task CreateTrace(CreateTraceRequest req) { JsonResponseModel rsp = null; try { var strResp = await this.InternalRequest(req, "CreateTrace"); rsp = JsonConvert.DeserializeObject>(strResp); } catch (JsonSerializationException e) { throw new TencentCloudSDKException(e.Message); } return rsp.Response; } /// /// 将一个人体轨迹添加到一个人员中。一个人员最多允许包含 5 个人体轨迹。同一人的人体轨迹越多,搜索识别效果越好。 /// /// >请注意: /// - 我们希望您的输入为 严格符合轨迹图片 要求的图片。如果您输入的图片不符合轨迹图片要求,会对最终效果产生较大负面影响。请您尽量保证一个Trace中的图片人体清晰、无遮挡、连贯。 /// - 一个人体轨迹(Trace)可以包含1-5张人体图片。提供越多质量高的人体图片有助于提升最终识别结果。 /// - 无论您在单个Trace中提供了多少张人体图片,我们都将生成一个对应的轨迹(Trace)信息。即,Trace仅和本次输入的图片序列相关,和图片的个数无关。 /// - 输入的图片组中,若有部分图片输入不合法(如图片大小过大、分辨率过大、无法解码等),我们将舍弃这部分图片,确保合法图片被正确搜索。即,我们将尽可能保证请求成功,去除不合法的输入; /// - 构成人体轨迹单张图片大小限制为2M,分辨率限制为1920*1080。 /// /// /// public CreateTraceResponse CreateTraceSync(CreateTraceRequest req) { JsonResponseModel rsp = null; try { var strResp = this.InternalRequestSync(req, "CreateTrace"); rsp = JsonConvert.DeserializeObject>(strResp); } catch (JsonSerializationException e) { throw new TencentCloudSDKException(e.Message); } return rsp.Response; } /// /// 删除该人体库及包含的所有的人员。 /// /// /// public async Task DeleteGroup(DeleteGroupRequest req) { JsonResponseModel rsp = null; try { var strResp = await this.InternalRequest(req, "DeleteGroup"); rsp = JsonConvert.DeserializeObject>(strResp); } catch (JsonSerializationException e) { throw new TencentCloudSDKException(e.Message); } return rsp.Response; } /// /// 删除该人体库及包含的所有的人员。 /// /// /// public DeleteGroupResponse DeleteGroupSync(DeleteGroupRequest req) { JsonResponseModel rsp = null; try { var strResp = this.InternalRequestSync(req, "DeleteGroup"); rsp = JsonConvert.DeserializeObject>(strResp); } catch (JsonSerializationException e) { throw new TencentCloudSDKException(e.Message); } return rsp.Response; } /// /// 删除人员。 /// /// /// public async Task DeletePerson(DeletePersonRequest req) { JsonResponseModel rsp = null; try { var strResp = await this.InternalRequest(req, "DeletePerson"); rsp = JsonConvert.DeserializeObject>(strResp); } catch (JsonSerializationException e) { throw new TencentCloudSDKException(e.Message); } return rsp.Response; } /// /// 删除人员。 /// /// /// public DeletePersonResponse DeletePersonSync(DeletePersonRequest req) { JsonResponseModel rsp = null; try { var strResp = this.InternalRequestSync(req, "DeletePerson"); rsp = JsonConvert.DeserializeObject>(strResp); } catch (JsonSerializationException e) { throw new TencentCloudSDKException(e.Message); } return rsp.Response; } /// /// 检测给定图片中的人体(Body)的位置信息(属性信息将在后续开放)。 /// /// /// public async Task DetectBody(DetectBodyRequest req) { JsonResponseModel rsp = null; try { var strResp = await this.InternalRequest(req, "DetectBody"); rsp = JsonConvert.DeserializeObject>(strResp); } catch (JsonSerializationException e) { throw new TencentCloudSDKException(e.Message); } return rsp.Response; } /// /// 检测给定图片中的人体(Body)的位置信息(属性信息将在后续开放)。 /// /// /// public DetectBodyResponse DetectBodySync(DetectBodyRequest req) { JsonResponseModel rsp = null; try { var strResp = this.InternalRequestSync(req, "DetectBody"); rsp = JsonConvert.DeserializeObject>(strResp); } catch (JsonSerializationException e) { throw new TencentCloudSDKException(e.Message); } return rsp.Response; } /// /// 获取人体库列表。 /// /// /// public async Task GetGroupList(GetGroupListRequest req) { JsonResponseModel rsp = null; try { var strResp = await this.InternalRequest(req, "GetGroupList"); rsp = JsonConvert.DeserializeObject>(strResp); } catch (JsonSerializationException e) { throw new TencentCloudSDKException(e.Message); } return rsp.Response; } /// /// 获取人体库列表。 /// /// /// public GetGroupListResponse GetGroupListSync(GetGroupListRequest req) { JsonResponseModel rsp = null; try { var strResp = this.InternalRequestSync(req, "GetGroupList"); rsp = JsonConvert.DeserializeObject>(strResp); } catch (JsonSerializationException e) { throw new TencentCloudSDKException(e.Message); } return rsp.Response; } /// /// 获取指定人体库中的人员列表。 /// /// /// public async Task GetPersonList(GetPersonListRequest req) { JsonResponseModel rsp = null; try { var strResp = await this.InternalRequest(req, "GetPersonList"); rsp = JsonConvert.DeserializeObject>(strResp); } catch (JsonSerializationException e) { throw new TencentCloudSDKException(e.Message); } return rsp.Response; } /// /// 获取指定人体库中的人员列表。 /// /// /// public GetPersonListResponse GetPersonListSync(GetPersonListRequest req) { JsonResponseModel rsp = null; try { var strResp = this.InternalRequestSync(req, "GetPersonList"); rsp = JsonConvert.DeserializeObject>(strResp); } catch (JsonSerializationException e) { throw new TencentCloudSDKException(e.Message); } return rsp.Response; } /// /// 修改人体库名称、备注。 /// /// /// public async Task ModifyGroup(ModifyGroupRequest req) { JsonResponseModel rsp = null; try { var strResp = await this.InternalRequest(req, "ModifyGroup"); rsp = JsonConvert.DeserializeObject>(strResp); } catch (JsonSerializationException e) { throw new TencentCloudSDKException(e.Message); } return rsp.Response; } /// /// 修改人体库名称、备注。 /// /// /// public ModifyGroupResponse ModifyGroupSync(ModifyGroupRequest req) { JsonResponseModel rsp = null; try { var strResp = this.InternalRequestSync(req, "ModifyGroup"); rsp = JsonConvert.DeserializeObject>(strResp); } catch (JsonSerializationException e) { throw new TencentCloudSDKException(e.Message); } return rsp.Response; } /// /// 修改人员信息。 /// /// /// public async Task ModifyPersonInfo(ModifyPersonInfoRequest req) { JsonResponseModel rsp = null; try { var strResp = await this.InternalRequest(req, "ModifyPersonInfo"); rsp = JsonConvert.DeserializeObject>(strResp); } catch (JsonSerializationException e) { throw new TencentCloudSDKException(e.Message); } return rsp.Response; } /// /// 修改人员信息。 /// /// /// public ModifyPersonInfoResponse ModifyPersonInfoSync(ModifyPersonInfoRequest req) { JsonResponseModel rsp = null; try { var strResp = this.InternalRequestSync(req, "ModifyPersonInfo"); rsp = JsonConvert.DeserializeObject>(strResp); } catch (JsonSerializationException e) { throw new TencentCloudSDKException(e.Message); } return rsp.Response; } /// /// 本接口用于对一组待识别的人体轨迹(Trace)图片,在人体库中识别出最相似的 TopK 人体,按照相似度从大到小排列。 /// /// 人体轨迹(Trace)图片要求:图片中当且仅包含一个人体。人体完整、无遮挡。 /// /// > 请注意: /// - 我们希望您的输入为严格符合轨迹图片要求的图片。如果您输入的图片不符合轨迹图片要求,会对最终效果产生较大负面影响; /// - 人体轨迹,是一个包含1-5张图片的图片序列。您可以输入1张图片作为轨迹,也可以输入多张。单个轨迹中包含越多符合质量的图片,搜索效果越好。 /// - 构成人体轨迹单张图片大小不得超过2M,分辨率不得超过1920*1080。 /// /// /// public async Task SearchTrace(SearchTraceRequest req) { JsonResponseModel rsp = null; try { var strResp = await this.InternalRequest(req, "SearchTrace"); rsp = JsonConvert.DeserializeObject>(strResp); } catch (JsonSerializationException e) { throw new TencentCloudSDKException(e.Message); } return rsp.Response; } /// /// 本接口用于对一组待识别的人体轨迹(Trace)图片,在人体库中识别出最相似的 TopK 人体,按照相似度从大到小排列。 /// /// 人体轨迹(Trace)图片要求:图片中当且仅包含一个人体。人体完整、无遮挡。 /// /// > 请注意: /// - 我们希望您的输入为严格符合轨迹图片要求的图片。如果您输入的图片不符合轨迹图片要求,会对最终效果产生较大负面影响; /// - 人体轨迹,是一个包含1-5张图片的图片序列。您可以输入1张图片作为轨迹,也可以输入多张。单个轨迹中包含越多符合质量的图片,搜索效果越好。 /// - 构成人体轨迹单张图片大小不得超过2M,分辨率不得超过1920*1080。 /// /// /// public SearchTraceResponse SearchTraceSync(SearchTraceRequest req) { JsonResponseModel rsp = null; try { var strResp = this.InternalRequestSync(req, "SearchTrace"); rsp = JsonConvert.DeserializeObject>(strResp); } catch (JsonSerializationException e) { throw new TencentCloudSDKException(e.Message); } return rsp.Response; } /// /// 识别传入图片中人体的完整轮廓,进行抠像。 /// /// /// public async Task SegmentPortraitPic(SegmentPortraitPicRequest req) { JsonResponseModel rsp = null; try { var strResp = await this.InternalRequest(req, "SegmentPortraitPic"); rsp = JsonConvert.DeserializeObject>(strResp); } catch (JsonSerializationException e) { throw new TencentCloudSDKException(e.Message); } return rsp.Response; } /// /// 识别传入图片中人体的完整轮廓,进行抠像。 /// /// /// public SegmentPortraitPicResponse SegmentPortraitPicSync(SegmentPortraitPicRequest req) { JsonResponseModel rsp = null; try { var strResp = this.InternalRequestSync(req, "SegmentPortraitPic"); rsp = JsonConvert.DeserializeObject>(strResp); } catch (JsonSerializationException e) { throw new TencentCloudSDKException(e.Message); } return rsp.Response; } } }