zhangmeng
2019-06-25 8deeaf6c7d2b57d22018c5774fbc52ecde0aa8da
update feat comp
2个文件已修改
345 ■■■■ 已修改文件
sdk.pb.go 337 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
sdk.proto 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
sdk.pb.go
@@ -608,16 +608,67 @@
    return nil
}
type ResultFaceExtCom struct {
    Feats []byte `protobuf:"bytes,1,opt,name=feats,proto3" json:"feats,omitempty"`
    Comp  []byte `protobuf:"bytes,2,opt,name=comp,proto3" json:"comp,omitempty"`
}
func (m *ResultFaceExtCom) Reset()         { *m = ResultFaceExtCom{} }
func (m *ResultFaceExtCom) String() string { return proto.CompactTextString(m) }
func (*ResultFaceExtCom) ProtoMessage()    {}
func (*ResultFaceExtCom) Descriptor() ([]byte, []int) {
    return fileDescriptor_70decb0fb6f436df, []int{8}
}
func (m *ResultFaceExtCom) XXX_Unmarshal(b []byte) error {
    return m.Unmarshal(b)
}
func (m *ResultFaceExtCom) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
    if deterministic {
        return xxx_messageInfo_ResultFaceExtCom.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 *ResultFaceExtCom) XXX_Merge(src proto.Message) {
    xxx_messageInfo_ResultFaceExtCom.Merge(m, src)
}
func (m *ResultFaceExtCom) XXX_Size() int {
    return m.Size()
}
func (m *ResultFaceExtCom) XXX_DiscardUnknown() {
    xxx_messageInfo_ResultFaceExtCom.DiscardUnknown(m)
}
var xxx_messageInfo_ResultFaceExtCom proto.InternalMessageInfo
func (m *ResultFaceExtCom) GetFeats() []byte {
    if m != nil {
        return m.Feats
    }
    return nil
}
func (m *ResultFaceExtCom) GetComp() []byte {
    if m != nil {
        return m.Comp
    }
    return nil
}
type ParamFaceFeature struct {
    Feats         [][]byte `protobuf:"bytes,1,rep,name=feats,proto3" json:"feats,omitempty"`
    CompareResult []byte   `protobuf:"bytes,2,opt,name=compareResult,proto3" json:"compareResult,omitempty"`
    ExtComp []*ResultFaceExtCom `protobuf:"bytes,1,rep,name=extComp,proto3" json:"extComp,omitempty"`
}
func (m *ParamFaceFeature) Reset()         { *m = ParamFaceFeature{} }
func (m *ParamFaceFeature) String() string { return proto.CompactTextString(m) }
func (*ParamFaceFeature) ProtoMessage()    {}
func (*ParamFaceFeature) Descriptor() ([]byte, []int) {
    return fileDescriptor_70decb0fb6f436df, []int{8}
    return fileDescriptor_70decb0fb6f436df, []int{9}
}
func (m *ParamFaceFeature) XXX_Unmarshal(b []byte) error {
    return m.Unmarshal(b)
@@ -646,16 +697,9 @@
var xxx_messageInfo_ParamFaceFeature proto.InternalMessageInfo
func (m *ParamFaceFeature) GetFeats() [][]byte {
func (m *ParamFaceFeature) GetExtComp() []*ResultFaceExtCom {
    if m != nil {
        return m.Feats
    }
    return nil
}
func (m *ParamFaceFeature) GetCompareResult() []byte {
    if m != nil {
        return m.CompareResult
        return m.ExtComp
    }
    return nil
}
@@ -669,7 +713,7 @@
func (m *ParamYoloObj) String() string { return proto.CompactTextString(m) }
func (*ParamYoloObj) ProtoMessage()    {}
func (*ParamYoloObj) Descriptor() ([]byte, []int) {
    return fileDescriptor_70decb0fb6f436df, []int{9}
    return fileDescriptor_70decb0fb6f436df, []int{10}
}
func (m *ParamYoloObj) XXX_Unmarshal(b []byte) error {
    return m.Unmarshal(b)
@@ -714,6 +758,7 @@
    proto.RegisterType((*ObjInfo)(nil), "protomsg.ObjInfo")
    proto.RegisterType((*ResultFaceDetect)(nil), "protomsg.ResultFaceDetect")
    proto.RegisterType((*ParamFacePos)(nil), "protomsg.ParamFacePos")
    proto.RegisterType((*ResultFaceExtCom)(nil), "protomsg.ResultFaceExtCom")
    proto.RegisterType((*ParamFaceFeature)(nil), "protomsg.ParamFaceFeature")
    proto.RegisterType((*ParamYoloObj)(nil), "protomsg.ParamYoloObj")
}
@@ -721,47 +766,49 @@
func init() { proto.RegisterFile("sdk.proto", fileDescriptor_70decb0fb6f436df) }
var fileDescriptor_70decb0fb6f436df = []byte{
    // 640 bytes of a gzipped FileDescriptorProto
    0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x54, 0xc1, 0x6e, 0xd3, 0x40,
    0x10, 0xad, 0x9d, 0xda, 0x69, 0xa6, 0xa1, 0x94, 0xa5, 0x42, 0x56, 0x85, 0xac, 0xc8, 0x54, 0x34,
    0x08, 0x28, 0xa8, 0x1c, 0xb8, 0x02, 0x2a, 0x95, 0x2a, 0x41, 0x1b, 0xad, 0xe0, 0xc0, 0x71, 0x63,
    0xaf, 0x1d, 0x17, 0xdb, 0x6b, 0xec, 0x89, 0x4a, 0xfe, 0x82, 0xcf, 0xe2, 0xc0, 0xa1, 0x47, 0x8e,
    0xa8, 0x15, 0xff, 0x81, 0x66, 0xbd, 0xae, 0x53, 0xa9, 0x9c, 0xb8, 0x72, 0xca, 0xbe, 0x99, 0xe7,
    0x7d, 0xf3, 0x66, 0x76, 0x02, 0x83, 0x3a, 0xfa, 0xbc, 0x57, 0x56, 0x0a, 0x15, 0x5b, 0xd3, 0x3f,
    0x79, 0x9d, 0x6c, 0xc3, 0x54, 0xd4, 0xb2, 0x89, 0x06, 0x67, 0xe0, 0x1c, 0xe5, 0x22, 0x91, 0x6c,
    0x0b, 0x9c, 0xb3, 0x34, 0xc2, 0x99, 0x67, 0x8d, 0xac, 0xb1, 0xc3, 0x1b, 0xc0, 0xee, 0x81, 0x3b,
    0x93, 0x69, 0x32, 0x43, 0xcf, 0xd6, 0x61, 0x83, 0x18, 0x83, 0xd5, 0x48, 0xa0, 0xf0, 0x7a, 0x23,
    0x6b, 0x3c, 0xe4, 0xfa, 0xcc, 0xee, 0xc3, 0x00, 0xd3, 0x5c, 0xd6, 0x28, 0xf2, 0xd2, 0x5b, 0x1d,
    0x59, 0xe3, 0x01, 0xef, 0x02, 0x6c, 0x03, 0xec, 0x34, 0xf2, 0x9c, 0x91, 0x35, 0xee, 0x71, 0x3b,
    0x8d, 0x82, 0x04, 0x06, 0x87, 0x22, 0x94, 0xaf, 0x8b, 0x24, 0x93, 0x6c, 0x13, 0x7a, 0x0b, 0x71,
    0x66, 0xa4, 0xe9, 0x48, 0xe5, 0x94, 0x29, 0x86, 0x33, 0xa3, 0xdb, 0x00, 0x92, 0xad, 0x54, 0x96,
    0x69, 0x59, 0x87, 0xeb, 0x33, 0xf3, 0x01, 0x42, 0x55, 0xc4, 0x69, 0x24, 0x8b, 0x50, 0x6a, 0x5d,
    0x9b, 0x2f, 0x45, 0x82, 0xaf, 0x00, 0x1f, 0x66, 0x31, 0x72, 0x59, 0xcf, 0x33, 0x24, 0x43, 0x89,
    0x2c, 0x22, 0x59, 0x19, 0x31, 0x83, 0xa8, 0x02, 0x91, 0x48, 0xa3, 0x46, 0x47, 0xad, 0x25, 0x42,
    0x79, 0xa5, 0x25, 0x42, 0x49, 0x5f, 0x4f, 0xa5, 0x98, 0xe3, 0x42, 0xeb, 0x38, 0xdc, 0x20, 0xaa,
    0xb6, 0xce, 0xd3, 0x4c, 0x6a, 0x7f, 0x0e, 0x6f, 0x40, 0xf0, 0xc3, 0x86, 0x3e, 0x79, 0x9c, 0xa8,
    0x9a, 0x3d, 0x04, 0xb7, 0x0a, 0x09, 0x68, 0xdd, 0xf5, 0xfd, 0x8d, 0xbd, 0x76, 0x1c, 0x7b, 0x5c,
    0x86, 0xc8, 0x4d, 0x96, 0x3d, 0x85, 0x41, 0x89, 0xef, 0x64, 0x8c, 0x6f, 0x17, 0x4d, 0x35, 0xeb,
    0xfb, 0xb7, 0x3b, 0xea, 0x44, 0xa5, 0x05, 0xf2, 0x8e, 0xc1, 0x9e, 0x01, 0x94, 0xc8, 0x69, 0x24,
    0xc4, 0xef, 0xdd, 0xcc, 0x5f, 0xa2, 0xb0, 0x47, 0xd0, 0x2f, 0xf1, 0xbd, 0x9a, 0xe3, 0x4c, 0x5b,
    0xb8, 0x81, 0xdd, 0xe6, 0xd9, 0x2e, 0xb8, 0x25, 0x1e, 0xab, 0xba, 0x71, 0x75, 0x03, 0xd3, 0xa4,
    0xd9, 0x63, 0x70, 0x63, 0x3d, 0x47, 0xcf, 0xd5, 0xc4, 0xbb, 0x1d, 0xf1, 0x6a, 0xc4, 0xdc, 0x50,
    0x98, 0x07, 0xfd, 0x2f, 0x73, 0x91, 0xa5, 0xb8, 0xf0, 0xfa, 0xba, 0x59, 0x2d, 0xa4, 0x41, 0xc6,
    0x22, 0x4c, 0x45, 0x76, 0x40, 0x2f, 0x6b, 0x4d, 0xbf, 0xac, 0xa5, 0x48, 0xf0, 0xdb, 0x86, 0x35,
    0xba, 0xef, 0xa8, 0x88, 0xd5, 0xff, 0x7e, 0xfe, 0x73, 0x3f, 0xe9, 0x31, 0xc7, 0xd4, 0xce, 0x03,
    0x6f, 0xa0, 0xb7, 0xd2, 0xa0, 0xe0, 0x23, 0xf4, 0x4f, 0xa6, 0xa7, 0xba, 0xcb, 0x3b, 0xe0, 0x54,
    0xe1, 0xc9, 0xf4, 0xf4, 0x2f, 0x4d, 0x6e, 0x92, 0xb4, 0x3b, 0xb8, 0x28, 0xdb, 0xdd, 0xc1, 0x45,
    0x49, 0xbb, 0x53, 0x56, 0x6a, 0xaa, 0x1b, 0x68, 0x73, 0x7d, 0x0e, 0x24, 0x6c, 0x36, 0x3b, 0x48,
    0x1e, 0x0e, 0x24, 0xca, 0x10, 0xd9, 0x03, 0xe8, 0x95, 0xaa, 0x36, 0xb7, 0xdf, 0xb9, 0x6e, 0x73,
    0xa2, 0x6a, 0x4e, 0x59, 0xf6, 0x04, 0xdc, 0x4a, 0x7f, 0x68, 0xe6, 0xb7, 0xd5, 0xf1, 0xba, 0xc5,
    0xe6, 0x86, 0x13, 0xbc, 0x82, 0xe1, 0x44, 0x54, 0x22, 0x6f, 0x17, 0xef, 0x39, 0x38, 0xe4, 0x8b,
    0x44, 0x7a, 0xe3, 0xf5, 0xfd, 0xed, 0x65, 0x0b, 0xd7, 0xab, 0xe1, 0x0d, 0x31, 0x38, 0x86, 0xcd,
    0xab, 0x1b, 0x0e, 0xa5, 0xc0, 0x79, 0xa5, 0xff, 0x1d, 0x63, 0x29, 0xb0, 0xb9, 0x65, 0xc8, 0x1b,
    0xc0, 0x76, 0xe0, 0x56, 0xa8, 0xf2, 0x52, 0x54, 0x92, 0x77, 0x05, 0x0e, 0xf9, 0xf5, 0x60, 0xf0,
    0xd2, 0x54, 0xf4, 0x49, 0x65, 0x8a, 0xda, 0xb5, 0x0b, 0x4e, 0x5a, 0xc4, 0xaa, 0xad, 0x68, 0xc9,
    0xb6, 0x69, 0x3b, 0x6f, 0xf2, 0x6f, 0xbc, 0xef, 0x17, 0xbe, 0x75, 0x7e, 0xe1, 0x5b, 0xbf, 0x2e,
    0x7c, 0xeb, 0xdb, 0xa5, 0xbf, 0x72, 0x7e, 0xe9, 0xaf, 0xfc, 0xbc, 0xf4, 0x57, 0xa6, 0xae, 0xfe,
    0xe4, 0xc5, 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xa6, 0xab, 0xc2, 0xc9, 0xdf, 0x05, 0x00, 0x00,
    // 658 bytes of a gzipped FileDescriptorProto
    0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x53, 0x4d, 0x6f, 0xd3, 0x40,
    0x10, 0xad, 0x93, 0x3a, 0x69, 0xa6, 0x51, 0x29, 0x4b, 0x85, 0xac, 0x0a, 0x59, 0x91, 0x41, 0x34,
    0x08, 0x28, 0xa8, 0x20, 0x71, 0xe1, 0xc0, 0x47, 0x5b, 0x51, 0x09, 0x68, 0xb4, 0x82, 0x03, 0xc7,
    0x8d, 0xbd, 0x76, 0x5c, 0x6c, 0xaf, 0xb1, 0x27, 0x6a, 0xf3, 0x2f, 0xf8, 0x59, 0x1c, 0x38, 0xf4,
    0xc8, 0x11, 0xb5, 0xe2, 0x7f, 0xa0, 0xd9, 0x5d, 0x37, 0xa9, 0x54, 0xb8, 0x70, 0xe5, 0xe4, 0x79,
    0x3b, 0xcf, 0xfb, 0xe6, 0xcd, 0xec, 0x40, 0xaf, 0x8e, 0x3e, 0x6f, 0x97, 0x95, 0x42, 0xc5, 0x56,
    0xf4, 0x27, 0xaf, 0x93, 0x4d, 0x18, 0x8b, 0x5a, 0x9a, 0xd3, 0xe0, 0x18, 0xdc, 0x83, 0x5c, 0x24,
    0x92, 0x6d, 0x80, 0x7b, 0x9c, 0x46, 0x38, 0xf1, 0x9c, 0x81, 0x33, 0x74, 0xb9, 0x01, 0xec, 0x26,
    0x74, 0x26, 0x32, 0x4d, 0x26, 0xe8, 0xb5, 0xf4, 0xb1, 0x45, 0x8c, 0xc1, 0x72, 0x24, 0x50, 0x78,
    0xed, 0x81, 0x33, 0xec, 0x73, 0x1d, 0xb3, 0x5b, 0xd0, 0xc3, 0x34, 0x97, 0x35, 0x8a, 0xbc, 0xf4,
    0x96, 0x07, 0xce, 0xb0, 0xc7, 0xe7, 0x07, 0x6c, 0x0d, 0x5a, 0x69, 0xe4, 0xb9, 0x03, 0x67, 0xd8,
    0xe6, 0xad, 0x34, 0x0a, 0x12, 0xe8, 0xed, 0x8b, 0x50, 0xbe, 0x2c, 0x92, 0x4c, 0xb2, 0x75, 0x68,
    0xcf, 0xc4, 0xb1, 0x95, 0xa6, 0x90, 0xca, 0x29, 0x53, 0x0c, 0x27, 0x56, 0xd7, 0x00, 0x92, 0xad,
    0x54, 0x96, 0x69, 0x59, 0x97, 0xeb, 0x98, 0xf9, 0x00, 0xa1, 0x2a, 0xe2, 0x34, 0x92, 0x45, 0x28,
    0xb5, 0x6e, 0x8b, 0x2f, 0x9c, 0x04, 0x27, 0x00, 0x1f, 0x26, 0x31, 0x72, 0x59, 0x4f, 0x33, 0x24,
    0x43, 0x89, 0x2c, 0x22, 0x59, 0x59, 0x31, 0x8b, 0xa8, 0x02, 0x91, 0x48, 0xab, 0x46, 0xa1, 0xd6,
    0x12, 0xa1, 0xbc, 0xd0, 0x12, 0xa1, 0xa4, 0xbf, 0xc7, 0x52, 0x4c, 0x71, 0xa6, 0x75, 0x5c, 0x6e,
    0x11, 0x55, 0x5b, 0xe7, 0x69, 0x26, 0xb5, 0x3f, 0x97, 0x1b, 0x10, 0x7c, 0x6f, 0x41, 0x97, 0x3c,
    0x8e, 0x54, 0xcd, 0xee, 0x42, 0xa7, 0x0a, 0x09, 0x68, 0xdd, 0xd5, 0x9d, 0xb5, 0xed, 0x66, 0x1c,
    0xdb, 0x5c, 0x86, 0xc8, 0x6d, 0x96, 0x3d, 0x84, 0x5e, 0x89, 0x6f, 0x65, 0x8c, 0x7b, 0x33, 0x53,
    0xcd, 0xea, 0xce, 0xb5, 0x39, 0x75, 0xa4, 0xd2, 0x02, 0xf9, 0x9c, 0xc1, 0x1e, 0x01, 0x94, 0xc8,
    0x69, 0x24, 0xc4, 0x6f, 0x5f, 0xcd, 0x5f, 0xa0, 0xb0, 0x7b, 0xd0, 0x2d, 0xf1, 0x9d, 0x9a, 0xe2,
    0x44, 0x5b, 0xb8, 0x82, 0xdd, 0xe4, 0xd9, 0x16, 0x74, 0x4a, 0x7c, 0xaf, 0x6a, 0xe3, 0xea, 0x0a,
    0xa6, 0x4d, 0xb3, 0xfb, 0xd0, 0x89, 0xf5, 0x1c, 0xbd, 0x8e, 0x26, 0xde, 0x98, 0x13, 0x2f, 0x46,
    0xcc, 0x2d, 0x85, 0x79, 0xd0, 0xfd, 0x32, 0x15, 0x59, 0x8a, 0x33, 0xaf, 0xab, 0x9b, 0xd5, 0x40,
    0x1a, 0x64, 0x2c, 0xc2, 0x54, 0x64, 0xbb, 0xf4, 0xb2, 0x56, 0xf4, 0xcb, 0x5a, 0x38, 0x09, 0x7e,
    0xb5, 0x60, 0x85, 0xee, 0x3b, 0x28, 0x62, 0xf5, 0xbf, 0x9f, 0xff, 0xdc, 0x4f, 0x7a, 0xcc, 0x31,
    0xb5, 0x73, 0xd7, 0xeb, 0xe9, 0xad, 0xb4, 0x28, 0xf8, 0x08, 0xdd, 0xc3, 0xf1, 0x91, 0xee, 0xf2,
    0x1d, 0x70, 0xab, 0xf0, 0x70, 0x7c, 0xf4, 0x87, 0x26, 0x9b, 0x24, 0xed, 0x0e, 0xce, 0xca, 0x66,
    0x77, 0x70, 0x56, 0xd2, 0xee, 0x94, 0x95, 0x1a, 0xeb, 0x06, 0xb6, 0xb8, 0x8e, 0x03, 0x09, 0xeb,
    0x66, 0x07, 0xc9, 0xc3, 0xae, 0x44, 0x19, 0x22, 0xbb, 0x0d, 0xed, 0x52, 0xd5, 0xf6, 0xf6, 0xeb,
    0x97, 0x6d, 0x8e, 0x54, 0xcd, 0x29, 0xcb, 0x1e, 0x40, 0xa7, 0xd2, 0x3f, 0xda, 0xf9, 0x6d, 0xcc,
    0x79, 0xf3, 0xc5, 0xe6, 0x96, 0x13, 0xbc, 0x80, 0xfe, 0x48, 0x54, 0x22, 0x6f, 0x16, 0xef, 0x31,
    0xb8, 0xe4, 0x8b, 0x44, 0xda, 0xc3, 0xd5, 0x9d, 0xcd, 0x45, 0x0b, 0x97, 0xab, 0xe1, 0x86, 0x18,
    0x3c, 0x5f, 0x2c, 0x74, 0xef, 0x04, 0x5f, 0xab, 0x9c, 0x16, 0x3c, 0x96, 0x02, 0x4d, 0xa9, 0x7d,
    0x6e, 0x00, 0xd9, 0x0c, 0x55, 0x6e, 0x9c, 0xf7, 0xb9, 0x8e, 0x83, 0x37, 0xb0, 0x7e, 0xa1, 0xbf,
    0x2f, 0x05, 0x4e, 0x2b, 0xc9, 0x9e, 0x42, 0x57, 0xea, 0x7b, 0xca, 0xbf, 0x55, 0x61, 0xa4, 0x78,
    0x43, 0x0d, 0x9e, 0x59, 0x27, 0x9f, 0x54, 0xa6, 0xa8, 0xcd, 0x5b, 0xe0, 0xa6, 0x45, 0xac, 0x1a,
    0x27, 0x0b, 0xed, 0xb2, 0xe3, 0xe2, 0x26, 0xff, 0xca, 0xfb, 0x76, 0xe6, 0x3b, 0xa7, 0x67, 0xbe,
    0xf3, 0xf3, 0xcc, 0x77, 0xbe, 0x9e, 0xfb, 0x4b, 0xa7, 0xe7, 0xfe, 0xd2, 0x8f, 0x73, 0x7f, 0x69,
    0xdc, 0xd1, 0xbf, 0x3c, 0xf9, 0x1d, 0x00, 0x00, 0xff, 0xff, 0x6a, 0x16, 0x62, 0x30, 0x17, 0x06,
    0x00, 0x00,
}
func (m *Image) Marshal() (dAtA []byte, err error) {
@@ -1181,6 +1228,36 @@
    return i, nil
}
func (m *ResultFaceExtCom) 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 *ResultFaceExtCom) MarshalTo(dAtA []byte) (int, error) {
    var i int
    _ = i
    var l int
    _ = l
    if len(m.Feats) > 0 {
        dAtA[i] = 0xa
        i++
        i = encodeVarintSdk(dAtA, i, uint64(len(m.Feats)))
        i += copy(dAtA[i:], m.Feats)
    }
    if len(m.Comp) > 0 {
        dAtA[i] = 0x12
        i++
        i = encodeVarintSdk(dAtA, i, uint64(len(m.Comp)))
        i += copy(dAtA[i:], m.Comp)
    }
    return i, nil
}
func (m *ParamFaceFeature) Marshal() (dAtA []byte, err error) {
    size := m.Size()
    dAtA = make([]byte, size)
@@ -1196,19 +1273,17 @@
    _ = i
    var l int
    _ = l
    if len(m.Feats) > 0 {
        for _, b := range m.Feats {
    if len(m.ExtComp) > 0 {
        for _, msg := range m.ExtComp {
            dAtA[i] = 0xa
            i++
            i = encodeVarintSdk(dAtA, i, uint64(len(b)))
            i += copy(dAtA[i:], b)
            i = encodeVarintSdk(dAtA, i, uint64(msg.Size()))
            n, err := msg.MarshalTo(dAtA[i:])
            if err != nil {
                return 0, err
            }
            i += n
        }
    }
    if len(m.CompareResult) > 0 {
        dAtA[i] = 0x12
        i++
        i = encodeVarintSdk(dAtA, i, uint64(len(m.CompareResult)))
        i += copy(dAtA[i:], m.CompareResult)
    }
    return i, nil
}
@@ -1457,21 +1532,34 @@
    return n
}
func (m *ResultFaceExtCom) Size() (n int) {
    if m == nil {
        return 0
    }
    var l int
    _ = l
    l = len(m.Feats)
    if l > 0 {
        n += 1 + l + sovSdk(uint64(l))
    }
    l = len(m.Comp)
    if l > 0 {
        n += 1 + l + sovSdk(uint64(l))
    }
    return n
}
func (m *ParamFaceFeature) Size() (n int) {
    if m == nil {
        return 0
    }
    var l int
    _ = l
    if len(m.Feats) > 0 {
        for _, b := range m.Feats {
            l = len(b)
    if len(m.ExtComp) > 0 {
        for _, e := range m.ExtComp {
            l = e.Size()
            n += 1 + l + sovSdk(uint64(l))
        }
    }
    l = len(m.CompareResult)
    if l > 0 {
        n += 1 + l + sovSdk(uint64(l))
    }
    return n
}
@@ -2943,7 +3031,7 @@
    }
    return nil
}
func (m *ParamFaceFeature) Unmarshal(dAtA []byte) error {
func (m *ResultFaceExtCom) Unmarshal(dAtA []byte) error {
    l := len(dAtA)
    iNdEx := 0
    for iNdEx < l {
@@ -2966,10 +3054,10 @@
        fieldNum := int32(wire >> 3)
        wireType := int(wire & 0x7)
        if wireType == 4 {
            return fmt.Errorf("proto: ParamFaceFeature: wiretype end group for non-group")
            return fmt.Errorf("proto: ResultFaceExtCom: wiretype end group for non-group")
        }
        if fieldNum <= 0 {
            return fmt.Errorf("proto: ParamFaceFeature: illegal tag %d (wire type %d)", fieldNum, wire)
            return fmt.Errorf("proto: ResultFaceExtCom: illegal tag %d (wire type %d)", fieldNum, wire)
        }
        switch fieldNum {
        case 1:
@@ -3001,12 +3089,14 @@
            if postIndex > l {
                return io.ErrUnexpectedEOF
            }
            m.Feats = append(m.Feats, make([]byte, postIndex-iNdEx))
            copy(m.Feats[len(m.Feats)-1], dAtA[iNdEx:postIndex])
            m.Feats = append(m.Feats[:0], dAtA[iNdEx:postIndex]...)
            if m.Feats == nil {
                m.Feats = []byte{}
            }
            iNdEx = postIndex
        case 2:
            if wireType != 2 {
                return fmt.Errorf("proto: wrong wireType = %d for field CompareResult", wireType)
                return fmt.Errorf("proto: wrong wireType = %d for field Comp", wireType)
            }
            var byteLen int
            for shift := uint(0); ; shift += 7 {
@@ -3033,9 +3123,96 @@
            if postIndex > l {
                return io.ErrUnexpectedEOF
            }
            m.CompareResult = append(m.CompareResult[:0], dAtA[iNdEx:postIndex]...)
            if m.CompareResult == nil {
                m.CompareResult = []byte{}
            m.Comp = append(m.Comp[:0], dAtA[iNdEx:postIndex]...)
            if m.Comp == nil {
                m.Comp = []byte{}
            }
            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 *ParamFaceFeature) 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: ParamFaceFeature: wiretype end group for non-group")
        }
        if fieldNum <= 0 {
            return fmt.Errorf("proto: ParamFaceFeature: illegal tag %d (wire type %d)", fieldNum, wire)
        }
        switch fieldNum {
        case 1:
            if wireType != 2 {
                return fmt.Errorf("proto: wrong wireType = %d for field ExtComp", 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.ExtComp = append(m.ExtComp, &ResultFaceExtCom{})
            if err := m.ExtComp[len(m.ExtComp)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
                return err
            }
            iNdEx = postIndex
        default:
sdk.proto
@@ -61,9 +61,13 @@
message ParamFacePos{
    repeated ResultFaceDetect faces = 1;
}
message ResultFaceExtCom{
    bytes feats = 1;
    bytes comp = 2;
}
message ParamFaceFeature{
    repeated bytes feats = 1;
    bytes compareResult = 2;
    repeated ResultFaceExtCom extComp = 1;
}
// sdk yolo detect