forked from danduncan/HappyNet
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CKPlus_convert_to_Jaffe_format.py
85 lines (65 loc) · 2.13 KB
/
CKPlus_convert_to_Jaffe_format.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
#!/usr/bin/env python
###############################################################################
#
# This is a quick script to convert all of the files in the open-source
# Cohn-Kanade Plus (CK+) emotions dataset to use the same naming convention
# as the Japanese Female Facial Expressions (JAFFE) dataset
#
# This then allows the two datasets to be merged
#
# Note that CK+ includes transitional images (i.e. a face halfway between neutral
# and strong emotion). Only neutral faces and strong emotions are included. No
# transitional images are included.
#
# Date modified: March 2016
#
# Authors: Dan Duncan
# Gautam Shine
#
###############################################################################
import os, shutil, sys, time, re, glob
import numpy as np
import matplotlib.pyplot as plt
import cv2 as cv
import Image
import caffe
from caffe_functions import *
from opencv_functions import *
from utility_functions import *
### USER-SPECIFIED VARIABLES: ###
# List your dataset root directories here:
dirCKPlus = 'datasets/CK_Plus'
# Select which dataset to use (case insensitive):
dataset = 'ckplus'
# Flags:
cropFlag = True # False disables image cropping
### START SCRIPT: ###
# Set up inputs
dir = dirCKPlus
color = False
single_face = True
# Clean up and discard anything from the last run
dirCrop = dir + '/cropped'
rmdir(dirCrop)
# Master list of categories for EmotitW network
categories = [ 'Angry' , 'Disgust' , 'Fear' , 'Happy' , 'Neutral' , 'Sad' , 'Surprise']
suffixes = ['AN', 'DI', 'FE', 'HA', 'NE', 'SA', 'SU']
# Load dataset image list
input_list, labels = importDataset(dir, dataset, categories)
# Perform detection and cropping if desired (and it should be desired)
mkdir(dirCrop)
input_list = faceCrop(dirCrop, input_list, color, single_face)
# Print outs
# print input_list
# print labels
# Rename all files to Jaffe format
for i in range(len(input_list)):
# Get file info
filename = input_list[i]
lab = labels[i]
labText = suffixes[lab]
# Generate new filename
fn = filename.split('.')
out = fn[0] + '.' + labText + '.' + fn[1]
# Rename file
os.rename(filename,out)