liuxiaolong
2019-06-26 b089e092a8eb6bb0980f9dd46c7cd9fcf7849d13
sdk.pb.go
@@ -608,15 +608,75 @@
   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"`
   Pos   *ResultFaceDetect `protobuf:"bytes,3,opt,name=pos,proto3" json:"pos,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
}
func (m *ResultFaceExtCom) GetPos() *ResultFaceDetect {
   if m != nil {
      return m.Pos
   }
   return nil
}
type ParamFaceFeature struct {
   Feats [][]byte `protobuf:"bytes,1,rep,name=feats,proto3" json:"feats,omitempty"`
   ExtComp []*ResultFaceExtCom `protobuf:"bytes,2,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)
@@ -645,62 +705,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
}
// sdk face extract
type ParamFaceCompare struct {
   Feat1 []byte `protobuf:"bytes,1,opt,name=feat1,proto3" json:"feat1,omitempty"`
   Feat2 []byte `protobuf:"bytes,2,opt,name=feat2,proto3" json:"feat2,omitempty"`
}
func (m *ParamFaceCompare) Reset()         { *m = ParamFaceCompare{} }
func (m *ParamFaceCompare) String() string { return proto.CompactTextString(m) }
func (*ParamFaceCompare) ProtoMessage()    {}
func (*ParamFaceCompare) Descriptor() ([]byte, []int) {
   return fileDescriptor_70decb0fb6f436df, []int{9}
}
func (m *ParamFaceCompare) XXX_Unmarshal(b []byte) error {
   return m.Unmarshal(b)
}
func (m *ParamFaceCompare) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   if deterministic {
      return xxx_messageInfo_ParamFaceCompare.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 *ParamFaceCompare) XXX_Merge(src proto.Message) {
   xxx_messageInfo_ParamFaceCompare.Merge(m, src)
}
func (m *ParamFaceCompare) XXX_Size() int {
   return m.Size()
}
func (m *ParamFaceCompare) XXX_DiscardUnknown() {
   xxx_messageInfo_ParamFaceCompare.DiscardUnknown(m)
}
var xxx_messageInfo_ParamFaceCompare proto.InternalMessageInfo
func (m *ParamFaceCompare) GetFeat1() []byte {
   if m != nil {
      return m.Feat1
   }
   return nil
}
func (m *ParamFaceCompare) GetFeat2() []byte {
   if m != nil {
      return m.Feat2
      return m.ExtComp
   }
   return nil
}
@@ -759,56 +766,57 @@
   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((*ParamFaceCompare)(nil), "protomsg.ParamFaceCompare")
   proto.RegisterType((*ParamYoloObj)(nil), "protomsg.ParamYoloObj")
}
func init() { proto.RegisterFile("sdk.proto", fileDescriptor_70decb0fb6f436df) }
var fileDescriptor_70decb0fb6f436df = []byte{
   // 650 bytes of a gzipped FileDescriptorProto
   0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x54, 0x4f, 0x6f, 0xd3, 0x4e,
   0x10, 0xad, 0x9d, 0xda, 0x69, 0xa6, 0x55, 0x7f, 0xfd, 0x2d, 0x15, 0xb2, 0x2a, 0x64, 0x45, 0x06,
   0xd1, 0x20, 0xa0, 0xd0, 0x70, 0xe0, 0x86, 0xf8, 0x53, 0x2a, 0x55, 0x02, 0x1a, 0xad, 0xe0, 0xc0,
   0x71, 0x63, 0xaf, 0x1d, 0x17, 0xdb, 0x6b, 0xec, 0x89, 0x4a, 0xbe, 0x05, 0x1f, 0x8b, 0x03, 0x87,
   0x1e, 0x39, 0xa2, 0x56, 0x7c, 0x0f, 0xb4, 0xe3, 0x75, 0x9d, 0x4a, 0xe5, 0xc4, 0x95, 0x53, 0xf6,
   0xcd, 0x3c, 0xef, 0x9b, 0x37, 0xb3, 0x13, 0x18, 0xd4, 0xd1, 0xa7, 0xbd, 0xb2, 0x52, 0xa8, 0xd8,
   0x1a, 0xfd, 0xe4, 0x75, 0xb2, 0x03, 0x53, 0x51, 0xcb, 0x26, 0x1a, 0x9c, 0x82, 0x73, 0x94, 0x8b,
   0x44, 0xb2, 0x6d, 0x70, 0x4e, 0xd3, 0x08, 0x67, 0x9e, 0x35, 0xb4, 0x46, 0x0e, 0x6f, 0x00, 0xbb,
   0x09, 0xee, 0x4c, 0xa6, 0xc9, 0x0c, 0x3d, 0x9b, 0xc2, 0x06, 0x31, 0x06, 0xab, 0x91, 0x40, 0xe1,
   0xf5, 0x86, 0xd6, 0x68, 0x83, 0xd3, 0x99, 0xdd, 0x82, 0x01, 0xa6, 0xb9, 0xac, 0x51, 0xe4, 0xa5,
   0xb7, 0x3a, 0xb4, 0x46, 0x03, 0xde, 0x05, 0xd8, 0x26, 0xd8, 0x69, 0xe4, 0x39, 0x43, 0x6b, 0xd4,
   0xe3, 0x76, 0x1a, 0x05, 0x09, 0x0c, 0x0e, 0x45, 0x28, 0x5f, 0x14, 0x49, 0x26, 0xd9, 0x16, 0xf4,
   0x16, 0xe2, 0xd4, 0x48, 0xeb, 0xa3, 0x2e, 0xa7, 0x4c, 0x31, 0x9c, 0x19, 0xdd, 0x06, 0x68, 0xd9,
   0x4a, 0x65, 0x19, 0xc9, 0x3a, 0x9c, 0xce, 0xcc, 0x07, 0x08, 0x55, 0x11, 0xa7, 0x91, 0x2c, 0x42,
   0x49, 0xba, 0x36, 0x5f, 0x8a, 0x04, 0x5f, 0x00, 0xde, 0xcf, 0x62, 0xe4, 0xb2, 0x9e, 0x67, 0xa8,
   0x0d, 0x25, 0xb2, 0x88, 0x64, 0x65, 0xc4, 0x0c, 0xd2, 0x15, 0x88, 0x44, 0x1a, 0x35, 0x7d, 0x24,
   0x2d, 0x11, 0xca, 0x4b, 0x2d, 0x11, 0x4a, 0xfd, 0xf5, 0x54, 0x8a, 0x39, 0x2e, 0x48, 0xc7, 0xe1,
   0x06, 0xe9, 0x6a, 0xeb, 0x3c, 0xcd, 0x24, 0xf9, 0x73, 0x78, 0x03, 0x82, 0xef, 0x36, 0xf4, 0xb5,
   0xc7, 0x89, 0xaa, 0xd9, 0x5d, 0x70, 0xab, 0x50, 0x03, 0xd2, 0x5d, 0x1f, 0x6f, 0xee, 0xb5, 0xe3,
   0xd8, 0xe3, 0x32, 0x44, 0x6e, 0xb2, 0xec, 0x21, 0x0c, 0x4a, 0x7c, 0x23, 0x63, 0x7c, 0xbd, 0x68,
   0xaa, 0x59, 0x1f, 0xff, 0xd7, 0x51, 0x27, 0x2a, 0x2d, 0x90, 0x77, 0x0c, 0xf6, 0x08, 0xa0, 0x44,
   0xae, 0x47, 0xa2, 0xf9, 0xbd, 0xeb, 0xf9, 0x4b, 0x14, 0x76, 0x0f, 0xfa, 0x25, 0xbe, 0x55, 0x73,
   0x9c, 0x91, 0x85, 0x6b, 0xd8, 0x6d, 0x9e, 0xed, 0x82, 0x5b, 0xe2, 0x3b, 0x55, 0x37, 0xae, 0xae,
   0x61, 0x9a, 0x34, 0xbb, 0x0f, 0x6e, 0x4c, 0x73, 0xf4, 0x5c, 0x22, 0xde, 0xe8, 0x88, 0x97, 0x23,
   0xe6, 0x86, 0xc2, 0x3c, 0xe8, 0x7f, 0x9e, 0x8b, 0x2c, 0xc5, 0x85, 0xd7, 0xa7, 0x66, 0xb5, 0x50,
   0x0f, 0x32, 0x16, 0x61, 0x2a, 0xb2, 0x03, 0xfd, 0xb2, 0xd6, 0xe8, 0x65, 0x2d, 0x45, 0x82, 0x5f,
   0x36, 0xac, 0xe9, 0xfb, 0x8e, 0x8a, 0x58, 0xfd, 0xeb, 0xe7, 0x5f, 0xf7, 0x53, 0x3f, 0xe6, 0x58,
   0xb7, 0xf3, 0xc0, 0x1b, 0xd0, 0x56, 0x1a, 0x14, 0x7c, 0x80, 0xfe, 0xf1, 0xf4, 0x84, 0xba, 0x7c,
   0x07, 0x9c, 0x2a, 0x3c, 0x9e, 0x9e, 0xfc, 0xa1, 0xc9, 0x4d, 0x52, 0xef, 0x0e, 0x2e, 0xca, 0x76,
   0x77, 0x70, 0x51, 0xea, 0xdd, 0x29, 0x2b, 0x35, 0xa5, 0x06, 0xda, 0x9c, 0xce, 0x81, 0x84, 0xad,
   0x66, 0x07, 0xb5, 0x87, 0x03, 0x89, 0x32, 0x44, 0x76, 0x1b, 0x7a, 0xa5, 0xaa, 0xcd, 0xed, 0xff,
   0x5f, 0xb5, 0x39, 0x51, 0x35, 0xd7, 0x59, 0xf6, 0x00, 0xdc, 0x8a, 0x3e, 0x34, 0xf3, 0xdb, 0xee,
   0x78, 0xdd, 0x62, 0x73, 0xc3, 0x09, 0x9e, 0xc3, 0xc6, 0x44, 0x54, 0x22, 0x6f, 0x17, 0xef, 0x31,
   0x38, 0xda, 0x97, 0x16, 0xe9, 0x8d, 0xd6, 0xc7, 0x3b, 0xcb, 0x16, 0xae, 0x56, 0xc3, 0x1b, 0x62,
   0x30, 0x82, 0xad, 0xcb, 0x1b, 0x0e, 0xa5, 0xc0, 0x79, 0x45, 0xff, 0x8e, 0xb1, 0x14, 0xd8, 0xdc,
   0xb2, 0xc1, 0x1b, 0x10, 0x3c, 0x5b, 0x62, 0xbe, 0x52, 0x79, 0x29, 0x3a, 0xe6, 0x3e, 0x99, 0x32,
   0xcc, 0xfd, 0x36, 0x3a, 0x26, 0x0b, 0x26, 0x3a, 0x0e, 0x9e, 0x9a, 0x5a, 0x3f, 0xaa, 0x4c, 0xe9,
   0x46, 0xee, 0x82, 0x93, 0x16, 0xb1, 0x6a, 0x6b, 0x5d, 0x6a, 0x88, 0x19, 0x08, 0x6f, 0xf2, 0x2f,
   0xbd, 0x6f, 0xe7, 0xbe, 0x75, 0x76, 0xee, 0x5b, 0x3f, 0xcf, 0x7d, 0xeb, 0xeb, 0x85, 0xbf, 0x72,
   0x76, 0xe1, 0xaf, 0xfc, 0xb8, 0xf0, 0x57, 0xa6, 0x2e, 0x7d, 0xf2, 0xe4, 0x77, 0x00, 0x00, 0x00,
   0xff, 0xff, 0x2b, 0x51, 0xd4, 0x7a, 0xf9, 0x05, 0x00, 0x00,
   // 669 bytes of a gzipped FileDescriptorProto
   0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x53, 0x4f, 0x6f, 0xd3, 0x4e,
   0x10, 0xad, 0x93, 0x3a, 0x69, 0xa6, 0x51, 0x7f, 0xfd, 0x2d, 0x15, 0xb2, 0x2a, 0x64, 0x45, 0x06,
   0xd1, 0x20, 0x4a, 0x41, 0x05, 0x89, 0x2b, 0x7f, 0xda, 0x8a, 0x4a, 0x40, 0xa3, 0x15, 0x1c, 0x38,
   0x6e, 0xec, 0xb5, 0xe3, 0x62, 0x7b, 0x8d, 0x3d, 0x51, 0x9b, 0x6f, 0xc1, 0xc7, 0xe2, 0xc0, 0xa1,
   0x47, 0x8e, 0xa8, 0x15, 0xdf, 0x03, 0xcd, 0xee, 0xba, 0x49, 0xa5, 0x96, 0x0b, 0x57, 0x4e, 0x9e,
   0xd9, 0x79, 0xde, 0xf7, 0xde, 0xcc, 0x0e, 0xf4, 0xea, 0xe8, 0xf3, 0x4e, 0x59, 0x29, 0x54, 0x6c,
   0x45, 0x7f, 0xf2, 0x3a, 0xd9, 0x84, 0xb1, 0xa8, 0xa5, 0x39, 0x0d, 0x4e, 0xc0, 0x3d, 0xcc, 0x45,
   0x22, 0xd9, 0x06, 0xb8, 0x27, 0x69, 0x84, 0x13, 0xcf, 0x19, 0x38, 0x43, 0x97, 0x9b, 0x84, 0xdd,
   0x86, 0xce, 0x44, 0xa6, 0xc9, 0x04, 0xbd, 0x96, 0x3e, 0xb6, 0x19, 0x63, 0xb0, 0x1c, 0x09, 0x14,
   0x5e, 0x7b, 0xe0, 0x0c, 0xfb, 0x5c, 0xc7, 0xec, 0x0e, 0xf4, 0x30, 0xcd, 0x65, 0x8d, 0x22, 0x2f,
   0xbd, 0xe5, 0x81, 0x33, 0xec, 0xf1, 0xf9, 0x01, 0x5b, 0x83, 0x56, 0x1a, 0x79, 0xee, 0xc0, 0x19,
   0xb6, 0x79, 0x2b, 0x8d, 0x82, 0x04, 0x7a, 0x07, 0x22, 0x94, 0x2f, 0x8b, 0x24, 0x93, 0x6c, 0x1d,
   0xda, 0x33, 0x71, 0x62, 0xa9, 0x29, 0x24, 0x39, 0x65, 0x8a, 0xe1, 0xc4, 0xf2, 0x9a, 0x84, 0x68,
   0x2b, 0x95, 0x65, 0x9a, 0xd6, 0xe5, 0x3a, 0x66, 0x3e, 0x40, 0xa8, 0x8a, 0x38, 0x8d, 0x64, 0x11,
   0x4a, 0xcd, 0xdb, 0xe2, 0x0b, 0x27, 0xc1, 0x29, 0xc0, 0x87, 0x49, 0x8c, 0x5c, 0xd6, 0xd3, 0x0c,
   0xc9, 0x50, 0x22, 0x8b, 0x48, 0x56, 0x96, 0xcc, 0x66, 0xa4, 0x40, 0x24, 0xd2, 0xb2, 0x51, 0xa8,
   0xb9, 0x44, 0x28, 0x2f, 0xb9, 0x44, 0x28, 0xe9, 0xef, 0xb1, 0x14, 0x53, 0x9c, 0x69, 0x1e, 0x97,
   0xdb, 0x8c, 0xd4, 0xd6, 0x79, 0x9a, 0x49, 0xed, 0xcf, 0xe5, 0x26, 0x09, 0xbe, 0xb7, 0xa0, 0x4b,
   0x1e, 0x47, 0xaa, 0x66, 0xf7, 0xa1, 0x53, 0x85, 0x94, 0x68, 0xde, 0xd5, 0xdd, 0xb5, 0x9d, 0x66,
   0x1c, 0x3b, 0x5c, 0x86, 0xc8, 0x6d, 0x95, 0x3d, 0x82, 0x5e, 0x89, 0x6f, 0x65, 0x8c, 0xfb, 0x33,
   0xa3, 0x66, 0x75, 0xf7, 0xbf, 0x39, 0x74, 0xa4, 0xd2, 0x02, 0xf9, 0x1c, 0xc1, 0x1e, 0x03, 0x94,
   0xc8, 0x69, 0x24, 0x84, 0x6f, 0x5f, 0x8f, 0x5f, 0x80, 0xb0, 0x07, 0xd0, 0x2d, 0xf1, 0x9d, 0x9a,
   0xe2, 0x44, 0x5b, 0xb8, 0x06, 0xdd, 0xd4, 0xd9, 0x16, 0x74, 0x4a, 0x7c, 0xaf, 0x6a, 0xe3, 0xea,
   0x1a, 0xa4, 0x2d, 0xb3, 0x87, 0xd0, 0x89, 0xf5, 0x1c, 0xbd, 0x8e, 0x06, 0xde, 0x9a, 0x03, 0x2f,
   0x47, 0xcc, 0x2d, 0x84, 0x79, 0xd0, 0xfd, 0x32, 0x15, 0x59, 0x8a, 0x33, 0xaf, 0xab, 0x9b, 0xd5,
   0xa4, 0x34, 0xc8, 0x58, 0x84, 0xa9, 0xc8, 0xf6, 0xe8, 0x65, 0xad, 0xe8, 0x97, 0xb5, 0x70, 0x12,
   0xfc, 0x6a, 0xc1, 0x0a, 0xdd, 0x77, 0x58, 0xc4, 0xea, 0x5f, 0x3f, 0xff, 0xba, 0x9f, 0xf4, 0x98,
   0x63, 0x6a, 0xe7, 0x9e, 0xd7, 0xd3, 0x5b, 0x69, 0xb3, 0xe0, 0x23, 0x74, 0x8f, 0xc6, 0xc7, 0xba,
   0xcb, 0xf7, 0xc0, 0xad, 0xc2, 0xa3, 0xf1, 0xf1, 0x0d, 0x4d, 0x36, 0x45, 0xda, 0x1d, 0x9c, 0x95,
   0xcd, 0xee, 0xe0, 0xac, 0xa4, 0xdd, 0x29, 0x2b, 0x35, 0xd6, 0x0d, 0x6c, 0x71, 0x1d, 0x07, 0x12,
   0xd6, 0xcd, 0x0e, 0x92, 0x87, 0x3d, 0x89, 0x32, 0x44, 0x76, 0x17, 0xda, 0xa5, 0xaa, 0xed, 0xed,
   0xff, 0x5f, 0xb5, 0x39, 0x52, 0x35, 0xa7, 0x2a, 0xdb, 0x86, 0x4e, 0xa5, 0x7f, 0xb4, 0xf3, 0xdb,
   0x98, 0xe3, 0xe6, 0x8b, 0xcd, 0x2d, 0x26, 0x78, 0x01, 0xfd, 0x91, 0xa8, 0x44, 0xde, 0x2c, 0xde,
   0x13, 0x70, 0xc9, 0x17, 0x91, 0xb4, 0x87, 0xab, 0xbb, 0x9b, 0x8b, 0x16, 0xae, 0xaa, 0xe1, 0x06,
   0x18, 0x1c, 0x2f, 0x0a, 0xdd, 0x3f, 0xc5, 0xd7, 0x2a, 0xa7, 0x05, 0x8f, 0xa5, 0x40, 0x23, 0xb5,
   0xcf, 0x4d, 0x42, 0x36, 0x43, 0x95, 0x1b, 0xe7, 0x7d, 0xae, 0x63, 0xb6, 0x6d, 0x2c, 0x99, 0xa7,
   0xf3, 0x27, 0x36, 0x82, 0x05, 0x6f, 0x60, 0xfd, 0x52, 0xed, 0x81, 0x14, 0x38, 0xad, 0x24, 0x7b,
   0x06, 0x5d, 0xa9, 0x59, 0xe9, 0xe2, 0x1b, 0x35, 0x1b, 0x61, 0xbc, 0x81, 0x06, 0xcf, 0xad, 0xef,
   0x4f, 0x2a, 0x53, 0x34, 0x94, 0x2d, 0x70, 0xd3, 0x22, 0x56, 0x8d, 0xef, 0x85, 0xe6, 0xda, 0xe1,
   0x72, 0x53, 0x7f, 0xe5, 0x7d, 0x3b, 0xf7, 0x9d, 0xb3, 0x73, 0xdf, 0xf9, 0x79, 0xee, 0x3b, 0x5f,
   0x2f, 0xfc, 0xa5, 0xb3, 0x0b, 0x7f, 0xe9, 0xc7, 0x85, 0xbf, 0x34, 0xee, 0xe8, 0x5f, 0x9e, 0xfe,
   0x0e, 0x00, 0x00, 0xff, 0xff, 0xcd, 0x76, 0x09, 0x97, 0x45, 0x06, 0x00, 0x00,
}
func (m *Image) Marshal() (dAtA []byte, err error) {
@@ -1228,6 +1236,46 @@
   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)
   }
   if m.Pos != nil {
      dAtA[i] = 0x1a
      i++
      i = encodeVarintSdk(dAtA, i, uint64(m.Pos.Size()))
      n16, err16 := m.Pos.MarshalTo(dAtA[i:])
      if err16 != nil {
         return 0, err16
      }
      i += n16
   }
   return i, nil
}
func (m *ParamFaceFeature) Marshal() (dAtA []byte, err error) {
   size := m.Size()
   dAtA = make([]byte, size)
@@ -1243,43 +1291,17 @@
   _ = i
   var l int
   _ = l
   if len(m.Feats) > 0 {
      for _, b := range m.Feats {
         dAtA[i] = 0xa
   if len(m.ExtComp) > 0 {
      for _, msg := range m.ExtComp {
         dAtA[i] = 0x12
         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
      }
   }
   return i, nil
}
func (m *ParamFaceCompare) 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 *ParamFaceCompare) MarshalTo(dAtA []byte) (int, error) {
   var i int
   _ = i
   var l int
   _ = l
   if len(m.Feat1) > 0 {
      dAtA[i] = 0xa
      i++
      i = encodeVarintSdk(dAtA, i, uint64(len(m.Feat1)))
      i += copy(dAtA[i:], m.Feat1)
   }
   if len(m.Feat2) > 0 {
      dAtA[i] = 0x12
      i++
      i = encodeVarintSdk(dAtA, i, uint64(len(m.Feat2)))
      i += copy(dAtA[i:], m.Feat2)
   }
   return i, nil
}
@@ -1528,34 +1550,38 @@
   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))
   }
   if m.Pos != nil {
      l = m.Pos.Size()
      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))
      }
   }
   return n
}
func (m *ParamFaceCompare) Size() (n int) {
   if m == nil {
      return 0
   }
   var l int
   _ = l
   l = len(m.Feat1)
   if l > 0 {
      n += 1 + l + sovSdk(uint64(l))
   }
   l = len(m.Feat2)
   if l > 0 {
      n += 1 + l + sovSdk(uint64(l))
   }
   return n
}
@@ -3027,7 +3053,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 {
@@ -3050,10 +3076,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:
@@ -3085,8 +3111,80 @@
         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 Comp", wireType)
         }
         var byteLen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            byteLen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if byteLen < 0 {
            return ErrInvalidLengthSdk
         }
         postIndex := iNdEx + byteLen
         if postIndex < 0 {
            return ErrInvalidLengthSdk
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.Comp = append(m.Comp[:0], dAtA[iNdEx:postIndex]...)
         if m.Comp == nil {
            m.Comp = []byte{}
         }
         iNdEx = postIndex
      case 3:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Pos", 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
         }
         if m.Pos == nil {
            m.Pos = &ResultFaceDetect{}
         }
         if err := m.Pos.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
            return err
         }
         iNdEx = postIndex
      default:
         iNdEx = preIndex
@@ -3112,7 +3210,7 @@
   }
   return nil
}
func (m *ParamFaceCompare) Unmarshal(dAtA []byte) error {
func (m *ParamFaceFeature) Unmarshal(dAtA []byte) error {
   l := len(dAtA)
   iNdEx := 0
   for iNdEx < l {
@@ -3135,51 +3233,17 @@
      fieldNum := int32(wire >> 3)
      wireType := int(wire & 0x7)
      if wireType == 4 {
         return fmt.Errorf("proto: ParamFaceCompare: wiretype end group for non-group")
         return fmt.Errorf("proto: ParamFaceFeature: wiretype end group for non-group")
      }
      if fieldNum <= 0 {
         return fmt.Errorf("proto: ParamFaceCompare: illegal tag %d (wire type %d)", fieldNum, wire)
         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 Feat1", wireType)
         }
         var byteLen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            byteLen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if byteLen < 0 {
            return ErrInvalidLengthSdk
         }
         postIndex := iNdEx + byteLen
         if postIndex < 0 {
            return ErrInvalidLengthSdk
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.Feat1 = append(m.Feat1[:0], dAtA[iNdEx:postIndex]...)
         if m.Feat1 == nil {
            m.Feat1 = []byte{}
         }
         iNdEx = postIndex
      case 2:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Feat2", wireType)
            return fmt.Errorf("proto: wrong wireType = %d for field ExtComp", wireType)
         }
         var byteLen int
         var msglen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
@@ -3189,24 +3253,24 @@
            }
            b := dAtA[iNdEx]
            iNdEx++
            byteLen |= int(b&0x7F) << shift
            msglen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if byteLen < 0 {
         if msglen < 0 {
            return ErrInvalidLengthSdk
         }
         postIndex := iNdEx + byteLen
         postIndex := iNdEx + msglen
         if postIndex < 0 {
            return ErrInvalidLengthSdk
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.Feat2 = append(m.Feat2[:0], dAtA[iNdEx:postIndex]...)
         if m.Feat2 == nil {
            m.Feat2 = []byte{}
         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: