-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathget_persistence.py
107 lines (70 loc) · 2.04 KB
/
get_persistence.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
import pickle
import torch
import yaml
# mask_names = [
# "visdrone/videos/vis_%d_blackgen_bound_0.5_qp_30_conv_9_app_FPN.mp4.mask"
# % i
# for i in range(169, 174)
# ]
mask_names = [
"dashcam/dashcam_%d_blackgen_bound_0.5_qp_30_conv_9_app_FPN.mp4.mask" % i
for i in range(1, 8)
]
thresh = 0.85
ub = 102
def IoU(maskA, maskB):
assert (maskA == maskB).sum() / maskA.numel() <= 1
return (maskA == maskB).sum() / maskA.numel()
rights = []
for mask_name in mask_names:
print(mask_name)
with open(mask_name, "rb") as f:
mask = pickle.load(f)
for i in range(len(mask)):
right = i
for j in range(i + 1, len(mask)):
if IoU(mask[i], mask[j]) > thresh:
right = j
else:
break
if right - i > ub:
break
rights = rights + [right - i]
print(torch.tensor(rights).float().mean())
print(torch.tensor(rights).float().mean())
with open("persistance_dashcam.txt", "w") as f:
yaml.dump(rights, f)
import pickle
import torch
import yaml
mask_names = [
"visdrone/videos/vis_%d_blackgen_bound_0.5_qp_30_conv_9_app_FPN.mp4.mask"
% i
for i in range(169, 174)
]
# mask_names = [
# "dashcam/dashcam_%d_blackgen_bound_0.5_qp_30_conv_9_app_FPN.mp4.mask" % i
# for i in range(1, 8)
# ]
def IoU(maskA, maskB):
assert (maskA == maskB).sum() / maskA.numel() <= 1
return (maskA == maskB).sum() / maskA.numel()
rights = []
for mask_name in mask_names:
print(mask_name)
with open(mask_name, "rb") as f:
mask = pickle.load(f)
for i in range(len(mask)):
right = i
for j in range(i + 1, len(mask)):
if IoU(mask[i], mask[j]) > thresh:
right = j
else:
break
if right - i > ub:
break
rights = rights + [right - i]
print(torch.tensor(rights).float().mean())
print(torch.tensor(rights).float().mean())
with open("persistance_drone.txt", "w") as f:
yaml.dump(rights, f)