当前位置: 代码迷 >> 综合 >> FairMOT中的deque怎么存ReID特征的?
  详细解决方案

FairMOT中的deque怎么存ReID特征的?

热度:28   发布时间:2023-10-26 00:38:31.0

1.FairMOT代码逻辑分析

  个人理解根据相关代码逻辑连起来,在下面做了注释。

# opts.py
# 这里是track_buffer参数默认值
self.parser.add_argument('--track_buffer', type=int, default=30, help='tracking buffer')# multitracker.py
# 在这里有两个类的实现,JDETracker类里初始化了一个STrack类型的列表,这个过程中会初始化保存特征的deque,设置deque大小。
from collections import dequeclass JDETracker(object):self.features = deque([], maxlen=buffer_size)def update(self, im_blob, img0):if len(dets) > 0:'''Detections'''detections = [STrack(STrack.tlbr_to_tlwh(tlbrs[:4]), tlbrs[4], f, 30) for(tlbrs, f) in zip(dets[:, :5], id_feature)]else:detections = []...output_stracks = [track for track in self.tracked_stracks if track.is_activated]# 输出每一个ID的特征长度,即特征的个数,主要是如果某帧里面出现了某个ID,就会将其他特征append到deque中,当超过长