def add_rgb_to_leveldb(video_dir, annotation, db, demo_name, patch_size, num_samples, start_id): frame_stamps = [seg_info["look"] for seg_info in annotation] rgb_imgs, depth_imgs = get_video_frames(video_dir, frame_stamps) batch = leveldb.WriteBatch() for (i_seg, seg_info) in enumerate(annotation): rgb_img = rgb_imgs[i_seg] (h, w, c) = rgb_img.shape patches = sample_patches(rgb_img, patch_size, num_samples) for (i, patch) in enumerate(patches): patch = cv2datum(patch) datum = caffe.io.array_to_datum(patch) patch_string = datum.SerializeToString() patch_unique_id = start_id start_id = start_id + 1 batch.Put(str(patch_unique_id).zfill(7), patch_string) db.Write(batch, sync=True) return start_id
def add_rgbd_to_hdf(video_dir, annotation, hdfroot, demo_name): if demo_name in hdfroot.keys(): demo_group = hdfroot[demo_name] else: demo_group = hdfroot.create_group(demo_name) frame_stamps = [seg_info["look"] for seg_info in annotation] rgb_imgs, depth_imgs= get_video_frames(video_dir, frame_stamps) for (i_seg, seg_info) in enumerate(annotation): if seg_info["name"] == "done": continue if seg_info["name"] in demo_group.keys(): seg_group = demo_group[seg_info["name"]] else: seg_group = demo_group.create_group(seg_info["name"]) seg_group["rgb"] = rgb_imgs[i_seg] seg_group["depth"] = depth_imgs[i_seg]
with open(task_file, "r") as fh: task_info = yaml.load(fh) demos_info = task_info['demos'] for demo_info in demos_info: demo_name = demo_info['demo_name'] print demo_name demo_dir = osp.join(task_dir, demo_name) rgbd_dir = osp.join(demo_dir, demo_names.video_dir%(1)) annotation_file = osp.join(demo_dir,"ann.yaml") with open(annotation_file, "r") as fh: annotations = yaml.load(fh) look_stamps = [seg_info['look'] for seg_info in annotations] rgb_imgs, depth_imgs= get_video_frames(rgbd_dir, look_stamps) if demo_name in perturb_demofile.keys(): demo_group = perturb_demofile[demo_name] else: demo_group = perturb_demofile.create_group(demo_name) n_perturb_existed = len(demo_group.keys()) # number of perturbations object_xyz = cloud_proc_func(rgb_imgs[0], depth_imgs[0], np.eye(4)) object_xyz = clouds.downsample(object_xyz, .01) hitch_xyz = None hitch_pos = None if args.has_hitch: