|
|
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] |