コード例 #1
0
ファイル: loader.py プロジェクト: xtanitfy/Deep-Feature-Flow
 def get_batch(self):
     cur_from = self.cur
     cur_to = min(cur_from + self.batch_size, self.size)
     roidb = [self.roidb[self.index[i]] for i in range(cur_from, cur_to)]
     if self.has_rpn:
         data, label, im_info = get_rpn_testbatch(roidb, self.cfg)
     else:
         data, label, im_info = get_rcnn_testbatch(roidb, self.cfg)
     self.data = [[mx.nd.array(idata[name]) for name in self.data_name] for idata in data]
     self.im_info = im_info
コード例 #2
0
 def get_batch(self):
     cur_from = self.cur
     cur_to = min(cur_from + self.batch_size, self.size)
     roidb = [self.roidb[self.index[i]] for i in range(cur_from, cur_to)]
     if self.has_rpn:
         data, label, im_info = get_rpn_testbatch(roidb, self.cfg)
     else:
         data, label, im_info = get_rcnn_testbatch(roidb, self.cfg)
     self.data = [[mx.nd.array(idata[name]) for name in self.data_name]
                  for idata in data]
     self.im_info = im_info
コード例 #3
0
    def get_batch(self):
        cur_roidb = self.roidb[self.cur_roidb_index].copy()
        cur_roidb['image'] = cur_roidb['pattern'] % self.cur_frameid
        # update seg_id
        cur_roidb['frame_seg_id'] = self.cur_frameid
        self.cur_seg_len = cur_roidb['frame_seg_len']
        data, label, im_info = get_rpn_testbatch([cur_roidb], self.cfg)
        if self.cur_frameid == 0:  # new video
            self.key_frame_flag = 0
        else:  # normal frame
            self.key_frame_flag = 2

        self.data = [[mx.nd.array(idata[name]) for name in self.data_name]
                     for idata in data]
        self.im_info = im_info
コード例 #4
0
    def get_batch_individual(self, cur_from=None):
        if cur_from is None:
            cur_from = self.cur
        cur_to = min(cur_from + self.batch_size, self.size)
        roidb = [self.roidb[self.index[i]] for i in range(cur_from, cur_to)]
        if self.has_rpn:
            data, label, im_info = get_rpn_testbatch(roidb, self.cfg)
        else:
            data, label, im_info = get_rcnn_testbatch(roidb, self.cfg)

        self.lock_data.acquire()
        self.data = [mx.nd.array(data[name]) for name in self.data_name]
        self.im_info = im_info
        self.lock_data.release()

        return data, im_info
コード例 #5
0
    def get_batch(self):
        cur_roidb = self.roidb[self.cur_roidb_index].copy()
        cur_roidb['image'] = cur_roidb['pattern'] % self.cur_frameid
        self.cur_seg_len = cur_roidb['frame_seg_len']
        data, label, im_info = get_rpn_testbatch([cur_roidb], self.cfg)
        if self.cur_frameid == 0: # new video
                self.key_frame_flag = 0
        else:       # normal frame
            self.key_frame_flag = 2

        extend_data = [{'data': data[0]['data'] ,
                        'im_info': data[0]['im_info'],
                        'data_cache': data[0]['data'],
                        'feat_cache': data[0]['data']}]
        self.data = [[mx.nd.array(extend_data[i][name]) for name in self.data_name] for i in xrange(len(data))]
        self.im_info = im_info
コード例 #6
0
ファイル: loader.py プロジェクト: hustvl/LSFA
 def get_batch(self):
     cur_roidb = self.roidb[self.cur_roidb_index].copy()
     cur_roidb['image'] = cur_roidb['pattern'] % self.cur_frameid
     self.cur_seg_len = cur_roidb['frame_seg_len']
     data, label, im_info = get_rpn_testbatch([cur_roidb], self.cfg,
                                              self.cur_frameid)
     if self.key_frameid == self.cur_frameid:  # key frame
         self.data_key_old = self.data_key.copy(
         ) if self.data_key is not None else data[0]['data'].copy()
         self.data_key = data[0]['data'].copy()
         if self.key_frameid == 0:
             self.data_key_old = data[0]['data'].copy()
             self.key_frame_flag = 0
         else:
             self.key_frame_flag = 1
     elif self.cur_frameid + 1 == self.cur_seg_len:  #key frame
         self.data_key_old = self.data_key.copy(
         ) if self.data_key is not None else data[0]['data'].copy()
         self.data_key = data[0]['data'].copy()
         self.key_frame_flag = 1
     else:
         self.key_frame_flag = 2
     extend_data = [{
         'data':
         data[0]['data'],
         'im_info':
         data[0]['im_info'],
         'data_key':
         self.data_key,
         'data_key_old':
         self.data_key_old,
         'motion_vector':
         data[0]['motion_vector'],
         'res_diff':
         data[0]['res_diff'],
         'feat_key_old':
         np.zeros((1, self.cfg.network.DFF_FEAT_DIM, 1, 1)),
         'feat_key':
         np.zeros((1, self.cfg.network.DFF_FEAT_DIM, 1, 1))
     }]
     self.data = [[
         mx.nd.array(extend_data[i][name]) for name in self.data_name
     ] for i in xrange(len(data))]
     self.im_info = im_info
コード例 #7
0
ファイル: loader.py プロジェクト: xtanitfy/Deep-Feature-Flow
 def get_batch(self):
     cur_roidb = self.roidb[self.cur_roidb_index].copy()
     cur_roidb['image'] = cur_roidb['pattern'] % self.cur_frameid
     self.cur_seg_len = cur_roidb['frame_seg_len']
     data, label, im_info = get_rpn_testbatch([cur_roidb], self.cfg)
     if self.key_frameid == self.cur_frameid: # key frame
         self.data_key = data[0]['data'].copy()
         if self.key_frameid == 0:
             self.key_frame_flag = 0
         else:
             self.key_frame_flag = 1
     else:
         self.key_frame_flag = 2
     extend_data = [{'data': data[0]['data'],
                     'im_info': data[0]['im_info'],
                     'data_key': self.data_key,
                     'feat_key': np.zeros((1,self.cfg.network.DFF_FEAT_DIM,1,1))}]
     self.data = [[mx.nd.array(extend_data[i][name]) for name in self.data_name] for i in xrange(len(data))]
     self.im_info = im_info
コード例 #8
0
    def get_init_batch(self):
        cur_roidb = self.roidb[self.cur_roidb_index].copy()
        cur_roidb['image'] = cur_roidb['pattern'] % self.cur_frameid
        self.cur_seg_len = cur_roidb['frame_seg_len']
        data, label, im_info = get_rpn_testbatch([cur_roidb], self.cfg)
        if self.cur_frameid == 0: # new frame
                self.key_frame_flag = 0
        else:       # normal frame
            self.key_frame_flag = 2

        feat_stride = float(self.cfg.network.RCNN_FEAT_STRIDE)
        extend_data = [{'data': data[0]['data'] ,
                        'im_info': data[0]['im_info'],
                        'data_cache': np.zeros((6, 3, max([v[0] for v in self.cfg.SCALES]), max([v[1] for v in self.cfg.SCALES]))),
                        'feat_cache': np.zeros((6, self.cfg.network.FGFA_FEAT_DIM,
                                                np.ceil(max([v[0] for v in self.cfg.SCALES]) / feat_stride).astype(np.int),
                                                np.ceil(max([v[1] for v in self.cfg.SCALES]) / feat_stride).astype(np.int)))}]
        self.data = [[mx.nd.array(extend_data[i][name]) for name in self.data_name] for i in xrange(len(data))]
        self.im_info = im_info
    def get_init_batch(self):
        cur_roidb = self.roidb[self.cur_roidb_index].copy()
        if 'frame_seg_len' in cur_roidb:
            self.cur_seg_len = cur_roidb['frame_seg_len']
        elif 'video_len' in cur_roidb:
            self.cur_seg_len = cur_roidb['video_len']
        else:
            assert False, 'unknown video length type'

        if self.cur_frameid == 0:  # new video
            self.key_frame_flag = 0
            self.video_index = np.arange(self.cur_seg_len)
            if self.video_shuffle:
                np.random.shuffle(self.video_index)
        else:  # normal frame
            self.key_frame_flag = 2

        if self.video_shuffle:
            if 'frame_ids' in cur_roidb:
                cur_roidb['image'] = cur_roidb['frame_ids'][self.video_index[
                    self.cur_frameid]]
            elif 'pattern' in cur_roidb:
                cur_roidb['image'] = cur_roidb['pattern'] % self.video_index[
                    self.cur_frameid]
            else:
                assert False, 'unknown video pattern for get image index'
        else:
            if 'frame_ids' in cur_roidb:
                cur_roidb['image'] = cur_roidb['frame_ids'][self.cur_frameid]
            elif 'pattern' in cur_roidb:
                cur_roidb['image'] = cur_roidb['pattern'] % self.cur_frameid
            else:
                assert False, 'unknown video pattern for get image index'

        data, label, im_info = get_rpn_testbatch([cur_roidb], self.cfg)

        # feat_stride = float(self.cfg.network.RCNN_FEAT_STRIDE)
        feat_stride = float(self.cfg.network.RPN_FEAT_STRIDE)
        H = np.ceil(max([v[0] for v in self.cfg.SCALES]) / feat_stride).astype(
            np.int)
        W = np.ceil(max([v[1] for v in self.cfg.SCALES]) / feat_stride).astype(
            np.int)
        T = self.cfg.TEST.KEY_FRAME_INTERVAL * 2 + 1
        extend_data = [{
            'data':
            data[0]['data'],
            'im_info':
            data[0]['im_info'],
            'data_cache':
            np.zeros((T, 3, max([v[0] for v in self.cfg.SCALES]),
                      max([v[1] for v in self.cfg.SCALES]))),
            'feat_cache':
            np.zeros((T, self.cfg.network.FGFA_FEAT_DIM, H, W))
        }]
        self.data = [[
            mx.nd.array(extend_data[i][name]) for name in self.data_name
        ] for i in xrange(len(data))]
        self.im_info = im_info
        if isinstance(cur_roidb['image'], int):
            import os
            self.img_name = os.path.join(cur_roidb['video_id'].split('_')[0], cur_roidb['video_id'], \
                                         str(cur_roidb['image']) + '.jpg')
        else:
            self.img_name = cur_roidb['image']