sophgo / sophon-stream

Other
68 stars 10 forks source link

yolox_bytetrack_osd_encode示例人一交叉RID就变了 #39

Closed lilihongjava closed 1 month ago

lilihongjava commented 1 month ago

image 人一交叉RID就变了 image

怎么解决这个问题,有没什么思路,yolox和bytetrack的参数用了官方示例的默认值,yolox有基于自己的数据重新训练后,yolox效果目前看没什么问题,应该是bytetrack出了问题

Yi-sir commented 1 month ago

这个是bytetrack匹配同一个目标的问题。可以调参试试

lilihongjava commented 1 month ago

具体要调整哪些参数,有没经验值,我用算能示例默认值 效果很差

Yi-sir commented 1 month ago

参考:https://github.com/sophgo/sophon-stream/issues/35

lilihongjava commented 1 month ago

stream bytetrack 复现官方的源码 会不会有问题,因为我用同样的数据集、场景 用官方的bytetrack +yolox 效果比 stream 的yolox+ bytetrack效果好

lilihongjava commented 1 month ago

stream yolox bytetrack,我看了你们有做性能方面的测试,功能上有做过测试吗

Yi-sir commented 1 month ago

这个可以先用sophon-demo的yolox测试一下,stream这边精度测试比较少

Yi-sir commented 1 month ago

这个可以先用sophon-demo的yolox测试一下,stream这边精度测试比较少

sophon-demo的yolox+bytetrack

lilihongjava commented 1 month ago

确认了,同样的视频官方例子是没有问题的,不存在rid人一交叉就变化 官方例子执行示例: python3 tools/demo_track.py video -f exps/example/mot/yolox_m_mix_det.py -c pretrained/bytetrack_m_mot17.pth.tar --fp16 --fuse --save_result 官方同样的模型bytetrack_m_mot17.pth.tar通过官方工具转换为bytetrack_m.onnx python3 tools/export_onnx.py --output-name bytetrack_m.onnx -f exps/example/mot/yolox_m_mix_det.py -c pretrained/bytetrack_m_mot17.pth.tar 然后再通过tpu-mlir转换为bmodel模型。效果就很差

 model_transform \
    --model_name bytetrack_m \
    --model_def ../bytetrack_m.onnx \
    --input_shapes [[1,3,800,1440]] \
    --mean 0.0,0.0,0.0 \
    --scale 0.0039216,0.0039216,0.0039216 \
    --keep_aspect_ratio \
    --pixel_format rgb \
    --mlir bytetrack_m.mlir
model_deploy \
    --mlir bytetrack_m.mlir \
    --quantize F32 \
    --processor bm1684 \
    --model bytetrack_m_v2_fp32.bmodel

yolox_bytetrack_osd_encode示例修改yolox_group.json 内容如下:

{
    "configure":{
        "model_path":"../data/bytetrack_m_v2_fp32.bmodel",
        "threshold_conf":0.5,
        "threshold_nms":0.5,
        "bgr2rgb": true,
        "mean": [
          0,
          0,
          0
        ],
        "std": [
          255,255,255
        ]
    },
    "shared_object":"../lib/libyolox.so",
    "name":"yolox_group",
    "side":"sophgo",
    "thread_number":2
}
lilihongjava commented 1 month ago

linaro@bm1684:/data/bytetrack/data/models/BM1684$ bmrt_test --bmodel yolox_bytetrack_s_fp32_4b.bmodel [BMRT][deal_with_options:1446] INFO:Loop num: 1 [BMRT][bmrt_test:723] WARNING:setpriority failed, cpu time might flutuate. [BMRT][bmcpu_setup:406] INFO:cpu_lib 'libcpuop.so' is loaded. bmcpu init: skip cpu_user_defined open usercpu.so, init user_cpu_init [BMRT][load_bmodel:1084] INFO:Loading bmodel from [yolox_bytetrack_s_fp32_4b.bmodel]. Thanks for your patience... [BMRT][load_bmodel:1023] INFO:pre net num: 0, load net num: 1 [BMRT][show_net_info:1520] INFO: ######################## [BMRT][show_net_info:1521] INFO: NetName: yolox_bytetrack, Index=0 [BMRT][show_net_info:1523] INFO: ---- stage 0 ---- [BMRT][show_net_info:1532] INFO: Input 0) 'images' shape=[ 4 3 608 1088 ] dtype=FLOAT32 scale=1 zero_point=0 [BMRT][show_net_info:1542] INFO: Output 0) 'output_Transpose' shape=[ 4 13566 6 ] dtype=FLOAT32 scale=1 zero_point=0 [BMRT][show_net_info:1545] INFO: ######################## [BMRT][bmrt_test:782] INFO:==> running network #0, name: yolox_bytetrack, loop: 0 [BMRT][bmrt_test:868] INFO:reading input #0, bytesize=31752192 [BMRT][print_array:706] INFO: --> input_data: < 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ... > len=7938048 [BMRT][bmrt_test:1005] INFO:reading output #0, bytesize=1302336 [BMRT][print_array:706] INFO: --> output ref_data: < 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ... > len=325584 [BMRT][bmrt_test:1039] INFO:net[yolox_bytetrack] stage[0], launch total time is 160824 us (npu 160717 us, cpu 107 us) [BMRT][bmrt_test:1042] INFO:+++ The network[yolox_bytetrack] stage[0] output_data +++ [BMRT][print_array:706] INFO:output data #0 shape: [4 13566 6 ] < -3.1601 -7.36414 2.76605 3.69435 0.000184007 0.431728 -3.9223 -12.5117 3.35211 3.99236 9.0018e-05 0.51233 0.858061 -13.5391 3.01823 3.67635 ... > len=325584 [BMRT][bmrt_test:1083] INFO:load input time(s): 0.045360 [BMRT][bmrt_test:1084] INFO:calculate time(s): 0.160842 [BMRT][bmrt_test:1085] INFO:get output time(s): 0.000940 [BMRT][bmrt_test:1086] INFO:compare time(s): 0.000788 我看yolox_bytetrack_osd_encode示例里面用的是yolox_bytetrack_s_fp32_4b.bmodel模型,这个模型是基于官方哪个模型导出的,他的shape是 4 3 608 1088,我的是1,3,800,1440, 是不是yolox_bytetrack_osd_encode配置文件比如std我改的不对,指导下,谢谢