zhangmeng
2019-06-25 0310fadbdc218cb40e89b179e2b1638c385c4502
合并feature和compare
2个文件已修改
472 ■■■■ 已修改文件
sdk.pb.go 466 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
sdk.proto 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
sdk.pb.go
@@ -6,7 +6,7 @@
import (
    encoding_binary "encoding/binary"
    fmt "fmt"
    proto "github.com/golang/protobuf/proto"
    proto "github.com/gogo/protobuf/proto"
    io "io"
    math "math"
)
@@ -20,18 +20,15 @@
// is compatible with the proto package it is being compiled against.
// A compilation error at this line likely means your copy of the
// proto package needs to be updated.
const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package
// 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"`
    Timestamp            string   `protobuf:"bytes,4,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
    Id                   int64    `protobuf:"varint,5,opt,name=id,proto3" json:"id,omitempty"`
    XXX_NoUnkeyedLiteral struct{} `json:"-"`
    XXX_unrecognized     []byte   `json:"-"`
    XXX_sizecache        int32    `json:"-"`
    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{} }
@@ -103,13 +100,10 @@
}
type FaceAngle struct {
    Yaw                  int32    `protobuf:"varint,1,opt,name=yaw,proto3" json:"yaw,omitempty"`
    Pitch                int32    `protobuf:"varint,2,opt,name=pitch,proto3" json:"pitch,omitempty"`
    Roll                 int32    `protobuf:"varint,3,opt,name=roll,proto3" json:"roll,omitempty"`
    Confidence           float32  `protobuf:"fixed32,4,opt,name=confidence,proto3" json:"confidence,omitempty"`
    XXX_NoUnkeyedLiteral struct{} `json:"-"`
    XXX_unrecognized     []byte   `json:"-"`
    XXX_sizecache        int32    `json:"-"`
    Yaw        int32   `protobuf:"varint,1,opt,name=yaw,proto3" json:"yaw,omitempty"`
    Pitch      int32   `protobuf:"varint,2,opt,name=pitch,proto3" json:"pitch,omitempty"`
    Roll       int32   `protobuf:"varint,3,opt,name=roll,proto3" json:"roll,omitempty"`
    Confidence float32 `protobuf:"fixed32,4,opt,name=confidence,proto3" json:"confidence,omitempty"`
}
func (m *FaceAngle) Reset()         { *m = FaceAngle{} }
@@ -174,14 +168,11 @@
}
type ThftResult struct {
    Gender               int32    `protobuf:"varint,1,opt,name=gender,proto3" json:"gender,omitempty"`
    Age                  int32    `protobuf:"varint,2,opt,name=age,proto3" json:"age,omitempty"`
    Race                 int32    `protobuf:"varint,3,opt,name=race,proto3" json:"race,omitempty"`
    Beauty               int32    `protobuf:"varint,4,opt,name=beauty,proto3" json:"beauty,omitempty"`
    Smile                int32    `protobuf:"varint,5,opt,name=smile,proto3" json:"smile,omitempty"`
    XXX_NoUnkeyedLiteral struct{} `json:"-"`
    XXX_unrecognized     []byte   `json:"-"`
    XXX_sizecache        int32    `json:"-"`
    Gender int32 `protobuf:"varint,1,opt,name=gender,proto3" json:"gender,omitempty"`
    Age    int32 `protobuf:"varint,2,opt,name=age,proto3" json:"age,omitempty"`
    Race   int32 `protobuf:"varint,3,opt,name=race,proto3" json:"race,omitempty"`
    Beauty int32 `protobuf:"varint,4,opt,name=beauty,proto3" json:"beauty,omitempty"`
    Smile  int32 `protobuf:"varint,5,opt,name=smile,proto3" json:"smile,omitempty"`
}
func (m *ThftResult) Reset()         { *m = ThftResult{} }
@@ -253,17 +244,14 @@
}
type FacePos struct {
    RcFace               *Rect      `protobuf:"bytes,1,opt,name=rcFace,proto3" json:"rcFace,omitempty"`
    PtLeftEye            *Point     `protobuf:"bytes,2,opt,name=ptLeftEye,proto3" json:"ptLeftEye,omitempty"`
    PtRightEye           *Point     `protobuf:"bytes,3,opt,name=ptRightEye,proto3" json:"ptRightEye,omitempty"`
    PtMouth              *Point     `protobuf:"bytes,4,opt,name=ptMouth,proto3" json:"ptMouth,omitempty"`
    PtNose               *Point     `protobuf:"bytes,5,opt,name=ptNose,proto3" json:"ptNose,omitempty"`
    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"`
    XXX_NoUnkeyedLiteral struct{}   `json:"-"`
    XXX_unrecognized     []byte     `json:"-"`
    XXX_sizecache        int32      `json:"-"`
    RcFace     *Rect      `protobuf:"bytes,1,opt,name=rcFace,proto3" json:"rcFace,omitempty"`
    PtLeftEye  *Point     `protobuf:"bytes,2,opt,name=ptLeftEye,proto3" json:"ptLeftEye,omitempty"`
    PtRightEye *Point     `protobuf:"bytes,3,opt,name=ptRightEye,proto3" json:"ptRightEye,omitempty"`
    PtMouth    *Point     `protobuf:"bytes,4,opt,name=ptMouth,proto3" json:"ptMouth,omitempty"`
    PtNose     *Point     `protobuf:"bytes,5,opt,name=ptNose,proto3" json:"ptNose,omitempty"`
    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"`
}
func (m *FacePos) Reset()         { *m = FacePos{} }
@@ -356,18 +344,15 @@
}
type FaceInfo struct {
    RcFace               *Rect      `protobuf:"bytes,1,opt,name=rcFace,proto3" json:"rcFace,omitempty"`
    PtLeftEye            *Point     `protobuf:"bytes,2,opt,name=ptLeftEye,proto3" json:"ptLeftEye,omitempty"`
    PtRightEye           *Point     `protobuf:"bytes,3,opt,name=ptRightEye,proto3" json:"ptRightEye,omitempty"`
    PtMouth              *Point     `protobuf:"bytes,4,opt,name=ptMouth,proto3" json:"ptMouth,omitempty"`
    PtNose               *Point     `protobuf:"bytes,5,opt,name=ptNose,proto3" json:"ptNose,omitempty"`
    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               int64      `protobuf:"varint,9,opt,name=faceID,proto3" json:"faceID,omitempty"`
    XXX_NoUnkeyedLiteral struct{}   `json:"-"`
    XXX_unrecognized     []byte     `json:"-"`
    XXX_sizecache        int32      `json:"-"`
    RcFace     *Rect      `protobuf:"bytes,1,opt,name=rcFace,proto3" json:"rcFace,omitempty"`
    PtLeftEye  *Point     `protobuf:"bytes,2,opt,name=ptLeftEye,proto3" json:"ptLeftEye,omitempty"`
    PtRightEye *Point     `protobuf:"bytes,3,opt,name=ptRightEye,proto3" json:"ptRightEye,omitempty"`
    PtMouth    *Point     `protobuf:"bytes,4,opt,name=ptMouth,proto3" json:"ptMouth,omitempty"`
    PtNose     *Point     `protobuf:"bytes,5,opt,name=ptNose,proto3" json:"ptNose,omitempty"`
    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     int64      `protobuf:"varint,9,opt,name=faceID,proto3" json:"faceID,omitempty"`
}
func (m *FaceInfo) Reset()         { *m = FaceInfo{} }
@@ -467,12 +452,9 @@
}
type ObjInfo struct {
    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"`
    XXX_NoUnkeyedLiteral struct{} `json:"-"`
    XXX_unrecognized     []byte   `json:"-"`
    XXX_sizecache        int32    `json:"-"`
    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"`
}
func (m *ObjInfo) Reset()         { *m = ObjInfo{} }
@@ -531,11 +513,8 @@
// 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"`
    XXX_NoUnkeyedLiteral struct{}    `json:"-"`
    XXX_unrecognized     []byte      `json:"-"`
    XXX_sizecache        int32       `json:"-"`
    Pos    *FacePos    `protobuf:"bytes,1,opt,name=pos,proto3" json:"pos,omitempty"`
    Result *ThftResult `protobuf:"bytes,2,opt,name=result,proto3" json:"result,omitempty"`
}
func (m *ResultFaceDetect) Reset()         { *m = ResultFaceDetect{} }
@@ -586,10 +565,7 @@
}
type ParamFacePos struct {
    Faces                []*ResultFaceDetect `protobuf:"bytes,1,rep,name=faces,proto3" json:"faces,omitempty"`
    XXX_NoUnkeyedLiteral struct{}            `json:"-"`
    XXX_unrecognized     []byte              `json:"-"`
    XXX_sizecache        int32               `json:"-"`
    Faces []*ResultFaceDetect `protobuf:"bytes,1,rep,name=faces,proto3" json:"faces,omitempty"`
}
func (m *ParamFacePos) Reset()         { *m = ParamFacePos{} }
@@ -633,10 +609,8 @@
}
type ParamFaceFeature struct {
    Feats                [][]byte `protobuf:"bytes,1,rep,name=feats,proto3" json:"feats,omitempty"`
    XXX_NoUnkeyedLiteral struct{} `json:"-"`
    XXX_unrecognized     []byte   `json:"-"`
    XXX_sizecache        int32    `json:"-"`
    Feats         [][]byte `protobuf:"bytes,1,rep,name=feats,proto3" json:"feats,omitempty"`
    CompareResult []byte   `protobuf:"bytes,2,opt,name=compareResult,proto3" json:"compareResult,omitempty"`
}
func (m *ParamFaceFeature) Reset()         { *m = ParamFaceFeature{} }
@@ -679,75 +653,23 @@
    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"`
    XXX_NoUnkeyedLiteral struct{} `json:"-"`
    XXX_unrecognized     []byte   `json:"-"`
    XXX_sizecache        int32    `json:"-"`
}
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 {
func (m *ParamFaceFeature) GetCompareResult() []byte {
    if m != nil {
        return m.Feat1
    }
    return nil
}
func (m *ParamFaceCompare) GetFeat2() []byte {
    if m != nil {
        return m.Feat2
        return m.CompareResult
    }
    return nil
}
// sdk yolo detect
type ParamYoloObj struct {
    Infos                []*ObjInfo `protobuf:"bytes,1,rep,name=infos,proto3" json:"infos,omitempty"`
    XXX_NoUnkeyedLiteral struct{}   `json:"-"`
    XXX_unrecognized     []byte     `json:"-"`
    XXX_sizecache        int32      `json:"-"`
    Infos []*ObjInfo `protobuf:"bytes,1,rep,name=infos,proto3" json:"infos,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{10}
    return fileDescriptor_70decb0fb6f436df, []int{9}
}
func (m *ParamYoloObj) XXX_Unmarshal(b []byte) error {
    return m.Unmarshal(b)
@@ -793,7 +715,6 @@
    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")
}
@@ -801,46 +722,46 @@
var fileDescriptor_70decb0fb6f436df = []byte{
    // 640 bytes of a gzipped FileDescriptorProto
    0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x54, 0xcf, 0x6e, 0xd3, 0x4e,
    0x10, 0xfe, 0xd9, 0xa9, 0x9d, 0x66, 0x5a, 0xf5, 0x17, 0x96, 0x0a, 0x59, 0x15, 0x8a, 0x22, 0x83,
    0x68, 0x10, 0x50, 0x68, 0x38, 0x70, 0x43, 0xfc, 0x29, 0x95, 0x2a, 0x01, 0x8d, 0x56, 0x70, 0xe0,
    0xb8, 0xb1, 0xd7, 0x8e, 0x8b, 0xed, 0x35, 0xf6, 0x44, 0x25, 0x6f, 0xc2, 0x23, 0x71, 0xe0, 0xc0,
    0x23, 0xa0, 0x22, 0xde, 0x03, 0xed, 0x78, 0x5d, 0xbb, 0x52, 0x38, 0x71, 0xe5, 0x94, 0xfd, 0x66,
    0x3e, 0xef, 0x37, 0xdf, 0xcc, 0x4e, 0x60, 0x50, 0x85, 0x1f, 0x0f, 0x8a, 0x52, 0xa1, 0x62, 0x9b,
    0xf4, 0x93, 0x55, 0xf1, 0x1e, 0xcc, 0x45, 0x25, 0xeb, 0xa8, 0x7f, 0x0e, 0xce, 0x49, 0x26, 0x62,
    0xc9, 0x76, 0xc1, 0x39, 0x4f, 0x42, 0x5c, 0x78, 0xd6, 0xd8, 0x9a, 0x38, 0xbc, 0x06, 0xec, 0x06,
    0xb8, 0x0b, 0x99, 0xc4, 0x0b, 0xf4, 0x6c, 0x0a, 0x1b, 0xc4, 0x18, 0x6c, 0x84, 0x02, 0x85, 0xd7,
    0x1b, 0x5b, 0x93, 0x6d, 0x4e, 0x67, 0x76, 0x13, 0x06, 0x98, 0x64, 0xb2, 0x42, 0x91, 0x15, 0xde,
    0xc6, 0xd8, 0x9a, 0x0c, 0x78, 0x1b, 0x60, 0x3b, 0x60, 0x27, 0xa1, 0xe7, 0x8c, 0xad, 0x49, 0x8f,
    0xdb, 0x49, 0xe8, 0xc7, 0x30, 0x38, 0x16, 0x81, 0x7c, 0x9e, 0xc7, 0xa9, 0x64, 0x43, 0xe8, 0xad,
    0xc4, 0xb9, 0x91, 0xd6, 0x47, 0x5d, 0x4e, 0x91, 0x60, 0xb0, 0x30, 0xba, 0x35, 0xd0, 0xb2, 0xa5,
    0x4a, 0x53, 0x92, 0x75, 0x38, 0x9d, 0xd9, 0x08, 0x20, 0x50, 0x79, 0x94, 0x84, 0x32, 0x0f, 0x24,
    0xe9, 0xda, 0xbc, 0x13, 0xf1, 0x3f, 0x03, 0xbc, 0x5b, 0x44, 0xc8, 0x65, 0xb5, 0x4c, 0x51, 0x1b,
    0x8a, 0x65, 0x1e, 0xca, 0xd2, 0x88, 0x19, 0xa4, 0x2b, 0x10, 0xb1, 0x34, 0x6a, 0xfa, 0x48, 0x5a,
    0x22, 0x90, 0x97, 0x5a, 0x22, 0x90, 0xfa, 0xeb, 0xb9, 0x14, 0x4b, 0x5c, 0x91, 0x8e, 0xc3, 0x0d,
    0xd2, 0xd5, 0x56, 0x59, 0x92, 0x4a, 0xf2, 0xe7, 0xf0, 0x1a, 0xf8, 0xdf, 0x6c, 0xe8, 0x6b, 0x8f,
    0x33, 0x55, 0xb1, 0x3b, 0xe0, 0x96, 0x81, 0x06, 0xa4, 0xbb, 0x35, 0xdd, 0x39, 0x68, 0xc6, 0x71,
    0xc0, 0x65, 0x80, 0xdc, 0x64, 0xd9, 0x03, 0x18, 0x14, 0xf8, 0x5a, 0x46, 0xf8, 0x6a, 0x55, 0x57,
    0xb3, 0x35, 0xfd, 0xbf, 0xa5, 0xce, 0x54, 0x92, 0x23, 0x6f, 0x19, 0xec, 0x21, 0x40, 0x81, 0x5c,
    0x8f, 0x44, 0xf3, 0x7b, 0xeb, 0xf9, 0x1d, 0x0a, 0xbb, 0x0b, 0xfd, 0x02, 0xdf, 0xa8, 0x25, 0x2e,
    0xc8, 0xc2, 0x1a, 0x76, 0x93, 0x67, 0xfb, 0xe0, 0x16, 0xf8, 0x56, 0x55, 0xb5, 0xab, 0x35, 0x4c,
    0x93, 0x66, 0xf7, 0xc0, 0x8d, 0x68, 0x8e, 0x9e, 0x4b, 0xc4, 0xeb, 0x2d, 0xf1, 0x72, 0xc4, 0xdc,
    0x50, 0x98, 0x07, 0xfd, 0x4f, 0x4b, 0x91, 0x26, 0xb8, 0xf2, 0xfa, 0xd4, 0xac, 0x06, 0xea, 0x41,
    0x46, 0x22, 0x48, 0x44, 0x7a, 0xa4, 0x5f, 0xd6, 0x26, 0xbd, 0xac, 0x4e, 0xc4, 0xff, 0x65, 0xc3,
    0xa6, 0xbe, 0xef, 0x24, 0x8f, 0xd4, 0xbf, 0x7e, 0xfe, 0x75, 0x3f, 0xf5, 0x63, 0x8e, 0x74, 0x3b,
    0x8f, 0xbc, 0x01, 0x6d, 0xa5, 0x41, 0xfe, 0x7b, 0xe8, 0x9f, 0xce, 0xcf, 0xa8, 0xcb, 0xb7, 0xc1,
    0x29, 0x83, 0xd3, 0xf9, 0xd9, 0x1f, 0x9a, 0x5c, 0x27, 0xf5, 0xee, 0xe0, 0xaa, 0x68, 0x76, 0x07,
    0x57, 0x85, 0xde, 0x9d, 0xa2, 0x54, 0x73, 0x6a, 0xa0, 0xcd, 0xe9, 0xec, 0x4b, 0x18, 0xd6, 0x3b,
    0xa8, 0x3d, 0x1c, 0x49, 0x94, 0x01, 0xb2, 0x5b, 0xd0, 0x2b, 0x54, 0x65, 0x6e, 0xbf, 0x76, 0xd5,
    0xe6, 0x4c, 0x55, 0x5c, 0x67, 0xd9, 0x7d, 0x70, 0x4b, 0xfa, 0xd0, 0xcc, 0x6f, 0xb7, 0xe5, 0xb5,
    0x8b, 0xcd, 0x0d, 0xc7, 0x7f, 0x06, 0xdb, 0x33, 0x51, 0x8a, 0xac, 0x59, 0xbc, 0x47, 0xe0, 0x68,
    0x5f, 0x5a, 0xa4, 0x37, 0xd9, 0x9a, 0xee, 0x75, 0x2d, 0x5c, 0xad, 0x86, 0xd7, 0x44, 0x7f, 0x02,
    0xc3, 0xcb, 0x1b, 0x8e, 0xa5, 0xc0, 0x65, 0x49, 0xff, 0x8e, 0x91, 0x14, 0x58, 0xdf, 0xb2, 0xcd,
    0x6b, 0xe0, 0x3f, 0xed, 0x30, 0x5f, 0xaa, 0xac, 0x10, 0x2d, 0xf3, 0x90, 0x4c, 0x19, 0xe6, 0x61,
    0x13, 0x9d, 0x92, 0x05, 0x13, 0x9d, 0xfa, 0x4f, 0x4c, 0xad, 0x1f, 0x54, 0xaa, 0x74, 0x23, 0xf7,
    0xc1, 0x49, 0xf2, 0x48, 0x35, 0xb5, 0x76, 0x1a, 0x62, 0x06, 0xc2, 0xeb, 0xfc, 0x8b, 0xe1, 0xd7,
    0x8b, 0x91, 0xf5, 0xfd, 0x62, 0x64, 0xfd, 0xb8, 0x18, 0x59, 0x5f, 0x7e, 0x8e, 0xfe, 0x9b, 0xbb,
    0x44, 0x7d, 0xfc, 0x3b, 0x00, 0x00, 0xff, 0xff, 0x99, 0xb3, 0x14, 0x59, 0xf1, 0x05, 0x00, 0x00,
    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,
}
func (m *Image) Marshal() (dAtA []byte, err error) {
@@ -885,9 +806,6 @@
        i++
        i = encodeVarintSdk(dAtA, i, uint64(m.Id))
    }
    if m.XXX_unrecognized != nil {
        i += copy(dAtA[i:], m.XXX_unrecognized)
    }
    return i, nil
}
@@ -926,9 +844,6 @@
        i++
        encoding_binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.Confidence))))
        i += 4
    }
    if m.XXX_unrecognized != nil {
        i += copy(dAtA[i:], m.XXX_unrecognized)
    }
    return i, nil
}
@@ -972,9 +887,6 @@
        dAtA[i] = 0x28
        i++
        i = encodeVarintSdk(dAtA, i, uint64(m.Smile))
    }
    if m.XXX_unrecognized != nil {
        i += copy(dAtA[i:], m.XXX_unrecognized)
    }
    return i, nil
}
@@ -1064,9 +976,6 @@
        i++
        i = encodeVarintSdk(dAtA, i, uint64(len(m.FacialData)))
        i += copy(dAtA[i:], m.FacialData)
    }
    if m.XXX_unrecognized != nil {
        i += copy(dAtA[i:], m.XXX_unrecognized)
    }
    return i, nil
}
@@ -1162,9 +1071,6 @@
        i++
        i = encodeVarintSdk(dAtA, i, uint64(m.FaceID))
    }
    if m.XXX_unrecognized != nil {
        i += copy(dAtA[i:], m.XXX_unrecognized)
    }
    return i, nil
}
@@ -1204,9 +1110,6 @@
        encoding_binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.Prob))))
        i += 4
    }
    if m.XXX_unrecognized != nil {
        i += copy(dAtA[i:], m.XXX_unrecognized)
    }
    return i, nil
}
@@ -1245,9 +1148,6 @@
        }
        i += n15
    }
    if m.XXX_unrecognized != nil {
        i += copy(dAtA[i:], m.XXX_unrecognized)
    }
    return i, nil
}
@@ -1278,9 +1178,6 @@
            i += n
        }
    }
    if m.XXX_unrecognized != nil {
        i += copy(dAtA[i:], m.XXX_unrecognized)
    }
    return i, nil
}
@@ -1307,41 +1204,11 @@
            i += copy(dAtA[i:], b)
        }
    }
    if m.XXX_unrecognized != nil {
        i += copy(dAtA[i:], m.XXX_unrecognized)
    }
    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 {
    if len(m.CompareResult) > 0 {
        dAtA[i] = 0x12
        i++
        i = encodeVarintSdk(dAtA, i, uint64(len(m.Feat2)))
        i += copy(dAtA[i:], m.Feat2)
    }
    if m.XXX_unrecognized != nil {
        i += copy(dAtA[i:], m.XXX_unrecognized)
        i = encodeVarintSdk(dAtA, i, uint64(len(m.CompareResult)))
        i += copy(dAtA[i:], m.CompareResult)
    }
    return i, nil
}
@@ -1372,9 +1239,6 @@
            }
            i += n
        }
    }
    if m.XXX_unrecognized != nil {
        i += copy(dAtA[i:], m.XXX_unrecognized)
    }
    return i, nil
}
@@ -1411,9 +1275,6 @@
    if m.Id != 0 {
        n += 1 + sovSdk(uint64(m.Id))
    }
    if m.XXX_unrecognized != nil {
        n += len(m.XXX_unrecognized)
    }
    return n
}
@@ -1434,9 +1295,6 @@
    }
    if m.Confidence != 0 {
        n += 5
    }
    if m.XXX_unrecognized != nil {
        n += len(m.XXX_unrecognized)
    }
    return n
}
@@ -1461,9 +1319,6 @@
    }
    if m.Smile != 0 {
        n += 1 + sovSdk(uint64(m.Smile))
    }
    if m.XXX_unrecognized != nil {
        n += len(m.XXX_unrecognized)
    }
    return n
}
@@ -1504,9 +1359,6 @@
    l = len(m.FacialData)
    if l > 0 {
        n += 1 + l + sovSdk(uint64(l))
    }
    if m.XXX_unrecognized != nil {
        n += len(m.XXX_unrecognized)
    }
    return n
}
@@ -1551,9 +1403,6 @@
    if m.FaceID != 0 {
        n += 1 + sovSdk(uint64(m.FaceID))
    }
    if m.XXX_unrecognized != nil {
        n += len(m.XXX_unrecognized)
    }
    return n
}
@@ -1573,9 +1422,6 @@
    if m.Prob != 0 {
        n += 5
    }
    if m.XXX_unrecognized != nil {
        n += len(m.XXX_unrecognized)
    }
    return n
}
@@ -1593,9 +1439,6 @@
        l = m.Result.Size()
        n += 1 + l + sovSdk(uint64(l))
    }
    if m.XXX_unrecognized != nil {
        n += len(m.XXX_unrecognized)
    }
    return n
}
@@ -1610,9 +1453,6 @@
            l = e.Size()
            n += 1 + l + sovSdk(uint64(l))
        }
    }
    if m.XXX_unrecognized != nil {
        n += len(m.XXX_unrecognized)
    }
    return n
}
@@ -1629,28 +1469,9 @@
            n += 1 + l + sovSdk(uint64(l))
        }
    }
    if m.XXX_unrecognized != nil {
        n += len(m.XXX_unrecognized)
    }
    return n
}
func (m *ParamFaceCompare) Size() (n int) {
    if m == nil {
        return 0
    }
    var l int
    _ = l
    l = len(m.Feat1)
    l = len(m.CompareResult)
    if l > 0 {
        n += 1 + l + sovSdk(uint64(l))
    }
    l = len(m.Feat2)
    if l > 0 {
        n += 1 + l + sovSdk(uint64(l))
    }
    if m.XXX_unrecognized != nil {
        n += len(m.XXX_unrecognized)
    }
    return n
}
@@ -1666,9 +1487,6 @@
            l = e.Size()
            n += 1 + l + sovSdk(uint64(l))
        }
    }
    if m.XXX_unrecognized != nil {
        n += len(m.XXX_unrecognized)
    }
    return n
}
@@ -1853,7 +1671,6 @@
            if (iNdEx + skippy) > l {
                return io.ErrUnexpectedEOF
            }
            m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
            iNdEx += skippy
        }
    }
@@ -1975,7 +1792,6 @@
            if (iNdEx + skippy) > l {
                return io.ErrUnexpectedEOF
            }
            m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
            iNdEx += skippy
        }
    }
@@ -2124,7 +1940,6 @@
            if (iNdEx + skippy) > l {
                return io.ErrUnexpectedEOF
            }
            m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
            iNdEx += skippy
        }
    }
@@ -2447,7 +2262,6 @@
            if (iNdEx + skippy) > l {
                return io.ErrUnexpectedEOF
            }
            m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
            iNdEx += skippy
        }
    }
@@ -2789,7 +2603,6 @@
            if (iNdEx + skippy) > l {
                return io.ErrUnexpectedEOF
            }
            m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
            iNdEx += skippy
        }
    }
@@ -2909,7 +2722,6 @@
            if (iNdEx + skippy) > l {
                return io.ErrUnexpectedEOF
            }
            m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
            iNdEx += skippy
        }
    }
@@ -3035,7 +2847,6 @@
            if (iNdEx + skippy) > l {
                return io.ErrUnexpectedEOF
            }
            m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
            iNdEx += skippy
        }
    }
@@ -3123,7 +2934,6 @@
            if (iNdEx + skippy) > l {
                return io.ErrUnexpectedEOF
            }
            m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
            iNdEx += skippy
        }
    }
@@ -3194,97 +3004,9 @@
            m.Feats = append(m.Feats, make([]byte, postIndex-iNdEx))
            copy(m.Feats[len(m.Feats)-1], dAtA[iNdEx:postIndex])
            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
            }
            m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
            iNdEx += skippy
        }
    }
    if iNdEx > l {
        return io.ErrUnexpectedEOF
    }
    return nil
}
func (m *ParamFaceCompare) 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: ParamFaceCompare: wiretype end group for non-group")
        }
        if fieldNum <= 0 {
            return fmt.Errorf("proto: ParamFaceCompare: 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 CompareResult", wireType)
            }
            var byteLen int
            for shift := uint(0); ; shift += 7 {
@@ -3311,9 +3033,9 @@
            if postIndex > l {
                return io.ErrUnexpectedEOF
            }
            m.Feat2 = append(m.Feat2[:0], dAtA[iNdEx:postIndex]...)
            if m.Feat2 == nil {
                m.Feat2 = []byte{}
            m.CompareResult = append(m.CompareResult[:0], dAtA[iNdEx:postIndex]...)
            if m.CompareResult == nil {
                m.CompareResult = []byte{}
            }
            iNdEx = postIndex
        default:
@@ -3331,7 +3053,6 @@
            if (iNdEx + skippy) > l {
                return io.ErrUnexpectedEOF
            }
            m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
            iNdEx += skippy
        }
    }
@@ -3419,7 +3140,6 @@
            if (iNdEx + skippy) > l {
                return io.ErrUnexpectedEOF
            }
            m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
            iNdEx += skippy
        }
    }
sdk.proto
@@ -63,11 +63,7 @@
}
message ParamFaceFeature{
    repeated bytes feats = 1;
}
// sdk face extract
message ParamFaceCompare{
    bytes feat1 = 1;
    bytes feat2 = 2;
    bytes compareResult = 2;
}
// sdk yolo detect