Chengrui Wang
Add a model for facial expression recognition (#100)
596a24b
import os
import numpy as np
import cv2 as cv
from .base_dataloader import _BaseImageLoader
from ..factory import DATALOADERS
@DATALOADERS.register
class RecognitionImageLoader(_BaseImageLoader):
def __init__(self, **kwargs):
super().__init__(**kwargs)
self._labels = self._load_label()
def _load_label(self):
labels = dict.fromkeys(self._files, None)
for filename in self._files:
if os.path.exists(os.path.join(self._path, '{}.txt'.format(filename[:-4]))):
labels[filename] = np.loadtxt(os.path.join(self._path, '{}.txt'.format(filename[:-4])), ndmin=2)
else:
labels[filename] = None
return labels
def __iter__(self):
for filename in self._files:
image = cv.imread(os.path.join(self._path, filename))
if [0, 0] in self._sizes:
yield filename, image, self._labels[filename]
else:
for size in self._sizes:
image_r = cv.resize(image, size)
yield filename, image_r, self._labels[filename]