| | |
| | | ) |
| | | |
| | | func prepare(name string, gpu int) (string, bool) { |
| | | |
| | | return initSDK(name, gpu) |
| | | } |
| | | |
| | |
| | | os.Exit(130) |
| | | return nil, false |
| | | } |
| | | |
| | | thrds := threads |
| | | if thrds > sdk.MaxFaceDetectThreadNum { |
| | | thrds = sdk.MaxFaceDetectThreadNum |
| | |
| | | logo.Infoln("ANALYSIS CREATE SHM") |
| | | } else { |
| | | if d != nil { |
| | | logo.Infoln("~~~~~~shm recv image:", len(d)) |
| | | logo.Infoln("~~~shm recv image:", len(d)) |
| | | dataChan <- d |
| | | } |
| | | } |
| | |
| | | if msg, err := i.Recv(); err != nil { |
| | | // logo.Errorln("recv error : ", err, " url: ", r.ipcURL) |
| | | } else { |
| | | logo.Infoln("~~~~~~mangos recv image:", len(msg)) |
| | | logo.Infoln("~~~mangos recv image:", len(msg)) |
| | | dataChan <- msg |
| | | } |
| | | } |
| | |
| | | package work |
| | | |
| | | import ( |
| | | "analysis/goconv" |
| | | "analysis/logo" |
| | | |
| | | "context" |
| | |
| | | |
| | | if int(i.Msg.Tasklab.Index+1) == len(i.Msg.Tasklab.Sdkinfos) { |
| | | if s.fn != nil { |
| | | imgInfo := unpackImage(i, "sender") |
| | | if imgInfo.Data == nil { |
| | | continue |
| | | } |
| | | imgProto := protomsg.Image{ |
| | | Data: goconv.YUV2BGR(imgInfo.Data, int(imgInfo.Width), int(imgInfo.Height)), |
| | | Width: int32(imgInfo.Width), |
| | | Height: int32(imgInfo.Height), |
| | | Timestamp: imgInfo.Timestamp, |
| | | Id: imgInfo.Id, |
| | | Cid: imgInfo.Cid, |
| | | } |
| | | var sendData []byte |
| | | if b, err := proto.Marshal(&imgProto); err == nil { |
| | | i.Msg.Data = b |
| | | sendData, err = proto.Marshal(&i.Msg) |
| | | if err != nil { |
| | | continue |
| | | } |
| | | } |
| | | |
| | | sFlag := true |
| | | for _, v := range i.Msg.Tasklab.Sdkinfos { |
| | | if len(v.Sdkdata) < 2 { |
| | |
| | | break |
| | | } |
| | | } |
| | | s.fn(sendData, sFlag) |
| | | s.fn(d, sFlag) |
| | | |
| | | } |
| | | } |
| | |
| | | */ |
| | | import "C" |
| | | import ( |
| | | "analysis/goconv" |
| | | "analysis/logo" |
| | | "analysis/work" |
| | | "context" |
| | |
| | | for { |
| | | select { |
| | | case <-ctx.Done(): |
| | | goconv.Free() |
| | | return |
| | | |
| | | case rMsg := <-in: |
| | | |
| | | if !validRemoteMessage(rMsg, typ) { |
| | |
| | | |
| | | // conv to bgr24 and resize |
| | | imgW, imgH := int(i.Width), int(i.Height) |
| | | bgrData := goconv.YUV2BGR(i.Data, imgW, imgH) |
| | | if bgrData == nil { |
| | | ejectResult(nil, rMsg, out) |
| | | continue |
| | | } |
| | | img := gosdk.SDKImage{Data: bgrData, Width: imgW, Height: imgH} |
| | | |
| | | img := gosdk.SDKImage{Data: i.Data, Width: imgW, Height: imgH} |
| | | |
| | | detect := gosdk.FaceTrackSimple(img, dtchn) |
| | | |
| | |
| | | package sdk |
| | | |
| | | import ( |
| | | "analysis/goconv" |
| | | "analysis/logo" |
| | | "analysis/work" |
| | | "context" |
| | |
| | | for { |
| | | select { |
| | | case <-ctx.Done(): |
| | | goconv.Free() |
| | | return |
| | | default: |
| | | rMsg := <-in |
| | |
| | | } |
| | | |
| | | imgW, imgH := int(i.Width), int(i.Height) |
| | | bgrData := goconv.YUV2BGR(i.Data, imgW, imgH) |
| | | if bgrData == nil { |
| | | ejectResult(nil, rMsg, out) |
| | | continue |
| | | } |
| | | img := gosdk.SDKImage{Data: bgrData, Width: imgW, Height: imgH} |
| | | img := gosdk.SDKImage{Data: i.Data, Width: imgW, Height: imgH} |
| | | |
| | | rcDetect := gosdk.CRECT{ |
| | | Left: 0, |
| | |
| | | package sdk |
| | | |
| | | import ( |
| | | "analysis/goconv" |
| | | "analysis/logo" |
| | | "analysis/work" |
| | | "context" |
| | |
| | | for { |
| | | select { |
| | | case <-ctx.Done(): |
| | | goconv.Free() |
| | | return |
| | | default: |
| | | |
| | |
| | | |
| | | // conv to bgr24 and resize |
| | | imgW, imgH := int(i.Width), int(i.Height) |
| | | bgrData := goconv.YUV2BGR(i.Data, imgW, imgH) |
| | | if bgrData == nil { |
| | | ejectResult(nil, rMsg, out) |
| | | return |
| | | } |
| | | img := gosdk.SDKImage{Data: bgrData, Width: imgW, Height: imgH} |
| | | |
| | | img := gosdk.SDKImage{Data: i.Data, Width: imgW, Height: imgH} |
| | | |
| | | v, ok := y.tracker[rMsg.Msg.Cid] |
| | | if !ok { |
| | |
| | | id, name = rMsg.Msg.Tasklab.Taskid, rMsg.Msg.Tasklab.Taskname |
| | | } |
| | | logo.Infoln("CAMERAID: ", rMsg.Msg.Cid, " TASKID: ", id, " TASKNAME: ", name, " DETECT YOLO COUNT: ", len(allO)) |
| | | |
| | | } |
| | | |
| | | func convert2ProtoYoloTrack(obj []gosdk.CObjTrackInfo, fx, fy float64) []*protomsg.ObjInfo { |