added lower and upper half composite exp
This commit is contained in:
@@ -17,7 +17,7 @@ class ConfigRawReader(object):
|
||||
Args:
|
||||
feature_config_yml (None, optional): yml file defined service configuration
|
||||
"""
|
||||
|
||||
|
||||
if feature_config_yml is None:
|
||||
feature_config = DBMLIB_FEATURE_CONFIG
|
||||
else:
|
||||
@@ -25,15 +25,15 @@ class ConfigRawReader(object):
|
||||
|
||||
with open(feature_config, 'r') as ymlfile:
|
||||
config = yaml.load(ymlfile)
|
||||
|
||||
|
||||
#Verbal features
|
||||
self.base_raw = config
|
||||
self.err_reason = config['raw_feature']['error_reason']
|
||||
|
||||
|
||||
#Output range
|
||||
self.mov_headvel_start = config['raw_feature']['mov_headvel_start']
|
||||
self.mov_headvel_end = config['raw_feature']['mov_headvel_end']
|
||||
|
||||
|
||||
#Acoustic variable
|
||||
self.aco_int = config['raw_feature']['aco_int']
|
||||
self.aco_ff = config['raw_feature']['aco_ff']
|
||||
@@ -194,6 +194,8 @@ class ConfigRawReader(object):
|
||||
self.neu_exp = config['raw_feature']['neu_exp']
|
||||
self.cai_exp = config['raw_feature']['cai_exp']
|
||||
self.com_exp = config['raw_feature']['com_exp']
|
||||
self.com_lower_exp = config['raw_feature']['com_lower_exp']
|
||||
self.com_upper_exp = config['raw_feature']['com_upper_exp']
|
||||
self.hap_exp_full = config['raw_feature']['hap_exp_full']
|
||||
self.sad_exp_full = config['raw_feature']['sad_exp_full']
|
||||
self.sur_exp_full = config['raw_feature']['sur_exp_full']
|
||||
@@ -206,11 +208,13 @@ class ConfigRawReader(object):
|
||||
self.neu_exp_full = config['raw_feature']['neu_exp_full']
|
||||
self.cai_exp_full = config['raw_feature']['cai_exp_full']
|
||||
self.com_exp_full = config['raw_feature']['com_exp_full']
|
||||
self.com_lower_exp_full = config['raw_feature']['com_lower_exp_full']
|
||||
self.com_upper_exp_full = config['raw_feature']['com_upper_exp_full']
|
||||
self.fac_AsymMaskMouth = config['raw_feature']['fac_AsymMaskMouth']
|
||||
self.fac_AsymMaskEye = config['raw_feature']['fac_AsymMaskEye']
|
||||
self.fac_AsymMaskEyebrow = config['raw_feature']['fac_AsymMaskEyebrow']
|
||||
self.fac_AsymMaskCom = config['raw_feature']['fac_AsymMaskCom']
|
||||
|
||||
|
||||
#Movement features
|
||||
self.head_vel = config['raw_feature']['head_vel']
|
||||
self.mov_blink_ear = config['raw_feature']['mov_blink_ear']
|
||||
@@ -222,4 +226,3 @@ class ConfigRawReader(object):
|
||||
self.mov_Hpose_Yaw = config['raw_feature']['mov_Hpose_Yaw']
|
||||
self.mov_Hpose_Roll = config['raw_feature']['mov_Hpose_Roll']
|
||||
self.mov_Hpose_Dist = config['raw_feature']['mov_Hpose_Dist']
|
||||
|
||||
@@ -11,32 +11,32 @@ from dbm_lib.dbm_features.raw_features.util import util as ut
|
||||
|
||||
def smooth(x,window_len=11,window='hanning'):
|
||||
"""smooth the data using a window with requested size.
|
||||
|
||||
|
||||
This method is based on the convolution of a scaled window with the signal.
|
||||
The signal is prepared by introducing reflected copies of the signal
|
||||
The signal is prepared by introducing reflected copies of the signal
|
||||
(with the window size) in both ends so that transient parts are minimized
|
||||
in the begining and end part of the output signal.
|
||||
|
||||
|
||||
input:
|
||||
x: the input signal
|
||||
x: the input signal
|
||||
window_len: the dimension of the smoothing window; should be an odd integer
|
||||
window: the type of window from 'flat', 'hanning', 'hamming', 'bartlett', 'blackman'
|
||||
flat window will produce a moving average smoothing.
|
||||
|
||||
output:
|
||||
the smoothed signal
|
||||
|
||||
|
||||
example:
|
||||
|
||||
t=linspace(-2,2,0.1)
|
||||
x=sin(t)+randn(len(t))*0.1
|
||||
y=smooth(x)
|
||||
|
||||
see also:
|
||||
|
||||
|
||||
see also:
|
||||
|
||||
numpy.hanning, numpy.hamming, numpy.bartlett, numpy.blackman, numpy.convolve
|
||||
scipy.signal.lfilter
|
||||
|
||||
|
||||
TODO: the window parameter could be the window itself if an array instead of a string
|
||||
NOTE: length(output) != length(input), to correct this: return y[(window_len/2-1):-(window_len/2)] instead of just y.
|
||||
"""
|
||||
@@ -62,7 +62,7 @@ def filter_by_confidence_and_thresh(x, fea, thresh):
|
||||
return x[fea]
|
||||
else:
|
||||
return np.NaN
|
||||
|
||||
|
||||
def add_au_emotion(x, emotion,emotion_type,exp_type):
|
||||
"""
|
||||
computing individula emotion expressivity matrix
|
||||
@@ -79,20 +79,20 @@ def add_au_emotion(x, emotion,emotion_type,exp_type):
|
||||
if x[au_c_label]==1 and (not np.isnan(x[au_r_label])): #there are data with face in, but au_c=0
|
||||
sum_r += x[au_r_label]
|
||||
cnt += 6
|
||||
if exp_type=='full' and x[au_c_label]==0: #Logic to compute emotion expressivity when all AU's are present
|
||||
cnt = 0
|
||||
if exp_type=='full' and x[au_c_label]==0: #Logic to compute emotion expressivity when all AU's are present
|
||||
cnt = 0
|
||||
break
|
||||
if cnt > 0:
|
||||
if cnt > 0:
|
||||
sum_r /= cnt
|
||||
else:
|
||||
sum_r = 0
|
||||
v_emo = x[emotion_type] + sum_r
|
||||
v_emo = x[emotion_type] + sum_r
|
||||
else:
|
||||
v_emo = np.NaN
|
||||
error_reason = 'confidence less than 80%'
|
||||
|
||||
|
||||
return v_emo, error_reason
|
||||
|
||||
|
||||
def add_au_occ(x, emotion,emotion_type):
|
||||
"""
|
||||
computing individula emotion presence
|
||||
@@ -107,14 +107,14 @@ def add_au_occ(x, emotion,emotion_type):
|
||||
au_c_label = " AU{:02d}_c".format(au)
|
||||
if x[au_c_label]==1: #there are data with face in, but au_c=0
|
||||
au_pres.append(1)
|
||||
|
||||
|
||||
if len(au_pres) == len(emotion):
|
||||
em_pres = 1
|
||||
else:
|
||||
em_pres = np.NaN
|
||||
error_reason = 'confidence less than 80%'
|
||||
return em_pres, error_reason
|
||||
|
||||
|
||||
def emotion_exp(em_au,of,em_col,err_col):
|
||||
"""
|
||||
Computing individual emotion expressivity and adding it to dataframe
|
||||
@@ -122,14 +122,14 @@ def emotion_exp(em_au,of,em_col,err_col):
|
||||
for emotion in em_au:
|
||||
of[[em_col[0],err_col]]=of.apply(add_au_emotion, args=(emotion,em_col[0],'partial',), axis=1, result_type='expand')
|
||||
of[[em_col[1],err_col]]=of.apply(add_au_emotion, args=(emotion,em_col[1],'full',), axis=1, result_type='expand')
|
||||
|
||||
|
||||
def emotion_pres(em_au,of,em_col,err_col):
|
||||
"""
|
||||
Computing individual emotion expressivity and adding it to dataframe
|
||||
"""
|
||||
for emotion in em_au:
|
||||
of[[em_col,err_col]]=of.apply(add_au_occ, args=(emotion,em_col,), axis=1, result_type='expand')
|
||||
|
||||
|
||||
def calc_of_for_video(of,face_cfg,fe_cfg):
|
||||
"""
|
||||
Creating dataframe for emotion expressivity
|
||||
@@ -142,7 +142,7 @@ def calc_of_for_video(of,face_cfg,fe_cfg):
|
||||
fe_cfg.com_exp_full]
|
||||
of[new_cols] = pd.DataFrame([[0] * len(new_cols)], index=of.index)
|
||||
of[fe_cfg.err_reason] = 'Pass'
|
||||
|
||||
|
||||
#Composite happiness expressivity
|
||||
emotion_exp(face_cfg.happiness,of,[fe_cfg.hap_exp,fe_cfg.hap_exp_full],fe_cfg.err_reason)
|
||||
#Composite sadness expressivity
|
||||
@@ -167,6 +167,10 @@ def calc_of_for_video(of,face_cfg,fe_cfg):
|
||||
emotion_exp(face_cfg.cai,of,[fe_cfg.cai_exp,fe_cfg.cai_exp_full],fe_cfg.err_reason)
|
||||
#Composite Expressivity
|
||||
emotion_exp(face_cfg.ACTION_UNITS,of,[fe_cfg.com_exp,fe_cfg.com_exp_full],fe_cfg.err_reason)
|
||||
#Composite lower face expressivity
|
||||
emotion_exp(face_cfg.LOWER_ACTION_UNITS,of,[fe_cfg.com_lower_exp,fe_cfg.com_lower_exp_full],fe_cfg.err_reason)
|
||||
#Composite upper face Expressivity
|
||||
emotion_exp(face_cfg.UPPER_ACTION_UNITS,of,[fe_cfg.com_upper_exp,fe_cfg.com_upper_exp_full],fe_cfg.err_reason)
|
||||
#AU happiness presence
|
||||
emotion_pres(face_cfg.happiness,of,fe_cfg.happ_occ,fe_cfg.err_reason)
|
||||
#AU Sad presence
|
||||
|
||||
@@ -18,18 +18,20 @@ class ConfigFaceReader(object):
|
||||
Args:
|
||||
service_config_yml (None, optional): yml file defined service configuration
|
||||
"""
|
||||
|
||||
|
||||
if service_config_yml is None:
|
||||
service_config = DBMLIB_FACE_CONFIG
|
||||
else:
|
||||
service_config = service_config_yml
|
||||
|
||||
|
||||
with open(service_config, 'r') as ymlfile:
|
||||
config = yaml.load(ymlfile)
|
||||
self.ACTION_UNITS = config['cdx_face_config']['ACTION_UNITS']
|
||||
self.NEG_ACTION_UNITS = config['cdx_face_config']['NEG_ACTION_UNITS']
|
||||
self.POS_ACTION_UNITS = config['cdx_face_config']['POS_ACTION_UNITS']
|
||||
self.NET_ACTION_UNITS = config['cdx_face_config']['NET_ACTION_UNITS']
|
||||
self.NET_ACTION_UNITS = config['cdx_face_config']['NET_ACTION_UNITS']
|
||||
self.LOWER_ACTION_UNITS = config['cdx_face_config']['LOWER_ACTION_UNITS']
|
||||
self.UPPER_ACTION_UNITS = config['cdx_face_config']['LOWER_ACTION_UNITS']
|
||||
self.happiness = config['cdx_face_config']['happiness']
|
||||
self.sadness = config['cdx_face_config']['sadness']
|
||||
self.surprise = config['cdx_face_config']['surprise']
|
||||
@@ -44,7 +46,7 @@ class ConfigFaceReader(object):
|
||||
self.AU_fl = config['cdx_face_config']['AU_filters']
|
||||
self.au_int = config['cdx_face_config']['au_intensity']
|
||||
self.au_prs = config['cdx_face_config']['au_presence']
|
||||
|
||||
|
||||
def get_action_unit(self):
|
||||
"""Summary
|
||||
Returns:
|
||||
@@ -134,4 +136,4 @@ class ConfigFaceReader(object):
|
||||
Returns:
|
||||
TYPE: end point
|
||||
"""
|
||||
return self.cai
|
||||
return self.cai
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
derive_feature:
|
||||
|
||||
|
||||
#DBM Feature Group
|
||||
FEATURE_GROUP: ['FAC_ASYM', 'FAC_AU', 'FAC_EXP', 'FAC_LMK', 'ACO_INT', 'ACO_FF', 'ACO_HNR', 'ACO_GNE', 'ACO_FM',
|
||||
FEATURE_GROUP: ['FAC_ASYM', 'FAC_AU', 'FAC_EXP', 'FAC_LMK', 'ACO_INT', 'ACO_FF', 'ACO_HNR', 'ACO_GNE', 'ACO_FM',
|
||||
'ACO_JITTER','ACO_SHIMMER', 'ACO_PAUSE', 'ACO_VFS', 'ACO_MFCC', 'MOV_HM', 'MOV_HP', 'EYE_BLINK']
|
||||
|
||||
|
||||
#Feature group output file extensions
|
||||
FAC_ASYM_LOC: _facasym
|
||||
FAC_AU_LOC: _facau
|
||||
@@ -22,31 +22,31 @@ derive_feature:
|
||||
MOV_HM_LOC: _headmov
|
||||
MOV_HP_LOC: _headpose
|
||||
EYE_BLINK_LOC: _eyeblinks
|
||||
|
||||
|
||||
#Facial category feature group
|
||||
FAC_ASYM: ['fac_AsymMaskMouth', 'fac_AsymMaskEyebrow', 'fac_AsymMaskEye', 'fac_AsymMaskCom']
|
||||
FAC_AU: ['fac_AU01int', 'fac_AU02int', 'fac_AU04int', 'fac_AU05int', 'fac_AU06int', 'fac_AU07int', 'fac_AU09int',
|
||||
'fac_AU10int', 'fac_AU12int', 'fac_AU14int', 'fac_AU15int', 'fac_AU17int', 'fac_AU20int', 'fac_AU23int',
|
||||
'fac_AU25int', 'fac_AU26int', 'fac_AU45int', 'fac_AU01pres', 'fac_AU02pres', 'fac_AU04pres', 'fac_AU05pres',
|
||||
'fac_AU06pres', 'fac_AU07pres', 'fac_AU09pres', 'fac_AU10pres', 'fac_AU12pres', 'fac_AU14pres', 'fac_AU15pres',
|
||||
FAC_AU: ['fac_AU01int', 'fac_AU02int', 'fac_AU04int', 'fac_AU05int', 'fac_AU06int', 'fac_AU07int', 'fac_AU09int',
|
||||
'fac_AU10int', 'fac_AU12int', 'fac_AU14int', 'fac_AU15int', 'fac_AU17int', 'fac_AU20int', 'fac_AU23int',
|
||||
'fac_AU25int', 'fac_AU26int', 'fac_AU45int', 'fac_AU01pres', 'fac_AU02pres', 'fac_AU04pres', 'fac_AU05pres',
|
||||
'fac_AU06pres', 'fac_AU07pres', 'fac_AU09pres', 'fac_AU10pres', 'fac_AU12pres', 'fac_AU14pres', 'fac_AU15pres',
|
||||
'fac_AU17pres', 'fac_AU20pres', 'fac_AU23pres', 'fac_AU25pres', 'fac_AU26pres', 'fac_AU28pres', 'fac_AU45pres']
|
||||
FAC_EXP: ['hap_exp', 'sad_exp', 'sur_exp', 'fea_exp', 'ang_exp', 'dis_exp', 'con_exp', 'happ_occ', 'sad_occ',
|
||||
'sur_occ', 'fea_occ', 'ang_occ', 'dis_occ', 'con_occ', 'pos_exp', 'neg_exp', 'com_exp', 'hap_exp_full',
|
||||
'sur_occ', 'fea_occ', 'ang_occ', 'dis_occ', 'con_occ', 'pos_exp', 'neg_exp', 'com_exp','com_lower_exp','com_upper_exp', 'hap_exp_full',
|
||||
'sad_exp_full', 'sur_exp_full','fea_exp_full', 'ang_exp_full', 'dis_exp_full', 'con_exp_full', 'pos_exp_full',
|
||||
'neg_exp_full', 'com_exp_full']
|
||||
FAC_LMK: ['fac_LMK00disp', 'fac_LMK01disp', 'fac_LMK02disp', 'fac_LMK03disp', 'fac_LMK04disp',
|
||||
'fac_LMK05disp', 'fac_LMK06disp', 'fac_LMK07disp', 'fac_LMK08disp', 'fac_LMK09disp', 'fac_LMK10disp',
|
||||
'fac_LMK11disp', 'fac_LMK12disp', 'fac_LMK13disp', 'fac_LMK14disp', 'fac_LMK15disp', 'fac_LMK16disp',
|
||||
'fac_LMK17disp', 'fac_LMK18disp', 'fac_LMK19disp', 'fac_LMK20disp', 'fac_LMK21disp', 'fac_LMK22disp',
|
||||
'fac_LMK23disp', 'fac_LMK24disp', 'fac_LMK25disp', 'fac_LMK26disp', 'fac_LMK27disp', 'fac_LMK28disp',
|
||||
'fac_LMK29disp', 'fac_LMK30disp', 'fac_LMK31disp', 'fac_LMK32disp', 'fac_LMK33disp', 'fac_LMK34disp',
|
||||
'fac_LMK35disp', 'fac_LMK36disp', 'fac_LMK37disp', 'fac_LMK38disp', 'fac_LMK39disp', 'fac_LMK40disp',
|
||||
'fac_LMK41disp', 'fac_LMK42disp', 'fac_LMK43disp', 'fac_LMK44disp', 'fac_LMK45disp', 'fac_LMK46disp',
|
||||
'fac_LMK47disp', 'fac_LMK48disp', 'fac_LMK49disp', 'fac_LMK50disp', 'fac_LMK51disp', 'fac_LMK52disp',
|
||||
'fac_LMK53disp', 'fac_LMK54disp', 'fac_LMK55disp', 'fac_LMK56disp', 'fac_LMK57disp', 'fac_LMK58disp',
|
||||
'fac_LMK59disp', 'fac_LMK60disp', 'fac_LMK61disp', 'fac_LMK62disp', 'fac_LMK63disp', 'fac_LMK64disp',
|
||||
'neg_exp_full', 'com_exp_full','com_lower_exp_full','com_upper_exp_full']
|
||||
FAC_LMK: ['fac_LMK00disp', 'fac_LMK01disp', 'fac_LMK02disp', 'fac_LMK03disp', 'fac_LMK04disp',
|
||||
'fac_LMK05disp', 'fac_LMK06disp', 'fac_LMK07disp', 'fac_LMK08disp', 'fac_LMK09disp', 'fac_LMK10disp',
|
||||
'fac_LMK11disp', 'fac_LMK12disp', 'fac_LMK13disp', 'fac_LMK14disp', 'fac_LMK15disp', 'fac_LMK16disp',
|
||||
'fac_LMK17disp', 'fac_LMK18disp', 'fac_LMK19disp', 'fac_LMK20disp', 'fac_LMK21disp', 'fac_LMK22disp',
|
||||
'fac_LMK23disp', 'fac_LMK24disp', 'fac_LMK25disp', 'fac_LMK26disp', 'fac_LMK27disp', 'fac_LMK28disp',
|
||||
'fac_LMK29disp', 'fac_LMK30disp', 'fac_LMK31disp', 'fac_LMK32disp', 'fac_LMK33disp', 'fac_LMK34disp',
|
||||
'fac_LMK35disp', 'fac_LMK36disp', 'fac_LMK37disp', 'fac_LMK38disp', 'fac_LMK39disp', 'fac_LMK40disp',
|
||||
'fac_LMK41disp', 'fac_LMK42disp', 'fac_LMK43disp', 'fac_LMK44disp', 'fac_LMK45disp', 'fac_LMK46disp',
|
||||
'fac_LMK47disp', 'fac_LMK48disp', 'fac_LMK49disp', 'fac_LMK50disp', 'fac_LMK51disp', 'fac_LMK52disp',
|
||||
'fac_LMK53disp', 'fac_LMK54disp', 'fac_LMK55disp', 'fac_LMK56disp', 'fac_LMK57disp', 'fac_LMK58disp',
|
||||
'fac_LMK59disp', 'fac_LMK60disp', 'fac_LMK61disp', 'fac_LMK62disp', 'fac_LMK63disp', 'fac_LMK64disp',
|
||||
'fac_LMK65disp', 'fac_LMK66disp', 'fac_LMK67disp']
|
||||
|
||||
|
||||
#Acoustic category feature group
|
||||
ACO_INT: ['aco_int']
|
||||
ACO_FF: ['aco_ff']
|
||||
@@ -59,19 +59,19 @@ derive_feature:
|
||||
ACO_VFS: ['aco_voicePct']
|
||||
ACO_MFCC: ['aco_mfcc1','aco_mfcc2','aco_mfcc3','aco_mfcc4','aco_mfcc5','aco_mfcc6','aco_mfcc7','aco_mfcc8','aco_mfcc9',
|
||||
'aco_mfcc10','aco_mfcc11','aco_mfcc12']
|
||||
|
||||
|
||||
#Movement category feature group
|
||||
MOV_HM: ['head_vel']
|
||||
MOV_HP: ['mov_Hpose_Dist','mov_Hpose_Pitch','mov_Hpose_Yaw','mov_Hpose_Roll']
|
||||
EYE_BLINK: ['mov_blink_ear', 'vid_dur', 'mov_blinkdur']
|
||||
|
||||
|
||||
#Calculation for variables
|
||||
# Facial Asymmetry
|
||||
fac_AsymMaskMouth: ['mean', 'std']
|
||||
fac_AsymMaskEyebrow: ['mean', 'std']
|
||||
fac_AsymMaskEye: ['mean', 'std']
|
||||
fac_AsymMaskCom: ['mean', 'std']
|
||||
|
||||
|
||||
#Facial Action Unit
|
||||
fac_AU01int: ['mean', 'std']
|
||||
fac_AU02int: ['mean', 'std']
|
||||
@@ -103,12 +103,12 @@ derive_feature:
|
||||
fac_AU15pres: ['pct']
|
||||
fac_AU17pres: ['pct']
|
||||
fac_AU20pres: ['pct']
|
||||
fac_AU23pres: ['pct']
|
||||
fac_AU23pres: ['pct']
|
||||
fac_AU25pres: ['pct']
|
||||
fac_AU26pres: ['pct']
|
||||
fac_AU28pres: ['pct']
|
||||
fac_AU45pres: ['pct']
|
||||
|
||||
|
||||
#Facial Expressivity
|
||||
hap_exp: ['mean', 'std']
|
||||
sad_exp: ['mean', 'std']
|
||||
@@ -128,8 +128,10 @@ derive_feature:
|
||||
neg_exp: ['mean', 'std', 'pct']
|
||||
neu_exp: ['mean', 'std', 'pct']
|
||||
com_exp: ['mean', 'std', 'pct']
|
||||
com_lower_exp: ['mean','std','pct']
|
||||
com_upper_exp: ['mean','std','pct']
|
||||
hap_exp_full: ['mean', 'std']
|
||||
sad_exp_full: ['mean', 'std']
|
||||
sad_exp_full: ['mean', 'std']
|
||||
sur_exp_full: ['mean', 'std']
|
||||
fea_exp_full: ['mean', 'std']
|
||||
ang_exp_full: ['mean', 'std']
|
||||
@@ -139,7 +141,9 @@ derive_feature:
|
||||
neg_exp_full: ['mean', 'std']
|
||||
neu_exp_full: ['mean', 'std']
|
||||
com_exp_full: ['mean', 'std']
|
||||
|
||||
com_lower_exp_full: ['mean','std']
|
||||
com_upper_exp_full: ['mean', 'std']
|
||||
|
||||
#Facial Landmarks
|
||||
fac_LMK00disp: ['mean', 'std']
|
||||
fac_LMK01disp: ['mean', 'std']
|
||||
@@ -151,7 +155,7 @@ derive_feature:
|
||||
fac_LMK07disp: ['mean', 'std']
|
||||
fac_LMK08disp: ['mean', 'std']
|
||||
fac_LMK09disp: ['mean', 'std']
|
||||
fac_LMK10disp: ['mean', 'std']
|
||||
fac_LMK10disp: ['mean', 'std']
|
||||
fac_LMK11disp: ['mean', 'std']
|
||||
fac_LMK12disp: ['mean', 'std']
|
||||
fac_LMK13disp: ['mean', 'std']
|
||||
@@ -163,22 +167,22 @@ derive_feature:
|
||||
fac_LMK19disp: ['mean', 'std']
|
||||
fac_LMK20disp: ['mean', 'std']
|
||||
fac_LMK21disp: ['mean', 'std']
|
||||
fac_LMK22disp: ['mean', 'std']
|
||||
fac_LMK22disp: ['mean', 'std']
|
||||
fac_LMK23disp: ['mean', 'std']
|
||||
fac_LMK24disp: ['mean', 'std']
|
||||
fac_LMK25disp: ['mean', 'std']
|
||||
fac_LMK26disp: ['mean', 'std']
|
||||
fac_LMK27disp: ['mean', 'std']
|
||||
fac_LMK28disp: ['mean', 'std']
|
||||
fac_LMK29disp: ['mean', 'std']
|
||||
fac_LMK29disp: ['mean', 'std']
|
||||
fac_LMK30disp: ['mean', 'std']
|
||||
fac_LMK31disp: ['mean', 'std']
|
||||
fac_LMK32disp: ['mean', 'std']
|
||||
fac_LMK33disp: ['mean', 'std']
|
||||
fac_LMK34disp: ['mean', 'std']
|
||||
fac_LMK34disp: ['mean', 'std']
|
||||
fac_LMK35disp: ['mean', 'std']
|
||||
fac_LMK36disp: ['mean', 'std']
|
||||
fac_LMK37disp: ['mean', 'std']
|
||||
fac_LMK37disp: ['mean', 'std']
|
||||
fac_LMK38disp: ['mean', 'std']
|
||||
fac_LMK39disp: ['mean', 'std']
|
||||
fac_LMK40disp: ['mean', 'std']
|
||||
@@ -193,7 +197,7 @@ derive_feature:
|
||||
fac_LMK49disp: ['mean', 'std']
|
||||
fac_LMK50disp: ['mean', 'std']
|
||||
fac_LMK51disp: ['mean', 'std']
|
||||
fac_LMK52disp: ['mean', 'std']
|
||||
fac_LMK52disp: ['mean', 'std']
|
||||
fac_LMK53disp: ['mean', 'std']
|
||||
fac_LMK54disp: ['mean', 'std']
|
||||
fac_LMK55disp: ['mean', 'std']
|
||||
@@ -209,7 +213,7 @@ derive_feature:
|
||||
fac_LMK65disp: ['mean', 'std']
|
||||
fac_LMK66disp: ['mean', 'std']
|
||||
fac_LMK67disp: ['mean', 'std']
|
||||
|
||||
|
||||
#Acoustic feature
|
||||
aco_int: ['mean', 'std', 'range']
|
||||
aco_ff: ['mean', 'std', 'range']
|
||||
@@ -238,7 +242,7 @@ derive_feature:
|
||||
aco_mfcc10: ['mean']
|
||||
aco_mfcc11: ['mean']
|
||||
aco_mfcc12: ['mean']
|
||||
|
||||
|
||||
#Movement feature
|
||||
head_vel: ['mean', 'std']
|
||||
mov_Hpose_Dist: ['mean', 'std']
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
raw_feature:
|
||||
#error reason
|
||||
error_reason: error_reason
|
||||
|
||||
|
||||
#Output range
|
||||
mov_headvel_start: 0
|
||||
mov_headvel_end: 200
|
||||
|
||||
|
||||
#Facial markers
|
||||
hap_exp: fac_hapintsoft
|
||||
sad_exp: fac_sadintsoft
|
||||
@@ -26,6 +26,8 @@ raw_feature:
|
||||
neu_exp: neu_exp
|
||||
cai_exp: cai_exp
|
||||
com_exp: fac_comintsoft
|
||||
com_lower_exp: fac_comlowintsoft
|
||||
com_upper_exp: fac_comuppintsoft
|
||||
hap_exp_full: fac_hapinthard
|
||||
sad_exp_full: fac_sadinthard
|
||||
sur_exp_full: fac_surinthard
|
||||
@@ -38,13 +40,15 @@ raw_feature:
|
||||
neu_exp_full: neu_exp_full
|
||||
cai_exp_full: cai_exp_full
|
||||
com_exp_full: fac_cominthard
|
||||
|
||||
com_lower_exp_full: fac_comlowinthard
|
||||
com_upper_exp_full: fac_comuppinthard
|
||||
|
||||
#Facial asymmetry
|
||||
fac_AsymMaskMouth: fac_asymmaskmouth
|
||||
fac_AsymMaskEye: fac_asymmaskeye
|
||||
fac_AsymMaskEyebrow: fac_asymmaskeyebrow
|
||||
fac_AsymMaskCom: fac_asymmaskcom
|
||||
|
||||
|
||||
#Facial landmark
|
||||
fac_LMK00disp: fac_LMK00disp
|
||||
fac_LMK01disp: fac_LMK01disp
|
||||
@@ -114,7 +118,7 @@ raw_feature:
|
||||
fac_LMK65disp: fac_LMK65disp
|
||||
fac_LMK66disp: fac_LMK66disp
|
||||
fac_LMK67disp: fac_LMK67disp
|
||||
|
||||
|
||||
#Facial action unit
|
||||
fac_AU01int: fac_AU01int
|
||||
fac_AU02int: fac_AU02int
|
||||
@@ -151,7 +155,7 @@ raw_feature:
|
||||
fac_AU26pres: fac_AU26pres
|
||||
fac_AU28pres: fac_AU28pres
|
||||
fac_AU45pres: fac_AU45pres
|
||||
|
||||
|
||||
#Verbal markers
|
||||
aco_int: aco_int
|
||||
aco_ff: aco_ff
|
||||
@@ -184,7 +188,7 @@ raw_feature:
|
||||
aco_speakingtime: aco_speakingtime
|
||||
aco_numpauses: aco_numpauses
|
||||
aco_pausefrac: aco_pausefrac
|
||||
|
||||
|
||||
#Movement markers
|
||||
head_vel: mov_headvel
|
||||
mov_blink_ear: mov_blink_ear
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
cdx_face_config:
|
||||
ACTION_UNITS: [[6, 12],[1, 4, 15],[1, 2, 5, 26],[1, 2, 4, 5, 7, 20, 26],[4, 5, 7, 23],[9, 15],[12, 14]]
|
||||
LOWER_ACTION_UNITS: [[12], [15], [26], [20, 26], [23], [15], [12, 14]]
|
||||
UPPER_ACTION_UNITS: [[6], [1, 4], [1, 2, 5], [1, 2, 4, 5, 7], [4, 5, 7], [9]]
|
||||
NEG_ACTION_UNITS: [[1, 4, 15], [1, 2, 4, 5, 7, 20, 26], [4, 5, 7, 23], [9, 15], [12, 14]]
|
||||
POS_ACTION_UNITS: [[6, 12]]
|
||||
NET_ACTION_UNITS: [[1, 2, 5, 26]]
|
||||
@@ -14,12 +16,12 @@ cdx_face_config:
|
||||
SELECTED_FEATURES: AU,POSE
|
||||
face_expr_dir: /video/face_expressivity
|
||||
face_asym_dir: /video/face_asymmetry
|
||||
AU_filters: ['frame', ' face_id', ' timestamp', ' confidence', ' success', ' AU01_r',' AU02_r',' AU04_r',' AU05_r',
|
||||
' AU06_r', ' AU07_r', ' AU09_r', ' AU10_r', ' AU12_r', ' AU14_r', ' AU15_r', ' AU17_r', ' AU20_r',
|
||||
' AU25_r', ' AU26_r', ' AU45_r', ' AU01_c', ' AU02_c', ' AU04_c', ' AU05_c', ' AU06_c', ' AU07_c',
|
||||
AU_filters: ['frame', ' face_id', ' timestamp', ' confidence', ' success', ' AU01_r',' AU02_r',' AU04_r',' AU05_r',
|
||||
' AU06_r', ' AU07_r', ' AU09_r', ' AU10_r', ' AU12_r', ' AU14_r', ' AU15_r', ' AU17_r', ' AU20_r',
|
||||
' AU25_r', ' AU26_r', ' AU45_r', ' AU01_c', ' AU02_c', ' AU04_c', ' AU05_c', ' AU06_c', ' AU07_c',
|
||||
' AU10_c', ' AU12_c', ' AU14_c', ' AU15_c', ' AU17_c', ' AU20_c', ' AU23_c', ' AU25_c', ' AU26_c',
|
||||
' AU28_c', ' AU45_c',' AU09_c',' AU23_r' ]
|
||||
au_intensity: [' AU01_r',' AU02_r',' AU04_r',' AU05_r', ' AU06_r', ' AU07_r', ' AU09_r', ' AU10_r', ' AU12_r',
|
||||
au_intensity: [' AU01_r',' AU02_r',' AU04_r',' AU05_r', ' AU06_r', ' AU07_r', ' AU09_r', ' AU10_r', ' AU12_r',
|
||||
' AU14_r', ' AU15_r', ' AU17_r', ' AU20_r',' AU23_r', ' AU25_r', ' AU26_r', ' AU45_r']
|
||||
au_presence: [' AU01_c', ' AU02_c', ' AU04_c', ' AU05_c', ' AU06_c', ' AU07_c', ' AU09_c', ' AU10_c', ' AU12_c',
|
||||
' AU14_c', ' AU15_c', ' AU17_c', ' AU20_c', ' AU23_c', ' AU25_c', ' AU26_c', ' AU45_c']
|
||||
au_presence: [' AU01_c', ' AU02_c', ' AU04_c', ' AU05_c', ' AU06_c', ' AU07_c', ' AU09_c', ' AU10_c', ' AU12_c',
|
||||
' AU14_c', ' AU15_c', ' AU17_c', ' AU20_c', ' AU23_c', ' AU25_c', ' AU26_c', ' AU45_c']
|
||||
|
||||
Reference in New Issue
Block a user