-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathinvoker.py
More file actions
83 lines (78 loc) · 2.64 KB
/
Copy pathinvoker.py
File metadata and controls
83 lines (78 loc) · 2.64 KB
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
import argparse
from lib.config import config, update_config
import sys
import numpy as np
import scipy.io
from lib.datasets import WFLW, Face300W
# parser = argparse.ArgumentParser(description='Train Face Alignment')
# parser.add_argument('--cfg', help='experiment configuration filename',
# required=True, type=str)
# args = parser.parse_args()
# update_config(config, args)
# # dataset = WFLW(config, is_train=False)
# # landmarks = np.zeros([len(dataset), 98, 2])
# dataset = Face300W(config, is_train=False)
# landmarks = np.zeros([3149, 68, 2])
# for i, (a, b, c) in enumerate(dataset):
# landmarks[i] = c['tpts']
# mean_shape = np.mean(landmarks, dim=0)
# print(mean_shape)
# np.save('./data/300w/init_landmark.npy', mean_shape.numpy())
# curve2landmark = {
# 0: np.arange(0, 9),
# 1: np.arange(9, 17),
# 2: np.arange(17, 22),
# 3: np.arange(22, 27),
# 4: np.arange(27, 31),
# 5: np.arange(31, 36),
# 6: np.arange(36, 42),
# 7: np.arange(42, 48),
# 8: np.arange(48, 55),
# 9: np.arange(55, 62),
# 10: np.arange(62, 67),
# 11: np.arange(67, 72)}
# init_landmarks = np.load('./data/init_landmark.npy')
# index = list(np.arange(0, 48)) + list(np.arange(48, 55)) + list(np.arange(54, 60)) +\
# [48] + list(np.arange(60, 65)) + list(np.arange(64, 68)) + [60]
# init_landmarks = init_landmarks[index]
# curve2landmark = {
# 0: np.arange(0, 17),
# 1: np.arange(17, 33),
# 2: np.arange(33, 42),
# 3: np.arange(42, 51),
# 4: np.arange(51, 55),
# 5: np.arange(55, 60),
# 6: np.arange(60, 68),
# 7: np.arange(68, 76),
# 8: np.arange(76, 83),
# 9: np.arange(83, 88),
# 10: np.arange(88, 93),
# 11: np.arange(93, 96)
# }
# init_landmarks = np.load('data/wflw/init_landmark.npy')
curve2landmark = {
0: np.arange(0, 21),
1: np.arange(21, 41),
2: np.arange(41, 58),
3: np.arange(58, 72),
4: np.arange(72, 86),
5: np.arange(86, 100),
6: np.arange(100, 114),
7: np.arange(114, 134),
8: np.arange(134, 154),
9: np.arange(154, 174),
10: np.arange(174, 194)}
init_landmarks = scipy.io.loadmat('data/300w/images/helen/Helen_meanShape_256_1_5x.mat')['Helen_meanShape_256_1_5x']
init_landmarks *= (112 / 256)
sigmaV = np.zeros([11])
sigmaW = np.zeros([11])
for curve_idx, landmark_idxs in curve2landmark.items():
landmarks = init_landmarks[landmark_idxs]
x = landmarks[:, 0]
y = landmarks[:, 1]
max_x = np.max(landmarks[:, 0])
min_x = np.min(landmarks[:, 0])
max_y = np.max(landmarks[:, 1])
min_y = np.min(landmarks[:, 1])
sigmaV[curve_idx] += np.mean([max_x - min_x, max_y - min_y])
print(sigmaV)