| | |
| | | ) |
| | | |
| | | func (f *face) channelAvailable() int { |
| | | f.mapChanLock.Lock() |
| | | defer f.mapChanLock.Unlock() |
| | | |
| | | for i := 0; i < f.maxChannel; i++ { |
| | | found := false |
| | |
| | | |
| | | for _, msg := range msgs { |
| | | if c, ok := f.channelExist(msg.Cid); ok { |
| | | f.fnLogger("######push image") |
| | | c.msg <- msg |
| | | f.fnLogger("######push over image") |
| | | } else { |
| | | |
| | | nc := f.channelNew(msg.Cid) |
| | |
| | | imgW, imgH := int(i.Width), int(i.Height) |
| | | ret := f.handle.TrackerResize(imgW, imgH, nc.index) |
| | | f.fnLogger("ResizeFaceTracker: cid: ", msg.Cid, " chan: ", nc.index, " wXh: ", imgW, "x", imgH, " result:", ret) |
| | | go f.detectTrackOneChn(c, out) |
| | | c.msg <- msg |
| | | go f.detectTrackOneChn(nc, out) |
| | | nc.msg <- msg |
| | | } |
| | | } |
| | | f.fnLogger("######run over batch images") |
| | |
| | | // conv to bgr24 and resize |
| | | imgW, imgH := int(i.Width), int(i.Height) |
| | | |
| | | f.fnLogger("######face sdk run") |
| | | count, data, _ := f.handle.Run(i.Data, imgW, imgH, 3, dtchn) |
| | | f.fnLogger("######face over sdk run") |
| | | |
| | | f.fnLogger("######face eject data") |
| | | sdkhelper.EjectResult(data, rMsg, out) |
| | | f.fnLogger("######face over eject data") |
| | | |
| | | var id, name string |
| | | if rMsg.Tasklab != nil { |
| | | id, name = rMsg.Tasklab.Taskid, rMsg.Tasklab.Taskname |