# frozen_string_literal: true # Copyright (c) 2017-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. module TencentCloud module Bda module V20200324 # 人体年龄信息。 # AttributesType 不含 Age 或检测超过 5 个人体时,此参数仍返回,但不具备参考意义。 class Age < TencentCloud::Common::AbstractModel # @param Type: 人体年龄信息,返回值为以下集合中的一个{小孩,青年,中年,老年}。 # @type Type: String # @param Probability: Type识别概率值,[0.0,1.0],代表判断正确的概率。如0.8则代表有Type值有80%概率正确。 # @type Probability: Float attr_accessor :Type, :Probability def initialize(type=nil, probability=nil) @Type = type @Probability = probability end def deserialize(params) @Type = params['Type'] @Probability = params['Probability'] end end # 返回人体属性选项,此值不填则为不需要返回,可以选择的值为以下六个。 # Age、Bag、Gender、Orientation、UpperBodyCloth、LowerBodyCloth,详细的解释请看对象描述 # 需注意本接口最多返回面积最大的 5 个人体属性信息,超过 5 个人体(第 6 个及以后的人体)的人体属性不具备参考意义。 class AttributesOptions < TencentCloud::Common::AbstractModel # @param Age: 返回年龄信息 # @type Age: Boolean # @param Bag: 返回随身挎包信息 # @type Bag: Boolean # @param Gender: 返回性别信息 # @type Gender: Boolean # @param Orientation: 返回朝向信息 # @type Orientation: Boolean # @param UpperBodyCloth: 返回上装信息 # @type UpperBodyCloth: Boolean # @param LowerBodyCloth: 返回下装信息 # @type LowerBodyCloth: Boolean attr_accessor :Age, :Bag, :Gender, :Orientation, :UpperBodyCloth, :LowerBodyCloth def initialize(age=nil, bag=nil, gender=nil, orientation=nil, upperbodycloth=nil, lowerbodycloth=nil) @Age = age @Bag = bag @Gender = gender @Orientation = orientation @UpperBodyCloth = upperbodycloth @LowerBodyCloth = lowerbodycloth end def deserialize(params) @Age = params['Age'] @Bag = params['Bag'] @Gender = params['Gender'] @Orientation = params['Orientation'] @UpperBodyCloth = params['UpperBodyCloth'] @LowerBodyCloth = params['LowerBodyCloth'] end end # 人体是否挎包。 # AttributesType 不含 Bag 或检测超过 5 个人体时,此参数仍返回,但不具备参考意义。 class Bag < TencentCloud::Common::AbstractModel # @param Type: 挎包信息,返回值为以下集合中的一个{双肩包, 斜挎包, 手拎包, 无包}。 # @type Type: String # @param Probability: Type识别概率值,[0.0,1.0],代表判断正确的概率。如0.8则代表有Type值有80%概率正确。 # @type Probability: Float attr_accessor :Type, :Probability def initialize(type=nil, probability=nil) @Type = type @Probability = probability end def deserialize(params) @Type = params['Type'] @Probability = params['Probability'] end end # 图中检测出的人体属性信息。 class BodyAttributeInfo < TencentCloud::Common::AbstractModel # @param Age: 人体年龄信息。 # AttributesType 不含 Age 或检测超过 5 个人体时,此参数仍返回,但不具备参考意义。 # 注意:此字段可能返回 null,表示取不到有效值。 # @type Age: :class:`Tencentcloud::Bda.v20200324.models.Age` # @param Bag: 人体是否挎包。 # AttributesType 不含 Bag 或检测超过 5 个人体时,此参数仍返回,但不具备参考意义。 # 注意:此字段可能返回 null,表示取不到有效值。 # @type Bag: :class:`Tencentcloud::Bda.v20200324.models.Bag` # @param Gender: 人体性别信息。 # AttributesType 不含 Gender 或检测超过 5 个人体时,此参数仍返回,但不具备参考意义。 # 注意:此字段可能返回 null,表示取不到有效值。 # @type Gender: :class:`Tencentcloud::Bda.v20200324.models.Gender` # @param Orientation: 人体朝向信息。 # AttributesType 不含 UpperBodyCloth 或检测超过 5 个人体时,此参数仍返回,但不具备参考意义。 # 注意:此字段可能返回 null,表示取不到有效值。 # @type Orientation: :class:`Tencentcloud::Bda.v20200324.models.Orientation` # @param UpperBodyCloth: 人体上衣属性信息。 # AttributesType 不含 Orientation 或检测超过 5 个人体时,此参数仍返回,但不具备参考意义。 # 注意:此字段可能返回 null,表示取不到有效值。 # @type UpperBodyCloth: :class:`Tencentcloud::Bda.v20200324.models.UpperBodyCloth` # @param LowerBodyCloth: 人体下衣属性信息。 # AttributesType 不含 LowerBodyCloth 或检测超过 5 个人体时,此参数仍返回,但不具备参考意义。 # 注意:此字段可能返回 null,表示取不到有效值。 # @type LowerBodyCloth: :class:`Tencentcloud::Bda.v20200324.models.LowerBodyCloth` attr_accessor :Age, :Bag, :Gender, :Orientation, :UpperBodyCloth, :LowerBodyCloth def initialize(age=nil, bag=nil, gender=nil, orientation=nil, upperbodycloth=nil, lowerbodycloth=nil) @Age = age @Bag = bag @Gender = gender @Orientation = orientation @UpperBodyCloth = upperbodycloth @LowerBodyCloth = lowerbodycloth end def deserialize(params) unless params['Age'].nil? @Age = Age.new @Age.deserialize(params['Age']) end unless params['Bag'].nil? @Bag = Bag.new @Bag.deserialize(params['Bag']) end unless params['Gender'].nil? @Gender = Gender.new @Gender.deserialize(params['Gender']) end unless params['Orientation'].nil? @Orientation = Orientation.new @Orientation.deserialize(params['Orientation']) end unless params['UpperBodyCloth'].nil? @UpperBodyCloth = UpperBodyCloth.new @UpperBodyCloth.deserialize(params['UpperBodyCloth']) end unless params['LowerBodyCloth'].nil? @LowerBodyCloth = LowerBodyCloth.new @LowerBodyCloth.deserialize(params['LowerBodyCloth']) end end end # 图中检测出来的人体框。 class BodyDetectResult < TencentCloud::Common::AbstractModel # @param Confidence: 检测出的人体置信度。 # 误识率百分之十对应的阈值是0.14;误识率百分之五对应的阈值是0.32;误识率百分之二对应的阈值是0.62;误识率百分之一对应的阈值是0.81。 # 通常情况建议使用阈值0.32,可适用大多数情况。 # @type Confidence: Float # @param BodyRect: 图中检测出来的人体框 # @type BodyRect: :class:`Tencentcloud::Bda.v20200324.models.BodyRect` # @param BodyAttributeInfo: 图中检测出的人体属性信息。 # @type BodyAttributeInfo: :class:`Tencentcloud::Bda.v20200324.models.BodyAttributeInfo` attr_accessor :Confidence, :BodyRect, :BodyAttributeInfo def initialize(confidence=nil, bodyrect=nil, bodyattributeinfo=nil) @Confidence = confidence @BodyRect = bodyrect @BodyAttributeInfo = bodyattributeinfo end def deserialize(params) @Confidence = params['Confidence'] unless params['BodyRect'].nil? @BodyRect = BodyRect.new @BodyRect.deserialize(params['BodyRect']) end unless params['BodyAttributeInfo'].nil? @BodyAttributeInfo = BodyAttributeInfo.new @BodyAttributeInfo.deserialize(params['BodyAttributeInfo']) end end end # 人体框和人体关键点信息。 class BodyJointsResult < TencentCloud::Common::AbstractModel # @param BoundBox: 图中检测出来的人体框。 # @type BoundBox: :class:`Tencentcloud::Bda.v20200324.models.BoundRect` # @param BodyJoints: 14个人体关键点的坐标,人体关键点详见KeyPointInfo。 # @type BodyJoints: Array # @param Confidence: 检测出的人体置信度,0-1之间,数值越高越准确。 # @type Confidence: Float attr_accessor :BoundBox, :BodyJoints, :Confidence def initialize(boundbox=nil, bodyjoints=nil, confidence=nil) @BoundBox = boundbox @BodyJoints = bodyjoints @Confidence = confidence end def deserialize(params) unless params['BoundBox'].nil? @BoundBox = BoundRect.new @BoundBox.deserialize(params['BoundBox']) end unless params['BodyJoints'].nil? @BodyJoints = [] params['BodyJoints'].each do |i| keypointinfo_tmp = KeyPointInfo.new keypointinfo_tmp.deserialize(i) @BodyJoints << keypointinfo_tmp end end @Confidence = params['Confidence'] end end # 人体框 class BodyRect < TencentCloud::Common::AbstractModel # @param X: 人体框左上角横坐标。 # @type X: Integer # @param Y: 人体框左上角纵坐标。 # @type Y: Integer # @param Width: 人体宽度。 # @type Width: Integer # @param Height: 人体高度。 # @type Height: Integer attr_accessor :X, :Y, :Width, :Height def initialize(x=nil, y=nil, width=nil, height=nil) @X = x @Y = y @Width = width @Height = height end def deserialize(params) @X = params['X'] @Y = params['Y'] @Width = params['Width'] @Height = params['Height'] end end # 人体框 class BoundRect < TencentCloud::Common::AbstractModel # @param X: 人体框左上角横坐标。 # @type X: Integer # @param Y: 人体框左上角纵坐标。 # @type Y: Integer # @param Width: 人体宽度。 # @type Width: Integer # @param Height: 人体高度。 # @type Height: Integer attr_accessor :X, :Y, :Width, :Height def initialize(x=nil, y=nil, width=nil, height=nil) @X = x @Y = y @Width = width @Height = height end def deserialize(params) @X = params['X'] @Y = params['Y'] @Width = params['Width'] @Height = params['Height'] end end # 识别出的最相似候选人。 class Candidate < TencentCloud::Common::AbstractModel # @param PersonId: 人员ID。 # @type PersonId: String # @param TraceId: 人体动作轨迹ID。 # @type TraceId: String # @param Score: 候选者的匹配得分。 # 十万人体库下,误识率百分之五对应的分数为70分;误识率百分之二对应的分数为80分;误识率百分之一对应的分数为90分。 # 二十万人体库下,误识率百分之五对应的分数为80分;误识率百分之二对应的分数为90分;误识率百分之一对应的分数为95分。 # 通常情况建议使用分数80分(保召回)。若希望获得较高精度,建议使用分数90分(保准确)。 # @type Score: Float attr_accessor :PersonId, :TraceId, :Score def initialize(personid=nil, traceid=nil, score=nil) @PersonId = personid @TraceId = traceid @Score = score end def deserialize(params) @PersonId = params['PersonId'] @TraceId = params['TraceId'] @Score = params['Score'] end end # CreateGroup请求参数结构体 class CreateGroupRequest < TencentCloud::Common::AbstractModel # @param GroupName: 人体库名称,[1,60]个字符,可修改,不可重复。 # @type GroupName: String # @param GroupId: 人体库 ID,不可修改,不可重复。支持英文、数字、-%@#&_,长度限制64B。 # @type GroupId: String # @param Tag: 人体库信息备注,[0,40]个字符。 # @type Tag: String # @param BodyModelVersion: 人体识别所用的算法模型版本。 # 目前入参仅支持 “1.0”1个输入。 默认为"1.0"。 # 不同算法模型版本对应的人体识别算法不同,新版本的整体效果会优于旧版本,后续我们将推出更新版本。 # @type BodyModelVersion: String attr_accessor :GroupName, :GroupId, :Tag, :BodyModelVersion def initialize(groupname=nil, groupid=nil, tag=nil, bodymodelversion=nil) @GroupName = groupname @GroupId = groupid @Tag = tag @BodyModelVersion = bodymodelversion end def deserialize(params) @GroupName = params['GroupName'] @GroupId = params['GroupId'] @Tag = params['Tag'] @BodyModelVersion = params['BodyModelVersion'] end end # CreateGroup返回参数结构体 class CreateGroupResponse < TencentCloud::Common::AbstractModel # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 # @type RequestId: String attr_accessor :RequestId def initialize(requestid=nil) @RequestId = requestid end def deserialize(params) @RequestId = params['RequestId'] end end # CreatePerson请求参数结构体 class CreatePersonRequest < TencentCloud::Common::AbstractModel # @param GroupId: 待加入的人员库ID。 # @type GroupId: String # @param PersonName: 人员名称。[1,60]个字符,可修改,可重复。 # @type PersonName: String # @param PersonId: 人员ID,单个腾讯云账号下不可修改,不可重复。 # 支持英文、数字、-%@#&_,,长度限制64B。 # @type PersonId: String # @param Trace: 人体动作轨迹信息。 # @type Trace: :class:`Tencentcloud::Bda.v20200324.models.Trace` attr_accessor :GroupId, :PersonName, :PersonId, :Trace def initialize(groupid=nil, personname=nil, personid=nil, trace=nil) @GroupId = groupid @PersonName = personname @PersonId = personid @Trace = trace end def deserialize(params) @GroupId = params['GroupId'] @PersonName = params['PersonName'] @PersonId = params['PersonId'] unless params['Trace'].nil? @Trace = Trace.new @Trace.deserialize(params['Trace']) end end end # CreatePerson返回参数结构体 class CreatePersonResponse < TencentCloud::Common::AbstractModel # @param TraceId: 人员动作轨迹唯一标识。 # @type TraceId: String # @param BodyModelVersion: 人体识别所用的算法模型版本。 # @type BodyModelVersion: String # @param InputRetCode: 输入的人体动作轨迹图片中的合法性校验结果。 # 只有为0时结果才有意义。 # -1001: 输入图片不合法。-1002: 输入图片不能构成动作轨迹。 # @type InputRetCode: Integer # @param InputRetCodeDetails: 输入的人体动作轨迹图片中的合法性校验结果详情。 # -1101:图片无效,-1102:url不合法。-1103:图片过大。-1104:图片下载失败。-1105:图片解码失败。-1109:图片分辨率过高。-2023:动作轨迹中有非同人图片。-2024: 动作轨迹提取失败。-2025: 人体检测失败。 # RetCode 的顺序和入参中Images 或 Urls 的顺序一致。 # @type InputRetCodeDetails: Array # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 # @type RequestId: String attr_accessor :TraceId, :BodyModelVersion, :InputRetCode, :InputRetCodeDetails, :RequestId def initialize(traceid=nil, bodymodelversion=nil, inputretcode=nil, inputretcodedetails=nil, requestid=nil) @TraceId = traceid @BodyModelVersion = bodymodelversion @InputRetCode = inputretcode @InputRetCodeDetails = inputretcodedetails @RequestId = requestid end def deserialize(params) @TraceId = params['TraceId'] @BodyModelVersion = params['BodyModelVersion'] @InputRetCode = params['InputRetCode'] @InputRetCodeDetails = params['InputRetCodeDetails'] @RequestId = params['RequestId'] end end # CreateSegmentationTask请求参数结构体 class CreateSegmentationTaskRequest < TencentCloud::Common::AbstractModel # @param VideoUrl: 需要分割的视频URL,可外网访问。 # @type VideoUrl: String # @param BackgroundImageUrl: 背景图片URL。 # 可以将视频背景替换为输入的图片。 # 如果不输入背景图片,则输出人像区域mask。 # @type BackgroundImageUrl: String # @param Config: 预留字段,后期用于展示更多识别信息。 # @type Config: String attr_accessor :VideoUrl, :BackgroundImageUrl, :Config def initialize(videourl=nil, backgroundimageurl=nil, config=nil) @VideoUrl = videourl @BackgroundImageUrl = backgroundimageurl @Config = config end def deserialize(params) @VideoUrl = params['VideoUrl'] @BackgroundImageUrl = params['BackgroundImageUrl'] @Config = params['Config'] end end # CreateSegmentationTask返回参数结构体 class CreateSegmentationTaskResponse < TencentCloud::Common::AbstractModel # @param TaskID: 任务标识ID,可以用与追溯任务状态,查看任务结果 # @type TaskID: String # @param EstimatedProcessingTime: 预估处理时间,单位为秒 # @type EstimatedProcessingTime: Float # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 # @type RequestId: String attr_accessor :TaskID, :EstimatedProcessingTime, :RequestId def initialize(taskid=nil, estimatedprocessingtime=nil, requestid=nil) @TaskID = taskid @EstimatedProcessingTime = estimatedprocessingtime @RequestId = requestid end def deserialize(params) @TaskID = params['TaskID'] @EstimatedProcessingTime = params['EstimatedProcessingTime'] @RequestId = params['RequestId'] end end # CreateTrace请求参数结构体 class CreateTraceRequest < TencentCloud::Common::AbstractModel # @param PersonId: 人员ID。 # @type PersonId: String # @param Trace: 人体动作轨迹信息。 # @type Trace: :class:`Tencentcloud::Bda.v20200324.models.Trace` attr_accessor :PersonId, :Trace def initialize(personid=nil, trace=nil) @PersonId = personid @Trace = trace end def deserialize(params) @PersonId = params['PersonId'] unless params['Trace'].nil? @Trace = Trace.new @Trace.deserialize(params['Trace']) end end end # CreateTrace返回参数结构体 class CreateTraceResponse < TencentCloud::Common::AbstractModel # @param TraceId: 人员动作轨迹唯一标识。 # @type TraceId: String # @param BodyModelVersion: 人体识别所用的算法模型版本。 # @type BodyModelVersion: String # @param InputRetCode: 输入的人体动作轨迹图片中的合法性校验结果。 # 只有为0时结果才有意义。 # -1001: 输入图片不合法。-1002: 输入图片不能构成轨迹。 # @type InputRetCode: Integer # @param InputRetCodeDetails: 输入的人体动作轨迹图片中的合法性校验结果详情。 # -1101:图片无效,-1102:url不合法。-1103:图片过大。-1104:图片下载失败。-1105:图片解码失败。-1109:图片分辨率过高。-2023:动作轨迹中有非同人图片。-2024: 动作轨迹提取失败。-2025: 人体检测失败。 # @type InputRetCodeDetails: Array # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 # @type RequestId: String attr_accessor :TraceId, :BodyModelVersion, :InputRetCode, :InputRetCodeDetails, :RequestId def initialize(traceid=nil, bodymodelversion=nil, inputretcode=nil, inputretcodedetails=nil, requestid=nil) @TraceId = traceid @BodyModelVersion = bodymodelversion @InputRetCode = inputretcode @InputRetCodeDetails = inputretcodedetails @RequestId = requestid end def deserialize(params) @TraceId = params['TraceId'] @BodyModelVersion = params['BodyModelVersion'] @InputRetCode = params['InputRetCode'] @InputRetCodeDetails = params['InputRetCodeDetails'] @RequestId = params['RequestId'] end end # DeleteGroup请求参数结构体 class DeleteGroupRequest < TencentCloud::Common::AbstractModel # @param GroupId: 人体库ID。 # @type GroupId: String attr_accessor :GroupId def initialize(groupid=nil) @GroupId = groupid end def deserialize(params) @GroupId = params['GroupId'] end end # DeleteGroup返回参数结构体 class DeleteGroupResponse < TencentCloud::Common::AbstractModel # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 # @type RequestId: String attr_accessor :RequestId def initialize(requestid=nil) @RequestId = requestid end def deserialize(params) @RequestId = params['RequestId'] end end # DeletePerson请求参数结构体 class DeletePersonRequest < TencentCloud::Common::AbstractModel # @param PersonId: 人员ID。 # @type PersonId: String attr_accessor :PersonId def initialize(personid=nil) @PersonId = personid end def deserialize(params) @PersonId = params['PersonId'] end end # DeletePerson返回参数结构体 class DeletePersonResponse < TencentCloud::Common::AbstractModel # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 # @type RequestId: String attr_accessor :RequestId def initialize(requestid=nil) @RequestId = requestid end def deserialize(params) @RequestId = params['RequestId'] end end # DescribeSegmentationTask请求参数结构体 class DescribeSegmentationTaskRequest < TencentCloud::Common::AbstractModel # @param TaskID: 在提交分割任务成功时返回的任务标识ID。 # @type TaskID: String attr_accessor :TaskID def initialize(taskid=nil) @TaskID = taskid end def deserialize(params) @TaskID = params['TaskID'] end end # DescribeSegmentationTask返回参数结构体 class DescribeSegmentationTaskResponse < TencentCloud::Common::AbstractModel # @param TaskStatus: 当前任务状态: # QUEUING 排队中 # PROCESSING 处理中 # FINISHED 处理完成 # @type TaskStatus: String # @param ResultVideoUrl: 分割后视频URL, 存储于腾讯云COS # 注意:此字段可能返回 null,表示取不到有效值。 # @type ResultVideoUrl: String # @param ResultVideoMD5: 分割后视频MD5,用于校验 # 注意:此字段可能返回 null,表示取不到有效值。 # @type ResultVideoMD5: String # @param VideoBasicInformation: 视频基本信息 # 注意:此字段可能返回 null,表示取不到有效值。 # @type VideoBasicInformation: :class:`Tencentcloud::Bda.v20200324.models.VideoBasicInformation` # @param ErrorMsg: 分割任务错误信息 # 注意:此字段可能返回 null,表示取不到有效值。 # @type ErrorMsg: String # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 # @type RequestId: String attr_accessor :TaskStatus, :ResultVideoUrl, :ResultVideoMD5, :VideoBasicInformation, :ErrorMsg, :RequestId def initialize(taskstatus=nil, resultvideourl=nil, resultvideomd5=nil, videobasicinformation=nil, errormsg=nil, requestid=nil) @TaskStatus = taskstatus @ResultVideoUrl = resultvideourl @ResultVideoMD5 = resultvideomd5 @VideoBasicInformation = videobasicinformation @ErrorMsg = errormsg @RequestId = requestid end def deserialize(params) @TaskStatus = params['TaskStatus'] @ResultVideoUrl = params['ResultVideoUrl'] @ResultVideoMD5 = params['ResultVideoMD5'] unless params['VideoBasicInformation'].nil? @VideoBasicInformation = VideoBasicInformation.new @VideoBasicInformation.deserialize(params['VideoBasicInformation']) end @ErrorMsg = params['ErrorMsg'] @RequestId = params['RequestId'] end end # DetectBodyJoints请求参数结构体 class DetectBodyJointsRequest < TencentCloud::Common::AbstractModel # @param Image: 图片 base64 数据,base64 编码后大小不可超过5M。 # 支持PNG、JPG、JPEG、BMP,不支持 GIF 图片。 # @type Image: String # @param Url: 图片的 Url 。对应图片 base64 编码后大小不可超过5M。 # Url、Image必须提供一个,如果都提供,只使用 Url。 # 图片存储于腾讯云的Url可保障更高下载速度和稳定性,建议图片存储于腾讯云。 # 非腾讯云存储的Url速度和稳定性可能受一定影响。 # 支持PNG、JPG、JPEG、BMP,不支持 GIF 图片。 # @type Url: String # @param LocalBodySwitch: 人体局部关键点识别,开启后对人体局部图(例如部分身体部位)进行关键点识别,输出人体关键点坐标,默认不开启 # 注意:若开启人体局部图片关键点识别,则BoundBox、Confidence返回为空。 # @type LocalBodySwitch: Boolean attr_accessor :Image, :Url, :LocalBodySwitch def initialize(image=nil, url=nil, localbodyswitch=nil) @Image = image @Url = url @LocalBodySwitch = localbodyswitch end def deserialize(params) @Image = params['Image'] @Url = params['Url'] @LocalBodySwitch = params['LocalBodySwitch'] end end # DetectBodyJoints返回参数结构体 class DetectBodyJointsResponse < TencentCloud::Common::AbstractModel # @param BodyJointsResults: 图中检测出的人体框和人体关键点, 包含14个人体关键点的坐标,建议根据人体框置信度筛选出合格的人体; # @type BodyJointsResults: Array # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 # @type RequestId: String attr_accessor :BodyJointsResults, :RequestId def initialize(bodyjointsresults=nil, requestid=nil) @BodyJointsResults = bodyjointsresults @RequestId = requestid end def deserialize(params) unless params['BodyJointsResults'].nil? @BodyJointsResults = [] params['BodyJointsResults'].each do |i| bodyjointsresult_tmp = BodyJointsResult.new bodyjointsresult_tmp.deserialize(i) @BodyJointsResults << bodyjointsresult_tmp end end @RequestId = params['RequestId'] end end # DetectBody请求参数结构体 class DetectBodyRequest < TencentCloud::Common::AbstractModel # @param Image: 人体图片 Base64 数据。 # 图片 base64 编码后大小不可超过5M。 # 图片分辨率不得超过 1920 * 1080 。 # 支持PNG、JPG、JPEG、BMP,不支持 GIF 图片。 # @type Image: String # @param MaxBodyNum: 最多检测的人体数目,默认值为1(仅检测图片中面积最大的那个人体); 最大值10 ,检测图片中面积最大的10个人体。 # @type MaxBodyNum: Integer # @param Url: 人体图片 Url 。 # Url、Image必须提供一个,如果都提供,只使用 Url。 # 图片 base64 编码后大小不可超过5M。 # 图片分辨率不得超过 1920 * 1080 。 # 图片存储于腾讯云的Url可保障更高下载速度和稳定性,建议图片存储于腾讯云。 # 非腾讯云存储的Url速度和稳定性可能受一定影响。 # 支持PNG、JPG、JPEG、BMP,不支持 GIF 图片。 # @type Url: String # @param AttributesOptions: 是否返回年龄、性别、朝向等属性。 # 可选项有 Age、Bag、Gender、UpperBodyCloth、LowerBodyCloth、Orientation。 # 如果此参数为空则为不需要返回。 # 需要将属性组成一个用逗号分隔的字符串,属性之间的顺序没有要求。 # 关于各属性的详细描述,参见下文出参。 # 最多返回面积最大的 5 个人体属性信息,超过 5 个人体(第 6 个及以后的人体)的 BodyAttributesInfo 不具备参考意义。 # @type AttributesOptions: :class:`Tencentcloud::Bda.v20200324.models.AttributesOptions` attr_accessor :Image, :MaxBodyNum, :Url, :AttributesOptions def initialize(image=nil, maxbodynum=nil, url=nil, attributesoptions=nil) @Image = image @MaxBodyNum = maxbodynum @Url = url @AttributesOptions = attributesoptions end def deserialize(params) @Image = params['Image'] @MaxBodyNum = params['MaxBodyNum'] @Url = params['Url'] unless params['AttributesOptions'].nil? @AttributesOptions = AttributesOptions.new @AttributesOptions.deserialize(params['AttributesOptions']) end end end # DetectBody返回参数结构体 class DetectBodyResponse < TencentCloud::Common::AbstractModel # @param BodyDetectResults: 图中检测出来的人体框。 # @type BodyDetectResults: Array # @param BodyModelVersion: 人体识别所用的算法模型版本。 # @type BodyModelVersion: String # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 # @type RequestId: String attr_accessor :BodyDetectResults, :BodyModelVersion, :RequestId def initialize(bodydetectresults=nil, bodymodelversion=nil, requestid=nil) @BodyDetectResults = bodydetectresults @BodyModelVersion = bodymodelversion @RequestId = requestid end def deserialize(params) unless params['BodyDetectResults'].nil? @BodyDetectResults = [] params['BodyDetectResults'].each do |i| bodydetectresult_tmp = BodyDetectResult.new bodydetectresult_tmp.deserialize(i) @BodyDetectResults << bodydetectresult_tmp end end @BodyModelVersion = params['BodyModelVersion'] @RequestId = params['RequestId'] end end # 人体性别信息。 # AttributesType 不含 Gender 或检测超过 5 个人体时,此参数仍返回,但不具备参考意义。 class Gender < TencentCloud::Common::AbstractModel # @param Type: 性别信息,返回值为以下集合中的一个 {男性, 女性} # @type Type: String # @param Probability: Type识别概率值,[0.0,1.0],代表判断正确的概率。如0.8则代表有Type值有80%概率正确。 # @type Probability: Float attr_accessor :Type, :Probability def initialize(type=nil, probability=nil) @Type = type @Probability = probability end def deserialize(params) @Type = params['Type'] @Probability = params['Probability'] end end # GetGroupList请求参数结构体 class GetGroupListRequest < TencentCloud::Common::AbstractModel # @param Offset: 起始序号,默认值为0。 # @type Offset: Integer # @param Limit: 返回数量,默认值为10,最大值为1000。 # @type Limit: Integer attr_accessor :Offset, :Limit def initialize(offset=nil, limit=nil) @Offset = offset @Limit = limit end def deserialize(params) @Offset = params['Offset'] @Limit = params['Limit'] end end # GetGroupList返回参数结构体 class GetGroupListResponse < TencentCloud::Common::AbstractModel # @param GroupInfos: 返回的人体库信息。 # @type GroupInfos: Array # @param GroupNum: 人体库总数量。 # @type GroupNum: Integer # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 # @type RequestId: String attr_accessor :GroupInfos, :GroupNum, :RequestId def initialize(groupinfos=nil, groupnum=nil, requestid=nil) @GroupInfos = groupinfos @GroupNum = groupnum @RequestId = requestid end def deserialize(params) unless params['GroupInfos'].nil? @GroupInfos = [] params['GroupInfos'].each do |i| groupinfo_tmp = GroupInfo.new groupinfo_tmp.deserialize(i) @GroupInfos << groupinfo_tmp end end @GroupNum = params['GroupNum'] @RequestId = params['RequestId'] end end # GetPersonList请求参数结构体 class GetPersonListRequest < TencentCloud::Common::AbstractModel # @param GroupId: 人体库ID。 # @type GroupId: String # @param Offset: 起始序号,默认值为0。 # @type Offset: Integer # @param Limit: 返回数量,默认值为10,最大值为1000。 # @type Limit: Integer attr_accessor :GroupId, :Offset, :Limit def initialize(groupid=nil, offset=nil, limit=nil) @GroupId = groupid @Offset = offset @Limit = limit end def deserialize(params) @GroupId = params['GroupId'] @Offset = params['Offset'] @Limit = params['Limit'] end end # GetPersonList返回参数结构体 class GetPersonListResponse < TencentCloud::Common::AbstractModel # @param PersonInfos: 返回的人员信息。 # @type PersonInfos: Array # @param PersonNum: 该人体库的人员数量。 # @type PersonNum: Integer # @param BodyModelVersion: 人体识别所用的算法模型版本。 # @type BodyModelVersion: String # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 # @type RequestId: String attr_accessor :PersonInfos, :PersonNum, :BodyModelVersion, :RequestId def initialize(personinfos=nil, personnum=nil, bodymodelversion=nil, requestid=nil) @PersonInfos = personinfos @PersonNum = personnum @BodyModelVersion = bodymodelversion @RequestId = requestid end def deserialize(params) unless params['PersonInfos'].nil? @PersonInfos = [] params['PersonInfos'].each do |i| personinfo_tmp = PersonInfo.new personinfo_tmp.deserialize(i) @PersonInfos << personinfo_tmp end end @PersonNum = params['PersonNum'] @BodyModelVersion = params['BodyModelVersion'] @RequestId = params['RequestId'] end end # GetSummaryInfo请求参数结构体 class GetSummaryInfoRequest < TencentCloud::Common::AbstractModel def initialize() end def deserialize(params) end end # GetSummaryInfo返回参数结构体 class GetSummaryInfoResponse < TencentCloud::Common::AbstractModel # @param GroupCount: 人体库总数量。 # @type GroupCount: Integer # @param PersonCount: 人员总数量 # @type PersonCount: Integer # @param TraceCount: 人员轨迹总数量 # @type TraceCount: Integer # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 # @type RequestId: String attr_accessor :GroupCount, :PersonCount, :TraceCount, :RequestId def initialize(groupcount=nil, personcount=nil, tracecount=nil, requestid=nil) @GroupCount = groupcount @PersonCount = personcount @TraceCount = tracecount @RequestId = requestid end def deserialize(params) @GroupCount = params['GroupCount'] @PersonCount = params['PersonCount'] @TraceCount = params['TraceCount'] @RequestId = params['RequestId'] end end # 返回的人员库信息。 class GroupInfo < TencentCloud::Common::AbstractModel # @param GroupName: 人体库名称。 # @type GroupName: String # @param GroupId: 人体库ID。 # @type GroupId: String # @param Tag: 人体库信息备注。 # @type Tag: String # @param BodyModelVersion: 人体识别所用的算法模型版本。 # @type BodyModelVersion: String # @param CreationTimestamp: Group的创建时间和日期 CreationTimestamp。CreationTimestamp 的值是自 Unix 纪元时间到Group创建时间的毫秒数。 # Unix 纪元时间是 1970 年 1 月 1 日星期四,协调世界时 (UTC) 。 # @type CreationTimestamp: Integer attr_accessor :GroupName, :GroupId, :Tag, :BodyModelVersion, :CreationTimestamp def initialize(groupname=nil, groupid=nil, tag=nil, bodymodelversion=nil, creationtimestamp=nil) @GroupName = groupname @GroupId = groupid @Tag = tag @BodyModelVersion = bodymodelversion @CreationTimestamp = creationtimestamp end def deserialize(params) @GroupName = params['GroupName'] @GroupId = params['GroupId'] @Tag = params['Tag'] @BodyModelVersion = params['BodyModelVersion'] @CreationTimestamp = params['CreationTimestamp'] end end # 图像坐标信息。 class ImageRect < TencentCloud::Common::AbstractModel # @param X: 左上角横坐标。 # @type X: Integer # @param Y: 左上角纵坐标。 # @type Y: Integer # @param Width: 人体宽度。 # @type Width: Integer # @param Height: 人体高度。 # @type Height: Integer # @param Label: 分割选项名称。 # @type Label: String attr_accessor :X, :Y, :Width, :Height, :Label def initialize(x=nil, y=nil, width=nil, height=nil, label=nil) @X = x @Y = y @Width = width @Height = height @Label = label end def deserialize(params) @X = params['X'] @Y = params['Y'] @Width = params['Width'] @Height = params['Height'] @Label = params['Label'] end end # 人体关键点信息 class KeyPointInfo < TencentCloud::Common::AbstractModel # @param KeyPointType: 代表不同位置的人体关键点信息,返回值为以下集合中的一个 [头部,颈部,右肩,右肘,右腕,左肩,左肘,左腕,右髋,右膝,右踝,左髋,左膝,左踝] # @type KeyPointType: String # @param X: 人体关键点横坐标 # @type X: Float # @param Y: 人体关键点纵坐标 # @type Y: Float # @param BodyScore: 关键点坐标置信度,分数取值在0-1之间,阈值建议为0.25,小于0.25认为在图中无人体关键点。 # @type BodyScore: Float attr_accessor :KeyPointType, :X, :Y, :BodyScore def initialize(keypointtype=nil, x=nil, y=nil, bodyscore=nil) @KeyPointType = keypointtype @X = x @Y = y @BodyScore = bodyscore end def deserialize(params) @KeyPointType = params['KeyPointType'] @X = params['X'] @Y = params['Y'] @BodyScore = params['BodyScore'] end end # 下衣属性信息 class LowerBodyCloth < TencentCloud::Common::AbstractModel # @param Color: 下衣颜色信息。 # @type Color: :class:`Tencentcloud::Bda.v20200324.models.LowerBodyClothColor` # @param Length: 下衣长度信息 。 # @type Length: :class:`Tencentcloud::Bda.v20200324.models.LowerBodyClothLength` # @param Type: 下衣类型信息。 # @type Type: :class:`Tencentcloud::Bda.v20200324.models.LowerBodyClothType` attr_accessor :Color, :Length, :Type def initialize(color=nil, length=nil, type=nil) @Color = color @Length = length @Type = type end def deserialize(params) unless params['Color'].nil? @Color = LowerBodyClothColor.new @Color.deserialize(params['Color']) end unless params['Length'].nil? @Length = LowerBodyClothLength.new @Length.deserialize(params['Length']) end unless params['Type'].nil? @Type = LowerBodyClothType.new @Type.deserialize(params['Type']) end end end # 下衣颜色信息 class LowerBodyClothColor < TencentCloud::Common::AbstractModel # @param Type: 下衣颜色信息,返回值为以下集合中的一个{ 黑色系, 灰白色系, 彩色} 。 # @type Type: String # @param Probability: Type识别概率值,[0.0,1.0],代表判断正确的概率。如0.8则代表有Type值有80%概率正确。 # @type Probability: Float attr_accessor :Type, :Probability def initialize(type=nil, probability=nil) @Type = type @Probability = probability end def deserialize(params) @Type = params['Type'] @Probability = params['Probability'] end end # 下衣长度信息 class LowerBodyClothLength < TencentCloud::Common::AbstractModel # @param Type: 下衣长度信息,返回值为以下集合中的一个,{长, 短} 。 # @type Type: String # @param Probability: Type识别概率值,[0.0,1.0],代表判断正确的概率。如0.8则代表有Type值有80%概率正确。 # @type Probability: Float attr_accessor :Type, :Probability def initialize(type=nil, probability=nil) @Type = type @Probability = probability end def deserialize(params) @Type = params['Type'] @Probability = params['Probability'] end end # 下衣类型信息 class LowerBodyClothType < TencentCloud::Common::AbstractModel # @param Type: 下衣类型,返回值为以下集合中的一个 {裤子,裙子} 。 # @type Type: String # @param Probability: Type识别概率值,[0.0,1.0],代表判断正确的概率。如0.8则代表有Type值有80%概率正确。 # @type Probability: Float attr_accessor :Type, :Probability def initialize(type=nil, probability=nil) @Type = type @Probability = probability end def deserialize(params) @Type = params['Type'] @Probability = params['Probability'] end end # ModifyGroup请求参数结构体 class ModifyGroupRequest < TencentCloud::Common::AbstractModel # @param GroupId: 人体库ID。 # @type GroupId: String # @param GroupName: 人体库名称。 # @type GroupName: String # @param Tag: 人体库信息备注。 # @type Tag: String attr_accessor :GroupId, :GroupName, :Tag def initialize(groupid=nil, groupname=nil, tag=nil) @GroupId = groupid @GroupName = groupname @Tag = tag end def deserialize(params) @GroupId = params['GroupId'] @GroupName = params['GroupName'] @Tag = params['Tag'] end end # ModifyGroup返回参数结构体 class ModifyGroupResponse < TencentCloud::Common::AbstractModel # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 # @type RequestId: String attr_accessor :RequestId def initialize(requestid=nil) @RequestId = requestid end def deserialize(params) @RequestId = params['RequestId'] end end # ModifyPersonInfo请求参数结构体 class ModifyPersonInfoRequest < TencentCloud::Common::AbstractModel # @param PersonId: 人员ID。 # @type PersonId: String # @param PersonName: 人员名称。 # @type PersonName: String attr_accessor :PersonId, :PersonName def initialize(personid=nil, personname=nil) @PersonId = personid @PersonName = personname end def deserialize(params) @PersonId = params['PersonId'] @PersonName = params['PersonName'] end end # ModifyPersonInfo返回参数结构体 class ModifyPersonInfoResponse < TencentCloud::Common::AbstractModel # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 # @type RequestId: String attr_accessor :RequestId def initialize(requestid=nil) @RequestId = requestid end def deserialize(params) @RequestId = params['RequestId'] end end # 人体朝向信息。 # AttributesType 不含 Orientation 或检测超过 5 个人体时,此参数仍返回,但不具备参考意义。 class Orientation < TencentCloud::Common::AbstractModel # @param Type: 人体朝向信息,返回值为以下集合中的一个 {正向, 背向, 左, 右}。 # @type Type: String # @param Probability: Type识别概率值,[0.0,1.0],代表判断正确的概率。如0.8则代表有Type值有80%概率正确。 # @type Probability: Float attr_accessor :Type, :Probability def initialize(type=nil, probability=nil) @Type = type @Probability = probability end def deserialize(params) @Type = params['Type'] @Probability = params['Probability'] end end # 人员信息。 class PersonInfo < TencentCloud::Common::AbstractModel # @param PersonName: 人员名称。 # @type PersonName: String # @param PersonId: 人员ID。 # @type PersonId: String # @param TraceInfos: 包含的人体动作轨迹图片信息列表。 # @type TraceInfos: Array attr_accessor :PersonName, :PersonId, :TraceInfos def initialize(personname=nil, personid=nil, traceinfos=nil) @PersonName = personname @PersonId = personid @TraceInfos = traceinfos end def deserialize(params) @PersonName = params['PersonName'] @PersonId = params['PersonId'] unless params['TraceInfos'].nil? @TraceInfos = [] params['TraceInfos'].each do |i| traceinfo_tmp = TraceInfo.new traceinfo_tmp.deserialize(i) @TraceInfos << traceinfo_tmp end end end end # SearchTrace请求参数结构体 class SearchTraceRequest < TencentCloud::Common::AbstractModel # @param GroupId: 希望搜索的人体库ID。 # @type GroupId: String # @param Trace: 人体动作轨迹信息。 # @type Trace: :class:`Tencentcloud::Bda.v20200324.models.Trace` # @param MaxPersonNum: 单张被识别的人体动作轨迹返回的最相似人员数量。 # 默认值为5,最大值为100。 # 例,设MaxPersonNum为8,则返回Top8相似的人员信息。 值越大,需要处理的时间越长。建议不要超过10。 # @type MaxPersonNum: Integer # @param TraceMatchThreshold: 出参Score中,只有超过TraceMatchThreshold值的结果才会返回。 # 默认为0。范围[0, 100.0]。 # @type TraceMatchThreshold: Float attr_accessor :GroupId, :Trace, :MaxPersonNum, :TraceMatchThreshold def initialize(groupid=nil, trace=nil, maxpersonnum=nil, tracematchthreshold=nil) @GroupId = groupid @Trace = trace @MaxPersonNum = maxpersonnum @TraceMatchThreshold = tracematchthreshold end def deserialize(params) @GroupId = params['GroupId'] unless params['Trace'].nil? @Trace = Trace.new @Trace.deserialize(params['Trace']) end @MaxPersonNum = params['MaxPersonNum'] @TraceMatchThreshold = params['TraceMatchThreshold'] end end # SearchTrace返回参数结构体 class SearchTraceResponse < TencentCloud::Common::AbstractModel # @param Candidates: 识别出的最相似候选人。 # @type Candidates: Array # @param InputRetCode: 输入的人体动作轨迹图片中的合法性校验结果。 # 只有为0时结果才有意义。 # -1001: 输入图片不合法。-1002: 输入图片不能构成动作轨迹。 # @type InputRetCode: Integer # @param InputRetCodeDetails: 输入的人体动作轨迹图片中的合法性校验结果详情。 # -1101:图片无效,-1102:url不合法。-1103:图片过大。-1104:图片下载失败。-1105:图片解码失败。-1109:图片分辨率过高。-2023:动作轨迹中有非同人图片。-2024: 动作轨迹提取失败。-2025: 人体检测失败。 # @type InputRetCodeDetails: Array # @param BodyModelVersion: 人体识别所用的算法模型版本。 # @type BodyModelVersion: String # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 # @type RequestId: String attr_accessor :Candidates, :InputRetCode, :InputRetCodeDetails, :BodyModelVersion, :RequestId def initialize(candidates=nil, inputretcode=nil, inputretcodedetails=nil, bodymodelversion=nil, requestid=nil) @Candidates = candidates @InputRetCode = inputretcode @InputRetCodeDetails = inputretcodedetails @BodyModelVersion = bodymodelversion @RequestId = requestid end def deserialize(params) unless params['Candidates'].nil? @Candidates = [] params['Candidates'].each do |i| candidate_tmp = Candidate.new candidate_tmp.deserialize(i) @Candidates << candidate_tmp end end @InputRetCode = params['InputRetCode'] @InputRetCodeDetails = params['InputRetCodeDetails'] @BodyModelVersion = params['BodyModelVersion'] @RequestId = params['RequestId'] end end # SegmentCustomizedPortraitPic请求参数结构体 class SegmentCustomizedPortraitPicRequest < TencentCloud::Common::AbstractModel # @param SegmentationOptions: 此参数为分割选项,请根据需要选择自己所想从图片中分割的部分。注意所有选项均为非必选,如未选择则值默认为false, 但是必须要保证多于一个选项的描述为true。 # @type SegmentationOptions: :class:`Tencentcloud::Bda.v20200324.models.SegmentationOptions` # @param Image: 图片 base64 数据,base64 编码后大小不可超过5M。 # 图片分辨率须小于2000*2000。 # 支持PNG、JPG、JPEG、BMP,不支持 GIF 图片。 # @type Image: String # @param Url: 图片的 Url 。 # Url、Image必须提供一个,如果都提供,只使用 Url。 # 图片分辨率须小于2000*2000 ,图片 base64 编码后大小不可超过5M。 # 图片存储于腾讯云的Url可保障更高下载速度和稳定性,建议图片存储于腾讯云。 # 非腾讯云存储的Url速度和稳定性可能受一定影响。 # 支持PNG、JPG、JPEG、BMP,不支持 GIF 图片。 # @type Url: String attr_accessor :SegmentationOptions, :Image, :Url def initialize(segmentationoptions=nil, image=nil, url=nil) @SegmentationOptions = segmentationoptions @Image = image @Url = url end def deserialize(params) unless params['SegmentationOptions'].nil? @SegmentationOptions = SegmentationOptions.new @SegmentationOptions.deserialize(params['SegmentationOptions']) end @Image = params['Image'] @Url = params['Url'] end end # SegmentCustomizedPortraitPic返回参数结构体 class SegmentCustomizedPortraitPicResponse < TencentCloud::Common::AbstractModel # @param PortraitImage: 根据指定标签分割输出的透明背景人像图片的 base64 数据。 # @type PortraitImage: String # @param MaskImage: 指定标签处理后的Mask。一个通过 Base64 编码的文件,解码后文件由 Float 型浮点数组成。这些浮点数代表原图从左上角开始的每一行的每一个像素点,每一个浮点数的值是原图相应像素点位于人体轮廓内的置信度(0-1)转化的灰度值(0-255) # @type MaskImage: String # @param ImageRects: 坐标信息。 # 注意:此字段可能返回 null,表示取不到有效值。 # @type ImageRects: Array # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 # @type RequestId: String attr_accessor :PortraitImage, :MaskImage, :ImageRects, :RequestId def initialize(portraitimage=nil, maskimage=nil, imagerects=nil, requestid=nil) @PortraitImage = portraitimage @MaskImage = maskimage @ImageRects = imagerects @RequestId = requestid end def deserialize(params) @PortraitImage = params['PortraitImage'] @MaskImage = params['MaskImage'] unless params['ImageRects'].nil? @ImageRects = [] params['ImageRects'].each do |i| imagerect_tmp = ImageRect.new imagerect_tmp.deserialize(i) @ImageRects << imagerect_tmp end end @RequestId = params['RequestId'] end end # SegmentPortraitPic请求参数结构体 class SegmentPortraitPicRequest < TencentCloud::Common::AbstractModel # @param Image: 图片 base64 数据,base64 编码后大小不可超过5M。 # 图片分辨率须小于2000*2000。 # 支持PNG、JPG、JPEG、BMP,不支持 GIF 图片。 # @type Image: String # @param Url: 图片的 Url 。 # Url、Image必须提供一个,如果都提供,只使用 Url。 # 图片分辨率须小于2000*2000 ,图片 base64 编码后大小不可超过5M。 # 图片存储于腾讯云的Url可保障更高下载速度和稳定性,建议图片存储于腾讯云。 # 非腾讯云存储的Url速度和稳定性可能受一定影响。 # 支持PNG、JPG、JPEG、BMP,不支持 GIF 图片。 # @type Url: String # @param RspImgType: 返回图像方式(base64 或 Url ) ,二选一。url有效期为30分钟。 # @type RspImgType: String # @param Scene: 适用场景类型。 # 取值:GEN/GS。GEN为通用场景模式;GS为绿幕场景模式,针对绿幕场景下的人像分割效果更好。 # 两种模式选择一种传入,默认为GEN。 # @type Scene: String attr_accessor :Image, :Url, :RspImgType, :Scene def initialize(image=nil, url=nil, rspimgtype=nil, scene=nil) @Image = image @Url = url @RspImgType = rspimgtype @Scene = scene end def deserialize(params) @Image = params['Image'] @Url = params['Url'] @RspImgType = params['RspImgType'] @Scene = params['Scene'] end end # SegmentPortraitPic返回参数结构体 class SegmentPortraitPicResponse < TencentCloud::Common::AbstractModel # @param ResultImage: 处理后的图片 base64 数据,透明背景图。 # 注意:此字段可能返回 null,表示取不到有效值。 # @type ResultImage: String # @param ResultMask: 一个通过 base64 编码的文件,解码后文件由 Float 型浮点数组成。这些浮点数代表原图从左上角开始的每一行的每一个像素点,每一个浮点数的值是原图相应像素点位于人体轮廓内的置信度(0-1)转化的灰度值(0-255)。 # 注意:此字段可能返回 null,表示取不到有效值。 # @type ResultMask: String # @param HasForeground: 图片是否存在前景。 # 注意:此字段可能返回 null,表示取不到有效值。 # @type HasForeground: Boolean # @param ResultImageUrl: 支持将处理过的图片 base64 数据,透明背景图以Url的形式返回值,Url有效期为30分钟。 # 注意:此字段可能返回 null,表示取不到有效值。 # @type ResultImageUrl: String # @param ResultMaskUrl: 一个通过 base64 编码的文件,解码后文件由 Float 型浮点数组成。支持以Url形式的返回值;Url有效期为30分钟。 # 注意:此字段可能返回 null,表示取不到有效值。 # @type ResultMaskUrl: String # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 # @type RequestId: String attr_accessor :ResultImage, :ResultMask, :HasForeground, :ResultImageUrl, :ResultMaskUrl, :RequestId def initialize(resultimage=nil, resultmask=nil, hasforeground=nil, resultimageurl=nil, resultmaskurl=nil, requestid=nil) @ResultImage = resultimage @ResultMask = resultmask @HasForeground = hasforeground @ResultImageUrl = resultimageurl @ResultMaskUrl = resultmaskurl @RequestId = requestid end def deserialize(params) @ResultImage = params['ResultImage'] @ResultMask = params['ResultMask'] @HasForeground = params['HasForeground'] @ResultImageUrl = params['ResultImageUrl'] @ResultMaskUrl = params['ResultMaskUrl'] @RequestId = params['RequestId'] end end # 此参数为分割选项,请根据需要选择自己所想从图片中分割的部分。注意所有选项均为非必选,如未选择则值默认为false, 但是必须要保证多于一个选项的描述为true。 class SegmentationOptions < TencentCloud::Common::AbstractModel # @param Background: 分割选项-背景 # @type Background: Boolean # @param Hair: 分割选项-头发 # @type Hair: Boolean # @param LeftEyebrow: 分割选项-左眉 # @type LeftEyebrow: Boolean # @param RightEyebrow: 分割选项-右眉 # @type RightEyebrow: Boolean # @param LeftEye: 分割选项-左眼 # @type LeftEye: Boolean # @param RightEye: 分割选项-右眼 # @type RightEye: Boolean # @param Nose: 分割选项-鼻子 # @type Nose: Boolean # @param UpperLip: 分割选项-上唇 # @type UpperLip: Boolean # @param LowerLip: 分割选项-下唇 # @type LowerLip: Boolean # @param Tooth: 分割选项-牙齿 # @type Tooth: Boolean # @param Mouth: 分割选项-口腔(不包含牙齿) # @type Mouth: Boolean # @param LeftEar: 分割选项-左耳 # @type LeftEar: Boolean # @param RightEar: 分割选项-右耳 # @type RightEar: Boolean # @param Face: 分割选项-面部(不包含眼、耳、口、鼻等五官及头发。) # @type Face: Boolean # @param Head: 复合分割选项-头部(包含所有的头部元素,相关装饰除外) # @type Head: Boolean # @param Body: 分割选项-身体(包含脖子) # @type Body: Boolean # @param Hat: 分割选项-帽子 # @type Hat: Boolean # @param Headdress: 分割选项-头饰 # @type Headdress: Boolean # @param Earrings: 分割选项-耳环 # @type Earrings: Boolean # @param Necklace: 分割选项-项链 # @type Necklace: Boolean # @param Belongings: 分割选项-随身物品( 例如伞、包、手机等。 ) # @type Belongings: Boolean attr_accessor :Background, :Hair, :LeftEyebrow, :RightEyebrow, :LeftEye, :RightEye, :Nose, :UpperLip, :LowerLip, :Tooth, :Mouth, :LeftEar, :RightEar, :Face, :Head, :Body, :Hat, :Headdress, :Earrings, :Necklace, :Belongings def initialize(background=nil, hair=nil, lefteyebrow=nil, righteyebrow=nil, lefteye=nil, righteye=nil, nose=nil, upperlip=nil, lowerlip=nil, tooth=nil, mouth=nil, leftear=nil, rightear=nil, face=nil, head=nil, body=nil, hat=nil, headdress=nil, earrings=nil, necklace=nil, belongings=nil) @Background = background @Hair = hair @LeftEyebrow = lefteyebrow @RightEyebrow = righteyebrow @LeftEye = lefteye @RightEye = righteye @Nose = nose @UpperLip = upperlip @LowerLip = lowerlip @Tooth = tooth @Mouth = mouth @LeftEar = leftear @RightEar = rightear @Face = face @Head = head @Body = body @Hat = hat @Headdress = headdress @Earrings = earrings @Necklace = necklace @Belongings = belongings end def deserialize(params) @Background = params['Background'] @Hair = params['Hair'] @LeftEyebrow = params['LeftEyebrow'] @RightEyebrow = params['RightEyebrow'] @LeftEye = params['LeftEye'] @RightEye = params['RightEye'] @Nose = params['Nose'] @UpperLip = params['UpperLip'] @LowerLip = params['LowerLip'] @Tooth = params['Tooth'] @Mouth = params['Mouth'] @LeftEar = params['LeftEar'] @RightEar = params['RightEar'] @Face = params['Face'] @Head = params['Head'] @Body = params['Body'] @Hat = params['Hat'] @Headdress = params['Headdress'] @Earrings = params['Earrings'] @Necklace = params['Necklace'] @Belongings = params['Belongings'] end end # TerminateSegmentationTask请求参数结构体 class TerminateSegmentationTaskRequest < TencentCloud::Common::AbstractModel # @param TaskID: 在提交分割任务成功时返回的任务标识ID。 # @type TaskID: String attr_accessor :TaskID def initialize(taskid=nil) @TaskID = taskid end def deserialize(params) @TaskID = params['TaskID'] end end # TerminateSegmentationTask返回参数结构体 class TerminateSegmentationTaskResponse < TencentCloud::Common::AbstractModel # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 # @type RequestId: String attr_accessor :RequestId def initialize(requestid=nil) @RequestId = requestid end def deserialize(params) @RequestId = params['RequestId'] end end # 人体动作轨迹信息 class Trace < TencentCloud::Common::AbstractModel # @param Images: 人体动作轨迹图片 Base64 数组。 # 数组长度最小为1最大为5。 # 单个图片 base64 编码后大小不可超过2M。 # 支持PNG、JPG、JPEG、BMP,不支持 GIF 图片。 # @type Images: Array # @param Urls: 人体动作轨迹图片 Url 数组。 # 数组长度最小为1最大为5。 # 单个图片 base64 编码后大小不可超过2M。 # Urls、Images必须提供一个,如果都提供,只使用 Urls。 # 图片存储于腾讯云的Url可保障更高下载速度和稳定性,建议图片存储于腾讯云。 # 非腾讯云存储的Url速度和稳定性可能受一定影响。 # 支持PNG、JPG、JPEG、BMP,不支持 GIF 图片。 # @type Urls: Array # @param BodyRects: 若输入的Images 和 Urls 是已经裁剪后的人体小图,则可以忽略本参数。 # 若否,或图片中包含多个人体,则需要通过本参数来指定图片中的人体框。 # 顺序对应 Images 或 Urls 中的顺序。 # 当不输入本参数时,我们将认为输入图片已是经过裁剪后的人体小图,不会进行人体检测而直接进行特征提取处理。 # @type BodyRects: Array attr_accessor :Images, :Urls, :BodyRects def initialize(images=nil, urls=nil, bodyrects=nil) @Images = images @Urls = urls @BodyRects = bodyrects end def deserialize(params) @Images = params['Images'] @Urls = params['Urls'] unless params['BodyRects'].nil? @BodyRects = [] params['BodyRects'].each do |i| bodyrect_tmp = BodyRect.new bodyrect_tmp.deserialize(i) @BodyRects << bodyrect_tmp end end end end # 人体动作轨迹信息。 class TraceInfo < TencentCloud::Common::AbstractModel # @param TraceId: 人体动作轨迹ID。 # @type TraceId: String # @param BodyIds: 包含的人体动作轨迹图片Id列表。 # @type BodyIds: Array attr_accessor :TraceId, :BodyIds def initialize(traceid=nil, bodyids=nil) @TraceId = traceid @BodyIds = bodyids end def deserialize(params) @TraceId = params['TraceId'] @BodyIds = params['BodyIds'] end end # 上衣属性信息 class UpperBodyCloth < TencentCloud::Common::AbstractModel # @param Texture: 上衣纹理信息。 # @type Texture: :class:`Tencentcloud::Bda.v20200324.models.UpperBodyClothTexture` # @param Color: 上衣颜色信息。 # @type Color: :class:`Tencentcloud::Bda.v20200324.models.UpperBodyClothColor` # @param Sleeve: 上衣衣袖信息。 # @type Sleeve: :class:`Tencentcloud::Bda.v20200324.models.UpperBodyClothSleeve` attr_accessor :Texture, :Color, :Sleeve def initialize(texture=nil, color=nil, sleeve=nil) @Texture = texture @Color = color @Sleeve = sleeve end def deserialize(params) unless params['Texture'].nil? @Texture = UpperBodyClothTexture.new @Texture.deserialize(params['Texture']) end unless params['Color'].nil? @Color = UpperBodyClothColor.new @Color.deserialize(params['Color']) end unless params['Sleeve'].nil? @Sleeve = UpperBodyClothSleeve.new @Sleeve.deserialize(params['Sleeve']) end end end # 上衣颜色信息。 class UpperBodyClothColor < TencentCloud::Common::AbstractModel # @param Type: 上衣颜色信息,返回值为以下集合中的一个 {红色系, 黄色系, 绿色系, 蓝色系, 黑色系, 灰白色系。 # @type Type: String # @param Probability: Type识别概率值,[0.0,1.0],代表判断正确的概率。如0.8则代表有Type值有80%概率正确。 # @type Probability: Float attr_accessor :Type, :Probability def initialize(type=nil, probability=nil) @Type = type @Probability = probability end def deserialize(params) @Type = params['Type'] @Probability = params['Probability'] end end # 上衣衣袖信息。 class UpperBodyClothSleeve < TencentCloud::Common::AbstractModel # @param Type: 上衣衣袖信息, 返回值为以下集合中的一个 {长袖, 短袖}。 # @type Type: String # @param Probability: Type识别概率值,[0.0,1.0],代表判断正确的概率。如0.8则代表有Type值有80%概率正确。 # @type Probability: Float attr_accessor :Type, :Probability def initialize(type=nil, probability=nil) @Type = type @Probability = probability end def deserialize(params) @Type = params['Type'] @Probability = params['Probability'] end end # 上衣纹理信息。 class UpperBodyClothTexture < TencentCloud::Common::AbstractModel # @param Type: 上衣纹理信息,返回值为以下集合中的一个, {纯色, 格子, 大色块}。 # @type Type: String # @param Probability: Type识别概率值,[0.0,1.0], 代表判断正确的概率。如0.8则代表有Type值有80%概率正确。 # @type Probability: Float attr_accessor :Type, :Probability def initialize(type=nil, probability=nil) @Type = type @Probability = probability end def deserialize(params) @Type = params['Type'] @Probability = params['Probability'] end end # 视频基础信息 class VideoBasicInformation < TencentCloud::Common::AbstractModel # @param FrameWidth: 视频宽度 # @type FrameWidth: Integer # @param FrameHeight: 视频高度 # @type FrameHeight: Integer # @param FramesPerSecond: 视频帧速率(FPS) # @type FramesPerSecond: Integer # @param Duration: 视频时长 # @type Duration: Float # @param TotalFrames: 视频帧数 # @type TotalFrames: Integer attr_accessor :FrameWidth, :FrameHeight, :FramesPerSecond, :Duration, :TotalFrames def initialize(framewidth=nil, frameheight=nil, framespersecond=nil, duration=nil, totalframes=nil) @FrameWidth = framewidth @FrameHeight = frameheight @FramesPerSecond = framespersecond @Duration = duration @TotalFrames = totalframes end def deserialize(params) @FrameWidth = params['FrameWidth'] @FrameHeight = params['FrameHeight'] @FramesPerSecond = params['FramesPerSecond'] @Duration = params['Duration'] @TotalFrames = params['TotalFrames'] end end end end end