modify byte.trackerupdate, add list first_finded
This commit is contained in:
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -216,7 +216,7 @@ class Track:
|
||||
trajdist_min, trajdist_max,
|
||||
trajlen_rate, trajdist_rate]
|
||||
|
||||
def compute_static_fids(self, det_y, STATIC_THRESH = 8):
|
||||
def pt_state_fids(self, det_y, STATIC_THRESH = 8):
|
||||
'''
|
||||
前摄时,y一般选择为 box 的 y1 坐标,且需限定商品在购物车内。
|
||||
inputs:
|
||||
@ -324,12 +324,15 @@ class doTracks:
|
||||
for t_id in self.trackID:
|
||||
# print(f"The ID is: {t_id}")
|
||||
idx = np.where(track_ids == t_id)[0]
|
||||
box = self.bboxes[idx, :]
|
||||
box = self.bboxes[idx, :]
|
||||
|
||||
assert len(set(box[:, 7])) == len(box), "Please check!!!"
|
||||
|
||||
lboxes.append(box)
|
||||
|
||||
return lboxes
|
||||
|
||||
'''
|
||||
def classify(self):
|
||||
|
||||
tracks = self.tracks
|
||||
@ -354,10 +357,11 @@ class doTracks:
|
||||
self.Static.extend(static_tracks)
|
||||
|
||||
|
||||
'''剔除静止目标后的 tracks'''
|
||||
# 剔除静止目标后的 tracks
|
||||
tracks = self.sub_tracks(tracks, static_tracks)
|
||||
|
||||
return tracks
|
||||
'''
|
||||
|
||||
|
||||
|
||||
|
@ -51,41 +51,29 @@ class doBackTracks(doTracks):
|
||||
# return lboxes
|
||||
# =============================================================================
|
||||
|
||||
|
||||
|
||||
def classify(self):
|
||||
'''
|
||||
功能:对 tracks 中元素分类
|
||||
|
||||
'''
|
||||
tracks = super().classify()
|
||||
|
||||
# tracks = self.tracks
|
||||
# shopcart = self.shopcart
|
||||
'''功能:对 tracks 中元素分类 '''
|
||||
|
||||
# # 提取手的frame_id,并和动目标的frame_id 进行关联
|
||||
# hand_tracks = [t for t in tracks if t.cls==0]
|
||||
# self.Hands.extend(hand_tracks)
|
||||
# tracks = self.sub_tracks(tracks, hand_tracks)
|
||||
tracks = self.tracks
|
||||
# 提取手的frame_id,并和动目标的frame_id 进行关联
|
||||
hand_tracks = [t for t in tracks if t.cls==0]
|
||||
self.Hands.extend(hand_tracks)
|
||||
|
||||
|
||||
|
||||
# # 提取小孩的track,并计算状态:left, right, incart
|
||||
# kid_tracks = [t for t in tracks if t.cls==9]
|
||||
# kid_states = [self.kid_state(t) for t in kid_tracks]
|
||||
# self.Kids = [x for x in zip(kid_tracks, kid_states)]
|
||||
|
||||
# tracks = self.sub_tracks(tracks, kid_tracks)
|
||||
tracks = self.sub_tracks(tracks, hand_tracks)
|
||||
|
||||
# 提取小孩的track,并计算状态:left, right, incart
|
||||
kid_tracks = [t for t in tracks if t.cls==9]
|
||||
kid_states = [self.kid_state(t) for t in kid_tracks]
|
||||
self.Kids = [x for x in zip(kid_tracks, kid_states)]
|
||||
|
||||
tracks = self.sub_tracks(tracks, kid_tracks)
|
||||
|
||||
# static_tracks = [t for t in tracks if t.frnum>1 and t.is_static()]
|
||||
# self.Static.extend(static_tracks)
|
||||
|
||||
|
||||
# '''剔除静止目标后的 tracks'''
|
||||
# tracks = self.sub_tracks(tracks, static_tracks)
|
||||
|
||||
static_tracks = [t for t in tracks if t.frnum>1 and t.is_static()]
|
||||
self.Static.extend(static_tracks)
|
||||
|
||||
'''剔除静止目标后的 tracks'''
|
||||
tracks = self.sub_tracks(tracks, static_tracks)
|
||||
|
||||
|
||||
'''购物框边界外具有运动状态的干扰目标'''
|
||||
out_trcak = [t for t in tracks if t.is_OutTrack()]
|
||||
|
@ -31,7 +31,7 @@ class backTrack(Track):
|
||||
'''运动点帧索引(运动帧两端的静止帧索引)'''
|
||||
self.moving_index = self.compute_dynamic_fids()
|
||||
|
||||
self.static_dynamic_fids = self.compute_static_dynamic_fids()
|
||||
# self.static_index, self.moving_index = self.compute_static_dynamic_fids()
|
||||
|
||||
'''该函数依赖项: self.cornpoints,定义 4 个商品位置变量:
|
||||
self.Cent_isIncart, self.LB_isIncart, self.RB_isIncart
|
||||
@ -250,13 +250,35 @@ class backTrack(Track):
|
||||
return moving_index
|
||||
|
||||
def compute_static_dynamic_fids(self):
|
||||
static_dynamic_fids = []
|
||||
for traj in self.trajectory:
|
||||
static, dynamic = self.compute_static_fids(traj)
|
||||
|
||||
idx2 = self.trajlens.index(min(self.trajlens))
|
||||
trajmin = self.trajectory[idx2]
|
||||
|
||||
static, dynamic = self.pt_state_fids(trajmin)
|
||||
|
||||
static = np.array(static)
|
||||
dynamic = np.array(dynamic)
|
||||
|
||||
if static.size:
|
||||
indx = np.argsort(static[:, 0])
|
||||
static = static[indx]
|
||||
if dynamic.size:
|
||||
indx = np.argsort(dynamic[:, 0])
|
||||
dynamic = dynamic[indx]
|
||||
|
||||
static_dynamic_fids.append((static, dynamic))
|
||||
|
||||
return static_dynamic_fids
|
||||
return static, dynamic
|
||||
|
||||
|
||||
|
||||
|
||||
# =============================================================================
|
||||
# static_dynamic_fids = []
|
||||
# for traj in self.trajectory:
|
||||
# static, dynamic = self.pt_state_fids(traj)
|
||||
# static_dynamic_fids.append((static, dynamic))
|
||||
#
|
||||
# return static_dynamic_fids
|
||||
# =============================================================================
|
||||
|
||||
|
||||
|
||||
@ -270,6 +292,10 @@ class backTrack(Track):
|
||||
trajlen_rate, trajdist_rate]
|
||||
'''
|
||||
|
||||
# print(f"TrackID: {self.tid}")
|
||||
boxes = self.boxes
|
||||
|
||||
|
||||
condt1 = self.feature[5] < 0.2 or self.feature[3] < 120
|
||||
|
||||
'''静态情况 2: 目标初始状态为静止,适当放宽关键点最小相对运动轨迹 < 0.5'''
|
||||
|
@ -31,8 +31,8 @@ class frontTrack(Track):
|
||||
'''y1、y2静止状态区间,值是 boxes 中对 axis=0 的索引,不是帧索引'''
|
||||
det_y1 = np.diff(boxes[:, 1], axis=0)
|
||||
det_y2 = np.diff(boxes[:, 3], axis=0)
|
||||
self.static_y1, self.dynamic_y1 = self.compute_static_fids(det_y1)
|
||||
self.static_y2, self.dynamic_y2 = self.compute_static_fids(det_y2)
|
||||
self.static_y1, self.dynamic_y1 = self.pt_state_fids(det_y1)
|
||||
self.static_y2, self.dynamic_y2 = self.pt_state_fids(det_y2)
|
||||
|
||||
self.isCornpoint = self.is_left_or_right_cornpoint()
|
||||
self.isBotmpoint = self.is_bottom_cornpoint()
|
||||
|
Reference in New Issue
Block a user