import os import numpy as np from .base_dataloader import _BaseVideoLoader from ..factory import DATALOADERS @DATALOADERS.register class TrackingVideoLoader(_BaseVideoLoader): def __init__(self, **kwargs): super().__init__(**kwargs) self._first_frames = dict() for filename in self._files: stream = self._streams[filename] self._first_frames[filename] = next(stream) self._rois = self._load_roi() def _load_roi(self): rois = dict.fromkeys(self._files, None) for filename in self._files: rois[filename] = np.loadtxt(os.path.join(self._path, '{}.txt'.format(filename[:-4])), dtype=np.int32, ndmin=2) return rois def __getitem__(self, idx): filename = self._files[idx] return filename, self._streams[filename], self._first_frames[filename], self._rois[filename]