def worker(self): while True: indexes = self.index_queue.get() if indexes is None: return roidb = [self.roidb[idx] for idx in indexes] # pad last batch if len(roidb) < self.batch_size: for _ in range(self.batch_size - len(roidb)): roidb.append(self.roidb[0]) if self.has_rpn: data, label, im_info = get_rpn_testbatch(roidb) else: raise NotImplementedError result = {"data": [mx.nd.array(data[name]) for name in self.data_name], "im_info": im_info} while True: if self.last_index == indexes[0]: self.last_index += len(indexes) self.result_queue.put(result) break else: time.sleep(0.001)
def get_first_batch(self): roidb = [self.roidb[idx] for idx in range(self.batch_size)] if self.has_rpn: data, label, im_info = get_rpn_testbatch(roidb) else: raise NotImplementedError self.data = [mx.nd.array(data[name]) for name in self.data_name] self.im_info = im_info
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) else: data, label, im_info = get_rcnn_testbatch(roidb) self.data = [mx.nd.array(data[name]) for name in self.data_name] self.im_info = im_info
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) else: raise NotImplementedError self.data = [[mx.nd.array(data[i][name]) for name in self.data_name] for i in xrange(len(data))] self.im_info = im_info
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: if not self.withlabel: data, label = get_rpn_testbatch(roidb) else: data, label = get_rpn_batch(roidb) else: data, label = get_rcnn_testbatch(roidb) #print('in_loader', label['gt_boxes'].shape, file=sys.stderr) self.im_info = data['im_info'] self.data = [mx.nd.array(data[name]) for name in self.data_name]