| | |
| | | "context" |
| | | "sync" |
| | | "time" |
| | | "unsafe" |
| | | |
| | | "face/common" |
| | | |
| | | "basic.com/pubsub/protomsg.git" |
| | | "basic.com/valib/gogpu.git" |
| | | "github.com/gogo/protobuf/proto" |
| | | ) |
| | | |
| | | type face struct { |
| | |
| | | // conv to bgr24 and resize |
| | | imgW, imgH := int(i.Width), int(i.Height) |
| | | |
| | | f.fnLogger("Face Start Run:", dtchn, "CAMERAID: ", rMsg.Msg.Cid) |
| | | detect := f.handle.Track(i.Data, imgW, imgH, 3, dtchn) |
| | | |
| | | count, data, _ := f.handle.Run(i.Data, imgW, imgH, 3, dtchn) |
| | | var faces []*protomsg.ResultFaceDetect |
| | | |
| | | //将sdk返回值转换成protomsg类型 |
| | | for _, d := range detect { |
| | | |
| | | //运行sd |
| | | dec := FaceInfo2FacePos(d) |
| | | prop := f.handle.Propertize(dec, i.Data, imgW, imgH, 3, dtchn) |
| | | feat := f.handle.Extract(dec, i.Data, imgW, imgH, 3, dtchn) |
| | | |
| | | resP := (*protomsg.ThftResult)(unsafe.Pointer(&prop)) |
| | | |
| | | result := tconvert2ProtoFacePos(d) |
| | | |
| | | //组成结果并序列化 |
| | | res := &protomsg.ResultFaceDetect{Pos: result, Result: resP, Feats: feat} |
| | | faces = append(faces, res) |
| | | |
| | | } |
| | | |
| | | var err error |
| | | var data []byte |
| | | if len(faces) > 0 { |
| | | |
| | | // logo.Infoln("CID: ", rMsg.Msg.Cid, " TASK: ", rMsg.Msg.Tasklab.Taskid, " FACE TRACK OBJS: ", len(faces)) |
| | | |
| | | facePos := protomsg.ParamFacePos{Faces: faces} |
| | | data, err = proto.Marshal(&facePos) |
| | | if err != nil { |
| | | f.fnLogger("fdetect marshal proto face pos error", err) |
| | | data = nil |
| | | } |
| | | } |
| | | |
| | | common.EjectResult(data, rMsg, out) |
| | | |
| | |
| | | if rMsg.Msg.Tasklab != nil { |
| | | id, name = rMsg.Msg.Tasklab.Taskid, rMsg.Msg.Tasklab.Taskname |
| | | } |
| | | f.fnLogger("Chan:", dtchn, "CAMERAID: ", rMsg.Msg.Cid, " TASKID: ", id, " TASKNAME: ", name, " DETECT ", f.typ, " COUNT: ", count) |
| | | |
| | | f.fnLogger("Chan:", dtchn, "CAMERAID: ", rMsg.Msg.Cid, " TASKID: ", id, " TASKNAME: ", name, " DETECT ", f.typ, " COUNT: ", len(faces)) |
| | | |
| | | sc++ |
| | | if sc == 25 { |