| | |
| | | "log" |
| | | "mime/multipart" |
| | | "net/http" |
| | | "path" |
| | | "strconv" |
| | | "strings" |
| | | "time" |
| | | "webserver/extend/code" |
| | | "webserver/extend/config" |
| | | "webserver/extend/esutil" |
| | |
| | | // fastdfs 上传 暂废弃 |
| | | //field := fdfsclient.UploadFileByBuffer(data, fileSuffix) |
| | | } |
| | | field, result, err := uploadFileReturnAddr(file, filename, tableId) |
| | | fileNameOnly, result, err := uploadFileReturnAddr(file, filename, tableId) |
| | | if err != nil { |
| | | if err.Error() == "NotFeatureFindError" { |
| | | util.ResponseFormat(c, code.NotFeatureFindError, filename) |
| | |
| | | util.ResponseFormat(c, code.ServiceInsideError, result["data"]) |
| | | } |
| | | } else { |
| | | util.ResponseFormat(c, code.Success, field) |
| | | util.ResponseFormat(c, code.Success, fileNameOnly) |
| | | } |
| | | } |
| | | |
| | |
| | | |
| | | //将上传的图片交人脸检测和人脸提取,获得特征 |
| | | fileBytes, _ := ioutil.ReadAll(file) |
| | | faceArr, err, pI := service.GetFaceFeaFromSdk(fileBytes) |
| | | faceArr, err, pI := service.GetFaceFeaFromSdk(fileBytes, time.Second*5) |
| | | if err ==nil && len(faceArr) >0 { |
| | | var faceBase64= "" |
| | | var field = "" |
| | |
| | | |
| | | //将上传的图片交人脸检测和人脸提取,获得特征 |
| | | var faceBase64="" |
| | | faceArr, err,pI := service.GetFaceFeaFromSdk(fileBytes) |
| | | faceArr, err, pI := service.GetFaceFeaFromSdk(fileBytes, time.Second*5) |
| | | if faceArr ==nil { |
| | | return "",nil,errors.New("NotFeatureFindError") |
| | | } |
| | |
| | | field = field[idx+1:] |
| | | } |
| | | fmt.Println("field:",field) |
| | | ext := path.Ext(filename) |
| | | fileNameOnly := strings.TrimSuffix(filename, ext) |
| | | |
| | | dbperson := new(models.Dbtablepersons) |
| | | dbperson.PersonPicUrl = field // 图片路经 |
| | | dbperson.TableId = tableId // |
| | | dbperson.PersonName = filename // 图片名 |
| | | dbperson.PersonName = fileNameOnly // 图片名 |
| | | // 演示base64编码 |
| | | |
| | | dbperson.FaceFeature = faceBase64 // 特征值base64 码 |
| | | |
| | | result := addDbPerson(dbperson) |
| | | return field, result, nil |
| | | return fileNameOnly, result, nil |
| | | |
| | | } |
| | | |
| | |
| | | File []byte |
| | | Id string |
| | | Result []*protomsg.ResultFaceDetect |
| | | DeadTime time.Duration |
| | | } |
| | | |
| | | const ( |
| | |
| | | Url_Service_PULL = Ipc_Url_Pre + Virtual_FaceSdkId + Ipc_Pull_Ext |
| | | ) |
| | | |
| | | func GetFaceFeaFromSdk(fileBytes []byte) ([]*protomsg.ResultFaceDetect,error,*protomsg.Image){ |
| | | s := NewFaceSdkService(fileBytes) |
| | | func GetFaceFeaFromSdk(fileBytes []byte,deadTime time.Duration) ([]*protomsg.ResultFaceDetect,error,*protomsg.Image){ |
| | | s := NewFaceSdkService(fileBytes, deadTime) |
| | | i, err := s.ReadFromUploadImg() |
| | | if err !=nil{ |
| | | logger.Debug("readFromUploadImg err:",err) |
| | |
| | | } |
| | | } |
| | | |
| | | func NewFaceSdkService(fileBytes []byte) FaceSdkService{ |
| | | func NewFaceSdkService(fileBytes []byte, deadTime time.Duration) FaceSdkService{ |
| | | return FaceSdkService{ |
| | | File:fileBytes, |
| | | Id:uuid.NewV4().String(), |
| | | DeadTime:deadTime, |
| | | } |
| | | } |
| | | |
| | |
| | | func (s *FaceSdkService) GetFaceFea(){ |
| | | var wg sync.WaitGroup |
| | | wg.Add(1) |
| | | ticker := time.NewTicker(time.Second * 3) |
| | | ticker := time.NewTicker(s.DeadTime) |
| | | go func(ticker *time.Ticker, s *FaceSdkService) { |
| | | defer ticker.Stop() |
| | | defer wg.Done() |