-
Notifications
You must be signed in to change notification settings - Fork 1
/
jaffe_parser.py
74 lines (59 loc) · 2.11 KB
/
jaffe_parser.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
import numpy as np
from scipy.misc import imread
import os
import matplotlib.pyplot as plt
import tensorflow as tf
import matplotlib.image as mpimg
class Jaffee_Parser:
def images_to_tensor(self):
images = []
for file in sorted(os.listdir('data/jaffe_images_small')) :
if(file != '.DS_Store'):
image = mpimg.imread('data/jaffe_images_small/' + file)
if (len(np.shape(image)) > 2):
image = image[:,:,0]
image = image.tolist()
images.append(image)
image_tensor = np.array(images)
image_tensor = image_tensor.reshape(213, 64, 64, 1)
return image_tensor
def text_to_tensor(self):
labels = []
text = open('data/jaffe_labels/JAFFE_labels.txt')
for line in text.readlines()[2:]:
line_labels = line.split()
labels.append(line_labels[1:-1])
label_tensor = np.array(labels)
return label_tensor
def text_to_one_hot(self):
#labels are of the form [NEU HAP SAD SUR ANG DIS FEA]
labels = []
text = open('data/jaffe_labels/JAFFE_labels.txt')
for line in text.readlines()[2:]:
line_label = line[-4:-2]
tag = line [-7:-1]
index = 0
if line_label == 'NE':
index == 0
if line_label == 'HA':
index = 1
if line_label == 'SA':
index = 2
if line_label == 'SU':
index = 3
if line_label == 'AN':
index = 4
if line_label == 'DI':
index = 5
if line_label == 'FE':
index = 6
labels.append([tag,index])
label_tensor = np.array(labels)
i = np.argsort(label_tensor[:,0])
label_tensor = label_tensor[i]
label_tensor = label_tensor[:,1]
label_tensor = label_tensor.astype(int)
one_hot = np.zeros([np.size(label_tensor), 7])
for i in range(np.size(label_tensor)):
one_hot[i, label_tensor[i]] = 1
return one_hot