modified for site test

This commit is contained in:
王庆刚
2024-07-18 17:52:12 +08:00
parent f90ef72cbf
commit e986ec060b
39 changed files with 2279 additions and 375 deletions

View File

@ -55,6 +55,7 @@ class doBackTracks(doTracks):
# tracks = self.sub_tracks(tracks, out_trcak)
[self.associate_with_hand(htrack, gtrack) for htrack in hand_tracks for gtrack in tracks]
'''轨迹循环归并'''
# merged_tracks = self.merge_tracks(tracks)
merged_tracks = self.merge_tracks_loop(tracks)
@ -66,17 +67,28 @@ class doBackTracks(doTracks):
self.Static.extend(static_tracks)
tracks = self.sub_tracks(tracks, static_tracks)
for gtrack in tracks:
# print(f"Goods ID:{gtrack.tid}")
for htrack in hand_tracks:
hand_ious = self.associate_with_hand(htrack, gtrack)
if len(hand_ious):
gtrack.Hands.append(htrack)
gtrack.HandsIou.append(hand_ious)
self.Residual = tracks
# for gtrack in tracks:
# for htrack in hand_tracks:
# hand_ious = self.associate_with_hand(htrack, gtrack)
# if len(hand_ious):
# gtrack.Hands.append(htrack)
# gtrack.HandsIou.append(hand_ious)
# htrack.Goods.append((gtrack, hand_ious))
# for htrack in hand_tracks:
# self.merge_based_hands(htrack)
self.Residual = tracks
# def merge_based_hands(self, htrack):
# gtracks = htrack.Goods
# if len(gtracks) >= 2:
# atrack, afious = gtracks[0]
# btrack, bfious = gtracks[1]
def associate_with_hand(self, htrack, gtrack):
'''
迁移至基类:
@ -91,6 +103,7 @@ class doBackTracks(doTracks):
hboxes = np.empty(shape=(0, 9), dtype = np.float)
gboxes = np.empty(shape=(0, 9), dtype = np.float)
# start, end 为索引值,需要 start:(end+1)
for start, end in htrack.moving_index:
@ -99,18 +112,17 @@ class doBackTracks(doTracks):
gboxes = np.concatenate((gboxes, gtrack.boxes[start:end+1, :]), axis=0)
hfids, gfids = hboxes[:, 7], gboxes[:, 7]
fids = set(hfids).intersection(set(gfids))
fids = sorted(set(hfids).intersection(set(gfids)))
if len(fids)==0:
return hand_ious
return None
# print(f"Goods ID: {gtrack.tid}, Hand ID: {htrack.tid}")
for f in fids:
h = np.where(hfids==f)[0][0]
g = np.where(gfids==f)[0][0]
h = np.where(hboxes[:,7] == f)[0][0]
g = np.where(gboxes[:,7] == f)[0][0]
x11, y11, x12, y12 = hboxes[h, 0:4]
x21, y21, x22, y22 = gboxes[g, 0:4]
@ -124,10 +136,11 @@ class doBackTracks(doTracks):
iou = union / (area1 + area2 - union + 1e-6)
if iou>0:
hand_ious.append((f, iou))
if iou >= 0.01:
gtrack.Hands.append((htrack.tid, f, iou))
return hand_ious
return gtrack.Hands
def merge_tracks(self, Residual):
"""