From f4e8f206a6760bdc31734dfcb1c65916b5b76311 Mon Sep 17 00:00:00 2001 From: liuxiaolong <736321739@qq.com> Date: 星期四, 22 八月 2019 12:05:58 +0800 Subject: [PATCH] add cluster --- service/FaceSdkService.go | 42 +++++++++++++++++++++++------------------- 1 files changed, 23 insertions(+), 19 deletions(-) diff --git a/service/FaceSdkService.go b/service/FaceSdkService.go index 354bd00..ca7f185 100644 --- a/service/FaceSdkService.go +++ b/service/FaceSdkService.go @@ -8,6 +8,7 @@ "github.com/pkg/errors" "github.com/satori/go.uuid" "gocv.io/x/gocv" + "image" "sync" "time" "webserver/extend/logger" @@ -33,23 +34,25 @@ ) func GetFaceFeaFromSdk(fileBytes []byte,deadTime time.Duration) ([]*protomsg.ResultFaceDetect,error,*protomsg.Image){ - tStart :=time.Now() + t1 := time.Now() s := NewFaceSdkService(fileBytes, deadTime) i, err := s.ReadFromUploadImg() - logger.Debug("ReadFromUploadImg鐢ㄦ椂锛�", time.Since(tStart)) + logger.Debug("ReadFromUploadImg鐢ㄦ椂:", time.Since(t1)) + t1 = time.Now() if err !=nil{ logger.Debug("readFromUploadImg err:",err) return nil,err,i } - tStart = time.Now() bc, err := ImgCompress(i) - logger.Debug("ImgCompress鐢ㄦ椂锛�", time.Since(tStart)) + logger.Debug("ImgCompress鐢ㄦ椂:", time.Since(t1)) + t1 = time.Now() if err !=nil { logger.Debug("ImgCompress err:",err) return nil,err,i } s.PushImgMsg(bc) - t1 := time.Now() + logger.Debug("PushImgMsg鐢ㄦ椂:", time.Since(t1)) + t1 = time.Now() s.GetFaceFea() logger.Debug("GetFaceFea鐢ㄦ椂:", time.Since(t1)) if s.Result == nil{ @@ -88,19 +91,27 @@ } func (s *FaceSdkService) ReadFromUploadImg() (*protomsg.Image,error){ - //defer (*(s.File)).Close() - //imgB, err := ioutil.ReadAll(*(s.File)) - //if err !=nil{ - // logger.Debug("File.Read err:",err) - // return nil,err - //} - picMat, err := gocv.IMDecode(s.File, gocv.IMReadColor) if err !=nil { logger.Debug("gocv.IMDecode err:",err) return nil,err } + logger.Debug("picMat.Data.len:", len(picMat.ToBytes())) + newMat := gocv.NewMat() + 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() + if picMat.Empty() { logger.Debug("file not exist") return nil,errors.New("picMat is empty") @@ -122,18 +133,13 @@ } func ImgCompress(i *protomsg.Image) ([]byte,error){ - t1 := time.Now() if b, err := proto.Marshal(i); err != nil { logger.Debug("protoImage marshal err") return nil,err } else { - logger.Debug("proto.Marshal鐢ㄦ椂锛�", time.Since(t1)) - t1 = time.Now() bc := make([]byte, len(b)) ht := make([]int, 64<<10) n, err := lz4.CompressBlock(b, bc, ht) - logger.Debug("lz4.CompressBlock鐢ㄦ椂锛�", time.Since(t1)) - t1 = time.Now() if err != nil { logger.Debug(err) return nil,err @@ -143,7 +149,6 @@ return nil,errors.New("compressed len is 0") } bc = bc[:n] - logger.Debug("bc鐢ㄦ椂锛�", time.Since(t1)) return bc,nil } } @@ -273,7 +278,6 @@ } 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 { -- Gitblit v1.8.0