Source code for pyVHR.datasets.ubfc1

import csv
import numpy as np
from pyVHR.datasets.dataset import Dataset
from pyVHR.BPM.BPM import BVPsignal


[docs]class UBFC1(Dataset): """ UBFC1 Dataset .. UBFC dataset structure: .. ----------------- .. datasetDIR/ .. | |-- SubjDIR1/ .. | |-- vid.avi .. |... .. | |-- SubjDIRM/ .. | |-- vid.avi """ name = 'UBFC1' signalGT = 'BVP' # GT signal type numLevels = 2 # depth of the filesystem collecting video and BVP files numSubjects = 8 # number of subjects video_EXT = 'avi' # extension of the video files frameRate = 30 # vieo frame rate VIDEO_SUBSTRING = '' # substring contained in the filename SIG_EXT = 'xmp' # extension of the BVP files SIG_SUBSTRING = '' # substring contained in the filename SIG_SampleRate = 62 # sample rate of the BVP files skinThresh = [40, 60] # thresholds for skin detection
[docs] def readSigfile(self, filename): """ Load signal from file. Returns: a :py:class:`pyVHR.BPM.BPM.BVPsignal` object that can be used to extract BPM signal from ground truth BVP signal. """ gtTrace = [] gtTime = [] gtHR = [] with open(filename, 'r') as csvfile: xmp = csv.reader(csvfile) for row in xmp: gtTrace.append(float(row[3])) gtTime.append(float(row[0])/1000.) gtHR.append(float(row[1])) data = np.array(gtTrace) time = np.array(gtTime) hr = np.array(gtHR) self.SIG_SampleRate = np.round(1/np.mean(np.diff(time))) '''import matplotlib.pyplot as plt plt.plot(hr) plt.show()''' return BVPsignal(data, self.SIG_SampleRate)