本周工作:
之前测试发现 DeepSORT
的跟踪效果较慢,尤其是人多的时候,延迟效果非常严重,因为 DeepSORT
中有着特征提取的 ReID
模块。而我们泳池多目标跟踪中使用 ReID
的效果不大,因为游泳人员的特征非常相似,很容易发生 ID Switch
。因此我打算使用纯算法且使用运动模型的跟踪器去跟踪。
之前了解过 ByteTrack
算法,这次也打算尝试使用在我们的项目中。在 Github
下载了开源的 ByteTrack 代码,并且使用泳池的数据集跑通代码。
接下来就是将 ByteTrack
跟踪算法应用在我们的泳池项目中。源码中的也是基于 Tracking by Detection
,不过源码使用的是 Yolox
,虽然检测器不同,但是我们能够得到输入跟踪器中的检测结果格式。这样输入输出对齐后,就可以直接应用在我们的泳池项目中。这也是需要我们为什么必须先跑通源码才能够作修改。
输入输出对齐后,我直接应用于线上的测试。发现 ByteTrack 确实能够在人多的时候提高不少速度,延迟效果也减少很多。但是在溺水测试中发现一些 bug,在这里也记录一下:
Bug:在游泳人员模拟溺水时能够检测出该溺水情况,但是当游泳人员抬起头时,报警情况还是一直不变。
通过排查发现,是因为在进行多目标跟踪中,没有将输入的检测类别发生改变。