log
liuxiaolong
2019-08-06 b5df418bd3a9a332caa1559e96136c149b6f0e44
log
2个文件已修改
27 ■■■■ 已修改文件
controllers/fileController.go 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service/FaceSdkService.go 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
controllers/fileController.go
@@ -599,8 +599,13 @@
    }
    var weedfsUri = "http://"+config.WeedFs.Ip+":"+strconv.Itoa(config.WeedFs.UploadPort)+"/submit"
    //根据人脸坐标扣出人脸小图
    t1 := time.Now()
    cutFaceImgData := util.SubImg(*pI, int(rcFace.Left), int(rcFace.Top), int(rcFace.Right), int(rcFace.Bottom))
    logger.Debug("SubImg用时:", time.Since(t1))
    t1 = time.Now()
    fileInfo, e := esutil.PostFormData(weedfsUri, filename, "file", cutFaceImgData)
    logger.Debug("上传到weedfs用时:", time.Since(t1))
    t1 = time.Now()
    if e != nil {
        fmt.Println(e.Error())
        return "", nil, e
@@ -624,6 +629,7 @@
    dbperson.FaceFeature = faceBase64 // 特征值base64 码
    result := addDbPerson(dbperson)
    logger.Debug("addDbPerson用时:", time.Since(t1))
    return fileNameOnly, result, nil
}
service/FaceSdkService.go
@@ -34,25 +34,19 @@
)
func GetFaceFeaFromSdk(fileBytes []byte,deadTime time.Duration) ([]*protomsg.ResultFaceDetect,error,*protomsg.Image){
    tStart :=time.Now()
    s := NewFaceSdkService(fileBytes, deadTime)
    i, err := s.ReadFromUploadImg()
    logger.Debug("ReadFromUploadImg用时:", time.Since(tStart))
    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))
    if err !=nil {
        logger.Debug("ImgCompress err:",err)
        return nil,err,i
    }
    s.PushImgMsg(bc)
    t1 := time.Now()
    s.GetFaceFea()
    logger.Debug("GetFaceFea用时:", time.Since(t1))
    if s.Result == nil{
        return nil,errors.New("no fea"),i
    } else {
@@ -89,13 +83,6 @@
}
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)
@@ -108,6 +95,8 @@
    }
    defer picMat.Close()
    defer newMat.Close()
    if picMat.Empty() {
        logger.Debug("file not exist")
        return nil,errors.New("picMat is empty")
@@ -129,18 +118,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
@@ -150,7 +134,6 @@
            return nil,errors.New("compressed len is 0")
        }
        bc = bc[:n]
        logger.Debug("bc用时:", time.Since(t1))
        return bc,nil
    }
}