lenLRX / Atlas_ACL_E2E_Demo

188 stars 38 forks source link

运行时间问题 #19

Closed ltmarks closed 2 years ago

ltmarks commented 2 years ago

你好,尝试了yolov3 stream和deepsort stream,并且用你提供的tracing查看了运行时间,有几个问题和疑惑想咨询一下: 1、前处理,模型预测,后处理等操作是并行处理的,处理一帧所消耗的时间是由所有操作中消耗时间最长的那个模块决定的,如下图所示,本次消耗时间为40.876ms,由FFMPEGOUT::SendFrame操作决定。这样理解对吗? 1643247433(1)

2、yolov3中其中有一帧FFMPEGOUT::SendFrame操作消耗了近1000ms,这是什么原因? 1643243568(1)

3、我用时长一分钟视频测试,yolov3大约等了好几分钟才出结果(两三分钟),yolov3+deepsort时间更长,请问这是正常的吗?

4、运行了deepsort算法以后,发现DeepSortTracker占用时间较长(150ms左右),deepsort有没有加速的方法? 1643245672(1)

5、你在200dk上跑的时候有没有关注过AIcore的利用率?跑yolov3的时候发现,AICore的利用率在80%-90%,占用率较高;但是跑yolov3+deepsort的时候发现占用率只有10%左右,按我的理解后者不应该是更高的嘛?这是为什么?

写的比较杂~

lenLRX commented 2 years ago
  1. 对的,由最慢的组件决定
  2. 首先视频流编码用CPU做很慢,你这里可能没有用硬件编码器。然后如果是写文件的话,这里卡住可能是因为ffmpeg的缓存策略和SD速度太慢导致的
  3. yolov3慢的可能原因见第二点回复,你可以尝试一下使用硬件编码和rtmp推流,应该是可以做到实时的。deepsort确实慢
  4. deepsort确实慢,因为后面的tracker都是用CPU计算的。tracker速度和目标数量可能也有比较大的关系,可以调整一下tracker的参数试试
  5. deepsort耗时长而且不在AICORE上跑,大部分时间都在等deepsort,所以AICORE占比少了
ltmarks commented 2 years ago

好的,我再试试看。 感谢分享和回复~