| | |
| | | |
| | | // Init impl |
| | | func (t *HumanTracker) Init() bool { |
| | | if t.batchSize != 1 { |
| | | logo.Errorln("ONLY SUPPORT BATCH SIZE = 1") |
| | | return false |
| | | } |
| | | |
| | | gpu := t.gpu |
| | | |
| | | if gpu == -1 { |
| | |
| | | // mapCameraImageIndex map[string]int |
| | | // images []gohumantrack.ImageHumanTracker |
| | | |
| | | t.recvImageCount++ |
| | | if t.mapCameraImageIndex == nil { |
| | | t.recvImageCount = 0 |
| | | t.index = 0 |
| | | |
| | | t.mapCameraImageIndex = make(map[string]int) |
| | | for i := 0; i < t.batchSize; i++ { |
| | | t.images[i] = nil |
| | |
| | | t.msgs[i] = nil |
| | | } |
| | | } |
| | | |
| | | t.recvImageCount++ |
| | | |
| | | if i, ok := t.mapCameraImageIndex[rMsg.Msg.Cid]; ok { |
| | | if i < t.batchSize { |
| | | t.images[i] = &img |
| | |
| | | t.index++ |
| | | } |
| | | if t.recvImageCount < t.batchSize+t.batchSize/2 { |
| | | logo.Infoln("batch~~~~~~Current Index: ", t.index) |
| | | return |
| | | } |
| | | |
| | | res, err := t.tracker.ProcessImagePointer(t.images[:]) |
| | | t.mapCameraImageIndex = nil |
| | | |
| | | if err != nil { |
| | | t.mapCameraImageIndex = nil |
| | | logo.Infoln("batch~~~~~~Track Failed: ", err) |
| | | ejectResult(nil, rMsg, out) |
| | | return |
| | | } |
| | |
| | | result := protomsg.HumanTrackResult{Result: hr} |
| | | data, err := proto.Marshal(&result) |
| | | if err != nil { |
| | | logo.Errorln("HUMAN TRACKER MARSHAL PROTO PLATE IDS ERROR", err) |
| | | logo.Errorln("batch~~~~~~HUMAN TRACKER MARSHAL PROTO PLATE IDS ERROR", err) |
| | | data = nil |
| | | } |
| | | msg := *t.msgs[i] |
| | |
| | | if msg.Msg.Tasklab != nil { |
| | | id, name = msg.Msg.Tasklab.Taskid, msg.Msg.Tasklab.Taskname |
| | | } |
| | | logo.Infoln("CAMERAID: ", msg.Msg.Cid, " TASKID: ", id, " TASKNAME: ", name, " Human Track COUNT: ", len(hr)) |
| | | logo.Infoln("batch~~~~~~CAMERAID: ", msg.Msg.Cid, " TASKID: ", id, " TASKNAME: ", name, " Human Track COUNT: ", len(hr)) |
| | | |
| | | } |
| | | |