reid from https://github.com/michuanhaohao/reid-strong-baseline
554325746@qq.com
2020-03-20 ed5e1cb438885c152666a542dc0638b516399634
debug exposed by yolo humantrack
1个文件已修改
61 ■■■■ 已修改文件
run.go 61 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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)
    }
}