From ed5e1cb438885c152666a542dc0638b516399634 Mon Sep 17 00:00:00 2001 From: 554325746@qq.com <554325746@qq.com> Date: 星期五, 20 三月 2020 17:36:10 +0800 Subject: [PATCH] debug exposed by yolo humantrack --- run.go | 61 ++++++++++++++++++++++-------- 1 files changed, 45 insertions(+), 16 deletions(-) diff --git a/run.go b/run.go index ccc37de..0281af5 100644 --- a/run.go +++ b/run.go @@ -143,22 +143,43 @@ case <-ctx.Done(): return case msg := <-chMsg: + // if data, err := proto.Marshal(&msg); err == nil { + // if data == nil { + // s.fnLogger("reid !!!!!! proto.Marshal Failed To Marshal proto.SdkMessage") + // continue + // } + // s.fnLogger("reid~~~~~~MSG Send Back To Humantrack Length:", len(data)) + + // chSnd <- data + // } else { + // s.fnLogger("reid !!!!!! proto.Marshal Out Msg Error:", err) + // } + // continue + //////////////////////////////////////////////////////use reid if len(msg.Tasklab.Sdkinfos) == 0 || int(msg.Tasklab.Index) >= len(msg.Tasklab.Sdkinfos) { s.fnLogger("reid !!!!!! Recv Msg From Humantrack Error") + sendback(&msg, chSnd, s.fnLogger) continue } + i := common.UnpackImage(msg, "reid", s.fnLogger) if i == nil || i.Data == nil || i.Width <= 0 || i.Height <= 0 { s.fnLogger("reid !!!!!! Unpack Image From Humantrack Msg Failed") + sendback(&msg, chSnd, s.fnLogger) continue } sdkInfo := msg.Tasklab.Sdkinfos[int(msg.Tasklab.Index)] + if sdkInfo.Sdkdata == nil || len(sdkInfo.Sdkdata) < 2 { + sendback(&msg, chSnd, s.fnLogger) + continue + } s.fnLogger("reid~~~~~~Recv From Humantrack Image Len:", len(i.Data), "SDK Result Length: ", len(sdkInfo.Sdkdata)) res := &protomsg.HumanTrackResult{} if err := proto.Unmarshal(sdkInfo.Sdkdata, res); err != nil { s.fnLogger("reid !!!!!! proto.Unmarshal SDK Result From Humantrack msg Error:", err) + sendback(&msg, chSnd, s.fnLogger) continue } @@ -166,36 +187,30 @@ var clen C.int l, t, r, b := C.int(v.RcHuman.Left), C.int(v.RcHuman.Top), C.int(v.RcHuman.Right), C.int(v.RcHuman.Bottom) + w, h := int(r-l+1), int(b-t+1) cutImg := C.crop_image(unsafe.Pointer(&i.Data[0]), C.int(i.Width), C.int(i.Height), l, t, r, b, 3, &clen) - if cutImg != nil { - dl := int(clen) - data := (*[1 << 26]byte)((*[1 << 26]byte)(cutImg))[:dl:dl] + if cutImg != nil && int(clen) == w*h*3 { + data := C.GoBytes(unsafe.Pointer(cutImg), clen) + // dl := int(clen) + // data := (*[1 << 26]byte)((*[1 << 26]byte)(cutImg))[:dl:dl] - w, h := int(r-l+1), int(b-t+1) + // w, h := int(r-l+1), int(b-t+1) v.Feature = s.handle.Extract2(unsafe.Pointer(&data[0]), w, h, 3) C.free(cutImg) + } else{ + s.fnLogger("reid!!!!!!Cut Image Error Len:", clen, "size:", w, "x", h) } } - if len(res.Result) > 0 { + if res.Result != nil && len(res.Result) > 0 { if out, err := proto.Marshal(res); err == nil { msg.Tasklab.Sdkinfos[int(msg.Tasklab.Index)].Sdkdata = out s.fnLogger("reid~~~~~~Send To Humantrack Result Length:", len(out)) } } - if data, err := proto.Marshal(&msg); err == nil { - if data == nil { - s.fnLogger("reid !!!!!! proto.Marshal Failed To Marshal proto.SdkMessage") - continue - } - s.fnLogger("reid~~~~~~MSG Send Back To Humantrack Length:", len(data)) - - chSnd <- data - } else { - s.fnLogger("reid !!!!!! proto.Marshal Out Msg Error:", err) - } + sendback(&msg, chSnd, s.fnLogger) default: time.Sleep(10 * time.Millisecond) @@ -204,3 +219,17 @@ } } + +func sendback(msg *protomsg.SdkMessage, ch chan<- []byte, fn func(...interface{})) { + if data, err := proto.Marshal(msg); err == nil { + if data == nil { + fn("reid !!!!!! proto.Marshal Failed To Marshal proto.SdkMessage") + return + } + fn("reid~~~~~~MSG Send Back To Humantrack Length:", len(data)) + + ch <- data + } else { + fn("reid !!!!!! proto.Marshal Out Msg Error:", err) + } +} -- Gitblit v1.8.0