zestyoreo commited on
Commit
3c97505
·
1 Parent(s): 7634bde
flagged/log.csv ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ Input Text,Input Text2,Generated Text,flag,username,timestamp
2
+ hhdjvbdfhv,bala,hhdjvbdfhv hello bala,,,2022-11-08 04:59:13.367059
util/__init__.py ADDED
@@ -0,0 +1 @@
 
 
1
+ # util_init
util/__pycache__/__init__.cpython-310.pyc ADDED
Binary file (152 Bytes). View file
 
util/__pycache__/__init__.cpython-36.pyc ADDED
Binary file (130 Bytes). View file
 
util/__pycache__/__init__.cpython-37.pyc ADDED
Binary file (134 Bytes). View file
 
util/__pycache__/__init__.cpython-38.pyc ADDED
Binary file (150 Bytes). View file
 
util/__pycache__/flow_util.cpython-310.pyc ADDED
Binary file (9.75 kB). View file
 
util/__pycache__/flow_util.cpython-38.pyc ADDED
Binary file (9.85 kB). View file
 
util/__pycache__/util.cpython-36.pyc ADDED
Binary file (4.02 kB). View file
 
util/__pycache__/util.cpython-37.pyc ADDED
Binary file (3.7 kB). View file
 
util/flow_util.py ADDED
@@ -0,0 +1,297 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import numpy as np
2
+ import os
3
+ import imageio
4
+ import math
5
+ import torch
6
+ import importlib
7
+ import re
8
+ import argparse
9
+ from natsort import natsorted
10
+
11
+
12
+
13
+ # convert a tensor into a numpy array
14
+ def tensor2im(image_tensor, bytes=255.0, imtype=np.uint8):
15
+ if image_tensor.dim() == 3:
16
+ image_numpy = image_tensor.cpu().float().numpy()
17
+ else:
18
+ image_numpy = image_tensor[0].cpu().float().numpy()
19
+ image_numpy = (np.transpose(image_numpy, (1, 2, 0)) + 1) / 2.0 * bytes
20
+
21
+ return image_numpy.astype(imtype)
22
+
23
+
24
+ # conver a tensor into a numpy array
25
+ def tensor2array(value_tensor):
26
+ if value_tensor.dim() == 3:
27
+ numpy = value_tensor.view(-1).cpu().float().numpy()
28
+ else:
29
+ numpy = value_tensor[0].view(-1).cpu().float().numpy()
30
+ return numpy
31
+
32
+ # label color map
33
+ def uint82bin(n, count=8):
34
+ """returns the binary of integer n, count refers to amount of bits"""
35
+ return ''.join([str((n >> y) & 1) for y in range(count-1, -1, -1)])
36
+
37
+ def labelcolormap(N):
38
+ if N == 19: # CelebAMask-HQ
39
+ cmap = np.array([(0, 0, 0), (204, 0, 0), (76, 153, 0),
40
+ (204, 204, 0), (51, 51, 255), (204, 0, 204), (0, 255, 255),
41
+ (51, 255, 255), (102, 51, 0), (255, 0, 0), (102, 204, 0),
42
+ (255, 255, 0), (0, 0, 153), (0, 0, 204), (255, 51, 153),
43
+ (0, 204, 204), (0, 51, 0), (255, 153, 51), (0, 204, 0)],
44
+ dtype=np.uint8)
45
+ else:
46
+ cmap = np.zeros((N, 3), dtype=np.uint8)
47
+ for i in range(N):
48
+ r, g, b = 0, 0, 0
49
+ id = i
50
+ for j in range(7):
51
+ str_id = uint82bin(id)
52
+ r = r ^ (np.uint8(str_id[-1]) << (7-j))
53
+ g = g ^ (np.uint8(str_id[-2]) << (7-j))
54
+ b = b ^ (np.uint8(str_id[-3]) << (7-j))
55
+ id = id >> 3
56
+ cmap[i, 0] = r
57
+ cmap[i, 1] = g
58
+ cmap[i, 2] = b
59
+ return cmap
60
+
61
+ class Colorize(object):
62
+ def __init__(self, n):
63
+ self.cmap = labelcolormap(n)
64
+ self.cmap = torch.from_numpy(self.cmap[:n])
65
+
66
+ def __call__(self, gray_image):
67
+ if len(gray_image.size()) != 3:
68
+ gray_image = gray_image[0]
69
+
70
+ size = gray_image.size()
71
+ color_image = torch.ByteTensor(3, size[1], size[2]).fill_(0)
72
+
73
+ for label in range(0, len(self.cmap)):
74
+ mask = (label == gray_image[0]).cpu()
75
+ color_image[0][mask] = self.cmap[label][0]
76
+ color_image[1][mask] = self.cmap[label][1]
77
+ color_image[2][mask] = self.cmap[label][2]
78
+ color_image = color_image.float()/255.0 * 2 - 1
79
+ return color_image
80
+
81
+
82
+ def make_colorwheel():
83
+ '''
84
+ Generates a color wheel for optical flow visualization as presented in:
85
+ Baker et al. "A Database and Evaluation Methodology for Optical Flow" (ICCV, 2007)
86
+ URL: http://vision.middlebury.edu/flow/flowEval-iccv07.pdf
87
+ According to the C++ source code of Daniel Scharstein
88
+ According to the Matlab source code of Deqing Sun
89
+ '''
90
+ RY = 15
91
+ YG = 6
92
+ GC = 4
93
+ CB = 11
94
+ BM = 13
95
+ MR = 6
96
+
97
+ ncols = RY + YG + GC + CB + BM + MR
98
+ colorwheel = np.zeros((ncols, 3))
99
+ col = 0
100
+
101
+ # RY
102
+ colorwheel[0:RY, 0] = 255
103
+ colorwheel[0:RY, 1] = np.floor(255*np.arange(0,RY)/RY)
104
+ col = col+RY
105
+ # YG
106
+ colorwheel[col:col+YG, 0] = 255 - np.floor(255*np.arange(0,YG)/YG)
107
+ colorwheel[col:col+YG, 1] = 255
108
+ col = col+YG
109
+ # GC
110
+ colorwheel[col:col+GC, 1] = 255
111
+ colorwheel[col:col+GC, 2] = np.floor(255*np.arange(0,GC)/GC)
112
+ col = col+GC
113
+ # CB
114
+ colorwheel[col:col+CB, 1] = 255 - np.floor(255*np.arange(CB)/CB)
115
+ colorwheel[col:col+CB, 2] = 255
116
+ col = col+CB
117
+ # BM
118
+ colorwheel[col:col+BM, 2] = 255
119
+ colorwheel[col:col+BM, 0] = np.floor(255*np.arange(0,BM)/BM)
120
+ col = col+BM
121
+ # MR
122
+ colorwheel[col:col+MR, 2] = 255 - np.floor(255*np.arange(MR)/MR)
123
+ colorwheel[col:col+MR, 0] = 255
124
+ return colorwheel
125
+
126
+
127
+ class flow2color():
128
+ # code from: https://github.com/tomrunia/OpticalFlow_Visualization
129
+ # MIT License
130
+ #
131
+ # Copyright (c) 2018 Tom Runia
132
+ #
133
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
134
+ # of this software and associated documentation files (the "Software"), to deal
135
+ # in the Software without restriction, including without limitation the rights
136
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
137
+ # copies of the Software, and to permit persons to whom the Software is
138
+ # furnished to do so, subject to conditions.
139
+ #
140
+ # Author: Tom Runia
141
+ # Date Created: 2018-08-03
142
+ def __init__(self):
143
+ self.colorwheel = make_colorwheel()
144
+
145
+
146
+ def flow_compute_color(self, u, v, convert_to_bgr=False):
147
+ '''
148
+ Applies the flow color wheel to (possibly clipped) flow components u and v.
149
+ According to the C++ source code of Daniel Scharstein
150
+ According to the Matlab source code of Deqing Sun
151
+ :param u: np.ndarray, input horizontal flow
152
+ :param v: np.ndarray, input vertical flow
153
+ :param convert_to_bgr: bool, whether to change ordering and output BGR instead of RGB
154
+ :return:
155
+ '''
156
+ flow_image = np.zeros((u.shape[0], u.shape[1], 3), np.uint8)
157
+ ncols = self.colorwheel.shape[0]
158
+
159
+ rad = np.sqrt(np.square(u) + np.square(v))
160
+ a = np.arctan2(-v, -u)/np.pi
161
+ fk = (a+1) / 2*(ncols-1)
162
+ k0 = np.floor(fk).astype(np.int32)
163
+ k1 = k0 + 1
164
+ k1[k1 == ncols] = 0
165
+ f = fk - k0
166
+
167
+ for i in range(self.colorwheel.shape[1]):
168
+
169
+ tmp = self.colorwheel[:,i]
170
+ col0 = tmp[k0] / 255.0
171
+ col1 = tmp[k1] / 255.0
172
+ col = (1-f)*col0 + f*col1
173
+
174
+ idx = (rad <= 1)
175
+ col[idx] = 1 - rad[idx] * (1-col[idx])
176
+ col[~idx] = col[~idx] * 0.75 # out of range?
177
+
178
+ # Note the 2-i => BGR instead of RGB
179
+ ch_idx = 2-i if convert_to_bgr else i
180
+ flow_image[:,:,ch_idx] = np.floor(255 * col)
181
+
182
+ return flow_image
183
+
184
+
185
+ def __call__(self, flow_uv, clip_flow=None, convert_to_bgr=False):
186
+ '''
187
+ Expects a two dimensional flow image of shape [H,W,2]
188
+ According to the C++ source code of Daniel Scharstein
189
+ According to the Matlab source code of Deqing Sun
190
+ :param flow_uv: np.ndarray of shape [H,W,2]
191
+ :param clip_flow: float, maximum clipping value for flow
192
+ :return:
193
+ '''
194
+ if len(flow_uv.size()) != 3:
195
+ flow_uv = flow_uv[0]
196
+ flow_uv = flow_uv.permute(1,2,0).cpu().detach().numpy()
197
+
198
+ assert flow_uv.ndim == 3, 'input flow must have three dimensions'
199
+ assert flow_uv.shape[2] == 2, 'input flow must have shape [H,W,2]'
200
+
201
+ if clip_flow is not None:
202
+ flow_uv = np.clip(flow_uv, 0, clip_flow)
203
+
204
+ u = flow_uv[:,:,1]
205
+ v = flow_uv[:,:,0]
206
+
207
+
208
+ rad = np.sqrt(np.square(u) + np.square(v))
209
+ rad_max = np.max(rad)
210
+
211
+ epsilon = 1e-5
212
+ u = u / (rad_max + epsilon)
213
+ v = v / (rad_max + epsilon)
214
+ image = self.flow_compute_color(u, v, convert_to_bgr)
215
+ image = torch.tensor(image).float().permute(2,0,1)/255.0 * 2 - 1
216
+ return image
217
+
218
+
219
+ def save_image(image_numpy, image_path):
220
+ if image_numpy.shape[2] == 1:
221
+ image_numpy = image_numpy.reshape(image_numpy.shape[0], image_numpy.shape[1])
222
+
223
+ imageio.imwrite(image_path, image_numpy)
224
+
225
+
226
+ def mkdirs(paths):
227
+ if isinstance(paths, list) and not isinstance(paths, str):
228
+ for path in paths:
229
+ mkdir(path)
230
+ else:
231
+ mkdir(paths)
232
+
233
+
234
+ def mkdir(path):
235
+ if not os.path.exists(path):
236
+ os.makedirs(path)
237
+
238
+
239
+ def find_class_in_module(target_cls_name, module):
240
+ target_cls_name = target_cls_name.replace('_', '').lower()
241
+ clslib = importlib.import_module(module)
242
+ cls = None
243
+ for name, clsobj in clslib.__dict__.items():
244
+ if name.lower() == target_cls_name:
245
+ cls = clsobj
246
+
247
+ if cls is None:
248
+ print("In %s, there should be a class whose name matches %s in lowercase without underscore(_)" % (module, target_cls_name))
249
+ exit(0)
250
+
251
+ return cls
252
+
253
+
254
+
255
+ def atoi(text):
256
+ return int(text) if text.isdigit() else text
257
+
258
+
259
+ def natural_keys(text):
260
+ '''
261
+ alist.sort(key=natural_keys) sorts in human order
262
+ http://nedbatchelder.com/blog/200712/human_sorting.html
263
+ (See Toothy's implementation in the comments)
264
+ '''
265
+ return [atoi(c) for c in re.split('(\d+)', text)]
266
+
267
+
268
+ def natural_sort(items):
269
+ items.sort(key=natural_keys)
270
+
271
+ class StoreDictKeyPair(argparse.Action):
272
+ def __call__(self, parser, namespace, values, option_string=None):
273
+ my_dict = {}
274
+ for kv in values.split(","):
275
+ # print(kv)
276
+ k,v = kv.split("=")
277
+ my_dict[k] = int(v)
278
+ setattr(namespace, self.dest, my_dict)
279
+
280
+ class StoreList(argparse.Action):
281
+ def __call__(self, parser, namespace, values, option_string=None):
282
+ my_list = [int(item) for item in values.split(',')]
283
+ setattr(namespace, self.dest, my_list)
284
+ #
285
+ def get_iteration(dir_name, file_name, net_name):
286
+ if os.path.exists(os.path.join(dir_name, file_name)) is False:
287
+ return None
288
+ if 'latest' in file_name:
289
+ gen_models = [os.path.join(dir_name, f) for f in os.listdir(dir_name) if
290
+ os.path.isfile(os.path.join(dir_name, f)) and (not 'latest' in f) and ('_net_'+net_name+'.pth' in f)]
291
+ if gen_models == []:
292
+ return 0
293
+ model_name = os.path.basename(natsorted(gen_models)[-1])
294
+ else:
295
+ model_name = file_name
296
+ iterations = int(model_name.replace('_net_'+net_name+'.pth', ''))
297
+ return iterations
util/image_pool.py ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import random
2
+ import torch
3
+ from torch.autograd import Variable
4
+ class ImagePool():
5
+ def __init__(self, pool_size):
6
+ self.pool_size = pool_size
7
+ if self.pool_size > 0:
8
+ self.num_imgs = 0
9
+ self.images = []
10
+
11
+ def query(self, images):
12
+ if self.pool_size == 0:
13
+ return images
14
+ return_images = []
15
+ for image in images.data:
16
+ image = torch.unsqueeze(image, 0)
17
+ if self.num_imgs < self.pool_size:
18
+ self.num_imgs = self.num_imgs + 1
19
+ self.images.append(image)
20
+ return_images.append(image)
21
+ else:
22
+ p = random.uniform(0, 1)
23
+ if p > 0.5:
24
+ random_id = random.randint(0, self.pool_size-1)
25
+ tmp = self.images[random_id].clone()
26
+ self.images[random_id] = image
27
+ return_images.append(tmp)
28
+ else:
29
+ return_images.append(image)
30
+ return_images = Variable(torch.cat(return_images, 0))
31
+ return return_images
util/util.py ADDED
@@ -0,0 +1,94 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from __future__ import print_function
2
+
3
+ import torch
4
+ from PIL import Image
5
+ import numpy as np
6
+ import os
7
+
8
+ def tensor2im(image_tensor, imtype=np.uint8, normalize=True):
9
+ if isinstance(image_tensor, list):
10
+ image_numpy = []
11
+ for i in range(len(image_tensor)):
12
+ image_numpy.append(tensor2im(image_tensor[i], imtype, normalize))
13
+ return image_numpy
14
+ image_numpy = image_tensor.cpu().float().numpy()
15
+
16
+ image_numpy = (image_numpy + 1) / 2.0
17
+ image_numpy = np.clip(image_numpy, 0, 1)
18
+ if image_numpy.shape[2] == 1 or image_numpy.shape[2] > 3:
19
+ image_numpy = image_numpy[:,:,0]
20
+
21
+ return image_numpy
22
+
23
+ def tensor2label(label_tensor, n_label, imtype=np.uint8):
24
+ if n_label == 0:
25
+ return tensor2im(label_tensor, imtype)
26
+ label_tensor = label_tensor.cpu().float()
27
+ if label_tensor.size()[0] > 1:
28
+ label_tensor = label_tensor.max(0, keepdim=True)[1]
29
+ label_tensor = Colorize(n_label)(label_tensor)
30
+ label_numpy = label_tensor.numpy()
31
+ label_numpy = label_numpy / 255.0
32
+
33
+ return label_numpy
34
+
35
+ def save_image(image_numpy, image_path):
36
+ image_pil = Image.fromarray(image_numpy)
37
+ image_pil.save(image_path)
38
+
39
+ def mkdirs(paths):
40
+ if isinstance(paths, list) and not isinstance(paths, str):
41
+ for path in paths:
42
+ mkdir(path)
43
+ else:
44
+ mkdir(paths)
45
+
46
+ def mkdir(path):
47
+ if not os.path.exists(path):
48
+ os.makedirs(path)
49
+
50
+
51
+ def uint82bin(n, count=8):
52
+ """returns the binary of integer n, count refers to amount of bits"""
53
+ return ''.join([str((n >> y) & 1) for y in range(count-1, -1, -1)])
54
+
55
+ def labelcolormap(N):
56
+ if N == 35: # cityscape
57
+ cmap = np.array([( 0, 0, 0), ( 0, 0, 0), ( 0, 0, 0), ( 0, 0, 0), ( 0, 0, 0), (111, 74, 0), ( 81, 0, 81),
58
+ (128, 64,128), (244, 35,232), (250,170,160), (230,150,140), ( 70, 70, 70), (102,102,156), (190,153,153),
59
+ (180,165,180), (150,100,100), (150,120, 90), (153,153,153), (153,153,153), (250,170, 30), (220,220, 0),
60
+ (107,142, 35), (152,251,152), ( 70,130,180), (220, 20, 60), (255, 0, 0), ( 0, 0,142), ( 0, 0, 70),
61
+ ( 0, 60,100), ( 0, 0, 90), ( 0, 0,110), ( 0, 80,100), ( 0, 0,230), (119, 11, 32), ( 0, 0,142)],
62
+ dtype=np.uint8)
63
+ else:
64
+ cmap = np.zeros((N, 3), dtype=np.uint8)
65
+ for i in range(N):
66
+ r, g, b = 0, 0, 0
67
+ id = i
68
+ for j in range(7):
69
+ str_id = uint82bin(id)
70
+ r = r ^ (np.uint8(str_id[-1]) << (7-j))
71
+ g = g ^ (np.uint8(str_id[-2]) << (7-j))
72
+ b = b ^ (np.uint8(str_id[-3]) << (7-j))
73
+ id = id >> 3
74
+ cmap[i, 0] = r
75
+ cmap[i, 1] = g
76
+ cmap[i, 2] = b
77
+ return cmap
78
+
79
+ class Colorize(object):
80
+ def __init__(self, n=35):
81
+ self.cmap = labelcolormap(n)
82
+ self.cmap = torch.from_numpy(self.cmap[:n])
83
+
84
+ def __call__(self, gray_image):
85
+ size = gray_image.size()
86
+ color_image = torch.ByteTensor(3, size[1], size[2]).fill_(0)
87
+
88
+ for label in range(0, len(self.cmap)):
89
+ mask = (label == gray_image[0]).cpu()
90
+ color_image[0][mask] = self.cmap[label][0]
91
+ color_image[1][mask] = self.cmap[label][1]
92
+ color_image[2][mask] = self.cmap[label][2]
93
+
94
+ return color_image