def generate_batch(image): """ preprocess image, return batch :param im: cv2.imread returns [height, width, channel] in BGR :return: data_batch: MXNet input batch data_names: names in data_batch im_scale: float number """ data = [] data_shapes = [] im_scale = [] data_name = [] t1 = [] t2 = [] for i in range(0, image.qsize()): im = image.get() im_array, im_scalet = resize(im, SHORT_SIDE, LONG_SIDE) im_array = transform(im_array, PIXEL_MEANS) im_info = np.array([[im_array.shape[2], im_array.shape[3], im_scalet]], dtype=np.float32) t1.append(im_array.shape) t2.append(im_info.shape) data.append([mx.nd.array(im_array), mx.nd.array(im_info)]) data_shapes.append([('data', im_array.shape), ('im_info', im_info.shape)]) im_scale.append(im_scalet) data_name.append(DATA_NAMES) data_batch = mx.io.DataBatch(data=data, label=None, provide_data=data_shapes, provide_label=None) return data_batch, data_name, im_scale
def generate_batch(im): """ preprocess image, return batch :param im: cv2.imread returns [height, width, channel] in BGR :return: data_batch: MXNet input batch data_names: names in data_batch im_scale: float number """ im_array, im_scale = resize(im, SHORT_SIDE, LONG_SIDE) im_info = np.array([[im_array.shape[0], im_array.shape[1], im_scale]], dtype=np.float32) if im_array.shape[0] == SHORT_SIDE or im_array.shape[0] == LONG_SIDE: if im_array.shape[1] % 32 != 0: pad_size = int(math.ceil(im_array.shape[1] / 32.) * 32 - im_array.shape[1]) im_array = cv2.copyMakeBorder(im_array, 0, 0, 0, pad_size, cv2.BORDER_CONSTANT, value=(0, 0, 0)) elif im_array.shape[1] == SHORT_SIDE or im_array.shape[1] == LONG_SIDE: if im_array.shape[0] % 32 != 0: pad_size = int(math.ceil(im_array.shape[0] / 32.) * 32 - im_array.shape[0]) im_array = cv2.copyMakeBorder(im_array, 0, pad_size, 0, 0, cv2.BORDER_CONSTANT, value=(0, 0, 0)) im_array = transform(im_array, config.PIXEL_MEANS) # im_info = np.array([[im_array.shape[2], im_array.shape[3], im_scale]], dtype=np.float32) data = [mx.nd.array(im_array), mx.nd.array(im_info)] data_shapes = [('data', im_array.shape), ('im_info', im_info.shape)] data_batch = mx.io.DataBatch(data=data, label=None, provide_data=data_shapes, provide_label=None) return data_batch, DATA_NAMES, im_scale
def generate_batch(im): """ preprocess image, return batch :param im: cv2.imread returns [height, width, channel] in BGR :return: data_batch: MXNet input batch data_names: names in data_batch im_scale: float number """ import ipdb ipdb.set_trace() im_array, im_scale = resize(im, SHORT_SIDE, LONG_SIDE, stride=config.IMAGE_STRIDE) im_array = transform(im_array, PIXEL_MEANS) im_info = np.array([[im_array.shape[2], im_array.shape[3], im_scale]], dtype=np.float32) data = [mx.nd.array(im_array), mx.nd.array(im_info)] data_shapes = [('data', im_array.shape), ('im_info', im_info.shape)] data_batch = mx.io.DataBatch(data=data, label=None, provide_data=data_shapes, provide_label=None) return data_batch, DATA_NAMES, im_scale
def generate_batch(im): """ preprocess image, return batch :param im: cv2.imread returns [height, width, channel] in BGR :return: data_batch: MXNet input batch data_names: names in data_batch im_scale: float number """ im_array, im_scale = resize(im, SHORT_SIDE, LONG_SIDE) im_array = transform(im_array, PIXEL_MEANS) im_info = np.array([[im_array.shape[2], im_array.shape[3], im_scale]], dtype=np.float32) data = [mx.nd.array(im_array), mx.nd.array(im_info)] data_shapes = [('data', im_array.shape), ('im_info', im_info.shape)] data_batch = mx.io.DataBatch(data=data, label=None, provide_data=data_shapes, provide_label=None) return data_batch, DATA_NAMES, im_scale
def load_data(): # load demo data demo_folder = '../data/demo/' image_list = os.listdir(demo_folder) data = [] im_scales = [] for im_name in image_list: assert os.path.exists(demo_folder + im_name), ('%s does not exist'.format(demo_folder + im_name)) im = cv2.imread(demo_folder + im_name, cv2.IMREAD_COLOR) # | cv2.IMREAD_IGNORE_ORIENTATION) target_size = config.SCALES[0][0] max_size = config.SCALES[0][1] im, im_scale = resize(im, target_size, max_size, stride=config.IMAGE_STRIDE) im_tensor = transform(im, config.PIXEL_MEANS) im_info = np.array([[im_tensor.shape[2], im_tensor.shape[3], im_scale]], dtype=np.float32) data.append({'data': im_tensor, 'im_info': im_info}) im_scales.append(im_scale) return data, image_list, im_scales