| | |
| | | ) |
| | | |
| | | func GetFaceFeaFromSdk(fileBytes []byte,deadTime time.Duration) ([]*protomsg.ResultFaceDetect,error,*protomsg.Image){ |
| | | t1 := time.Now() |
| | | s := NewFaceSdkService(fileBytes, deadTime) |
| | | i, err := s.ReadFromUploadImg() |
| | | logger.Debug("ReadFromUploadImg用时:", time.Since(t1)) |
| | | t1 = time.Now() |
| | | if err !=nil{ |
| | | logger.Debug("readFromUploadImg err:",err) |
| | | return nil,err,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 { |
| | |
| | | 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 |
| | | } |
| | | |
| | | defer picMat.Close() |
| | | defer newMat.Close() |
| | | |
| | | if picMat.Empty() { |
| | | logger.Debug("file not exist") |
| | |
| | | } |
| | | 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 { |