zhangmeng
2019-06-25 0514f66a2b99f8f2e946fe05f20d75ec6ec2ba4d
sdk.pb.go
@@ -24,9 +24,11 @@
// Image ipc struct
type Image struct {
   Width  int32  `protobuf:"varint,1,opt,name=width,proto3" json:"width,omitempty"`
   Height int32  `protobuf:"varint,2,opt,name=height,proto3" json:"height,omitempty"`
   Data   []byte `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"`
   Width     int32  `protobuf:"varint,1,opt,name=width,proto3" json:"width,omitempty"`
   Height    int32  `protobuf:"varint,2,opt,name=height,proto3" json:"height,omitempty"`
   Data      []byte `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"`
   Timestamp string `protobuf:"bytes,4,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
   Id        int64  `protobuf:"varint,5,opt,name=id,proto3" json:"id,omitempty"`
}
func (m *Image) Reset()         { *m = Image{} }
@@ -81,6 +83,20 @@
      return m.Data
   }
   return nil
}
func (m *Image) GetTimestamp() string {
   if m != nil {
      return m.Timestamp
   }
   return ""
}
func (m *Image) GetId() int64 {
   if m != nil {
      return m.Id
   }
   return 0
}
type FaceAngle struct {
@@ -592,24 +608,24 @@
   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"`
type ResultFaceExtCom struct {
   Pos   []byte `protobuf:"bytes,1,opt,name=pos,proto3" json:"pos,omitempty"`
   Feats []byte `protobuf:"bytes,2,opt,name=feats,proto3" json:"feats,omitempty"`
   Comp  []byte `protobuf:"bytes,3,opt,name=comp,proto3" json:"comp,omitempty"`
}
func (m *ParamFaceCompare) Reset()         { *m = ParamFaceCompare{} }
func (m *ParamFaceCompare) String() string { return proto.CompactTextString(m) }
func (*ParamFaceCompare) ProtoMessage()    {}
func (*ParamFaceCompare) Descriptor() ([]byte, []int) {
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 *ParamFaceCompare) XXX_Unmarshal(b []byte) error {
func (m *ResultFaceExtCom) XXX_Unmarshal(b []byte) error {
   return m.Unmarshal(b)
}
func (m *ParamFaceCompare) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
func (m *ResultFaceExtCom) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   if deterministic {
      return xxx_messageInfo_ParamFaceCompare.Marshal(b, m, deterministic)
      return xxx_messageInfo_ResultFaceExtCom.Marshal(b, m, deterministic)
   } else {
      b = b[:cap(b)]
      n, err := m.MarshalTo(b)
@@ -619,28 +635,79 @@
      return b[:n], nil
   }
}
func (m *ParamFaceCompare) XXX_Merge(src proto.Message) {
   xxx_messageInfo_ParamFaceCompare.Merge(m, src)
func (m *ResultFaceExtCom) XXX_Merge(src proto.Message) {
   xxx_messageInfo_ResultFaceExtCom.Merge(m, src)
}
func (m *ParamFaceCompare) XXX_Size() int {
func (m *ResultFaceExtCom) XXX_Size() int {
   return m.Size()
}
func (m *ParamFaceCompare) XXX_DiscardUnknown() {
   xxx_messageInfo_ParamFaceCompare.DiscardUnknown(m)
func (m *ResultFaceExtCom) XXX_DiscardUnknown() {
   xxx_messageInfo_ResultFaceExtCom.DiscardUnknown(m)
}
var xxx_messageInfo_ParamFaceCompare proto.InternalMessageInfo
var xxx_messageInfo_ResultFaceExtCom proto.InternalMessageInfo
func (m *ParamFaceCompare) GetFeat1() []byte {
func (m *ResultFaceExtCom) GetPos() []byte {
   if m != nil {
      return m.Feat1
      return m.Pos
   }
   return nil
}
func (m *ParamFaceCompare) GetFeat2() []byte {
func (m *ResultFaceExtCom) GetFeats() []byte {
   if m != nil {
      return m.Feat2
      return m.Feats
   }
   return nil
}
func (m *ResultFaceExtCom) GetComp() []byte {
   if m != nil {
      return m.Comp
   }
   return nil
}
type ParamFaceFeature struct {
   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{9}
}
func (m *ParamFaceFeature) XXX_Unmarshal(b []byte) error {
   return m.Unmarshal(b)
}
func (m *ParamFaceFeature) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   if deterministic {
      return xxx_messageInfo_ParamFaceFeature.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 *ParamFaceFeature) XXX_Merge(src proto.Message) {
   xxx_messageInfo_ParamFaceFeature.Merge(m, src)
}
func (m *ParamFaceFeature) XXX_Size() int {
   return m.Size()
}
func (m *ParamFaceFeature) XXX_DiscardUnknown() {
   xxx_messageInfo_ParamFaceFeature.DiscardUnknown(m)
}
var xxx_messageInfo_ParamFaceFeature proto.InternalMessageInfo
func (m *ParamFaceFeature) GetExtComp() []*ResultFaceExtCom {
   if m != nil {
      return m.ExtComp
   }
   return nil
}
@@ -654,7 +721,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)
@@ -699,53 +766,57 @@
   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((*ResultFaceExtCom)(nil), "protomsg.ResultFaceExtCom")
   proto.RegisterType((*ParamFaceFeature)(nil), "protomsg.ParamFaceFeature")
   proto.RegisterType((*ParamYoloObj)(nil), "protomsg.ParamYoloObj")
}
func init() { proto.RegisterFile("sdk.proto", fileDescriptor_70decb0fb6f436df) }
var fileDescriptor_70decb0fb6f436df = []byte{
   // 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,
   // 665 bytes of a gzipped FileDescriptorProto
   0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x54, 0x4d, 0x6f, 0xd3, 0x40,
   0x10, 0xad, 0x9d, 0xda, 0x69, 0xa6, 0x51, 0x29, 0x4b, 0x85, 0xac, 0x0a, 0x59, 0x91, 0x41, 0x34,
   0x08, 0x28, 0xa8, 0x20, 0x71, 0xe5, 0xa3, 0xad, 0xa8, 0x04, 0x6d, 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, 0x59, 0xaf, 0x9b, 0x54, 0x2a, 0x5c, 0xb8, 0x72, 0xca, 0xcc, 0xce,
   0xf3, 0xbe, 0xf7, 0x66, 0x76, 0x02, 0xbd, 0x3a, 0xfa, 0xbc, 0x5d, 0x56, 0x0a, 0x15, 0x5b, 0xd1,
   0x3f, 0x79, 0x9d, 0x6c, 0xc2, 0x58, 0xd4, 0xb2, 0x39, 0x0d, 0x4e, 0xc0, 0x39, 0xc8, 0x45, 0x22,
   0xd9, 0x06, 0x38, 0x27, 0x69, 0x84, 0x13, 0xcf, 0x1a, 0x58, 0x43, 0x87, 0x37, 0x09, 0xbb, 0x0d,
   0xee, 0x44, 0xa6, 0xc9, 0x04, 0x3d, 0x5b, 0x1f, 0x9b, 0x8c, 0x31, 0x58, 0x8e, 0x04, 0x0a, 0xaf,
   0x33, 0xb0, 0x86, 0x7d, 0xae, 0x63, 0x76, 0x07, 0x7a, 0x98, 0xe6, 0xb2, 0x46, 0x91, 0x97, 0xde,
   0xf2, 0xc0, 0x1a, 0xf6, 0xf8, 0xfc, 0x80, 0xad, 0x81, 0x9d, 0x46, 0x9e, 0x33, 0xb0, 0x86, 0x1d,
   0x6e, 0xa7, 0x51, 0x90, 0x40, 0x6f, 0x5f, 0x84, 0xf2, 0x55, 0x91, 0x64, 0x92, 0xad, 0x43, 0x67,
   0x26, 0x4e, 0x0c, 0x35, 0x85, 0x24, 0xa7, 0x4c, 0x31, 0x9c, 0x18, 0xde, 0x26, 0x21, 0xda, 0x4a,
   0x65, 0x99, 0xa6, 0x75, 0xb8, 0x8e, 0x99, 0x0f, 0x10, 0xaa, 0x22, 0x4e, 0x23, 0x59, 0x84, 0x52,
   0xf3, 0xda, 0x7c, 0xe1, 0x24, 0x38, 0x05, 0xf8, 0x30, 0x89, 0x91, 0xcb, 0x7a, 0x9a, 0x21, 0x19,
   0x4a, 0x64, 0x11, 0xc9, 0xca, 0x90, 0x99, 0x8c, 0x14, 0x88, 0x44, 0x1a, 0x36, 0x0a, 0x35, 0x97,
   0x08, 0xe5, 0x25, 0x97, 0x08, 0x25, 0x7d, 0x3d, 0x96, 0x62, 0x8a, 0x33, 0xcd, 0xe3, 0x70, 0x93,
   0x91, 0xda, 0x3a, 0x4f, 0x33, 0xa9, 0xfd, 0x39, 0xbc, 0x49, 0x82, 0xef, 0x36, 0x74, 0xc9, 0xe3,
   0x48, 0xd5, 0xec, 0x3e, 0xb8, 0x55, 0x48, 0x89, 0xe6, 0x5d, 0xdd, 0x59, 0xdb, 0x6e, 0xc7, 0xb1,
   0xcd, 0x65, 0x88, 0xdc, 0x54, 0xd9, 0x63, 0xe8, 0x95, 0xf8, 0x4e, 0xc6, 0xb8, 0x37, 0x6b, 0xd4,
   0xac, 0xee, 0xdc, 0x98, 0x43, 0x47, 0x2a, 0x2d, 0x90, 0xcf, 0x11, 0xec, 0x09, 0x40, 0x89, 0x9c,
   0x46, 0x42, 0xf8, 0xce, 0xf5, 0xf8, 0x05, 0x08, 0x7b, 0x00, 0xdd, 0x12, 0xdf, 0xab, 0x29, 0x4e,
   0xb4, 0x85, 0x6b, 0xd0, 0x6d, 0x9d, 0x6d, 0x81, 0x5b, 0xe2, 0xa1, 0xaa, 0x1b, 0x57, 0xd7, 0x20,
   0x4d, 0x99, 0x3d, 0x04, 0x37, 0xd6, 0x73, 0xf4, 0x5c, 0x0d, 0xbc, 0x35, 0x07, 0x5e, 0x8e, 0x98,
   0x1b, 0x08, 0xf3, 0xa0, 0xfb, 0x65, 0x2a, 0xb2, 0x14, 0x67, 0x5e, 0x57, 0x37, 0xab, 0x4d, 0x69,
   0x90, 0xb1, 0x08, 0x53, 0x91, 0xed, 0xd2, 0xcb, 0x5a, 0xd1, 0x2f, 0x6b, 0xe1, 0x24, 0xf8, 0x65,
   0xc3, 0x0a, 0xdd, 0x77, 0x50, 0xc4, 0xea, 0x7f, 0x3f, 0xff, 0xb9, 0x9f, 0xf4, 0x98, 0x63, 0x6a,
   0xe7, 0xae, 0xd7, 0xd3, 0x5b, 0x69, 0xb2, 0xe0, 0x23, 0x74, 0x8f, 0xc6, 0xc7, 0xba, 0xcb, 0xf7,
   0xc0, 0xa9, 0xc2, 0xa3, 0xf1, 0xf1, 0x1f, 0x9a, 0xdc, 0x14, 0x69, 0x77, 0x70, 0x56, 0xb6, 0xbb,
   0x83, 0xb3, 0x92, 0x76, 0xa7, 0xac, 0xd4, 0x58, 0x37, 0xd0, 0xe6, 0x3a, 0x0e, 0x24, 0xac, 0x37,
   0x3b, 0x48, 0x1e, 0x76, 0x25, 0xca, 0x10, 0xd9, 0x5d, 0xe8, 0x94, 0xaa, 0x36, 0xb7, 0xdf, 0xbc,
   0x6a, 0x73, 0xa4, 0x6a, 0x4e, 0x55, 0xf6, 0x08, 0xdc, 0x4a, 0x7f, 0x68, 0xe6, 0xb7, 0x31, 0xc7,
   0xcd, 0x17, 0x9b, 0x1b, 0x4c, 0xf0, 0x12, 0xfa, 0x23, 0x51, 0x89, 0xbc, 0x5d, 0xbc, 0xa7, 0xe0,
   0x90, 0x2f, 0x22, 0xe9, 0x0c, 0x57, 0x77, 0x36, 0x17, 0x2d, 0x5c, 0x55, 0xc3, 0x1b, 0x60, 0x70,
   0xb8, 0x28, 0x74, 0xef, 0x14, 0xdf, 0xa8, 0x9c, 0x2c, 0xb6, 0x42, 0xfb, 0x8d, 0xaa, 0x0d, 0x70,
   0x62, 0x29, 0xb0, 0xd6, 0xa2, 0xfa, 0xbc, 0x49, 0xc8, 0x78, 0xa8, 0xf2, 0xb2, 0xfd, 0x5f, 0xa4,
   0x38, 0x78, 0x0b, 0xeb, 0x97, 0x8a, 0xf6, 0xa5, 0xc0, 0x69, 0x25, 0xd9, 0x73, 0xe8, 0x4a, 0x7d,
   0x73, 0xf9, 0x37, 0x5d, 0x0d, 0x39, 0x6f, 0xa1, 0xc1, 0x0b, 0xe3, 0xed, 0x93, 0xca, 0x14, 0x35,
   0x7e, 0x0b, 0x9c, 0xb4, 0x88, 0x55, 0xeb, 0x6d, 0xa1, 0x81, 0x66, 0x80, 0xbc, 0xa9, 0xbf, 0xf6,
   0xbe, 0x9d, 0xfb, 0xd6, 0xd9, 0xb9, 0x6f, 0xfd, 0x3c, 0xf7, 0xad, 0xaf, 0x17, 0xfe, 0xd2, 0xd9,
   0x85, 0xbf, 0xf4, 0xe3, 0xc2, 0x5f, 0x1a, 0xbb, 0xfa, 0x93, 0x67, 0xbf, 0x03, 0x00, 0x00, 0xff,
   0xff, 0x82, 0x5c, 0xa6, 0x5e, 0x29, 0x06, 0x00, 0x00,
}
func (m *Image) Marshal() (dAtA []byte, err error) {
@@ -778,6 +849,17 @@
      i++
      i = encodeVarintSdk(dAtA, i, uint64(len(m.Data)))
      i += copy(dAtA[i:], m.Data)
   }
   if len(m.Timestamp) > 0 {
      dAtA[i] = 0x22
      i++
      i = encodeVarintSdk(dAtA, i, uint64(len(m.Timestamp)))
      i += copy(dAtA[i:], m.Timestamp)
   }
   if m.Id != 0 {
      dAtA[i] = 0x28
      i++
      i = encodeVarintSdk(dAtA, i, uint64(m.Id))
   }
   return i, nil
}
@@ -1154,7 +1236,7 @@
   return i, nil
}
func (m *ParamFaceCompare) Marshal() (dAtA []byte, err error) {
func (m *ResultFaceExtCom) Marshal() (dAtA []byte, err error) {
   size := m.Size()
   dAtA = make([]byte, size)
   n, err := m.MarshalTo(dAtA)
@@ -1164,22 +1246,58 @@
   return dAtA[:n], nil
}
func (m *ParamFaceCompare) MarshalTo(dAtA []byte) (int, error) {
func (m *ResultFaceExtCom) MarshalTo(dAtA []byte) (int, error) {
   var i int
   _ = i
   var l int
   _ = l
   if len(m.Feat1) > 0 {
   if len(m.Pos) > 0 {
      dAtA[i] = 0xa
      i++
      i = encodeVarintSdk(dAtA, i, uint64(len(m.Feat1)))
      i += copy(dAtA[i:], m.Feat1)
      i = encodeVarintSdk(dAtA, i, uint64(len(m.Pos)))
      i += copy(dAtA[i:], m.Pos)
   }
   if len(m.Feat2) > 0 {
   if len(m.Feats) > 0 {
      dAtA[i] = 0x12
      i++
      i = encodeVarintSdk(dAtA, i, uint64(len(m.Feat2)))
      i += copy(dAtA[i:], m.Feat2)
      i = encodeVarintSdk(dAtA, i, uint64(len(m.Feats)))
      i += copy(dAtA[i:], m.Feats)
   }
   if len(m.Comp) > 0 {
      dAtA[i] = 0x1a
      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)
   n, err := m.MarshalTo(dAtA)
   if err != nil {
      return nil, err
   }
   return dAtA[:n], nil
}
func (m *ParamFaceFeature) MarshalTo(dAtA []byte) (int, error) {
   var i int
   _ = i
   var l int
   _ = l
   if len(m.ExtComp) > 0 {
      for _, msg := range m.ExtComp {
         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
}
@@ -1238,6 +1356,13 @@
   l = len(m.Data)
   if l > 0 {
      n += 1 + l + sovSdk(uint64(l))
   }
   l = len(m.Timestamp)
   if l > 0 {
      n += 1 + l + sovSdk(uint64(l))
   }
   if m.Id != 0 {
      n += 1 + sovSdk(uint64(m.Id))
   }
   return n
}
@@ -1421,19 +1546,38 @@
   return n
}
func (m *ParamFaceCompare) Size() (n int) {
func (m *ResultFaceExtCom) Size() (n int) {
   if m == nil {
      return 0
   }
   var l int
   _ = l
   l = len(m.Feat1)
   l = len(m.Pos)
   if l > 0 {
      n += 1 + l + sovSdk(uint64(l))
   }
   l = len(m.Feat2)
   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.ExtComp) > 0 {
      for _, e := range m.ExtComp {
         l = e.Size()
         n += 1 + l + sovSdk(uint64(l))
      }
   }
   return n
}
@@ -1567,6 +1711,57 @@
            m.Data = []byte{}
         }
         iNdEx = postIndex
      case 4:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Timestamp", wireType)
         }
         var stringLen uint64
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            stringLen |= uint64(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         intStringLen := int(stringLen)
         if intStringLen < 0 {
            return ErrInvalidLengthSdk
         }
         postIndex := iNdEx + intStringLen
         if postIndex < 0 {
            return ErrInvalidLengthSdk
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.Timestamp = string(dAtA[iNdEx:postIndex])
         iNdEx = postIndex
      case 5:
         if wireType != 0 {
            return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType)
         }
         m.Id = 0
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            m.Id |= int64(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
      default:
         iNdEx = preIndex
         skippy, err := skipSdk(dAtA[iNdEx:])
@@ -2854,7 +3049,7 @@
   }
   return nil
}
func (m *ParamFaceCompare) Unmarshal(dAtA []byte) error {
func (m *ResultFaceExtCom) Unmarshal(dAtA []byte) error {
   l := len(dAtA)
   iNdEx := 0
   for iNdEx < l {
@@ -2877,15 +3072,15 @@
      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: ResultFaceExtCom: 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: ResultFaceExtCom: 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)
            return fmt.Errorf("proto: wrong wireType = %d for field Pos", wireType)
         }
         var byteLen int
         for shift := uint(0); ; shift += 7 {
@@ -2912,14 +3107,14 @@
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.Feat1 = append(m.Feat1[:0], dAtA[iNdEx:postIndex]...)
         if m.Feat1 == nil {
            m.Feat1 = []byte{}
         m.Pos = append(m.Pos[:0], dAtA[iNdEx:postIndex]...)
         if m.Pos == nil {
            m.Pos = []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 Feats", wireType)
         }
         var byteLen int
         for shift := uint(0); ; shift += 7 {
@@ -2946,9 +3141,130 @@
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.Feat2 = append(m.Feat2[:0], dAtA[iNdEx:postIndex]...)
         if m.Feat2 == nil {
            m.Feat2 = []byte{}
         m.Feats = append(m.Feats[:0], dAtA[iNdEx:postIndex]...)
         if m.Feats == nil {
            m.Feats = []byte{}
         }
         iNdEx = postIndex
      case 3:
         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
      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: