DeepSORT的官方python版实现是https://github.com/nwojke/deep_sort,C++版的DeepSORT中https://github.com/shaoshengsong/DeepSORT这个版本实现较早(这个版本又似乎是在GitHub - bitzy/DeepSort: c++ version of https://github.com/nwojke/deep_sort.这个版本上稍稍修改了下,yolov2改为yolov3),github上可以看到不少人的DeepSORT都是在这个版本上做的集成和修改,绝大部分代码是照抄的,只是使用的目标检测模型或特征抽取模型不一样而已,或者对DeepSORT代码入口加了个封装类DeepSort,将特征抽取模型部分弄成支持TensorRT的onnx解析方式或者直接读取解析onnx后生成的engine文件(例如:GitHub - GesilaA/deepsort_tensorrt: This is a TensorRT based deepsort project GitHub - mellivoraPKU/yolov5_trt_deepsort https://github.com/RichardoMrMu/yolov5-deepsort-tensorrt),因此把这个版本里的Bug也就都带过去了,凡是基于bitzy/DeepSort或者shaoshengsong/DeepSORT这个序列的版本都存在这个问题。
跑这个C++版本以及其他基于这版的DeepSORT时,长时间跑肯定会因为Eigen Block的非法索引访问而发生崩溃,只是这个错误不会经常出现,具体的错误类似如下:
#2 0x0000007f92976b84 in __assert_fail_base (fmt=0x7f92a71c10 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=assertion@entry=0x7f306fc110 "startRow >= 0 && blockRows >= 0 && startRow <= xpr.rows() - blockRows && startCol >= 0 && blockCols >= 0 && startCol <= xpr.cols() - blockCols", file=file@entry=0x7f306fbfb8 "/usr/include/eigen3/Eigen/src/Core/Block.h", line=line@entry=147, function=function@entry=0x7f306fd908 <Eigen::Block<Eigen::M

博客详细分析了DeepSORT C++实现中因EigenBlock非法索引访问导致的崩溃问题,指出错误源于代码块的不当赋值。作者提供了解决方案,修正了取样特征矩阵的错误索引,确保程序稳定运行。
最低0.47元/天 解锁文章
1899





