| | |
| | | |
| | | //将上传的图片交人脸检测和人脸提取,获得特征 |
| | | fileBytes, _ := ioutil.ReadAll(file) |
| | | faceExtArr, err, pI := getFaceFeaFromSdk(fileBytes) |
| | | if err ==nil && len(faceExtArr) >0 { |
| | | faceArr, err, pI := service.GetFaceFeaFromSdk(fileBytes) |
| | | if err ==nil && len(faceArr) >0 { |
| | | var faceBase64= "" |
| | | var field = "" |
| | | var rcFace *protomsg.Rect |
| | | for _,r := range faceExtArr { |
| | | rcFace = r.Pos.Pos.RcFace |
| | | for _,r := range faceArr { |
| | | rcFace = r.Pos.RcFace |
| | | faceBase64 = base64.StdEncoding.EncodeToString(r.Feats)//获取提取到的第一张人脸特征 |
| | | break |
| | | } |
| | |
| | | |
| | | //将上传的图片交人脸检测和人脸提取,获得特征 |
| | | var faceBase64="" |
| | | faceExtArr, err,pI := getFaceFeaFromSdk(fileBytes) |
| | | if faceExtArr ==nil { |
| | | faceArr, err,pI := service.GetFaceFeaFromSdk(fileBytes) |
| | | if faceArr ==nil { |
| | | return "",nil,errors.New("NotFeatureFindError") |
| | | } |
| | | var rcFace *protomsg.Rect |
| | | if err ==nil && len(faceExtArr) >0 { |
| | | for _,r := range faceExtArr { |
| | | if err ==nil && len(faceArr) >0 { |
| | | for _,r := range faceArr { |
| | | //拿到人脸的坐标 |
| | | rcFace = r.Pos.Pos.RcFace |
| | | rcFace = r.Pos.RcFace |
| | | |
| | | faceBase64 = base64.StdEncoding.EncodeToString(r.Feats)//获取提取到的第一张人脸特征 |
| | | break |
| | |
| | | |
| | | } |
| | | |
| | | func getFaceFeaFromSdk(fileBytes []byte) ([]*protomsg.ResultFaceExtCom,error,*protomsg.Image){ |
| | | s := service.NewFaceSdkService(fileBytes) |
| | | i, err := s.ReadFromUploadImg() |
| | | if err !=nil{ |
| | | fmt.Println("readFromUploadImg err:",err) |
| | | return nil,err,i |
| | | } |
| | | bc, err := service.ImgCompress(i) |
| | | if err !=nil { |
| | | fmt.Println("ImgCompress err:",err) |
| | | return nil,err,i |
| | | } |
| | | s.PushImgMsg(bc) |
| | | s.GetFaceFea() |
| | | if s.Result == nil{ |
| | | return nil,errors.New("no fea"),i |
| | | } else { |
| | | return s.Result,nil,i |
| | | } |
| | | } |
| | | //func getFaceFeaFromSdk(fileBytes []byte) ([]*protomsg.ResultFaceExtCom,error,*protomsg.Image){ |
| | | // s := service.NewFaceSdkService(fileBytes) |
| | | // i, err := s.ReadFromUploadImg() |
| | | // if err !=nil{ |
| | | // fmt.Println("readFromUploadImg err:",err) |
| | | // return nil,err,i |
| | | // } |
| | | // bc, err := service.ImgCompress(i) |
| | | // if err !=nil { |
| | | // fmt.Println("ImgCompress err:",err) |
| | | // return nil,err,i |
| | | // } |
| | | // s.PushImgMsg(bc) |
| | | // s.GetFaceFea() |
| | | // if s.Result == nil{ |
| | | // return nil,errors.New("no fea"),i |
| | | // } else { |
| | | // return s.Result,nil,i |
| | | // } |
| | | //} |
| | | |
| | | /**上传方法**/ |
| | | |