zhangmeng
2019-06-18 3e6f637916da4eb7b27917d374f02bfe75d5c58e
update facedetect result
2个文件已修改
296 ■■■■ 已修改文件
sdk.pb.go 291 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
sdk.proto 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
sdk.pb.go
@@ -496,16 +496,67 @@
}
// sdk face property
type ParamFacePos struct {
type ResultFaceDetect struct {
    Pos    *FacePos    `protobuf:"bytes,1,opt,name=pos,proto3" json:"pos,omitempty"`
    Result *ThftResult `protobuf:"bytes,2,opt,name=result,proto3" json:"result,omitempty"`
}
func (m *ResultFaceDetect) Reset()         { *m = ResultFaceDetect{} }
func (m *ResultFaceDetect) String() string { return proto.CompactTextString(m) }
func (*ResultFaceDetect) ProtoMessage()    {}
func (*ResultFaceDetect) Descriptor() ([]byte, []int) {
    return fileDescriptor_70decb0fb6f436df, []int{6}
}
func (m *ResultFaceDetect) XXX_Unmarshal(b []byte) error {
    return m.Unmarshal(b)
}
func (m *ResultFaceDetect) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
    if deterministic {
        return xxx_messageInfo_ResultFaceDetect.Marshal(b, m, deterministic)
    } else {
        b = b[:cap(b)]
        n, err := m.MarshalTo(b)
        if err != nil {
            return nil, err
        }
        return b[:n], nil
    }
}
func (m *ResultFaceDetect) XXX_Merge(src proto.Message) {
    xxx_messageInfo_ResultFaceDetect.Merge(m, src)
}
func (m *ResultFaceDetect) XXX_Size() int {
    return m.Size()
}
func (m *ResultFaceDetect) XXX_DiscardUnknown() {
    xxx_messageInfo_ResultFaceDetect.DiscardUnknown(m)
}
var xxx_messageInfo_ResultFaceDetect proto.InternalMessageInfo
func (m *ResultFaceDetect) GetPos() *FacePos {
    if m != nil {
        return m.Pos
    }
    return nil
}
func (m *ResultFaceDetect) GetResult() *ThftResult {
    if m != nil {
        return m.Result
    }
    return nil
}
type ParamFacePos struct {
    Faces []*ResultFaceDetect `protobuf:"bytes,1,rep,name=faces,proto3" json:"faces,omitempty"`
}
func (m *ParamFacePos) Reset()         { *m = ParamFacePos{} }
func (m *ParamFacePos) String() string { return proto.CompactTextString(m) }
func (*ParamFacePos) ProtoMessage()    {}
func (*ParamFacePos) Descriptor() ([]byte, []int) {
    return fileDescriptor_70decb0fb6f436df, []int{6}
    return fileDescriptor_70decb0fb6f436df, []int{7}
}
func (m *ParamFacePos) XXX_Unmarshal(b []byte) error {
    return m.Unmarshal(b)
@@ -534,16 +585,9 @@
var xxx_messageInfo_ParamFacePos proto.InternalMessageInfo
func (m *ParamFacePos) GetPos() *FacePos {
func (m *ParamFacePos) GetFaces() []*ResultFaceDetect {
    if m != nil {
        return m.Pos
    }
    return nil
}
func (m *ParamFacePos) GetResult() *ThftResult {
    if m != nil {
        return m.Result
        return m.Faces
    }
    return nil
}
@@ -558,7 +602,7 @@
func (m *ParamFaceCompare) String() string { return proto.CompactTextString(m) }
func (*ParamFaceCompare) ProtoMessage()    {}
func (*ParamFaceCompare) Descriptor() ([]byte, []int) {
    return fileDescriptor_70decb0fb6f436df, []int{7}
    return fileDescriptor_70decb0fb6f436df, []int{8}
}
func (m *ParamFaceCompare) XXX_Unmarshal(b []byte) error {
    return m.Unmarshal(b)
@@ -610,7 +654,7 @@
func (m *ParamYoloObj) String() string { return proto.CompactTextString(m) }
func (*ParamYoloObj) ProtoMessage()    {}
func (*ParamYoloObj) Descriptor() ([]byte, []int) {
    return fileDescriptor_70decb0fb6f436df, []int{8}
    return fileDescriptor_70decb0fb6f436df, []int{9}
}
func (m *ParamYoloObj) XXX_Unmarshal(b []byte) error {
    return m.Unmarshal(b)
@@ -653,6 +697,7 @@
    proto.RegisterType((*FacePos)(nil), "protomsg.FacePos")
    proto.RegisterType((*FaceInfo)(nil), "protomsg.FaceInfo")
    proto.RegisterType((*ObjInfo)(nil), "protomsg.ObjInfo")
    proto.RegisterType((*ResultFaceDetect)(nil), "protomsg.ResultFaceDetect")
    proto.RegisterType((*ParamFacePos)(nil), "protomsg.ParamFacePos")
    proto.RegisterType((*ParamFaceCompare)(nil), "protomsg.ParamFaceCompare")
    proto.RegisterType((*ParamYoloObj)(nil), "protomsg.ParamYoloObj")
@@ -661,43 +706,45 @@
func init() { proto.RegisterFile("sdk.proto", fileDescriptor_70decb0fb6f436df) }
var fileDescriptor_70decb0fb6f436df = []byte{
    // 579 bytes of a gzipped FileDescriptorProto
    0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x54, 0x4d, 0x6f, 0xd3, 0x40,
    0x10, 0xad, 0xe3, 0xda, 0x69, 0xa6, 0x11, 0x94, 0xa5, 0x42, 0x16, 0x07, 0x2b, 0x32, 0x88, 0x06,
    0x01, 0x41, 0x84, 0x03, 0x37, 0x24, 0xa0, 0x20, 0x45, 0x02, 0x1a, 0xad, 0xe0, 0xc0, 0x71, 0xed,
    0xac, 0x3f, 0x8a, 0xe3, 0x5d, 0xec, 0x8d, 0x8a, 0xff, 0x05, 0x3f, 0x8b, 0x03, 0x87, 0x1e, 0x39,
    0xa2, 0x44, 0xfc, 0x0f, 0xb4, 0xe3, 0x75, 0x92, 0x4a, 0xe1, 0xc4, 0x95, 0x53, 0xf6, 0xcd, 0x3c,
    0xcf, 0x9b, 0x79, 0xbb, 0x13, 0xe8, 0x55, 0xb3, 0xcf, 0x23, 0x59, 0x0a, 0x25, 0xc8, 0x01, 0xfe,
    0xcc, 0xab, 0xe4, 0x36, 0x84, 0xac, 0xe2, 0x4d, 0x34, 0x98, 0x80, 0x33, 0x99, 0xb3, 0x84, 0x93,
    0x63, 0x70, 0x2e, 0xb2, 0x99, 0x4a, 0x3d, 0x6b, 0x60, 0x0d, 0x1d, 0xda, 0x00, 0x72, 0x0b, 0xdc,
    0x94, 0x67, 0x49, 0xaa, 0xbc, 0x0e, 0x86, 0x0d, 0x22, 0x04, 0xf6, 0x67, 0x4c, 0x31, 0xcf, 0x1e,
    0x58, 0xc3, 0x3e, 0xc5, 0x73, 0x90, 0x40, 0xef, 0x0d, 0x8b, 0xf8, 0x8b, 0x22, 0xc9, 0x39, 0x39,
    0x02, 0xbb, 0x66, 0x17, 0xa6, 0x98, 0x3e, 0x6a, 0x01, 0x99, 0xa9, 0x28, 0x35, 0x95, 0x1a, 0xa0,
    0x0b, 0x95, 0x22, 0xcf, 0xb1, 0x90, 0x43, 0xf1, 0x4c, 0x7c, 0x80, 0x48, 0x14, 0x71, 0x36, 0xe3,
    0x45, 0xc4, 0xbd, 0xfd, 0x81, 0x35, 0xec, 0xd0, 0xad, 0x48, 0xf0, 0x15, 0xe0, 0x43, 0x1a, 0x2b,
    0xca, 0xab, 0x45, 0xae, 0x74, 0x8b, 0x09, 0x2f, 0x66, 0xbc, 0x34, 0x62, 0x06, 0xe9, 0x0e, 0x58,
    0xc2, 0x8d, 0x9a, 0x3e, 0xa2, 0x16, 0x8b, 0xf8, 0x5a, 0x8b, 0x45, 0x5c, 0x7f, 0x1d, 0x72, 0xb6,
    0x50, 0x35, 0xea, 0x38, 0xd4, 0x20, 0xdd, 0x6d, 0x35, 0xcf, 0x72, 0xee, 0x39, 0x4d, 0xb7, 0x08,
    0x82, 0x1f, 0x1d, 0xe8, 0xea, 0x19, 0xa7, 0xa2, 0x22, 0xf7, 0xc0, 0x2d, 0x23, 0x0d, 0x50, 0xf7,
    0x70, 0x7c, 0x6d, 0xd4, 0x1a, 0x3c, 0xa2, 0x3c, 0x52, 0xd4, 0x64, 0xc9, 0x23, 0xe8, 0x49, 0xf5,
    0x96, 0xc7, 0xea, 0x75, 0xdd, 0x74, 0x73, 0x38, 0xbe, 0xbe, 0xa1, 0x4e, 0x45, 0x56, 0x28, 0xba,
    0x61, 0x90, 0xc7, 0x00, 0x52, 0x51, 0x6d, 0xb2, 0xe6, 0xdb, 0xbb, 0xf9, 0x5b, 0x14, 0x72, 0x1f,
    0xba, 0x52, 0xbd, 0x13, 0x0b, 0x95, 0xe2, 0x08, 0x3b, 0xd8, 0x6d, 0x9e, 0x9c, 0x80, 0x2b, 0xd5,
    0x7b, 0x51, 0x35, 0x53, 0xed, 0x60, 0x9a, 0x34, 0x79, 0x00, 0x6e, 0x8c, 0xf7, 0xe8, 0xb9, 0x48,
    0xbc, 0xb9, 0x21, 0xae, 0xaf, 0x98, 0x1a, 0x0a, 0xf1, 0xa0, 0xfb, 0x65, 0xc1, 0xf2, 0x4c, 0xd5,
    0x5e, 0x17, 0xcd, 0x6a, 0xa1, 0xbe, 0xc8, 0x98, 0x45, 0x19, 0xcb, 0x4f, 0xf5, 0x5b, 0x39, 0xc0,
    0xb7, 0xb2, 0x15, 0x09, 0x7e, 0x77, 0xe0, 0x40, 0xd7, 0x9b, 0x14, 0xb1, 0xf8, 0xef, 0xe7, 0x3f,
    0xfb, 0xa9, 0x1f, 0x73, 0xac, 0xed, 0x3c, 0xf5, 0x7a, 0x03, 0x6b, 0x68, 0x53, 0x83, 0x82, 0x8f,
    0xd0, 0x3d, 0x0b, 0xcf, 0xd1, 0xe5, 0xbb, 0xe0, 0x94, 0xd1, 0x59, 0x78, 0xfe, 0x17, 0x93, 0x9b,
    0xa4, 0xde, 0x1d, 0x55, 0xcb, 0x76, 0x77, 0x54, 0x2d, 0xf5, 0xee, 0xc8, 0x52, 0x84, 0x68, 0x60,
    0x87, 0xe2, 0x39, 0x60, 0xd0, 0x9f, 0xb2, 0x92, 0xcd, 0xdb, 0x8d, 0xb8, 0x03, 0xb6, 0x14, 0x95,
    0xa9, 0x7c, 0xe3, 0xea, 0x88, 0x53, 0x51, 0x51, 0x9d, 0x25, 0x0f, 0xc1, 0x2d, 0x71, 0x71, 0xcd,
    0xdd, 0x1d, 0x6f, 0x78, 0x9b, 0xa5, 0xa6, 0x86, 0x13, 0x3c, 0x87, 0xa3, 0xb5, 0xc4, 0x2b, 0x31,
    0x97, 0xac, 0xc4, 0x7f, 0xaa, 0x98, 0x33, 0xf5, 0x04, 0x85, 0xfa, 0xb4, 0x01, 0x6d, 0x74, 0x8c,
    0x65, 0x4d, 0x74, 0x1c, 0x3c, 0x33, 0x2d, 0x7e, 0x12, 0xb9, 0xd0, 0x83, 0x9d, 0x80, 0x93, 0x15,
    0x31, 0x36, 0x69, 0x5f, 0x6d, 0xd2, 0x18, 0x44, 0x9b, 0xfc, 0x4b, 0xef, 0xfb, 0xd2, 0xb7, 0x2e,
    0x97, 0xbe, 0xf5, 0x6b, 0xe9, 0x5b, 0xdf, 0x56, 0xfe, 0xde, 0xe5, 0xca, 0xdf, 0xfb, 0xb9, 0xf2,
    0xf7, 0x42, 0x17, 0x3f, 0x79, 0xfa, 0x27, 0x00, 0x00, 0xff, 0xff, 0x60, 0x61, 0x8c, 0x27, 0x5b,
    // 611 bytes of a gzipped FileDescriptorProto
    0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x54, 0x3f, 0x8f, 0xd3, 0x4e,
    0x10, 0x3d, 0xc7, 0x67, 0xe7, 0x32, 0x89, 0x7e, 0xbf, 0xb0, 0x9c, 0x90, 0x75, 0x85, 0x15, 0x19,
    0xc4, 0x05, 0x01, 0x01, 0x42, 0x41, 0x87, 0xf8, 0x13, 0x90, 0x22, 0x01, 0x17, 0xad, 0xa0, 0xa0,
    0x5c, 0x3b, 0xeb, 0x3f, 0x87, 0xe3, 0x35, 0xf6, 0x46, 0x87, 0xbf, 0x05, 0x1f, 0x8b, 0x82, 0xe2,
    0x4a, 0x4a, 0x94, 0x88, 0xef, 0x81, 0x66, 0xbd, 0x4e, 0x72, 0x52, 0xa8, 0x68, 0xa9, 0xb2, 0x6f,
    0xe6, 0x79, 0xe6, 0xcd, 0xdb, 0x9d, 0x40, 0xa7, 0x9c, 0x7f, 0x1a, 0xe5, 0x85, 0x90, 0x82, 0x1c,
    0xa9, 0x9f, 0x45, 0x19, 0x9d, 0x80, 0xcf, 0x4a, 0x5e, 0x47, 0xbd, 0x29, 0x58, 0xd3, 0x05, 0x8b,
    0x38, 0x39, 0x06, 0xeb, 0x22, 0x99, 0xcb, 0xd8, 0x31, 0x06, 0xc6, 0xd0, 0xa2, 0x35, 0x20, 0x37,
    0xc0, 0x8e, 0x79, 0x12, 0xc5, 0xd2, 0x69, 0xa9, 0xb0, 0x46, 0x84, 0xc0, 0xe1, 0x9c, 0x49, 0xe6,
    0x98, 0x03, 0x63, 0xd8, 0xa3, 0xea, 0xec, 0x45, 0xd0, 0x79, 0xcd, 0x02, 0xfe, 0x3c, 0x8b, 0x52,
    0x4e, 0xfa, 0x60, 0x56, 0xec, 0x42, 0x17, 0xc3, 0x23, 0x36, 0xc8, 0x13, 0x19, 0xc4, 0xba, 0x52,
    0x0d, 0xb0, 0x50, 0x21, 0xd2, 0x54, 0x15, 0xb2, 0xa8, 0x3a, 0x13, 0x17, 0x20, 0x10, 0x59, 0x98,
    0xcc, 0x79, 0x16, 0x70, 0xe7, 0x70, 0x60, 0x0c, 0x5b, 0x74, 0x27, 0xe2, 0x7d, 0x01, 0x78, 0x1f,
    0x87, 0x92, 0xf2, 0x72, 0x99, 0x4a, 0x94, 0x18, 0xf1, 0x6c, 0xce, 0x0b, 0xdd, 0x4c, 0x23, 0x54,
    0xc0, 0x22, 0xae, 0xbb, 0xe1, 0x51, 0xf5, 0x62, 0x01, 0xdf, 0xf4, 0x62, 0x01, 0xc7, 0xaf, 0x7d,
    0xce, 0x96, 0xb2, 0x52, 0x7d, 0x2c, 0xaa, 0x11, 0xaa, 0x2d, 0x17, 0x49, 0xca, 0x1d, 0xab, 0x56,
    0xab, 0x80, 0xf7, 0xbd, 0x05, 0x6d, 0x9c, 0x71, 0x26, 0x4a, 0x72, 0x1b, 0xec, 0x22, 0x40, 0xa0,
    0xfa, 0x76, 0xc7, 0xff, 0x8d, 0x1a, 0x83, 0x47, 0x94, 0x07, 0x92, 0xea, 0x2c, 0xb9, 0x0f, 0x9d,
    0x5c, 0xbe, 0xe1, 0xa1, 0x7c, 0x55, 0xd5, 0x6a, 0xba, 0xe3, 0xff, 0xb7, 0xd4, 0x99, 0x48, 0x32,
    0x49, 0xb7, 0x0c, 0xf2, 0x00, 0x20, 0x97, 0x14, 0x4d, 0x46, 0xbe, 0xb9, 0x9f, 0xbf, 0x43, 0x21,
    0x77, 0xa0, 0x9d, 0xcb, 0xb7, 0x62, 0x29, 0x63, 0x35, 0xc2, 0x1e, 0x76, 0x93, 0x27, 0xa7, 0x60,
    0xe7, 0xf2, 0x9d, 0x28, 0xeb, 0xa9, 0xf6, 0x30, 0x75, 0x9a, 0xdc, 0x05, 0x3b, 0x54, 0xf7, 0xe8,
    0xd8, 0x8a, 0x78, 0x7d, 0x4b, 0xdc, 0x5c, 0x31, 0xd5, 0x14, 0xe2, 0x40, 0xfb, 0xf3, 0x92, 0xa5,
    0x89, 0xac, 0x9c, 0xb6, 0x32, 0xab, 0x81, 0x78, 0x91, 0x21, 0x0b, 0x12, 0x96, 0x4e, 0xf0, 0xad,
    0x1c, 0xa9, 0xb7, 0xb2, 0x13, 0xf1, 0x7e, 0xb5, 0xe0, 0x08, 0xeb, 0x4d, 0xb3, 0x50, 0xfc, 0xf3,
    0xf3, 0xaf, 0xfd, 0xc4, 0xc7, 0x1c, 0xa2, 0x9d, 0x13, 0xa7, 0x33, 0x30, 0x86, 0x26, 0xd5, 0xc8,
    0xfb, 0x00, 0xed, 0x33, 0xff, 0x5c, 0xb9, 0x7c, 0x0b, 0xac, 0x22, 0x38, 0xf3, 0xcf, 0xff, 0x60,
    0x72, 0x9d, 0xc4, 0xdd, 0x91, 0x55, 0xde, 0xec, 0x8e, 0xac, 0x72, 0xdc, 0x9d, 0xbc, 0x10, 0xbe,
    0x32, 0xb0, 0x45, 0xd5, 0xd9, 0xe3, 0xd0, 0xaf, 0x77, 0x10, 0x67, 0x98, 0x70, 0xc9, 0x03, 0x49,
    0x6e, 0x82, 0x99, 0x8b, 0x52, 0x57, 0xbf, 0x76, 0x75, 0xcc, 0x99, 0x28, 0x29, 0x66, 0xc9, 0x3d,
    0xb0, 0x0b, 0xf5, 0xa1, 0xbe, 0xbf, 0xe3, 0x2d, 0x6f, 0xbb, 0xd8, 0x54, 0x73, 0xbc, 0x67, 0xd0,
    0x9b, 0xb1, 0x82, 0x2d, 0x9a, 0xc5, 0x7b, 0x08, 0x16, 0xce, 0x85, 0x4d, 0xcc, 0x61, 0x77, 0x7c,
    0xb2, 0x3b, 0xc2, 0x55, 0x35, 0xb4, 0x26, 0x7a, 0x4f, 0xa1, 0xbf, 0xa9, 0xf0, 0x52, 0x2c, 0x72,
    0x56, 0xa8, 0xff, 0xbb, 0x90, 0x33, 0xf9, 0x48, 0x49, 0xed, 0xd1, 0x1a, 0x34, 0xd1, 0xb1, 0x12,
    0xa6, 0xa3, 0x63, 0xef, 0x89, 0x56, 0xf0, 0x51, 0xa4, 0x02, 0xed, 0x39, 0x05, 0x2b, 0xc9, 0x42,
    0xd1, 0x28, 0xd8, 0x19, 0x53, 0xdb, 0x4c, 0xeb, 0xfc, 0x0b, 0xe7, 0xdb, 0xca, 0x35, 0x2e, 0x57,
    0xae, 0xf1, 0x73, 0xe5, 0x1a, 0x5f, 0xd7, 0xee, 0xc1, 0xe5, 0xda, 0x3d, 0xf8, 0xb1, 0x76, 0x0f,
    0x7c, 0x5b, 0x7d, 0xf2, 0xf8, 0x77, 0x00, 0x00, 0x00, 0xff, 0xff, 0x77, 0xa6, 0x89, 0xa5, 0xa1,
    0x05, 0x00, 0x00,
}
@@ -1039,7 +1086,7 @@
    return i, nil
}
func (m *ParamFacePos) Marshal() (dAtA []byte, err error) {
func (m *ResultFaceDetect) Marshal() (dAtA []byte, err error) {
    size := m.Size()
    dAtA = make([]byte, size)
    n, err := m.MarshalTo(dAtA)
@@ -1049,7 +1096,7 @@
    return dAtA[:n], nil
}
func (m *ParamFacePos) MarshalTo(dAtA []byte) (int, error) {
func (m *ResultFaceDetect) MarshalTo(dAtA []byte) (int, error) {
    var i int
    _ = i
    var l int
@@ -1073,6 +1120,36 @@
            return 0, err15
        }
        i += n15
    }
    return i, nil
}
func (m *ParamFacePos) Marshal() (dAtA []byte, err error) {
    size := m.Size()
    dAtA = make([]byte, size)
    n, err := m.MarshalTo(dAtA)
    if err != nil {
        return nil, err
    }
    return dAtA[:n], nil
}
func (m *ParamFacePos) MarshalTo(dAtA []byte) (int, error) {
    var i int
    _ = i
    var l int
    _ = l
    if len(m.Faces) > 0 {
        for _, msg := range m.Faces {
            dAtA[i] = 0xa
            i++
            i = encodeVarintSdk(dAtA, i, uint64(msg.Size()))
            n, err := msg.MarshalTo(dAtA[i:])
            if err != nil {
                return 0, err
            }
            i += n
        }
    }
    return i, nil
}
@@ -1312,7 +1389,7 @@
    return n
}
func (m *ParamFacePos) Size() (n int) {
func (m *ResultFaceDetect) Size() (n int) {
    if m == nil {
        return 0
    }
@@ -1325,6 +1402,21 @@
    if m.Result != nil {
        l = m.Result.Size()
        n += 1 + l + sovSdk(uint64(l))
    }
    return n
}
func (m *ParamFacePos) Size() (n int) {
    if m == nil {
        return 0
    }
    var l int
    _ = l
    if len(m.Faces) > 0 {
        for _, e := range m.Faces {
            l = e.Size()
            n += 1 + l + sovSdk(uint64(l))
        }
    }
    return n
}
@@ -2550,7 +2642,7 @@
    }
    return nil
}
func (m *ParamFacePos) Unmarshal(dAtA []byte) error {
func (m *ResultFaceDetect) Unmarshal(dAtA []byte) error {
    l := len(dAtA)
    iNdEx := 0
    for iNdEx < l {
@@ -2573,10 +2665,10 @@
        fieldNum := int32(wire >> 3)
        wireType := int(wire & 0x7)
        if wireType == 4 {
            return fmt.Errorf("proto: ParamFacePos: wiretype end group for non-group")
            return fmt.Errorf("proto: ResultFaceDetect: wiretype end group for non-group")
        }
        if fieldNum <= 0 {
            return fmt.Errorf("proto: ParamFacePos: illegal tag %d (wire type %d)", fieldNum, wire)
            return fmt.Errorf("proto: ResultFaceDetect: illegal tag %d (wire type %d)", fieldNum, wire)
        }
        switch fieldNum {
        case 1:
@@ -2675,6 +2767,93 @@
    }
    return nil
}
func (m *ParamFacePos) Unmarshal(dAtA []byte) error {
    l := len(dAtA)
    iNdEx := 0
    for iNdEx < l {
        preIndex := iNdEx
        var wire uint64
        for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
                return ErrIntOverflowSdk
            }
            if iNdEx >= l {
                return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            wire |= uint64(b&0x7F) << shift
            if b < 0x80 {
                break
            }
        }
        fieldNum := int32(wire >> 3)
        wireType := int(wire & 0x7)
        if wireType == 4 {
            return fmt.Errorf("proto: ParamFacePos: wiretype end group for non-group")
        }
        if fieldNum <= 0 {
            return fmt.Errorf("proto: ParamFacePos: illegal tag %d (wire type %d)", fieldNum, wire)
        }
        switch fieldNum {
        case 1:
            if wireType != 2 {
                return fmt.Errorf("proto: wrong wireType = %d for field Faces", wireType)
            }
            var msglen int
            for shift := uint(0); ; shift += 7 {
                if shift >= 64 {
                    return ErrIntOverflowSdk
                }
                if iNdEx >= l {
                    return io.ErrUnexpectedEOF
                }
                b := dAtA[iNdEx]
                iNdEx++
                msglen |= int(b&0x7F) << shift
                if b < 0x80 {
                    break
                }
            }
            if msglen < 0 {
                return ErrInvalidLengthSdk
            }
            postIndex := iNdEx + msglen
            if postIndex < 0 {
                return ErrInvalidLengthSdk
            }
            if postIndex > l {
                return io.ErrUnexpectedEOF
            }
            m.Faces = append(m.Faces, &ResultFaceDetect{})
            if err := m.Faces[len(m.Faces)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
                return err
            }
            iNdEx = postIndex
        default:
            iNdEx = preIndex
            skippy, err := skipSdk(dAtA[iNdEx:])
            if err != nil {
                return err
            }
            if skippy < 0 {
                return ErrInvalidLengthSdk
            }
            if (iNdEx + skippy) < 0 {
                return ErrInvalidLengthSdk
            }
            if (iNdEx + skippy) > l {
                return io.ErrUnexpectedEOF
            }
            iNdEx += skippy
        }
    }
    if iNdEx > l {
        return io.ErrUnexpectedEOF
    }
    return nil
}
func (m *ParamFaceCompare) Unmarshal(dAtA []byte) error {
    l := len(dAtA)
    iNdEx := 0
sdk.proto
@@ -51,10 +51,13 @@
}
// sdk face property
message ParamFacePos{
message ResultFaceDetect{
    FacePos pos = 1;
    ThftResult result = 2;
}
message ParamFacePos{
    repeated ResultFaceDetect faces = 1;
}
// sdk face extract
message ParamFaceCompare{
    bytes feat1 = 1;