项目联调总结

首先总结一下本周项目联调的过程:

项目的初衷很简单,就是判断泳池中是否有溺水人员,发现溺水人员后,系统会发出告警。我们所负责的是本项目的算法实现部分:使用的是 YOLOv5 + Deep SORT 的多目标跟踪算法,对泳池中的所有人员进行检测跟踪。

之所有要用检测 + 跟踪,是因为我们要对泳池中每个人员进行 ID 赋值,这样每个泳池中的人会对应每一个 ID 。检测即判断泳池中人员是否发生溺水。因此作为溺水的决策部分,我所要做的工作还是占一部分比重的。

在联调的过程中,则会使用泳池现场的摄像头,因此我们需要将代码部署在现场的服务器中。在这里就提到了我遇到的一个难点:没有尝试过与网络摄像头连接,并运行跟踪算法。对于这个点就需要改进我们算法中的 dataloader 数据加载部分。此外还要加上判断相机状态(开关机、时间对齐)。

现场有六个摄像头,最初的想法是同时使用六个摄像头进行联调,不过发现如果使用现在未优化的代码,会加重服务器的负载,有可能出现系统崩溃的情况,所以本次联调最终还是使用了一个摄像头。

  • 目前代码优化的地方较多,首先需要考虑设计每个模块对应的接口,例如需要设计摄像头与检测跟踪的接口、跟踪的json结果与网络协议发送接口、多个网络摄像头多线程运行、多个网络摄像头同时检测与跟踪等等。

  • 当然,现在还有摄像头时间戳未能对齐的问题,这对后续的同步跟踪结果会有一定的影响。以及目前跟踪算法的 ID Switch 问题比较严重,这会影响泳池中人员跟踪时的 ID 发生转换,从而系统很难判断该人员是否发生溺水的情况。

以上点是后续要去解决的内容,因此在后面时间需要去做大量的实验,一是减少 ID Switch ,二是代码优化。这两点则是重中之重。

0%