Showing
1 changed file
with
75 additions
and
0 deletions
process_data.py
0 → 100644
1 | +import os | ||
2 | +import numpy as np | ||
3 | +import random | ||
4 | +from imageio import imread | ||
5 | +from skimage.transform import resize | ||
6 | +import hickle as hkl | ||
7 | +from setting import * | ||
8 | + | ||
9 | +#tr : val = 9:1 | ||
10 | +desired_im_sz = (128, 160) #높이,너비 | ||
11 | +#categories = ['walk', 'run', 'hug', 'crossarms', 'jump', 'clap', 'etc', 'beverage', 'phone', 'calling'] | ||
12 | +num_pic = 12 #각 sequence마다 받아올 프레임 개수. (개수가 일정하기 않기 때문) | ||
13 | + | ||
14 | + | ||
15 | +# Create image datasets. | ||
16 | +def process_data(): | ||
17 | + base_dir = os.path.join(DATA_DIR, 'action_data/') | ||
18 | + temp_list = [] | ||
19 | + source_temp = [] # corresponds to recording that image came from | ||
20 | + im_list = [] | ||
21 | + source_list = [] | ||
22 | + validation = [] | ||
23 | + val_source = [] | ||
24 | + val_idx =[] | ||
25 | + num_data = 0 # 비디오 개수 | ||
26 | + | ||
27 | + for top, dir, f in os.walk(base_dir): | ||
28 | + if(len(f) > 0 and len(f) >= num_pic+1): | ||
29 | + f.sort() #오마이갓 이걸 해줘야해,,,,, | ||
30 | + temp_list += [top+'/'+ f[idx] for idx in range(1,13)] | ||
31 | + start = top.rfind('/') | ||
32 | + source_temp += [top[start+1:]] * num_pic | ||
33 | + num_data += 1 | ||
34 | + | ||
35 | + | ||
36 | + # 파일 2000개만 | ||
37 | + for i in range(1900): | ||
38 | + t = random.randrange(num_data) | ||
39 | + im_list += temp_list[t:t+num_pic] | ||
40 | + source_list += [source_temp[t]] * num_pic | ||
41 | + del temp_list[t:t+num_pic] | ||
42 | + del source_temp[t:t+num_pic] | ||
43 | + | ||
44 | + for i in range(100): | ||
45 | + t = random.randrange(num_data) | ||
46 | + validation += temp_list[t:t+num_pic] | ||
47 | + val_source += [source_temp[t]] * num_pic | ||
48 | + del temp_list[t:t+num_pic] | ||
49 | + del source_temp[t:t+num_pic] | ||
50 | + | ||
51 | + # print(len(im_list), ", ", len(validation)) | ||
52 | + | ||
53 | + X_t = np.zeros((len(im_list),) + desired_im_sz + (3,)) | ||
54 | + X_v = np.zeros((len(validation),) + desired_im_sz + (3,)) | ||
55 | + for i, im_file in enumerate(im_list): | ||
56 | + im = imread(im_file) | ||
57 | + X_t[i] = resize(im, (desired_im_sz[0], desired_im_sz[1])) | ||
58 | + | ||
59 | + for i, im_file in enumerate(validation): | ||
60 | + im = imread(im_file) | ||
61 | + X_v[i] = resize(im, (desired_im_sz[0], desired_im_sz[1])) | ||
62 | + | ||
63 | + # print(X_t.shape, ", ", X_v.shape) | ||
64 | + # print(X_t[0], end ='\n\n') | ||
65 | + # print(X_v[0]) | ||
66 | + | ||
67 | + | ||
68 | + hkl.dump(X_t, os.path.join(DATA_DIR, 'X_train.hkl')) | ||
69 | + hkl.dump(source_list, os.path.join(DATA_DIR, 'sources_train.hkl')) | ||
70 | + hkl.dump(X_v, os.path.join(DATA_DIR, 'X_val.hkl')) | ||
71 | + hkl.dump(val_source, os.path.join(DATA_DIR, 'sources_val.hkl')) | ||
72 | + | ||
73 | + | ||
74 | +if __name__ == '__main__': | ||
75 | + process_data() | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
-
Please register or login to post a comment