| | |
| | | logger.Debug("readFromUploadImg err:",err) |
| | | return nil,err,i |
| | | } |
| | | bc, err := ImgCompress(i) |
| | | logger.Debug("ImgCompress用时:", time.Since(t1)) |
| | | t1 = time.Now() |
| | | imgBytes, err := proto.Marshal(i) |
| | | if err !=nil { |
| | | logger.Debug("ImgCompress err:",err) |
| | | logger.Debug("i marshal err:",err) |
| | | return nil,err,i |
| | | } |
| | | s.PushImgMsg(bc) |
| | | logger.Debug("PushImgMsg用时:", time.Since(t1)) |
| | | t1 = time.Now() |
| | | s.GetFaceFea() |
| | | logger.Debug("GetFaceFea用时:", time.Since(t1)) |
| | | if s.Result == nil{ |
| | | return nil,errors.New("no fea"),i |
| | | detectResults, err := DoFDetectWithRpc(&protomsg.FaceDetectRequest{ReqParam: imgBytes}, deadTime) |
| | | if err !=nil { |
| | | logger.Debug("DoFDetectWithRpc err:",err) |
| | | return nil,err,i |
| | | } else { |
| | | return s.Result,nil,i |
| | | return detectResults,nil,i |
| | | } |
| | | |
| | | //bc, err := ImgCompress(i) |
| | | //logger.Debug("ImgCompress用时:", time.Since(t1)) |
| | | //t1 = time.Now() |
| | | //if err !=nil { |
| | | // logger.Debug("ImgCompress err:",err) |
| | | // return nil,err,i |
| | | //} |
| | | //s.PushImgMsg(bc) |
| | | //logger.Debug("PushImgMsg用时:", time.Since(t1)) |
| | | //t1 = time.Now() |
| | | //s.GetFaceFea() |
| | | //logger.Debug("GetFaceFea用时:", time.Since(t1)) |
| | | //if s.Result == nil{ |
| | | // return nil,errors.New("no fea"),i |
| | | //} else { |
| | | // return s.Result,nil,i |
| | | //} |
| | | } |
| | | |
| | | func NewFaceSdkService(fileBytes []byte, deadTime time.Duration) FaceSdkService{ |
| | |
| | | logger.Debug("gocv.IMDecode err:",err) |
| | | return nil,err |
| | | } |
| | | logger.Debug("picMat.Data.len:", len(picMat.ToBytes())) |
| | | newMat := gocv.NewMat() |
| | | if picMat.Rows() > 1000 || picMat.Cols() > 1000 { |
| | | gocv.Resize(picMat,&newMat, image.Pt(0,0), 0.5, 0.5, gocv.InterpolationDefault) |
| | | size := 1024 |
| | | if picMat.Rows() > size || picMat.Cols() > size { |
| | | fx := float64(size)/float64(picMat.Rows()) |
| | | fy := float64(size)/float64(picMat.Cols()) |
| | | ff := fx |
| | | if fx > fy{ |
| | | ff = fy |
| | | } |
| | | gocv.Resize(picMat,&newMat, image.Pt(0,0), ff, ff, gocv.InterpolationDefault) |
| | | picMat = newMat |
| | | } |
| | | |
| | |
| | | } |
| | | rMsg := protomsg.SdkMessage{} |
| | | if err := proto.Unmarshal(resultBytes, &rMsg); err == nil { |
| | | logger.Debug("received MSG:", rMsg.Cid) |
| | | i := protomsg.Image{} |
| | | bdata, err := util.UnCompress(rMsg.Data) |
| | | if err !=nil { |