liuxiaolong
2019-06-19 22f649a39f7a453f516469feaba5723c6c9181c2
sdk.pb.go
@@ -496,17 +496,67 @@
}
// sdk face property
type ParamFacePos struct {
type ResultFaceDetect struct {
   Pos    *FacePos    `protobuf:"bytes,1,opt,name=pos,proto3" json:"pos,omitempty"`
   Result *ThftResult `protobuf:"bytes,2,opt,name=result,proto3" json:"result,omitempty"`
   Img    *Image      `protobuf:"bytes,3,opt,name=img,proto3" json:"img,omitempty"`
}
func (m *ResultFaceDetect) Reset()         { *m = ResultFaceDetect{} }
func (m *ResultFaceDetect) String() string { return proto.CompactTextString(m) }
func (*ResultFaceDetect) ProtoMessage()    {}
func (*ResultFaceDetect) Descriptor() ([]byte, []int) {
   return fileDescriptor_70decb0fb6f436df, []int{6}
}
func (m *ResultFaceDetect) XXX_Unmarshal(b []byte) error {
   return m.Unmarshal(b)
}
func (m *ResultFaceDetect) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   if deterministic {
      return xxx_messageInfo_ResultFaceDetect.Marshal(b, m, deterministic)
   } else {
      b = b[:cap(b)]
      n, err := m.MarshalTo(b)
      if err != nil {
         return nil, err
      }
      return b[:n], nil
   }
}
func (m *ResultFaceDetect) XXX_Merge(src proto.Message) {
   xxx_messageInfo_ResultFaceDetect.Merge(m, src)
}
func (m *ResultFaceDetect) XXX_Size() int {
   return m.Size()
}
func (m *ResultFaceDetect) XXX_DiscardUnknown() {
   xxx_messageInfo_ResultFaceDetect.DiscardUnknown(m)
}
var xxx_messageInfo_ResultFaceDetect proto.InternalMessageInfo
func (m *ResultFaceDetect) GetPos() *FacePos {
   if m != nil {
      return m.Pos
   }
   return nil
}
func (m *ResultFaceDetect) GetResult() *ThftResult {
   if m != nil {
      return m.Result
   }
   return nil
}
type ParamFacePos struct {
   Faces []*ResultFaceDetect `protobuf:"bytes,1,rep,name=faces,proto3" json:"faces,omitempty"`
}
func (m *ParamFacePos) Reset()         { *m = ParamFacePos{} }
func (m *ParamFacePos) String() string { return proto.CompactTextString(m) }
func (*ParamFacePos) ProtoMessage()    {}
func (*ParamFacePos) Descriptor() ([]byte, []int) {
   return fileDescriptor_70decb0fb6f436df, []int{6}
   return fileDescriptor_70decb0fb6f436df, []int{7}
}
func (m *ParamFacePos) XXX_Unmarshal(b []byte) error {
   return m.Unmarshal(b)
@@ -535,23 +585,53 @@
var xxx_messageInfo_ParamFacePos proto.InternalMessageInfo
func (m *ParamFacePos) GetPos() *FacePos {
func (m *ParamFacePos) GetFaces() []*ResultFaceDetect {
   if m != nil {
      return m.Pos
      return m.Faces
   }
   return nil
}
func (m *ParamFacePos) GetResult() *ThftResult {
   if m != nil {
      return m.Result
   }
   return nil
type ParamFaceFeature struct {
   Feats [][]byte `protobuf:"bytes,1,rep,name=feats,proto3" json:"feats,omitempty"`
}
func (m *ParamFacePos) GetImg() *Image {
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}
}
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) GetFeats() [][]byte {
   if m != nil {
      return m.Img
      return m.Feats
   }
   return nil
}
@@ -566,7 +646,7 @@
func (m *ParamFaceCompare) String() string { return proto.CompactTextString(m) }
func (*ParamFaceCompare) ProtoMessage()    {}
func (*ParamFaceCompare) Descriptor() ([]byte, []int) {
   return fileDescriptor_70decb0fb6f436df, []int{7}
   return fileDescriptor_70decb0fb6f436df, []int{9}
}
func (m *ParamFaceCompare) XXX_Unmarshal(b []byte) error {
   return m.Unmarshal(b)
@@ -612,14 +692,13 @@
// sdk yolo detect
type ParamYoloObj struct {
   Infos []*ObjInfo `protobuf:"bytes,1,rep,name=infos,proto3" json:"infos,omitempty"`
   Img   *Image     `protobuf:"bytes,2,opt,name=img,proto3" json:"img,omitempty"`
}
func (m *ParamYoloObj) Reset()         { *m = ParamYoloObj{} }
func (m *ParamYoloObj) String() string { return proto.CompactTextString(m) }
func (*ParamYoloObj) ProtoMessage()    {}
func (*ParamYoloObj) Descriptor() ([]byte, []int) {
   return fileDescriptor_70decb0fb6f436df, []int{8}
   return fileDescriptor_70decb0fb6f436df, []int{10}
}
func (m *ParamYoloObj) XXX_Unmarshal(b []byte) error {
   return m.Unmarshal(b)
@@ -655,13 +734,6 @@
   return nil
}
func (m *ParamYoloObj) GetImg() *Image {
   if m != nil {
      return m.Img
   }
   return nil
}
func init() {
   proto.RegisterType((*Image)(nil), "protomsg.Image")
   proto.RegisterType((*FaceAngle)(nil), "protomsg.FaceAngle")
@@ -669,7 +741,9 @@
   proto.RegisterType((*FacePos)(nil), "protomsg.FacePos")
   proto.RegisterType((*FaceInfo)(nil), "protomsg.FaceInfo")
   proto.RegisterType((*ObjInfo)(nil), "protomsg.ObjInfo")
   proto.RegisterType((*ResultFaceDetect)(nil), "protomsg.ResultFaceDetect")
   proto.RegisterType((*ParamFacePos)(nil), "protomsg.ParamFacePos")
   proto.RegisterType((*ParamFaceFeature)(nil), "protomsg.ParamFaceFeature")
   proto.RegisterType((*ParamFaceCompare)(nil), "protomsg.ParamFaceCompare")
   proto.RegisterType((*ParamYoloObj)(nil), "protomsg.ParamYoloObj")
}
@@ -677,45 +751,46 @@
func init() { proto.RegisterFile("sdk.proto", fileDescriptor_70decb0fb6f436df) }
var fileDescriptor_70decb0fb6f436df = []byte{
   // 598 bytes of a gzipped FileDescriptorProto
   0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x54, 0xcd, 0x6e, 0xd3, 0x40,
   0x10, 0xae, 0xed, 0xda, 0x69, 0xa6, 0x15, 0x94, 0xa5, 0x42, 0x16, 0x07, 0x2b, 0x18, 0x44, 0x83,
   0x80, 0x22, 0xc2, 0x1d, 0x09, 0x28, 0x48, 0x91, 0x80, 0x46, 0x2b, 0x38, 0xc0, 0x6d, 0xed, 0xac,
   0x7f, 0x8a, 0xed, 0x35, 0xf6, 0x46, 0xc5, 0x77, 0x1e, 0x80, 0xc7, 0xe2, 0xc0, 0xa1, 0x47, 0x8e,
   0x28, 0x11, 0xef, 0x81, 0x76, 0xbc, 0x4e, 0x52, 0x91, 0x9e, 0xb8, 0x72, 0xca, 0x7c, 0x33, 0x5f,
   0xe6, 0xe7, 0x9b, 0x1d, 0x43, 0xbf, 0x9e, 0x7e, 0x3a, 0x2a, 0x2b, 0x21, 0x05, 0xd9, 0xc1, 0x9f,
   0xbc, 0x8e, 0x6f, 0x42, 0xc0, 0x6a, 0xde, 0x7a, 0xfd, 0x31, 0xd8, 0xe3, 0x9c, 0xc5, 0x9c, 0x1c,
   0x80, 0x7d, 0x96, 0x4e, 0x65, 0xe2, 0x1a, 0x03, 0x63, 0x68, 0xd3, 0x16, 0x90, 0x1b, 0xe0, 0x24,
   0x3c, 0x8d, 0x13, 0xe9, 0x9a, 0xe8, 0xd6, 0x88, 0x10, 0xd8, 0x9e, 0x32, 0xc9, 0x5c, 0x6b, 0x60,
   0x0c, 0xf7, 0x28, 0xda, 0x7e, 0x0c, 0xfd, 0x57, 0x2c, 0xe4, 0xcf, 0x8a, 0x38, 0xe3, 0x64, 0x1f,
   0xac, 0x86, 0x9d, 0xe9, 0x64, 0xca, 0x54, 0x05, 0xca, 0x54, 0x86, 0x89, 0xce, 0xd4, 0x02, 0x95,
   0xa8, 0x12, 0x59, 0x86, 0x89, 0x6c, 0x8a, 0x36, 0xf1, 0x00, 0x42, 0x51, 0x44, 0xe9, 0x94, 0x17,
   0x21, 0x77, 0xb7, 0x07, 0xc6, 0xd0, 0xa4, 0x6b, 0x1e, 0xff, 0x0b, 0xc0, 0xbb, 0x24, 0x92, 0x94,
   0xd7, 0xb3, 0x4c, 0xaa, 0x16, 0x63, 0x5e, 0x4c, 0x79, 0xa5, 0x8b, 0x69, 0xa4, 0x3a, 0x60, 0x31,
   0xd7, 0xd5, 0x94, 0x89, 0xb5, 0x58, 0xc8, 0x97, 0xb5, 0x58, 0xc8, 0xd5, 0xbf, 0x03, 0xce, 0x66,
   0xb2, 0xc1, 0x3a, 0x36, 0xd5, 0x48, 0x75, 0x5b, 0xe7, 0x69, 0xc6, 0x5d, 0xbb, 0xed, 0x16, 0x81,
   0xff, 0xc3, 0x84, 0x9e, 0x9a, 0x71, 0x22, 0x6a, 0x72, 0x17, 0x9c, 0x2a, 0x54, 0x00, 0xeb, 0xee,
   0x8e, 0xae, 0x1c, 0x75, 0x02, 0x1f, 0x51, 0x1e, 0x4a, 0xaa, 0xa3, 0xe4, 0x21, 0xf4, 0x4b, 0xf9,
   0x9a, 0x47, 0xf2, 0x65, 0xd3, 0x76, 0xb3, 0x3b, 0xba, 0xba, 0xa2, 0x4e, 0x44, 0x5a, 0x48, 0xba,
   0x62, 0x90, 0x47, 0x00, 0xa5, 0xa4, 0x4a, 0x64, 0xc5, 0xb7, 0x36, 0xf3, 0xd7, 0x28, 0xe4, 0x1e,
   0xf4, 0x4a, 0xf9, 0x46, 0xcc, 0x64, 0x82, 0x23, 0x6c, 0x60, 0x77, 0x71, 0x72, 0x08, 0x4e, 0x29,
   0xdf, 0x8a, 0xba, 0x9d, 0x6a, 0x03, 0x53, 0x87, 0xc9, 0x7d, 0x70, 0x22, 0xdc, 0xa3, 0xeb, 0x20,
   0xf1, 0xfa, 0x8a, 0xb8, 0x5c, 0x31, 0xd5, 0x14, 0xe2, 0x42, 0xef, 0xf3, 0x8c, 0x65, 0xa9, 0x6c,
   0xdc, 0x1e, 0x8a, 0xd5, 0x41, 0xb5, 0xc8, 0x88, 0x85, 0x29, 0xcb, 0x8e, 0xd5, 0x5b, 0xd9, 0xc1,
   0xb7, 0xb2, 0xe6, 0xf1, 0x7f, 0x9b, 0xb0, 0xa3, 0xf2, 0x8d, 0x8b, 0x48, 0xfc, 0xd7, 0xf3, 0x9f,
   0xf5, 0x54, 0x8f, 0x39, 0x52, 0x72, 0x1e, 0xbb, 0xfd, 0x81, 0x31, 0xb4, 0xa8, 0x46, 0xfe, 0x7b,
   0xe8, 0x9d, 0x04, 0xa7, 0xa8, 0xf2, 0x1d, 0xb0, 0xab, 0xf0, 0x24, 0x38, 0xbd, 0x44, 0xe4, 0x36,
   0xa8, 0x6e, 0x47, 0x36, 0x65, 0x77, 0x3b, 0xb2, 0x29, 0xd5, 0xed, 0x94, 0x95, 0x08, 0x50, 0x40,
   0x93, 0xa2, 0xed, 0x7f, 0x35, 0x60, 0x6f, 0xc2, 0x2a, 0x96, 0x77, 0x27, 0x71, 0x1b, 0xac, 0x52,
   0xd4, 0x3a, 0xf5, 0xb5, 0x8b, 0x33, 0x4e, 0x44, 0x4d, 0x55, 0x94, 0x3c, 0x00, 0xa7, 0xc2, 0xcb,
   0xd5, 0xcb, 0x3b, 0x58, 0xf1, 0x56, 0x57, 0x4d, 0x35, 0x87, 0xdc, 0x02, 0x2b, 0xcd, 0xe3, 0xbf,
   0xf7, 0x86, 0x1f, 0x2d, 0xaa, 0x62, 0xfe, 0x53, 0xd8, 0x5f, 0x76, 0xf1, 0x42, 0xe4, 0x25, 0xab,
   0xf0, 0x6b, 0x16, 0x71, 0x26, 0x1f, 0x63, 0x2f, 0x7b, 0xb4, 0x05, 0x9d, 0x77, 0x84, 0x95, 0xb5,
   0x77, 0xe4, 0x7f, 0xd4, 0x53, 0x7c, 0x10, 0x99, 0x50, 0xc3, 0x1f, 0x82, 0x9d, 0x16, 0x11, 0xce,
   0x61, 0x5d, 0x9c, 0x43, 0x8b, 0x48, 0xdb, 0x78, 0xd7, 0x9b, 0x79, 0x79, 0x6f, 0xcf, 0xdd, 0xef,
   0x73, 0xcf, 0x38, 0x9f, 0x7b, 0xc6, 0xaf, 0xb9, 0x67, 0x7c, 0x5b, 0x78, 0x5b, 0xe7, 0x0b, 0x6f,
   0xeb, 0xe7, 0xc2, 0xdb, 0x0a, 0x1c, 0xa4, 0x3f, 0xf9, 0x13, 0x00, 0x00, 0xff, 0xff, 0x19, 0xbd,
   0x52, 0xcd, 0xa2, 0x05, 0x00, 0x00,
   // 624 bytes of a gzipped FileDescriptorProto
   0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x54, 0x4d, 0x6f, 0xd3, 0x4c,
   0x10, 0xae, 0x93, 0xda, 0x69, 0xa6, 0xd5, 0xfb, 0x96, 0xa5, 0x42, 0x56, 0x0f, 0x56, 0x64, 0x10,
   0x35, 0x02, 0x0a, 0x0d, 0x07, 0x6e, 0x88, 0x8f, 0x52, 0xa9, 0x12, 0xd0, 0x68, 0x05, 0x07, 0x8e,
   0x6b, 0x67, 0xfd, 0x51, 0x1c, 0xaf, 0xb1, 0x37, 0x2a, 0xfe, 0x17, 0xfc, 0x2c, 0x0e, 0x1c, 0x7a,
   0xe4, 0x88, 0x5a, 0xf1, 0x3f, 0xd0, 0xec, 0xae, 0x6b, 0x57, 0x0a, 0x27, 0xae, 0x9c, 0x32, 0xcf,
   0xcc, 0xe3, 0xf9, 0x78, 0x66, 0x27, 0x30, 0xae, 0xe7, 0x9f, 0xf6, 0xcb, 0x4a, 0x48, 0x41, 0x36,
   0xd4, 0xcf, 0xa2, 0x4e, 0x76, 0x21, 0x64, 0x35, 0xd7, 0x5e, 0xff, 0x18, 0xec, 0xe3, 0x05, 0x4b,
   0x38, 0xd9, 0x01, 0xfb, 0x2c, 0x9b, 0xcb, 0xd4, 0xb5, 0x26, 0x56, 0x60, 0x53, 0x0d, 0xc8, 0x2d,
   0x70, 0x52, 0x9e, 0x25, 0xa9, 0x74, 0x07, 0xca, 0x6d, 0x10, 0x21, 0xb0, 0x3e, 0x67, 0x92, 0xb9,
   0xc3, 0x89, 0x15, 0x6c, 0x51, 0x65, 0xfb, 0x09, 0x8c, 0x8f, 0x58, 0xc4, 0x5f, 0x14, 0x49, 0xce,
   0xc9, 0x36, 0x0c, 0x1b, 0x76, 0x66, 0x92, 0xa1, 0x89, 0x05, 0xca, 0x4c, 0x46, 0xa9, 0xc9, 0xa4,
   0x01, 0x26, 0xaa, 0x44, 0x9e, 0xab, 0x44, 0x36, 0x55, 0x36, 0xf1, 0x00, 0x22, 0x51, 0xc4, 0xd9,
   0x9c, 0x17, 0x11, 0x77, 0xd7, 0x27, 0x56, 0x30, 0xa0, 0x3d, 0x8f, 0xff, 0x05, 0xe0, 0x7d, 0x1a,
   0x4b, 0xca, 0xeb, 0x65, 0x2e, 0xb1, 0xc5, 0x84, 0x17, 0x73, 0x5e, 0x99, 0x62, 0x06, 0x61, 0x07,
   0x2c, 0xe1, 0xa6, 0x1a, 0x9a, 0xaa, 0x16, 0x8b, 0xf8, 0x55, 0x2d, 0x16, 0x71, 0xfc, 0x3a, 0xe4,
   0x6c, 0x29, 0x1b, 0x55, 0xc7, 0xa6, 0x06, 0x61, 0xb7, 0xf5, 0x22, 0xcb, 0xb9, 0x6b, 0xeb, 0x6e,
   0x15, 0xf0, 0xbf, 0x0f, 0x60, 0x84, 0x33, 0xce, 0x44, 0x4d, 0xee, 0x82, 0x53, 0x45, 0x08, 0x54,
   0xdd, 0xcd, 0xe9, 0x7f, 0xfb, 0xad, 0xc0, 0xfb, 0x94, 0x47, 0x92, 0x9a, 0x28, 0x79, 0x08, 0xe3,
   0x52, 0xbe, 0xe1, 0xb1, 0x7c, 0xdd, 0xe8, 0x6e, 0x36, 0xa7, 0xff, 0x77, 0xd4, 0x99, 0xc8, 0x0a,
   0x49, 0x3b, 0x06, 0x79, 0x04, 0x50, 0x4a, 0x8a, 0x22, 0x23, 0x7f, 0xb8, 0x9a, 0xdf, 0xa3, 0x90,
   0x7b, 0x30, 0x2a, 0xe5, 0x5b, 0xb1, 0x94, 0xa9, 0x1a, 0x61, 0x05, 0xbb, 0x8d, 0x93, 0x3d, 0x70,
   0x4a, 0xf9, 0x4e, 0xd4, 0x7a, 0xaa, 0x15, 0x4c, 0x13, 0x26, 0xf7, 0xc1, 0x89, 0xd5, 0x1e, 0x5d,
   0x47, 0x11, 0x6f, 0x76, 0xc4, 0xab, 0x15, 0x53, 0x43, 0x21, 0x2e, 0x8c, 0x3e, 0x2f, 0x59, 0x9e,
   0xc9, 0xc6, 0x1d, 0x29, 0xb1, 0x5a, 0x88, 0x8b, 0x8c, 0x59, 0x94, 0xb1, 0xfc, 0x10, 0xdf, 0xca,
   0x86, 0x7a, 0x2b, 0x3d, 0x8f, 0xff, 0x6b, 0x00, 0x1b, 0x98, 0xef, 0xb8, 0x88, 0xc5, 0x3f, 0x3d,
   0xff, 0x5a, 0x4f, 0x7c, 0xcc, 0x31, 0xca, 0x79, 0xe8, 0x8e, 0x27, 0x56, 0x30, 0xa4, 0x06, 0xf9,
   0x1f, 0x60, 0x74, 0x12, 0x9e, 0x2a, 0x95, 0xef, 0x80, 0x5d, 0x45, 0x27, 0xe1, 0xe9, 0x1f, 0x44,
   0xd6, 0x41, 0xbc, 0x1d, 0xd9, 0x94, 0xed, 0xed, 0xc8, 0xa6, 0xc4, 0xdb, 0x29, 0x2b, 0x11, 0x2a,
   0x01, 0x07, 0x54, 0xd9, 0x3e, 0x87, 0x6d, 0x7d, 0x83, 0x38, 0xc3, 0x21, 0x97, 0x3c, 0x92, 0xe4,
   0x36, 0x0c, 0x4b, 0x51, 0x9b, 0xec, 0x37, 0xae, 0x8f, 0x39, 0x13, 0x35, 0xc5, 0x28, 0x79, 0x00,
   0x4e, 0xa5, 0x3e, 0x34, 0xfb, 0xdb, 0xe9, 0x78, 0xdd, 0x61, 0x53, 0xc3, 0xf1, 0x9f, 0xc3, 0xd6,
   0x8c, 0x55, 0x6c, 0xd1, 0x1e, 0xde, 0x63, 0xb0, 0x71, 0x2e, 0x2c, 0x32, 0x0c, 0x36, 0xa7, 0xbb,
   0xfd, 0x11, 0xae, 0x77, 0x43, 0x35, 0xd1, 0x0f, 0x60, 0xfb, 0x2a, 0xc3, 0x11, 0x67, 0x72, 0x59,
   0xa9, 0xff, 0xbb, 0x98, 0x33, 0xa9, 0xb3, 0x6c, 0x51, 0x0d, 0xfc, 0x67, 0x3d, 0xe6, 0x2b, 0xb1,
   0x28, 0x59, 0xc7, 0x3c, 0x50, 0x43, 0x19, 0xe6, 0x41, 0xeb, 0x9d, 0xaa, 0x11, 0x8c, 0x77, 0xea,
   0x3f, 0x35, 0xbd, 0x7e, 0x14, 0xb9, 0x40, 0x21, 0xf7, 0xc0, 0xce, 0x8a, 0x58, 0xb4, 0xbd, 0xf6,
   0x04, 0x31, 0x0b, 0xa1, 0x3a, 0xfe, 0xd2, 0xfd, 0x76, 0xe1, 0x59, 0xe7, 0x17, 0x9e, 0xf5, 0xf3,
   0xc2, 0xb3, 0xbe, 0x5e, 0x7a, 0x6b, 0xe7, 0x97, 0xde, 0xda, 0x8f, 0x4b, 0x6f, 0x2d, 0x74, 0xd4,
   0x27, 0x4f, 0x7e, 0x07, 0x00, 0x00, 0xff, 0xff, 0xba, 0xd3, 0x09, 0x2b, 0xcb, 0x05, 0x00, 0x00,
}
func (m *Image) Marshal() (dAtA []byte, err error) {
@@ -1056,7 +1131,7 @@
   return i, nil
}
func (m *ParamFacePos) Marshal() (dAtA []byte, err error) {
func (m *ResultFaceDetect) Marshal() (dAtA []byte, err error) {
   size := m.Size()
   dAtA = make([]byte, size)
   n, err := m.MarshalTo(dAtA)
@@ -1066,7 +1141,7 @@
   return dAtA[:n], nil
}
func (m *ParamFacePos) MarshalTo(dAtA []byte) (int, error) {
func (m *ResultFaceDetect) MarshalTo(dAtA []byte) (int, error) {
   var i int
   _ = i
   var l int
@@ -1091,15 +1166,61 @@
      }
      i += n15
   }
   if m.Img != nil {
      dAtA[i] = 0x1a
      i++
      i = encodeVarintSdk(dAtA, i, uint64(m.Img.Size()))
      n16, err16 := m.Img.MarshalTo(dAtA[i:])
      if err16 != nil {
         return 0, err16
   return i, nil
}
func (m *ParamFacePos) Marshal() (dAtA []byte, err error) {
   size := m.Size()
   dAtA = make([]byte, size)
   n, err := m.MarshalTo(dAtA)
   if err != nil {
      return nil, err
   }
   return dAtA[:n], nil
}
func (m *ParamFacePos) MarshalTo(dAtA []byte) (int, error) {
   var i int
   _ = i
   var l int
   _ = l
   if len(m.Faces) > 0 {
      for _, msg := range m.Faces {
         dAtA[i] = 0xa
         i++
         i = encodeVarintSdk(dAtA, i, uint64(msg.Size()))
         n, err := msg.MarshalTo(dAtA[i:])
         if err != nil {
            return 0, err
         }
         i += n
      }
      i += n16
   }
   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.Feats) > 0 {
      for _, b := range m.Feats {
         dAtA[i] = 0xa
         i++
         i = encodeVarintSdk(dAtA, i, uint64(len(b)))
         i += copy(dAtA[i:], b)
      }
   }
   return i, nil
}
@@ -1160,16 +1281,6 @@
         }
         i += n
      }
   }
   if m.Img != nil {
      dAtA[i] = 0x12
      i++
      i = encodeVarintSdk(dAtA, i, uint64(m.Img.Size()))
      n17, err17 := m.Img.MarshalTo(dAtA[i:])
      if err17 != nil {
         return 0, err17
      }
      i += n17
   }
   return i, nil
}
@@ -1349,7 +1460,7 @@
   return n
}
func (m *ParamFacePos) Size() (n int) {
func (m *ResultFaceDetect) Size() (n int) {
   if m == nil {
      return 0
   }
@@ -1363,9 +1474,35 @@
      l = m.Result.Size()
      n += 1 + l + sovSdk(uint64(l))
   }
   if m.Img != nil {
      l = m.Img.Size()
      n += 1 + l + sovSdk(uint64(l))
   return n
}
func (m *ParamFacePos) Size() (n int) {
   if m == nil {
      return 0
   }
   var l int
   _ = l
   if len(m.Faces) > 0 {
      for _, e := range m.Faces {
         l = e.Size()
         n += 1 + l + sovSdk(uint64(l))
      }
   }
   return n
}
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)
         n += 1 + l + sovSdk(uint64(l))
      }
   }
   return n
}
@@ -1398,10 +1535,6 @@
         l = e.Size()
         n += 1 + l + sovSdk(uint64(l))
      }
   }
   if m.Img != nil {
      l = m.Img.Size()
      n += 1 + l + sovSdk(uint64(l))
   }
   return n
}
@@ -2595,7 +2728,7 @@
   }
   return nil
}
func (m *ParamFacePos) Unmarshal(dAtA []byte) error {
func (m *ResultFaceDetect) Unmarshal(dAtA []byte) error {
   l := len(dAtA)
   iNdEx := 0
   for iNdEx < l {
@@ -2618,10 +2751,10 @@
      fieldNum := int32(wire >> 3)
      wireType := int(wire & 0x7)
      if wireType == 4 {
         return fmt.Errorf("proto: ParamFacePos: wiretype end group for non-group")
         return fmt.Errorf("proto: ResultFaceDetect: wiretype end group for non-group")
      }
      if fieldNum <= 0 {
         return fmt.Errorf("proto: ParamFacePos: illegal tag %d (wire type %d)", fieldNum, wire)
         return fmt.Errorf("proto: ResultFaceDetect: illegal tag %d (wire type %d)", fieldNum, wire)
      }
      switch fieldNum {
      case 1:
@@ -2696,9 +2829,62 @@
            return err
         }
         iNdEx = postIndex
      case 3:
      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 *ParamFacePos) Unmarshal(dAtA []byte) error {
   l := len(dAtA)
   iNdEx := 0
   for iNdEx < l {
      preIndex := iNdEx
      var wire uint64
      for shift := uint(0); ; shift += 7 {
         if shift >= 64 {
            return ErrIntOverflowSdk
         }
         if iNdEx >= l {
            return io.ErrUnexpectedEOF
         }
         b := dAtA[iNdEx]
         iNdEx++
         wire |= uint64(b&0x7F) << shift
         if b < 0x80 {
            break
         }
      }
      fieldNum := int32(wire >> 3)
      wireType := int(wire & 0x7)
      if wireType == 4 {
         return fmt.Errorf("proto: ParamFacePos: wiretype end group for non-group")
      }
      if fieldNum <= 0 {
         return fmt.Errorf("proto: ParamFacePos: illegal tag %d (wire type %d)", fieldNum, wire)
      }
      switch fieldNum {
      case 1:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Img", wireType)
            return fmt.Errorf("proto: wrong wireType = %d for field Faces", wireType)
         }
         var msglen int
         for shift := uint(0); ; shift += 7 {
@@ -2725,12 +2911,95 @@
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         if m.Img == nil {
            m.Img = &Image{}
         }
         if err := m.Img.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
         m.Faces = append(m.Faces, &ResultFaceDetect{})
         if err := m.Faces[len(m.Faces)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
            return err
         }
         iNdEx = postIndex
      default:
         iNdEx = preIndex
         skippy, err := skipSdk(dAtA[iNdEx:])
         if err != nil {
            return err
         }
         if skippy < 0 {
            return ErrInvalidLengthSdk
         }
         if (iNdEx + skippy) < 0 {
            return ErrInvalidLengthSdk
         }
         if (iNdEx + skippy) > l {
            return io.ErrUnexpectedEOF
         }
         iNdEx += skippy
      }
   }
   if iNdEx > l {
      return io.ErrUnexpectedEOF
   }
   return nil
}
func (m *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 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, make([]byte, postIndex-iNdEx))
         copy(m.Feats[len(m.Feats)-1], dAtA[iNdEx:postIndex])
         iNdEx = postIndex
      default:
         iNdEx = preIndex
@@ -2937,42 +3206,6 @@
         }
         m.Infos = append(m.Infos, &ObjInfo{})
         if err := m.Infos[len(m.Infos)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
            return err
         }
         iNdEx = postIndex
      case 2:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Img", 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.Img == nil {
            m.Img = &Image{}
         }
         if err := m.Img.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
            return err
         }
         iNdEx = postIndex