├── .gitignore ├── README.md ├── capsule ├── __init__.py ├── data │ ├── __init__.py │ ├── dataset.py │ └── me.py ├── evaluations │ ├── __init__.py │ └── eval.py ├── loss │ ├── __init__.py │ └── losses.py ├── modules │ ├── __init__.py │ ├── activations.py │ ├── capsule_layers.py │ └── capsule_net.py └── utils │ ├── __init__.py │ ├── notifications.py │ └── utils.py ├── datasets ├── CASME2-ObjectiveClasses.xlsx ├── CASME2-coding-20140508.xlsx ├── SAMM_Micro_FACS_Codes_v2.xlsx ├── SMIC-HS-E_annotation.xlsx ├── SMIC-HS-E_annotation_orig.xlsx ├── casme2_five_frames.csv ├── casme_apex.csv ├── combined_3_class_gt.csv ├── combined_3class_gt.csv ├── data_apex.csv ├── data_five_frames.csv ├── data_four_frames.csv ├── samm_apex.csv ├── samm_five_frames.csv ├── smic_apex.csv ├── smic_five_frames.csv └── ~$SMIC-HS-E_annotation.xlsx ├── get_result_log.py ├── outputs ├── scores_capsule_resnet_sampled_fer_freeze.pkl ├── scores_capsule_resnet_sampled_freeze.pkl ├── scores_capsule_vgg_sampled.pkl ├── scores_capsule_vgg_sampled_fer.pkl ├── scores_capsule_vgg_sampled_fer_freeze.pkl ├── scores_capsule_vgg_sampled_fer_not_freeze.pkl ├── scores_capsule_vgg_sampled_freeze.pkl ├── scores_cnn_resnet_no_macro.pkl └── scores_cnn_vgg11_no_macro.pkl ├── result_log.csv ├── result_log_reproduced.csv ├── smic_processing.py ├── train_me_loso.py ├── train_me_loso_baseline.py └── trained ├── model.pt ├── model_state.pt └── scores_capsule_resnet_sampled_fer_freeze.pkl /.gitignore: -------------------------------------------------------------------------------- 1 | # Byte-compiled / optimized / DLL files 2 | __pycache__/ 3 | *.py[cod] 4 | *$py.class 5 | 6 | # C extensions 7 | *.so 8 | 9 | # Distribution / packaging 10 | .Python 11 | env/ 12 | build/ 13 | develop-eggs/ 14 | dist/ 15 | downloads/ 16 | eggs/ 17 | .eggs/ 18 | lib/ 19 | lib64/ 20 | parts/ 21 | sdist/ 22 | var/ 23 | wheels/ 24 | *.egg-info/ 25 | .installed.cfg 26 | *.egg 27 | 28 | # PyInstaller 29 | # Usually these files are written by a python script from a template 30 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 31 | *.manifest 32 | *.spec 33 | 34 | # Installer logs 35 | pip-log.txt 36 | pip-delete-this-directory.txt 37 | 38 | # Unit test / coverage reports 39 | htmlcov/ 40 | .tox/ 41 | .coverage 42 | .coverage.* 43 | .cache 44 | nosetests.xml 45 | coverage.xml 46 | *.cover 47 | .hypothesis/ 48 | 49 | # Translations 50 | *.mo 51 | *.pot 52 | 53 | # Django stuff: 54 | *.log 55 | local_settings.py 56 | 57 | # Flask stuff: 58 | instance/ 59 | .webassets-cache 60 | 61 | # Scrapy stuff: 62 | .scrapy 63 | 64 | # Sphinx documentation 65 | docs/_build/ 66 | 67 | # PyBuilder 68 | target/ 69 | 70 | # Jupyter Notebook 71 | .ipynb_checkpoints 72 | 73 | # pyenv 74 | .python-version 75 | 76 | # celery beat schedule file 77 | celerybeat-schedule 78 | 79 | # SageMath parsed files 80 | *.sage.py 81 | 82 | # dotenv 83 | .env 84 | 85 | # virtualenv 86 | .venv 87 | venv/ 88 | ENV/ 89 | 90 | # Spyder project settings 91 | .spyderproject 92 | .spyproject 93 | 94 | # Rope project settings 95 | .ropeproject 96 | 97 | # mkdocs documentation 98 | /site 99 | 100 | # mypy 101 | .mypy_cache/ 102 | 103 | .DS_Store 104 | 105 | .vscode 106 | 107 | .idea 108 | 109 | *.pyc -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # CapsuleNet for Micro-expression Recognition 2 | 3 | ## Description 4 | > This is the source code for the paper **CapsuleNet for Micro-expression Recognition** joining the second Facial 5 | Micro-Expression Grand Challenge for Micro-expression Recognition Task. 6 | If you find this code useful, please kindly cite the our paper as follows: 7 | 8 | ``` 9 | # Bibtex 10 | @INPROCEEDINGS{Quang2019Capsulenet, 11 | author={N. V. {Quang} and J. {Chun} and T. {Tokuyama}}, 12 | booktitle={2019 14th IEEE International Conference on Automatic Face Gesture Recognition (FG 2019)}, 13 | title={CapsuleNet for Micro-Expression Recognition}, 14 | year={2019}, 15 | volume={}, 16 | number={}, 17 | pages={1-7},} 18 | 19 | 20 | 21 | 22 | # Plain text 23 | N. V. Quang, J. Chun and T. Tokuyama, "CapsuleNet for Micro-Expression Recognition," 2019 14th IEEE International Conference on Automatic Face & Gesture Recognition (FG 2019), Lille, France, 2019, pp. 1-7, doi: 10.1109/FG.2019.8756544. 24 | ``` 25 | 26 | 27 | 28 | 29 | ## The log file result 30 | > `result_log.csv`. 31 | ``` 32 | # the reproduced log file result 33 | > `result_log_reproduced.csv`. 34 | ``` 35 | ### Some missing and invalid clips 36 | 37 | There are 7 clip files which are missing or invalid. 38 | 39 | * The below clips don't exist in the downloaded datasets 40 | ``` 41 | smic/HS_long/SMIC_HS_E/s03/s3_ne_03 not exists 42 | smic/HS_long/SMIC_HS_E/s03/s3_ne_20 not exists 43 | smic/HS_long/SMIC_HS_E/s04/s4_ne_05 not exists 44 | smic/HS_long/SMIC_HS_E/s04/s4_ne_06 not exists 45 | smic/HS_long/SMIC_HS_E/s09/s9_sur_02 not exists 46 | ``` 47 | 48 | * The invalid clips in which the apex frames are out of onset-offset duration 49 | 50 | ``` 51 | samm/28/028_4_1 52 | samm/32/032_3_1 53 | ``` 54 | 55 | 56 | ## Requirements 57 | * Python 3 58 | * PyTorch 59 | * TorchVision 60 | * TQDM 61 | 62 | ## Usage 63 | Run the following script to reproduce the result in the log file. 64 | 65 | ```bash 66 | python train_me_loso.py 67 | python get_result_log.py 68 | ``` 69 | 70 | ## Project Structure 71 | 72 | * `smic_processing.py`: Preprocess the SMIC dataset: detect the apex frames. 73 | * `train_me_loso.py`: Perform LOSO cross-validation on our proposed model. 74 | * `train_me_loso_baseline.py`: Perform LOSO cross-validation on baseline models (ResNet18, VGG11). 75 | * `get_result_log.py`: Write the result log file from the pickle file. 76 | * `capsule`: The package for building CapsuleNet and Loss. 77 | 78 | -------------------------------------------------------------------------------- /capsule/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidnvq/me_recognition/cd46da69f9933ac8523e8701e1e2795451d29dfd/capsule/__init__.py -------------------------------------------------------------------------------- /capsule/data/__init__.py: -------------------------------------------------------------------------------- 1 | from .dataset import Dataset 2 | from .dataset import * 3 | from .me import * -------------------------------------------------------------------------------- /capsule/data/dataset.py: -------------------------------------------------------------------------------- 1 | import os 2 | import sys 3 | import random 4 | 5 | import torch 6 | import torch.utils.data as data 7 | import torchvision.transforms as transforms 8 | import pandas as pd 9 | import numpy as np 10 | 11 | from PIL import Image 12 | 13 | 14 | class Dataset(data.Dataset): 15 | 16 | def __init__(self, root, img_paths, img_labels, transform=None, get_aux=False, aux=None): 17 | """Load image paths and labels from gt_file""" 18 | self.root = root 19 | self.transform = transform 20 | self.get_aux = get_aux 21 | self.img_paths = img_paths 22 | self.img_labels = img_labels 23 | self.aux = aux 24 | 25 | def __getitem__(self, idx): 26 | """Load image. 27 | 28 | Args: 29 | idx (int): image idx. 30 | 31 | Returns: 32 | img (tensor): image tensor 33 | 34 | """ 35 | img_path = self.img_paths[idx] 36 | img = Image.open(os.path.join(self.root, img_path)).convert('RGB') 37 | label = self.img_labels[idx] 38 | 39 | if self.transform: 40 | img = self.transform(img) 41 | 42 | if not self.get_aux: 43 | return img, label 44 | else: 45 | return img, label, self.aux[idx] 46 | 47 | def __len__(self): 48 | return len(self.img_paths) 49 | 50 | 51 | def get_triple_meta_data(file_path): 52 | df = pd.read_csv(file_path) 53 | on_paths = list(df.on_frame_path) 54 | apex_paths = list(df.apex_frame_path) 55 | off_paths = list(df.off_frame_path) 56 | 57 | paths = [(on, apex, off) for (on, apex, off) in zip(on_paths, apex_paths, off_paths)] 58 | labels = list(df.label) 59 | return paths, labels 60 | 61 | 62 | def get_meta_data(df): 63 | paths = list(df.apex_frame_path) 64 | labels = list(df.label) 65 | 66 | return paths, labels 67 | 68 | 69 | def data_split(file_path, subject_out_idx=0): 70 | """Split dataset into train set and validation set 71 | """ 72 | # data, subject, clipID, label, apex_frame, apex_frame_path 73 | data_sub_column = 'data_sub' 74 | 75 | df = pd.read_csv(file_path) 76 | subject_list = list(df[data_sub_column].unique()) 77 | subject_out = subject_list[subject_out_idx] 78 | print('subject_out', subject_out) 79 | df_train = df[df[data_sub_column] != subject_out] 80 | df_val = df[df[data_sub_column] == subject_out] 81 | 82 | return df_train, df_val 83 | 84 | 85 | def upsample_subdata(df, df_four, number=4): 86 | result = df.copy() 87 | for i in range(df.shape[0]): 88 | quotient = number // 1 89 | remainder = number % 1 90 | remainder = 1 if np.random.rand() < remainder else 0 91 | value = quotient + remainder 92 | 93 | tmp = df_four[df_four['data_sub'] == df.iloc[i]['data_sub']] 94 | tmp = tmp[tmp['clip'] == df.iloc[i]['clip']] 95 | value = min(value, tmp.shape[0]) 96 | tmp = tmp.sample(int(value)) 97 | result = pd.concat([result, tmp]) 98 | return result 99 | 100 | 101 | def sample_data(df, df_four): 102 | df_neg = df[df.label == 0] 103 | df_pos = df[df.label == 1] 104 | df_sur = df[df.label == 2] 105 | 106 | num_sur = 4 107 | num_pos = 5 * df_sur.shape[0] / df_pos.shape[0] - 1 108 | num_neg = 5 * df_sur.shape[0] / df_neg.shape[0] - 1 109 | 110 | df_neg = upsample_subdata(df_neg, df_four, num_neg) 111 | df_pos = upsample_subdata(df_pos, df_four, num_pos) 112 | df_sur = upsample_subdata(df_sur, df_four, num_sur) 113 | print('df_neg', df_neg.shape) 114 | print('df_pos', df_pos.shape) 115 | print('df_sur', df_sur.shape) 116 | 117 | df = pd.concat([df_neg, df_pos, df_sur]) 118 | return df 119 | 120 | -------------------------------------------------------------------------------- /capsule/data/me.py: -------------------------------------------------------------------------------- 1 | import torch 2 | import pandas as pd 3 | from sklearn.utils import shuffle 4 | from torchvision import transforms 5 | from .dataset import data_split, sample_data, get_meta_data, Dataset 6 | 7 | data_apex_frame_path = 'datasets/data_apex.csv' 8 | data_four_frames_path = 'datasets/data_four_frames.csv' 9 | data_root = '/home/ubuntu/Datasets/MEGC/process/' 10 | 11 | 12 | def load_me_data(data_root, file_path, subject_out_idx, batch_size=32, num_workers=4): 13 | df_train, df_val = data_split(file_path, subject_out_idx) 14 | df_four = pd.read_csv(data_four_frames_path) 15 | df_train_sampled = sample_data(df_train, df_four) 16 | df_train_sampled = shuffle(df_train_sampled) 17 | 18 | train_paths, train_labels = get_meta_data(df_train_sampled) 19 | 20 | train_transforms = transforms.Compose([transforms.Resize((234, 240)), 21 | transforms.RandomRotation(degrees=(-8, 8)), 22 | transforms.RandomHorizontalFlip(), 23 | transforms.ColorJitter(brightness=0.2, contrast=0.2, 24 | saturation=0.2, hue=0.2), 25 | transforms.RandomCrop((224, 224)), 26 | transforms.ToTensor()]) 27 | 28 | train_dataset = Dataset(root=data_root, 29 | img_paths=train_paths, 30 | img_labels=train_labels, 31 | transform=train_transforms) 32 | 33 | val_transforms = transforms.Compose([transforms.Resize((234, 240)), 34 | transforms.RandomRotation(degrees=(-8, 8)), 35 | transforms.CenterCrop((224, 224)), 36 | transforms.ToTensor()]) 37 | 38 | val_paths, val_labels = get_meta_data(df_val) 39 | 40 | val_dataset = Dataset(root=data_root, 41 | img_paths=val_paths, 42 | img_labels=val_labels, 43 | transform=val_transforms) 44 | 45 | train_loader = torch.utils.data.DataLoader(dataset=train_dataset, 46 | batch_size=batch_size, 47 | num_workers=num_workers, 48 | shuffle=True) 49 | 50 | val_loader = torch.utils.data.DataLoader(dataset=val_dataset, 51 | batch_size=batch_size, 52 | num_workers=num_workers, 53 | shuffle=False) 54 | return train_loader, val_loader 55 | -------------------------------------------------------------------------------- /capsule/evaluations/__init__.py: -------------------------------------------------------------------------------- 1 | from .eval import UF1, UARecall, Meter 2 | -------------------------------------------------------------------------------- /capsule/evaluations/eval.py: -------------------------------------------------------------------------------- 1 | import torch 2 | import numpy as np 3 | import torch.nn as nn 4 | from sklearn.metrics import recall_score, f1_score 5 | 6 | class Meter(object): 7 | 8 | def __init__(self): 9 | """ 10 | To record the measure the performance. 11 | """ 12 | self.Y_true = np.array([], dtype=np.int) 13 | self.Y_pred = np.array([], dtype=np.int) 14 | 15 | 16 | def add(self, y_true, y_pred, verbose=False): 17 | if len(self.Y_true.shape) != len(y_true.shape): 18 | print('shape self.Y_true', self.Y_true.shape) 19 | print('y_true', y_true.shape) 20 | 21 | self.Y_true = np.concatenate((self.Y_true, y_true)) 22 | self.Y_pred = np.concatenate((self.Y_pred, y_pred)) 23 | 24 | def reset(self): 25 | self.Y_true = np.array([], dtype=np.int) 26 | self.Y_pred = np.array([], dtype=np.int) 27 | 28 | def value(self): 29 | eye = np.eye(3, dtype=np.int) 30 | Y_true = eye[self.Y_true] 31 | Y_pred = eye[self.Y_pred] 32 | uar = recall_score(Y_true, Y_pred, average=None) 33 | uf1 = f1_score(Y_true, Y_pred, average=None) 34 | return uar, uf1 35 | 36 | 37 | class UF1(nn.Module): 38 | 39 | def __init__(self): 40 | super(UF1, self).__init__() 41 | 42 | 43 | def forward(self, outputs, targets): 44 | """Compute Unweighted F1 score on k folds of LOSO 45 | Args: 46 | outputs (list): [k folds] 47 | targets (list): [k folds] 48 | 49 | Returns: 50 | UF1 = F1c/C 51 | """ 52 | 53 | k_folds = len(outputs) 54 | num_classes = outputs[0].size(1) 55 | UF1 = 0.0 56 | for c in range(num_classes): 57 | TPc, FPc, FNc = 0.0, 0.0, 0.0 58 | 59 | for fold in range(k_folds): 60 | res = self.compute_on_fold(outputs[fold][:, c], targets[fold][:, c]) 61 | TPc += res[0] 62 | FPc += res[1] 63 | FNc += res[2] 64 | 65 | F1c = (2*TPc) / (2 * TPc + FPc + FNc) 66 | 67 | UF1 += F1c / num_classes 68 | return UF1 69 | 70 | @staticmethod 71 | def compute_on_fold(output, target): 72 | """ 73 | Args 74 | output (torch.tensor): [1, 0, 1, 1, 1] 75 | target (torch.tensor): [1, 1, 1, 1, 0] 76 | Returns: 77 | (TP, FP, FN): True Positive, False Positive, False Negative 78 | TP = 3, FP = 1, FN = 1 79 | """ 80 | output = output >= 0.5 81 | target = target >= 0.5 82 | 83 | TP = target.__and__(output).sum() 84 | FP = (1 - target).__and__(output).sum() 85 | FN = target.__and__(1 - output).sum() 86 | return TP.float(), FP.float(), FN.float() 87 | 88 | 89 | class UARecall(nn.Module): 90 | 91 | def __init__(self): 92 | super(UARecall, self).__init__() 93 | 94 | def forward(self, outputs, targets): 95 | """Compute Unweighted Average Recall 96 | Args: 97 | outputs: 98 | targets: 99 | Returns: 100 | UAR = 1/C * sum (Acc_c) where Acc_c is per-class accuracy: Acc_c = TPc/n_c 101 | """ 102 | num_classes = outputs.size(1) 103 | UAR = 0.0 104 | 105 | for c in range(num_classes): 106 | Acc_c = self.compute_acc(outputs[:, c], targets[:, c]) 107 | UAR += Acc_c / float(num_classes) 108 | return UAR 109 | 110 | @staticmethod 111 | def compute_acc(output, target): 112 | output = output >= 0.5 113 | target = target >= 0.5 114 | 115 | TP = target.__and__(output).sum() 116 | Nc = len(target) 117 | if Nc == 0: 118 | print('Nc = 0! and TP = ', TP) 119 | else: 120 | print("NC is not Zero", Nc, 'while TP=', TP) 121 | acc = TP.float() / Nc 122 | return acc 123 | 124 | -------------------------------------------------------------------------------- /capsule/loss/__init__.py: -------------------------------------------------------------------------------- 1 | from .losses import * 2 | -------------------------------------------------------------------------------- /capsule/loss/losses.py: -------------------------------------------------------------------------------- 1 | import torch 2 | 3 | 4 | def me_loss(y_true, y_pred): 5 | """ 6 | The loss function 7 | :param y_true: (tensor) of shape [N, num_classes] 8 | :param y_pred: (tensor) of shape [N, num_classes] 9 | :return: 10 | """ 11 | L = y_true * torch.clamp(0.99 - y_pred, min=0.) ** 2 + \ 12 | 0.5 * (1 - y_true) * torch.clamp(y_pred - 0.01, min=0.) ** 2 13 | 14 | # class_weights = torch.tensor([1.0, 10.97, 8.43]).cuda() 15 | # L = L * class_weights 16 | 17 | L_margin = L.sum(dim=1).mean() 18 | # print('loss:', L.sum(dim=0)) 19 | return L_margin 20 | -------------------------------------------------------------------------------- /capsule/modules/__init__.py: -------------------------------------------------------------------------------- 1 | from .activations import squash 2 | from .capsule_layers import * 3 | from .capsule_net import * -------------------------------------------------------------------------------- /capsule/modules/activations.py: -------------------------------------------------------------------------------- 1 | import torch 2 | 3 | 4 | def squash(inputs, axis=-1): 5 | """ 6 | Do squashing 7 | :param inputs (tensor): tensor of dim [M, num_capsules, capsule_dim] 8 | :param axis: the dim to apply squash 9 | :return: 10 | (tensor): squashed tensor of dim [M, num_capsules, capsule_dim] 11 | """ 12 | norm = torch.norm(inputs, p=2, dim=axis, keepdim=True) 13 | scale = norm ** 2 / (1 + norm ** 2) / (norm + 1e-8) 14 | return scale * inputs 15 | 16 | -------------------------------------------------------------------------------- /capsule/modules/capsule_layers.py: -------------------------------------------------------------------------------- 1 | import torch 2 | import torch.nn as nn 3 | import torch.nn.functional as F 4 | 5 | from .activations import squash 6 | 7 | class PrimaryCapsule(nn.Module): 8 | """ 9 | Apply Conv2D with `out_channels` and then reshape to get capsules 10 | :param in_channels: input channels 11 | :param out_channels: output channels 12 | :param dim_caps: dimension of capsule 13 | :param kernel_size: kernel size 14 | :return: output tensor, size=[batch, num_caps, dim_caps] 15 | """ 16 | def __init__(self, in_channels, out_channels, dim_caps, kernel_size, stride=1, padding=0): 17 | super(PrimaryCapsule, self).__init__() 18 | self.dim_caps = dim_caps 19 | self.conv2d = nn.Conv2d(in_channels, out_channels, kernel_size=kernel_size, stride=stride, padding=padding) 20 | 21 | def forward(self, x): 22 | outputs = self.conv2d(x) 23 | outputs = outputs.permute(0, 2, 3, 1).contiguous() # I add 24 | outputs = outputs.view(x.size(0), -1, self.dim_caps) 25 | return squash(outputs) 26 | 27 | 28 | 29 | class MECapsule(nn.Module): 30 | """ 31 | The ME capsule layer. Dense layer has `in_num` inputs, each is a scalar, the 32 | output of the neuron from the former layer, and it has `out_num` output neurons. 33 | MECapsule just expands the output of the neuron from scalar to vector. 34 | :param in_num_caps: number of cpasules inputted to this layer 35 | :param in_dim_caps: dimension of input capsules 36 | :param out_num_caps: number of capsules outputted from this layer 37 | :param out_dim_caps: dimension of output capsules 38 | :param routings: number of iterations for the routing algorithm 39 | """ 40 | def __init__(self, in_num_caps, in_dim_caps, out_num_caps, out_dim_caps, routings=3): 41 | super(MECapsule, self).__init__() 42 | self.in_num_caps = in_num_caps 43 | self.in_dim_caps = in_dim_caps 44 | self.out_num_caps = out_num_caps 45 | self.out_dim_caps = out_dim_caps 46 | self.routings = routings 47 | self.weight = nn.Parameter(0.01 * torch.randn(out_num_caps, in_num_caps, out_dim_caps, in_dim_caps)) 48 | 49 | def forward(self, x): 50 | x_hat = torch.squeeze(torch.matmul(self.weight, x[:, None, :, :, None]), dim=-1) 51 | x_hat_detached = x_hat.detach() 52 | 53 | b = torch.zeros(x.size(0), self.out_num_caps, self.in_num_caps).cuda() 54 | 55 | for i in range(self.routings): 56 | c = F.softmax(b, dim=1) 57 | 58 | if i == self.routings - 1: 59 | outputs = squash(torch.sum(c[:, :, :, None] * x_hat, dim=-2, keepdim=True)) 60 | else: 61 | outputs = squash(torch.sum(c[:, :, :, None] * x_hat_detached, dim=-2, keepdim=True)) 62 | b = b + torch.sum(outputs * x_hat_detached, dim=-1) 63 | 64 | return torch.squeeze(outputs, dim=-2) -------------------------------------------------------------------------------- /capsule/modules/capsule_net.py: -------------------------------------------------------------------------------- 1 | import torch 2 | import torch.nn as nn 3 | import torch.nn.functional as F 4 | from .capsule_layers import PrimaryCapsule, MECapsule 5 | from .activations import squash 6 | from torchvision import models 7 | 8 | 9 | class ResNetLayers(nn.Module): 10 | def __init__(self, is_freeze=False): 11 | super(ResNetLayers, self).__init__() 12 | self.model = models.resnet18(pretrained=True) 13 | delattr(self.model, 'layer4') 14 | delattr(self.model, 'avgpool') 15 | delattr(self.model, 'fc') 16 | 17 | if is_freeze: 18 | for index, p in enumerate(self.model.parameters()): 19 | if index == 15: 20 | break 21 | p.requires_grad = False 22 | 23 | def forward(self, x): 24 | output = self.model.conv1(x) 25 | output = self.model.bn1(output) 26 | output = self.model.relu(output) 27 | output = self.model.layer1(output) 28 | output = self.model.layer2(output) 29 | output = self.model.layer3(output) 30 | return output 31 | 32 | 33 | class VGGLayers(nn.Module): 34 | def __init__(self, is_freeze=True): 35 | super(VGGLayers, self).__init__() 36 | self.model = models.vgg11(pretrained=True).features[:11] 37 | 38 | if is_freeze: 39 | for i in range(4): 40 | for p in self.model[i].parameters(): 41 | p.requires_grad = False 42 | 43 | def forward(self, x): 44 | # x = [B, 3, 224, 224] 45 | return self.model(x) # [B, 256, 20, 20] 46 | 47 | 48 | backbone = {'vgg': VGGLayers, 'resnet': ResNetLayers} 49 | 50 | 51 | class MECapsuleNet(nn.Module): 52 | """ 53 | A Capsule Network on Micro-expression. 54 | :param input_size: data size = [channels, width, height] 55 | :param classes: number of classes 56 | :param routings: number of routing iterations 57 | Shape: 58 | - Input: (batch, channels, width, height), optional (batch, classes) . 59 | - Output:((batch, classes), (batch, channels, width, height)) 60 | """ 61 | 62 | def __init__(self, input_size, classes, routings, conv_name='resnet', is_freeze=True): 63 | super(MECapsuleNet, self).__init__() 64 | self.input_size = input_size 65 | self.classes = classes 66 | self.routings = routings 67 | 68 | self.conv = backbone[conv_name](is_freeze) 69 | 70 | self.conv1 = nn.Conv2d(256, 256, kernel_size=9, stride=1, padding=0) 71 | 72 | self.primarycaps = PrimaryCapsule(256, 32 * 8, 8, kernel_size=9, stride=2, padding=0) 73 | 74 | self.digitcaps = MECapsule(in_num_caps=32 * 6 * 6, 75 | in_dim_caps=8, 76 | out_num_caps=self.classes, 77 | out_dim_caps=16, 78 | routings=routings) 79 | 80 | self.relu = nn.ReLU() 81 | 82 | def forward(self, x, y=None): 83 | x = self.conv(x) 84 | x = self.relu(self.conv1(x)) 85 | x = self.primarycaps(x) 86 | x = self.digitcaps(x) 87 | length = x.norm(dim=-1) 88 | return length 89 | -------------------------------------------------------------------------------- /capsule/utils/__init__.py: -------------------------------------------------------------------------------- 1 | from .utils import Saver 2 | from .utils import one_hot_encode -------------------------------------------------------------------------------- /capsule/utils/notifications.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidnvq/me_recognition/cd46da69f9933ac8523e8701e1e2795451d29dfd/capsule/utils/notifications.py -------------------------------------------------------------------------------- /capsule/utils/utils.py: -------------------------------------------------------------------------------- 1 | import os 2 | import torch 3 | import numpy as np 4 | import moviepy.editor as mpy 5 | 6 | 7 | def one_hot_encode(labels, num_classes=None): 8 | if num_classes is None: 9 | num_classes = len(labels.unique()) 10 | 11 | return torch.eye(num_classes, dtype=torch.long).index_select(dim=0, index=labels) 12 | 13 | 14 | def make_gif(images, fname, duration=1, true_image=False): 15 | def make_frame(t): 16 | try: 17 | x = images[int(len(images) / duration * t)] 18 | except: 19 | x = images[-1] 20 | 21 | if true_image: 22 | return x.astype(np.uint8) 23 | else: 24 | return ((x + 1) / 2 * 255).astype(np.uint8) 25 | 26 | clip = mpy.VideoClip(make_frame, duration=duration) 27 | clip.write_gif(fname, fps=len(images) / duration) 28 | 29 | 30 | class Saver(object): 31 | 32 | def __init__(self, save_dir="./checkpoints", args="", 33 | train_parallel=False, save_modes=['epoch', 'best']): 34 | self.save_dir = save_dir 35 | self.args = args 36 | self.train_parallel = train_parallel 37 | self.save_modes = save_modes 38 | self.history = [] 39 | self.best_acc = 0.0 40 | 41 | if not os.path.exists(self.save_dir): 42 | os.makedirs(self.save_dir) 43 | 44 | 45 | def save_module(self, module, file_name=None): 46 | """Save module only""" 47 | file_name = "module" if file_name is None else file_name 48 | 49 | file_path = os.path.join(self.save_dir, file_name) 50 | torch.save(module.state_dict(), file_path) 51 | 52 | 53 | def save_model(self, model, epoch, accuracy): 54 | """Save the checkpoint 55 | 56 | Args: 57 | model (nn.Module): The model 58 | epoch (int): The current epoch 59 | accuracy (int): the current accuracy 60 | """ 61 | self.history.append([epoch, accuracy]) 62 | 63 | for save_mode in self.save_modes: 64 | if save_mode == 'epoch': 65 | file_name = 'model_epoch_%i_acc_%.3f.pth' % (epoch, accuracy) 66 | elif save_mode == 'best': 67 | file_name = 'resnet_model_best_acc_epoch%d_%.3f.pth' % (epoch, accuracy) 68 | if self.best_acc < accuracy: 69 | self.best_acc = accuracy 70 | else: 71 | continue 72 | else: 73 | raise TypeError("Invalid save_mode! Please set values: 'epoch' or 'best'.") 74 | 75 | self._save_checkpoint(model, file_name, epoch, accuracy) 76 | 77 | 78 | def _save_checkpoint(self, model, file_name, epoch, accuracy): 79 | if self.train_parallel: 80 | state_dict = model.module.state_dict() 81 | else: 82 | state_dict = model.state_dict() 83 | 84 | checkpoint = { 85 | "model" : state_dict, 86 | "epoch" : epoch, 87 | "accuracy": accuracy, 88 | "args" : self.args, 89 | "history" : self.history 90 | } 91 | 92 | model_path = os.path.join(self.save_dir, file_name) 93 | torch.save(checkpoint, model_path) 94 | -------------------------------------------------------------------------------- /datasets/CASME2-ObjectiveClasses.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidnvq/me_recognition/cd46da69f9933ac8523e8701e1e2795451d29dfd/datasets/CASME2-ObjectiveClasses.xlsx -------------------------------------------------------------------------------- /datasets/CASME2-coding-20140508.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidnvq/me_recognition/cd46da69f9933ac8523e8701e1e2795451d29dfd/datasets/CASME2-coding-20140508.xlsx -------------------------------------------------------------------------------- /datasets/SAMM_Micro_FACS_Codes_v2.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidnvq/me_recognition/cd46da69f9933ac8523e8701e1e2795451d29dfd/datasets/SAMM_Micro_FACS_Codes_v2.xlsx -------------------------------------------------------------------------------- /datasets/SMIC-HS-E_annotation.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidnvq/me_recognition/cd46da69f9933ac8523e8701e1e2795451d29dfd/datasets/SMIC-HS-E_annotation.xlsx -------------------------------------------------------------------------------- /datasets/SMIC-HS-E_annotation_orig.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidnvq/me_recognition/cd46da69f9933ac8523e8701e1e2795451d29dfd/datasets/SMIC-HS-E_annotation_orig.xlsx -------------------------------------------------------------------------------- /datasets/casme_apex.csv: -------------------------------------------------------------------------------- 1 | data,subject,clip,label,onset_frame,apex_frame,offset_frame,onset_frame_path,apex_frame_path,offset_frame_path 2 | casme2,sub01,EP02_01f,1,46,59,86,casme2/sub01/EP02_01f/img46.jpg,casme2/sub01/EP02_01f/img59.jpg,casme2/sub01/EP02_01f/img86.jpg 3 | casme2,sub01,EP19_05f,0,396,416,446,casme2/sub01/EP19_05f/img396.jpg,casme2/sub01/EP19_05f/img416.jpg,casme2/sub01/EP19_05f/img446.jpg 4 | casme2,sub01,EP19_06f,0,36,71,161,casme2/sub01/EP19_06f/img36.jpg,casme2/sub01/EP19_06f/img71.jpg,casme2/sub01/EP19_06f/img161.jpg 5 | casme2,sub02,EP01_11f,0,46,91,96,casme2/sub02/EP01_11f/img46.jpg,casme2/sub02/EP01_11f/img91.jpg,casme2/sub02/EP01_11f/img96.jpg 6 | casme2,sub02,EP02_04f,0,31,79,141,casme2/sub02/EP02_04f/img31.jpg,casme2/sub02/EP02_04f/img79.jpg,casme2/sub02/EP02_04f/img141.jpg 7 | casme2,sub02,EP03_02f,0,16,81,136,casme2/sub02/EP03_02f/img16.jpg,casme2/sub02/EP03_02f/img81.jpg,casme2/sub02/EP03_02f/img136.jpg 8 | casme2,sub02,EP06_01f,0,56,121,155,casme2/sub02/EP06_01f/img56.jpg,casme2/sub02/EP06_01f/img121.jpg,casme2/sub02/EP06_01f/img155.jpg 9 | casme2,sub02,EP06_02f,0,36,64,111,casme2/sub02/EP06_02f/img36.jpg,casme2/sub02/EP06_02f/img64.jpg,casme2/sub02/EP06_02f/img111.jpg 10 | casme2,sub02,EP09_01,1,26,56,125,casme2/sub02/EP09_01/img26.jpg,casme2/sub02/EP09_01/img56.jpg,casme2/sub02/EP09_01/img125.jpg 11 | casme2,sub02,EP11_01,2,16,69,106,casme2/sub02/EP11_01/img16.jpg,casme2/sub02/EP11_01/img69.jpg,casme2/sub02/EP11_01/img106.jpg 12 | casme2,sub02,EP13_04,2,21,51,76,casme2/sub02/EP13_04/img21.jpg,casme2/sub02/EP13_04/img51.jpg,casme2/sub02/EP13_04/img76.jpg 13 | casme2,sub02,EP14_01,2,81,114,126,casme2/sub02/EP14_01/img81.jpg,casme2/sub02/EP14_01/img114.jpg,casme2/sub02/EP14_01/img126.jpg 14 | casme2,sub03,EP01_2,2,51,69,91,casme2/sub03/EP01_2/img51.jpg,casme2/sub03/EP01_2/img69.jpg,casme2/sub03/EP01_2/img91.jpg 15 | casme2,sub03,EP07_04,0,21,81,106,casme2/sub03/EP07_04/img21.jpg,casme2/sub03/EP07_04/img81.jpg,casme2/sub03/EP07_04/img106.jpg 16 | casme2,sub03,EP09_03,0,61,76,121,casme2/sub03/EP09_03/img61.jpg,casme2/sub03/EP09_03/img76.jpg,casme2/sub03/EP09_03/img121.jpg 17 | casme2,sub03,EP18_06,0,26,81,126,casme2/sub03/EP18_06/img26.jpg,casme2/sub03/EP18_06/img81.jpg,casme2/sub03/EP18_06/img126.jpg 18 | casme2,sub03,EP19_08,0,101,121,141,casme2/sub03/EP19_08/img101.jpg,casme2/sub03/EP19_08/img121.jpg,casme2/sub03/EP19_08/img141.jpg 19 | casme2,sub04,EP12_02f,0,356,387,406,casme2/sub04/EP12_02f/img356.jpg,casme2/sub04/EP12_02f/img387.jpg,casme2/sub04/EP12_02f/img406.jpg 20 | casme2,sub04,EP13_06f,0,71,108,161,casme2/sub04/EP13_06f/img71.jpg,casme2/sub04/EP13_06f/img108.jpg,casme2/sub04/EP13_06f/img161.jpg 21 | casme2,sub05,EP02_07,2,36,66,101,casme2/sub05/EP02_07/img36.jpg,casme2/sub05/EP02_07/img66.jpg,casme2/sub05/EP02_07/img101.jpg 22 | casme2,sub05,EP03_01,1,41,81,101,casme2/sub05/EP03_01/img41.jpg,casme2/sub05/EP03_01/img81.jpg,casme2/sub05/EP03_01/img101.jpg 23 | casme2,sub05,EP03_06,2,33,66,83,casme2/sub05/EP03_06/img33.jpg,casme2/sub05/EP03_06/img66.jpg,casme2/sub05/EP03_06/img83.jpg 24 | casme2,sub05,EP04_05,2,16,44,66,casme2/sub05/EP04_05/img16.jpg,casme2/sub05/EP04_05/img44.jpg,casme2/sub05/EP04_05/img66.jpg 25 | casme2,sub05,EP04_06,2,6,49,91,casme2/sub05/EP04_06/img6.jpg,casme2/sub05/EP04_06/img49.jpg,casme2/sub05/EP04_06/img91.jpg 26 | casme2,sub05,EP12_03f,2,11,36,61,casme2/sub05/EP12_03f/img11.jpg,casme2/sub05/EP12_03f/img36.jpg,casme2/sub05/EP12_03f/img61.jpg 27 | casme2,sub06,EP01_01,1,81,111,136,casme2/sub06/EP01_01/img81.jpg,casme2/sub06/EP01_01/img111.jpg,casme2/sub06/EP01_01/img136.jpg 28 | casme2,sub06,EP02_31,2,99,131,148,casme2/sub06/EP02_31/img99.jpg,casme2/sub06/EP02_31/img131.jpg,casme2/sub06/EP02_31/img148.jpg 29 | casme2,sub06,EP15_02,2,56,79,106,casme2/sub06/EP15_02/img56.jpg,casme2/sub06/EP15_02/img79.jpg,casme2/sub06/EP15_02/img106.jpg 30 | casme2,sub06,EP16_05,0,94,114,151,casme2/sub06/EP16_05/img94.jpg,casme2/sub06/EP16_05/img114.jpg,casme2/sub06/EP16_05/img151.jpg 31 | casme2,sub07,EP01_01,0,79,109,156,casme2/sub07/EP01_01/img79.jpg,casme2/sub07/EP01_01/img109.jpg,casme2/sub07/EP01_01/img156.jpg 32 | casme2,sub07,EP06_02_01,0,11,66,91,casme2/sub07/EP06_02_01/img11.jpg,casme2/sub07/EP06_02_01/img66.jpg,casme2/sub07/EP06_02_01/img91.jpg 33 | casme2,sub07,EP06_02_02,0,36,81,91,casme2/sub07/EP06_02_02/img36.jpg,casme2/sub07/EP06_02_02/img81.jpg,casme2/sub07/EP06_02_02/img91.jpg 34 | casme2,sub07,EP08_02,0,141,174,191,casme2/sub07/EP08_02/img141.jpg,casme2/sub07/EP08_02/img174.jpg,casme2/sub07/EP08_02/img191.jpg 35 | casme2,sub07,EP15_01,0,36,64,91,casme2/sub07/EP15_01/img36.jpg,casme2/sub07/EP15_01/img64.jpg,casme2/sub07/EP15_01/img91.jpg 36 | casme2,sub08,EP13_01f,0,49,86,126,casme2/sub08/EP13_01f/img49.jpg,casme2/sub08/EP13_01f/img86.jpg,casme2/sub08/EP13_01f/img126.jpg 37 | casme2,sub09,EP02_01f,1,21,74,91,casme2/sub09/EP02_01f/img21.jpg,casme2/sub09/EP02_01f/img74.jpg,casme2/sub09/EP02_01f/img91.jpg 38 | casme2,sub09,EP05_05,1,46,84,96,casme2/sub09/EP05_05/img46.jpg,casme2/sub09/EP05_05/img84.jpg,casme2/sub09/EP05_05/img96.jpg 39 | casme2,sub09,EP06_01f,0,66,144,186,casme2/sub09/EP06_01f/img66.jpg,casme2/sub09/EP06_01f/img144.jpg,casme2/sub09/EP06_01f/img186.jpg 40 | casme2,sub09,EP06_02f,1,36,101,131,casme2/sub09/EP06_02f/img36.jpg,casme2/sub09/EP06_02f/img101.jpg,casme2/sub09/EP06_02f/img131.jpg 41 | casme2,sub09,EP09_04,0,26,71,146,casme2/sub09/EP09_04/img26.jpg,casme2/sub09/EP09_04/img71.jpg,casme2/sub09/EP09_04/img146.jpg 42 | casme2,sub09,EP09_05,0,26,81,111,casme2/sub09/EP09_05/img26.jpg,casme2/sub09/EP09_05/img81.jpg,casme2/sub09/EP09_05/img111.jpg 43 | casme2,sub09,EP09f,1,26,64,86,casme2/sub09/EP09f/img26.jpg,casme2/sub09/EP09f/img64.jpg,casme2/sub09/EP09f/img86.jpg 44 | casme2,sub09,EP13_01,0,31,74,121,casme2/sub09/EP13_01/img31.jpg,casme2/sub09/EP13_01/img74.jpg,casme2/sub09/EP13_01/img121.jpg 45 | casme2,sub09,EP15_05,1,56,91,111,casme2/sub09/EP15_05/img56.jpg,casme2/sub09/EP15_05/img91.jpg,casme2/sub09/EP15_05/img111.jpg 46 | casme2,sub09,EP17_08,0,6,41,76,casme2/sub09/EP17_08/img6.jpg,casme2/sub09/EP17_08/img41.jpg,casme2/sub09/EP17_08/img76.jpg 47 | casme2,sub11,EP08_01f,0,96,121,146,casme2/sub11/EP08_01f/img96.jpg,casme2/sub11/EP08_01f/img121.jpg,casme2/sub11/EP08_01f/img146.jpg 48 | casme2,sub11,EP13_02f,0,51,111,141,casme2/sub11/EP13_02f/img51.jpg,casme2/sub11/EP13_02f/img111.jpg,casme2/sub11/EP13_02f/img141.jpg 49 | casme2,sub11,EP13_03f,0,6,49,81,casme2/sub11/EP13_03f/img6.jpg,casme2/sub11/EP13_03f/img49.jpg,casme2/sub11/EP13_03f/img81.jpg 50 | casme2,sub11,EP13_05f,0,16,61,111,casme2/sub11/EP13_05f/img16.jpg,casme2/sub11/EP13_05f/img61.jpg,casme2/sub11/EP13_05f/img111.jpg 51 | casme2,sub12,EP01_02,0,31,99,106,casme2/sub12/EP01_02/img31.jpg,casme2/sub12/EP01_02/img99.jpg,casme2/sub12/EP01_02/img106.jpg 52 | casme2,sub12,EP02_05,2,41,61,140,casme2/sub12/EP02_05/img41.jpg,casme2/sub12/EP02_05/img61.jpg,casme2/sub12/EP02_05/img140.jpg 53 | casme2,sub12,EP03_04,1,60,129,156,casme2/sub12/EP03_04/img60.jpg,casme2/sub12/EP03_04/img129.jpg,casme2/sub12/EP03_04/img156.jpg 54 | casme2,sub12,EP04_16,0,36,56,135,casme2/sub12/EP04_16/img36.jpg,casme2/sub12/EP04_16/img56.jpg,casme2/sub12/EP04_16/img135.jpg 55 | casme2,sub12,EP06_06,2,36,76,111,casme2/sub12/EP06_06/img36.jpg,casme2/sub12/EP06_06/img76.jpg,casme2/sub12/EP06_06/img111.jpg 56 | casme2,sub12,EP08_01,2,46,81,106,casme2/sub12/EP08_01/img46.jpg,casme2/sub12/EP08_01/img81.jpg,casme2/sub12/EP08_01/img106.jpg 57 | casme2,sub12,EP08_03,2,76,114,156,casme2/sub12/EP08_03/img76.jpg,casme2/sub12/EP08_03/img114.jpg,casme2/sub12/EP08_03/img156.jpg 58 | casme2,sub12,EP08_07,1,111,134,186,casme2/sub12/EP08_07/img111.jpg,casme2/sub12/EP08_07/img134.jpg,casme2/sub12/EP08_07/img186.jpg 59 | casme2,sub12,EP09_02,0,16,59,101,casme2/sub12/EP09_02/img16.jpg,casme2/sub12/EP09_02/img59.jpg,casme2/sub12/EP09_02/img101.jpg 60 | casme2,sub12,EP09_06,0,66,111,111,casme2/sub12/EP09_06/img66.jpg,casme2/sub12/EP09_06/img111.jpg,casme2/sub12/EP09_06/img111.jpg 61 | casme2,sub12,EP16_02,0,136,189,226,casme2/sub12/EP16_02/img136.jpg,casme2/sub12/EP16_02/img189.jpg,casme2/sub12/EP16_02/img226.jpg 62 | casme2,sub13,EP03_01,1,31,86,111,casme2/sub13/EP03_01/img31.jpg,casme2/sub13/EP03_01/img86.jpg,casme2/sub13/EP03_01/img111.jpg 63 | casme2,sub13,EP09_10,1,51,76,126,casme2/sub13/EP09_10/img51.jpg,casme2/sub13/EP09_10/img76.jpg,casme2/sub13/EP09_10/img126.jpg 64 | casme2,sub14,EP09_03,1,6,29,41,casme2/sub14/EP09_03/img6.jpg,casme2/sub14/EP09_03/img29.jpg,casme2/sub14/EP09_03/img41.jpg 65 | casme2,sub14,EP09_04,1,21,71,106,casme2/sub14/EP09_04/img21.jpg,casme2/sub14/EP09_04/img71.jpg,casme2/sub14/EP09_04/img106.jpg 66 | casme2,sub14,EP09_06,1,11,59,91,casme2/sub14/EP09_06/img11.jpg,casme2/sub14/EP09_06/img59.jpg,casme2/sub14/EP09_06/img91.jpg 67 | casme2,sub15,EP03_02,1,16,49,76,casme2/sub15/EP03_02/img16.jpg,casme2/sub15/EP03_02/img49.jpg,casme2/sub15/EP03_02/img76.jpg 68 | casme2,sub15,EP04_02,2,21,46,111,casme2/sub15/EP04_02/img21.jpg,casme2/sub15/EP04_02/img46.jpg,casme2/sub15/EP04_02/img111.jpg 69 | casme2,sub15,EP08_02,0,21,54,78,casme2/sub15/EP08_02/img21.jpg,casme2/sub15/EP08_02/img54.jpg,casme2/sub15/EP08_02/img78.jpg 70 | casme2,sub16,EP01_05,1,66,106,156,casme2/sub16/EP01_05/img66.jpg,casme2/sub16/EP01_05/img106.jpg,casme2/sub16/EP01_05/img156.jpg 71 | casme2,sub16,EP01_08,0,73,94,110,casme2/sub16/EP01_08/img73.jpg,casme2/sub16/EP01_08/img94.jpg,casme2/sub16/EP01_08/img110.jpg 72 | casme2,sub16,EP04_02f,1,181,269,271,casme2/sub16/EP04_02f/img181.jpg,casme2/sub16/EP04_02f/img269.jpg,casme2/sub16/EP04_02f/img271.jpg 73 | casme2,sub17,EP01_06,1,81,86,121,casme2/sub17/EP01_06/img81.jpg,casme2/sub17/EP01_06/img86.jpg,casme2/sub17/EP01_06/img121.jpg 74 | casme2,sub17,EP01_13,2,76,134,166,casme2/sub17/EP01_13/img76.jpg,casme2/sub17/EP01_13/img134.jpg,casme2/sub17/EP01_13/img166.jpg 75 | casme2,sub17,EP01_15,1,86,101,126,casme2/sub17/EP01_15/img86.jpg,casme2/sub17/EP01_15/img101.jpg,casme2/sub17/EP01_15/img126.jpg 76 | casme2,sub17,EP02_01,0,91,119,136,casme2/sub17/EP02_01/img91.jpg,casme2/sub17/EP02_01/img119.jpg,casme2/sub17/EP02_01/img136.jpg 77 | casme2,sub17,EP02_03,0,81,109,131,casme2/sub17/EP02_03/img81.jpg,casme2/sub17/EP02_03/img109.jpg,casme2/sub17/EP02_03/img131.jpg 78 | casme2,sub17,EP02_11,0,161,181,210,casme2/sub17/EP02_11/img161.jpg,casme2/sub17/EP02_11/img181.jpg,casme2/sub17/EP02_11/img210.jpg 79 | casme2,sub17,EP02_18f,0,91,134,181,casme2/sub17/EP02_18f/img91.jpg,casme2/sub17/EP02_18f/img134.jpg,casme2/sub17/EP02_18f/img181.jpg 80 | casme2,sub17,EP03_02,0,118,139,161,casme2/sub17/EP03_02/img118.jpg,casme2/sub17/EP03_02/img139.jpg,casme2/sub17/EP03_02/img161.jpg 81 | casme2,sub17,EP03_09,1,96,132,161,casme2/sub17/EP03_09/img96.jpg,casme2/sub17/EP03_09/img132.jpg,casme2/sub17/EP03_09/img161.jpg 82 | casme2,sub17,EP05_02,1,25,91,121,casme2/sub17/EP05_02/img25.jpg,casme2/sub17/EP05_02/img91.jpg,casme2/sub17/EP05_02/img121.jpg 83 | casme2,sub17,EP05_03,1,21,56,101,casme2/sub17/EP05_03/img21.jpg,casme2/sub17/EP05_03/img56.jpg,casme2/sub17/EP05_03/img101.jpg 84 | casme2,sub17,EP05_03f,0,11,59,76,casme2/sub17/EP05_03f/img11.jpg,casme2/sub17/EP05_03f/img59.jpg,casme2/sub17/EP05_03f/img76.jpg 85 | casme2,sub17,EP05_04,0,6,39,71,casme2/sub17/EP05_04/img6.jpg,casme2/sub17/EP05_04/img39.jpg,casme2/sub17/EP05_04/img71.jpg 86 | casme2,sub17,EP05_09,0,121,144,196,casme2/sub17/EP05_09/img121.jpg,casme2/sub17/EP05_09/img144.jpg,casme2/sub17/EP05_09/img196.jpg 87 | casme2,sub17,EP05_10,0,111,129,151,casme2/sub17/EP05_10/img111.jpg,casme2/sub17/EP05_10/img129.jpg,casme2/sub17/EP05_10/img151.jpg 88 | casme2,sub17,EP06_04,0,71,91,161,casme2/sub17/EP06_04/img71.jpg,casme2/sub17/EP06_04/img91.jpg,casme2/sub17/EP06_04/img161.jpg 89 | casme2,sub17,EP06_07,1,216,225,246,casme2/sub17/EP06_07/img216.jpg,casme2/sub17/EP06_07/img225.jpg,casme2/sub17/EP06_07/img246.jpg 90 | casme2,sub17,EP06_08,0,156,194,231,casme2/sub17/EP06_08/img156.jpg,casme2/sub17/EP06_08/img194.jpg,casme2/sub17/EP06_08/img231.jpg 91 | casme2,sub17,EP07_01,0,21,71,115,casme2/sub17/EP07_01/img21.jpg,casme2/sub17/EP07_01/img71.jpg,casme2/sub17/EP07_01/img115.jpg 92 | casme2,sub17,EP08_02,0,21,66,88,casme2/sub17/EP08_02/img21.jpg,casme2/sub17/EP08_02/img66.jpg,casme2/sub17/EP08_02/img88.jpg 93 | casme2,sub17,EP10_06,0,104,121,161,casme2/sub17/EP10_06/img104.jpg,casme2/sub17/EP10_06/img121.jpg,casme2/sub17/EP10_06/img161.jpg 94 | casme2,sub17,EP11_01,0,9,31,53,casme2/sub17/EP11_01/img9.jpg,casme2/sub17/EP11_01/img31.jpg,casme2/sub17/EP11_01/img53.jpg 95 | casme2,sub17,EP11_02,0,36,81,121,casme2/sub17/EP11_02/img36.jpg,casme2/sub17/EP11_02/img81.jpg,casme2/sub17/EP11_02/img121.jpg 96 | casme2,sub17,EP12_03,0,131,156,184,casme2/sub17/EP12_03/img131.jpg,casme2/sub17/EP12_03/img156.jpg,casme2/sub17/EP12_03/img184.jpg 97 | casme2,sub17,EP13_03,0,51,79,136,casme2/sub17/EP13_03/img51.jpg,casme2/sub17/EP13_03/img79.jpg,casme2/sub17/EP13_03/img136.jpg 98 | casme2,sub17,EP13_04,0,86,104,121,casme2/sub17/EP13_04/img86.jpg,casme2/sub17/EP13_04/img104.jpg,casme2/sub17/EP13_04/img121.jpg 99 | casme2,sub17,EP13_06,0,86,109,131,casme2/sub17/EP13_06/img86.jpg,casme2/sub17/EP13_06/img109.jpg,casme2/sub17/EP13_06/img131.jpg 100 | casme2,sub17,EP13_09,1,6,46,101,casme2/sub17/EP13_09/img6.jpg,casme2/sub17/EP13_09/img46.jpg,casme2/sub17/EP13_09/img101.jpg 101 | casme2,sub17,EP15_04,0,109,131,185,casme2/sub17/EP15_04/img109.jpg,casme2/sub17/EP15_04/img131.jpg,casme2/sub17/EP15_04/img185.jpg 102 | casme2,sub17,EP16_01f,0,8,29,71,casme2/sub17/EP16_01f/img8.jpg,casme2/sub17/EP16_01f/img29.jpg,casme2/sub17/EP16_01f/img71.jpg 103 | casme2,sub17,EP18_07,0,36,69,103,casme2/sub17/EP18_07/img36.jpg,casme2/sub17/EP18_07/img69.jpg,casme2/sub17/EP18_07/img103.jpg 104 | casme2,sub19,EP01_01f,1,121,189,220,casme2/sub19/EP01_01f/img121.jpg,casme2/sub19/EP01_01f/img189.jpg,casme2/sub19/EP01_01f/img220.jpg 105 | casme2,sub19,EP01_02f,1,36,61,127,casme2/sub19/EP01_02f/img36.jpg,casme2/sub19/EP01_02f/img61.jpg,casme2/sub19/EP01_02f/img127.jpg 106 | casme2,sub19,EP02_01,2,91,119,151,casme2/sub19/EP02_01/img91.jpg,casme2/sub19/EP02_01/img119.jpg,casme2/sub19/EP02_01/img151.jpg 107 | casme2,sub19,EP06_01f,2,146,174,201,casme2/sub19/EP06_01f/img146.jpg,casme2/sub19/EP06_01f/img174.jpg,casme2/sub19/EP06_01f/img201.jpg 108 | casme2,sub19,EP08_02,1,76,119,155,casme2/sub19/EP08_02/img76.jpg,casme2/sub19/EP08_02/img119.jpg,casme2/sub19/EP08_02/img155.jpg 109 | casme2,sub19,EP11_04f,2,76,96,131,casme2/sub19/EP11_04f/img76.jpg,casme2/sub19/EP11_04f/img96.jpg,casme2/sub19/EP11_04f/img131.jpg 110 | casme2,sub19,EP13_01,0,71,104,156,casme2/sub19/EP13_01/img71.jpg,casme2/sub19/EP13_01/img104.jpg,casme2/sub19/EP13_01/img156.jpg 111 | casme2,sub19,EP16_01,0,86,109,136,casme2/sub19/EP16_01/img86.jpg,casme2/sub19/EP16_01/img109.jpg,casme2/sub19/EP16_01/img136.jpg 112 | casme2,sub19,EP16_02,0,61,79,101,casme2/sub19/EP16_02/img61.jpg,casme2/sub19/EP16_02/img79.jpg,casme2/sub19/EP16_02/img101.jpg 113 | casme2,sub19,EP19_02,2,106,129,151,casme2/sub19/EP19_02/img106.jpg,casme2/sub19/EP19_02/img129.jpg,casme2/sub19/EP19_02/img151.jpg 114 | casme2,sub19,EP19_03,2,61,91,116,casme2/sub19/EP19_03/img61.jpg,casme2/sub19/EP19_03/img91.jpg,casme2/sub19/EP19_03/img116.jpg 115 | casme2,sub20,EP01_03,0,76,101,126,casme2/sub20/EP01_03/img76.jpg,casme2/sub20/EP01_03/img101.jpg,casme2/sub20/EP01_03/img126.jpg 116 | casme2,sub20,EP06_03,0,31,49,61,casme2/sub20/EP06_03/img31.jpg,casme2/sub20/EP06_03/img49.jpg,casme2/sub20/EP06_03/img61.jpg 117 | casme2,sub21,EP05_02,0,111,141,206,casme2/sub21/EP05_02/img111.jpg,casme2/sub21/EP05_02/img141.jpg,casme2/sub21/EP05_02/img206.jpg 118 | casme2,sub22,EP01_12,0,50,119,146,casme2/sub22/EP01_12/img50.jpg,casme2/sub22/EP01_12/img119.jpg,casme2/sub22/EP01_12/img146.jpg 119 | casme2,sub22,EP13_08,0,151,216,256,casme2/sub22/EP13_08/img151.jpg,casme2/sub22/EP13_08/img216.jpg,casme2/sub22/EP13_08/img256.jpg 120 | casme2,sub23,EP02_01,1,36,86,130,casme2/sub23/EP02_01/img36.jpg,casme2/sub23/EP02_01/img86.jpg,casme2/sub23/EP02_01/img130.jpg 121 | casme2,sub23,EP03_14f,0,51,91,111,casme2/sub23/EP03_14f/img51.jpg,casme2/sub23/EP03_14f/img91.jpg,casme2/sub23/EP03_14f/img111.jpg 122 | casme2,sub23,EP04_03f,0,16,91,115,casme2/sub23/EP04_03f/img16.jpg,casme2/sub23/EP04_03f/img91.jpg,casme2/sub23/EP04_03f/img115.jpg 123 | casme2,sub23,EP05_24f,0,106,141,171,casme2/sub23/EP05_24f/img106.jpg,casme2/sub23/EP05_24f/img141.jpg,casme2/sub23/EP05_24f/img171.jpg 124 | casme2,sub23,EP05_25f,0,51,86,131,casme2/sub23/EP05_25f/img51.jpg,casme2/sub23/EP05_25f/img86.jpg,casme2/sub23/EP05_25f/img131.jpg 125 | casme2,sub23,EP12_02f,0,46,84,130,casme2/sub23/EP12_02f/img46.jpg,casme2/sub23/EP12_02f/img84.jpg,casme2/sub23/EP12_02f/img130.jpg 126 | casme2,sub23,EP12_03,0,86,129,161,casme2/sub23/EP12_03/img86.jpg,casme2/sub23/EP12_03/img129.jpg,casme2/sub23/EP12_03/img161.jpg 127 | casme2,sub23,EP13_04,0,21,41,86,casme2/sub23/EP13_04/img21.jpg,casme2/sub23/EP13_04/img41.jpg,casme2/sub23/EP13_04/img86.jpg 128 | casme2,sub24,EP01_08,0,33,69,131,casme2/sub24/EP01_08/img33.jpg,casme2/sub24/EP01_08/img69.jpg,casme2/sub24/EP01_08/img131.jpg 129 | casme2,sub24,EP02_02f,0,71,94,106,casme2/sub24/EP02_02f/img71.jpg,casme2/sub24/EP02_02f/img94.jpg,casme2/sub24/EP02_02f/img106.jpg 130 | casme2,sub24,EP18_03,2,53,76,88,casme2/sub24/EP18_03/img53.jpg,casme2/sub24/EP18_03/img76.jpg,casme2/sub24/EP18_03/img88.jpg 131 | casme2,sub25,EP09_02,0,76,101,111,casme2/sub25/EP09_02/img76.jpg,casme2/sub25/EP09_02/img101.jpg,casme2/sub25/EP09_02/img111.jpg 132 | casme2,sub25,EP10_01,0,101,129,176,casme2/sub25/EP10_01/img101.jpg,casme2/sub25/EP10_01/img129.jpg,casme2/sub25/EP10_01/img176.jpg 133 | casme2,sub25,EP10_10,2,61,91,158,casme2/sub25/EP10_10/img61.jpg,casme2/sub25/EP10_10/img91.jpg,casme2/sub25/EP10_10/img158.jpg 134 | casme2,sub25,EP12_01,2,131,151,186,casme2/sub25/EP12_01/img131.jpg,casme2/sub25/EP12_01/img151.jpg,casme2/sub25/EP12_01/img186.jpg 135 | casme2,sub25,EP18_04f,0,76,116,116,casme2/sub25/EP18_04f/img76.jpg,casme2/sub25/EP18_04f/img116.jpg,casme2/sub25/EP18_04f/img116.jpg 136 | casme2,sub26,EP03_10,1,116,149,201,casme2/sub26/EP03_10/img116.jpg,casme2/sub26/EP03_10/img149.jpg,casme2/sub26/EP03_10/img201.jpg 137 | casme2,sub26,EP09_04,0,31,56,91,casme2/sub26/EP09_04/img31.jpg,casme2/sub26/EP09_04/img56.jpg,casme2/sub26/EP09_04/img91.jpg 138 | casme2,sub26,EP09_09,0,46,76,101,casme2/sub26/EP09_09/img46.jpg,casme2/sub26/EP09_09/img76.jpg,casme2/sub26/EP09_09/img101.jpg 139 | casme2,sub26,EP13_02,1,32,54,116,casme2/sub26/EP13_02/img32.jpg,casme2/sub26/EP13_02/img54.jpg,casme2/sub26/EP13_02/img116.jpg 140 | casme2,sub26,EP13_11,0,20,59,101,casme2/sub26/EP13_11/img20.jpg,casme2/sub26/EP13_11/img59.jpg,casme2/sub26/EP13_11/img101.jpg 141 | casme2,sub26,EP16_01,0,26,54,76,casme2/sub26/EP16_01/img26.jpg,casme2/sub26/EP16_01/img54.jpg,casme2/sub26/EP16_01/img76.jpg 142 | casme2,sub26,EP18_44,0,11,36,71,casme2/sub26/EP18_44/img11.jpg,casme2/sub26/EP18_44/img36.jpg,casme2/sub26/EP18_44/img71.jpg 143 | casme2,sub26,EP18_47,0,6,49,86,casme2/sub26/EP18_47/img6.jpg,casme2/sub26/EP18_47/img49.jpg,casme2/sub26/EP18_47/img86.jpg 144 | casme2,sub26,EP18_49,0,16,54,80,casme2/sub26/EP18_49/img16.jpg,casme2/sub26/EP18_49/img54.jpg,casme2/sub26/EP18_49/img80.jpg 145 | casme2,sub26,EP18_50,0,78,99,161,casme2/sub26/EP18_50/img78.jpg,casme2/sub26/EP18_50/img99.jpg,casme2/sub26/EP18_50/img161.jpg 146 | casme2,sub26,EP18_51,0,21,64,81,casme2/sub26/EP18_51/img21.jpg,casme2/sub26/EP18_51/img64.jpg,casme2/sub26/EP18_51/img81.jpg 147 | -------------------------------------------------------------------------------- /datasets/combined_3_class_gt.csv: -------------------------------------------------------------------------------- 1 | data,subject,clip,label 2 | casme2,sub01,EP02_01f,1 3 | casme2,sub01,EP19_05f,0 4 | casme2,sub01,EP19_06f,0 5 | casme2,sub02,EP01_11f,0 6 | casme2,sub02,EP02_04f,0 7 | casme2,sub02,EP03_02f,0 8 | casme2,sub02,EP06_01f,0 9 | casme2,sub02,EP06_02f,0 10 | casme2,sub02,EP09_01,1 11 | casme2,sub02,EP11_01,2 12 | casme2,sub02,EP13_04,2 13 | casme2,sub02,EP14_01,2 14 | casme2,sub03,EP01_2,2 15 | casme2,sub03,EP07_04,0 16 | casme2,sub03,EP09_03,0 17 | casme2,sub03,EP18_06,0 18 | casme2,sub03,EP19_08,0 19 | casme2,sub04,EP12_02f,0 20 | casme2,sub04,EP13_06f,0 21 | casme2,sub05,EP02_07,2 22 | casme2,sub05,EP03_01,1 23 | casme2,sub05,EP03_06,2 24 | casme2,sub05,EP04_05,2 25 | casme2,sub05,EP04_06,2 26 | casme2,sub05,EP12_03f,2 27 | casme2,sub06,EP01_01,1 28 | casme2,sub06,EP02_31,2 29 | casme2,sub06,EP15_02,2 30 | casme2,sub06,EP16_05,0 31 | casme2,sub07,EP01_01,0 32 | casme2,sub07,EP06_02_01,0 33 | casme2,sub07,EP06_02_02,0 34 | casme2,sub07,EP08_02,0 35 | casme2,sub07,EP15_01,0 36 | casme2,sub08,EP13_01f,0 37 | casme2,sub09,EP02_01f,1 38 | casme2,sub09,EP05_05,1 39 | casme2,sub09,EP06_01f,0 40 | casme2,sub09,EP06_02f,1 41 | casme2,sub09,EP09_04,0 42 | casme2,sub09,EP09_05,0 43 | casme2,sub09,EP09f,1 44 | casme2,sub09,EP13_01,0 45 | casme2,sub09,EP15_05,1 46 | casme2,sub09,EP17_08,0 47 | casme2,sub11,EP08_01f,0 48 | casme2,sub11,EP13_02f,0 49 | casme2,sub11,EP13_03f,0 50 | casme2,sub11,EP13_05f,0 51 | casme2,sub12,EP01_02,0 52 | casme2,sub12,EP02_05,2 53 | casme2,sub12,EP03_04,1 54 | casme2,sub12,EP04_16,0 55 | casme2,sub12,EP06_06,2 56 | casme2,sub12,EP08_01,2 57 | casme2,sub12,EP08_03,2 58 | casme2,sub12,EP08_07,1 59 | casme2,sub12,EP09_02,0 60 | casme2,sub12,EP09_06,0 61 | casme2,sub12,EP16_02,0 62 | casme2,sub13,EP03_01,1 63 | casme2,sub13,EP09_10,1 64 | casme2,sub14,EP09_03,1 65 | casme2,sub14,EP09_04,1 66 | casme2,sub14,EP09_06,1 67 | casme2,sub15,EP03_02,1 68 | casme2,sub15,EP04_02,2 69 | casme2,sub15,EP08_02,0 70 | casme2,sub16,EP01_05,1 71 | casme2,sub16,EP01_08,0 72 | casme2,sub16,EP04_02f,1 73 | casme2,sub17,EP01_06,1 74 | casme2,sub17,EP01_13,2 75 | casme2,sub17,EP01_15,1 76 | casme2,sub17,EP02_01,0 77 | casme2,sub17,EP02_03,0 78 | casme2,sub17,EP02_11,0 79 | casme2,sub17,EP02_18f,0 80 | casme2,sub17,EP03_02,0 81 | casme2,sub17,EP03_09,1 82 | casme2,sub17,EP05_02,1 83 | casme2,sub17,EP05_03,1 84 | casme2,sub17,EP05_03f,0 85 | casme2,sub17,EP05_04,0 86 | casme2,sub17,EP05_09,0 87 | casme2,sub17,EP05_10,0 88 | casme2,sub17,EP06_04,0 89 | casme2,sub17,EP06_07,1 90 | casme2,sub17,EP06_08,0 91 | casme2,sub17,EP07_01,0 92 | casme2,sub17,EP08_02,0 93 | casme2,sub17,EP10_06,0 94 | casme2,sub17,EP11_01,0 95 | casme2,sub17,EP11_02,0 96 | casme2,sub17,EP12_03,0 97 | casme2,sub17,EP13_03,0 98 | casme2,sub17,EP13_04,0 99 | casme2,sub17,EP13_06,0 100 | casme2,sub17,EP13_09,1 101 | casme2,sub17,EP15_04,0 102 | casme2,sub17,EP16_01f,0 103 | casme2,sub17,EP18_07,0 104 | casme2,sub19,EP01_01f,1 105 | casme2,sub19,EP01_02f,1 106 | casme2,sub19,EP02_01,2 107 | casme2,sub19,EP06_01f,2 108 | casme2,sub19,EP08_02,1 109 | casme2,sub19,EP11_04f,2 110 | casme2,sub19,EP13_01,0 111 | casme2,sub19,EP16_01,0 112 | casme2,sub19,EP16_02,0 113 | casme2,sub19,EP19_02,2 114 | casme2,sub19,EP19_03,2 115 | casme2,sub20,EP01_03,0 116 | casme2,sub20,EP06_03,0 117 | casme2,sub21,EP05_02,0 118 | casme2,sub22,EP01_12,0 119 | casme2,sub22,EP13_08,0 120 | casme2,sub23,EP02_01,1 121 | casme2,sub23,EP03_14f,0 122 | casme2,sub23,EP04_03f,0 123 | casme2,sub23,EP05_24f,0 124 | casme2,sub23,EP05_25f,0 125 | casme2,sub23,EP12_02f,0 126 | casme2,sub23,EP12_03,0 127 | casme2,sub23,EP13_04,0 128 | casme2,sub24,EP01_08,0 129 | casme2,sub24,EP02_02f,0 130 | casme2,sub24,EP18_03,2 131 | casme2,sub25,EP09_02,0 132 | casme2,sub25,EP10_01,0 133 | casme2,sub25,EP10_10,2 134 | casme2,sub25,EP12_01,2 135 | casme2,sub25,EP18_04f,0 136 | casme2,sub26,EP03_10,1 137 | casme2,sub26,EP09_04,0 138 | casme2,sub26,EP09_09,0 139 | casme2,sub26,EP13_02,1 140 | casme2,sub26,EP13_11,0 141 | casme2,sub26,EP16_01,0 142 | casme2,sub26,EP18_44,0 143 | casme2,sub26,EP18_47,0 144 | casme2,sub26,EP18_49,0 145 | casme2,sub26,EP18_50,0 146 | casme2,sub26,EP18_51,0 147 | smic,s01,s01_ne_01,0 148 | smic,s01,s01_ne_02,0 149 | smic,s01,s01_ne_03,0 150 | smic,s01,s01_po_01,1 151 | smic,s01,s01_po_02,1 152 | smic,s01,s01_sur_01,2 153 | smic,s02,s02_po_01,1 154 | smic,s02,s02_sur_01,2 155 | smic,s02,s02_sur_02,2 156 | smic,s02,s02_sur_03,2 157 | smic,s02,s02_sur_04,2 158 | smic,s02,s02_sur_05,2 159 | smic,s03,s03_ne_01,0 160 | smic,s03,s03_ne_02,0 161 | smic,s03,s03_ne_03,0 162 | smic,s03,s03_ne_04,0 163 | smic,s03,s03_ne_05,0 164 | smic,s03,s03_ne_06,0 165 | smic,s03,s03_ne_07,0 166 | smic,s03,s03_ne_08,0 167 | smic,s03,s03_ne_09,0 168 | smic,s03,s03_ne_10,0 169 | smic,s03,s03_ne_11,0 170 | smic,s03,s03_ne_12,0 171 | smic,s03,s03_ne_13,0 172 | smic,s03,s03_ne_14,0 173 | smic,s03,s03_ne_15,0 174 | smic,s03,s03_ne_16,0 175 | smic,s03,s03_ne_17,0 176 | smic,s03,s03_ne_18,0 177 | smic,s03,s03_ne_19,0 178 | smic,s03,s03_ne_20,0 179 | smic,s03,s03_ne_21,0 180 | smic,s03,s03_ne_22,0 181 | smic,s03,s03_po_01,1 182 | smic,s03,s03_po_02,1 183 | smic,s03,s03_po_03,1 184 | smic,s03,s03_po_04,1 185 | smic,s03,s03_po_05,1 186 | smic,s03,s03_po_06,1 187 | smic,s03,s03_po_07,1 188 | smic,s03,s03_po_08,1 189 | smic,s03,s03_po_09,1 190 | smic,s03,s03_po_10,1 191 | smic,s03,s03_po_11,1 192 | smic,s03,s03_sur_01,2 193 | smic,s03,s03_sur_02,2 194 | smic,s03,s03_sur_03,2 195 | smic,s03,s03_sur_04,2 196 | smic,s03,s03_sur_05,2 197 | smic,s03,s03_sur_06,2 198 | smic,s04,s04_ne_01,0 199 | smic,s04,s04_ne_02,0 200 | smic,s04,s04_ne_03,0 201 | smic,s04,s04_ne_04,0 202 | smic,s04,s04_ne_05,0 203 | smic,s04,s04_ne_06,0 204 | smic,s04,s04_ne_07,0 205 | smic,s04,s04_ne_08,0 206 | smic,s04,s04_ne_09,0 207 | smic,s04,s04_ne_10,0 208 | smic,s04,s04_po_01,1 209 | smic,s04,s04_po_02,1 210 | smic,s04,s04_po_03,1 211 | smic,s04,s04_po_04,1 212 | smic,s04,s04_sur_01,2 213 | smic,s04,s04_sur_02,2 214 | smic,s04,s04_sur_03,2 215 | smic,s04,s04_sur_04,2 216 | smic,s04,s04_sur_05,2 217 | smic,s05,s05_ne_01,0 218 | smic,s05,s05_sur_01,2 219 | smic,s06,s06_ne_01,0 220 | smic,s06,s06_ne_02,0 221 | smic,s06,s06_sur_01,2 222 | smic,s06,s06_sur_02,2 223 | smic,s08,s08_ne_01,0 224 | smic,s08,s08_ne_02,0 225 | smic,s08,s08_ne_03,0 226 | smic,s08,s08_ne_04,0 227 | smic,s08,s08_ne_05,0 228 | smic,s08,s08_ne_06,0 229 | smic,s08,s08_ne_07,0 230 | smic,s08,s08_ne_08,0 231 | smic,s08,s08_ne_09,0 232 | smic,s08,s08_po_01,1 233 | smic,s08,s08_po_02,1 234 | smic,s08,s08_po_03,1 235 | smic,s08,s08_po_04,1 236 | smic,s09,s09_po_01,1 237 | smic,s09,s09_sur_01,2 238 | smic,s09,s09_sur_02,2 239 | smic,s09,s09_sur_03,2 240 | smic,s11,s11_ne_01,0 241 | smic,s11,s11_ne_02,0 242 | smic,s11,s11_ne_03,0 243 | smic,s11,s11_po_01,1 244 | smic,s11,s11_po_02,1 245 | smic,s11,s11_po_03,1 246 | smic,s11,s11_sur_01,2 247 | smic,s12,s12_po_01,1 248 | smic,s12,s12_po_02,1 249 | smic,s12,s12_po_03,1 250 | smic,s12,s12_po_04,1 251 | smic,s12,s12_po_05,1 252 | smic,s12,s12_po_06,1 253 | smic,s12,s12_po_07,1 254 | smic,s12,s12_po_08,1 255 | smic,s12,s12_sur_01,2 256 | smic,s13,s13_po_01,1 257 | smic,s13,s13_po_02,1 258 | smic,s13,s13_po_03,1 259 | smic,s13,s13_po_04,1 260 | smic,s13,s13_po_05,1 261 | smic,s13,s13_po_06,1 262 | smic,s13,s13_po_07,1 263 | smic,s13,s13_po_08,1 264 | smic,s13,s13_po_09,1 265 | smic,s13,s13_po_10,1 266 | smic,s14,s14_ne_01,0 267 | smic,s14,s14_ne_02,0 268 | smic,s14,s14_ne_03,0 269 | smic,s14,s14_po_01,1 270 | smic,s14,s14_po_02,1 271 | smic,s14,s14_sur_01,2 272 | smic,s14,s14_sur_02,2 273 | smic,s14,s14_sur_03,2 274 | smic,s14,s14_sur_04,2 275 | smic,s14,s14_sur_05,2 276 | smic,s15,s15_ne_01,0 277 | smic,s15,s15_po_01,1 278 | smic,s15,s15_sur_01,2 279 | smic,s15,s15_sur_02,2 280 | smic,s18,s18_ne_01,0 281 | smic,s18,s18_ne_02,0 282 | smic,s18,s18_sur_01,2 283 | smic,s18,s18_sur_02,2 284 | smic,s18,s18_sur_03,2 285 | smic,s18,s18_sur_04,2 286 | smic,s18,s18_sur_05,2 287 | smic,s19,s19_po_01,1 288 | smic,s19,s19_sur_01,2 289 | smic,s20,s20_ne_01,0 290 | smic,s20,s20_ne_02,0 291 | smic,s20,s20_ne_03,0 292 | smic,s20,s20_ne_04,0 293 | smic,s20,s20_ne_05,0 294 | smic,s20,s20_ne_06,0 295 | smic,s20,s20_ne_07,0 296 | smic,s20,s20_ne_08,0 297 | smic,s20,s20_ne_09,0 298 | smic,s20,s20_ne_10,0 299 | smic,s20,s20_ne_11,0 300 | smic,s20,s20_ne_12,0 301 | smic,s20,s20_ne_13,0 302 | smic,s20,s20_ne_14,0 303 | smic,s20,s20_po_01,1 304 | smic,s20,s20_po_02,1 305 | smic,s20,s20_po_03,1 306 | smic,s20,s20_sur_01,2 307 | smic,s20,s20_sur_02,2 308 | smic,s20,s20_sur_03,2 309 | smic,s20,s20_sur_04,2 310 | smic,s20,s20_sur_05,2 311 | samm,6,006_1_2,0 312 | samm,6,006_1_3,0 313 | samm,6,006_1_4,0 314 | samm,6,006_1_5,0 315 | samm,6,006_1_6,0 316 | samm,6,006_2_4,0 317 | samm,6,006_3_4,0 318 | samm,6,006_3_5,2 319 | samm,6,006_5_10,0 320 | samm,6,006_5_11,0 321 | samm,6,006_5_9,2 322 | samm,7,007_3_1,0 323 | samm,7,007_5_3,2 324 | samm,7,007_6_1,1 325 | samm,7,007_6_2,1 326 | samm,7,007_6_3,1 327 | samm,7,007_6_5,1 328 | samm,7,007_7_1,2 329 | samm,7,007_7_5,1 330 | samm,9,009_2_1,0 331 | samm,9,009_3_2,0 332 | samm,9,009_3_3,0 333 | samm,9,009_3_4,2 334 | samm,10,010_2_1,0 335 | samm,10,010_2_8,0 336 | samm,10,010_4_1,0 337 | samm,10,010_4_2,0 338 | samm,11,011_1_4,0 339 | samm,11,011_2_1,0 340 | samm,11,011_2_2,0 341 | samm,11,011_2_3,0 342 | samm,11,011_2_7,1 343 | samm,11,011_3_1,0 344 | samm,11,011_3_4,1 345 | samm,11,011_3_5,1 346 | samm,11,011_3_6,1 347 | samm,11,011_4_1,0 348 | samm,11,011_4_12,0 349 | samm,11,011_4_13,0 350 | samm,11,011_4_2,0 351 | samm,11,011_5_1,0 352 | samm,11,011_6_1,0 353 | samm,11,011_6_13,1 354 | samm,11,011_6_5,1 355 | samm,11,011_6_6,1 356 | samm,11,011_7_1,0 357 | samm,11,011_7_10,0 358 | samm,12,012_3_1,0 359 | samm,12,012_3_2,0 360 | samm,12,012_7_1,2 361 | samm,13,013_1_10,0 362 | samm,13,013_1_11,0 363 | samm,13,013_1_12,0 364 | samm,13,013_1_8,0 365 | samm,13,013_1_9,0 366 | samm,13,013_7_7,0 367 | samm,14,014_1_1,0 368 | samm,14,014_2_3,2 369 | samm,14,014_2_4,1 370 | samm,14,014_3_3,1 371 | samm,14,014_3_4,1 372 | samm,14,014_5_2,0 373 | samm,14,014_6_1,1 374 | samm,14,014_6_2,1 375 | samm,14,014_6_3,1 376 | samm,14,014_7_1,1 377 | samm,15,015_5_1,0 378 | samm,15,015_5_2,0 379 | samm,15,015_5_3,2 380 | samm,16,016_7_1,0 381 | samm,16,016_7_2,2 382 | samm,16,016_7_3,0 383 | samm,16,016_7_5,2 384 | samm,16,016_7_8,1 385 | samm,17,017_3_1,0 386 | samm,17,017_3_2,2 387 | samm,17,017_3_4,0 388 | samm,17,017_6_1,0 389 | samm,18,018_3_1,0 390 | samm,18,018_5_1,0 391 | samm,18,018_7_1,2 392 | samm,19,019_4_1,1 393 | samm,20,020_4_1,0 394 | samm,20,020_4_2,1 395 | samm,20,020_7_1,0 396 | samm,20,020_7_10,1 397 | samm,21,021_7_1,0 398 | samm,21,021_7_2,0 399 | samm,22,022_2_3,0 400 | samm,22,022_3_2,0 401 | samm,22,022_3_3,1 402 | samm,22,022_4_1,0 403 | samm,22,022_5_1,1 404 | samm,23,023_1_1,0 405 | samm,24,024_2_1,0 406 | samm,26,026_1_1,0 407 | samm,26,026_2_1,0 408 | samm,26,026_2_2,0 409 | samm,26,026_2_3,0 410 | samm,26,026_3_3,0 411 | samm,26,026_3_4,0 412 | samm,26,026_5_1,0 413 | samm,26,026_6_1,0 414 | samm,26,026_7_3,0 415 | samm,28,028_4_1,0 416 | samm,28,028_4_3,2 417 | samm,28,028_4_4,2 418 | samm,30,030_1_1,0 419 | samm,30,030_1_2,0 420 | samm,30,030_5_1,0 421 | samm,31,031_3_1,0 422 | samm,32,032_3_1,0 423 | samm,32,032_3_2,0 424 | samm,32,032_4_2,0 425 | samm,32,032_6_1,0 426 | samm,33,033_1_3,1 427 | samm,33,033_1_4,0 428 | samm,33,033_1_5,0 429 | samm,33,033_2_1,0 430 | samm,33,033_2_2,0 431 | samm,34,034_3_1,0 432 | samm,34,034_7_2,0 433 | samm,34,034_7_3,0 434 | samm,35,035_1_1,0 435 | samm,35,035_4_1,0 436 | samm,35,035_4_2,0 437 | samm,35,035_5_2,0 438 | samm,35,035_5_3,0 439 | samm,35,035_6_3,0 440 | samm,35,035_7_1,2 441 | samm,35,035_7_2,0 442 | samm,36,036_7_3,0 443 | samm,37,037_3_2,0 444 | -------------------------------------------------------------------------------- /datasets/combined_3class_gt.csv: -------------------------------------------------------------------------------- 1 | casme2,sub01,EP02_01f,1 2 | casme2,sub01,EP19_05f,0 3 | casme2,sub01,EP19_06f,0 4 | casme2,sub02,EP01_11f,0 5 | casme2,sub02,EP02_04f,0 6 | casme2,sub02,EP03_02f,0 7 | casme2,sub02,EP06_01f,0 8 | casme2,sub02,EP06_02f,0 9 | casme2,sub02,EP09_01,1 10 | casme2,sub02,EP11_01,2 11 | casme2,sub02,EP13_04,2 12 | casme2,sub02,EP14_01,2 13 | casme2,sub03,EP01_2,2 14 | casme2,sub03,EP07_04,0 15 | casme2,sub03,EP09_03,0 16 | casme2,sub03,EP18_06,0 17 | casme2,sub03,EP19_08,0 18 | casme2,sub04,EP12_02f,0 19 | casme2,sub04,EP13_06f,0 20 | casme2,sub05,EP02_07,2 21 | casme2,sub05,EP03_01,1 22 | casme2,sub05,EP03_06,2 23 | casme2,sub05,EP04_05,2 24 | casme2,sub05,EP04_06,2 25 | casme2,sub05,EP12_03f,2 26 | casme2,sub06,EP01_01,1 27 | casme2,sub06,EP02_31,2 28 | casme2,sub06,EP15_02,2 29 | casme2,sub06,EP16_05,0 30 | casme2,sub07,EP01_01,0 31 | casme2,sub07,EP06_02_01,0 32 | casme2,sub07,EP06_02_02,0 33 | casme2,sub07,EP08_02,0 34 | casme2,sub07,EP15_01,0 35 | casme2,sub08,EP13_01f,0 36 | casme2,sub09,EP02_01f,1 37 | casme2,sub09,EP05_05,1 38 | casme2,sub09,EP06_01f,0 39 | casme2,sub09,EP06_02f,1 40 | casme2,sub09,EP09_04,0 41 | casme2,sub09,EP09_05,0 42 | casme2,sub09,EP09f,1 43 | casme2,sub09,EP13_01,0 44 | casme2,sub09,EP15_05,1 45 | casme2,sub09,EP17_08,0 46 | casme2,sub11,EP08_01f,0 47 | casme2,sub11,EP13_02f,0 48 | casme2,sub11,EP13_03f,0 49 | casme2,sub11,EP13_05f,0 50 | casme2,sub12,EP01_02,0 51 | casme2,sub12,EP02_05,2 52 | casme2,sub12,EP03_04,1 53 | casme2,sub12,EP04_16,0 54 | casme2,sub12,EP06_06,2 55 | casme2,sub12,EP08_01,2 56 | casme2,sub12,EP08_03,2 57 | casme2,sub12,EP08_07,1 58 | casme2,sub12,EP09_02,0 59 | casme2,sub12,EP09_06,0 60 | casme2,sub12,EP16_02,0 61 | casme2,sub13,EP03_01,1 62 | casme2,sub13,EP09_10,1 63 | casme2,sub14,EP09_03,1 64 | casme2,sub14,EP09_04,1 65 | casme2,sub14,EP09_06,1 66 | casme2,sub15,EP03_02,1 67 | casme2,sub15,EP04_02,2 68 | casme2,sub15,EP08_02,0 69 | casme2,sub16,EP01_05,1 70 | casme2,sub16,EP01_08,0 71 | casme2,sub16,EP04_02f,1 72 | casme2,sub17,EP01_06,1 73 | casme2,sub17,EP01_13,2 74 | casme2,sub17,EP01_15,1 75 | casme2,sub17,EP02_01,0 76 | casme2,sub17,EP02_03,0 77 | casme2,sub17,EP02_11,0 78 | casme2,sub17,EP02_18f,0 79 | casme2,sub17,EP03_02,0 80 | casme2,sub17,EP03_09,1 81 | casme2,sub17,EP05_02,1 82 | casme2,sub17,EP05_03,1 83 | casme2,sub17,EP05_03f,0 84 | casme2,sub17,EP05_04,0 85 | casme2,sub17,EP05_09,0 86 | casme2,sub17,EP05_10,0 87 | casme2,sub17,EP06_04,0 88 | casme2,sub17,EP06_07,1 89 | casme2,sub17,EP06_08,0 90 | casme2,sub17,EP07_01,0 91 | casme2,sub17,EP08_02,0 92 | casme2,sub17,EP10_06,0 93 | casme2,sub17,EP11_01,0 94 | casme2,sub17,EP11_02,0 95 | casme2,sub17,EP12_03,0 96 | casme2,sub17,EP13_03,0 97 | casme2,sub17,EP13_04,0 98 | casme2,sub17,EP13_06,0 99 | casme2,sub17,EP13_09,1 100 | casme2,sub17,EP15_04,0 101 | casme2,sub17,EP16_01f,0 102 | casme2,sub17,EP18_07,0 103 | casme2,sub19,EP01_01f,1 104 | casme2,sub19,EP01_02f,1 105 | casme2,sub19,EP02_01,2 106 | casme2,sub19,EP06_01f,2 107 | casme2,sub19,EP08_02,1 108 | casme2,sub19,EP11_04f,2 109 | casme2,sub19,EP13_01,0 110 | casme2,sub19,EP16_01,0 111 | casme2,sub19,EP16_02,0 112 | casme2,sub19,EP19_02,2 113 | casme2,sub19,EP19_03,2 114 | casme2,sub20,EP01_03,0 115 | casme2,sub20,EP06_03,0 116 | casme2,sub21,EP05_02,0 117 | casme2,sub22,EP01_12,0 118 | casme2,sub22,EP13_08,0 119 | casme2,sub23,EP02_01,1 120 | casme2,sub23,EP03_14f,0 121 | casme2,sub23,EP04_03f,0 122 | casme2,sub23,EP05_24f,0 123 | casme2,sub23,EP05_25f,0 124 | casme2,sub23,EP12_02f,0 125 | casme2,sub23,EP12_03,0 126 | casme2,sub23,EP13_04,0 127 | casme2,sub24,EP01_08,0 128 | casme2,sub24,EP02_02f,0 129 | casme2,sub24,EP18_03,2 130 | casme2,sub25,EP09_02,0 131 | casme2,sub25,EP10_01,0 132 | casme2,sub25,EP10_10,2 133 | casme2,sub25,EP12_01,2 134 | casme2,sub25,EP18_04f,0 135 | casme2,sub26,EP03_10,1 136 | casme2,sub26,EP09_04,0 137 | casme2,sub26,EP09_09,0 138 | casme2,sub26,EP13_02,1 139 | casme2,sub26,EP13_11,0 140 | casme2,sub26,EP16_01,0 141 | casme2,sub26,EP18_44,0 142 | casme2,sub26,EP18_47,0 143 | casme2,sub26,EP18_49,0 144 | casme2,sub26,EP18_50,0 145 | casme2,sub26,EP18_51,0 146 | smic,s01,s01_ne_01,0 147 | smic,s01,s01_ne_02,0 148 | smic,s01,s01_ne_03,0 149 | smic,s01,s01_po_01,1 150 | smic,s01,s01_po_02,1 151 | smic,s01,s01_sur_01,2 152 | smic,s02,s02_po_01,1 153 | smic,s02,s02_sur_01,2 154 | smic,s02,s02_sur_02,2 155 | smic,s02,s02_sur_03,2 156 | smic,s02,s02_sur_04,2 157 | smic,s02,s02_sur_05,2 158 | smic,s03,s03_ne_01,0 159 | smic,s03,s03_ne_02,0 160 | smic,s03,s03_ne_03,0 161 | smic,s03,s03_ne_04,0 162 | smic,s03,s03_ne_05,0 163 | smic,s03,s03_ne_06,0 164 | smic,s03,s03_ne_07,0 165 | smic,s03,s03_ne_08,0 166 | smic,s03,s03_ne_09,0 167 | smic,s03,s03_ne_10,0 168 | smic,s03,s03_ne_11,0 169 | smic,s03,s03_ne_12,0 170 | smic,s03,s03_ne_13,0 171 | smic,s03,s03_ne_14,0 172 | smic,s03,s03_ne_15,0 173 | smic,s03,s03_ne_16,0 174 | smic,s03,s03_ne_17,0 175 | smic,s03,s03_ne_18,0 176 | smic,s03,s03_ne_19,0 177 | smic,s03,s03_ne_20,0 178 | smic,s03,s03_ne_21,0 179 | smic,s03,s03_ne_22,0 180 | smic,s03,s03_po_01,1 181 | smic,s03,s03_po_02,1 182 | smic,s03,s03_po_03,1 183 | smic,s03,s03_po_04,1 184 | smic,s03,s03_po_05,1 185 | smic,s03,s03_po_06,1 186 | smic,s03,s03_po_07,1 187 | smic,s03,s03_po_08,1 188 | smic,s03,s03_po_09,1 189 | smic,s03,s03_po_10,1 190 | smic,s03,s03_po_11,1 191 | smic,s03,s03_sur_01,2 192 | smic,s03,s03_sur_02,2 193 | smic,s03,s03_sur_03,2 194 | smic,s03,s03_sur_04,2 195 | smic,s03,s03_sur_05,2 196 | smic,s03,s03_sur_06,2 197 | smic,s04,s04_ne_01,0 198 | smic,s04,s04_ne_02,0 199 | smic,s04,s04_ne_03,0 200 | smic,s04,s04_ne_04,0 201 | smic,s04,s04_ne_05,0 202 | smic,s04,s04_ne_06,0 203 | smic,s04,s04_ne_07,0 204 | smic,s04,s04_ne_08,0 205 | smic,s04,s04_ne_09,0 206 | smic,s04,s04_ne_10,0 207 | smic,s04,s04_po_01,1 208 | smic,s04,s04_po_02,1 209 | smic,s04,s04_po_03,1 210 | smic,s04,s04_po_04,1 211 | smic,s04,s04_sur_01,2 212 | smic,s04,s04_sur_02,2 213 | smic,s04,s04_sur_03,2 214 | smic,s04,s04_sur_04,2 215 | smic,s04,s04_sur_05,2 216 | smic,s05,s05_ne_01,0 217 | smic,s05,s05_sur_01,2 218 | smic,s06,s06_ne_01,0 219 | smic,s06,s06_ne_02,0 220 | smic,s06,s06_sur_01,2 221 | smic,s06,s06_sur_02,2 222 | smic,s08,s08_ne_01,0 223 | smic,s08,s08_ne_02,0 224 | smic,s08,s08_ne_03,0 225 | smic,s08,s08_ne_04,0 226 | smic,s08,s08_ne_05,0 227 | smic,s08,s08_ne_06,0 228 | smic,s08,s08_ne_07,0 229 | smic,s08,s08_ne_08,0 230 | smic,s08,s08_ne_09,0 231 | smic,s08,s08_po_01,1 232 | smic,s08,s08_po_02,1 233 | smic,s08,s08_po_03,1 234 | smic,s08,s08_po_04,1 235 | smic,s09,s09_po_01,1 236 | smic,s09,s09_sur_01,2 237 | smic,s09,s09_sur_02,2 238 | smic,s09,s09_sur_03,2 239 | smic,s11,s11_ne_01,0 240 | smic,s11,s11_ne_02,0 241 | smic,s11,s11_ne_03,0 242 | smic,s11,s11_po_01,1 243 | smic,s11,s11_po_02,1 244 | smic,s11,s11_po_03,1 245 | smic,s11,s11_sur_01,2 246 | smic,s12,s12_po_01,1 247 | smic,s12,s12_po_02,1 248 | smic,s12,s12_po_03,1 249 | smic,s12,s12_po_04,1 250 | smic,s12,s12_po_05,1 251 | smic,s12,s12_po_06,1 252 | smic,s12,s12_po_07,1 253 | smic,s12,s12_po_08,1 254 | smic,s12,s12_sur_01,2 255 | smic,s13,s13_po_01,1 256 | smic,s13,s13_po_02,1 257 | smic,s13,s13_po_03,1 258 | smic,s13,s13_po_04,1 259 | smic,s13,s13_po_05,1 260 | smic,s13,s13_po_06,1 261 | smic,s13,s13_po_07,1 262 | smic,s13,s13_po_08,1 263 | smic,s13,s13_po_09,1 264 | smic,s13,s13_po_10,1 265 | smic,s14,s14_ne_01,0 266 | smic,s14,s14_ne_02,0 267 | smic,s14,s14_ne_03,0 268 | smic,s14,s14_po_01,1 269 | smic,s14,s14_po_02,1 270 | smic,s14,s14_sur_01,2 271 | smic,s14,s14_sur_02,2 272 | smic,s14,s14_sur_03,2 273 | smic,s14,s14_sur_04,2 274 | smic,s14,s14_sur_05,2 275 | smic,s15,s15_ne_01,0 276 | smic,s15,s15_po_01,1 277 | smic,s15,s15_sur_01,2 278 | smic,s15,s15_sur_02,2 279 | smic,s18,s18_ne_01,0 280 | smic,s18,s18_ne_02,0 281 | smic,s18,s18_sur_01,2 282 | smic,s18,s18_sur_02,2 283 | smic,s18,s18_sur_03,2 284 | smic,s18,s18_sur_04,2 285 | smic,s18,s18_sur_05,2 286 | smic,s19,s19_po_01,1 287 | smic,s19,s19_sur_01,2 288 | smic,s20,s20_ne_01,0 289 | smic,s20,s20_ne_02,0 290 | smic,s20,s20_ne_03,0 291 | smic,s20,s20_ne_04,0 292 | smic,s20,s20_ne_05,0 293 | smic,s20,s20_ne_06,0 294 | smic,s20,s20_ne_07,0 295 | smic,s20,s20_ne_08,0 296 | smic,s20,s20_ne_09,0 297 | smic,s20,s20_ne_10,0 298 | smic,s20,s20_ne_11,0 299 | smic,s20,s20_ne_12,0 300 | smic,s20,s20_ne_13,0 301 | smic,s20,s20_ne_14,0 302 | smic,s20,s20_po_01,1 303 | smic,s20,s20_po_02,1 304 | smic,s20,s20_po_03,1 305 | smic,s20,s20_sur_01,2 306 | smic,s20,s20_sur_02,2 307 | smic,s20,s20_sur_03,2 308 | smic,s20,s20_sur_04,2 309 | smic,s20,s20_sur_05,2 310 | samm,6,006_1_2,0 311 | samm,6,006_1_3,0 312 | samm,6,006_1_4,0 313 | samm,6,006_1_5,0 314 | samm,6,006_1_6,0 315 | samm,6,006_2_4,0 316 | samm,6,006_3_4,0 317 | samm,6,006_3_5,2 318 | samm,6,006_5_10,0 319 | samm,6,006_5_11,0 320 | samm,6,006_5_9,2 321 | samm,7,007_3_1,0 322 | samm,7,007_5_3,2 323 | samm,7,007_6_1,1 324 | samm,7,007_6_2,1 325 | samm,7,007_6_3,1 326 | samm,7,007_6_5,1 327 | samm,7,007_7_1,2 328 | samm,7,007_7_5,1 329 | samm,9,009_2_1,0 330 | samm,9,009_3_2,0 331 | samm,9,009_3_3,0 332 | samm,9,009_3_4,2 333 | samm,10,010_2_1,0 334 | samm,10,010_2_8,0 335 | samm,10,010_4_1,0 336 | samm,10,010_4_2,0 337 | samm,11,011_1_4,0 338 | samm,11,011_2_1,0 339 | samm,11,011_2_2,0 340 | samm,11,011_2_3,0 341 | samm,11,011_2_7,1 342 | samm,11,011_3_1,0 343 | samm,11,011_3_4,1 344 | samm,11,011_3_5,1 345 | samm,11,011_3_6,1 346 | samm,11,011_4_1,0 347 | samm,11,011_4_12,0 348 | samm,11,011_4_13,0 349 | samm,11,011_4_2,0 350 | samm,11,011_5_1,0 351 | samm,11,011_6_1,0 352 | samm,11,011_6_13,1 353 | samm,11,011_6_5,1 354 | samm,11,011_6_6,1 355 | samm,11,011_7_1,0 356 | samm,11,011_7_10,0 357 | samm,12,012_3_1,0 358 | samm,12,012_3_2,0 359 | samm,12,012_7_1,2 360 | samm,13,013_1_10,0 361 | samm,13,013_1_11,0 362 | samm,13,013_1_12,0 363 | samm,13,013_1_8,0 364 | samm,13,013_1_9,0 365 | samm,13,013_7_7,0 366 | samm,14,014_1_1,0 367 | samm,14,014_2_3,2 368 | samm,14,014_2_4,1 369 | samm,14,014_3_3,1 370 | samm,14,014_3_4,1 371 | samm,14,014_5_2,0 372 | samm,14,014_6_1,1 373 | samm,14,014_6_2,1 374 | samm,14,014_6_3,1 375 | samm,14,014_7_1,1 376 | samm,15,015_5_1,0 377 | samm,15,015_5_2,0 378 | samm,15,015_5_3,2 379 | samm,16,016_7_1,0 380 | samm,16,016_7_2,2 381 | samm,16,016_7_3,0 382 | samm,16,016_7_5,2 383 | samm,16,016_7_8,1 384 | samm,17,017_3_1,0 385 | samm,17,017_3_2,2 386 | samm,17,017_3_4,0 387 | samm,17,017_6_1,0 388 | samm,18,018_3_1,0 389 | samm,18,018_5_1,0 390 | samm,18,018_7_1,2 391 | samm,19,019_4_1,1 392 | samm,20,020_4_1,0 393 | samm,20,020_4_2,1 394 | samm,20,020_7_1,0 395 | samm,20,020_7_10,1 396 | samm,21,021_7_1,0 397 | samm,21,021_7_2,0 398 | samm,22,022_2_3,0 399 | samm,22,022_3_2,0 400 | samm,22,022_3_3,1 401 | samm,22,022_4_1,0 402 | samm,22,022_5_1,1 403 | samm,23,023_1_1,0 404 | samm,24,024_2_1,0 405 | samm,26,026_1_1,0 406 | samm,26,026_2_1,0 407 | samm,26,026_2_2,0 408 | samm,26,026_2_3,0 409 | samm,26,026_3_3,0 410 | samm,26,026_3_4,0 411 | samm,26,026_5_1,0 412 | samm,26,026_6_1,0 413 | samm,26,026_7_3,0 414 | samm,28,028_4_1,0 415 | samm,28,028_4_3,2 416 | samm,28,028_4_4,2 417 | samm,30,030_1_1,0 418 | samm,30,030_1_2,0 419 | samm,30,030_5_1,0 420 | samm,31,031_3_1,0 421 | samm,32,032_3_1,0 422 | samm,32,032_3_2,0 423 | samm,32,032_4_2,0 424 | samm,32,032_6_1,0 425 | samm,33,033_1_3,1 426 | samm,33,033_1_4,0 427 | samm,33,033_1_5,0 428 | samm,33,033_2_1,0 429 | samm,33,033_2_2,0 430 | samm,34,034_3_1,0 431 | samm,34,034_7_2,0 432 | samm,34,034_7_3,0 433 | samm,35,035_1_1,0 434 | samm,35,035_4_1,0 435 | samm,35,035_4_2,0 436 | samm,35,035_5_2,0 437 | samm,35,035_5_3,0 438 | samm,35,035_6_3,0 439 | samm,35,035_7_1,2 440 | samm,35,035_7_2,0 441 | samm,36,036_7_3,0 442 | samm,37,037_3_2,0 443 | -------------------------------------------------------------------------------- /datasets/samm_apex.csv: -------------------------------------------------------------------------------- 1 | data,subject,clip,label,onset_frame,apex_frame,offset_frame,onset_frame_path,apex_frame_path,offset_frame_path 2 | samm,6,006_1_2,0,5562,5588,5632,samm/006/006_1_2/006_05562.jpg,samm/006/006_1_2/006_05588.jpg,samm/006/006_1_2/006_05632.jpg 3 | samm,6,006_1_3,0,3912,3948,3988,samm/006/006_1_3/006_03912.jpg,samm/006/006_1_3/006_03948.jpg,samm/006/006_1_3/006_03988.jpg 4 | samm,6,006_1_4,0,2324,2368,2403,samm/006/006_1_4/006_02324.jpg,samm/006/006_1_4/006_02368.jpg,samm/006/006_1_4/006_02403.jpg 5 | samm,6,006_1_5,0,5343,5388,5424,samm/006/006_1_5/006_05343.jpg,samm/006/006_1_5/006_05388.jpg,samm/006/006_1_5/006_05424.jpg 6 | samm,6,006_1_6,0,7160,7197,7259,samm/006/006_1_6/006_07160.jpg,samm/006/006_1_6/006_07197.jpg,samm/006/006_1_6/006_07259.jpg 7 | samm,6,006_2_4,0,180,217,274,samm/006/006_2_4/006_0180.jpg,samm/006/006_2_4/006_0217.jpg,samm/006/006_2_4/006_0274.jpg 8 | samm,6,006_3_4,0,639,668,702,samm/006/006_3_4/006_0639.jpg,samm/006/006_3_4/006_0668.jpg,samm/006/006_3_4/006_0702.jpg 9 | samm,6,006_3_5,2,1787,1829,1856,samm/006/006_3_5/006_1787.jpg,samm/006/006_3_5/006_1829.jpg,samm/006/006_3_5/006_1856.jpg 10 | samm,6,006_5_10,0,1436,1465,1514,samm/006/006_5_10/006_1436.jpg,samm/006/006_5_10/006_1465.jpg,samm/006/006_5_10/006_1514.jpg 11 | samm,6,006_5_11,0,2130,2190,2226,samm/006/006_5_11/006_2130.jpg,samm/006/006_5_11/006_2190.jpg,samm/006/006_5_11/006_2226.jpg 12 | samm,6,006_5_9,2,5258,5282,5351,samm/006/006_5_9/006_5258.jpg,samm/006/006_5_9/006_5282.jpg,samm/006/006_5_9/006_5351.jpg 13 | samm,7,007_3_1,0,2046,2062,2091,samm/007/007_3_1/007_2046.jpg,samm/007/007_3_1/007_2062.jpg,samm/007/007_3_1/007_2091.jpg 14 | samm,7,007_5_3,2,2759,2797,2835,samm/007/007_5_3/007_2759.jpg,samm/007/007_5_3/007_2797.jpg,samm/007/007_5_3/007_2835.jpg 15 | samm,7,007_6_1,1,497,511,541,samm/007/007_6_1/007_0497.jpg,samm/007/007_6_1/007_0511.jpg,samm/007/007_6_1/007_0541.jpg 16 | samm,7,007_6_2,1,1296,1326,1377,samm/007/007_6_2/007_1296.jpg,samm/007/007_6_2/007_1326.jpg,samm/007/007_6_2/007_1377.jpg 17 | samm,7,007_6_3,1,2560,2592,2617,samm/007/007_6_3/007_2560.jpg,samm/007/007_6_3/007_2592.jpg,samm/007/007_6_3/007_2617.jpg 18 | samm,7,007_6_5,1,649,673,723,samm/007/007_6_5/007_0649.jpg,samm/007/007_6_5/007_0673.jpg,samm/007/007_6_5/007_0723.jpg 19 | samm,7,007_7_1,2,7030,7056,7070,samm/007/007_7_1/007_7030.jpg,samm/007/007_7_1/007_7056.jpg,samm/007/007_7_1/007_7070.jpg 20 | samm,7,007_7_5,1,554,585,637,samm/007/007_7_5/007_0554.jpg,samm/007/007_7_5/007_0585.jpg,samm/007/007_7_5/007_0637.jpg 21 | samm,9,009_2_1,0,3577,3602,3641,samm/009/009_2_1/009_3577.jpg,samm/009/009_2_1/009_3602.jpg,samm/009/009_2_1/009_3641.jpg 22 | samm,9,009_3_2,0,1856,1891,1932,samm/009/009_3_2/009_1856.jpg,samm/009/009_3_2/009_1891.jpg,samm/009/009_3_2/009_1932.jpg 23 | samm,9,009_3_3,0,1968,2010,2045,samm/009/009_3_3/009_1968.jpg,samm/009/009_3_3/009_2010.jpg,samm/009/009_3_3/009_2045.jpg 24 | samm,9,009_3_4,2,3334,3370,3419,samm/009/009_3_4/009_3334.jpg,samm/009/009_3_4/009_3370.jpg,samm/009/009_3_4/009_3419.jpg 25 | samm,10,010_2_1,0,192,206,228,samm/010/010_2_1/010_0192.jpg,samm/010/010_2_1/010_0206.jpg,samm/010/010_2_1/010_0228.jpg 26 | samm,10,010_2_8,0,1211,1239,1288,samm/010/010_2_8/010_1211.jpg,samm/010/010_2_8/010_1239.jpg,samm/010/010_2_8/010_1288.jpg 27 | samm,10,010_4_1,0,3528,3548,3557,samm/010/010_4_1/010_3528.jpg,samm/010/010_4_1/010_3548.jpg,samm/010/010_4_1/010_3557.jpg 28 | samm,10,010_4_2,0,6708,6730,6738,samm/010/010_4_2/010_6708.jpg,samm/010/010_4_2/010_6730.jpg,samm/010/010_4_2/010_6738.jpg 29 | samm,11,011_1_4,0,3080,3131,3168,samm/011/011_1_4/011_03080.jpg,samm/011/011_1_4/011_03131.jpg,samm/011/011_1_4/011_03168.jpg 30 | samm,11,011_2_1,0,2029,2050,2068,samm/011/011_2_1/011_2029.jpg,samm/011/011_2_1/011_2050.jpg,samm/011/011_2_1/011_2068.jpg 31 | samm,11,011_2_2,0,2069,2114,2125,samm/011/011_2_2/011_2069.jpg,samm/011/011_2_2/011_2114.jpg,samm/011/011_2_2/011_2125.jpg 32 | samm,11,011_2_3,0,3885,3921,3974,samm/011/011_2_3/011_3885.jpg,samm/011/011_2_3/011_3921.jpg,samm/011/011_2_3/011_3974.jpg 33 | samm,11,011_2_7,1,3361,3402,3449,samm/011/011_2_7/011_3361.jpg,samm/011/011_2_7/011_3402.jpg,samm/011/011_2_7/011_3449.jpg 34 | samm,11,011_3_1,0,2363,2395,2411,samm/011/011_3_1/011_2363.jpg,samm/011/011_3_1/011_2395.jpg,samm/011/011_3_1/011_2411.jpg 35 | samm,11,011_3_4,1,2841,2891,2920,samm/011/011_3_4/011_2841.jpg,samm/011/011_3_4/011_2891.jpg,samm/011/011_3_4/011_2920.jpg 36 | samm,11,011_3_5,1,2944,3007,3031,samm/011/011_3_5/011_2944.jpg,samm/011/011_3_5/011_3007.jpg,samm/011/011_3_5/011_3031.jpg 37 | samm,11,011_3_6,1,3208,3253,3308,samm/011/011_3_6/011_3208.jpg,samm/011/011_3_6/011_3253.jpg,samm/011/011_3_6/011_3308.jpg 38 | samm,11,011_4_1,0,6750,6771,6803,samm/011/011_4_1/011_6750.jpg,samm/011/011_4_1/011_6771.jpg,samm/011/011_4_1/011_6803.jpg 39 | samm,11,011_4_12,0,4158,4194,4254,samm/011/011_4_12/011_4158.jpg,samm/011/011_4_12/011_4194.jpg,samm/011/011_4_12/011_4254.jpg 40 | samm,11,011_4_13,0,2755,2791,2853,samm/011/011_4_13/011_2755.jpg,samm/011/011_4_13/011_2791.jpg,samm/011/011_4_13/011_2853.jpg 41 | samm,11,011_4_2,0,2980,3014,3037,samm/011/011_4_2/011_2980.jpg,samm/011/011_4_2/011_3014.jpg,samm/011/011_4_2/011_3037.jpg 42 | samm,11,011_5_1,0,1048,1071,1088,samm/011/011_5_1/011_1048.jpg,samm/011/011_5_1/011_1071.jpg,samm/011/011_5_1/011_1088.jpg 43 | samm,11,011_6_1,0,4422,4463,4486,samm/011/011_6_1/011_4422.jpg,samm/011/011_6_1/011_4463.jpg,samm/011/011_6_1/011_4486.jpg 44 | samm,11,011_6_13,1,4523,4585,4619,samm/011/011_6_13/011_4523.jpg,samm/011/011_6_13/011_4585.jpg,samm/011/011_6_13/011_4619.jpg 45 | samm,11,011_6_5,1,2504,2571,2602,samm/011/011_6_5/011_2504.jpg,samm/011/011_6_5/011_2571.jpg,samm/011/011_6_5/011_2602.jpg 46 | samm,11,011_6_6,1,2607,2649,2680,samm/011/011_6_6/011_2607.jpg,samm/011/011_6_6/011_2649.jpg,samm/011/011_6_6/011_2680.jpg 47 | samm,11,011_7_1,0,1220,1236,1269,samm/011/011_7_1/011_1220.jpg,samm/011/011_7_1/011_1236.jpg,samm/011/011_7_1/011_1269.jpg 48 | samm,11,011_7_10,0,3599,3630,3680,samm/011/011_7_10/011_3599.jpg,samm/011/011_7_10/011_3630.jpg,samm/011/011_7_10/011_3680.jpg 49 | samm,12,012_3_1,0,4621,4651,4676,samm/012/012_3_1/012_4621.jpg,samm/012/012_3_1/012_4651.jpg,samm/012/012_3_1/012_4676.jpg 50 | samm,12,012_3_2,0,4697,4735,4796,samm/012/012_3_2/012_4697.jpg,samm/012/012_3_2/012_4735.jpg,samm/012/012_3_2/012_4796.jpg 51 | samm,12,012_7_1,2,7871,7889,7923,samm/012/012_7_1/012_7871.jpg,samm/012/012_7_1/012_7889.jpg,samm/012/012_7_1/012_7923.jpg 52 | samm,13,013_1_10,0,3802,3824,3890,samm/013/013_1_10/013_03802.jpg,samm/013/013_1_10/013_03824.jpg,samm/013/013_1_10/013_03890.jpg 53 | samm,13,013_1_11,0,4490,4544,4582,samm/013/013_1_11/013_04490.jpg,samm/013/013_1_11/013_04544.jpg,samm/013/013_1_11/013_04582.jpg 54 | samm,13,013_1_12,0,706,739,802,samm/013/013_1_12/013_00706.jpg,samm/013/013_1_12/013_00739.jpg,samm/013/013_1_12/013_00802.jpg 55 | samm,13,013_1_8,0,841,867,919,samm/013/013_1_8/013_00841.jpg,samm/013/013_1_8/013_00867.jpg,samm/013/013_1_8/013_00919.jpg 56 | samm,13,013_1_9,0,5658,5680,5739,samm/013/013_1_9/013_05658.jpg,samm/013/013_1_9/013_05680.jpg,samm/013/013_1_9/013_05739.jpg 57 | samm,13,013_7_7,0,2077,2135,2167,samm/013/013_7_7/013_2077.jpg,samm/013/013_7_7/013_2135.jpg,samm/013/013_7_7/013_2167.jpg 58 | samm,14,014_1_1,0,2856,2881,2897,samm/014/014_1_1/014_02856.jpg,samm/014/014_1_1/014_02881.jpg,samm/014/014_1_1/014_02897.jpg 59 | samm,14,014_2_3,2,4616,4645,4705,samm/014/014_2_3/014_4616.jpg,samm/014/014_2_3/014_4645.jpg,samm/014/014_2_3/014_4705.jpg 60 | samm,14,014_2_4,1,3874,3925,3968,samm/014/014_2_4/014_3874.jpg,samm/014/014_2_4/014_3925.jpg,samm/014/014_2_4/014_3968.jpg 61 | samm,14,014_3_3,1,2635,2646,2714,samm/014/014_3_3/014_2635.jpg,samm/014/014_3_3/014_2646.jpg,samm/014/014_3_3/014_2714.jpg 62 | samm,14,014_3_4,1,1426,1457,1523,samm/014/014_3_4/014_1426.jpg,samm/014/014_3_4/014_1457.jpg,samm/014/014_3_4/014_1523.jpg 63 | samm,14,014_5_2,0,469,498,557,samm/014/014_5_2/014_0469.jpg,samm/014/014_5_2/014_0498.jpg,samm/014/014_5_2/014_0557.jpg 64 | samm,14,014_6_1,1,1316,1334,1350,samm/014/014_6_1/014_1316.jpg,samm/014/014_6_1/014_1334.jpg,samm/014/014_6_1/014_1350.jpg 65 | samm,14,014_6_2,1,1190,1221,1253,samm/014/014_6_2/014_1190.jpg,samm/014/014_6_2/014_1221.jpg,samm/014/014_6_2/014_1253.jpg 66 | samm,14,014_6_3,1,128,171,196,samm/014/014_6_3/014_0128.jpg,samm/014/014_6_3/014_0171.jpg,samm/014/014_6_3/014_0196.jpg 67 | samm,14,014_7_1,1,3529,3560,3598,samm/014/014_7_1/014_3529.jpg,samm/014/014_7_1/014_3560.jpg,samm/014/014_7_1/014_3598.jpg 68 | samm,15,015_5_1,0,6380,6406,6442,samm/015/015_5_1/015_6380.jpg,samm/015/015_5_1/015_6406.jpg,samm/015/015_5_1/015_6442.jpg 69 | samm,15,015_5_2,0,6587,6615,6659,samm/015/015_5_2/015_6587.jpg,samm/015/015_5_2/015_6615.jpg,samm/015/015_5_2/015_6659.jpg 70 | samm,15,015_5_3,2,6050,6073,6127,samm/015/015_5_3/015_6050.jpg,samm/015/015_5_3/015_6073.jpg,samm/015/015_5_3/015_6127.jpg 71 | samm,16,016_7_1,0,2275,2299,2323,samm/016/016_7_1/016_02275.jpg,samm/016/016_7_1/016_02299.jpg,samm/016/016_7_1/016_02323.jpg 72 | samm,16,016_7_2,2,3840,3854,3892,samm/016/016_7_2/016_03840.jpg,samm/016/016_7_2/016_03854.jpg,samm/016/016_7_2/016_03892.jpg 73 | samm,16,016_7_3,0,4395,4421,4447,samm/016/016_7_3/016_04395.jpg,samm/016/016_7_3/016_04421.jpg,samm/016/016_7_3/016_04447.jpg 74 | samm,16,016_7_5,2,6120,6155,6207,samm/016/016_7_5/016_06120.jpg,samm/016/016_7_5/016_06155.jpg,samm/016/016_7_5/016_06207.jpg 75 | samm,16,016_7_8,1,12256,12324,12349,samm/016/016_7_8/016_12256.jpg,samm/016/016_7_8/016_12324.jpg,samm/016/016_7_8/016_12349.jpg 76 | samm,17,017_3_1,0,312,337,387,samm/017/017_3_1/017_0312.jpg,samm/017/017_3_1/017_0337.jpg,samm/017/017_3_1/017_0387.jpg 77 | samm,17,017_3_2,2,83,116,165,samm/017/017_3_2/017_0083.jpg,samm/017/017_3_2/017_0116.jpg,samm/017/017_3_2/017_0165.jpg 78 | samm,17,017_3_4,0,174,199,264,samm/017/017_3_4/017_0174.jpg,samm/017/017_3_4/017_0199.jpg,samm/017/017_3_4/017_0264.jpg 79 | samm,17,017_6_1,0,1107,1143,1178,samm/017/017_6_1/017_1107.jpg,samm/017/017_6_1/017_1143.jpg,samm/017/017_6_1/017_1178.jpg 80 | samm,18,018_3_1,0,1405,1456,1500,samm/018/018_3_1/018_1405.jpg,samm/018/018_3_1/018_1456.jpg,samm/018/018_3_1/018_1500.jpg 81 | samm,18,018_5_1,0,6991,7026,7060,samm/018/018_5_1/018_6991.jpg,samm/018/018_5_1/018_7026.jpg,samm/018/018_5_1/018_7060.jpg 82 | samm,18,018_7_1,2,10133,10156,10175,samm/018/018_7_1/018_10133.jpg,samm/018/018_7_1/018_10156.jpg,samm/018/018_7_1/018_10175.jpg 83 | samm,19,019_4_1,1,4496,4517,4550,samm/019/019_4_1/019_4496.jpg,samm/019/019_4_1/019_4517.jpg,samm/019/019_4_1/019_4550.jpg 84 | samm,20,020_4_1,0,3440,3469,3497,samm/020/020_4_1/020_3440.jpg,samm/020/020_4_1/020_3469.jpg,samm/020/020_4_1/020_3497.jpg 85 | samm,20,020_4_2,1,1482,1516,1528,samm/020/020_4_2/020_1482.jpg,samm/020/020_4_2/020_1516.jpg,samm/020/020_4_2/020_1528.jpg 86 | samm,20,020_7_1,0,8518,8551,8577,samm/020/020_7_1/020_8518.jpg,samm/020/020_7_1/020_8551.jpg,samm/020/020_7_1/020_8577.jpg 87 | samm,20,020_7_10,1,9071,9140,9165,samm/020/020_7_10/020_9071.jpg,samm/020/020_7_10/020_9140.jpg,samm/020/020_7_10/020_9165.jpg 88 | samm,21,021_7_1,0,5589,5621,5646,samm/021/021_7_1/021_5589.jpg,samm/021/021_7_1/021_5621.jpg,samm/021/021_7_1/021_5646.jpg 89 | samm,21,021_7_2,0,2853,2882,2942,samm/021/021_7_2/021_2853.jpg,samm/021/021_7_2/021_2882.jpg,samm/021/021_7_2/021_2942.jpg 90 | samm,22,022_2_3,0,402,438,501,samm/022/022_2_3/022_0402.jpg,samm/022/022_2_3/022_0438.jpg,samm/022/022_2_3/022_0501.jpg 91 | samm,22,022_3_2,0,380,421,428,samm/022/022_3_2/022_0380.jpg,samm/022/022_3_2/022_0421.jpg,samm/022/022_3_2/022_0428.jpg 92 | samm,22,022_3_3,1,3659,3683,3697,samm/022/022_3_3/022_3659.jpg,samm/022/022_3_3/022_3683.jpg,samm/022/022_3_3/022_3697.jpg 93 | samm,22,022_4_1,0,492,505,569,samm/022/022_4_1/022_0492.jpg,samm/022/022_4_1/022_0505.jpg,samm/022/022_4_1/022_0569.jpg 94 | samm,22,022_5_1,1,335,357,405,samm/022/022_5_1/022_0335.jpg,samm/022/022_5_1/022_0357.jpg,samm/022/022_5_1/022_0405.jpg 95 | samm,23,023_1_1,0,5024,5037,5074,samm/023/023_1_1/023_05024.jpg,samm/023/023_1_1/023_05037.jpg,samm/023/023_1_1/023_05074.jpg 96 | samm,24,024_2_1,0,3763,3779,3835,samm/024/024_2_1/024_3763.jpg,samm/024/024_2_1/024_3779.jpg,samm/024/024_2_1/024_3835.jpg 97 | samm,26,026_1_1,0,295,323,370,samm/026/026_1_1/026_00295.jpg,samm/026/026_1_1/026_00323.jpg,samm/026/026_1_1/026_00370.jpg 98 | samm,26,026_2_1,0,2881,2918,2947,samm/026/026_2_1/026_2881.jpg,samm/026/026_2_1/026_2918.jpg,samm/026/026_2_1/026_2947.jpg 99 | samm,26,026_2_2,0,2952,2978,3028,samm/026/026_2_2/026_2952.jpg,samm/026/026_2_2/026_2978.jpg,samm/026/026_2_2/026_3028.jpg 100 | samm,26,026_2_3,0,2607,2642,2685,samm/026/026_2_3/026_2607.jpg,samm/026/026_2_3/026_2642.jpg,samm/026/026_2_3/026_2685.jpg 101 | samm,26,026_3_3,0,1704,1736,1737,samm/026/026_3_3/026_1704.jpg,samm/026/026_3_3/026_1736.jpg,samm/026/026_3_3/026_1737.jpg 102 | samm,26,026_3_4,0,3582,3608,3640,samm/026/026_3_4/026_3582.jpg,samm/026/026_3_4/026_3608.jpg,samm/026/026_3_4/026_3640.jpg 103 | samm,26,026_5_1,0,5073,5089,5146,samm/026/026_5_1/026_5073.jpg,samm/026/026_5_1/026_5089.jpg,samm/026/026_5_1/026_5146.jpg 104 | samm,26,026_6_1,0,3848,3882,3941,samm/026/026_6_1/026_3848.jpg,samm/026/026_6_1/026_3882.jpg,samm/026/026_6_1/026_3941.jpg 105 | samm,26,026_7_3,0,2750,2783,2844,samm/026/026_7_3/026_2750.jpg,samm/026/026_7_3/026_2783.jpg,samm/026/026_7_3/026_2844.jpg 106 | samm,28,028_4_1,0,1071,1113,1134,samm/028/028_4_1/028_1071.jpg,samm/028/028_4_1/028_1113.jpg,samm/028/028_4_1/028_1134.jpg 107 | samm,28,028_4_3,2,370,424,441,samm/028/028_4_3/028_0370.jpg,samm/028/028_4_3/028_0424.jpg,samm/028/028_4_3/028_0441.jpg 108 | samm,28,028_4_4,2,1288,1367,1376,samm/028/028_4_4/028_1288.jpg,samm/028/028_4_4/028_1367.jpg,samm/028/028_4_4/028_1376.jpg 109 | samm,30,030_1_1,0,2379,2422,2460,samm/030/030_1_1/030_02379.jpg,samm/030/030_1_1/030_02422.jpg,samm/030/030_1_1/030_02460.jpg 110 | samm,30,030_1_2,0,6344,6392,6434,samm/030/030_1_2/030_06344.jpg,samm/030/030_1_2/030_06392.jpg,samm/030/030_1_2/030_06434.jpg 111 | samm,30,030_5_1,0,1921,1960,2001,samm/030/030_5_1/030_1921.jpg,samm/030/030_5_1/030_1960.jpg,samm/030/030_5_1/030_2001.jpg 112 | samm,31,031_3_1,0,3831,3852,3886,samm/031/031_3_1/031_3831.jpg,samm/031/031_3_1/031_3852.jpg,samm/031/031_3_1/031_3886.jpg 113 | samm,32,032_3_1,0,4896,4930,4970,samm/032/032_3_1/032_4896.jpg,samm/032/032_3_1/032_4930.jpg,samm/032/032_3_1/032_4970.jpg 114 | samm,32,032_3_2,0,5126,5127,5207,samm/032/032_3_2/032_5126.jpg,samm/032/032_3_2/032_5127.jpg,samm/032/032_3_2/032_5207.jpg 115 | samm,32,032_4_2,0,408,436,479,samm/032/032_4_2/032_0408.jpg,samm/032/032_4_2/032_0436.jpg,samm/032/032_4_2/032_0479.jpg 116 | samm,32,032_6_1,0,4307,4325,4366,samm/032/032_6_1/032_4307.jpg,samm/032/032_6_1/032_4325.jpg,samm/032/032_6_1/032_4366.jpg 117 | samm,33,033_1_3,1,5957,5988,6009,samm/033/033_1_3/033_05957.jpg,samm/033/033_1_3/033_05988.jpg,samm/033/033_1_3/033_06009.jpg 118 | samm,33,033_1_4,0,6541,6573,6609,samm/033/033_1_4/033_06541.jpg,samm/033/033_1_4/033_06573.jpg,samm/033/033_1_4/033_06609.jpg 119 | samm,33,033_1_5,0,6889,6926,6973,samm/033/033_1_5/033_06889.jpg,samm/033/033_1_5/033_06926.jpg,samm/033/033_1_5/033_06973.jpg 120 | samm,33,033_2_1,0,695,749,776,samm/033/033_2_1/033_0695.jpg,samm/033/033_2_1/033_0749.jpg,samm/033/033_2_1/033_0776.jpg 121 | samm,33,033_2_2,0,2117,2149,2215,samm/033/033_2_2/033_2117.jpg,samm/033/033_2_2/033_2149.jpg,samm/033/033_2_2/033_2215.jpg 122 | samm,34,034_3_1,0,3129,3159,3217,samm/034/034_3_1/034_3129.jpg,samm/034/034_3_1/034_3159.jpg,samm/034/034_3_1/034_3217.jpg 123 | samm,34,034_7_2,0,1578,1612,1655,samm/034/034_7_2/034_01578.jpg,samm/034/034_7_2/034_01612.jpg,samm/034/034_7_2/034_01655.jpg 124 | samm,34,034_7_3,0,3636,3672,3719,samm/034/034_7_3/034_03636.jpg,samm/034/034_7_3/034_03672.jpg,samm/034/034_7_3/034_03719.jpg 125 | samm,35,035_1_1,0,9649,9667,9691,samm/035/035_1_1/035_09649.jpg,samm/035/035_1_1/035_09667.jpg,samm/035/035_1_1/035_09691.jpg 126 | samm,35,035_4_1,0,231,245,263,samm/035/035_4_1/035_0231.jpg,samm/035/035_4_1/035_0245.jpg,samm/035/035_4_1/035_0263.jpg 127 | samm,35,035_4_2,0,1509,1534,1574,samm/035/035_4_2/035_1509.jpg,samm/035/035_4_2/035_1534.jpg,samm/035/035_4_2/035_1574.jpg 128 | samm,35,035_5_2,0,2409,2443,2473,samm/035/035_5_2/035_2409.jpg,samm/035/035_5_2/035_2443.jpg,samm/035/035_5_2/035_2473.jpg 129 | samm,35,035_5_3,0,253,293,341,samm/035/035_5_3/035_0253.jpg,samm/035/035_5_3/035_0293.jpg,samm/035/035_5_3/035_0341.jpg 130 | samm,35,035_6_3,0,180,210,236,samm/035/035_6_3/035_0180.jpg,samm/035/035_6_3/035_0210.jpg,samm/035/035_6_3/035_0236.jpg 131 | samm,35,035_7_1,2,7809,7819,7853,samm/035/035_7_1/035_07809.jpg,samm/035/035_7_1/035_07819.jpg,samm/035/035_7_1/035_07853.jpg 132 | samm,35,035_7_2,0,823,855,918,samm/035/035_7_2/035_00823.jpg,samm/035/035_7_2/035_00855.jpg,samm/035/035_7_2/035_00918.jpg 133 | samm,36,036_7_3,0,2264,2339,2363,samm/036/036_7_3/036_02264.jpg,samm/036/036_7_3/036_02339.jpg,samm/036/036_7_3/036_02363.jpg 134 | samm,37,037_3_2,0,3196,3214,3295,samm/037/037_3_2/037_3196.jpg,samm/037/037_3_2/037_3214.jpg,samm/037/037_3_2/037_3295.jpg 135 | -------------------------------------------------------------------------------- /datasets/smic_apex.csv: -------------------------------------------------------------------------------- 1 | data,subject,clip,label,onset_frame,apex_frame,offset_frame,onset_frame_path,apex_frame_path,offset_frame_path 2 | smic,20,s20_ne_01,0,17581039,17581046,17581055,smic/HS_long/SMIC_HS_E/s20/s20_ne_01/image17581039.jpg,smic/HS_long/SMIC_HS_E/s20/s20_ne_01/image17581046.jpg,smic/HS_long/SMIC_HS_E/s20/s20_ne_01/image17581055.jpg 3 | smic,20,s20_ne_02,0,17581713,17581729,17581744,smic/HS_long/SMIC_HS_E/s20/s20_ne_02/image17581713.jpg,smic/HS_long/SMIC_HS_E/s20/s20_ne_02/image17581729.jpg,smic/HS_long/SMIC_HS_E/s20/s20_ne_02/image17581744.jpg 4 | smic,20,s20_ne_03,0,17625391,17625409,17625424,smic/HS_long/SMIC_HS_E/s20/s20_ne_03/image17625391.jpg,smic/HS_long/SMIC_HS_E/s20/s20_ne_03/image17625409.jpg,smic/HS_long/SMIC_HS_E/s20/s20_ne_03/image17625424.jpg 5 | smic,20,s20_ne_04,0,17651135,17651146,17651157,smic/HS_long/SMIC_HS_E/s20/s20_ne_04/image17651135.jpg,smic/HS_long/SMIC_HS_E/s20/s20_ne_04/image17651146.jpg,smic/HS_long/SMIC_HS_E/s20/s20_ne_04/image17651157.jpg 6 | smic,20,s20_ne_05,0,17664393,17664408,17664423,smic/HS_long/SMIC_HS_E/s20/s20_ne_05/image17664393.jpg,smic/HS_long/SMIC_HS_E/s20/s20_ne_05/image17664408.jpg,smic/HS_long/SMIC_HS_E/s20/s20_ne_05/image17664423.jpg 7 | smic,20,s20_ne_06,0,17668815,17668824,17668835,smic/HS_long/SMIC_HS_E/s20/s20_ne_06/image17668815.jpg,smic/HS_long/SMIC_HS_E/s20/s20_ne_06/image17668824.jpg,smic/HS_long/SMIC_HS_E/s20/s20_ne_06/image17668835.jpg 8 | smic,20,s20_ne_07,0,17668953,17668965,17668969,smic/HS_long/SMIC_HS_E/s20/s20_ne_07/image17668953.jpg,smic/HS_long/SMIC_HS_E/s20/s20_ne_07/image17668965.jpg,smic/HS_long/SMIC_HS_E/s20/s20_ne_07/image17668969.jpg 9 | smic,20,s20_ne_08,0,17670640,17670656,17670684,smic/HS_long/SMIC_HS_E/s20/s20_ne_08/image17670640.jpg,smic/HS_long/SMIC_HS_E/s20/s20_ne_08/image17670656.jpg,smic/HS_long/SMIC_HS_E/s20/s20_ne_08/image17670684.jpg 10 | smic,20,s20_ne_09,0,17678517,17678539,17678552,smic/HS_long/SMIC_HS_E/s20/s20_ne_09/image17678517.jpg,smic/HS_long/SMIC_HS_E/s20/s20_ne_09/image17678539.jpg,smic/HS_long/SMIC_HS_E/s20/s20_ne_09/image17678552.jpg 11 | smic,20,s20_ne_10,0,17707991,17708007,17708009,smic/HS_long/SMIC_HS_E/s20/s20_ne_10/image17707991.jpg,smic/HS_long/SMIC_HS_E/s20/s20_ne_10/image17708007.jpg,smic/HS_long/SMIC_HS_E/s20/s20_ne_10/image17708009.jpg 12 | smic,20,s20_ne_11,0,17841447,17841465,17841478,smic/HS_long/SMIC_HS_E/s20/s20_ne_11/image17841447.jpg,smic/HS_long/SMIC_HS_E/s20/s20_ne_11/image17841465.jpg,smic/HS_long/SMIC_HS_E/s20/s20_ne_11/image17841478.jpg 13 | smic,20,s20_ne_12,0,17832772,17832794,17832809,smic/HS_long/SMIC_HS_E/s20/s20_ne_12/image17832772.jpg,smic/HS_long/SMIC_HS_E/s20/s20_ne_12/image17832794.jpg,smic/HS_long/SMIC_HS_E/s20/s20_ne_12/image17832809.jpg 14 | smic,20,s20_ne_13,0,17835887,17835907,17835924,smic/HS_long/SMIC_HS_E/s20/s20_ne_13/image17835887.jpg,smic/HS_long/SMIC_HS_E/s20/s20_ne_13/image17835907.jpg,smic/HS_long/SMIC_HS_E/s20/s20_ne_13/image17835924.jpg 15 | smic,20,s20_ne_14,0,17837691,17837725,17837740,smic/HS_long/SMIC_HS_E/s20/s20_ne_14/image17837691.jpg,smic/HS_long/SMIC_HS_E/s20/s20_ne_14/image17837725.jpg,smic/HS_long/SMIC_HS_E/s20/s20_ne_14/image17837740.jpg 16 | smic,20,s20_po_01,1,17598752,17598783,17598798,smic/HS_long/SMIC_HS_E/s20/s20_po_01/image17598752.jpg,smic/HS_long/SMIC_HS_E/s20/s20_po_01/image17598783.jpg,smic/HS_long/SMIC_HS_E/s20/s20_po_01/image17598798.jpg 17 | smic,20,s20_po_02,1,17646868,17646888,17646910,smic/HS_long/SMIC_HS_E/s20/s20_po_02/image17646868.jpg,smic/HS_long/SMIC_HS_E/s20/s20_po_02/image17646888.jpg,smic/HS_long/SMIC_HS_E/s20/s20_po_02/image17646910.jpg 18 | smic,20,s20_po_03,1,17748546,17748569,17748570,smic/HS_long/SMIC_HS_E/s20/s20_po_03/image17748546.jpg,smic/HS_long/SMIC_HS_E/s20/s20_po_03/image17748569.jpg,smic/HS_long/SMIC_HS_E/s20/s20_po_03/image17748570.jpg 19 | smic,20,s20_sur_01,2,17597115,17597132,17597152,smic/HS_long/SMIC_HS_E/s20/s20_sur_01/image17597115.jpg,smic/HS_long/SMIC_HS_E/s20/s20_sur_01/image17597132.jpg,smic/HS_long/SMIC_HS_E/s20/s20_sur_01/image17597152.jpg 20 | smic,20,s20_sur_02,2,17692849,17692864,17692870,smic/HS_long/SMIC_HS_E/s20/s20_sur_02/image17692849.jpg,smic/HS_long/SMIC_HS_E/s20/s20_sur_02/image17692864.jpg,smic/HS_long/SMIC_HS_E/s20/s20_sur_02/image17692870.jpg 21 | smic,20,s20_sur_03,2,17761454,17761479,17761502,smic/HS_long/SMIC_HS_E/s20/s20_sur_03/image17761454.jpg,smic/HS_long/SMIC_HS_E/s20/s20_sur_03/image17761479.jpg,smic/HS_long/SMIC_HS_E/s20/s20_sur_03/image17761502.jpg 22 | smic,20,s20_sur_04,2,17763111,17763134,17763151,smic/HS_long/SMIC_HS_E/s20/s20_sur_04/image17763111.jpg,smic/HS_long/SMIC_HS_E/s20/s20_sur_04/image17763134.jpg,smic/HS_long/SMIC_HS_E/s20/s20_sur_04/image17763151.jpg 23 | smic,20,s20_sur_05,2,17771577,17771588,17771600,smic/HS_long/SMIC_HS_E/s20/s20_sur_05/image17771577.jpg,smic/HS_long/SMIC_HS_E/s20/s20_sur_05/image17771588.jpg,smic/HS_long/SMIC_HS_E/s20/s20_sur_05/image17771600.jpg 24 | smic,14,s14_ne_01,0,34208,34238,34258,smic/HS_long/SMIC_HS_E/s14/s14_ne_01/image034208.jpg,smic/HS_long/SMIC_HS_E/s14/s14_ne_01/image034238.jpg,smic/HS_long/SMIC_HS_E/s14/s14_ne_01/image034258.jpg 25 | smic,14,s14_ne_02,0,37634,37653,37671,smic/HS_long/SMIC_HS_E/s14/s14_ne_02/image037634.jpg,smic/HS_long/SMIC_HS_E/s14/s14_ne_02/image037653.jpg,smic/HS_long/SMIC_HS_E/s14/s14_ne_02/image037671.jpg 26 | smic,14,s14_ne_03,0,199541,199570,199598,smic/HS_long/SMIC_HS_E/s14/s14_ne_03/image199541.jpg,smic/HS_long/SMIC_HS_E/s14/s14_ne_03/image199570.jpg,smic/HS_long/SMIC_HS_E/s14/s14_ne_03/image199598.jpg 27 | smic,14,s14_po_01,1,212541,212569,212590,smic/HS_long/SMIC_HS_E/s14/s14_po_01/image212541.jpg,smic/HS_long/SMIC_HS_E/s14/s14_po_01/image212569.jpg,smic/HS_long/SMIC_HS_E/s14/s14_po_01/image212590.jpg 28 | smic,14,s14_po_02,1,285183,285214,285231,smic/HS_long/SMIC_HS_E/s14/s14_po_02/image285183.jpg,smic/HS_long/SMIC_HS_E/s14/s14_po_02/image285214.jpg,smic/HS_long/SMIC_HS_E/s14/s14_po_02/image285231.jpg 29 | smic,14,s14_sur_01,2,81902,81923,81939,smic/HS_long/SMIC_HS_E/s14/s14_sur_01/image081902.jpg,smic/HS_long/SMIC_HS_E/s14/s14_sur_01/image081923.jpg,smic/HS_long/SMIC_HS_E/s14/s14_sur_01/image081939.jpg 30 | smic,14,s14_sur_02,2,86607,86623,86642,smic/HS_long/SMIC_HS_E/s14/s14_sur_02/image086607.jpg,smic/HS_long/SMIC_HS_E/s14/s14_sur_02/image086623.jpg,smic/HS_long/SMIC_HS_E/s14/s14_sur_02/image086642.jpg 31 | smic,14,s14_sur_03,2,106337,106348,106375,smic/HS_long/SMIC_HS_E/s14/s14_sur_03/image106337.jpg,smic/HS_long/SMIC_HS_E/s14/s14_sur_03/image106348.jpg,smic/HS_long/SMIC_HS_E/s14/s14_sur_03/image106375.jpg 32 | smic,14,s14_sur_04,2,233391,233414,233435,smic/HS_long/SMIC_HS_E/s14/s14_sur_04/image233391.jpg,smic/HS_long/SMIC_HS_E/s14/s14_sur_04/image233414.jpg,smic/HS_long/SMIC_HS_E/s14/s14_sur_04/image233435.jpg 33 | smic,14,s14_sur_05,2,278976,278995,279016,smic/HS_long/SMIC_HS_E/s14/s14_sur_05/image278976.jpg,smic/HS_long/SMIC_HS_E/s14/s14_sur_05/image278995.jpg,smic/HS_long/SMIC_HS_E/s14/s14_sur_05/image279016.jpg 34 | smic,18,s18_ne_01,0,1644341,1644374,1644379,smic/HS_long/SMIC_HS_E/s18/s18_ne_01/image1644341.jpg,smic/HS_long/SMIC_HS_E/s18/s18_ne_01/image1644374.jpg,smic/HS_long/SMIC_HS_E/s18/s18_ne_01/image1644379.jpg 35 | smic,18,s18_ne_02,0,1760613,1760640,1760658,smic/HS_long/SMIC_HS_E/s18/s18_ne_02/image1760613.jpg,smic/HS_long/SMIC_HS_E/s18/s18_ne_02/image1760640.jpg,smic/HS_long/SMIC_HS_E/s18/s18_ne_02/image1760658.jpg 36 | smic,18,s18_sur_01,2,1642685,1642698,1642721,smic/HS_long/SMIC_HS_E/s18/s18_sur_01/image1642685.jpg,smic/HS_long/SMIC_HS_E/s18/s18_sur_01/image1642698.jpg,smic/HS_long/SMIC_HS_E/s18/s18_sur_01/image1642721.jpg 37 | smic,18,s18_sur_02,2,1692902,1692917,1692933,smic/HS_long/SMIC_HS_E/s18/s18_sur_02/image1692902.jpg,smic/HS_long/SMIC_HS_E/s18/s18_sur_02/image1692917.jpg,smic/HS_long/SMIC_HS_E/s18/s18_sur_02/image1692933.jpg 38 | smic,18,s18_sur_03,0,1695782,1695793,1695809,smic/HS_long/SMIC_HS_E/s18/s18_sur_03/image1695782.jpg,smic/HS_long/SMIC_HS_E/s18/s18_sur_03/image1695793.jpg,smic/HS_long/SMIC_HS_E/s18/s18_sur_03/image1695809.jpg 39 | smic,18,s18_sur_04,2,1712971,1712989,1713006,smic/HS_long/SMIC_HS_E/s18/s18_sur_04/image1712971.jpg,smic/HS_long/SMIC_HS_E/s18/s18_sur_04/image1712989.jpg,smic/HS_long/SMIC_HS_E/s18/s18_sur_04/image1713006.jpg 40 | smic,18,s18_sur_05,2,1859405,1859422,1859444,smic/HS_long/SMIC_HS_E/s18/s18_sur_05/image1859405.jpg,smic/HS_long/SMIC_HS_E/s18/s18_sur_05/image1859422.jpg,smic/HS_long/SMIC_HS_E/s18/s18_sur_05/image1859444.jpg 41 | smic,19,s19_po_01,1,32615570,32615592,32615604,smic/HS_long/SMIC_HS_E/s19/s19_po_01/image32615570.jpg,smic/HS_long/SMIC_HS_E/s19/s19_po_01/image32615592.jpg,smic/HS_long/SMIC_HS_E/s19/s19_po_01/image32615604.jpg 42 | smic,19,s19_sur_01,2,32483855,32483872,32483904,smic/HS_long/SMIC_HS_E/s19/s19_sur_01/image32483855.jpg,smic/HS_long/SMIC_HS_E/s19/s19_sur_01/image32483872.jpg,smic/HS_long/SMIC_HS_E/s19/s19_sur_01/image32483904.jpg 43 | smic,13,s13_po_01,1,90884,90904,90929,smic/HS_long/SMIC_HS_E/s13/s13_po_01/image090884.jpg,smic/HS_long/SMIC_HS_E/s13/s13_po_01/image090904.jpg,smic/HS_long/SMIC_HS_E/s13/s13_po_01/image090929.jpg 44 | smic,13,s13_po_02,1,92721,92735,92753,smic/HS_long/SMIC_HS_E/s13/s13_po_02/image092721.jpg,smic/HS_long/SMIC_HS_E/s13/s13_po_02/image092735.jpg,smic/HS_long/SMIC_HS_E/s13/s13_po_02/image092753.jpg 45 | smic,13,s13_po_03,1,93081,93102,93117,smic/HS_long/SMIC_HS_E/s13/s13_po_03/image093081.jpg,smic/HS_long/SMIC_HS_E/s13/s13_po_03/image093102.jpg,smic/HS_long/SMIC_HS_E/s13/s13_po_03/image093117.jpg 46 | smic,13,s13_po_04,1,93850,93882,93899,smic/HS_long/SMIC_HS_E/s13/s13_po_04/image093850.jpg,smic/HS_long/SMIC_HS_E/s13/s13_po_04/image093882.jpg,smic/HS_long/SMIC_HS_E/s13/s13_po_04/image093899.jpg 47 | smic,13,s13_po_05,1,94312,94335,94358,smic/HS_long/SMIC_HS_E/s13/s13_po_05/image094312.jpg,smic/HS_long/SMIC_HS_E/s13/s13_po_05/image094335.jpg,smic/HS_long/SMIC_HS_E/s13/s13_po_05/image094358.jpg 48 | smic,13,s13_po_06,1,103371,103388,103412,smic/HS_long/SMIC_HS_E/s13/s13_po_06/image103371.jpg,smic/HS_long/SMIC_HS_E/s13/s13_po_06/image103388.jpg,smic/HS_long/SMIC_HS_E/s13/s13_po_06/image103412.jpg 49 | smic,13,s13_po_07,1,109647,109664,109677,smic/HS_long/SMIC_HS_E/s13/s13_po_07/image109647.jpg,smic/HS_long/SMIC_HS_E/s13/s13_po_07/image109664.jpg,smic/HS_long/SMIC_HS_E/s13/s13_po_07/image109677.jpg 50 | smic,13,s13_po_08,1,110314,110331,110349,smic/HS_long/SMIC_HS_E/s13/s13_po_08/image110314.jpg,smic/HS_long/SMIC_HS_E/s13/s13_po_08/image110331.jpg,smic/HS_long/SMIC_HS_E/s13/s13_po_08/image110349.jpg 51 | smic,13,s13_po_09,1,141444,141463,141484,smic/HS_long/SMIC_HS_E/s13/s13_po_09/image141444.jpg,smic/HS_long/SMIC_HS_E/s13/s13_po_09/image141463.jpg,smic/HS_long/SMIC_HS_E/s13/s13_po_09/image141484.jpg 52 | smic,13,s13_po_10,1,143012,143033,143057,smic/HS_long/SMIC_HS_E/s13/s13_po_10/image143012.jpg,smic/HS_long/SMIC_HS_E/s13/s13_po_10/image143033.jpg,smic/HS_long/SMIC_HS_E/s13/s13_po_10/image143057.jpg 53 | smic,12,s12_po_01,1,8463663,8463689,8463712,smic/HS_long/SMIC_HS_E/s12/s12_po_01/image8463663.jpg,smic/HS_long/SMIC_HS_E/s12/s12_po_01/image8463689.jpg,smic/HS_long/SMIC_HS_E/s12/s12_po_01/image8463712.jpg 54 | smic,12,s12_po_02,1,8468220,8468232,8468245,smic/HS_long/SMIC_HS_E/s12/s12_po_02/image8468220.jpg,smic/HS_long/SMIC_HS_E/s12/s12_po_02/image8468232.jpg,smic/HS_long/SMIC_HS_E/s12/s12_po_02/image8468245.jpg 55 | smic,12,s12_po_03,1,8473248,8473266,8473294,smic/HS_long/SMIC_HS_E/s12/s12_po_03/image8473248.jpg,smic/HS_long/SMIC_HS_E/s12/s12_po_03/image8473266.jpg,smic/HS_long/SMIC_HS_E/s12/s12_po_03/image8473294.jpg 56 | smic,12,s12_po_04,1,8556703,8556714,8556730,smic/HS_long/SMIC_HS_E/s12/s12_po_04/image8556703.jpg,smic/HS_long/SMIC_HS_E/s12/s12_po_04/image8556714.jpg,smic/HS_long/SMIC_HS_E/s12/s12_po_04/image8556730.jpg 57 | smic,12,s12_po_05,1,8557042,8557053,8557072,smic/HS_long/SMIC_HS_E/s12/s12_po_05/image8557042.jpg,smic/HS_long/SMIC_HS_E/s12/s12_po_05/image8557053.jpg,smic/HS_long/SMIC_HS_E/s12/s12_po_05/image8557072.jpg 58 | smic,12,s12_po_06,1,8559942,8559964,8559981,smic/HS_long/SMIC_HS_E/s12/s12_po_06/image8559942.jpg,smic/HS_long/SMIC_HS_E/s12/s12_po_06/image8559964.jpg,smic/HS_long/SMIC_HS_E/s12/s12_po_06/image8559981.jpg 59 | smic,12,s12_po_07,1,8596344,8596378,8596393,smic/HS_long/SMIC_HS_E/s12/s12_po_07/image8596344.jpg,smic/HS_long/SMIC_HS_E/s12/s12_po_07/image8596378.jpg,smic/HS_long/SMIC_HS_E/s12/s12_po_07/image8596393.jpg 60 | smic,12,s12_po_08,1,8641010,8641036,8641050,smic/HS_long/SMIC_HS_E/s12/s12_po_08/image8641010.jpg,smic/HS_long/SMIC_HS_E/s12/s12_po_08/image8641036.jpg,smic/HS_long/SMIC_HS_E/s12/s12_po_08/image8641050.jpg 61 | smic,12,s12_sur_01,2,8394314,8394332,8394351,smic/HS_long/SMIC_HS_E/s12/s12_sur_01/image8394314.jpg,smic/HS_long/SMIC_HS_E/s12/s12_sur_01/image8394332.jpg,smic/HS_long/SMIC_HS_E/s12/s12_sur_01/image8394351.jpg 62 | smic,11,s11_ne_01,0,425358,425371,425378,smic/HS_long/SMIC_HS_E/s11/s11_ne_01/image425358.jpg,smic/HS_long/SMIC_HS_E/s11/s11_ne_01/image425371.jpg,smic/HS_long/SMIC_HS_E/s11/s11_ne_01/image425378.jpg 63 | smic,11,s11_ne_02,0,514569,514588,514599,smic/HS_long/SMIC_HS_E/s11/s11_ne_02/image514569.jpg,smic/HS_long/SMIC_HS_E/s11/s11_ne_02/image514588.jpg,smic/HS_long/SMIC_HS_E/s11/s11_ne_02/image514599.jpg 64 | smic,11,s11_ne_03,0,559504,559527,559544,smic/HS_long/SMIC_HS_E/s11/s11_ne_03/image559504.jpg,smic/HS_long/SMIC_HS_E/s11/s11_ne_03/image559527.jpg,smic/HS_long/SMIC_HS_E/s11/s11_ne_03/image559544.jpg 65 | smic,11,s11_po_01,1,472873,472914,472921,smic/HS_long/SMIC_HS_E/s11/s11_po_01/image472873.jpg,smic/HS_long/SMIC_HS_E/s11/s11_po_01/image472914.jpg,smic/HS_long/SMIC_HS_E/s11/s11_po_01/image472921.jpg 66 | smic,11,s11_po_02,1,609978,609994,610025,smic/HS_long/SMIC_HS_E/s11/s11_po_02/image609978.jpg,smic/HS_long/SMIC_HS_E/s11/s11_po_02/image609994.jpg,smic/HS_long/SMIC_HS_E/s11/s11_po_02/image610025.jpg 67 | smic,11,s11_po_03,1,622777,622795,622820,smic/HS_long/SMIC_HS_E/s11/s11_po_03/image622777.jpg,smic/HS_long/SMIC_HS_E/s11/s11_po_03/image622795.jpg,smic/HS_long/SMIC_HS_E/s11/s11_po_03/image622820.jpg 68 | smic,11,s11_sur_01,2,653392,653402,653423,smic/HS_long/SMIC_HS_E/s11/s11_sur_01/image653392.jpg,smic/HS_long/SMIC_HS_E/s11/s11_sur_01/image653402.jpg,smic/HS_long/SMIC_HS_E/s11/s11_sur_01/image653423.jpg 69 | smic,15,s15_ne_01,0,729591,729612,729640,smic/HS_long/SMIC_HS_E/s15/s15_ne_01/image729591.jpg,smic/HS_long/SMIC_HS_E/s15/s15_ne_01/image729612.jpg,smic/HS_long/SMIC_HS_E/s15/s15_ne_01/image729640.jpg 70 | smic,15,s15_po_01,1,923822,923833,923870,smic/HS_long/SMIC_HS_E/s15/s15_po_01/image923822.jpg,smic/HS_long/SMIC_HS_E/s15/s15_po_01/image923833.jpg,smic/HS_long/SMIC_HS_E/s15/s15_po_01/image923870.jpg 71 | smic,15,s15_sur_01,2,835624,835630,835656,smic/HS_long/SMIC_HS_E/s15/s15_sur_01/image835624.jpg,smic/HS_long/SMIC_HS_E/s15/s15_sur_01/image835630.jpg,smic/HS_long/SMIC_HS_E/s15/s15_sur_01/image835656.jpg 72 | smic,15,s15_sur_02,2,925646,925671,925686,smic/HS_long/SMIC_HS_E/s15/s15_sur_02/image925646.jpg,smic/HS_long/SMIC_HS_E/s15/s15_sur_02/image925671.jpg,smic/HS_long/SMIC_HS_E/s15/s15_sur_02/image925686.jpg 73 | smic,1,s1_ne_01,0,559740,559753,559775,smic/HS_long/SMIC_HS_E/s01/s1_ne_01/image559740.jpg,smic/HS_long/SMIC_HS_E/s01/s1_ne_01/image559753.jpg,smic/HS_long/SMIC_HS_E/s01/s1_ne_01/image559775.jpg 74 | smic,1,s1_ne_03,0,658536,658549,658562,smic/HS_long/SMIC_HS_E/s01/s1_ne_03/image658536.jpg,smic/HS_long/SMIC_HS_E/s01/s1_ne_03/image658549.jpg,smic/HS_long/SMIC_HS_E/s01/s1_ne_03/image658562.jpg 75 | smic,1,s1_po_01,1,701843,701860,701865,smic/HS_long/SMIC_HS_E/s01/s1_po_01/image701843.jpg,smic/HS_long/SMIC_HS_E/s01/s1_po_01/image701860.jpg,smic/HS_long/SMIC_HS_E/s01/s1_po_01/image701865.jpg 76 | smic,1,s1_po_02,1,702609,702612,702638,smic/HS_long/SMIC_HS_E/s01/s1_po_02/image702609.jpg,smic/HS_long/SMIC_HS_E/s01/s1_po_02/image702612.jpg,smic/HS_long/SMIC_HS_E/s01/s1_po_02/image702638.jpg 77 | smic,1,s1_sur_01,2,549990,550007,550022,smic/HS_long/SMIC_HS_E/s01/s1_sur_01/image549990.jpg,smic/HS_long/SMIC_HS_E/s01/s1_sur_01/image550007.jpg,smic/HS_long/SMIC_HS_E/s01/s1_sur_01/image550022.jpg 78 | smic,2,s2_po_01,1,76518,76536,76546,smic/HS_long/SMIC_HS_E/s02/s2_po_01/image076518.jpg,smic/HS_long/SMIC_HS_E/s02/s2_po_01/image076536.jpg,smic/HS_long/SMIC_HS_E/s02/s2_po_01/image076546.jpg 79 | smic,2,s2_sur_01,2,90868,90878,90894,smic/HS_long/SMIC_HS_E/s02/s2_sur_01/image090868.jpg,smic/HS_long/SMIC_HS_E/s02/s2_sur_01/image090878.jpg,smic/HS_long/SMIC_HS_E/s02/s2_sur_01/image090894.jpg 80 | smic,2,s2_sur_02,2,106180,106213,106214,smic/HS_long/SMIC_HS_E/s02/s2_sur_02/image106180.jpg,smic/HS_long/SMIC_HS_E/s02/s2_sur_02/image106213.jpg,smic/HS_long/SMIC_HS_E/s02/s2_sur_02/image106214.jpg 81 | smic,2,s2_sur_03,2,112010,112027,112050,smic/HS_long/SMIC_HS_E/s02/s2_sur_03/image112010.jpg,smic/HS_long/SMIC_HS_E/s02/s2_sur_03/image112027.jpg,smic/HS_long/SMIC_HS_E/s02/s2_sur_03/image112050.jpg 82 | smic,2,s2_sur_04,2,131313,131330,131347,smic/HS_long/SMIC_HS_E/s02/s2_sur_04/image131313.jpg,smic/HS_long/SMIC_HS_E/s02/s2_sur_04/image131330.jpg,smic/HS_long/SMIC_HS_E/s02/s2_sur_04/image131347.jpg 83 | smic,3,s3_ne_01,0,257900,257913,257925,smic/HS_long/SMIC_HS_E/s03/s3_ne_01/image257900.jpg,smic/HS_long/SMIC_HS_E/s03/s3_ne_01/image257913.jpg,smic/HS_long/SMIC_HS_E/s03/s3_ne_01/image257925.jpg 84 | smic,3,s3_ne_02,0,302330,302340,302356,smic/HS_long/SMIC_HS_E/s03/s3_ne_02/image302330.jpg,smic/HS_long/SMIC_HS_E/s03/s3_ne_02/image302340.jpg,smic/HS_long/SMIC_HS_E/s03/s3_ne_02/image302356.jpg 85 | smic,3,s3_ne_04,0,303090,303101,303110,smic/HS_long/SMIC_HS_E/s03/s3_ne_04/image303090.jpg,smic/HS_long/SMIC_HS_E/s03/s3_ne_04/image303101.jpg,smic/HS_long/SMIC_HS_E/s03/s3_ne_04/image303110.jpg 86 | smic,3,s3_ne_05,0,304365,304376,304390,smic/HS_long/SMIC_HS_E/s03/s3_ne_05/image304365.jpg,smic/HS_long/SMIC_HS_E/s03/s3_ne_05/image304376.jpg,smic/HS_long/SMIC_HS_E/s03/s3_ne_05/image304390.jpg 87 | smic,3,s3_ne_06,0,304979,304996,305020,smic/HS_long/SMIC_HS_E/s03/s3_ne_06/image304979.jpg,smic/HS_long/SMIC_HS_E/s03/s3_ne_06/image304996.jpg,smic/HS_long/SMIC_HS_E/s03/s3_ne_06/image305020.jpg 88 | smic,3,s3_ne_07,0,307920,307933,307950,smic/HS_long/SMIC_HS_E/s03/s3_ne_07/image307920.jpg,smic/HS_long/SMIC_HS_E/s03/s3_ne_07/image307933.jpg,smic/HS_long/SMIC_HS_E/s03/s3_ne_07/image307950.jpg 89 | smic,3,s3_ne_08,0,325380,325412,325420,smic/HS_long/SMIC_HS_E/s03/s3_ne_08/image325380.jpg,smic/HS_long/SMIC_HS_E/s03/s3_ne_08/image325412.jpg,smic/HS_long/SMIC_HS_E/s03/s3_ne_08/image325420.jpg 90 | smic,3,s3_ne_09,0,357430,357449,357450,smic/HS_long/SMIC_HS_E/s03/s3_ne_09/image357430.jpg,smic/HS_long/SMIC_HS_E/s03/s3_ne_09/image357449.jpg,smic/HS_long/SMIC_HS_E/s03/s3_ne_09/image357450.jpg 91 | smic,3,s3_ne_10,0,358085,358098,358115,smic/HS_long/SMIC_HS_E/s03/s3_ne_10/image358085.jpg,smic/HS_long/SMIC_HS_E/s03/s3_ne_10/image358098.jpg,smic/HS_long/SMIC_HS_E/s03/s3_ne_10/image358115.jpg 92 | smic,3,s3_ne_11,0,362132,362148,362157,smic/HS_long/SMIC_HS_E/s03/s3_ne_11/image362132.jpg,smic/HS_long/SMIC_HS_E/s03/s3_ne_11/image362148.jpg,smic/HS_long/SMIC_HS_E/s03/s3_ne_11/image362157.jpg 93 | smic,3,s3_ne_12,0,365106,365115,365128,smic/HS_long/SMIC_HS_E/s03/s3_ne_12/image365106.jpg,smic/HS_long/SMIC_HS_E/s03/s3_ne_12/image365115.jpg,smic/HS_long/SMIC_HS_E/s03/s3_ne_12/image365128.jpg 94 | smic,3,s3_ne_13,0,388781,388795,388811,smic/HS_long/SMIC_HS_E/s03/s3_ne_13/image388781.jpg,smic/HS_long/SMIC_HS_E/s03/s3_ne_13/image388795.jpg,smic/HS_long/SMIC_HS_E/s03/s3_ne_13/image388811.jpg 95 | smic,3,s3_ne_14,0,401504,401520,401533,smic/HS_long/SMIC_HS_E/s03/s3_ne_14/image401504.jpg,smic/HS_long/SMIC_HS_E/s03/s3_ne_14/image401520.jpg,smic/HS_long/SMIC_HS_E/s03/s3_ne_14/image401533.jpg 96 | smic,3,s3_ne_15,0,406314,406327,406348,smic/HS_long/SMIC_HS_E/s03/s3_ne_15/image406314.jpg,smic/HS_long/SMIC_HS_E/s03/s3_ne_15/image406327.jpg,smic/HS_long/SMIC_HS_E/s03/s3_ne_15/image406348.jpg 97 | smic,3,s3_ne_16,0,409046,409052,409062,smic/HS_long/SMIC_HS_E/s03/s3_ne_16/image409046.jpg,smic/HS_long/SMIC_HS_E/s03/s3_ne_16/image409052.jpg,smic/HS_long/SMIC_HS_E/s03/s3_ne_16/image409062.jpg 98 | smic,3,s3_ne_17,0,425101,425116,425134,smic/HS_long/SMIC_HS_E/s03/s3_ne_17/image425101.jpg,smic/HS_long/SMIC_HS_E/s03/s3_ne_17/image425116.jpg,smic/HS_long/SMIC_HS_E/s03/s3_ne_17/image425134.jpg 99 | smic,3,s3_ne_18,0,425330,425345,425369,smic/HS_long/SMIC_HS_E/s03/s3_ne_18/image425330.jpg,smic/HS_long/SMIC_HS_E/s03/s3_ne_18/image425345.jpg,smic/HS_long/SMIC_HS_E/s03/s3_ne_18/image425369.jpg 100 | smic,3,s3_ne_19,0,425879,425900,425918,smic/HS_long/SMIC_HS_E/s03/s3_ne_19/image425879.jpg,smic/HS_long/SMIC_HS_E/s03/s3_ne_19/image425900.jpg,smic/HS_long/SMIC_HS_E/s03/s3_ne_19/image425918.jpg 101 | smic,3,s3_ne_21,0,427607,427614,427626,smic/HS_long/SMIC_HS_E/s03/s3_ne_21/image427607.jpg,smic/HS_long/SMIC_HS_E/s03/s3_ne_21/image427614.jpg,smic/HS_long/SMIC_HS_E/s03/s3_ne_21/image427626.jpg 102 | smic,3,s3_ne_22,0,443812,443824,443834,smic/HS_long/SMIC_HS_E/s03/s3_ne_22/image443812.jpg,smic/HS_long/SMIC_HS_E/s03/s3_ne_22/image443824.jpg,smic/HS_long/SMIC_HS_E/s03/s3_ne_22/image443834.jpg 103 | smic,3,s3_po_01,1,272800,272812,272825,smic/HS_long/SMIC_HS_E/s03/s3_po_01/image272800.jpg,smic/HS_long/SMIC_HS_E/s03/s3_po_01/image272812.jpg,smic/HS_long/SMIC_HS_E/s03/s3_po_01/image272825.jpg 104 | smic,3,s3_po_02,1,291386,291396,291419,smic/HS_long/SMIC_HS_E/s03/s3_po_02/image291386.jpg,smic/HS_long/SMIC_HS_E/s03/s3_po_02/image291396.jpg,smic/HS_long/SMIC_HS_E/s03/s3_po_02/image291419.jpg 105 | smic,3,s3_po_03,1,293422,293430,293440,smic/HS_long/SMIC_HS_E/s03/s3_po_03/image293422.jpg,smic/HS_long/SMIC_HS_E/s03/s3_po_03/image293430.jpg,smic/HS_long/SMIC_HS_E/s03/s3_po_03/image293440.jpg 106 | smic,3,s3_po_04,1,294795,294804,294820,smic/HS_long/SMIC_HS_E/s03/s3_po_04/image294795.jpg,smic/HS_long/SMIC_HS_E/s03/s3_po_04/image294804.jpg,smic/HS_long/SMIC_HS_E/s03/s3_po_04/image294820.jpg 107 | smic,3,s3_po_05,1,304630,304643,304660,smic/HS_long/SMIC_HS_E/s03/s3_po_05/image304630.jpg,smic/HS_long/SMIC_HS_E/s03/s3_po_05/image304643.jpg,smic/HS_long/SMIC_HS_E/s03/s3_po_05/image304660.jpg 108 | smic,3,s3_po_06,1,379734,379747,379759,smic/HS_long/SMIC_HS_E/s03/s3_po_06/image379734.jpg,smic/HS_long/SMIC_HS_E/s03/s3_po_06/image379747.jpg,smic/HS_long/SMIC_HS_E/s03/s3_po_06/image379759.jpg 109 | smic,3,s3_po_07,1,387920,387938,387958,smic/HS_long/SMIC_HS_E/s03/s3_po_07/image387920.jpg,smic/HS_long/SMIC_HS_E/s03/s3_po_07/image387938.jpg,smic/HS_long/SMIC_HS_E/s03/s3_po_07/image387958.jpg 110 | smic,3,s3_po_08,1,402194,402206,402223,smic/HS_long/SMIC_HS_E/s03/s3_po_08/image402194.jpg,smic/HS_long/SMIC_HS_E/s03/s3_po_08/image402206.jpg,smic/HS_long/SMIC_HS_E/s03/s3_po_08/image402223.jpg 111 | smic,3,s3_po_09,1,402936,402959,402973,smic/HS_long/SMIC_HS_E/s03/s3_po_09/image402936.jpg,smic/HS_long/SMIC_HS_E/s03/s3_po_09/image402959.jpg,smic/HS_long/SMIC_HS_E/s03/s3_po_09/image402973.jpg 112 | smic,3,s3_po_10,1,442880,442892,442902,smic/HS_long/SMIC_HS_E/s03/s3_po_10/image442880.jpg,smic/HS_long/SMIC_HS_E/s03/s3_po_10/image442892.jpg,smic/HS_long/SMIC_HS_E/s03/s3_po_10/image442902.jpg 113 | smic,3,s3_po_11,1,443304,443313,443319,smic/HS_long/SMIC_HS_E/s03/s3_po_11/image443304.jpg,smic/HS_long/SMIC_HS_E/s03/s3_po_11/image443313.jpg,smic/HS_long/SMIC_HS_E/s03/s3_po_11/image443319.jpg 114 | smic,3,s3_sur_01,2,308860,308877,308889,smic/HS_long/SMIC_HS_E/s03/s3_sur_01/image308860.jpg,smic/HS_long/SMIC_HS_E/s03/s3_sur_01/image308877.jpg,smic/HS_long/SMIC_HS_E/s03/s3_sur_01/image308889.jpg 115 | smic,3,s3_sur_02,2,397654,397662,397673,smic/HS_long/SMIC_HS_E/s03/s3_sur_02/image397654.jpg,smic/HS_long/SMIC_HS_E/s03/s3_sur_02/image397662.jpg,smic/HS_long/SMIC_HS_E/s03/s3_sur_02/image397673.jpg 116 | smic,3,s3_sur_03,2,399885,399888,399905,smic/HS_long/SMIC_HS_E/s03/s3_sur_03/image399885.jpg,smic/HS_long/SMIC_HS_E/s03/s3_sur_03/image399888.jpg,smic/HS_long/SMIC_HS_E/s03/s3_sur_03/image399905.jpg 117 | smic,3,s3_sur_04,2,401806,401844,401845,smic/HS_long/SMIC_HS_E/s03/s3_sur_04/image401806.jpg,smic/HS_long/SMIC_HS_E/s03/s3_sur_04/image401844.jpg,smic/HS_long/SMIC_HS_E/s03/s3_sur_04/image401845.jpg 118 | smic,3,s3_sur_05,2,402300,402314,402326,smic/HS_long/SMIC_HS_E/s03/s3_sur_05/image402300.jpg,smic/HS_long/SMIC_HS_E/s03/s3_sur_05/image402314.jpg,smic/HS_long/SMIC_HS_E/s03/s3_sur_05/image402326.jpg 119 | smic,3,s3_sur_06,2,403395,403403,403415,smic/HS_long/SMIC_HS_E/s03/s3_sur_06/image403395.jpg,smic/HS_long/SMIC_HS_E/s03/s3_sur_06/image403403.jpg,smic/HS_long/SMIC_HS_E/s03/s3_sur_06/image403415.jpg 120 | smic,4,s4_ne_01,0,104317,104326,104347,smic/HS_long/SMIC_HS_E/s04/s4_ne_01/image104317.jpg,smic/HS_long/SMIC_HS_E/s04/s4_ne_01/image104326.jpg,smic/HS_long/SMIC_HS_E/s04/s4_ne_01/image104347.jpg 121 | smic,4,s4_ne_02,0,147350,147364,147373,smic/HS_long/SMIC_HS_E/s04/s4_ne_02/image147350.jpg,smic/HS_long/SMIC_HS_E/s04/s4_ne_02/image147364.jpg,smic/HS_long/SMIC_HS_E/s04/s4_ne_02/image147373.jpg 122 | smic,4,s4_ne_03,0,148798,148807,148821,smic/HS_long/SMIC_HS_E/s04/s4_ne_03/image148798.jpg,smic/HS_long/SMIC_HS_E/s04/s4_ne_03/image148807.jpg,smic/HS_long/SMIC_HS_E/s04/s4_ne_03/image148821.jpg 123 | smic,4,s4_ne_04,0,219199,219211,219230,smic/HS_long/SMIC_HS_E/s04/s4_ne_04/image219199.jpg,smic/HS_long/SMIC_HS_E/s04/s4_ne_04/image219211.jpg,smic/HS_long/SMIC_HS_E/s04/s4_ne_04/image219230.jpg 124 | smic,4,s4_ne_07,0,229561,229578,229587,smic/HS_long/SMIC_HS_E/s04/s4_ne_07/image229561.jpg,smic/HS_long/SMIC_HS_E/s04/s4_ne_07/image229578.jpg,smic/HS_long/SMIC_HS_E/s04/s4_ne_07/image229587.jpg 125 | smic,4,s4_ne_08,0,230055,230068,230079,smic/HS_long/SMIC_HS_E/s04/s4_ne_08/image230055.jpg,smic/HS_long/SMIC_HS_E/s04/s4_ne_08/image230068.jpg,smic/HS_long/SMIC_HS_E/s04/s4_ne_08/image230079.jpg 126 | smic,4,s4_ne_09,0,232225,232234,232253,smic/HS_long/SMIC_HS_E/s04/s4_ne_09/image232225.jpg,smic/HS_long/SMIC_HS_E/s04/s4_ne_09/image232234.jpg,smic/HS_long/SMIC_HS_E/s04/s4_ne_09/image232253.jpg 127 | smic,4,s4_ne_10,0,244824,244848,244857,smic/HS_long/SMIC_HS_E/s04/s4_ne_10/image244824.jpg,smic/HS_long/SMIC_HS_E/s04/s4_ne_10/image244848.jpg,smic/HS_long/SMIC_HS_E/s04/s4_ne_10/image244857.jpg 128 | smic,4,s4_po_01,1,36219,36227,36250,smic/HS_long/SMIC_HS_E/s04/s4_po_01/image036219.jpg,smic/HS_long/SMIC_HS_E/s04/s4_po_01/image036227.jpg,smic/HS_long/SMIC_HS_E/s04/s4_po_01/image036250.jpg 129 | smic,4,s4_po_02,1,82525,82535,82544,smic/HS_long/SMIC_HS_E/s04/s4_po_02/image082525.jpg,smic/HS_long/SMIC_HS_E/s04/s4_po_02/image082535.jpg,smic/HS_long/SMIC_HS_E/s04/s4_po_02/image082544.jpg 130 | smic,4,s4_po_03,1,166242,166256,166277,smic/HS_long/SMIC_HS_E/s04/s4_po_03/image166242.jpg,smic/HS_long/SMIC_HS_E/s04/s4_po_03/image166256.jpg,smic/HS_long/SMIC_HS_E/s04/s4_po_03/image166277.jpg 131 | smic,4,s4_po_04,1,191963,191976,191991,smic/HS_long/SMIC_HS_E/s04/s4_po_04/image191963.jpg,smic/HS_long/SMIC_HS_E/s04/s4_po_04/image191976.jpg,smic/HS_long/SMIC_HS_E/s04/s4_po_04/image191991.jpg 132 | smic,4,s4_sur_01,2,62922,62941,62965,smic/HS_long/SMIC_HS_E/s04/s4_sur_01/image062922.jpg,smic/HS_long/SMIC_HS_E/s04/s4_sur_01/image062941.jpg,smic/HS_long/SMIC_HS_E/s04/s4_sur_01/image062965.jpg 133 | smic,4,s4_sur_02,2,69757,69770,69789,smic/HS_long/SMIC_HS_E/s04/s4_sur_02/image069757.jpg,smic/HS_long/SMIC_HS_E/s04/s4_sur_02/image069770.jpg,smic/HS_long/SMIC_HS_E/s04/s4_sur_02/image069789.jpg 134 | smic,4,s4_sur_03,2,85893,85903,85916,smic/HS_long/SMIC_HS_E/s04/s4_sur_03/image085893.jpg,smic/HS_long/SMIC_HS_E/s04/s4_sur_03/image085903.jpg,smic/HS_long/SMIC_HS_E/s04/s4_sur_03/image085916.jpg 135 | smic,4,s4_sur_04,2,89333,89341,89352,smic/HS_long/SMIC_HS_E/s04/s4_sur_04/image089333.jpg,smic/HS_long/SMIC_HS_E/s04/s4_sur_04/image089341.jpg,smic/HS_long/SMIC_HS_E/s04/s4_sur_04/image089352.jpg 136 | smic,4,s4_sur_05,2,196085,196092,196109,smic/HS_long/SMIC_HS_E/s04/s4_sur_05/image196085.jpg,smic/HS_long/SMIC_HS_E/s04/s4_sur_05/image196092.jpg,smic/HS_long/SMIC_HS_E/s04/s4_sur_05/image196109.jpg 137 | smic,5,s5_ne_01,0,1038175,1038192,1038204,smic/HS_long/SMIC_HS_E/s05/s5_ne_01/image1038175.jpg,smic/HS_long/SMIC_HS_E/s05/s5_ne_01/image1038192.jpg,smic/HS_long/SMIC_HS_E/s05/s5_ne_01/image1038204.jpg 138 | smic,5,s5_sur_01,2,888353,888360,888395,smic/HS_long/SMIC_HS_E/s05/s5_sur_01/image888353.jpg,smic/HS_long/SMIC_HS_E/s05/s5_sur_01/image888360.jpg,smic/HS_long/SMIC_HS_E/s05/s5_sur_01/image888395.jpg 139 | smic,6,s6_ne_01,0,397681,397705,397720,smic/HS_long/SMIC_HS_E/s06/s6_ne_01/image397681.jpg,smic/HS_long/SMIC_HS_E/s06/s6_ne_01/image397705.jpg,smic/HS_long/SMIC_HS_E/s06/s6_ne_01/image397720.jpg 140 | smic,6,s6_ne_02,0,431016,431030,431050,smic/HS_long/SMIC_HS_E/s06/s6_ne_02/image431016.jpg,smic/HS_long/SMIC_HS_E/s06/s6_ne_02/image431030.jpg,smic/HS_long/SMIC_HS_E/s06/s6_ne_02/image431050.jpg 141 | smic,6,s6_sur_01,2,377459,377472,377483,smic/HS_long/SMIC_HS_E/s06/s6_sur_01/image377459.jpg,smic/HS_long/SMIC_HS_E/s06/s6_sur_01/image377472.jpg,smic/HS_long/SMIC_HS_E/s06/s6_sur_01/image377483.jpg 142 | smic,6,s6_sur_02,2,465510,465519,465550,smic/HS_long/SMIC_HS_E/s06/s6_sur_02/image465510.jpg,smic/HS_long/SMIC_HS_E/s06/s6_sur_02/image465519.jpg,smic/HS_long/SMIC_HS_E/s06/s6_sur_02/image465550.jpg 143 | smic,8,s8_ne_01,0,252626,252649,252665,smic/HS_long/SMIC_HS_E/s08/s8_ne_01/image252626.jpg,smic/HS_long/SMIC_HS_E/s08/s8_ne_01/image252649.jpg,smic/HS_long/SMIC_HS_E/s08/s8_ne_01/image252665.jpg 144 | smic,8,s8_ne_02,0,253559,253585,253586,smic/HS_long/SMIC_HS_E/s08/s8_ne_02/image253559.jpg,smic/HS_long/SMIC_HS_E/s08/s8_ne_02/image253585.jpg,smic/HS_long/SMIC_HS_E/s08/s8_ne_02/image253586.jpg 145 | smic,8,s8_ne_03,0,253737,253759,253764,smic/HS_long/SMIC_HS_E/s08/s8_ne_03/image253737.jpg,smic/HS_long/SMIC_HS_E/s08/s8_ne_03/image253759.jpg,smic/HS_long/SMIC_HS_E/s08/s8_ne_03/image253764.jpg 146 | smic,8,s8_ne_04,0,268321,268336,268357,smic/HS_long/SMIC_HS_E/s08/s8_ne_04/image268321.jpg,smic/HS_long/SMIC_HS_E/s08/s8_ne_04/image268336.jpg,smic/HS_long/SMIC_HS_E/s08/s8_ne_04/image268357.jpg 147 | smic,8,s8_ne_05,0,392225,392239,392265,smic/HS_long/SMIC_HS_E/s08/s8_ne_05/image392225.jpg,smic/HS_long/SMIC_HS_E/s08/s8_ne_05/image392239.jpg,smic/HS_long/SMIC_HS_E/s08/s8_ne_05/image392265.jpg 148 | smic,8,s8_ne_06,0,389675,389708,389722,smic/HS_long/SMIC_HS_E/s08/s8_ne_06/image389675.jpg,smic/HS_long/SMIC_HS_E/s08/s8_ne_06/image389708.jpg,smic/HS_long/SMIC_HS_E/s08/s8_ne_06/image389722.jpg 149 | smic,8,s8_ne_07,0,394020,394040,394042,smic/HS_long/SMIC_HS_E/s08/s8_ne_07/image394020.jpg,smic/HS_long/SMIC_HS_E/s08/s8_ne_07/image394040.jpg,smic/HS_long/SMIC_HS_E/s08/s8_ne_07/image394042.jpg 150 | smic,8,s8_ne_08,0,399100,399111,399127,smic/HS_long/SMIC_HS_E/s08/s8_ne_08/image399100.jpg,smic/HS_long/SMIC_HS_E/s08/s8_ne_08/image399111.jpg,smic/HS_long/SMIC_HS_E/s08/s8_ne_08/image399127.jpg 151 | smic,8,s8_ne_09,0,416956,416975,416995,smic/HS_long/SMIC_HS_E/s08/s8_ne_09/image416956.jpg,smic/HS_long/SMIC_HS_E/s08/s8_ne_09/image416975.jpg,smic/HS_long/SMIC_HS_E/s08/s8_ne_09/image416995.jpg 152 | smic,8,s8_po_01,1,305253,305261,305289,smic/HS_long/SMIC_HS_E/s08/s8_po_01/image305253.jpg,smic/HS_long/SMIC_HS_E/s08/s8_po_01/image305261.jpg,smic/HS_long/SMIC_HS_E/s08/s8_po_01/image305289.jpg 153 | smic,8,s8_po_02,1,332684,332694,332711,smic/HS_long/SMIC_HS_E/s08/s8_po_02/image332684.jpg,smic/HS_long/SMIC_HS_E/s08/s8_po_02/image332694.jpg,smic/HS_long/SMIC_HS_E/s08/s8_po_02/image332711.jpg 154 | smic,8,s8_po_03,1,405004,405032,405035,smic/HS_long/SMIC_HS_E/s08/s8_po_03/image405004.jpg,smic/HS_long/SMIC_HS_E/s08/s8_po_03/image405032.jpg,smic/HS_long/SMIC_HS_E/s08/s8_po_03/image405035.jpg 155 | smic,8,s8_po_04,1,406204,406207,406244,smic/HS_long/SMIC_HS_E/s08/s8_po_04/image406204.jpg,smic/HS_long/SMIC_HS_E/s08/s8_po_04/image406207.jpg,smic/HS_long/SMIC_HS_E/s08/s8_po_04/image406244.jpg 156 | smic,9,s9_po_01,1,72643,72658,72684,smic/HS_long/SMIC_HS_E/s09/s9_po_01/image072643.jpg,smic/HS_long/SMIC_HS_E/s09/s9_po_01/image072658.jpg,smic/HS_long/SMIC_HS_E/s09/s9_po_01/image072684.jpg 157 | smic,9,s9_sur_01,2,61206,61223,61232,smic/HS_long/SMIC_HS_E/s09/s9_sur_01/image061206.jpg,smic/HS_long/SMIC_HS_E/s09/s9_sur_01/image061223.jpg,smic/HS_long/SMIC_HS_E/s09/s9_sur_01/image061232.jpg 158 | smic,9,s9_sur_03,2,91099,91118,91137,smic/HS_long/SMIC_HS_E/s09/s9_sur_03/image091099.jpg,smic/HS_long/SMIC_HS_E/s09/s9_sur_03/image091118.jpg,smic/HS_long/SMIC_HS_E/s09/s9_sur_03/image091137.jpg 159 | -------------------------------------------------------------------------------- /datasets/~$SMIC-HS-E_annotation.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidnvq/me_recognition/cd46da69f9933ac8523e8701e1e2795451d29dfd/datasets/~$SMIC-HS-E_annotation.xlsx -------------------------------------------------------------------------------- /get_result_log.py: -------------------------------------------------------------------------------- 1 | import pickle 2 | from capsule.evaluations import Meter 3 | import pandas as pd 4 | 5 | with open('outputs/scores_capsule_resnet_sampled_freeze.pkl', 'rb') as f: 6 | data = pickle.load(f) 7 | 8 | scores = data['meter'].value() 9 | print(scores[0]) 10 | print(scores[1]) 11 | 12 | Y_pred = data['meter'].Y_pred 13 | Y_true = data['meter'].Y_true 14 | 15 | me = pd.read_csv('datasets/data_apex.csv') 16 | data = 'smic' 17 | subject = '20' 18 | print(data, subject) 19 | 20 | casme2 = {} 21 | smic = {} 22 | samm = {} 23 | 24 | with open('result_log.csv', 'w') as f: 25 | for i in range(len(Y_true)): 26 | y_true = Y_true[i] 27 | 28 | if data != me.iloc[i]['data'] or subject != me.iloc[i]['subject']: 29 | print(me.iloc[i]['data'], me.iloc[i]['subject']) 30 | data = me.iloc[i]['data'] 31 | subject = me.iloc[i]['subject'] 32 | 33 | log_str = str(me.iloc[i]['clip']), Y_true[i], Y_pred[i] + '\n' 34 | f.write(me.iloc[i]['clip'], Y_true[i], Y_pred[i]) 35 | -------------------------------------------------------------------------------- /outputs/scores_capsule_resnet_sampled_fer_freeze.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidnvq/me_recognition/cd46da69f9933ac8523e8701e1e2795451d29dfd/outputs/scores_capsule_resnet_sampled_fer_freeze.pkl -------------------------------------------------------------------------------- /outputs/scores_capsule_resnet_sampled_freeze.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidnvq/me_recognition/cd46da69f9933ac8523e8701e1e2795451d29dfd/outputs/scores_capsule_resnet_sampled_freeze.pkl -------------------------------------------------------------------------------- /outputs/scores_capsule_vgg_sampled.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidnvq/me_recognition/cd46da69f9933ac8523e8701e1e2795451d29dfd/outputs/scores_capsule_vgg_sampled.pkl -------------------------------------------------------------------------------- /outputs/scores_capsule_vgg_sampled_fer.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidnvq/me_recognition/cd46da69f9933ac8523e8701e1e2795451d29dfd/outputs/scores_capsule_vgg_sampled_fer.pkl -------------------------------------------------------------------------------- /outputs/scores_capsule_vgg_sampled_fer_freeze.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidnvq/me_recognition/cd46da69f9933ac8523e8701e1e2795451d29dfd/outputs/scores_capsule_vgg_sampled_fer_freeze.pkl -------------------------------------------------------------------------------- /outputs/scores_capsule_vgg_sampled_fer_not_freeze.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidnvq/me_recognition/cd46da69f9933ac8523e8701e1e2795451d29dfd/outputs/scores_capsule_vgg_sampled_fer_not_freeze.pkl -------------------------------------------------------------------------------- /outputs/scores_capsule_vgg_sampled_freeze.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidnvq/me_recognition/cd46da69f9933ac8523e8701e1e2795451d29dfd/outputs/scores_capsule_vgg_sampled_freeze.pkl -------------------------------------------------------------------------------- /outputs/scores_cnn_resnet_no_macro.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidnvq/me_recognition/cd46da69f9933ac8523e8701e1e2795451d29dfd/outputs/scores_cnn_resnet_no_macro.pkl -------------------------------------------------------------------------------- /outputs/scores_cnn_vgg11_no_macro.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidnvq/me_recognition/cd46da69f9933ac8523e8701e1e2795451d29dfd/outputs/scores_cnn_vgg11_no_macro.pkl -------------------------------------------------------------------------------- /result_log.csv: -------------------------------------------------------------------------------- 1 | casme2 sub01 2 | EP02_01f 1 1 3 | EP19_05f 0 0 4 | EP19_06f 0 0 5 | casme2 sub02 6 | EP01_11f 0 0 7 | EP02_04f 0 1 8 | EP03_02f 0 0 9 | EP06_01f 0 0 10 | EP06_02f 0 0 11 | EP09_01 1 1 12 | EP11_01 2 2 13 | EP13_04 2 2 14 | EP14_01 2 2 15 | casme2 sub03 16 | EP01_2 2 2 17 | EP07_04 0 0 18 | EP09_03 0 0 19 | EP18_06 0 0 20 | EP19_08 0 0 21 | casme2 sub04 22 | EP12_02f 0 0 23 | EP13_06f 0 0 24 | casme2 sub05 25 | EP02_07 2 2 26 | EP03_01 1 0 27 | EP03_06 2 2 28 | EP04_05 2 0 29 | EP04_06 2 0 30 | EP12_03f 2 0 31 | casme2 sub06 32 | EP01_01 1 0 33 | EP02_31 2 2 34 | EP15_02 2 0 35 | EP16_05 0 0 36 | casme2 sub07 37 | EP01_01 0 0 38 | EP06_02_01 0 0 39 | EP06_02_02 0 0 40 | EP08_02 0 0 41 | EP15_01 0 0 42 | casme2 sub08 43 | EP13_01f 0 0 44 | casme2 sub09 45 | EP02_01f 1 0 46 | EP05_05 1 0 47 | EP06_01f 0 0 48 | EP06_02f 1 1 49 | EP09_04 0 0 50 | EP09_05 0 0 51 | EP09f 1 1 52 | EP13_01 0 0 53 | EP15_05 1 0 54 | EP17_08 0 0 55 | casme2 sub11 56 | EP08_01f 0 0 57 | EP13_02f 0 0 58 | EP13_03f 0 0 59 | EP13_05f 0 0 60 | casme2 sub12 61 | EP01_02 0 0 62 | EP02_05 2 2 63 | EP03_04 1 1 64 | EP04_16 0 0 65 | EP06_06 2 2 66 | EP08_01 2 2 67 | EP08_03 2 2 68 | EP08_07 1 1 69 | EP09_02 0 2 70 | EP09_06 0 0 71 | EP16_02 0 0 72 | casme2 sub13 73 | EP03_01 1 0 74 | EP09_10 1 1 75 | casme2 sub14 76 | EP09_03 1 1 77 | EP09_04 1 1 78 | EP09_06 1 1 79 | casme2 sub15 80 | EP03_02 1 0 81 | EP04_02 2 1 82 | EP08_02 0 0 83 | casme2 sub16 84 | EP01_05 1 1 85 | EP01_08 0 0 86 | EP04_02f 1 0 87 | casme2 sub17 88 | EP01_06 1 1 89 | EP01_13 2 2 90 | EP01_15 1 1 91 | EP02_01 0 0 92 | EP02_03 0 1 93 | EP02_11 0 1 94 | EP02_18f 0 1 95 | EP03_02 0 0 96 | EP03_09 1 1 97 | EP05_02 1 1 98 | EP05_03 1 1 99 | EP05_03f 0 0 100 | EP05_04 0 1 101 | EP05_09 0 1 102 | EP05_10 0 1 103 | EP06_04 0 0 104 | EP06_07 1 1 105 | EP06_08 0 1 106 | EP07_01 0 1 107 | EP08_02 0 0 108 | EP10_06 0 1 109 | EP11_01 0 0 110 | EP11_02 0 0 111 | EP12_03 0 2 112 | EP13_03 0 0 113 | EP13_04 0 0 114 | EP13_06 0 0 115 | EP13_09 1 1 116 | EP15_04 0 0 117 | EP16_01f 0 0 118 | EP18_07 0 0 119 | casme2 sub19 120 | EP01_01f 1 1 121 | EP01_02f 1 1 122 | EP02_01 2 1 123 | EP06_01f 2 1 124 | EP08_02 1 1 125 | EP11_04f 2 1 126 | EP13_01 0 1 127 | EP16_01 0 0 128 | EP16_02 0 0 129 | EP19_02 2 0 130 | EP19_03 2 1 131 | casme2 sub20 132 | EP01_03 0 0 133 | EP06_03 0 0 134 | casme2 sub21 135 | EP05_02 0 0 136 | casme2 sub22 137 | EP01_12 0 0 138 | EP13_08 0 0 139 | casme2 sub23 140 | EP02_01 1 1 141 | EP03_14f 0 0 142 | EP04_03f 0 1 143 | EP05_24f 0 0 144 | EP05_25f 0 1 145 | EP12_02f 0 1 146 | EP12_03 0 0 147 | EP13_04 0 1 148 | casme2 sub24 149 | EP01_08 0 0 150 | EP02_02f 0 0 151 | EP18_03 2 0 152 | casme2 sub25 153 | EP09_02 0 0 154 | EP10_01 0 0 155 | EP10_10 2 2 156 | EP12_01 2 2 157 | EP18_04f 0 0 158 | casme2 sub26 159 | EP03_10 1 1 160 | EP09_04 0 1 161 | EP09_09 0 0 162 | EP13_02 1 1 163 | EP13_11 0 0 164 | EP16_01 0 0 165 | EP18_44 0 0 166 | EP18_47 0 0 167 | EP18_49 0 0 168 | EP18_50 0 0 169 | EP18_51 0 0 170 | smic 20 171 | s20_ne_01 0 1 172 | s20_ne_02 0 0 173 | s20_ne_03 0 0 174 | s20_ne_04 0 0 175 | s20_ne_05 0 1 176 | s20_ne_06 0 0 177 | s20_ne_07 0 0 178 | s20_ne_08 0 1 179 | s20_ne_09 0 0 180 | s20_ne_10 0 0 181 | s20_ne_11 0 0 182 | s20_ne_12 0 0 183 | s20_ne_13 0 1 184 | s20_ne_14 0 0 185 | s20_po_01 1 1 186 | s20_po_02 1 1 187 | s20_po_03 1 1 188 | s20_sur_01 2 2 189 | s20_sur_02 2 0 190 | s20_sur_03 2 0 191 | s20_sur_04 2 0 192 | s20_sur_05 2 0 193 | smic 14 194 | s14_ne_01 0 2 195 | s14_ne_02 0 2 196 | s14_ne_03 0 2 197 | s14_po_01 1 1 198 | s14_po_02 1 2 199 | s14_sur_01 2 2 200 | s14_sur_02 2 2 201 | s14_sur_03 2 2 202 | s14_sur_04 2 2 203 | s14_sur_05 2 2 204 | smic 18 205 | s18_ne_01 0 2 206 | s18_ne_02 0 2 207 | s18_sur_01 2 2 208 | s18_sur_02 2 2 209 | s18_sur_03 0 2 210 | s18_sur_04 2 2 211 | s18_sur_05 2 2 212 | smic 19 213 | s19_po_01 1 0 214 | s19_sur_01 2 2 215 | smic 13 216 | s13_po_01 1 1 217 | s13_po_02 1 1 218 | s13_po_03 1 1 219 | s13_po_04 1 1 220 | s13_po_05 1 1 221 | s13_po_06 1 1 222 | s13_po_07 1 1 223 | s13_po_08 1 1 224 | s13_po_09 1 1 225 | s13_po_10 1 1 226 | smic 12 227 | s12_po_01 1 1 228 | s12_po_02 1 1 229 | s12_po_03 1 1 230 | s12_po_04 1 1 231 | s12_po_05 1 1 232 | s12_po_06 1 1 233 | s12_po_07 1 1 234 | s12_po_08 1 1 235 | s12_sur_01 2 1 236 | smic 11 237 | s11_ne_01 0 2 238 | s11_ne_02 0 2 239 | s11_ne_03 0 1 240 | s11_po_01 1 1 241 | s11_po_02 1 2 242 | s11_po_03 1 2 243 | s11_sur_01 2 2 244 | smic 15 245 | s15_ne_01 0 1 246 | s15_po_01 1 1 247 | s15_sur_01 2 1 248 | s15_sur_02 2 2 249 | smic 1 250 | s1_ne_01 0 0 251 | s1_ne_03 0 0 252 | s1_po_01 1 0 253 | s1_po_02 1 0 254 | s1_sur_01 2 2 255 | smic 2 256 | s2_po_01 1 1 257 | s2_sur_01 2 2 258 | s2_sur_02 2 2 259 | s2_sur_03 2 2 260 | s2_sur_04 2 2 261 | smic 3 262 | s3_ne_01 0 0 263 | s3_ne_02 0 0 264 | s3_ne_04 0 0 265 | s3_ne_05 0 0 266 | s3_ne_06 0 0 267 | s3_ne_07 0 0 268 | s3_ne_08 0 0 269 | s3_ne_09 0 0 270 | s3_ne_10 0 0 271 | s3_ne_11 0 0 272 | s3_ne_12 0 0 273 | s3_ne_13 0 0 274 | s3_ne_14 0 0 275 | s3_ne_15 0 0 276 | s3_ne_16 0 0 277 | s3_ne_17 0 0 278 | s3_ne_18 0 0 279 | s3_ne_19 0 0 280 | s3_ne_21 0 0 281 | s3_ne_22 0 0 282 | s3_po_01 1 0 283 | s3_po_02 1 0 284 | s3_po_03 1 0 285 | s3_po_04 1 0 286 | s3_po_05 1 0 287 | s3_po_06 1 0 288 | s3_po_07 1 0 289 | s3_po_08 1 0 290 | s3_po_09 1 0 291 | s3_po_10 1 0 292 | s3_po_11 1 0 293 | s3_sur_01 2 0 294 | s3_sur_02 2 0 295 | s3_sur_03 2 0 296 | s3_sur_04 2 0 297 | s3_sur_05 2 0 298 | s3_sur_06 2 0 299 | smic 4 300 | s4_ne_01 0 1 301 | s4_ne_02 0 1 302 | s4_ne_03 0 2 303 | s4_ne_04 0 2 304 | s4_ne_07 0 1 305 | s4_ne_08 0 1 306 | s4_ne_09 0 2 307 | s4_ne_10 0 2 308 | s4_po_01 1 1 309 | s4_po_02 1 2 310 | s4_po_03 1 1 311 | s4_po_04 1 2 312 | s4_sur_01 2 2 313 | s4_sur_02 2 2 314 | s4_sur_03 2 2 315 | s4_sur_04 2 2 316 | s4_sur_05 2 2 317 | smic 5 318 | s5_ne_01 0 0 319 | s5_sur_01 2 1 320 | smic 6 321 | s6_ne_01 0 0 322 | s6_ne_02 0 0 323 | s6_sur_01 2 0 324 | s6_sur_02 2 0 325 | smic 8 326 | s8_ne_01 0 2 327 | s8_ne_02 0 2 328 | s8_ne_03 0 2 329 | s8_ne_04 0 2 330 | s8_ne_05 0 2 331 | s8_ne_06 0 1 332 | s8_ne_07 0 2 333 | s8_ne_08 0 2 334 | s8_ne_09 0 1 335 | s8_po_01 1 2 336 | s8_po_02 1 1 337 | s8_po_03 1 1 338 | s8_po_04 1 1 339 | smic 9 340 | s9_po_01 1 1 341 | s9_sur_01 2 2 342 | s9_sur_03 2 2 343 | samm 6 344 | 006_1_2 0 0 345 | 006_1_3 0 0 346 | 006_1_4 0 0 347 | 006_1_5 0 0 348 | 006_1_6 0 0 349 | 006_2_4 0 0 350 | 006_3_4 0 0 351 | 006_3_5 2 0 352 | 006_5_10 0 0 353 | 006_5_11 0 0 354 | 006_5_9 2 0 355 | samm 7 356 | 007_3_1 0 0 357 | 007_5_3 2 2 358 | 007_6_1 1 2 359 | 007_6_2 1 2 360 | 007_6_3 1 2 361 | 007_6_5 1 2 362 | 007_7_1 2 0 363 | 007_7_5 1 0 364 | samm 9 365 | 009_2_1 0 0 366 | 009_3_2 0 0 367 | 009_3_3 0 0 368 | 009_3_4 2 2 369 | samm 10 370 | 010_2_1 0 0 371 | 010_2_8 0 0 372 | 010_4_1 0 0 373 | 010_4_2 0 0 374 | samm 11 375 | 011_1_4 0 0 376 | 011_2_1 0 0 377 | 011_2_2 0 0 378 | 011_2_3 0 0 379 | 011_2_7 1 0 380 | 011_3_1 0 0 381 | 011_3_4 1 0 382 | 011_3_5 1 0 383 | 011_3_6 1 0 384 | 011_4_1 0 0 385 | 011_4_12 0 0 386 | 011_4_13 0 0 387 | 011_4_2 0 0 388 | 011_5_1 0 0 389 | 011_6_1 0 0 390 | 011_6_13 1 1 391 | 011_6_5 1 1 392 | 011_6_6 1 1 393 | 011_7_1 0 0 394 | 011_7_10 0 0 395 | samm 12 396 | 012_3_1 0 0 397 | 012_3_2 0 0 398 | 012_7_1 2 1 399 | samm 13 400 | 013_1_10 0 0 401 | 013_1_11 0 0 402 | 013_1_12 0 0 403 | 013_1_8 0 0 404 | 013_1_9 0 0 405 | 013_7_7 0 0 406 | samm 14 407 | 014_1_1 0 0 408 | 014_2_3 2 2 409 | 014_2_4 1 1 410 | 014_3_3 1 0 411 | 014_3_4 1 1 412 | 014_5_2 0 0 413 | 014_6_1 1 0 414 | 014_6_2 1 0 415 | 014_6_3 1 0 416 | 014_7_1 1 2 417 | samm 15 418 | 015_5_1 0 0 419 | 015_5_2 0 0 420 | 015_5_3 2 2 421 | samm 16 422 | 016_7_1 0 0 423 | 016_7_2 2 0 424 | 016_7_3 0 0 425 | 016_7_5 2 2 426 | 016_7_8 1 0 427 | samm 17 428 | 017_3_1 0 0 429 | 017_3_2 2 0 430 | 017_3_4 0 0 431 | 017_6_1 0 0 432 | samm 18 433 | 018_3_1 0 0 434 | 018_5_1 0 0 435 | 018_7_1 2 0 436 | samm 19 437 | 019_4_1 1 1 438 | samm 20 439 | 020_4_1 0 0 440 | 020_4_2 1 1 441 | 020_7_1 0 1 442 | 020_7_10 1 0 443 | samm 21 444 | 021_7_1 0 0 445 | 021_7_2 0 0 446 | samm 22 447 | 022_2_3 0 2 448 | 022_3_2 0 2 449 | 022_3_3 1 1 450 | 022_4_1 0 2 451 | 022_5_1 1 1 452 | samm 23 453 | 023_1_1 0 0 454 | samm 24 455 | 024_2_1 0 0 456 | samm 26 457 | 026_1_1 0 0 458 | 026_2_1 0 0 459 | 026_2_2 0 0 460 | 026_2_3 0 0 461 | 026_3_3 0 0 462 | 026_3_4 0 0 463 | 026_5_1 0 0 464 | 026_6_1 0 0 465 | 026_7_3 0 0 466 | samm 28 467 | 028_4_1 0 1 468 | 028_4_3 2 2 469 | 028_4_4 2 2 470 | samm 30 471 | 030_1_1 0 0 472 | 030_1_2 0 0 473 | 030_5_1 0 0 474 | samm 31 475 | 031_3_1 0 0 476 | samm 32 477 | 032_3_1 0 0 478 | 032_3_2 0 0 479 | 032_4_2 0 0 480 | 032_6_1 0 0 481 | samm 33 482 | 033_1_3 1 1 483 | 033_1_4 0 0 484 | 033_1_5 0 0 485 | 033_2_1 0 0 486 | 033_2_2 0 0 487 | samm 34 488 | 034_3_1 0 0 489 | 034_7_2 0 0 490 | 034_7_3 0 0 491 | samm 35 492 | 035_1_1 0 0 493 | 035_4_1 0 0 494 | 035_4_2 0 0 495 | 035_5_2 0 0 496 | 035_5_3 0 0 497 | 035_6_3 0 0 498 | 035_7_1 2 0 499 | 035_7_2 0 0 500 | samm 36 501 | 036_7_3 0 0 502 | samm 37 503 | 037_3_2 0 0 -------------------------------------------------------------------------------- /result_log_reproduced.csv: -------------------------------------------------------------------------------- 1 | smic 20 2 | s20_ne_01 0 1 3 | smic 20 4 | s20_ne_02 0 0 5 | smic 20 6 | s20_ne_03 0 0 7 | smic 20 8 | s20_ne_04 0 0 9 | smic 20 10 | s20_ne_05 0 1 11 | smic 20 12 | s20_ne_06 0 0 13 | smic 20 14 | s20_ne_07 0 0 15 | smic 20 16 | s20_ne_08 0 1 17 | smic 20 18 | s20_ne_09 0 0 19 | smic 20 20 | s20_ne_10 0 0 21 | smic 20 22 | s20_ne_11 0 0 23 | smic 20 24 | s20_ne_12 0 0 25 | smic 20 26 | s20_ne_13 0 1 27 | smic 20 28 | s20_ne_14 0 0 29 | smic 20 30 | s20_po_01 1 1 31 | smic 20 32 | s20_po_02 1 1 33 | smic 20 34 | s20_po_03 1 1 35 | smic 20 36 | s20_sur_01 2 2 37 | smic 20 38 | s20_sur_02 2 0 39 | smic 20 40 | s20_sur_03 2 0 41 | smic 20 42 | s20_sur_04 2 0 43 | smic 20 44 | s20_sur_05 2 0 45 | smic 14 46 | s14_ne_01 0 2 47 | smic 14 48 | s14_ne_02 0 2 49 | smic 14 50 | s14_ne_03 0 2 51 | smic 14 52 | s14_po_01 1 1 53 | smic 14 54 | s14_po_02 1 2 55 | smic 14 56 | s14_sur_01 2 2 57 | smic 14 58 | s14_sur_02 2 2 59 | smic 14 60 | s14_sur_03 2 2 61 | smic 14 62 | s14_sur_04 2 2 63 | smic 14 64 | s14_sur_05 2 2 65 | smic 18 66 | s18_ne_01 0 2 67 | smic 18 68 | s18_ne_02 0 2 69 | smic 18 70 | s18_sur_01 2 2 71 | smic 18 72 | s18_sur_02 2 2 73 | smic 18 74 | s18_sur_03 0 2 75 | smic 18 76 | s18_sur_04 2 2 77 | smic 18 78 | s18_sur_05 2 2 79 | smic 19 80 | s19_po_01 1 0 81 | smic 19 82 | s19_sur_01 2 2 83 | smic 13 84 | s13_po_01 1 1 85 | smic 13 86 | s13_po_02 1 1 87 | smic 13 88 | s13_po_03 1 1 89 | smic 13 90 | s13_po_04 1 1 91 | smic 13 92 | s13_po_05 1 1 93 | smic 13 94 | s13_po_06 1 1 95 | smic 13 96 | s13_po_07 1 1 97 | smic 13 98 | s13_po_08 1 1 99 | smic 13 100 | s13_po_09 1 1 101 | smic 13 102 | s13_po_10 1 1 103 | smic 12 104 | s12_po_01 1 1 105 | smic 12 106 | s12_po_02 1 1 107 | smic 12 108 | s12_po_03 1 1 109 | smic 12 110 | s12_po_04 1 1 111 | smic 12 112 | s12_po_05 1 1 113 | smic 12 114 | s12_po_06 1 1 115 | smic 12 116 | s12_po_07 1 1 117 | smic 12 118 | s12_po_08 1 1 119 | smic 12 120 | s12_sur_01 2 1 121 | smic 11 122 | s11_ne_01 0 2 123 | smic 11 124 | s11_ne_02 0 2 125 | smic 11 126 | s11_ne_03 0 1 127 | smic 11 128 | s11_po_01 1 1 129 | smic 11 130 | s11_po_02 1 2 131 | smic 11 132 | s11_po_03 1 2 133 | smic 11 134 | s11_sur_01 2 2 135 | smic 15 136 | s15_ne_01 0 1 137 | smic 15 138 | s15_po_01 1 1 139 | smic 15 140 | s15_sur_01 2 1 141 | smic 15 142 | s15_sur_02 2 2 143 | smic 1 144 | s1_ne_01 0 0 145 | smic 1 146 | s1_ne_03 0 0 147 | smic 1 148 | s1_po_01 1 0 149 | smic 1 150 | s1_po_02 1 0 151 | smic 1 152 | s1_sur_01 2 2 153 | smic 2 154 | s2_po_01 1 1 155 | smic 2 156 | s2_sur_01 2 2 157 | smic 2 158 | s2_sur_02 2 2 159 | smic 2 160 | s2_sur_03 2 2 161 | smic 2 162 | s2_sur_04 2 2 163 | smic 3 164 | s3_ne_01 0 0 165 | smic 3 166 | s3_ne_02 0 0 167 | smic 3 168 | s3_ne_04 0 0 169 | smic 3 170 | s3_ne_05 0 0 171 | smic 3 172 | s3_ne_06 0 0 173 | smic 3 174 | s3_ne_07 0 0 175 | smic 3 176 | s3_ne_08 0 0 177 | smic 3 178 | s3_ne_09 0 0 179 | smic 3 180 | s3_ne_10 0 0 181 | smic 3 182 | s3_ne_11 0 0 183 | smic 3 184 | s3_ne_12 0 0 185 | smic 3 186 | s3_ne_13 0 0 187 | smic 3 188 | s3_ne_14 0 0 189 | smic 3 190 | s3_ne_15 0 0 191 | smic 3 192 | s3_ne_16 0 0 193 | smic 3 194 | s3_ne_17 0 0 195 | smic 3 196 | s3_ne_18 0 0 197 | smic 3 198 | s3_ne_19 0 0 199 | smic 3 200 | s3_ne_21 0 0 201 | smic 3 202 | s3_ne_22 0 0 203 | smic 3 204 | s3_po_01 1 0 205 | smic 3 206 | s3_po_02 1 0 207 | smic 3 208 | s3_po_03 1 0 209 | smic 3 210 | s3_po_04 1 0 211 | smic 3 212 | s3_po_05 1 0 213 | smic 3 214 | s3_po_06 1 0 215 | smic 3 216 | s3_po_07 1 0 217 | smic 3 218 | s3_po_08 1 0 219 | smic 3 220 | s3_po_09 1 0 221 | smic 3 222 | s3_po_10 1 0 223 | smic 3 224 | s3_po_11 1 0 225 | smic 3 226 | s3_sur_01 2 0 227 | smic 3 228 | s3_sur_02 2 0 229 | smic 3 230 | s3_sur_03 2 0 231 | smic 3 232 | s3_sur_04 2 0 233 | smic 3 234 | s3_sur_05 2 0 235 | smic 3 236 | s3_sur_06 2 0 237 | smic 4 238 | s4_ne_01 0 1 239 | smic 4 240 | s4_ne_02 0 1 241 | smic 4 242 | s4_ne_03 0 2 243 | smic 4 244 | s4_ne_04 0 2 245 | smic 4 246 | s4_ne_07 0 1 247 | smic 4 248 | s4_ne_08 0 1 249 | smic 4 250 | s4_ne_09 0 2 251 | smic 4 252 | s4_ne_10 0 2 253 | smic 4 254 | s4_po_01 1 1 255 | smic 4 256 | s4_po_02 1 2 257 | smic 4 258 | s4_po_03 1 1 259 | smic 4 260 | s4_po_04 1 2 261 | smic 4 262 | s4_sur_01 2 2 263 | smic 4 264 | s4_sur_02 2 2 265 | smic 4 266 | s4_sur_03 2 2 267 | smic 4 268 | s4_sur_04 2 2 269 | smic 4 270 | s4_sur_05 2 2 271 | smic 5 272 | s5_ne_01 0 0 273 | smic 5 274 | s5_sur_01 2 1 275 | smic 6 276 | s6_ne_01 0 0 277 | smic 6 278 | s6_ne_02 0 0 279 | smic 6 280 | s6_sur_01 2 0 281 | smic 6 282 | s6_sur_02 2 0 283 | smic 8 284 | s8_ne_01 0 2 285 | smic 8 286 | s8_ne_02 0 2 287 | smic 8 288 | s8_ne_03 0 2 289 | smic 8 290 | s8_ne_04 0 2 291 | smic 8 292 | s8_ne_05 0 2 293 | smic 8 294 | s8_ne_06 0 1 295 | smic 8 296 | s8_ne_07 0 2 297 | smic 8 298 | s8_ne_08 0 2 299 | smic 8 300 | s8_ne_09 0 1 301 | smic 8 302 | s8_po_01 1 2 303 | smic 8 304 | s8_po_02 1 1 305 | smic 8 306 | s8_po_03 1 1 307 | smic 8 308 | s8_po_04 1 1 309 | smic 9 310 | s9_po_01 1 1 311 | smic 9 312 | s9_sur_01 2 2 313 | smic 9 314 | s9_sur_03 2 2 315 | samm 6 316 | 006_1_2 0 0 317 | samm 6 318 | 006_1_3 0 0 319 | samm 6 320 | 006_1_4 0 0 321 | samm 6 322 | 006_1_5 0 0 323 | samm 6 324 | 006_1_6 0 0 325 | samm 6 326 | 006_2_4 0 0 327 | samm 6 328 | 006_3_4 0 0 329 | samm 6 330 | 006_3_5 2 0 331 | samm 6 332 | 006_5_10 0 0 333 | samm 6 334 | 006_5_11 0 0 335 | samm 6 336 | 006_5_9 2 0 337 | samm 7 338 | 007_3_1 0 0 339 | samm 7 340 | 007_5_3 2 2 341 | samm 7 342 | 007_6_1 1 2 343 | samm 7 344 | 007_6_2 1 2 345 | samm 7 346 | 007_6_3 1 2 347 | samm 7 348 | 007_6_5 1 2 349 | samm 7 350 | 007_7_1 2 0 351 | samm 7 352 | 007_7_5 1 0 353 | samm 9 354 | 009_2_1 0 0 355 | samm 9 356 | 009_3_2 0 0 357 | samm 9 358 | 009_3_3 0 0 359 | samm 9 360 | 009_3_4 2 2 361 | samm 10 362 | 010_2_1 0 0 363 | samm 10 364 | 010_2_8 0 0 365 | samm 10 366 | 010_4_1 0 0 367 | samm 10 368 | 010_4_2 0 0 369 | samm 11 370 | 011_1_4 0 0 371 | samm 11 372 | 011_2_1 0 0 373 | samm 11 374 | 011_2_2 0 0 375 | samm 11 376 | 011_2_3 0 0 377 | samm 11 378 | 011_2_7 1 0 379 | samm 11 380 | 011_3_1 0 0 381 | samm 11 382 | 011_3_4 1 0 383 | samm 11 384 | 011_3_5 1 0 385 | samm 11 386 | 011_3_6 1 0 387 | samm 11 388 | 011_4_1 0 0 389 | samm 11 390 | 011_4_12 0 0 391 | samm 11 392 | 011_4_13 0 0 393 | samm 11 394 | 011_4_2 0 0 395 | samm 11 396 | 011_5_1 0 0 397 | samm 11 398 | 011_6_1 0 0 399 | samm 11 400 | 011_6_13 1 1 401 | samm 11 402 | 011_6_5 1 1 403 | samm 11 404 | 011_6_6 1 1 405 | samm 11 406 | 011_7_1 0 0 407 | samm 11 408 | 011_7_10 0 0 409 | samm 12 410 | 012_3_1 0 0 411 | samm 12 412 | 012_3_2 0 0 413 | samm 12 414 | 012_7_1 2 1 415 | samm 13 416 | 013_1_10 0 0 417 | samm 13 418 | 013_1_11 0 0 419 | samm 13 420 | 013_1_12 0 0 421 | samm 13 422 | 013_1_8 0 0 423 | samm 13 424 | 013_1_9 0 0 425 | samm 13 426 | 013_7_7 0 0 427 | samm 14 428 | 014_1_1 0 0 429 | samm 14 430 | 014_2_3 2 2 431 | samm 14 432 | 014_2_4 1 1 433 | samm 14 434 | 014_3_3 1 0 435 | samm 14 436 | 014_3_4 1 1 437 | samm 14 438 | 014_5_2 0 0 439 | samm 14 440 | 014_6_1 1 0 441 | samm 14 442 | 014_6_2 1 0 443 | samm 14 444 | 014_6_3 1 0 445 | samm 14 446 | 014_7_1 1 2 447 | samm 15 448 | 015_5_1 0 0 449 | samm 15 450 | 015_5_2 0 0 451 | samm 15 452 | 015_5_3 2 2 453 | samm 16 454 | 016_7_1 0 0 455 | samm 16 456 | 016_7_2 2 0 457 | samm 16 458 | 016_7_3 0 0 459 | samm 16 460 | 016_7_5 2 2 461 | samm 16 462 | 016_7_8 1 0 463 | samm 17 464 | 017_3_1 0 0 465 | samm 17 466 | 017_3_2 2 0 467 | samm 17 468 | 017_3_4 0 0 469 | samm 17 470 | 017_6_1 0 0 471 | samm 18 472 | 018_3_1 0 0 473 | samm 18 474 | 018_5_1 0 0 475 | samm 18 476 | 018_7_1 2 0 477 | samm 19 478 | 019_4_1 1 1 479 | samm 20 480 | 020_4_1 0 0 481 | samm 20 482 | 020_4_2 1 1 483 | samm 20 484 | 020_7_1 0 1 485 | samm 20 486 | 020_7_10 1 0 487 | samm 21 488 | 021_7_1 0 0 489 | samm 21 490 | 021_7_2 0 0 491 | samm 22 492 | 022_2_3 0 2 493 | samm 22 494 | 022_3_2 0 2 495 | samm 22 496 | 022_3_3 1 1 497 | samm 22 498 | 022_4_1 0 2 499 | samm 22 500 | 022_5_1 1 1 501 | samm 23 502 | 023_1_1 0 0 503 | samm 24 504 | 024_2_1 0 0 505 | samm 26 506 | 026_1_1 0 0 507 | samm 26 508 | 026_2_1 0 0 509 | samm 26 510 | 026_2_2 0 0 511 | samm 26 512 | 026_2_3 0 0 513 | samm 26 514 | 026_3_3 0 0 515 | samm 26 516 | 026_3_4 0 0 517 | samm 26 518 | 026_5_1 0 0 519 | samm 26 520 | 026_6_1 0 0 521 | samm 26 522 | 026_7_3 0 0 523 | samm 28 524 | 028_4_1 0 1 525 | samm 28 526 | 028_4_3 2 2 527 | samm 28 528 | 028_4_4 2 2 529 | samm 30 530 | 030_1_1 0 0 531 | samm 30 532 | 030_1_2 0 0 533 | samm 30 534 | 030_5_1 0 0 535 | samm 31 536 | 031_3_1 0 0 537 | samm 32 538 | 032_3_1 0 0 539 | samm 32 540 | 032_3_2 0 0 541 | samm 32 542 | 032_4_2 0 0 543 | samm 32 544 | 032_6_1 0 0 545 | samm 33 546 | 033_1_3 1 1 547 | samm 33 548 | 033_1_4 0 0 549 | samm 33 550 | 033_1_5 0 0 551 | samm 33 552 | 033_2_1 0 0 553 | samm 33 554 | 033_2_2 0 0 555 | samm 34 556 | 034_3_1 0 0 557 | samm 34 558 | 034_7_2 0 0 559 | samm 34 560 | 034_7_3 0 0 561 | samm 35 562 | 035_1_1 0 0 563 | samm 35 564 | 035_4_1 0 0 565 | samm 35 566 | 035_4_2 0 0 567 | samm 35 568 | 035_5_2 0 0 569 | samm 35 570 | 035_5_3 0 0 571 | samm 35 572 | 035_6_3 0 0 573 | samm 35 574 | 035_7_1 2 0 575 | samm 35 576 | 035_7_2 0 0 577 | samm 36 578 | 036_7_3 0 0 579 | samm 37 580 | 037_3_2 0 0 581 | casme2 sub01 582 | EP02_01f 1 1 583 | casme2 sub01 584 | EP19_05f 0 0 585 | casme2 sub01 586 | EP19_06f 0 0 587 | casme2 sub02 588 | EP01_11f 0 0 589 | casme2 sub02 590 | EP02_04f 0 1 591 | casme2 sub02 592 | EP03_02f 0 0 593 | casme2 sub02 594 | EP06_01f 0 0 595 | casme2 sub02 596 | EP06_02f 0 0 597 | casme2 sub02 598 | EP09_01 1 1 599 | casme2 sub02 600 | EP11_01 2 2 601 | casme2 sub02 602 | EP13_04 2 2 603 | casme2 sub02 604 | EP14_01 2 2 605 | casme2 sub03 606 | EP01_2 2 2 607 | casme2 sub03 608 | EP07_04 0 0 609 | casme2 sub03 610 | EP09_03 0 0 611 | casme2 sub03 612 | EP18_06 0 0 613 | casme2 sub03 614 | EP19_08 0 0 615 | casme2 sub04 616 | EP12_02f 0 0 617 | casme2 sub04 618 | EP13_06f 0 0 619 | casme2 sub05 620 | EP02_07 2 2 621 | casme2 sub05 622 | EP03_01 1 0 623 | casme2 sub05 624 | EP03_06 2 2 625 | casme2 sub05 626 | EP04_05 2 0 627 | casme2 sub05 628 | EP04_06 2 0 629 | casme2 sub05 630 | EP12_03f 2 0 631 | casme2 sub06 632 | EP01_01 1 0 633 | casme2 sub06 634 | EP02_31 2 2 635 | casme2 sub06 636 | EP15_02 2 0 637 | casme2 sub06 638 | EP16_05 0 0 639 | casme2 sub07 640 | EP01_01 0 0 641 | casme2 sub07 642 | EP06_02_01 0 0 643 | casme2 sub07 644 | EP06_02_02 0 0 645 | casme2 sub07 646 | EP08_02 0 0 647 | casme2 sub07 648 | EP15_01 0 0 649 | casme2 sub08 650 | EP13_01f 0 0 651 | casme2 sub09 652 | EP02_01f 1 0 653 | casme2 sub09 654 | EP05_05 1 0 655 | casme2 sub09 656 | EP06_01f 0 0 657 | casme2 sub09 658 | EP06_02f 1 1 659 | casme2 sub09 660 | EP09_04 0 0 661 | casme2 sub09 662 | EP09_05 0 0 663 | casme2 sub09 664 | EP09f 1 1 665 | casme2 sub09 666 | EP13_01 0 0 667 | casme2 sub09 668 | EP15_05 1 0 669 | casme2 sub09 670 | EP17_08 0 0 671 | casme2 sub11 672 | EP08_01f 0 0 673 | casme2 sub11 674 | EP13_02f 0 0 675 | casme2 sub11 676 | EP13_03f 0 0 677 | casme2 sub11 678 | EP13_05f 0 0 679 | casme2 sub12 680 | EP01_02 0 0 681 | casme2 sub12 682 | EP02_05 2 2 683 | casme2 sub12 684 | EP03_04 1 1 685 | casme2 sub12 686 | EP04_16 0 0 687 | casme2 sub12 688 | EP06_06 2 2 689 | casme2 sub12 690 | EP08_01 2 2 691 | casme2 sub12 692 | EP08_03 2 2 693 | casme2 sub12 694 | EP08_07 1 1 695 | casme2 sub12 696 | EP09_02 0 2 697 | casme2 sub12 698 | EP09_06 0 0 699 | casme2 sub12 700 | EP16_02 0 0 701 | casme2 sub13 702 | EP03_01 1 0 703 | casme2 sub13 704 | EP09_10 1 1 705 | casme2 sub14 706 | EP09_03 1 1 707 | casme2 sub14 708 | EP09_04 1 1 709 | casme2 sub14 710 | EP09_06 1 1 711 | casme2 sub15 712 | EP03_02 1 0 713 | casme2 sub15 714 | EP04_02 2 1 715 | casme2 sub15 716 | EP08_02 0 0 717 | casme2 sub16 718 | EP01_05 1 1 719 | casme2 sub16 720 | EP01_08 0 0 721 | casme2 sub16 722 | EP04_02f 1 0 723 | casme2 sub17 724 | EP01_06 1 1 725 | casme2 sub17 726 | EP01_13 2 2 727 | casme2 sub17 728 | EP01_15 1 1 729 | casme2 sub17 730 | EP02_01 0 0 731 | casme2 sub17 732 | EP02_03 0 1 733 | casme2 sub17 734 | EP02_11 0 1 735 | casme2 sub17 736 | EP02_18f 0 1 737 | casme2 sub17 738 | EP03_02 0 0 739 | casme2 sub17 740 | EP03_09 1 1 741 | casme2 sub17 742 | EP05_02 1 1 743 | casme2 sub17 744 | EP05_03 1 1 745 | casme2 sub17 746 | EP05_03f 0 0 747 | casme2 sub17 748 | EP05_04 0 1 749 | casme2 sub17 750 | EP05_09 0 1 751 | casme2 sub17 752 | EP05_10 0 1 753 | casme2 sub17 754 | EP06_04 0 0 755 | casme2 sub17 756 | EP06_07 1 1 757 | casme2 sub17 758 | EP06_08 0 1 759 | casme2 sub17 760 | EP07_01 0 1 761 | casme2 sub17 762 | EP08_02 0 0 763 | casme2 sub17 764 | EP10_06 0 1 765 | casme2 sub17 766 | EP11_01 0 0 767 | casme2 sub17 768 | EP11_02 0 0 769 | casme2 sub17 770 | EP12_03 0 2 771 | casme2 sub17 772 | EP13_03 0 0 773 | casme2 sub17 774 | EP13_04 0 0 775 | casme2 sub17 776 | EP13_06 0 0 777 | casme2 sub17 778 | EP13_09 1 1 779 | casme2 sub17 780 | EP15_04 0 0 781 | casme2 sub17 782 | EP16_01f 0 0 783 | casme2 sub17 784 | EP18_07 0 0 785 | casme2 sub19 786 | EP01_01f 1 1 787 | casme2 sub19 788 | EP01_02f 1 1 789 | casme2 sub19 790 | EP02_01 2 1 791 | casme2 sub19 792 | EP06_01f 2 1 793 | casme2 sub19 794 | EP08_02 1 1 795 | casme2 sub19 796 | EP11_04f 2 1 797 | casme2 sub19 798 | EP13_01 0 1 799 | casme2 sub19 800 | EP16_01 0 0 801 | casme2 sub19 802 | EP16_02 0 0 803 | casme2 sub19 804 | EP19_02 2 0 805 | casme2 sub19 806 | EP19_03 2 1 807 | casme2 sub20 808 | EP01_03 0 0 809 | casme2 sub20 810 | EP06_03 0 0 811 | casme2 sub21 812 | EP05_02 0 0 813 | casme2 sub22 814 | EP01_12 0 0 815 | casme2 sub22 816 | EP13_08 0 0 817 | casme2 sub23 818 | EP02_01 1 1 819 | casme2 sub23 820 | EP03_14f 0 0 821 | casme2 sub23 822 | EP04_03f 0 1 823 | casme2 sub23 824 | EP05_24f 0 0 825 | casme2 sub23 826 | EP05_25f 0 1 827 | casme2 sub23 828 | EP12_02f 0 1 829 | casme2 sub23 830 | EP12_03 0 0 831 | casme2 sub23 832 | EP13_04 0 1 833 | casme2 sub24 834 | EP01_08 0 0 835 | casme2 sub24 836 | EP02_02f 0 0 837 | casme2 sub24 838 | EP18_03 2 0 839 | casme2 sub25 840 | EP09_02 0 0 841 | casme2 sub25 842 | EP10_01 0 0 843 | casme2 sub25 844 | EP10_10 2 2 845 | casme2 sub25 846 | EP12_01 2 2 847 | casme2 sub25 848 | EP18_04f 0 0 849 | casme2 sub26 850 | EP03_10 1 1 851 | casme2 sub26 852 | EP09_04 0 1 853 | casme2 sub26 854 | EP09_09 0 0 855 | casme2 sub26 856 | EP13_02 1 1 857 | casme2 sub26 858 | EP13_11 0 0 859 | casme2 sub26 860 | EP16_01 0 0 861 | casme2 sub26 862 | EP18_44 0 0 863 | casme2 sub26 864 | EP18_47 0 0 865 | casme2 sub26 866 | EP18_49 0 0 867 | casme2 sub26 868 | EP18_50 0 0 869 | casme2 sub26 870 | EP18_51 0 0 871 | -------------------------------------------------------------------------------- /smic_processing.py: -------------------------------------------------------------------------------- 1 | import os 2 | import sys 3 | import cv2 4 | import numpy as np 5 | import pandas as pd 6 | import face_recognition 7 | import matplotlib.pyplot as plt 8 | from tqdm import tqdm 9 | 10 | data_root = '/home/ubuntu/Datasets/MEGC/smic/HS_long/SMIC_HS_E/' 11 | smic_annotation_file = 'datasets/SMIC-HS-E_annotation.xlsx' 12 | label_dict = {'negative': 0, 'positive': 1, 'surprise': 2} 13 | 14 | 15 | def get_clip_frame_paths(subject, filename, on_frame_idx, off_frame_idx): 16 | frame_paths = [] 17 | subject = 's{}'.format(str(subject).zfill(2)) 18 | 19 | dir_path = os.path.join(data_root, subject, filename) 20 | 21 | for idx in range(on_frame_idx, off_frame_idx + 1): 22 | idx = str(idx).zfill(6) 23 | frame_path = os.path.join(dir_path, 'image{}.jpg'.format(idx)) 24 | if not os.path.exists(frame_path): 25 | print('Fail to locate file', frame_path) 26 | raise Exception('The value of path was: {}'.format(frame_path)) 27 | frame_paths.append(frame_path) 28 | return frame_paths 29 | 30 | 31 | def detect_lmks(frame): 32 | lmks = face_recognition.face_landmarks(frame) 33 | return lmks[0] 34 | 35 | 36 | def get_cell(img, cell_location): 37 | point1, point2 = cell_location 38 | cell = img[point1[1]:point2[1], point1[0]:point2[0]] 39 | return cell 40 | 41 | 42 | def get_cell_locations(lmks): 43 | def get_rect(center, width): 44 | point1 = np.array(center) - int(width / 2) 45 | point2 = np.array(center) + int(width / 2) 46 | return tuple(point1), tuple(point2) 47 | 48 | cells = {} 49 | cell_width = int((lmks['top_lip'][6][0] - lmks['top_lip'][0][0]) / 2) 50 | 51 | key = 'top_lip' 52 | points = np.array(lmks[key]) 53 | left_lip_rect = get_rect(points[0], cell_width) 54 | right_lip_rect = get_rect(points[6], cell_width) 55 | cells['left_lip'] = left_lip_rect 56 | cells['right_lip'] = right_lip_rect 57 | 58 | key = 'chin' 59 | point = lmks[key][int(len(lmks[key]) / 2)] 60 | rect_point1 = (point[0] - int(cell_width / 2), point[1] - cell_width) 61 | rect_point2 = (point[0] + int(cell_width / 2), point[1]) 62 | chin_rect = (rect_point1, rect_point2) 63 | cells['chin_rect'] = chin_rect 64 | 65 | key = 'nose_tip' 66 | point = lmks[key][0] 67 | left_nose_rect_point1 = (point[0] - cell_width, left_lip_rect[0][1] - cell_width) 68 | left_nose_rect_point2 = (point[0], left_lip_rect[0][1]) 69 | left_nose_rect = (left_nose_rect_point1, left_nose_rect_point2) 70 | cells['left_nose'] = left_nose_rect 71 | 72 | point = lmks[key][4] 73 | right_nose_rect_point1 = (point[0], right_lip_rect[0][1] - cell_width) 74 | right_nose_rect_point2 = (point[0] + cell_width, right_lip_rect[0][1]) 75 | right_nose_rect = (right_nose_rect_point1, right_nose_rect_point2) 76 | cells['right_nose'] = right_nose_rect 77 | 78 | key = 'left_eye' 79 | point = lmks[key][0] 80 | left_eye_rect_point1 = (point[0] - cell_width, int(point[1] - cell_width / 2)) 81 | left_eye_rect_point2 = (point[0], int(point[1] + cell_width / 2)) 82 | left_eye_rect = (left_eye_rect_point1, left_eye_rect_point2) 83 | cells['left_eye'] = left_eye_rect 84 | 85 | key = 'right_eye' 86 | point = lmks[key][3] 87 | right_eye_rect_point1 = (point[0], int(point[1] - cell_width / 2)) 88 | right_eye_rect_point2 = (point[0] + cell_width, int(point[1] + cell_width / 2)) 89 | right_eye_rect = (right_eye_rect_point1, right_eye_rect_point2) 90 | cells['right_eye'] = right_eye_rect 91 | 92 | left_point = lmks['left_eyebrow'][2] 93 | right_point = lmks['right_eyebrow'][2] 94 | center_point = (int((left_point[0] + right_point[0]) / 2), 95 | int((left_point[1] + right_point[1]) / 2)) 96 | 97 | center_eyebrow_rect = get_rect(center_point, cell_width) 98 | cells['center_eyebrow'] = center_eyebrow_rect 99 | 100 | left_rect_point1 = (int(center_point[0] - cell_width * 3 / 2), 101 | int(center_point[1] - cell_width / 2)) 102 | left_rect_point2 = (int(center_point[0] - cell_width * 1 / 2), 103 | int(center_point[1] + cell_width / 2)) 104 | left_eyebrow_rect = (left_rect_point1, left_rect_point2) 105 | cells['left_eyebrow'] = left_eyebrow_rect 106 | 107 | right_rect_point1 = (int(center_point[0] + cell_width * 1 / 2), 108 | int(center_point[1] - cell_width / 2)) 109 | right_rect_point2 = (int(center_point[0] + cell_width * 3 / 2), 110 | int(center_point[1] + cell_width / 2)) 111 | right_eyebrow_rect = (right_rect_point1, right_rect_point2) 112 | cells['right_eyebrow'] = right_eyebrow_rect 113 | 114 | return cells, cell_width 115 | 116 | 117 | def compute_cell_difference(cell_t, cell_onset, cell_offset, cell_epsilon): 118 | numerator = (np.abs(cell_t - cell_onset) + 1.0) 119 | denominator = (np.abs(cell_t - cell_epsilon) + 1.0) 120 | difference = numerator / denominator 121 | 122 | numerator = (np.abs(cell_t - cell_offset) + 1.0) 123 | difference1 = numerator / denominator 124 | 125 | # difference = difference + difference1 126 | 127 | return difference.mean() 128 | 129 | 130 | def compute_cell_features(frame_t, on_frame, off_frame, frame_epsilon): 131 | lmks = detect_lmks(frame_t) 132 | cell_locations, cell_width = get_cell_locations(lmks) 133 | cell_differences = {} 134 | frame_t = frame_t.astype(np.float32) 135 | on_frame = on_frame.astype(np.float32) 136 | off_frame = off_frame.astype(np.float32) 137 | frame_epsilon = frame_epsilon.astype(np.float32) 138 | 139 | for key in cell_locations: 140 | cell_location = cell_locations[key] 141 | cell_t = get_cell(frame_t, cell_location) 142 | cell_onset = get_cell(on_frame, cell_location) 143 | cell_offset = get_cell(off_frame, cell_location) 144 | cell_epsilon = get_cell(frame_epsilon, cell_location) 145 | 146 | cell_difference = compute_cell_difference(cell_t, cell_onset, cell_offset, cell_epsilon) 147 | cell_differences[key] = cell_difference 148 | return cell_differences 149 | 150 | 151 | def find_apex_frame_of_clip(frame_paths): 152 | epsilon = 1 153 | 154 | on_frame = cv2.imread(frame_paths[0], cv2.IMREAD_GRAYSCALE) 155 | off_frame = cv2.imread(frame_paths[-1], cv2.IMREAD_GRAYSCALE) 156 | 157 | features = [] 158 | 159 | for i in range(epsilon, len(frame_paths)): 160 | frame_t = cv2.imread(frame_paths[i], cv2.IMREAD_GRAYSCALE) 161 | frame_epsilon = cv2.imread(frame_paths[i - epsilon], cv2.IMREAD_GRAYSCALE) 162 | current_features = compute_cell_features(frame_t, on_frame, off_frame, frame_epsilon) 163 | feature = 0 164 | for key in current_features: 165 | feature += current_features[key] 166 | feature = feature / len(current_features) 167 | features.append(feature) 168 | 169 | padding = [0.0] * epsilon 170 | features = np.array(padding + features) 171 | apex_frame_idx = features.argmax() 172 | apex_frame_path = frame_paths[apex_frame_idx] 173 | 174 | return apex_frame_path, features, apex_frame_idx 175 | 176 | 177 | def draw_avg_plot(features, pred_apex_idx, data, clip_name): 178 | x = list(range(len(features))) 179 | plt.plot(x, features) 180 | plt.axvline(x=pred_apex_idx, label='pred apex idx at={}'.format(pred_apex_idx), c='red') 181 | plt.legend() 182 | plt.savefig('plots/{}/{}.png'.format(data, clip_name)) 183 | plt.clf(); 184 | plt.cla(); 185 | plt.close(); 186 | 187 | 188 | def on_all_smic_clips(): 189 | smic = pd.read_excel(smic_annotation_file) 190 | labels = [] 191 | apex_frame_indices = [] 192 | on_frame_paths = [] 193 | off_frame_paths = [] 194 | apex_frame_paths = [] 195 | samples = zip(list(smic['Subject']), 196 | list(smic['Filename']), 197 | list(smic['OnsetF']), 198 | list(smic['OffsetF']), 199 | list(smic['Emotion'])) 200 | 201 | with tqdm(total=158) as progress_bar: 202 | for subject, filename, on_frame_idx, off_frame_idx, emotion in samples: 203 | # Get all ME paths of a clip 204 | 205 | clip_frame_paths = get_clip_frame_paths(subject, filename, on_frame_idx, off_frame_idx) 206 | 207 | # Find apex frame paths 208 | apex_frame_path, features, apex_relative_idx = find_apex_frame_of_clip(clip_frame_paths) 209 | draw_avg_plot(features, apex_relative_idx, 'smic', filename) 210 | 211 | on_frame_paths.append(clip_frame_paths[0]) 212 | off_frame_paths.append(clip_frame_paths[-1]) 213 | apex_frame_paths.append(apex_frame_path) 214 | 215 | apex_frame_idx = int(apex_frame_path.split('/')[-1].split('.')[0].replace('image', '')) 216 | apex_frame_indices.append(apex_frame_idx) 217 | 218 | # Label 219 | labels.append(label_dict[emotion]) 220 | progress_bar.update(1) 221 | 222 | 223 | # Save data_to_csv file 224 | data_dict = {'data' : ['smic'] * len(labels), 225 | 'subject' : list(smic['Subject']), 226 | 'clip' : list(smic['Filename']), 227 | 'label' : labels, 228 | 'onset_frame' : list(smic['OnsetF']), 229 | 'apex_frame' : apex_frame_indices, 230 | 'offset_frame' : list(smic['OffsetF']), 231 | 'onset_frame_path': on_frame_paths, 232 | 'apex_frame_path' : apex_frame_paths, 233 | 'off_frame_path' : off_frame_paths} 234 | smic_data = pd.DataFrame.from_dict(data_dict) 235 | smic_data.to_csv('datasets/smic_apex.csv', header=True, index=None) 236 | 237 | 238 | if __name__ == '__main__': 239 | 240 | on_all_smic_clips() 241 | -------------------------------------------------------------------------------- /train_me_loso.py: -------------------------------------------------------------------------------- 1 | import os 2 | import sys 3 | import torch 4 | import pickle 5 | 6 | from torch.optim import Adam, lr_scheduler 7 | 8 | from capsule.modules import MECapsuleNet 9 | from capsule.loss import me_loss 10 | from capsule.evaluations import Meter 11 | from capsule.data import data_split, sample_data, get_meta_data, Dataset 12 | 13 | from torchvision import transforms 14 | 15 | from tqdm import tqdm 16 | import pandas as pd 17 | from sklearn.utils import shuffle 18 | 19 | 20 | data_apex_frame_path = 'datasets/data_apex.csv' 21 | data_four_frames_path = 'datasets/data_four_frames.csv' 22 | data_root = '/home/ubuntu/Datasets/MEGC/process/' 23 | 24 | batch_size = 32 25 | lr = 0.0001 26 | lr_decay_value = 0.9 27 | num_classes = 3 28 | epochs = 30 29 | 30 | x_meter = Meter() 31 | batches_scores = [] 32 | 33 | def load_me_data(data_root, file_path, subject_out_idx, batch_size=32, num_workers=4): 34 | df_train, df_val = data_split(file_path, subject_out_idx) 35 | df_four = pd.read_csv(data_four_frames_path) 36 | df_train_sampled = sample_data(df_train, df_four) 37 | df_train_sampled = shuffle(df_train_sampled) 38 | 39 | train_paths, train_labels = get_meta_data(df_train_sampled) 40 | 41 | train_transforms = transforms.Compose([transforms.Resize((234, 240)), 42 | transforms.RandomRotation(degrees=(-8, 8)), 43 | transforms.RandomHorizontalFlip(), 44 | transforms.ColorJitter(brightness=0.2, contrast=0.2, 45 | saturation=0.2, hue=0.2), 46 | transforms.RandomCrop((224, 224)), 47 | transforms.ToTensor()]) 48 | 49 | train_dataset = Dataset(root=data_root, 50 | img_paths=train_paths, 51 | img_labels=train_labels, 52 | transform=train_transforms) 53 | 54 | val_transforms = transforms.Compose([transforms.Resize((234, 240)), 55 | transforms.RandomRotation(degrees=(-8, 8)), 56 | transforms.CenterCrop((224, 224)), 57 | transforms.ToTensor()]) 58 | 59 | val_paths, val_labels = get_meta_data(df_val) 60 | val_dataset = Dataset(root=data_root, 61 | img_paths=val_paths, 62 | img_labels=val_labels, 63 | transform=val_transforms) 64 | 65 | train_loader = torch.utils.data.DataLoader(dataset=train_dataset, 66 | batch_size=batch_size, 67 | num_workers=num_workers, 68 | shuffle=True) 69 | 70 | val_loader = torch.utils.data.DataLoader(dataset=val_dataset, 71 | batch_size=batch_size, 72 | num_workers=num_workers, 73 | shuffle=False) 74 | return train_loader, val_loader 75 | 76 | 77 | def on_epoch(model, optimizer, lr_decay, train_loader, test_loader, epoch): 78 | model.train() 79 | lr_decay.step() # decrease the learning rate by multiplying a factor `gamma` 80 | train_loss = 0.0 81 | correct = 0. 82 | meter = Meter() 83 | 84 | steps = len(train_loader.dataset) // batch_size + 1 85 | with tqdm(total=steps) as progress_bar: 86 | for i, (x, y) in enumerate(train_loader): # batch training 87 | y = torch.zeros(y.size(0), num_classes).scatter_(1, y.view(-1, 1), 88 | 1.) # change to one-hot coding 89 | x, y = x.cuda(), y.cuda() # convert input data to GPU Variable 90 | 91 | optimizer.zero_grad() # set gradients of optimizer to zero 92 | y_pred = model(x, y) # forward 93 | loss = me_loss(y, y_pred) # compute loss 94 | loss.backward() # backward, compute all gradients of loss w.r.t all Variables 95 | train_loss += loss.item() * x.size(0) # record the batch loss 96 | optimizer.step() # update the trainable parameters with computed gradients 97 | 98 | y_pred = y_pred.data.max(1)[1] 99 | y_true = y.data.max(1)[1] 100 | 101 | meter.add(y_true.cpu().numpy(), y_pred.cpu().numpy()) 102 | correct += y_pred.eq(y_true).cpu().sum() 103 | 104 | progress_bar.set_postfix(loss=loss.item(), correct=correct) 105 | progress_bar.update(1) 106 | 107 | train_loss /= float(len(train_loader.dataset)) 108 | train_acc = float(correct.item()) / float(len(train_loader.dataset)) 109 | scores = meter.value() 110 | meter.reset() 111 | print('Training UAR: %.4f' % (scores[0].mean()), scores[0]) 112 | print('Training UF1: %.4f' % (scores[1].mean()), scores[1]) 113 | 114 | correct = 0. 115 | test_loss = 0. 116 | 117 | model.eval() 118 | for i, (x, y) in enumerate(test_loader): # batch training 119 | y = torch.zeros(y.size(0), num_classes).scatter_(1, y.view(-1, 1), 120 | 1.) # change to one-hot coding 121 | x, y = x.cuda(), y.cuda() # convert input data to GPU Variable 122 | 123 | y_pred = model(x, y) # forward 124 | loss = me_loss(y, y_pred) # compute loss 125 | test_loss += loss.item() * x.size(0) # record the batch loss 126 | 127 | y_pred = y_pred.data.max(1)[1] 128 | y_true = y.data.max(1)[1] 129 | 130 | meter.add(y_true.cpu().numpy(), y_pred.cpu().numpy()) 131 | correct += y_pred.eq(y_true).cpu().sum() 132 | 133 | if (epoch + 1) % 10 == 0 and i % steps == 0: 134 | print('y_true\n', y_true[:30]) 135 | print('y_pred\n', y_pred[:30]) 136 | 137 | print('y_true', y.sum(dim=0)) 138 | scores = meter.value() 139 | print('Testing UAR: %.4f' % (scores[0].mean()), scores[0]) 140 | print('Testing UF1: %.4f' % (scores[1].mean()), scores[1]) 141 | 142 | test_loss /= float(len(test_loader.dataset)) 143 | test_acc = float(correct.item()) / float(len(test_loader.dataset)) 144 | return train_loss, train_acc, test_loss, test_acc, meter 145 | 146 | 147 | def train_eval(subject_out_idx): 148 | best_val_uf1 = 0.0 149 | best_val_uar = 0.0 150 | 151 | # Model & others 152 | model = MECapsuleNet(input_size=(3, 224, 224), classes=num_classes, routings=3, is_freeze=False) 153 | model.cuda() 154 | # model.load_state_dict(torch.load(fer_weight_path)['model']) 155 | optimizer = Adam(model.parameters(), lr=lr) 156 | lr_decay = lr_scheduler.ExponentialLR(optimizer, gamma=lr_decay_value) 157 | 158 | for epoch in range(epochs): 159 | train_loader, test_loader = load_me_data(data_root, data_apex_frame_path, 160 | subject_out_idx=subject_out_idx, 161 | batch_size=batch_size) 162 | train_loss, train_acc, test_loss, test_acc, meter = on_epoch(model, optimizer, lr_decay, 163 | train_loader, test_loader, 164 | epoch) 165 | 166 | print("==> Subject out: %02d - Epoch %02d: loss=%.5f, train_acc=%.5f, val_loss=%.5f, " 167 | "val_acc=%.4f" 168 | % (subject_out_idx, epoch, train_loss, train_acc, 169 | test_loss, test_acc)) 170 | 171 | scores = meter.value() 172 | if scores[1].mean() >= best_val_uf1: 173 | best_val_uar = scores[0].mean() 174 | best_val_uf1 = scores[1].mean() 175 | Y_true = meter.Y_true.copy() 176 | Y_pred = meter.Y_pred.copy() 177 | 178 | x_meter.add(Y_true, Y_pred, verbose=True) 179 | 180 | return best_val_uar, best_val_uf1 181 | 182 | 183 | if __name__ == '__main__': 184 | for i in range(68): 185 | scores = train_eval(subject_out_idx=i) 186 | batches_scores.append(scores) 187 | x_scores = x_meter.value() 188 | print('final uar', x_scores[0], x_scores[0].mean()) 189 | print('final uf1', x_scores[1], x_scores[1].mean()) 190 | print('---- NEXT ---- \n\n') 191 | 192 | with open('scores_capsule_resnet_sampled_fer_freeze.pkl', 'wb') as file: 193 | data = dict(meter=x_meter, batches_scores=batches_scores) 194 | pickle.dump(data, file) -------------------------------------------------------------------------------- /train_me_loso_baseline.py: -------------------------------------------------------------------------------- 1 | import os 2 | import sys 3 | import torch 4 | 5 | from torch.optim import Adam, SGD, lr_scheduler 6 | 7 | from capsule.data import load_me, data_split, sample_data 8 | from capsule.loss import me_loss 9 | 10 | from torchvision import transforms 11 | from capsule.data import get_meta_data, Dataset 12 | from capsule.evaluations import Meter 13 | 14 | from tqdm import tqdm 15 | import pandas as pd 16 | import numpy as np 17 | from sklearn.metrics import recall_score, f1_score 18 | from sklearn.utils import shuffle 19 | import pickle 20 | import torch.nn as nn 21 | from torchvision import models 22 | import torch.nn.functional as F 23 | from torch.nn import CrossEntropyLoss 24 | 25 | 26 | 27 | criterion = CrossEntropyLoss() 28 | 29 | # VGG Baseline 30 | class VGG(nn.Module): 31 | def __init__(self): 32 | super(VGG, self).__init__() 33 | self.model = models.vgg11(pretrained=True) 34 | self.model.classifier[6] = nn.Linear(in_features=4096, out_features=3) 35 | 36 | def forward(self, x): 37 | output = F.softmax(self.model(x), dim=-1) 38 | return output 39 | 40 | # ResNet Baseline 41 | class ResNet(nn.Module): 42 | def __init__(self): 43 | super(ResNet, self).__init__() 44 | self.model = models.resnet18(pretrained=True) 45 | self.model.fc = nn.Linear(in_features=512, out_features=3) 46 | 47 | for module in ['conv1', 'bn1', 'layer1']: 48 | for param in getattr(self.model, module).parameters(): 49 | param.requires_grad = False 50 | 51 | def forward(self, x): 52 | output = F.softmax(self.model(x), dim=-1) 53 | return output 54 | 55 | 56 | data_apex_frame_path = 'datasets/data_apex.csv' 57 | data_four_frames_path = 'datasets/data_four_frames.csv' 58 | data_root = '/home/ubuntu/Datasets/MEGC/process/' 59 | batch_size = 32 60 | lr = 0.0001 61 | lr_decay_value = 0.9 62 | num_classes = 3 63 | epochs = 30 64 | 65 | x_meter = Meter() 66 | batches_scores = [] 67 | 68 | def load_me_data(data_root, file_path, subject_out_idx, batch_size=32, num_workers=4): 69 | df_train, df_val = data_split(file_path, subject_out_idx) 70 | df_four = pd.read_csv(data_four_frames_path) 71 | df_train_sampled = sample_data(df_train, df_four) 72 | df_train_sampled = shuffle(df_train_sampled) 73 | 74 | train_paths, train_labels = get_meta_data(df_train_sampled) 75 | 76 | train_transforms = transforms.Compose([transforms.Resize((234, 240)), 77 | transforms.RandomRotation(degrees=(-8, 8)), 78 | transforms.RandomHorizontalFlip(), 79 | transforms.ColorJitter(brightness=0.2, contrast=0.2, 80 | saturation=0.2, hue=0.2), 81 | transforms.RandomCrop((224, 224)), 82 | transforms.ToTensor()]) 83 | 84 | train_dataset = Dataset(root=data_root, 85 | img_paths=train_paths, 86 | img_labels=train_labels, 87 | transform=train_transforms) 88 | 89 | val_transforms = transforms.Compose([transforms.Resize((234, 240)), 90 | transforms.RandomRotation(degrees=(-8, 8)), 91 | transforms.CenterCrop((224, 224)), 92 | transforms.ToTensor()]) 93 | 94 | val_paths, val_labels = get_meta_data(df_val) 95 | val_dataset = Dataset(root=data_root, 96 | img_paths=val_paths, 97 | img_labels=val_labels, 98 | transform=val_transforms) 99 | 100 | train_loader = torch.utils.data.DataLoader(dataset=train_dataset, 101 | batch_size=batch_size, 102 | num_workers=num_workers, 103 | shuffle=True) 104 | 105 | val_loader = torch.utils.data.DataLoader(dataset=val_dataset, 106 | batch_size=batch_size, 107 | num_workers=num_workers, 108 | shuffle=False) 109 | return train_loader, val_loader 110 | 111 | 112 | 113 | 114 | 115 | def on_epoch(model, optimizer, lr_decay, train_loader, test_loader, epoch): 116 | model.train() 117 | lr_decay.step() # decrease the learning rate by multiplying a factor `gamma` 118 | train_loss = 0.0 119 | correct = 0. 120 | meter = Meter() 121 | 122 | steps = len(train_loader.dataset) // batch_size + 1 123 | with tqdm(total=steps) as progress_bar: 124 | for i, (x, y) in enumerate(train_loader): # batch training 125 | y = torch.zeros(y.size(0), num_classes).scatter_(1, y.view(-1, 1), 126 | 1.) # change to one-hot coding 127 | x, y = x.cuda(), y.cuda() # convert input data to GPU Variable 128 | 129 | optimizer.zero_grad() # set gradients of optimizer to zero 130 | y_pred = model(x) # forward 131 | y_true = y.data.max(1)[1] 132 | loss = criterion(y_pred, y_true) 133 | loss.backward() # backward, compute all gradients of loss w.r.t all Variables 134 | train_loss += loss.item() * x.size(0) # record the batch loss 135 | optimizer.step() # update the trainable parameters with computed gradients 136 | 137 | y_pred = y_pred.data.max(1)[1] 138 | 139 | meter.add(y_true.cpu().numpy(), y_pred.cpu().numpy()) 140 | correct += y_pred.eq(y_true).cpu().sum() 141 | 142 | progress_bar.set_postfix(loss=loss.item(), correct=correct) 143 | progress_bar.update(1) 144 | 145 | train_loss /= float(len(train_loader.dataset)) 146 | train_acc = float(correct.item()) / float(len(train_loader.dataset)) 147 | scores = meter.value() 148 | meter.reset() 149 | print('Training UAR: %.4f' % (scores[0].mean()), scores[0]) 150 | print('Training UF1: %.4f' % (scores[1].mean()), scores[1]) 151 | 152 | 153 | correct = 0. 154 | test_loss = 0. 155 | 156 | model.eval() 157 | for i, (x, y) in enumerate(test_loader): # batch training 158 | y = torch.zeros(y.size(0), num_classes).scatter_(1, y.view(-1, 1), 159 | 1.) # change to one-hot coding 160 | x, y = x.cuda(), y.cuda() # convert input data to GPU Variable 161 | 162 | y_pred = model(x) # forward 163 | y_true = y.data.max(1)[1] 164 | 165 | loss = criterion(y_pred, y_true) # compute loss 166 | test_loss += loss.item() * x.size(0) # record the batch loss 167 | 168 | y_pred = y_pred.data.max(1)[1] 169 | 170 | meter.add(y_true.cpu().numpy(), y_pred.cpu().numpy()) 171 | correct += y_pred.eq(y_true).cpu().sum() 172 | 173 | if (epoch + 1) % 2 == 0 and i % steps == 0: 174 | print('y_true\n', y_true[:30]) 175 | print('y_pred\n', y_pred[:30]) 176 | print('y_true', y.sum(dim=0)) 177 | 178 | scores = meter.value() 179 | print('y_true', y.sum(dim=0)) 180 | print('Testing UAR: %.4f' % (scores[0].mean()), scores[0]) 181 | print('Testing UF1: %.4f' % (scores[1].mean()), scores[1]) 182 | 183 | test_loss /= float(len(test_loader.dataset)) 184 | test_acc = float(correct.item()) / float(len(test_loader.dataset)) 185 | return train_loss, train_acc, test_loss, test_acc, meter 186 | 187 | 188 | def train_eval(subject_out_idx): 189 | best_val_uf1 = 0.0 190 | best_val_uar = 0.0 191 | 192 | # Model & others 193 | model = VGG() 194 | model.cuda() 195 | optimizer = Adam(model.parameters(), lr=lr) 196 | lr_decay = lr_scheduler.ExponentialLR(optimizer, gamma=lr_decay_value) 197 | 198 | for epoch in range(epochs): 199 | train_loader, test_loader = load_me_data(data_root, data_apex_frame_path, 200 | subject_out_idx=subject_out_idx, 201 | batch_size=batch_size) 202 | 203 | train_loss, train_acc, test_loss, test_acc, meter = on_epoch(model, optimizer, lr_decay, 204 | train_loader, test_loader, 205 | epoch) 206 | 207 | print("==> Subject out: %02d - Epoch %02d: loss=%.5f, train_acc=%.5f, val_loss=%.5f, " 208 | "val_acc=%.4f" 209 | % (subject_out_idx, epoch, train_loss, train_acc, 210 | test_loss, test_acc)) 211 | 212 | scores = meter.value() 213 | if scores[1].mean() >= best_val_uf1: 214 | best_val_uar = scores[0].mean() 215 | best_val_uf1 = scores[1].mean() 216 | x_meter.add(meter.Y_true, meter.Y_pred) 217 | 218 | return best_val_uar, best_val_uf1 219 | 220 | 221 | 222 | for i in range(68): 223 | scores = train_eval(subject_out_idx=i) 224 | batches_scores.append(scores) 225 | x_scores = x_meter.value() 226 | print('final uar', x_scores[0], x_scores[0].mean()) 227 | print('final uf1', x_scores[1], x_scores[1].mean()) 228 | 229 | with open('scores_vgg11_no_macro.pkl', 'wb') as file: 230 | data = dict(meter=x_meter, batches_scores=batches_scores) 231 | pickle.dump(data, file) -------------------------------------------------------------------------------- /trained/model.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidnvq/me_recognition/cd46da69f9933ac8523e8701e1e2795451d29dfd/trained/model.pt -------------------------------------------------------------------------------- /trained/model_state.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidnvq/me_recognition/cd46da69f9933ac8523e8701e1e2795451d29dfd/trained/model_state.pt -------------------------------------------------------------------------------- /trained/scores_capsule_resnet_sampled_fer_freeze.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidnvq/me_recognition/cd46da69f9933ac8523e8701e1e2795451d29dfd/trained/scores_capsule_resnet_sampled_fer_freeze.pkl --------------------------------------------------------------------------------