liuxiaolong
2019-07-25 ed0e29aa5f786d43f36d89e8cd8a4a5ca4c7fade
sdk.pb.go
@@ -29,6 +29,7 @@
   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"`
   Cid       string `protobuf:"bytes,6,opt,name=cid,proto3" json:"cid,omitempty"`
}
func (m *Image) Reset()         { *m = Image{} }
@@ -97,6 +98,13 @@
      return m.Id
   }
   return 0
}
func (m *Image) GetCid() string {
   if m != nil {
      return m.Cid
   }
   return ""
}
type FaceAngle struct {
@@ -252,6 +260,7 @@
   FAngle     *FaceAngle `protobuf:"bytes,6,opt,name=fAngle,proto3" json:"fAngle,omitempty"`
   Quality    int32      `protobuf:"varint,7,opt,name=quality,proto3" json:"quality,omitempty"`
   FacialData []byte     `protobuf:"bytes,8,opt,name=facialData,proto3" json:"facialData,omitempty"`
   FaceID     uint64     `protobuf:"varint,9,opt,name=faceID,proto3" json:"faceID,omitempty"`
}
func (m *FacePos) Reset()         { *m = FacePos{} }
@@ -341,6 +350,13 @@
      return m.FacialData
   }
   return nil
}
func (m *FacePos) GetFaceID() uint64 {
   if m != nil {
      return m.FaceID
   }
   return 0
}
type FaceInfo struct {
@@ -455,6 +471,7 @@
   RcObj *Rect   `protobuf:"bytes,1,opt,name=rcObj,proto3" json:"rcObj,omitempty"`
   Typ   int32   `protobuf:"varint,2,opt,name=typ,proto3" json:"typ,omitempty"`
   Prob  float32 `protobuf:"fixed32,3,opt,name=prob,proto3" json:"prob,omitempty"`
   ObjID uint64  `protobuf:"varint,4,opt,name=objID,proto3" json:"objID,omitempty"`
}
func (m *ObjInfo) Reset()         { *m = ObjInfo{} }
@@ -511,10 +528,18 @@
   return 0
}
func (m *ObjInfo) GetObjID() uint64 {
   if m != nil {
      return m.ObjID
   }
   return 0
}
// sdk face property
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"`
   Feats  []byte      `protobuf:"bytes,3,opt,name=feats,proto3" json:"feats,omitempty"`
}
func (m *ResultFaceDetect) Reset()         { *m = ResultFaceDetect{} }
@@ -564,6 +589,13 @@
   return nil
}
func (m *ResultFaceDetect) GetFeats() []byte {
   if m != nil {
      return m.Feats
   }
   return nil
}
type ParamFacePos struct {
   Faces []*ResultFaceDetect `protobuf:"bytes,1,rep,name=faces,proto3" json:"faces,omitempty"`
}
@@ -608,16 +640,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"`
   CompareResult []byte   `protobuf:"bytes,2,opt,name=compareResult,proto3" json:"compareResult,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)
@@ -646,16 +737,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 +753,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 +798,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 +806,51 @@
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,
   // 704 bytes of a gzipped FileDescriptorProto
   0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x54, 0xcf, 0x6f, 0xd3, 0x4a,
   0x10, 0xae, 0x93, 0x38, 0x69, 0x26, 0x55, 0x5f, 0xdf, 0xbe, 0xea, 0xc9, 0xaa, 0x9e, 0xa2, 0xc8,
   0x0f, 0xd1, 0x20, 0x4a, 0x41, 0x01, 0x89, 0x2b, 0x3f, 0xd2, 0x8a, 0x48, 0x40, 0xa3, 0x15, 0x17,
   0x8e, 0x9b, 0xf5, 0x3a, 0x71, 0x6a, 0x67, 0x8d, 0xbd, 0x51, 0x1b, 0xf1, 0x17, 0x70, 0xe3, 0xcf,
   0xe2, 0xd8, 0x23, 0x47, 0xd4, 0xc2, 0xff, 0x81, 0x66, 0x77, 0x1d, 0xbb, 0x52, 0xcb, 0x89, 0x23,
   0xa7, 0xcc, 0xec, 0x7c, 0x9b, 0xef, 0x9b, 0x6f, 0x76, 0x0c, 0xed, 0x3c, 0x38, 0x3d, 0x4c, 0x33,
   0xa9, 0x24, 0xd9, 0xd4, 0x3f, 0x49, 0x3e, 0xdd, 0x83, 0x09, 0xcb, 0x85, 0x39, 0xf5, 0x3f, 0x39,
   0xe0, 0x8e, 0x12, 0x36, 0x15, 0x64, 0x17, 0xdc, 0xb3, 0x28, 0x50, 0x33, 0xcf, 0xe9, 0x39, 0x7d,
   0x97, 0x9a, 0x84, 0xfc, 0x0b, 0xcd, 0x99, 0x88, 0xa6, 0x33, 0xe5, 0xd5, 0xf4, 0xb1, 0xcd, 0x08,
   0x81, 0x46, 0xc0, 0x14, 0xf3, 0xea, 0x3d, 0xa7, 0xbf, 0x45, 0x75, 0x4c, 0xfe, 0x83, 0xb6, 0x8a,
   0x12, 0x91, 0x2b, 0x96, 0xa4, 0x5e, 0xa3, 0xe7, 0xf4, 0xdb, 0xb4, 0x3c, 0x20, 0xdb, 0x50, 0x8b,
   0x02, 0xcf, 0xed, 0x39, 0xfd, 0x3a, 0xad, 0x45, 0x01, 0xd9, 0x81, 0x3a, 0x8f, 0x02, 0xaf, 0xa9,
   0x71, 0x18, 0xfa, 0x53, 0x68, 0x1f, 0x33, 0x2e, 0x9e, 0x2f, 0xa6, 0xb1, 0xc0, 0xf2, 0x8a, 0x9d,
   0x59, 0x31, 0x18, 0xa2, 0xc0, 0x34, 0x52, 0x7c, 0x66, 0x95, 0x98, 0x04, 0x85, 0x64, 0x32, 0x8e,
   0xb5, 0x10, 0x97, 0xea, 0x98, 0x74, 0x01, 0xb8, 0x5c, 0x84, 0x51, 0x20, 0x16, 0x5c, 0x68, 0x25,
   0x35, 0x5a, 0x39, 0xf1, 0xcf, 0x01, 0xde, 0xcd, 0x42, 0x45, 0x45, 0xbe, 0x8c, 0x15, 0xb6, 0x38,
   0x15, 0x8b, 0x40, 0x64, 0x96, 0xcc, 0x66, 0xa8, 0x80, 0x4d, 0x85, 0x65, 0xc3, 0x50, 0x73, 0x31,
   0x2e, 0xd6, 0x5c, 0x8c, 0x0b, 0xbc, 0x3d, 0x11, 0x6c, 0xa9, 0x56, 0x9a, 0xc7, 0xa5, 0x36, 0x43,
   0xb5, 0x79, 0x12, 0xc5, 0x42, 0x77, 0xec, 0x52, 0x93, 0xf8, 0xdf, 0x6b, 0xd0, 0xc2, 0x1e, 0xc7,
   0x32, 0x27, 0x77, 0xa1, 0x99, 0x71, 0x4c, 0x34, 0x6f, 0x67, 0xb0, 0x7d, 0x58, 0x4c, 0xe8, 0x90,
   0x0a, 0xae, 0xa8, 0xad, 0x92, 0x07, 0xd0, 0x4e, 0xd5, 0x6b, 0x11, 0xaa, 0xa3, 0x95, 0x51, 0xd3,
   0x19, 0xfc, 0x55, 0x42, 0xc7, 0x32, 0x5a, 0x28, 0x5a, 0x22, 0xc8, 0x43, 0x80, 0x54, 0x51, 0x1c,
   0x12, 0xe2, 0xeb, 0x37, 0xe3, 0x2b, 0x10, 0x72, 0x0f, 0x5a, 0xa9, 0x7a, 0x23, 0x97, 0x6a, 0xa6,
   0x5b, 0xb8, 0x01, 0x5d, 0xd4, 0xc9, 0x3e, 0x34, 0x53, 0xf5, 0x56, 0xe6, 0xa6, 0xab, 0x1b, 0x90,
   0xb6, 0x4c, 0xee, 0x43, 0x33, 0xd4, 0x73, 0xd4, 0xf3, 0xed, 0x0c, 0xfe, 0x29, 0x81, 0xeb, 0x11,
   0x53, 0x0b, 0x21, 0x1e, 0xb4, 0x3e, 0x2c, 0x59, 0x1c, 0xa9, 0x95, 0xd7, 0xd2, 0x66, 0x15, 0x29,
   0x0e, 0x32, 0x64, 0x3c, 0x62, 0xf1, 0x10, 0xdf, 0xda, 0xa6, 0x7e, 0x6b, 0x95, 0x13, 0x34, 0x3f,
   0x64, 0x5c, 0x8c, 0x86, 0x5e, 0xbb, 0xe7, 0xf4, 0x1b, 0xd4, 0x66, 0xfe, 0x8f, 0x1a, 0x6c, 0x22,
   0xcf, 0x68, 0x11, 0xca, 0x3f, 0x3e, 0xff, 0x6e, 0x9f, 0xeb, 0x6b, 0x9f, 0x4f, 0xa1, 0x75, 0x32,
   0x99, 0x6b, 0x97, 0xef, 0x80, 0x9b, 0xf1, 0x93, 0xc9, 0xfc, 0x16, 0x93, 0x4d, 0x11, 0x77, 0x4a,
   0xad, 0xd2, 0x62, 0xa7, 0xd4, 0x2a, 0xc5, 0x9d, 0x4a, 0x33, 0x39, 0xd1, 0x06, 0xd6, 0xa8, 0x8e,
   0x71, 0x77, 0xe4, 0x64, 0x3e, 0x1a, 0x6a, 0x9f, 0x1a, 0xd4, 0x24, 0xfe, 0x47, 0xd8, 0x31, 0x1b,
   0x8b, 0x9d, 0x0d, 0x85, 0x12, 0x5c, 0x91, 0xff, 0xa1, 0x9e, 0xca, 0xdc, 0x72, 0xfe, 0x7d, 0xbd,
   0xf9, 0xb1, 0xcc, 0x29, 0x56, 0xc9, 0x01, 0x34, 0x33, 0x7d, 0xd1, 0x4e, 0x75, 0xb7, 0xc4, 0x95,
   0x9f, 0x01, 0x6a, 0x31, 0x48, 0x1e, 0x0a, 0xa6, 0x72, 0xfb, 0x69, 0x33, 0x89, 0xff, 0x0c, 0xb6,
   0xc6, 0x2c, 0x63, 0x49, 0xb1, 0xbc, 0x8f, 0xc0, 0x45, 0x0f, 0x90, 0xba, 0xde, 0xef, 0x0c, 0xf6,
   0xaa, 0xed, 0x5e, 0xd7, 0x48, 0x0d, 0xd0, 0x9f, 0x57, 0xe5, 0x1f, 0x9d, 0xab, 0x97, 0x32, 0x29,
   0xb9, 0x9c, 0x0a, 0x17, 0x5a, 0xc2, 0x65, 0x62, 0x5c, 0xda, 0xa2, 0x3a, 0x26, 0x07, 0xa6, 0x51,
   0xf3, 0xcc, 0x7e, 0xc5, 0x86, 0x30, 0xff, 0x15, 0xec, 0xac, 0xd5, 0x1e, 0x0b, 0xa6, 0x96, 0x99,
   0x20, 0x4f, 0xa0, 0x25, 0x34, 0x2b, 0xfe, 0xf1, 0xad, 0x9a, 0x8d, 0x30, 0x5a, 0x40, 0xfd, 0xa7,
   0xb6, 0xef, 0xf7, 0x32, 0x96, 0x38, 0xc0, 0x7d, 0x70, 0xa3, 0x45, 0x28, 0x8b, 0xbe, 0x2b, 0x96,
   0xdb, 0x87, 0x40, 0x4d, 0xfd, 0x85, 0xf7, 0xe5, 0xb2, 0xeb, 0x5c, 0x5c, 0x76, 0x9d, 0x6f, 0x97,
   0x5d, 0xe7, 0xf3, 0x55, 0x77, 0xe3, 0xe2, 0xaa, 0xbb, 0xf1, 0xf5, 0xaa, 0xbb, 0x31, 0x69, 0xea,
   0x2b, 0x8f, 0x7f, 0x06, 0x00, 0x00, 0xff, 0xff, 0xb6, 0x6a, 0xf8, 0x9f, 0x9c, 0x06, 0x00, 0x00,
}
func (m *Image) Marshal() (dAtA []byte, err error) {
@@ -805,6 +894,12 @@
      dAtA[i] = 0x28
      i++
      i = encodeVarintSdk(dAtA, i, uint64(m.Id))
   }
   if len(m.Cid) > 0 {
      dAtA[i] = 0x32
      i++
      i = encodeVarintSdk(dAtA, i, uint64(len(m.Cid)))
      i += copy(dAtA[i:], m.Cid)
   }
   return i, nil
}
@@ -977,6 +1072,11 @@
      i = encodeVarintSdk(dAtA, i, uint64(len(m.FacialData)))
      i += copy(dAtA[i:], m.FacialData)
   }
   if m.FaceID != 0 {
      dAtA[i] = 0x48
      i++
      i = encodeVarintSdk(dAtA, i, uint64(m.FaceID))
   }
   return i, nil
}
@@ -1110,6 +1210,11 @@
      encoding_binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.Prob))))
      i += 4
   }
   if m.ObjID != 0 {
      dAtA[i] = 0x20
      i++
      i = encodeVarintSdk(dAtA, i, uint64(m.ObjID))
   }
   return i, nil
}
@@ -1148,6 +1253,12 @@
      }
      i += n15
   }
   if len(m.Feats) > 0 {
      dAtA[i] = 0x1a
      i++
      i = encodeVarintSdk(dAtA, i, uint64(len(m.Feats)))
      i += copy(dAtA[i:], m.Feats)
   }
   return i, nil
}
@@ -1181,6 +1292,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)
@@ -1196,19 +1347,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
      }
   }
   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
}
@@ -1274,6 +1423,10 @@
   }
   if m.Id != 0 {
      n += 1 + sovSdk(uint64(m.Id))
   }
   l = len(m.Cid)
   if l > 0 {
      n += 1 + l + sovSdk(uint64(l))
   }
   return n
}
@@ -1360,6 +1513,9 @@
   if l > 0 {
      n += 1 + l + sovSdk(uint64(l))
   }
   if m.FaceID != 0 {
      n += 1 + sovSdk(uint64(m.FaceID))
   }
   return n
}
@@ -1422,6 +1578,9 @@
   if m.Prob != 0 {
      n += 5
   }
   if m.ObjID != 0 {
      n += 1 + sovSdk(uint64(m.ObjID))
   }
   return n
}
@@ -1437,6 +1596,10 @@
   }
   if m.Result != nil {
      l = m.Result.Size()
      n += 1 + l + sovSdk(uint64(l))
   }
   l = len(m.Feats)
   if l > 0 {
      n += 1 + l + sovSdk(uint64(l))
   }
   return n
@@ -1457,21 +1620,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))
      }
   }
   l = len(m.CompareResult)
   if l > 0 {
      n += 1 + l + sovSdk(uint64(l))
   }
   return n
}
@@ -1656,6 +1836,38 @@
               break
            }
         }
      case 6:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Cid", 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.Cid = string(dAtA[iNdEx:postIndex])
         iNdEx = postIndex
      default:
         iNdEx = preIndex
         skippy, err := skipSdk(dAtA[iNdEx:])
@@ -2247,6 +2459,25 @@
            m.FacialData = []byte{}
         }
         iNdEx = postIndex
      case 9:
         if wireType != 0 {
            return fmt.Errorf("proto: wrong wireType = %d for field FaceID", wireType)
         }
         m.FaceID = 0
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            m.FaceID |= uint64(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
      default:
         iNdEx = preIndex
         skippy, err := skipSdk(dAtA[iNdEx:])
@@ -2707,6 +2938,25 @@
         v = uint32(encoding_binary.LittleEndian.Uint32(dAtA[iNdEx:]))
         iNdEx += 4
         m.Prob = float32(math.Float32frombits(v))
      case 4:
         if wireType != 0 {
            return fmt.Errorf("proto: wrong wireType = %d for field ObjID", wireType)
         }
         m.ObjID = 0
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            m.ObjID |= uint64(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
      default:
         iNdEx = preIndex
         skippy, err := skipSdk(dAtA[iNdEx:])
@@ -2832,6 +3082,40 @@
            return err
         }
         iNdEx = postIndex
      case 3:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Feats", 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.Feats = append(m.Feats[:0], dAtA[iNdEx:postIndex]...)
         if m.Feats == nil {
            m.Feats = []byte{}
         }
         iNdEx = postIndex
      default:
         iNdEx = preIndex
         skippy, err := skipSdk(dAtA[iNdEx:])
@@ -2943,7 +3227,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 +3250,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 +3285,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 +3319,132 @@
         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
      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
         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 2:
         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: