├── AugDemos
├── README.md
├── aug_dataset_v1.py
├── aug_dataset_v2.py
├── infer_trt.py
├── materials
│ ├── aug_pcd_drawer_pcds.gif
│ ├── aug_pcd_drawer_pcds.mp4
│ ├── aug_pcd_drawer_rgbs.jpg
│ ├── aug_pcd_pouring_pcds.gif
│ ├── aug_pcd_pouring_pcds.mp4
│ ├── aug_pcd_pouring_rgbs.jpg
│ ├── aug_pcd_uncover_pcds.gif
│ ├── aug_pcd_uncover_pcds.mp4
│ ├── aug_pcd_uncover_rgbs.jpg
│ ├── objects_point_clouds.jpg
│ ├── paired_raw_images.jpg
│ ├── raw_images_states.jpg
│ └── raw_segmented_objs.jpg
└── utils_igev.py
├── BiDP
├── README.md
├── infer.py
├── materials
│ ├── BiDP_infer_demo1_drawer_noaug.gif
│ ├── BiDP_infer_demo1_drawer_withaug.gif
│ ├── BiDP_infer_demo1_openbox_noaug.gif
│ ├── BiDP_infer_demo1_openbox_withaug.gif
│ ├── BiDP_infer_demo1_pouring_noaug.gif
│ ├── BiDP_infer_demo1_pouring_withaug.gif
│ ├── BiDP_infer_demo1_uncover_noaug.gif
│ ├── BiDP_infer_demo1_uncover_withaug.gif
│ ├── BiDP_infer_demo1_unscrew_noaug.gif
│ └── BiDP_infer_demo1_unscrew_withaug.gif
├── policies
│ ├── agents
│ │ ├── dp_agent.py
│ │ ├── dp_policy.py
│ │ ├── equibot_agent.py
│ │ └── equibot_policy.py
│ ├── configs
│ │ ├── base.yaml
│ │ └── basic.yaml
│ ├── datasets
│ │ ├── dataset.py
│ │ └── dataset_loader.py
│ ├── utils
│ │ ├── diffusion
│ │ │ ├── conditional_unet1d.py
│ │ │ ├── conv1d_components.py
│ │ │ ├── ema_model.py
│ │ │ ├── lr_scheduler.py
│ │ │ ├── positional_embedding.py
│ │ │ └── resnet_with_gn.py
│ │ ├── equivariant_diffusion
│ │ │ ├── conditional_unet1d.py
│ │ │ └── conv1d_components.py
│ │ ├── media.py
│ │ ├── misc.py
│ │ └── norm.py
│ └── vision
│ │ ├── misc.py
│ │ ├── pointnet_encoder.py
│ │ ├── sim3_encoder.py
│ │ ├── vec_layers.py
│ │ └── vec_pointnet.py
├── run_noaug.sh
├── run_withaug.sh
├── test
│ ├── drawer
│ │ ├── demo_notrans_noaug_id
│ │ │ ├── BiDP_infer_demo1.mp4
│ │ │ ├── pred_actions.npy
│ │ │ ├── temp_0000.jpg
│ │ │ ├── temp_0001.jpg
│ │ │ ├── temp_0002.jpg
│ │ │ ├── temp_0003.jpg
│ │ │ ├── temp_0004.jpg
│ │ │ ├── temp_0005.jpg
│ │ │ ├── temp_0006.jpg
│ │ │ ├── temp_0007.jpg
│ │ │ ├── temp_0008.jpg
│ │ │ ├── temp_0009.jpg
│ │ │ ├── temp_0010.jpg
│ │ │ ├── temp_0011.jpg
│ │ │ ├── temp_0012.jpg
│ │ │ ├── temp_0013.jpg
│ │ │ ├── temp_0014.jpg
│ │ │ ├── temp_0015.jpg
│ │ │ ├── temp_0016.jpg
│ │ │ ├── temp_0017.jpg
│ │ │ ├── temp_0018.jpg
│ │ │ ├── temp_0019.jpg
│ │ │ ├── temp_0020.jpg
│ │ │ └── temp_0021.jpg
│ │ └── demo_notrans_withaug_id
│ │ │ ├── BiDP_infer_demo1.mp4
│ │ │ ├── pred_actions.npy
│ │ │ ├── temp_0000.jpg
│ │ │ ├── temp_0001.jpg
│ │ │ ├── temp_0002.jpg
│ │ │ ├── temp_0003.jpg
│ │ │ ├── temp_0004.jpg
│ │ │ ├── temp_0005.jpg
│ │ │ ├── temp_0006.jpg
│ │ │ ├── temp_0007.jpg
│ │ │ ├── temp_0008.jpg
│ │ │ ├── temp_0009.jpg
│ │ │ ├── temp_0010.jpg
│ │ │ ├── temp_0011.jpg
│ │ │ ├── temp_0012.jpg
│ │ │ ├── temp_0013.jpg
│ │ │ ├── temp_0014.jpg
│ │ │ ├── temp_0015.jpg
│ │ │ ├── temp_0016.jpg
│ │ │ ├── temp_0017.jpg
│ │ │ ├── temp_0018.jpg
│ │ │ ├── temp_0019.jpg
│ │ │ ├── temp_0020.jpg
│ │ │ └── temp_0021.jpg
│ ├── openbox
│ │ ├── demo_notrans_noaug_id
│ │ │ ├── BiDP_infer_demo1.mp4
│ │ │ ├── pred_actions.npy
│ │ │ ├── temp_0000.jpg
│ │ │ ├── temp_0001.jpg
│ │ │ ├── temp_0002.jpg
│ │ │ ├── temp_0003.jpg
│ │ │ ├── temp_0004.jpg
│ │ │ ├── temp_0005.jpg
│ │ │ ├── temp_0006.jpg
│ │ │ ├── temp_0007.jpg
│ │ │ ├── temp_0008.jpg
│ │ │ ├── temp_0009.jpg
│ │ │ ├── temp_0010.jpg
│ │ │ ├── temp_0011.jpg
│ │ │ ├── temp_0012.jpg
│ │ │ ├── temp_0013.jpg
│ │ │ ├── temp_0014.jpg
│ │ │ ├── temp_0015.jpg
│ │ │ ├── temp_0016.jpg
│ │ │ ├── temp_0017.jpg
│ │ │ ├── temp_0018.jpg
│ │ │ ├── temp_0019.jpg
│ │ │ ├── temp_0020.jpg
│ │ │ ├── temp_0021.jpg
│ │ │ ├── temp_0022.jpg
│ │ │ ├── temp_0023.jpg
│ │ │ ├── temp_0024.jpg
│ │ │ ├── temp_0025.jpg
│ │ │ ├── temp_0026.jpg
│ │ │ ├── temp_0027.jpg
│ │ │ ├── temp_0028.jpg
│ │ │ ├── temp_0029.jpg
│ │ │ ├── temp_0030.jpg
│ │ │ ├── temp_0031.jpg
│ │ │ ├── temp_0032.jpg
│ │ │ ├── temp_0033.jpg
│ │ │ ├── temp_0034.jpg
│ │ │ ├── temp_0035.jpg
│ │ │ ├── temp_0036.jpg
│ │ │ ├── temp_0037.jpg
│ │ │ ├── temp_0038.jpg
│ │ │ ├── temp_0039.jpg
│ │ │ ├── temp_0040.jpg
│ │ │ ├── temp_0041.jpg
│ │ │ ├── temp_0042.jpg
│ │ │ ├── temp_0043.jpg
│ │ │ ├── temp_0044.jpg
│ │ │ ├── temp_0045.jpg
│ │ │ ├── temp_0046.jpg
│ │ │ ├── temp_0047.jpg
│ │ │ ├── temp_0048.jpg
│ │ │ ├── temp_0049.jpg
│ │ │ ├── temp_0050.jpg
│ │ │ ├── temp_0051.jpg
│ │ │ ├── temp_0052.jpg
│ │ │ ├── temp_0053.jpg
│ │ │ ├── temp_0054.jpg
│ │ │ ├── temp_0055.jpg
│ │ │ ├── temp_0056.jpg
│ │ │ ├── temp_0057.jpg
│ │ │ ├── temp_0058.jpg
│ │ │ ├── temp_0059.jpg
│ │ │ ├── temp_0060.jpg
│ │ │ ├── temp_0061.jpg
│ │ │ ├── temp_0062.jpg
│ │ │ ├── temp_0063.jpg
│ │ │ ├── temp_0064.jpg
│ │ │ └── temp_0065.jpg
│ │ └── demo_notrans_withaug_id
│ │ │ ├── BiDP_infer_demo1.mp4
│ │ │ ├── pred_actions.npy
│ │ │ ├── temp_0000.jpg
│ │ │ ├── temp_0001.jpg
│ │ │ ├── temp_0002.jpg
│ │ │ ├── temp_0003.jpg
│ │ │ ├── temp_0004.jpg
│ │ │ ├── temp_0005.jpg
│ │ │ ├── temp_0006.jpg
│ │ │ ├── temp_0007.jpg
│ │ │ ├── temp_0008.jpg
│ │ │ ├── temp_0009.jpg
│ │ │ ├── temp_0010.jpg
│ │ │ ├── temp_0011.jpg
│ │ │ ├── temp_0012.jpg
│ │ │ ├── temp_0013.jpg
│ │ │ ├── temp_0014.jpg
│ │ │ ├── temp_0015.jpg
│ │ │ ├── temp_0016.jpg
│ │ │ ├── temp_0017.jpg
│ │ │ ├── temp_0018.jpg
│ │ │ ├── temp_0019.jpg
│ │ │ ├── temp_0020.jpg
│ │ │ ├── temp_0021.jpg
│ │ │ ├── temp_0022.jpg
│ │ │ ├── temp_0023.jpg
│ │ │ ├── temp_0024.jpg
│ │ │ ├── temp_0025.jpg
│ │ │ ├── temp_0026.jpg
│ │ │ ├── temp_0027.jpg
│ │ │ ├── temp_0028.jpg
│ │ │ ├── temp_0029.jpg
│ │ │ ├── temp_0030.jpg
│ │ │ ├── temp_0031.jpg
│ │ │ ├── temp_0032.jpg
│ │ │ ├── temp_0033.jpg
│ │ │ ├── temp_0034.jpg
│ │ │ ├── temp_0035.jpg
│ │ │ ├── temp_0036.jpg
│ │ │ ├── temp_0037.jpg
│ │ │ ├── temp_0038.jpg
│ │ │ ├── temp_0039.jpg
│ │ │ ├── temp_0040.jpg
│ │ │ ├── temp_0041.jpg
│ │ │ ├── temp_0042.jpg
│ │ │ ├── temp_0043.jpg
│ │ │ ├── temp_0044.jpg
│ │ │ ├── temp_0045.jpg
│ │ │ ├── temp_0046.jpg
│ │ │ ├── temp_0047.jpg
│ │ │ ├── temp_0048.jpg
│ │ │ ├── temp_0049.jpg
│ │ │ ├── temp_0050.jpg
│ │ │ ├── temp_0051.jpg
│ │ │ ├── temp_0052.jpg
│ │ │ ├── temp_0053.jpg
│ │ │ ├── temp_0054.jpg
│ │ │ ├── temp_0055.jpg
│ │ │ ├── temp_0056.jpg
│ │ │ ├── temp_0057.jpg
│ │ │ ├── temp_0058.jpg
│ │ │ ├── temp_0059.jpg
│ │ │ ├── temp_0060.jpg
│ │ │ ├── temp_0061.jpg
│ │ │ ├── temp_0062.jpg
│ │ │ ├── temp_0063.jpg
│ │ │ ├── temp_0064.jpg
│ │ │ └── temp_0065.jpg
│ ├── platform_pcd.ply
│ ├── pouring
│ │ ├── demo_notrans_noaug_id
│ │ │ ├── BiDP_infer_demo1.mp4
│ │ │ ├── pred_actions.npy
│ │ │ ├── temp_0000.jpg
│ │ │ ├── temp_0001.jpg
│ │ │ ├── temp_0002.jpg
│ │ │ ├── temp_0003.jpg
│ │ │ ├── temp_0004.jpg
│ │ │ ├── temp_0005.jpg
│ │ │ ├── temp_0006.jpg
│ │ │ ├── temp_0007.jpg
│ │ │ ├── temp_0008.jpg
│ │ │ ├── temp_0009.jpg
│ │ │ ├── temp_0010.jpg
│ │ │ ├── temp_0011.jpg
│ │ │ ├── temp_0012.jpg
│ │ │ ├── temp_0013.jpg
│ │ │ ├── temp_0014.jpg
│ │ │ ├── temp_0015.jpg
│ │ │ ├── temp_0016.jpg
│ │ │ ├── temp_0017.jpg
│ │ │ ├── temp_0018.jpg
│ │ │ ├── temp_0019.jpg
│ │ │ ├── temp_0020.jpg
│ │ │ ├── temp_0021.jpg
│ │ │ ├── temp_0022.jpg
│ │ │ └── temp_0023.jpg
│ │ └── demo_notrans_withaug_id
│ │ │ ├── BiDP_infer_demo1.mp4
│ │ │ ├── pred_actions.npy
│ │ │ ├── temp_0000.jpg
│ │ │ ├── temp_0001.jpg
│ │ │ ├── temp_0002.jpg
│ │ │ ├── temp_0003.jpg
│ │ │ ├── temp_0004.jpg
│ │ │ ├── temp_0005.jpg
│ │ │ ├── temp_0006.jpg
│ │ │ ├── temp_0007.jpg
│ │ │ ├── temp_0008.jpg
│ │ │ ├── temp_0009.jpg
│ │ │ ├── temp_0010.jpg
│ │ │ ├── temp_0011.jpg
│ │ │ ├── temp_0012.jpg
│ │ │ ├── temp_0013.jpg
│ │ │ ├── temp_0014.jpg
│ │ │ ├── temp_0015.jpg
│ │ │ ├── temp_0016.jpg
│ │ │ ├── temp_0017.jpg
│ │ │ ├── temp_0018.jpg
│ │ │ ├── temp_0019.jpg
│ │ │ ├── temp_0020.jpg
│ │ │ ├── temp_0021.jpg
│ │ │ ├── temp_0022.jpg
│ │ │ └── temp_0023.jpg
│ ├── uncover
│ │ ├── demo_notrans_noaug_id
│ │ │ ├── BiDP_infer_demo1.mp4
│ │ │ ├── pred_actions.npy
│ │ │ ├── temp_0000.jpg
│ │ │ ├── temp_0001.jpg
│ │ │ ├── temp_0002.jpg
│ │ │ ├── temp_0003.jpg
│ │ │ ├── temp_0004.jpg
│ │ │ ├── temp_0005.jpg
│ │ │ ├── temp_0006.jpg
│ │ │ ├── temp_0007.jpg
│ │ │ ├── temp_0008.jpg
│ │ │ ├── temp_0009.jpg
│ │ │ ├── temp_0010.jpg
│ │ │ ├── temp_0011.jpg
│ │ │ ├── temp_0012.jpg
│ │ │ ├── temp_0013.jpg
│ │ │ ├── temp_0014.jpg
│ │ │ ├── temp_0015.jpg
│ │ │ ├── temp_0016.jpg
│ │ │ ├── temp_0017.jpg
│ │ │ ├── temp_0018.jpg
│ │ │ ├── temp_0019.jpg
│ │ │ ├── temp_0020.jpg
│ │ │ ├── temp_0021.jpg
│ │ │ ├── temp_0022.jpg
│ │ │ ├── temp_0023.jpg
│ │ │ ├── temp_0024.jpg
│ │ │ ├── temp_0025.jpg
│ │ │ ├── temp_0026.jpg
│ │ │ ├── temp_0027.jpg
│ │ │ ├── temp_0028.jpg
│ │ │ ├── temp_0029.jpg
│ │ │ ├── temp_0030.jpg
│ │ │ ├── temp_0031.jpg
│ │ │ ├── temp_0032.jpg
│ │ │ ├── temp_0033.jpg
│ │ │ ├── temp_0034.jpg
│ │ │ ├── temp_0035.jpg
│ │ │ ├── temp_0036.jpg
│ │ │ ├── temp_0037.jpg
│ │ │ ├── temp_0038.jpg
│ │ │ ├── temp_0039.jpg
│ │ │ ├── temp_0040.jpg
│ │ │ ├── temp_0041.jpg
│ │ │ ├── temp_0042.jpg
│ │ │ ├── temp_0043.jpg
│ │ │ ├── temp_0044.jpg
│ │ │ ├── temp_0045.jpg
│ │ │ ├── temp_0046.jpg
│ │ │ ├── temp_0047.jpg
│ │ │ ├── temp_0048.jpg
│ │ │ └── temp_0049.jpg
│ │ └── demo_notrans_withaug_id
│ │ │ ├── BiDP_infer_demo1.mp4
│ │ │ ├── pred_actions.npy
│ │ │ ├── temp_0000.jpg
│ │ │ ├── temp_0001.jpg
│ │ │ ├── temp_0002.jpg
│ │ │ ├── temp_0003.jpg
│ │ │ ├── temp_0004.jpg
│ │ │ ├── temp_0005.jpg
│ │ │ ├── temp_0006.jpg
│ │ │ ├── temp_0007.jpg
│ │ │ ├── temp_0008.jpg
│ │ │ ├── temp_0009.jpg
│ │ │ ├── temp_0010.jpg
│ │ │ ├── temp_0011.jpg
│ │ │ ├── temp_0012.jpg
│ │ │ ├── temp_0013.jpg
│ │ │ ├── temp_0014.jpg
│ │ │ ├── temp_0015.jpg
│ │ │ ├── temp_0016.jpg
│ │ │ ├── temp_0017.jpg
│ │ │ ├── temp_0018.jpg
│ │ │ ├── temp_0019.jpg
│ │ │ ├── temp_0020.jpg
│ │ │ ├── temp_0021.jpg
│ │ │ ├── temp_0022.jpg
│ │ │ ├── temp_0023.jpg
│ │ │ ├── temp_0024.jpg
│ │ │ ├── temp_0025.jpg
│ │ │ ├── temp_0026.jpg
│ │ │ ├── temp_0027.jpg
│ │ │ ├── temp_0028.jpg
│ │ │ ├── temp_0029.jpg
│ │ │ ├── temp_0030.jpg
│ │ │ ├── temp_0031.jpg
│ │ │ ├── temp_0032.jpg
│ │ │ ├── temp_0033.jpg
│ │ │ ├── temp_0034.jpg
│ │ │ ├── temp_0035.jpg
│ │ │ ├── temp_0036.jpg
│ │ │ ├── temp_0037.jpg
│ │ │ ├── temp_0038.jpg
│ │ │ ├── temp_0039.jpg
│ │ │ ├── temp_0040.jpg
│ │ │ ├── temp_0041.jpg
│ │ │ ├── temp_0042.jpg
│ │ │ ├── temp_0043.jpg
│ │ │ ├── temp_0044.jpg
│ │ │ ├── temp_0045.jpg
│ │ │ ├── temp_0046.jpg
│ │ │ ├── temp_0047.jpg
│ │ │ ├── temp_0048.jpg
│ │ │ └── temp_0049.jpg
│ └── unscrew
│ │ ├── demo_notrans_noaug_id
│ │ ├── BiDP_infer_demo1.mp4
│ │ ├── pred_actions.npy
│ │ ├── temp_0000.jpg
│ │ ├── temp_0001.jpg
│ │ ├── temp_0002.jpg
│ │ ├── temp_0003.jpg
│ │ ├── temp_0004.jpg
│ │ ├── temp_0005.jpg
│ │ ├── temp_0006.jpg
│ │ ├── temp_0007.jpg
│ │ ├── temp_0008.jpg
│ │ ├── temp_0009.jpg
│ │ ├── temp_0010.jpg
│ │ ├── temp_0011.jpg
│ │ ├── temp_0012.jpg
│ │ ├── temp_0013.jpg
│ │ ├── temp_0014.jpg
│ │ ├── temp_0015.jpg
│ │ ├── temp_0016.jpg
│ │ ├── temp_0017.jpg
│ │ ├── temp_0018.jpg
│ │ ├── temp_0019.jpg
│ │ ├── temp_0020.jpg
│ │ ├── temp_0021.jpg
│ │ ├── temp_0022.jpg
│ │ ├── temp_0023.jpg
│ │ ├── temp_0024.jpg
│ │ └── temp_0025.jpg
│ │ └── demo_notrans_withaug_id
│ │ ├── BiDP_infer_demo1.mp4
│ │ ├── pred_actions.npy
│ │ ├── temp_0000.jpg
│ │ ├── temp_0001.jpg
│ │ ├── temp_0002.jpg
│ │ ├── temp_0003.jpg
│ │ ├── temp_0004.jpg
│ │ ├── temp_0005.jpg
│ │ ├── temp_0006.jpg
│ │ ├── temp_0007.jpg
│ │ ├── temp_0008.jpg
│ │ ├── temp_0009.jpg
│ │ ├── temp_0010.jpg
│ │ ├── temp_0011.jpg
│ │ ├── temp_0012.jpg
│ │ ├── temp_0013.jpg
│ │ ├── temp_0014.jpg
│ │ ├── temp_0015.jpg
│ │ ├── temp_0016.jpg
│ │ ├── temp_0017.jpg
│ │ ├── temp_0018.jpg
│ │ ├── temp_0019.jpg
│ │ ├── temp_0020.jpg
│ │ ├── temp_0021.jpg
│ │ ├── temp_0022.jpg
│ │ ├── temp_0023.jpg
│ │ ├── temp_0024.jpg
│ │ └── temp_0025.jpg
└── train.py
└── README.md
/AugDemos/README.md:
--------------------------------------------------------------------------------
1 | # Augmentation of Demonstrations
2 | In this part, we show how to condcut the point cloud-level geometry augmentation of manipulated objects for all valid demonstrations in each task. These pre-processed data will be used for training BiDP models.
3 |
4 | ## Step 0: Data download and environment configuration
5 |
6 | * Download the raw binocular paired left/right images (in *.jpg format) and the corresponding dual robot arm states (in *.json format) for each task. We have uploaded them (`drawer.zip`, `pouring.zip`, `unscrew.zip`, `uncover.zip` and `openbox.zip`) on [huggingface/YOTO](https://huggingface.co/HoyerChou/YOTO/tree/main). We also uploaded the corresponding segmented manipulated objects of all left-view images (`drawer_mask.zip`, `pouring_mask.zip`, `unscrew_mask.zip`, `uncover_mask.zip` and `openbox_mask.zip`). These demonstrations are auto-rollout verified in real-world, and will be pre-processed for training.
7 |
8 |
9 |
10 | raw images and states |
11 | raw segmented objects |
12 |
13 |
14 |  |
15 |  |
16 |
17 |
18 |
19 | * Configure the dependent environment required for binocular stereo matching. We used the [IGEV](https://github.com/gangweiX/IGEV) algorithm and [KingFisher](https://dexforce-3dvision.com/productinfo/1022811.html) binocular camera. Among them, you need to utilize the dependency packages [glia](http://rjyfb:123456@69.235.177.182:10801/simple/glia/) and [glia-trt](http://rjyfb:123456@69.235.177.182:10801/simple/glia-trt/) developed by `DexForce` in file [infer_trt.py](https://github.com/hnuzhy/YOTO/blob/main/AugDemos/infer_trt.py#L12). Despite this, due to hardware differences, readers may need to use commercial binocular cameras (such as RealSense) to collect similar data.
20 |
21 | ## Step 1: Pre-processing of all valid demonstrations
22 | ```
23 | python aug_dataset_v1.py
24 | ```
25 | Before running, you can adjust many useful parameters in this script. If you cannot reproduce our environment, you can directly download our pre-processed jsons (`drawer_preprocessed.json`, `pouring_preprocessed.json`, `unscrew_preprocessed.json`, `uncover_preprocessed.json` and `openbox_preprocessed.json`) in [huggingface/YOTO](https://huggingface.co/HoyerChou/YOTO/tree/main) for training.
26 | * [`debug_flag`](https://github.com/hnuzhy/YOTO/blob/main/AugDemos/aug_dataset_v1.py#L216): whether using the debug mode to checking pre-processed results, such as matching effect, object masks and segmented object point clouds.
27 | * [`robot2camera_trans`](https://github.com/hnuzhy/YOTO/blob/main/AugDemos/aug_dataset_v1.py#L217): whether tansforming the dual-arm robot states (6-DoF keyposes) from the robot world into the camera world. We have valided that set it as True will not be better. We thus utilize visual observations in the camera view and robot actions in the robot view to train all policy models.
28 | * [`task_names`](https://github.com/hnuzhy/YOTO/blob/main/AugDemos/aug_dataset_v1.py#L219): You can change the task name list for pre-processing. We currently collected a fixed number of demonstrations through *Auto-Rollout Verification in Real-World* for each task (`drawer`, `pouring`, `unscrew`, `uncover`, `openbox`), which are `243/162/54/45/36` respectively.
29 |
30 |
31 |
32 | matched binocular images |
33 | objects point clouds |
34 |
35 |
36 |  |
37 |  |
38 |
39 |
40 |
41 | ## Step 2: Geometric transformation in point cloud-level
42 | ```
43 | python aug_dataset_v2.py
44 | ```
45 | Before running, you can also adjust many useful parameters in this script. We have also uploaded our pre-processed jsons (`drawer_preprocessed_aug100x_*.json`, `pouring_preprocessed_aug100x_*.json`, `unscrew_preprocessed_aug100x.json`, `uncover_preprocessed_aug100x.json` and `openbox_preprocessed_aug100x.json`) in [huggingface/YOTO](https://huggingface.co/HoyerChou/YOTO/tree/main) for training.
46 | * [`debug_flag`](https://github.com/hnuzhy/YOTO/blob/main/AugDemos/aug_dataset_v2.py#L431): whether using the debug mode to checking pre-processed results, such as matching effect, object masks and segmented object point clouds.
47 | * [`aug_times`](https://github.com/hnuzhy/YOTO/blob/main/AugDemos/aug_dataset_v2.py#L432): set the augmentation times for each single demonstration. We can set it as `1 / 5 / 25 / 100 / 500`. And we have valided that set it as `100` is good enough.
48 | * [`left_pts_num`](https://github.com/hnuzhy/YOTO/blob/main/AugDemos/aug_dataset_v2.py#L433): set the left points number in manipulated object point clouds. We can set it as `32768 / 16384 / 8192 / 4096 / 2048`. In fact, we don’t need to set it too large, because the number of points when sampling objects during training is generally `1024 or 2048`. We set its as `4096` in our 100x augmentation for saving space of final pre-processed results.
49 | * [`task_names`](https://github.com/hnuzhy/YOTO/blob/main/AugDemos/aug_dataset_v2.py#L434): You can change the task name list for pre-processing. We currently generated 100x demonstrations through *Geometric Transformation of Point Clouds* for each task (`drawer`, `pouring`, `unscrew`, `uncover`, `openbox`), which are `24300/16200/5400/4500/3600` respectively.
50 |
51 |
52 |
53 | the matched binocular images |
54 | augmented objects point clouds |
55 |
56 |
57 |  |
58 |  |
59 |
60 |
61 |  |
62 |  |
63 |
64 |
65 |  |
66 |  |
67 |
68 |
69 |
70 |
--------------------------------------------------------------------------------
/AugDemos/infer_trt.py:
--------------------------------------------------------------------------------
1 | import os
2 | import torch
3 | import argparse
4 | import time
5 | import cv2
6 | import yaml
7 | import open3d as o3d
8 | import numpy as np
9 | from glob import glob
10 |
11 | from utils_igev import StereoRectifyUtil
12 | from glia.dl.pipelines import StereoInterface
13 |
14 |
15 | def generate_pcd(left_image, disp, fx, fy, cx, cy, baseline, object_mask_binary=None, roi_mask_binary=None):
16 | height, width, _ = left_image.shape
17 | depth = fx * baseline / disp
18 |
19 | left_img_o3d = o3d.geometry.Image(left_image.astype(np.uint8))
20 | intrinsic = o3d.camera.PinholeCameraIntrinsic(width, height, fx, fy, cx, cy)
21 | depth_img_o3d = o3d.geometry.Image(depth.astype(np.float32))
22 | rgbd_img = o3d.geometry.RGBDImage.create_from_color_and_depth(
23 | left_img_o3d,
24 | depth_img_o3d,
25 | depth_scale=1.0,
26 | depth_trunc=depth.max()+1, # do not remove 3d point in any pixel
27 | # depth_trunc=4.0,
28 | convert_rgb_to_intensity=False,
29 | )
30 | pcd = o3d.geometry.PointCloud.create_from_rgbd_image(rgbd_img, intrinsic)
31 | print(len(pcd.points), np.array(pcd.points).shape, height*width)
32 |
33 | if object_mask_binary is not None:
34 | # https://www.cnblogs.com/massquantity/p/8908859.html
35 | left_pts_idx = np.where(object_mask_binary.reshape(-1) > 0)[0]
36 | print("left points:", len(left_pts_idx))
37 | pcd = pcd.select_by_index(left_pts_idx)
38 |
39 | if roi_mask_binary is not None:
40 | left_pts_idx = np.where(roi_mask_binary.reshape(-1) > 0)[0]
41 | print("left points:", len(left_pts_idx))
42 | pcd = pcd.select_by_index(left_pts_idx)
43 |
44 | return pcd, depth
45 |
46 |
47 | def init_igev_model():
48 | model_path = "./kingfisher/igev.trt"
49 | calib_file = "./kingfisher/calib_1106.yaml"
50 | im_height, im_width = 1024, 1280
51 |
52 | # IGEV Tensorrt模型初始化成功
53 | model = StereoInterface(backend="trt", model_path=model_path)
54 | model.cuda()
55 |
56 | # 加载相机参数文件
57 | with open(calib_file, "r", encoding="utf-8") as f:
58 | stereo_res = yaml.load(stream=f, Loader=yaml.FullLoader)
59 | ret_results = StereoRectifyUtil.rectify_params(stereo_res, im_height, im_width)
60 | ori_k1, R1, rect_k1, baseline, map_x_1, map_y_1, map_x_2, map_y_2 = ret_results
61 |
62 | model.set_camera(0, im_height, im_width,
63 | fx=rect_k1[0, 0], fy=rect_k1[1, 1], cx=rect_k1[0, 2], cy=rect_k1[1, 2])
64 | model.set_camera(1, im_height, im_width,
65 | fx=rect_k1[0, 0], fy=rect_k1[1, 1], cx=rect_k1[0, 2], cy=rect_k1[1, 2])
66 |
67 | param_list = [model, R1, rect_k1, baseline, map_x_1, map_y_1, map_x_2, map_y_2]
68 | return param_list
69 |
70 |
71 | if __name__ == '__main__':
72 |
73 | print("infer scene point cloud using kingfisher and igev!!!")
74 |
--------------------------------------------------------------------------------
/AugDemos/materials/aug_pcd_drawer_pcds.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/AugDemos/materials/aug_pcd_drawer_pcds.gif
--------------------------------------------------------------------------------
/AugDemos/materials/aug_pcd_drawer_pcds.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/AugDemos/materials/aug_pcd_drawer_pcds.mp4
--------------------------------------------------------------------------------
/AugDemos/materials/aug_pcd_drawer_rgbs.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/AugDemos/materials/aug_pcd_drawer_rgbs.jpg
--------------------------------------------------------------------------------
/AugDemos/materials/aug_pcd_pouring_pcds.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/AugDemos/materials/aug_pcd_pouring_pcds.gif
--------------------------------------------------------------------------------
/AugDemos/materials/aug_pcd_pouring_pcds.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/AugDemos/materials/aug_pcd_pouring_pcds.mp4
--------------------------------------------------------------------------------
/AugDemos/materials/aug_pcd_pouring_rgbs.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/AugDemos/materials/aug_pcd_pouring_rgbs.jpg
--------------------------------------------------------------------------------
/AugDemos/materials/aug_pcd_uncover_pcds.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/AugDemos/materials/aug_pcd_uncover_pcds.gif
--------------------------------------------------------------------------------
/AugDemos/materials/aug_pcd_uncover_pcds.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/AugDemos/materials/aug_pcd_uncover_pcds.mp4
--------------------------------------------------------------------------------
/AugDemos/materials/aug_pcd_uncover_rgbs.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/AugDemos/materials/aug_pcd_uncover_rgbs.jpg
--------------------------------------------------------------------------------
/AugDemos/materials/objects_point_clouds.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/AugDemos/materials/objects_point_clouds.jpg
--------------------------------------------------------------------------------
/AugDemos/materials/paired_raw_images.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/AugDemos/materials/paired_raw_images.jpg
--------------------------------------------------------------------------------
/AugDemos/materials/raw_images_states.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/AugDemos/materials/raw_images_states.jpg
--------------------------------------------------------------------------------
/AugDemos/materials/raw_segmented_objs.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/AugDemos/materials/raw_segmented_objs.jpg
--------------------------------------------------------------------------------
/AugDemos/utils_igev.py:
--------------------------------------------------------------------------------
1 | import cv2
2 | import numpy as np
3 | import open3d as o3d
4 |
5 | class StereoRectifyUtil(object):
6 | @staticmethod
7 | def rectify_params(stereo_res: dict, height: int, width: int):
8 | cam1_K = np.array(stereo_res["cam1_k"])
9 | cam2_K = np.array(stereo_res["cam2_k"])
10 |
11 | cam1_dist = np.array(stereo_res["dist_1"]).reshape(-1)
12 | cam2_dist = np.array(stereo_res["dist_2"]).reshape(-1)
13 | R = np.array(stereo_res["R_l_r"])
14 | t = np.array(stereo_res["t_l_r"])
15 |
16 | # 注意后端不再考虑畸变,需前端确认已进行去畸变处理。
17 | R1, R2, P1, P2, Q, validPixROI1, validPixROI2 = cv2.stereoRectify(
18 | cameraMatrix1=cam1_K,
19 | distCoeffs1=cam1_dist,
20 | cameraMatrix2=cam2_K,
21 | distCoeffs2=cam2_dist,
22 | imageSize=(width, height),
23 | R=R,
24 | T=t,
25 | flags=1024,
26 | newImageSize=(0, 0),
27 | )
28 |
29 | rectified_image_size = (width, height)
30 |
31 | map_x_1, map_y_1 = cv2.initUndistortRectifyMap(
32 | cameraMatrix=cam1_K,
33 | distCoeffs=np.zeros((1, 5)),
34 | R=R1,
35 | newCameraMatrix=P1,
36 | size=rectified_image_size,
37 | m1type=cv2.CV_32FC1,
38 | )
39 | map_x_2, map_y_2 = cv2.initUndistortRectifyMap(
40 | cameraMatrix=cam2_K,
41 | distCoeffs=np.zeros((1, 5)),
42 | R=R2,
43 | newCameraMatrix=P2,
44 | size=rectified_image_size,
45 | m1type=cv2.CV_32FC1,
46 | )
47 |
48 | rect_cam_k = P2[:3, :3]
49 | baseline = -P2[0, 3] / P2[0, 0] * 0.001
50 |
51 | return (
52 | cam1_K,
53 | R1,
54 | rect_cam_k,
55 | baseline,
56 | map_x_1,
57 | map_y_1,
58 | map_x_2,
59 | map_y_2,
60 | )
61 |
62 | @staticmethod
63 | def rectify_img(image: np.ndarray, map_x: np.ndarray, map_y: np.ndarray):
64 | return cv2.remap(image, map_x, map_y, interpolation=cv2.INTER_LINEAR)
65 |
66 | @staticmethod
67 | def visualize_rect_imgs(left_img: np.ndarray, right_img: np.ndarray, save_path: str):
68 | height, width, _ = left_img.shape
69 | img = np.hstack((left_img, right_img))
70 | iend = 8
71 | for i in range(1, iend + 1):
72 | h = int(height/iend * i)
73 | img = cv2.line(img, (0, h), (width*2, h), (0,0,255), 2)
74 | cv2.imwrite(save_path, img)
75 |
76 | @staticmethod
77 | def from_rectify_pcd_to_origin_depth(
78 | left_img: np.ndarray,
79 | src_pcd: o3d.geometry.PointCloud,
80 | source2target_rotation: np.ndarray,
81 | target_camera_intrinsic: np.ndarray,
82 | img_h: int,
83 | img_w: int,
84 | depth_scale: float = 1.0,
85 | depth_trunc: float = 4.0,
86 | ):
87 | # 1. get 3xN vertices coordinate of source pcd
88 | source_point_cloud = np.asarray(src_pcd.points).T
89 |
90 | # 2. point cloud coordinate transformation
91 | target_point_cloud = source2target_rotation.dot(source_point_cloud)
92 |
93 | assert (target_point_cloud[2] > 0).all()
94 | return target_point_cloud
95 |
96 | # 3. target point cloud reproject to image
97 | target_depth_map = np.zeros((img_h, img_w), dtype=np.float32)
98 | target_uv = np.around(np.dot(target_camera_intrinsic, target_point_cloud) / target_point_cloud[2, :])
99 |
100 | # 交换前两列
101 | target_uv[2, :] = target_uv[0, :]
102 | target_uv = target_uv[1:, :]
103 |
104 | val_locs = (
105 | (target_uv[0] < img_h)
106 | & (target_uv[0] >= 0)
107 | & (target_uv[1] < img_w)
108 | & (target_uv[1] >= 0)
109 | )
110 |
111 | # 图像平面内的有效x,y位置
112 | row_col_pos = target_uv.T[val_locs].astype(np.int32)
113 | # 图像平面内的有效z位置
114 | target_pt_zs = target_point_cloud[2][val_locs]
115 |
116 | # 按深度值从大到小排序后,依次投影到目标图像平面,最终同像素位置小深度值会替换大深度值
117 | z_sorted_idxs = np.argsort(target_pt_zs)
118 | z_sorted_idxs = z_sorted_idxs[::-1]
119 |
120 | row_col_pos = row_col_pos[z_sorted_idxs]
121 | target_depth_map[row_col_pos[:, 0], row_col_pos[:, 1]] = target_pt_zs[z_sorted_idxs]
122 |
123 | # 4. return target depth map and pcd
124 | height, width, _ = left_img.shape
125 | fx = target_camera_intrinsic[0, 0]
126 | fy = target_camera_intrinsic[1, 1]
127 | cx = target_camera_intrinsic[0, 2]
128 | cy = target_camera_intrinsic[1, 2]
129 | left_img_o3d = o3d.geometry.Image((left_img).astype(np.uint8))
130 | intrinsic = o3d.camera.PinholeCameraIntrinsic(width, height, fx, fy, cx, cy)
131 | depth_img_o3d = o3d.geometry.Image(target_depth_map.astype(np.float32))
132 | rgbd_img = o3d.geometry.RGBDImage.create_from_color_and_depth(
133 | left_img_o3d,
134 | depth_img_o3d,
135 | depth_scale=depth_scale,
136 | depth_trunc=depth_trunc,
137 | convert_rgb_to_intensity=False,
138 | )
139 |
140 | tgt_pcd = o3d.geometry.PointCloud.create_from_rgbd_image(rgbd_img, intrinsic)
141 |
142 | return target_depth_map, tgt_pcd
143 |
--------------------------------------------------------------------------------
/BiDP/materials/BiDP_infer_demo1_drawer_noaug.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/materials/BiDP_infer_demo1_drawer_noaug.gif
--------------------------------------------------------------------------------
/BiDP/materials/BiDP_infer_demo1_drawer_withaug.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/materials/BiDP_infer_demo1_drawer_withaug.gif
--------------------------------------------------------------------------------
/BiDP/materials/BiDP_infer_demo1_openbox_noaug.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/materials/BiDP_infer_demo1_openbox_noaug.gif
--------------------------------------------------------------------------------
/BiDP/materials/BiDP_infer_demo1_openbox_withaug.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/materials/BiDP_infer_demo1_openbox_withaug.gif
--------------------------------------------------------------------------------
/BiDP/materials/BiDP_infer_demo1_pouring_noaug.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/materials/BiDP_infer_demo1_pouring_noaug.gif
--------------------------------------------------------------------------------
/BiDP/materials/BiDP_infer_demo1_pouring_withaug.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/materials/BiDP_infer_demo1_pouring_withaug.gif
--------------------------------------------------------------------------------
/BiDP/materials/BiDP_infer_demo1_uncover_noaug.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/materials/BiDP_infer_demo1_uncover_noaug.gif
--------------------------------------------------------------------------------
/BiDP/materials/BiDP_infer_demo1_uncover_withaug.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/materials/BiDP_infer_demo1_uncover_withaug.gif
--------------------------------------------------------------------------------
/BiDP/materials/BiDP_infer_demo1_unscrew_noaug.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/materials/BiDP_infer_demo1_unscrew_noaug.gif
--------------------------------------------------------------------------------
/BiDP/materials/BiDP_infer_demo1_unscrew_withaug.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/materials/BiDP_infer_demo1_unscrew_withaug.gif
--------------------------------------------------------------------------------
/BiDP/policies/agents/dp_policy.py:
--------------------------------------------------------------------------------
1 | import copy
2 | import hydra
3 | import torch
4 | from torch import nn
5 |
6 | from policies.vision.pointnet_encoder import PointNetEncoder
7 | from policies.utils.diffusion.ema_model import EMAModel
8 | from policies.utils.diffusion.conditional_unet1d import ConditionalUnet1D
9 | from policies.utils.diffusion.resnet_with_gn import get_resnet, replace_bn_with_gn
10 |
11 |
12 | class DPPolicy(nn.Module):
13 | def __init__(self, cfg, device="cpu"):
14 | super().__init__()
15 | self.cfg = cfg
16 | self.hidden_dim = hidden_dim = cfg.model.hidden_dim
17 | self.obs_mode = cfg.model.obs_mode
18 | self.device = device
19 |
20 | # |o|o| observations: 2
21 | # | |a|a|a|a|a|a|a|a| actions executed: 8
22 | # |p|p|p|p|p|p|p|p|p|p|p|p|p|p|p|p| actions predicted: 16
23 | self.pred_horizon = cfg.model.pred_horizon
24 | self.obs_horizon = cfg.model.obs_horizon
25 | self.action_horizon = cfg.model.ac_horizon
26 |
27 | if hasattr(cfg.model, "num_diffusion_iters"):
28 | self.num_diffusion_iters = cfg.model.num_diffusion_iters
29 | else:
30 | self.num_diffusion_iters = cfg.model.noise_scheduler.num_train_timesteps
31 |
32 | self.num_eef = cfg.env.num_eef
33 | self.eef_dim = cfg.env.eef_dim
34 | self.dof = cfg.env.dof
35 | if cfg.model.obs_mode == "state":
36 | self.obs_dim = self.num_eef * self.eef_dim
37 | elif cfg.model.obs_mode == "rgb":
38 | self.obs_dim = 512 + self.num_eef * self.eef_dim
39 | else:
40 | self.obs_dim = hidden_dim + self.num_eef * self.eef_dim
41 | self.action_dim = self.dof * cfg.env.num_eef
42 |
43 | if self.obs_mode.startswith("pc"):
44 | self.encoder = PointNetEncoder(
45 | h_dim=hidden_dim,
46 | c_dim=hidden_dim,
47 | num_layers=cfg.model.encoder.backbone_args.num_layers,
48 | )
49 | elif self.obs_mode == "rgb":
50 | self.encoder = replace_bn_with_gn(get_resnet("resnet18"))
51 | else:
52 | self.encoder = nn.Identity()
53 | self.noise_pred_net = ConditionalUnet1D(
54 | input_dim=self.action_dim,
55 | diffusion_step_embed_dim=self.obs_dim * self.obs_horizon,
56 | global_cond_dim=self.obs_dim * self.obs_horizon,
57 | )
58 |
59 | self.nets = nn.ModuleDict(
60 | {"encoder": self.encoder, "noise_pred_net": self.noise_pred_net}
61 | )
62 | self.ema = EMAModel(model=copy.deepcopy(self.nets), power=0.75)
63 |
64 | self._init_torch_compile()
65 |
66 | self.noise_scheduler = hydra.utils.instantiate(cfg.model.noise_scheduler)
67 |
68 | num_parameters = sum(p.numel() for p in self.parameters() if p.requires_grad)
69 | print(f"Initialized DP Policy with {num_parameters} parameters")
70 |
71 | def _init_torch_compile(self):
72 | if self.cfg.model.use_torch_compile:
73 | self.encoder_handle = torch.compile(self.encoder)
74 | self.noise_pred_net_handle = torch.compile(self.noise_pred_net)
75 |
76 | def forward(self, obs, predict_action=True, debug=False):
77 | # assumes that observation has format:
78 | # - pc: [BS, obs_horizon, num_pts, 3]
79 | # - state: [BS, obs_horizon, obs_dim]
80 | # returns:
81 | # - action: [BS, pred_horizon, ac_dim]
82 | pc = obs["pc"]
83 | state = obs["state"]
84 |
85 | if self.obs_mode.startswith("pc"):
86 | pc = self.pc_normalizer.normalize(pc)
87 | state = self.state_normalizer.normalize(state)
88 |
89 | pc_shape = pc.shape
90 | batch_size = pc.shape[0]
91 |
92 | ema_nets = self.ema.averaged_model
93 |
94 | if self.obs_mode == "state":
95 | z = state
96 | else:
97 | if self.obs_mode == "rgb":
98 | rgb = obs["rgb"]
99 | rgb_shape = rgb.shape
100 | flattened_rgb = rgb.reshape(
101 | batch_size * self.obs_horizon, *rgb_shape[-3:]
102 | )
103 | z = ema_nets["encoder"](flattened_rgb.permute(0, 3, 1, 2))
104 | else:
105 | flattened_pc = pc.reshape(batch_size * self.obs_horizon, *pc_shape[-2:])
106 | z = ema_nets["encoder"](flattened_pc.permute(0, 2, 1))["global"]
107 | z = z.reshape(batch_size, self.obs_horizon, -1)
108 | z = torch.cat([z, state], dim=-1)
109 | obs_cond = z.reshape(batch_size, -1) # (BS, obs_horizon * obs_dim)
110 |
111 | initial_noise_scale = 0.0 if debug else 1.0
112 | noisy_action = (
113 | torch.randn((batch_size, self.pred_horizon, self.action_dim)).to(
114 | self.device
115 | )
116 | * initial_noise_scale
117 | )
118 | curr_action = noisy_action
119 | self.noise_scheduler.set_timesteps(self.num_diffusion_iters)
120 |
121 | for k in self.noise_scheduler.timesteps:
122 | # predict noise
123 | noise_pred = ema_nets["noise_pred_net"](
124 | sample=curr_action, timestep=k, global_cond=obs_cond
125 | )
126 |
127 | # inverse diffusion step
128 | curr_action = self.noise_scheduler.step(
129 | model_output=noise_pred, timestep=k, sample=curr_action
130 | ).prev_sample
131 |
132 | ret = dict(ac=curr_action)
133 | return ret
134 |
135 | def step_ema(self):
136 | self.ema.step(self.nets)
137 |
--------------------------------------------------------------------------------
/BiDP/policies/configs/base.yaml:
--------------------------------------------------------------------------------
1 | prefix: default
2 | device: cuda
3 | mode: train
4 | log_dir: logs/${mode}
5 | eval_data_path: null
6 | use_wandb: true
7 | seed: 0
8 |
9 | agent:
10 | agent_name: dp
11 |
12 | env:
13 | env_class: ???
14 | num_eef: 2
15 | dof: 7
16 | eef_dim: 13
17 | vectorize: false
18 | args:
19 | num_eef: ${env.num_eef}
20 | dof: ${env.dof}
21 | seed: ${seed}
22 | obs_mode: "pc"
23 | ac_mode: "rel"
24 | max_episode_length: ???
25 | num_points: ${data.dataset.num_points}
26 | randomize_rotation: false
27 | randomize_scale: false
28 | scale_low: 1.0
29 | scale_high: 1.0
30 | scale_aspect_limit: 100.0
31 | uniform_scaling: false
32 |
33 | data:
34 | dataset_class: base_dataset
35 | dataset:
36 | num_training_steps: ???
37 | path: null
38 | num_points: 1024
39 | num_augment: 0
40 | same_aug_per_sample: true
41 | aug_keep_original: true
42 | aug_scale_low: 0.5
43 | aug_scale_high: 1.5
44 | aug_scale_aspect_limit: 1.0
45 | aug_scale_rot: -1
46 | aug_scale_pos: 0.1
47 | aug_zero_z_offset: false
48 | aug_center: [0., 0., 0.]
49 | shuffle_pc: true
50 | num_workers: 12
51 | dof: ${env.dof}
52 | num_eef: ${env.num_eef}
53 | eef_dim: ${env.eef_dim}
54 | obs_horizon: ${model.obs_horizon}
55 | pred_horizon: ${model.pred_horizon}
56 | reduce_horizon_dim: false
57 | min_demo_length: 15
58 |
59 | model:
60 | hidden_dim: 32
61 | noise_scheduler:
62 | _target_: diffusers.schedulers.scheduling_ddpm.DDPMScheduler
63 | num_train_timesteps: 100
64 | beta_schedule: squaredcos_cap_v2
65 | clip_sample: true
66 | prediction_type: epsilon
67 | obs_horizon: 2
68 | ac_horizon: 8
69 | pred_horizon: 16
70 | encoder:
71 | c_dim: ${model.hidden_dim}
72 | backbone_type: vn_pointnet
73 | backbone_args:
74 | h_dim: ${model.hidden_dim}
75 | c_dim: ${model.encoder.c_dim}
76 | num_layers: 4
77 | knn: 8
78 | obs_mode: ${env.args.obs_mode}
79 | ac_mode: ${env.args.ac_mode}
80 | use_torch_compile: false
81 |
82 | training:
83 | batch_size: 32
84 | num_epochs: 2000
85 | lr: 3e-5
86 | weight_decay: 1e-6
87 | num_eval_episodes: 10
88 | eval_interval: 1000000 # do not eval during training
89 | save_interval: 50
90 | vis_interval: 100
91 | ckpt: null
92 |
93 | eval:
94 | last_ckpt: 1999
95 | num_ckpts_to_eval: 5
96 |
97 | hydra:
98 | run:
99 | dir: ${log_dir}/${prefix}
100 |
101 | wandb:
102 | entity: wandb_zhouhuayi
103 | project: BiDP
104 |
--------------------------------------------------------------------------------
/BiDP/policies/configs/basic.yaml:
--------------------------------------------------------------------------------
1 | prefix: default
2 | device: cuda
3 | mode: train
4 | log_dir: logs/${mode}
5 | eval_data_path: null
6 | use_wandb: true
7 | seed: 0
8 |
9 |
10 |
11 | agent:
12 | agent_name: dp # equibot or dp
13 |
14 | env:
15 | env_class: ???
16 | num_eef: 1
17 | dof: 7
18 | eef_dim: 13
19 | vectorize: false
20 | args:
21 | num_eef: ${env.num_eef}
22 | dof: ${env.dof}
23 | seed: ${seed}
24 | obs_mode: "pc"
25 | ac_mode: "rel"
26 | max_episode_length: 100
27 | num_points: ${data.dataset.num_points}
28 | randomize_rotation: false
29 | randomize_scale: false
30 | scale_low: 1.0
31 | scale_high: 1.0
32 | scale_aspect_limit: 100.0
33 | uniform_scaling: false
34 | cam_resolution: 256
35 | vis: true
36 | freq: 5
37 | ac_noise: 0.0
38 |
39 | data:
40 | dataset_class: base_dataset
41 | dataset:
42 | num_training_steps: ???
43 | path: null
44 | num_points: 1024
45 | shuffle_pc: true
46 | task_name: ???
47 | is_augmented: 0
48 | is_transformed: 0
49 | num_workers: 4
50 | dof: ${env.dof}
51 | num_eef: ${env.num_eef}
52 | eef_dim: ${env.eef_dim}
53 | obs_horizon: ${model.obs_horizon}
54 | pred_horizon: ${model.pred_horizon}
55 | reduce_horizon_dim: false
56 | min_demo_length: 15
57 | one_real_data: null
58 |
59 | model:
60 | hidden_dim: 32
61 | noise_scheduler:
62 | _target_: diffusers.schedulers.scheduling_ddpm.DDPMScheduler
63 | num_train_timesteps: 100
64 | beta_schedule: squaredcos_cap_v2
65 | clip_sample: true
66 | prediction_type: epsilon
67 | obs_horizon: 1
68 | ac_horizon: 8
69 | pred_horizon: 16
70 | encoder:
71 | c_dim: ${model.hidden_dim}
72 | backbone_type: vn_pointnet
73 | backbone_args:
74 | h_dim: ${model.hidden_dim}
75 | c_dim: ${model.encoder.c_dim}
76 | num_layers: 4
77 | knn: 8
78 | obs_mode: ${env.args.obs_mode}
79 | ac_mode: ${env.args.ac_mode}
80 | use_torch_compile: false
81 |
82 | training:
83 | batch_size: 16
84 | num_epochs: 2000
85 | lr: 3e-5
86 | weight_decay: 1e-6
87 | num_eval_episodes: 10
88 | eval_interval: 1000000 # do not eval during training
89 | save_interval: 50
90 | vis_interval: 100
91 | ckpt: null
92 |
93 | eval:
94 | last_ckpt: 1999
95 | num_ckpts_to_eval: 5
96 |
97 | hydra:
98 | run:
99 | dir: ${log_dir}/${prefix}
100 |
101 | wandb:
102 | entity: wandb_zhouhuayi
103 | project: BiDP
104 |
--------------------------------------------------------------------------------
/BiDP/policies/utils/diffusion/conv1d_components.py:
--------------------------------------------------------------------------------
1 | import torch
2 | import torch.nn as nn
3 | import torch.nn.functional as F
4 |
5 |
6 | class Downsample1d(nn.Module):
7 | def __init__(self, dim):
8 | super().__init__()
9 | self.conv = nn.Conv1d(dim, dim, 3, 2, 1)
10 |
11 | def forward(self, x):
12 | return self.conv(x)
13 |
14 |
15 | class Upsample1d(nn.Module):
16 | def __init__(self, dim):
17 | super().__init__()
18 | self.conv = nn.ConvTranspose1d(dim, dim, 4, 2, 1)
19 |
20 | def forward(self, x):
21 | return self.conv(x)
22 |
23 |
24 | class Conv1dBlock(nn.Module):
25 | """
26 | Conv1d --> GroupNorm --> Mish
27 | """
28 |
29 | def __init__(self, inp_channels, out_channels, kernel_size, n_groups=8):
30 | super().__init__()
31 |
32 | self.block = nn.Sequential(
33 | nn.Conv1d(
34 | inp_channels, out_channels, kernel_size, padding=kernel_size // 2
35 | ),
36 | # Rearrange('batch channels horizon -> batch channels 1 horizon'),
37 | nn.GroupNorm(n_groups, out_channels),
38 | # Rearrange('batch channels 1 horizon -> batch channels horizon'),
39 | nn.Mish(),
40 | )
41 |
42 | def forward(self, x):
43 | return self.block(x)
44 |
45 |
46 | def test():
47 | cb = Conv1dBlock(256, 128, kernel_size=3)
48 | x = torch.zeros((1, 256, 16))
49 | o = cb(x)
50 |
--------------------------------------------------------------------------------
/BiDP/policies/utils/diffusion/ema_model.py:
--------------------------------------------------------------------------------
1 | import copy
2 | import torch
3 | from torch.nn.modules.batchnorm import _BatchNorm
4 |
5 |
6 | class EMAModel:
7 | """
8 | Exponential Moving Average of models weights
9 | """
10 |
11 | def __init__(
12 | self,
13 | model,
14 | update_after_step=0,
15 | inv_gamma=1.0,
16 | power=2 / 3,
17 | min_value=0.0,
18 | max_value=0.9999,
19 | ):
20 | """
21 | @crowsonkb's notes on EMA Warmup:
22 | If gamma=1 and power=1, implements a simple average. gamma=1, power=2/3 are good values for models you plan
23 | to train for a million or more steps (reaches decay factor 0.999 at 31.6K steps, 0.9999 at 1M steps),
24 | gamma=1, power=3/4 for models you plan to train for less (reaches decay factor 0.999 at 10K steps, 0.9999
25 | at 215.4k steps).
26 | Args:
27 | inv_gamma (float): Inverse multiplicative factor of EMA warmup. Default: 1.
28 | power (float): Exponential factor of EMA warmup. Default: 2/3.
29 | min_value (float): The minimum EMA decay rate. Default: 0.
30 | """
31 |
32 | self.averaged_model = model
33 | self.averaged_model.eval()
34 | self.averaged_model.requires_grad_(False)
35 |
36 | self.update_after_step = update_after_step
37 | self.inv_gamma = inv_gamma
38 | self.power = power
39 | self.min_value = min_value
40 | self.max_value = max_value
41 |
42 | self.decay = 0.0
43 | self.optimization_step = 0
44 |
45 | def get_decay(self, optimization_step):
46 | """
47 | Compute the decay factor for the exponential moving average.
48 | """
49 | step = max(0, optimization_step - self.update_after_step - 1)
50 | value = 1 - (1 + step / self.inv_gamma) ** -self.power
51 |
52 | if step <= 0:
53 | return 0.0
54 |
55 | return max(self.min_value, min(value, self.max_value))
56 |
57 | @torch.no_grad()
58 | def step(self, new_model):
59 | self.decay = self.get_decay(self.optimization_step)
60 |
61 | # old_all_dataptrs = set()
62 | # for param in new_model.parameters():
63 | # data_ptr = param.data_ptr()
64 | # if data_ptr != 0:
65 | # old_all_dataptrs.add(data_ptr)
66 |
67 | all_dataptrs = set()
68 | for module, ema_module in zip(
69 | new_model.modules(), self.averaged_model.modules()
70 | ):
71 | for param, ema_param in zip(
72 | module.parameters(recurse=False), ema_module.parameters(recurse=False)
73 | ):
74 | # iterative over immediate parameters only.
75 | if isinstance(param, dict):
76 | raise RuntimeError("Dict parameter not supported")
77 |
78 | # data_ptr = param.data_ptr()
79 | # if data_ptr != 0:
80 | # all_dataptrs.add(data_ptr)
81 |
82 | if isinstance(module, _BatchNorm):
83 | # skip batchnorms
84 | ema_param.copy_(param.to(dtype=ema_param.dtype).data)
85 | elif not param.requires_grad:
86 | ema_param.copy_(param.to(dtype=ema_param.dtype).data)
87 | else:
88 | ema_param.mul_(self.decay)
89 | ema_param.add_(
90 | param.data.to(dtype=ema_param.dtype), alpha=1 - self.decay
91 | )
92 |
93 | # verify that iterating over module and then parameters is identical to parameters recursively.
94 | # assert old_all_dataptrs == all_dataptrs
95 | self.optimization_step += 1
96 |
--------------------------------------------------------------------------------
/BiDP/policies/utils/diffusion/lr_scheduler.py:
--------------------------------------------------------------------------------
1 | from diffusers.optimization import (
2 | Union,
3 | SchedulerType,
4 | Optional,
5 | Optimizer,
6 | TYPE_TO_SCHEDULER_FUNCTION,
7 | )
8 |
9 |
10 | def get_scheduler(
11 | name: Union[str, SchedulerType],
12 | optimizer: Optimizer,
13 | num_warmup_steps: Optional[int] = None,
14 | num_training_steps: Optional[int] = None,
15 | **kwargs,
16 | ):
17 | """
18 | Added kwargs vs diffuser's original implementation
19 |
20 | Unified API to get any scheduler from its name.
21 |
22 | Args:
23 | name (`str` or `SchedulerType`):
24 | The name of the scheduler to use.
25 | optimizer (`torch.optim.Optimizer`):
26 | The optimizer that will be used during training.
27 | num_warmup_steps (`int`, *optional*):
28 | The number of warmup steps to do. This is not required by all schedulers (hence the argument being
29 | optional), the function will raise an error if it's unset and the scheduler type requires it.
30 | num_training_steps (`int``, *optional*):
31 | The number of training steps to do. This is not required by all schedulers (hence the argument being
32 | optional), the function will raise an error if it's unset and the scheduler type requires it.
33 | """
34 | name = SchedulerType(name)
35 | schedule_func = TYPE_TO_SCHEDULER_FUNCTION[name]
36 | if name == SchedulerType.CONSTANT:
37 | return schedule_func(optimizer, **kwargs)
38 |
39 | # All other schedulers require `num_warmup_steps`
40 | if num_warmup_steps is None:
41 | raise ValueError(
42 | f"{name} requires `num_warmup_steps`, please provide that argument."
43 | )
44 |
45 | if name == SchedulerType.CONSTANT_WITH_WARMUP:
46 | return schedule_func(optimizer, num_warmup_steps=num_warmup_steps, **kwargs)
47 |
48 | # All other schedulers require `num_training_steps`
49 | if num_training_steps is None:
50 | raise ValueError(
51 | f"{name} requires `num_training_steps`, please provide that argument."
52 | )
53 |
54 | return schedule_func(
55 | optimizer,
56 | num_warmup_steps=num_warmup_steps,
57 | num_training_steps=num_training_steps,
58 | **kwargs,
59 | )
60 |
--------------------------------------------------------------------------------
/BiDP/policies/utils/diffusion/positional_embedding.py:
--------------------------------------------------------------------------------
1 | import math
2 | import torch
3 | import torch.nn as nn
4 |
5 |
6 | class SinusoidalPosEmb(nn.Module):
7 | def __init__(self, dim):
8 | super().__init__()
9 | self.dim = dim
10 |
11 | def forward(self, x):
12 | device = x.device
13 | half_dim = self.dim // 2
14 | emb = math.log(10000) / (half_dim - 1)
15 | emb = torch.exp(torch.arange(half_dim, device=device) * -emb)
16 | emb = x[:, None] * emb[None, :]
17 | emb = torch.cat((emb.sin(), emb.cos()), dim=-1)
18 | return emb
19 |
--------------------------------------------------------------------------------
/BiDP/policies/utils/diffusion/resnet_with_gn.py:
--------------------------------------------------------------------------------
1 | import torch
2 | import torchvision
3 | from torch import nn
4 |
5 | from typing import Callable
6 |
7 |
8 | def get_resnet(name: str, weights=None, **kwargs) -> nn.Module:
9 | """
10 | name: resnet18, resnet34, resnet50
11 | weights: "IMAGENET1K_V1", None
12 | """
13 | # Use standard ResNet implementation from torchvision
14 | func = getattr(torchvision.models, name)
15 | resnet = func(weights=weights, **kwargs)
16 |
17 | # remove the final fully connected layer
18 | # for resnet18, the output dim should be 512
19 | resnet.fc = torch.nn.Identity()
20 | return resnet
21 |
22 |
23 | def replace_submodules(
24 | root_module: nn.Module,
25 | predicate: Callable[[nn.Module], bool],
26 | func: Callable[[nn.Module], nn.Module],
27 | ) -> nn.Module:
28 | """
29 | Replace all submodules selected by the predicate with
30 | the output of func.
31 |
32 | predicate: Return true if the module is to be replaced.
33 | func: Return new module to use.
34 | """
35 | if predicate(root_module):
36 | return func(root_module)
37 |
38 | bn_list = [
39 | k.split(".")
40 | for k, m in root_module.named_modules(remove_duplicate=True)
41 | if predicate(m)
42 | ]
43 | for *parent, k in bn_list:
44 | parent_module = root_module
45 | if len(parent) > 0:
46 | parent_module = root_module.get_submodule(".".join(parent))
47 | if isinstance(parent_module, nn.Sequential):
48 | src_module = parent_module[int(k)]
49 | else:
50 | src_module = getattr(parent_module, k)
51 | tgt_module = func(src_module)
52 | if isinstance(parent_module, nn.Sequential):
53 | parent_module[int(k)] = tgt_module
54 | else:
55 | setattr(parent_module, k, tgt_module)
56 | # verify that all modules are replaced
57 | bn_list = [
58 | k.split(".")
59 | for k, m in root_module.named_modules(remove_duplicate=True)
60 | if predicate(m)
61 | ]
62 | assert len(bn_list) == 0
63 | return root_module
64 |
65 |
66 | def replace_bn_with_gn(
67 | root_module: nn.Module, features_per_group: int = 16
68 | ) -> nn.Module:
69 | """
70 | Relace all BatchNorm layers with GroupNorm.
71 | """
72 | replace_submodules(
73 | root_module=root_module,
74 | predicate=lambda x: isinstance(x, nn.BatchNorm2d),
75 | func=lambda x: nn.GroupNorm(
76 | num_groups=x.num_features // features_per_group, num_channels=x.num_features
77 | ),
78 | )
79 | return root_module
80 |
--------------------------------------------------------------------------------
/BiDP/policies/utils/equivariant_diffusion/conditional_unet1d.py:
--------------------------------------------------------------------------------
1 | from typing import Union
2 | import logging
3 | import torch
4 | import torch.nn as nn
5 | import einops
6 | from einops.layers.torch import Rearrange
7 |
8 | from policies.utils.equivariant_diffusion.conv1d_components import (
9 | VecDownsample1d,
10 | VecUpsample1d,
11 | VecConv1dBlock,
12 | )
13 | from policies.utils.diffusion.positional_embedding import SinusoidalPosEmb
14 | from policies.vision.vec_layers import VecLinNormAct as VecLNA
15 | from policies.vision.vec_layers import VecLinear
16 |
17 | logger = logging.getLogger(__name__)
18 |
19 |
20 | class VecConditionalResidualBlock1D(nn.Module):
21 | def __init__(
22 | self,
23 | in_channels,
24 | out_channels,
25 | vec_cond_dim,
26 | scalar_cond_dim=0,
27 | kernel_size=3,
28 | cond_predict_scale=False,
29 | ):
30 | # input dimensionality: ()
31 | super().__init__()
32 |
33 | self.blocks = nn.ModuleList(
34 | [
35 | VecConv1dBlock(in_channels, out_channels, kernel_size),
36 | VecConv1dBlock(out_channels, out_channels, kernel_size),
37 | ]
38 | )
39 |
40 | # FiLM modulation https://arxiv.org/abs/1709.07871
41 | # predicts per-channel scale and bias
42 | cond_channels = out_channels
43 | if cond_predict_scale:
44 | cond_channels = out_channels * 2
45 | self.cond_predict_scale = cond_predict_scale
46 | self.out_channels = out_channels
47 |
48 | act_func = nn.Mish()
49 | vnla_cfg = dict(mode="so3", s_in=scalar_cond_dim, return_tuple=False)
50 | self.cond_encoder_l1 = VecLNA(vec_cond_dim, cond_channels, act_func, **vnla_cfg)
51 | self.cond_encoder_l2 = VecLinear(
52 | cond_channels, out_channels, s_out=out_channels if cond_predict_scale else 0
53 | )
54 |
55 | # make sure dimensions compatible
56 | self.residual_conv = (
57 | VecDownsample1d(in_channels, out_channels, 1, 1, 0)
58 | if in_channels != out_channels
59 | else nn.Identity()
60 | )
61 |
62 | def forward(self, x, vec_cond, scalar_cond=None):
63 | """
64 | x : [ batch_size x in_channels x 3 x horizon ]
65 | vec_cond : [ batch_size x vec_cond_dim x 3]
66 | scalar_cond : [ batch_size x scalar_cond_dim ]
67 |
68 | returns:
69 | out : [ batch_size x out_channels x 3 x horizon ]
70 | """
71 | out = self.blocks[0](x)
72 | bias, scale = self.cond_encoder_l2(
73 | self.cond_encoder_l1(vec_cond, s=scalar_cond)
74 | )
75 | if self.cond_predict_scale:
76 | out = scale[..., None, None] * out + bias[..., None]
77 | else:
78 | out = out + bias[..., None]
79 | out = self.blocks[1](out)
80 | out = out + self.residual_conv(x)
81 | return out
82 |
83 |
84 | class VecConditionalUnet1D(nn.Module):
85 | def __init__(
86 | self,
87 | input_dim,
88 | cond_dim,
89 | scalar_input_dim=0,
90 | scalar_cond_dim=0,
91 | diffusion_step_embed_dim=256,
92 | down_dims=[256, 512, 1024],
93 | kernel_size=3,
94 | cond_predict_scale=False,
95 | ):
96 | super().__init__()
97 | all_dims = [input_dim] + list(down_dims)
98 | start_dim = down_dims[0]
99 |
100 | dsed = diffusion_step_embed_dim
101 | diffusion_step_encoder = nn.Sequential(
102 | SinusoidalPosEmb(dsed),
103 | nn.Linear(dsed, dsed * 4),
104 | nn.Mish(),
105 | nn.Linear(dsed * 4, dsed),
106 | )
107 |
108 | vec_cond_dim = cond_dim
109 | scalar_cond_dim = dsed + scalar_cond_dim
110 |
111 | if scalar_input_dim > 0:
112 | self.scalar_fusion_module = VecLNA(
113 | input_dim,
114 | down_dims[0],
115 | act_func=nn.Mish(),
116 | s_in=scalar_input_dim,
117 | mode="so3",
118 | return_tuple=False,
119 | )
120 | all_dims[0] = down_dims[0]
121 |
122 | in_out = list(zip(all_dims[:-1], all_dims[1:]))
123 |
124 | make_res_block = lambda din, dout: VecConditionalResidualBlock1D(
125 | din,
126 | dout,
127 | vec_cond_dim,
128 | scalar_cond_dim=scalar_cond_dim,
129 | kernel_size=kernel_size,
130 | cond_predict_scale=cond_predict_scale,
131 | )
132 |
133 | mid_dim = all_dims[-1]
134 | self.mid_modules = nn.ModuleList(
135 | [make_res_block(mid_dim, mid_dim), make_res_block(mid_dim, mid_dim)]
136 | )
137 |
138 | down_modules = nn.ModuleList([])
139 | for ind, (dim_in, dim_out) in enumerate(in_out):
140 | is_last = ind >= (len(in_out) - 1)
141 | down_modules.append(
142 | nn.ModuleList(
143 | [
144 | make_res_block(dim_in, dim_out),
145 | make_res_block(dim_out, dim_out),
146 | VecDownsample1d(dim_out) if not is_last else nn.Identity(),
147 | ]
148 | )
149 | )
150 |
151 | up_modules = nn.ModuleList([])
152 | for ind, (dim_in, dim_out) in enumerate(reversed(in_out[1:])):
153 | is_last = ind >= (len(in_out) - 1)
154 | up_modules.append(
155 | nn.ModuleList(
156 | [
157 | make_res_block(dim_out * 2, dim_in),
158 | make_res_block(dim_in, dim_in),
159 | VecUpsample1d(dim_in) if not is_last else nn.Identity(),
160 | ]
161 | )
162 | )
163 |
164 | final_conv = nn.Sequential(
165 | VecConv1dBlock(start_dim, start_dim, kernel_size=kernel_size),
166 | VecDownsample1d(start_dim, input_dim, 1, 1, 0),
167 | )
168 |
169 | if scalar_input_dim > 0:
170 | self.final_linear = VecLinear(start_dim, 0, s_out=scalar_input_dim)
171 |
172 | self.diffusion_step_encoder = diffusion_step_encoder
173 | self.up_modules = up_modules
174 | self.down_modules = down_modules
175 | self.final_conv = final_conv
176 |
177 | logger.info(
178 | "number of parameters: %e", sum(p.numel() for p in self.parameters())
179 | )
180 |
181 | def forward(
182 | self,
183 | sample: torch.Tensor,
184 | timestep: Union[torch.Tensor, float, int],
185 | scalar_sample=None,
186 | cond=None,
187 | scalar_cond=None,
188 | **kwargs
189 | ):
190 | """
191 | sample: (B,T,input_dim,3)
192 | timestep: (B,) or int, diffusion step
193 | scalar_sample: (B,T,input_dim)
194 | cond: (B,cond_dim,3)
195 | scalar_cond: (B,cond_dim)
196 | output: (B,T,input_dim)
197 | """
198 | sample = einops.rearrange(sample, "b h t v -> b t v h")
199 | if scalar_sample is not None:
200 | scalar_sample = einops.rearrange(scalar_sample, "b h t -> b t h")
201 |
202 | # 1. encode timestep
203 | timesteps = timestep
204 | if not torch.is_tensor(timesteps):
205 | # TODO: this requires sync between CPU and GPU. So try to pass timesteps as tensors if you can
206 | timesteps = torch.tensor(
207 | [timesteps], dtype=torch.long, device=sample.device
208 | )
209 | elif torch.is_tensor(timesteps) and len(timesteps.shape) == 0:
210 | timesteps = timesteps[None].to(sample.device)
211 | # broadcast to batch dimension in a way that's compatible with ONNX/Core ML
212 | timesteps = timesteps.expand(sample.shape[0])
213 |
214 | # 2. conditioning
215 | assert cond is not None
216 | vec_feature = cond
217 | scalar_feature = self.diffusion_step_encoder(timesteps) # (B, dsed)
218 | if scalar_cond is not None:
219 | scalar_feature = torch.cat([scalar_feature, scalar_cond], dim=-1)
220 |
221 | # 3. forward pass through the unet
222 | # 3.1 fuse vector and scalar samples if needed
223 | if scalar_sample is not None:
224 | assert hasattr(self, "scalar_fusion_module")
225 | sample = self.scalar_fusion_module(sample, scalar_sample)
226 |
227 | # 3.2 unet
228 | x = sample
229 | h = []
230 | for idx, (resnet, resnet2, downsample) in enumerate(self.down_modules):
231 | x = resnet(x, vec_feature, scalar_feature)
232 | x = resnet2(x, vec_feature, scalar_feature)
233 | h.append(x)
234 | x = downsample(x)
235 |
236 | for mid_module in self.mid_modules:
237 | x = mid_module(x, vec_feature, scalar_feature)
238 |
239 | for idx, (resnet, resnet2, upsample) in enumerate(self.up_modules):
240 | x = torch.cat((x, h.pop()), dim=1)
241 | x = resnet(x, vec_feature, scalar_feature)
242 | x = resnet2(x, vec_feature, scalar_feature)
243 | x = upsample(x)
244 |
245 | if scalar_sample is not None:
246 | assert hasattr(self, "final_linear")
247 | x_scalar = self.final_linear(x)[1]
248 | x_scalar = einops.rearrange(x_scalar, "b t h -> b h t")
249 | x = self.final_conv(x)
250 | x = einops.rearrange(x, "b t v h -> b h t v")
251 |
252 | if scalar_sample is not None:
253 | return x, x_scalar
254 | else:
255 | return x, None
256 |
--------------------------------------------------------------------------------
/BiDP/policies/utils/equivariant_diffusion/conv1d_components.py:
--------------------------------------------------------------------------------
1 | import torch
2 | import torch.nn as nn
3 | import torch.nn.functional as F
4 |
5 | from policies.vision.vec_layers import VecActivation
6 |
7 |
8 | class VecDownsample1d(nn.Module):
9 | def __init__(self, in_dim, out_dim=None, kernel_size=3, stride=2, padding=1):
10 | # input: (N, C_in, 3, L)
11 | super().__init__()
12 | if out_dim is None:
13 | out_dim = in_dim
14 |
15 | # note: we need to omit the bias term to maintain equivariance
16 | self.conv = nn.Conv1d(in_dim, out_dim, kernel_size, stride, padding, bias=False)
17 |
18 | def forward(self, x):
19 | # put vector dimension inside batch dimension
20 | original_shape = x.shape
21 | x_flattened = torch.transpose(x, 1, 2)
22 | x_flattened = x_flattened.reshape(-1, *x_flattened.shape[2:])
23 | # pass processed input through convolution layer
24 | out = self.conv(x_flattened)
25 | # process convolved input back to vector format
26 | out = torch.transpose(out.reshape(-1, 3, *out.shape[1:]), 1, 2)
27 | return out
28 |
29 |
30 | class VecUpsample1d(VecDownsample1d):
31 | def __init__(self, dim):
32 | nn.Module.__init__(self)
33 | self.conv = nn.ConvTranspose1d(dim, dim, 4, 2, 1, bias=False)
34 |
35 |
36 | class VecConv1dBlock(nn.Module):
37 | """
38 | Conv1d --> GroupNorm --> Mish
39 | """
40 |
41 | def __init__(self, inp_channels, out_channels, kernel_size):
42 | # input dimension: (N, C_in, 3, L)
43 | super().__init__()
44 |
45 | # Note: we cannot have normalization layers here because it breaks scale equivariance
46 | self.block = nn.Sequential(
47 | VecDownsample1d(
48 | inp_channels, out_channels, kernel_size, 1, kernel_size // 2
49 | ),
50 | VecActivation(
51 | out_channels,
52 | nn.Mish(),
53 | shared_nonlinearity=False,
54 | mode="so3",
55 | cross=False,
56 | ),
57 | )
58 |
59 | def forward(self, x):
60 | return self.block(x)
61 |
62 |
63 | def test():
64 | cb = VecConv1dBlock(256, 128, kernel_size=3)
65 | x = torch.zeros((1, 256, 3, 16))
66 | o = cb(x)
67 |
--------------------------------------------------------------------------------
/BiDP/policies/utils/media.py:
--------------------------------------------------------------------------------
1 | """
2 | Utilities for loading, saving, and manipulating videos and images.
3 |
4 | @yjy0625
5 |
6 | """
7 |
8 | import os
9 | import numpy as np
10 | import cv2
11 | import skvideo.io
12 | import imageio
13 |
14 |
15 | def _make_dir(filename):
16 | folder = os.path.dirname(filename)
17 | os.makedirs(folder, exist_ok=True)
18 |
19 |
20 | def save_image(image, filename):
21 | _make_dir(filename)
22 | if np.max(image) < 2:
23 | image = np.array(image * 255)
24 | image = image.astype(np.uint8)
25 | cv2.imwrite(filename, image[..., ::-1])
26 |
27 |
28 | def save_gif(video_array, file_path, fps=10):
29 | """
30 | Save a (T, H, W, 3) numpy array of video into a GIF file.
31 |
32 | Parameters:
33 | video_array (numpy.ndarray): The video as a 4D numpy array with shape (T, H, W, 3).
34 | file_path (str): The file path where the GIF will be saved.
35 | fps (int, optional): Frames per second for the GIF. Default is 10.
36 | """
37 | try:
38 | # Ensure the video array is uint8 (required for GIF)
39 | video_array = (255 * (1.0 - video_array)).astype("uint8")
40 |
41 | # Save the GIF
42 | imageio.mimsave(file_path, video_array, duration=len(video_array) / fps, loop=1)
43 | print(f"Saved GIF to {file_path}")
44 | except Exception as e:
45 | print(f"Error saving GIF: {e}")
46 |
47 |
48 | def save_video(video_frames, filename, fps=10, video_format="mp4"):
49 | if len(video_frames) == 0:
50 | return False
51 |
52 | assert fps == int(fps), fps
53 | _make_dir(filename)
54 |
55 | skvideo.io.vwrite(
56 | filename,
57 | video_frames,
58 | inputdict={
59 | "-r": str(int(fps)),
60 | },
61 | outputdict={"-f": video_format, "-pix_fmt": "yuv420p"},
62 | )
63 |
64 | return True
65 |
66 |
67 | def read_video(filename):
68 | return skvideo.io.vread(filename)
69 |
70 |
71 | def get_video_framerate(filename):
72 | videometadata = skvideo.io.ffprobe(filename)
73 | frame_rate = videometadata["video"]["@avg_frame_rate"]
74 | return eval(frame_rate)
75 |
76 |
77 | def add_caption_to_img(img, info, name=None, flip_rgb=False, num_lines=5):
78 | """Adds caption to an image. info is dict with keys and text/array.
79 | :arg name: if given this will be printed as heading in the first line
80 | :arg flip_rgb: set to True for inputs with BGR color channels
81 | """
82 | mul = 2.0
83 | offset = int(12 * mul)
84 |
85 | frame = img * 255.0 if img.max() <= 1.0 else img
86 | if flip_rgb:
87 | frame = frame[:, :, ::-1]
88 |
89 | # colors
90 | blue = (66, 133, 244)
91 | yellow = (255, 255, 0)
92 | white = (255, 255, 255)
93 |
94 | # add border to frame if success
95 | if "is_success" in info.keys() and info["is_success"]:
96 | border_size = int(10 * mul)
97 | frame[:border_size, :] = np.array(blue)[None][None]
98 | frame[-border_size:, :] = np.array(blue)[None][None]
99 | frame[:, :border_size] = np.array(blue)[None][None]
100 | frame[:, -border_size:] = np.array(blue)[None][None]
101 |
102 | fheight, fwidth = frame.shape[:2]
103 | pad_height = int(offset * (num_lines + 2))
104 | frame = np.concatenate([frame, np.zeros((pad_height, fwidth, 3))], 0)
105 |
106 | font_size = 0.4 * mul
107 | thickness = int(1 * mul)
108 | x, y = int(5 * mul), fheight + int(10 * mul)
109 | if name is not None:
110 | cv2.putText(
111 | frame,
112 | "[{}]".format(name),
113 | (x, y),
114 | cv2.FONT_HERSHEY_SIMPLEX,
115 | font_size,
116 | yellow,
117 | thickness,
118 | cv2.LINE_AA,
119 | )
120 | for i, k in enumerate(info.keys()):
121 | v = info[k]
122 | if (
123 | type(v) == np.ndarray
124 | or type(v) == np.float64
125 | or type(v) == np.float32
126 | or type(v) == float
127 | ):
128 | if type(v) == np.ndarray:
129 | v = np.round(v, 3 if np.isscalar(v) or len(v) <= 3 else 2)
130 | else:
131 | v = np.round(v, 3)
132 | key_text = "{}: ".format(k)
133 | (key_width, _), _ = cv2.getTextSize(
134 | key_text, cv2.FONT_HERSHEY_SIMPLEX, font_size, thickness
135 | )
136 |
137 | cv2.putText(
138 | frame,
139 | key_text,
140 | (x, y + offset * (i + 2)),
141 | cv2.FONT_HERSHEY_SIMPLEX,
142 | font_size,
143 | blue,
144 | thickness,
145 | cv2.LINE_AA,
146 | )
147 |
148 | cv2.putText(
149 | frame,
150 | str(v),
151 | (x + key_width, y + offset * (i + 2)),
152 | cv2.FONT_HERSHEY_SIMPLEX,
153 | font_size,
154 | white,
155 | thickness,
156 | cv2.LINE_AA,
157 | )
158 |
159 | if flip_rgb:
160 | frame = frame[:, :, ::-1]
161 |
162 | return frame
163 |
164 |
165 | def add_border_to_img(frame, color=(234, 67, 53)):
166 | border_size = 20
167 | if np.max(frame) <= 1.0:
168 | color = tuple([float(x) / 255 for x in color])
169 | frame[:border_size, :] = np.array(color)[None][None]
170 | frame[-border_size:, :] = np.array(color)[None][None]
171 | frame[:, :border_size] = np.array(color)[None][None]
172 | frame[:, -border_size:] = np.array(color)[None][None]
173 | return frame
174 |
175 |
176 | def add_border_to_video(frames, color=(234, 67, 53)):
177 | border_size = 20
178 | if np.max(frames) <= 1.0:
179 | color = tuple([float(x) / 255 for x in color])
180 | frames[:, :border_size, :] = np.array(color)[None][None][None]
181 | frames[:, -border_size:, :] = np.array(color)[None][None][None]
182 | frames[:, :, :border_size] = np.array(color)[None][None][None]
183 | frames[:, :, -border_size:] = np.array(color)[None][None][None]
184 | return frames
185 |
186 |
187 | def combine_videos(images, num_cols=5):
188 | if len(images) == 1:
189 | return np.array(images[0])
190 | max_frames = np.max([len(im) for im in images])
191 | images = [
192 | np.concatenate([im[:-1], np.array([im[-1]] * (max_frames - len(im) + 1))])
193 | for im in images
194 | ]
195 | images = np.array(images)
196 | B = images.shape[0]
197 | if B % num_cols != 0:
198 | images = np.concatenate(
199 | [images, np.zeros((num_cols - (B % num_cols),) + tuple(images.shape[1:]))]
200 | )
201 | B, T, H, W, C = images.shape
202 | images = images.reshape(B // num_cols, num_cols, T, H, W, C).transpose(
203 | 2, 0, 3, 1, 4, 5
204 | )
205 | images = images.reshape(T, B // num_cols * H, num_cols * W, C)
206 | return images
207 |
--------------------------------------------------------------------------------
/BiDP/policies/utils/misc.py:
--------------------------------------------------------------------------------
1 | import numpy as np
2 | import torch
3 |
4 |
5 | def to_torch(batch, device):
6 | return {k: v.to(device) for k, v in batch.items()}
7 |
8 |
9 | def rotate_around_z(
10 | points,
11 | angle_rad=0.0,
12 | center=np.array([0.0, 0.0, 0.0]),
13 | scale=np.array([1.0, 1.0, 1.0]),
14 | ):
15 | # Check if the input points have the correct shape (N, 3)
16 | assert (len(points.shape) == 1 and len(points) == 3) or points.shape[-1] == 3
17 | p_shape = points.shape
18 | points = points.reshape(-1, 3) - center[None]
19 |
20 | # Create the rotation matrix
21 | cos_theta = np.cos(angle_rad)
22 | sin_theta = np.sin(angle_rad)
23 | rotation_matrix = np.array(
24 | [[cos_theta, -sin_theta, 0], [sin_theta, cos_theta, 0], [0, 0, 1]]
25 | )
26 |
27 | # Apply the rotation to all points using matrix multiplication
28 | rotated_points = np.dot(points, rotation_matrix.T) * scale[None] + center[None]
29 | rotated_points = rotated_points.reshape(p_shape)
30 |
31 | return rotated_points
32 |
33 |
34 | def get_env_class(env_name):
35 | if env_name == "fold":
36 | from envs.sim_mobile.folding_env import FoldingEnv
37 | return FoldingEnv
38 | elif env_name == "cover":
39 | from envs.sim_mobile.covering_env import CoveringEnv
40 | return CoveringEnv
41 | elif env_name == "close":
42 | from envs.sim_mobile.closing_env import ClosingEnv
43 | return ClosingEnv
44 | else:
45 | raise ValueError()
46 |
47 |
48 | def get_dataset(cfg, mode="train"):
49 | # from policies.datasets.dataset import BaseDataset
50 | from policies.datasets.dataset_loader import BaseDataset
51 | return BaseDataset(cfg.data.dataset, mode)
52 |
53 |
54 | def get_agent(agent_name):
55 | if agent_name == "dp":
56 | from policies.agents.dp_agent import DPAgent
57 | return DPAgent
58 | elif agent_name == "equibot":
59 | from policies.agents.equibot_agent import EquiBotAgent
60 | return EquiBotAgent
61 | else:
62 | raise ValueError(f"Agent with name [{agent_name}] not found.")
63 |
--------------------------------------------------------------------------------
/BiDP/policies/utils/norm.py:
--------------------------------------------------------------------------------
1 | import numpy as np
2 | import torch
3 |
4 |
5 | class Normalizer(object):
6 | def __init__(self, data, symmetric=False, indices=None):
7 | if isinstance(data, dict):
8 | # load from existing data statistics
9 | self.stats = data
10 | elif symmetric:
11 | # just scaling applied in normalization, no bias
12 | # perform the same normalization in groups
13 | if indices is None:
14 | indices = np.arange(data.shape[-1])[None]
15 |
16 | self.stats = {
17 | "min": torch.zeros([data.shape[-1]]).to(data.device),
18 | "max": torch.ones([data.shape[-1]]).to(data.device),
19 | }
20 | for group in indices:
21 | max_abs = torch.abs(data[:, group]).max(0)[0].detach()
22 | limits = torch.ones_like(max_abs) * torch.max(max_abs)
23 | self.stats["max"][group] = limits
24 | else:
25 | mask = torch.zeros([data.shape[-1]]).to(data.device)
26 | if indices is not None:
27 | mask[indices.flatten()] += 1
28 | else:
29 | mask += 1
30 | self.stats = {
31 | "min": data.min(0)[0].detach() * mask,
32 | "max": data.max(0)[0].detach() * mask + 1.0 * (1 - mask),
33 | }
34 |
35 | def normalize(self, data):
36 | nd = len(data.shape)
37 | target_shape = (1,) * (nd - 1) + (data.shape[-1],)
38 | dmin = self.stats["min"].reshape(target_shape)
39 | dmax = self.stats["max"].reshape(target_shape)
40 | return (data - dmin) / (dmax - dmin + 1e-12)
41 |
42 | def unnormalize(self, data):
43 | nd = len(data.shape)
44 | target_shape = (1,) * (nd - 1) + (data.shape[-1],)
45 | dmin = self.stats["min"].reshape(target_shape)
46 | dmax = self.stats["max"].reshape(target_shape)
47 | return data * (dmax - dmin) + dmin
48 |
49 | def state_dict(self):
50 | return self.stats
51 |
52 | def load_state_dict(self, state_dict):
53 | self.stats = state_dict
54 |
--------------------------------------------------------------------------------
/BiDP/policies/vision/misc.py:
--------------------------------------------------------------------------------
1 | import logging
2 |
3 |
4 | def cfg_with_default(cfg, key_list, default):
5 | root = cfg
6 | for k in key_list:
7 | if k in root.keys():
8 | root = root[k]
9 | else:
10 | return default
11 | return root
12 |
13 |
14 | def count_param(network_dict):
15 | for k in network_dict:
16 | logging.info(
17 | "{:.3f}M params in {}".format(
18 | sum(param.numel() for param in network_dict[k].parameters()) / 1e6, k
19 | )
20 | )
21 |
--------------------------------------------------------------------------------
/BiDP/policies/vision/pointnet_encoder.py:
--------------------------------------------------------------------------------
1 | import os
2 | import sys
3 | import numpy as np
4 | import torch
5 | import torch.nn as nn
6 | import torch.nn.functional as F
7 | from pytorch3d.ops.knn import knn_points
8 | import logging
9 |
10 |
11 | def meanpool(x, dim=-1, keepdim=False):
12 | out = x.mean(dim=dim, keepdim=keepdim)
13 | return out
14 |
15 |
16 | class PointNetEncoder(nn.Module):
17 | def __init__(self, h_dim=128, c_dim=128, num_layers=4, **kwargs):
18 | super().__init__()
19 |
20 | self.h_dim = h_dim
21 | self.c_dim = c_dim
22 | self.num_layers = num_layers
23 |
24 | self.pool = meanpool
25 |
26 | act_func = nn.LeakyReLU(negative_slope=0.0, inplace=False)
27 | self.act = act_func
28 |
29 | self.conv_in = nn.Conv1d(3, h_dim, kernel_size=1)
30 | self.layers, self.global_layers = nn.ModuleList(), nn.ModuleList()
31 | for i in range(self.num_layers):
32 | self.layers.append(nn.Conv1d(h_dim, h_dim, kernel_size=1))
33 | self.global_layers.append(nn.Conv1d(h_dim * 2, h_dim, kernel_size=1))
34 | self.conv_out = nn.Conv1d(h_dim * self.num_layers, c_dim, kernel_size=1)
35 |
36 | def forward(self, x, ret_perpoint_feat=False):
37 |
38 | y = self.act(self.conv_in(x))
39 | feat_list = []
40 | for i in range(self.num_layers):
41 | y = self.act(self.layers[i](y))
42 | y_global = y.max(-1, keepdim=True).values
43 | y = torch.cat([y, y_global.expand_as(y)], dim=1)
44 | y = self.act(self.global_layers[i](y))
45 | feat_list.append(y)
46 | x = torch.cat(feat_list, dim=1)
47 | x = self.conv_out(x)
48 |
49 | x_global = x.max(-1).values
50 |
51 | ret = {"global": x_global}
52 | if ret_perpoint_feat:
53 | ret["per_point"] = x.transpose(1, 2)
54 |
55 | return ret
56 |
--------------------------------------------------------------------------------
/BiDP/policies/vision/sim3_encoder.py:
--------------------------------------------------------------------------------
1 | # using the backbone, different encoders
2 |
3 | import os
4 | import sys
5 | import numpy as np
6 | import torch
7 | import torch.nn as nn
8 | import torch.nn.functional as F
9 | import logging
10 |
11 | from policies.vision.vec_layers import VecLinear
12 | from policies.vision.vec_pointnet import VecPointNet
13 |
14 |
15 | BACKBONE_DICT = {"vn_pointnet": VecPointNet}
16 |
17 | NORMALIZATION_METHOD = {"bn": nn.BatchNorm1d, "in": nn.InstanceNorm1d}
18 |
19 |
20 | class SIM3Vec4Latent(nn.Module):
21 | """
22 | This encoder encode the input point cloud to 4 latents
23 | Now only support so3 mode
24 | TODO: se3 and hybrid
25 | """
26 |
27 | def __init__(
28 | self,
29 | c_dim,
30 | backbone_type,
31 | backbone_args,
32 | mode="so3",
33 | normalization_method=None,
34 | ):
35 | super().__init__()
36 | assert mode == "so3", NotImplementedError("TODO, add se3")
37 | if normalization_method is not None:
38 | backbone_args["normalization_method"] = NORMALIZATION_METHOD[
39 | normalization_method
40 | ]
41 |
42 | self.backbone = BACKBONE_DICT[backbone_type](**backbone_args)
43 | self.fc_inv = VecLinear(c_dim, c_dim, mode=mode)
44 |
45 | def forward(self, pcl, ret_perpoint_feat=False, target_norm=1.0):
46 | B, T, N, _ = pcl.shape
47 | pcl = pcl.view(B * T, -1, 3).transpose(1, 2) # [BT, 3, N]
48 |
49 | centroid = pcl.mean(-1, keepdim=True) # B,3,1
50 | input_pcl = pcl - centroid
51 |
52 | z_scale = input_pcl.norm(dim=1).mean(-1) / target_norm # B
53 | z_center = centroid.permute(0, 2, 1)
54 |
55 | input_pcl = input_pcl / z_scale[:, None, None]
56 |
57 | x, x_perpoint = self.backbone(input_pcl) # B,C,3
58 |
59 | z_so3 = x
60 | z_inv_dual, _ = self.fc_inv(x[..., None])
61 | z_inv_dual = z_inv_dual.squeeze(-1)
62 | z_inv = (z_inv_dual * z_so3).sum(-1)
63 |
64 | ret = {
65 | "inv": z_inv,
66 | "so3": z_so3,
67 | "scale": z_scale,
68 | "center": z_center,
69 | }
70 |
71 | if ret_perpoint_feat:
72 | ret["per_point_so3"] = x_perpoint # [B, C, 3, N]
73 |
74 | return ret
75 |
--------------------------------------------------------------------------------
/BiDP/policies/vision/vec_pointnet.py:
--------------------------------------------------------------------------------
1 | import os
2 | import sys
3 | import numpy as np
4 | import torch
5 | import torch.nn as nn
6 | import torch.nn.functional as F
7 | from pytorch3d.ops.knn import knn_points
8 | import logging
9 |
10 | from policies.vision.vec_layers import VecLinear
11 | from policies.vision.vec_layers import VecLinNormAct as VecLNA
12 |
13 |
14 | def meanpool(x, dim=-1, keepdim=False):
15 | out = x.mean(dim=dim, keepdim=keepdim)
16 | return out
17 |
18 |
19 | class VecPointNet(nn.Module):
20 | def __init__(
21 | self,
22 | h_dim=128,
23 | c_dim=128,
24 | num_layers=4,
25 | knn=16,
26 | ):
27 | super().__init__()
28 |
29 | self.h_dim = h_dim
30 | self.c_dim = c_dim
31 | self.num_layers = num_layers
32 | self.knn = knn
33 |
34 | self.pool = meanpool
35 |
36 | act_func = nn.LeakyReLU(negative_slope=0.0, inplace=False)
37 | vnla_cfg = {"mode": "so3", "act_func": act_func}
38 |
39 | self.conv_in = VecLNA(3, h_dim, **vnla_cfg)
40 | self.layers, self.global_layers = nn.ModuleList(), nn.ModuleList()
41 | for i in range(self.num_layers):
42 | self.layers.append(VecLNA(h_dim, h_dim, **vnla_cfg))
43 | self.global_layers.append(VecLNA(h_dim * 2, h_dim, **vnla_cfg))
44 | self.conv_out = VecLinear(h_dim * self.num_layers, c_dim, mode="so3")
45 |
46 | self.fc_inv = VecLinear(c_dim, 3, mode="so3")
47 |
48 | def get_graph_feature(self, x: torch.Tensor, k: int, knn_idx=None, cross=False):
49 | # x: B,C,3,N return B,C*2,3,N,K
50 |
51 |
52 | B, C, _, N = x.shape
53 | if knn_idx is None:
54 | # if knn_idx is not none, compute the knn by x distance; ndf use fixed knn as input topo
55 | _x = x.reshape(B, -1, N)
56 | _, knn_idx, neighbors = knn_points(
57 | _x.transpose(2, 1), _x.transpose(2, 1), K=k, return_nn=True
58 | ) # B,N,K; B,N,K; B,N,K,D
59 | neighbors = neighbors.reshape(B, N, k, C, 3).permute(0, -2, -1, 1, 2)
60 | else: # gather from the input knn idx
61 | assert knn_idx.shape[-1] == k, f"input knn gather idx should have k={k}"
62 | neighbors = torch.gather(
63 | x[..., None, :].expand(-1, -1, -1, N, -1),
64 | dim=-1,
65 | index=knn_idx[:, None, None, ...].expand(-1, C, 3, -1, -1),
66 | ) # B,C,3,N,K
67 | x_padded = x[..., None].expand_as(neighbors)
68 |
69 | if cross:
70 | x_dir = F.normalize(x, dim=2)
71 | x_dir_padded = x_dir[..., None].expand_as(neighbors)
72 | cross = torch.cross(x_dir_padded, neighbors, dim=2)
73 | y = torch.cat([cross, neighbors - x_padded, x_padded], 1)
74 | else:
75 | y = torch.cat([neighbors - x_padded, x_padded], 1)
76 | return y, knn_idx # B,C*2,3,N,K
77 |
78 | def forward(self, x):
79 | x = x.unsqueeze(1) # [B, 1, 3, N]
80 |
81 | x, knn_idx = self.get_graph_feature(x, self.knn, cross=True)
82 | x, _ = self.conv_in(x)
83 | x = self.pool(x)
84 |
85 | y = x
86 | feat_list = []
87 | for i in range(self.num_layers):
88 | y, _ = self.layers[i](y)
89 | y_global = y.mean(-1, keepdim=True)
90 | y = torch.cat([y, y_global.expand_as(y)], dim=1)
91 | y, _ = self.global_layers[i](y)
92 | feat_list.append(y)
93 | x = torch.cat(feat_list, dim=1)
94 | x, _ = self.conv_out(x)
95 |
96 | return x.mean(-1), x
97 |
--------------------------------------------------------------------------------
/BiDP/run_noaug.sh:
--------------------------------------------------------------------------------
1 | python infer.py --config-name basic training.ckpt=/home/dexforce/zhouhuayi/projects/BiDP/logs/train/bidp_drawer_noaug/ckpt01999.pth data.dataset.path=/home/dexforce/zhouhuayi/projects/BiDP/dataset agent.agent_name=equibot env.env_class=drawer model.pred_horizon=12 data.dataset.is_transformed=0
2 | python infer.py --config-name basic training.ckpt=/home/dexforce/zhouhuayi/projects/BiDP/logs/train/bidp_pouring_noaug/ckpt01999.pth data.dataset.path=/home/dexforce/zhouhuayi/projects/BiDP/dataset agent.agent_name=equibot env.env_class=pouring model.pred_horizon=12 data.dataset.is_transformed=0
3 | python infer.py --config-name basic training.ckpt=/home/dexforce/zhouhuayi/projects/BiDP/logs/train/bidp_unscrew_noaug/ckpt03999.pth data.dataset.path=/home/dexforce/zhouhuayi/projects/BiDP/dataset agent.agent_name=equibot env.env_class=unscrew model.pred_horizon=12 data.dataset.is_transformed=0
4 | python infer.py --config-name basic training.ckpt=/home/dexforce/zhouhuayi/projects/BiDP/logs/train/bidp_uncover_noaug/ckpt03999.pth data.dataset.path=/home/dexforce/zhouhuayi/projects/BiDP/dataset agent.agent_name=equibot env.env_class=uncover model.pred_horizon=24 data.dataset.is_transformed=0
5 | python infer.py --config-name basic training.ckpt=/home/dexforce/zhouhuayi/projects/BiDP/logs/train/bidp_openbox_noaug/ckpt03999.pth data.dataset.path=/home/dexforce/zhouhuayi/projects/BiDP/dataset agent.agent_name=equibot env.env_class=openbox model.pred_horizon=32 data.dataset.is_transformed=0
--------------------------------------------------------------------------------
/BiDP/run_withaug.sh:
--------------------------------------------------------------------------------
1 | python infer.py --config-name basic training.ckpt=/home/dexforce/zhouhuayi/projects/BiDP/logs/train/bidp_drawer_withaug/ckpt00499.pth data.dataset.path=/home/dexforce/zhouhuayi/projects/BiDP/dataset agent.agent_name=equibot env.env_class=drawer model.pred_horizon=12 data.dataset.is_transformed=0
2 | python infer.py --config-name basic training.ckpt=/home/dexforce/zhouhuayi/projects/BiDP/logs/train/bidp_pouring_withaug/ckpt00499.pth data.dataset.path=/home/dexforce/zhouhuayi/projects/BiDP/dataset agent.agent_name=equibot env.env_class=pouring model.pred_horizon=12 data.dataset.is_transformed=0
3 | python infer.py --config-name basic training.ckpt=/home/dexforce/zhouhuayi/projects/BiDP/logs/train/bidp_unscrew_withaug/ckpt00999.pth data.dataset.path=/home/dexforce/zhouhuayi/projects/BiDP/dataset agent.agent_name=equibot env.env_class=unscrew model.pred_horizon=12 data.dataset.is_transformed=0
4 | python infer.py --config-name basic training.ckpt=/home/dexforce/zhouhuayi/projects/BiDP/logs/train/bidp_uncover_withaug/ckpt00999.pth data.dataset.path=/home/dexforce/zhouhuayi/projects/BiDP/dataset agent.agent_name=equibot env.env_class=uncover model.pred_horizon=24 data.dataset.is_transformed=0
5 | python infer.py --config-name basic training.ckpt=/home/dexforce/zhouhuayi/projects/BiDP/logs/train/bidp_openbox_withaug/ckpt00999.pth data.dataset.path=/home/dexforce/zhouhuayi/projects/BiDP/dataset agent.agent_name=equibot env.env_class=openbox model.pred_horizon=32 data.dataset.is_transformed=0
--------------------------------------------------------------------------------
/BiDP/test/drawer/demo_notrans_noaug_id/BiDP_infer_demo1.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/drawer/demo_notrans_noaug_id/BiDP_infer_demo1.mp4
--------------------------------------------------------------------------------
/BiDP/test/drawer/demo_notrans_noaug_id/pred_actions.npy:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/drawer/demo_notrans_noaug_id/pred_actions.npy
--------------------------------------------------------------------------------
/BiDP/test/drawer/demo_notrans_noaug_id/temp_0000.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/drawer/demo_notrans_noaug_id/temp_0000.jpg
--------------------------------------------------------------------------------
/BiDP/test/drawer/demo_notrans_noaug_id/temp_0001.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/drawer/demo_notrans_noaug_id/temp_0001.jpg
--------------------------------------------------------------------------------
/BiDP/test/drawer/demo_notrans_noaug_id/temp_0002.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/drawer/demo_notrans_noaug_id/temp_0002.jpg
--------------------------------------------------------------------------------
/BiDP/test/drawer/demo_notrans_noaug_id/temp_0003.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/drawer/demo_notrans_noaug_id/temp_0003.jpg
--------------------------------------------------------------------------------
/BiDP/test/drawer/demo_notrans_noaug_id/temp_0004.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/drawer/demo_notrans_noaug_id/temp_0004.jpg
--------------------------------------------------------------------------------
/BiDP/test/drawer/demo_notrans_noaug_id/temp_0005.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/drawer/demo_notrans_noaug_id/temp_0005.jpg
--------------------------------------------------------------------------------
/BiDP/test/drawer/demo_notrans_noaug_id/temp_0006.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/drawer/demo_notrans_noaug_id/temp_0006.jpg
--------------------------------------------------------------------------------
/BiDP/test/drawer/demo_notrans_noaug_id/temp_0007.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/drawer/demo_notrans_noaug_id/temp_0007.jpg
--------------------------------------------------------------------------------
/BiDP/test/drawer/demo_notrans_noaug_id/temp_0008.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/drawer/demo_notrans_noaug_id/temp_0008.jpg
--------------------------------------------------------------------------------
/BiDP/test/drawer/demo_notrans_noaug_id/temp_0009.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/drawer/demo_notrans_noaug_id/temp_0009.jpg
--------------------------------------------------------------------------------
/BiDP/test/drawer/demo_notrans_noaug_id/temp_0010.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/drawer/demo_notrans_noaug_id/temp_0010.jpg
--------------------------------------------------------------------------------
/BiDP/test/drawer/demo_notrans_noaug_id/temp_0011.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/drawer/demo_notrans_noaug_id/temp_0011.jpg
--------------------------------------------------------------------------------
/BiDP/test/drawer/demo_notrans_noaug_id/temp_0012.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/drawer/demo_notrans_noaug_id/temp_0012.jpg
--------------------------------------------------------------------------------
/BiDP/test/drawer/demo_notrans_noaug_id/temp_0013.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/drawer/demo_notrans_noaug_id/temp_0013.jpg
--------------------------------------------------------------------------------
/BiDP/test/drawer/demo_notrans_noaug_id/temp_0014.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/drawer/demo_notrans_noaug_id/temp_0014.jpg
--------------------------------------------------------------------------------
/BiDP/test/drawer/demo_notrans_noaug_id/temp_0015.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/drawer/demo_notrans_noaug_id/temp_0015.jpg
--------------------------------------------------------------------------------
/BiDP/test/drawer/demo_notrans_noaug_id/temp_0016.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/drawer/demo_notrans_noaug_id/temp_0016.jpg
--------------------------------------------------------------------------------
/BiDP/test/drawer/demo_notrans_noaug_id/temp_0017.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/drawer/demo_notrans_noaug_id/temp_0017.jpg
--------------------------------------------------------------------------------
/BiDP/test/drawer/demo_notrans_noaug_id/temp_0018.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/drawer/demo_notrans_noaug_id/temp_0018.jpg
--------------------------------------------------------------------------------
/BiDP/test/drawer/demo_notrans_noaug_id/temp_0019.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/drawer/demo_notrans_noaug_id/temp_0019.jpg
--------------------------------------------------------------------------------
/BiDP/test/drawer/demo_notrans_noaug_id/temp_0020.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/drawer/demo_notrans_noaug_id/temp_0020.jpg
--------------------------------------------------------------------------------
/BiDP/test/drawer/demo_notrans_noaug_id/temp_0021.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/drawer/demo_notrans_noaug_id/temp_0021.jpg
--------------------------------------------------------------------------------
/BiDP/test/drawer/demo_notrans_withaug_id/BiDP_infer_demo1.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/drawer/demo_notrans_withaug_id/BiDP_infer_demo1.mp4
--------------------------------------------------------------------------------
/BiDP/test/drawer/demo_notrans_withaug_id/pred_actions.npy:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/drawer/demo_notrans_withaug_id/pred_actions.npy
--------------------------------------------------------------------------------
/BiDP/test/drawer/demo_notrans_withaug_id/temp_0000.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/drawer/demo_notrans_withaug_id/temp_0000.jpg
--------------------------------------------------------------------------------
/BiDP/test/drawer/demo_notrans_withaug_id/temp_0001.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/drawer/demo_notrans_withaug_id/temp_0001.jpg
--------------------------------------------------------------------------------
/BiDP/test/drawer/demo_notrans_withaug_id/temp_0002.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/drawer/demo_notrans_withaug_id/temp_0002.jpg
--------------------------------------------------------------------------------
/BiDP/test/drawer/demo_notrans_withaug_id/temp_0003.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/drawer/demo_notrans_withaug_id/temp_0003.jpg
--------------------------------------------------------------------------------
/BiDP/test/drawer/demo_notrans_withaug_id/temp_0004.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/drawer/demo_notrans_withaug_id/temp_0004.jpg
--------------------------------------------------------------------------------
/BiDP/test/drawer/demo_notrans_withaug_id/temp_0005.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/drawer/demo_notrans_withaug_id/temp_0005.jpg
--------------------------------------------------------------------------------
/BiDP/test/drawer/demo_notrans_withaug_id/temp_0006.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/drawer/demo_notrans_withaug_id/temp_0006.jpg
--------------------------------------------------------------------------------
/BiDP/test/drawer/demo_notrans_withaug_id/temp_0007.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/drawer/demo_notrans_withaug_id/temp_0007.jpg
--------------------------------------------------------------------------------
/BiDP/test/drawer/demo_notrans_withaug_id/temp_0008.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/drawer/demo_notrans_withaug_id/temp_0008.jpg
--------------------------------------------------------------------------------
/BiDP/test/drawer/demo_notrans_withaug_id/temp_0009.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/drawer/demo_notrans_withaug_id/temp_0009.jpg
--------------------------------------------------------------------------------
/BiDP/test/drawer/demo_notrans_withaug_id/temp_0010.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/drawer/demo_notrans_withaug_id/temp_0010.jpg
--------------------------------------------------------------------------------
/BiDP/test/drawer/demo_notrans_withaug_id/temp_0011.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/drawer/demo_notrans_withaug_id/temp_0011.jpg
--------------------------------------------------------------------------------
/BiDP/test/drawer/demo_notrans_withaug_id/temp_0012.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/drawer/demo_notrans_withaug_id/temp_0012.jpg
--------------------------------------------------------------------------------
/BiDP/test/drawer/demo_notrans_withaug_id/temp_0013.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/drawer/demo_notrans_withaug_id/temp_0013.jpg
--------------------------------------------------------------------------------
/BiDP/test/drawer/demo_notrans_withaug_id/temp_0014.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/drawer/demo_notrans_withaug_id/temp_0014.jpg
--------------------------------------------------------------------------------
/BiDP/test/drawer/demo_notrans_withaug_id/temp_0015.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/drawer/demo_notrans_withaug_id/temp_0015.jpg
--------------------------------------------------------------------------------
/BiDP/test/drawer/demo_notrans_withaug_id/temp_0016.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/drawer/demo_notrans_withaug_id/temp_0016.jpg
--------------------------------------------------------------------------------
/BiDP/test/drawer/demo_notrans_withaug_id/temp_0017.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/drawer/demo_notrans_withaug_id/temp_0017.jpg
--------------------------------------------------------------------------------
/BiDP/test/drawer/demo_notrans_withaug_id/temp_0018.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/drawer/demo_notrans_withaug_id/temp_0018.jpg
--------------------------------------------------------------------------------
/BiDP/test/drawer/demo_notrans_withaug_id/temp_0019.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/drawer/demo_notrans_withaug_id/temp_0019.jpg
--------------------------------------------------------------------------------
/BiDP/test/drawer/demo_notrans_withaug_id/temp_0020.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/drawer/demo_notrans_withaug_id/temp_0020.jpg
--------------------------------------------------------------------------------
/BiDP/test/drawer/demo_notrans_withaug_id/temp_0021.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/drawer/demo_notrans_withaug_id/temp_0021.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_noaug_id/BiDP_infer_demo1.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_noaug_id/BiDP_infer_demo1.mp4
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_noaug_id/pred_actions.npy:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_noaug_id/pred_actions.npy
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_noaug_id/temp_0000.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_noaug_id/temp_0000.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_noaug_id/temp_0001.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_noaug_id/temp_0001.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_noaug_id/temp_0002.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_noaug_id/temp_0002.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_noaug_id/temp_0003.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_noaug_id/temp_0003.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_noaug_id/temp_0004.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_noaug_id/temp_0004.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_noaug_id/temp_0005.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_noaug_id/temp_0005.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_noaug_id/temp_0006.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_noaug_id/temp_0006.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_noaug_id/temp_0007.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_noaug_id/temp_0007.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_noaug_id/temp_0008.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_noaug_id/temp_0008.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_noaug_id/temp_0009.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_noaug_id/temp_0009.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_noaug_id/temp_0010.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_noaug_id/temp_0010.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_noaug_id/temp_0011.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_noaug_id/temp_0011.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_noaug_id/temp_0012.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_noaug_id/temp_0012.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_noaug_id/temp_0013.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_noaug_id/temp_0013.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_noaug_id/temp_0014.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_noaug_id/temp_0014.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_noaug_id/temp_0015.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_noaug_id/temp_0015.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_noaug_id/temp_0016.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_noaug_id/temp_0016.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_noaug_id/temp_0017.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_noaug_id/temp_0017.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_noaug_id/temp_0018.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_noaug_id/temp_0018.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_noaug_id/temp_0019.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_noaug_id/temp_0019.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_noaug_id/temp_0020.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_noaug_id/temp_0020.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_noaug_id/temp_0021.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_noaug_id/temp_0021.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_noaug_id/temp_0022.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_noaug_id/temp_0022.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_noaug_id/temp_0023.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_noaug_id/temp_0023.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_noaug_id/temp_0024.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_noaug_id/temp_0024.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_noaug_id/temp_0025.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_noaug_id/temp_0025.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_noaug_id/temp_0026.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_noaug_id/temp_0026.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_noaug_id/temp_0027.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_noaug_id/temp_0027.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_noaug_id/temp_0028.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_noaug_id/temp_0028.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_noaug_id/temp_0029.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_noaug_id/temp_0029.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_noaug_id/temp_0030.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_noaug_id/temp_0030.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_noaug_id/temp_0031.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_noaug_id/temp_0031.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_noaug_id/temp_0032.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_noaug_id/temp_0032.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_noaug_id/temp_0033.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_noaug_id/temp_0033.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_noaug_id/temp_0034.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_noaug_id/temp_0034.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_noaug_id/temp_0035.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_noaug_id/temp_0035.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_noaug_id/temp_0036.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_noaug_id/temp_0036.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_noaug_id/temp_0037.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_noaug_id/temp_0037.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_noaug_id/temp_0038.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_noaug_id/temp_0038.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_noaug_id/temp_0039.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_noaug_id/temp_0039.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_noaug_id/temp_0040.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_noaug_id/temp_0040.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_noaug_id/temp_0041.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_noaug_id/temp_0041.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_noaug_id/temp_0042.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_noaug_id/temp_0042.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_noaug_id/temp_0043.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_noaug_id/temp_0043.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_noaug_id/temp_0044.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_noaug_id/temp_0044.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_noaug_id/temp_0045.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_noaug_id/temp_0045.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_noaug_id/temp_0046.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_noaug_id/temp_0046.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_noaug_id/temp_0047.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_noaug_id/temp_0047.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_noaug_id/temp_0048.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_noaug_id/temp_0048.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_noaug_id/temp_0049.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_noaug_id/temp_0049.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_noaug_id/temp_0050.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_noaug_id/temp_0050.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_noaug_id/temp_0051.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_noaug_id/temp_0051.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_noaug_id/temp_0052.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_noaug_id/temp_0052.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_noaug_id/temp_0053.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_noaug_id/temp_0053.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_noaug_id/temp_0054.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_noaug_id/temp_0054.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_noaug_id/temp_0055.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_noaug_id/temp_0055.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_noaug_id/temp_0056.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_noaug_id/temp_0056.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_noaug_id/temp_0057.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_noaug_id/temp_0057.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_noaug_id/temp_0058.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_noaug_id/temp_0058.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_noaug_id/temp_0059.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_noaug_id/temp_0059.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_noaug_id/temp_0060.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_noaug_id/temp_0060.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_noaug_id/temp_0061.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_noaug_id/temp_0061.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_noaug_id/temp_0062.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_noaug_id/temp_0062.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_noaug_id/temp_0063.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_noaug_id/temp_0063.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_noaug_id/temp_0064.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_noaug_id/temp_0064.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_noaug_id/temp_0065.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_noaug_id/temp_0065.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_withaug_id/BiDP_infer_demo1.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_withaug_id/BiDP_infer_demo1.mp4
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_withaug_id/pred_actions.npy:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_withaug_id/pred_actions.npy
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_withaug_id/temp_0000.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_withaug_id/temp_0000.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_withaug_id/temp_0001.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_withaug_id/temp_0001.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_withaug_id/temp_0002.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_withaug_id/temp_0002.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_withaug_id/temp_0003.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_withaug_id/temp_0003.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_withaug_id/temp_0004.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_withaug_id/temp_0004.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_withaug_id/temp_0005.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_withaug_id/temp_0005.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_withaug_id/temp_0006.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_withaug_id/temp_0006.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_withaug_id/temp_0007.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_withaug_id/temp_0007.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_withaug_id/temp_0008.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_withaug_id/temp_0008.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_withaug_id/temp_0009.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_withaug_id/temp_0009.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_withaug_id/temp_0010.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_withaug_id/temp_0010.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_withaug_id/temp_0011.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_withaug_id/temp_0011.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_withaug_id/temp_0012.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_withaug_id/temp_0012.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_withaug_id/temp_0013.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_withaug_id/temp_0013.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_withaug_id/temp_0014.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_withaug_id/temp_0014.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_withaug_id/temp_0015.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_withaug_id/temp_0015.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_withaug_id/temp_0016.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_withaug_id/temp_0016.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_withaug_id/temp_0017.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_withaug_id/temp_0017.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_withaug_id/temp_0018.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_withaug_id/temp_0018.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_withaug_id/temp_0019.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_withaug_id/temp_0019.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_withaug_id/temp_0020.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_withaug_id/temp_0020.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_withaug_id/temp_0021.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_withaug_id/temp_0021.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_withaug_id/temp_0022.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_withaug_id/temp_0022.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_withaug_id/temp_0023.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_withaug_id/temp_0023.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_withaug_id/temp_0024.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_withaug_id/temp_0024.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_withaug_id/temp_0025.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_withaug_id/temp_0025.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_withaug_id/temp_0026.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_withaug_id/temp_0026.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_withaug_id/temp_0027.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_withaug_id/temp_0027.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_withaug_id/temp_0028.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_withaug_id/temp_0028.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_withaug_id/temp_0029.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_withaug_id/temp_0029.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_withaug_id/temp_0030.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_withaug_id/temp_0030.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_withaug_id/temp_0031.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_withaug_id/temp_0031.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_withaug_id/temp_0032.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_withaug_id/temp_0032.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_withaug_id/temp_0033.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_withaug_id/temp_0033.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_withaug_id/temp_0034.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_withaug_id/temp_0034.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_withaug_id/temp_0035.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_withaug_id/temp_0035.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_withaug_id/temp_0036.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_withaug_id/temp_0036.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_withaug_id/temp_0037.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_withaug_id/temp_0037.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_withaug_id/temp_0038.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_withaug_id/temp_0038.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_withaug_id/temp_0039.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_withaug_id/temp_0039.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_withaug_id/temp_0040.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_withaug_id/temp_0040.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_withaug_id/temp_0041.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_withaug_id/temp_0041.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_withaug_id/temp_0042.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_withaug_id/temp_0042.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_withaug_id/temp_0043.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_withaug_id/temp_0043.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_withaug_id/temp_0044.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_withaug_id/temp_0044.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_withaug_id/temp_0045.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_withaug_id/temp_0045.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_withaug_id/temp_0046.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_withaug_id/temp_0046.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_withaug_id/temp_0047.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_withaug_id/temp_0047.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_withaug_id/temp_0048.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_withaug_id/temp_0048.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_withaug_id/temp_0049.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_withaug_id/temp_0049.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_withaug_id/temp_0050.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_withaug_id/temp_0050.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_withaug_id/temp_0051.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_withaug_id/temp_0051.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_withaug_id/temp_0052.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_withaug_id/temp_0052.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_withaug_id/temp_0053.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_withaug_id/temp_0053.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_withaug_id/temp_0054.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_withaug_id/temp_0054.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_withaug_id/temp_0055.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_withaug_id/temp_0055.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_withaug_id/temp_0056.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_withaug_id/temp_0056.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_withaug_id/temp_0057.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_withaug_id/temp_0057.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_withaug_id/temp_0058.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_withaug_id/temp_0058.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_withaug_id/temp_0059.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_withaug_id/temp_0059.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_withaug_id/temp_0060.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_withaug_id/temp_0060.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_withaug_id/temp_0061.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_withaug_id/temp_0061.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_withaug_id/temp_0062.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_withaug_id/temp_0062.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_withaug_id/temp_0063.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_withaug_id/temp_0063.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_withaug_id/temp_0064.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_withaug_id/temp_0064.jpg
--------------------------------------------------------------------------------
/BiDP/test/openbox/demo_notrans_withaug_id/temp_0065.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/openbox/demo_notrans_withaug_id/temp_0065.jpg
--------------------------------------------------------------------------------
/BiDP/test/platform_pcd.ply:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/platform_pcd.ply
--------------------------------------------------------------------------------
/BiDP/test/pouring/demo_notrans_noaug_id/BiDP_infer_demo1.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/pouring/demo_notrans_noaug_id/BiDP_infer_demo1.mp4
--------------------------------------------------------------------------------
/BiDP/test/pouring/demo_notrans_noaug_id/pred_actions.npy:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/pouring/demo_notrans_noaug_id/pred_actions.npy
--------------------------------------------------------------------------------
/BiDP/test/pouring/demo_notrans_noaug_id/temp_0000.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/pouring/demo_notrans_noaug_id/temp_0000.jpg
--------------------------------------------------------------------------------
/BiDP/test/pouring/demo_notrans_noaug_id/temp_0001.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/pouring/demo_notrans_noaug_id/temp_0001.jpg
--------------------------------------------------------------------------------
/BiDP/test/pouring/demo_notrans_noaug_id/temp_0002.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/pouring/demo_notrans_noaug_id/temp_0002.jpg
--------------------------------------------------------------------------------
/BiDP/test/pouring/demo_notrans_noaug_id/temp_0003.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/pouring/demo_notrans_noaug_id/temp_0003.jpg
--------------------------------------------------------------------------------
/BiDP/test/pouring/demo_notrans_noaug_id/temp_0004.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/pouring/demo_notrans_noaug_id/temp_0004.jpg
--------------------------------------------------------------------------------
/BiDP/test/pouring/demo_notrans_noaug_id/temp_0005.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/pouring/demo_notrans_noaug_id/temp_0005.jpg
--------------------------------------------------------------------------------
/BiDP/test/pouring/demo_notrans_noaug_id/temp_0006.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/pouring/demo_notrans_noaug_id/temp_0006.jpg
--------------------------------------------------------------------------------
/BiDP/test/pouring/demo_notrans_noaug_id/temp_0007.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/pouring/demo_notrans_noaug_id/temp_0007.jpg
--------------------------------------------------------------------------------
/BiDP/test/pouring/demo_notrans_noaug_id/temp_0008.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/pouring/demo_notrans_noaug_id/temp_0008.jpg
--------------------------------------------------------------------------------
/BiDP/test/pouring/demo_notrans_noaug_id/temp_0009.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/pouring/demo_notrans_noaug_id/temp_0009.jpg
--------------------------------------------------------------------------------
/BiDP/test/pouring/demo_notrans_noaug_id/temp_0010.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/pouring/demo_notrans_noaug_id/temp_0010.jpg
--------------------------------------------------------------------------------
/BiDP/test/pouring/demo_notrans_noaug_id/temp_0011.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/pouring/demo_notrans_noaug_id/temp_0011.jpg
--------------------------------------------------------------------------------
/BiDP/test/pouring/demo_notrans_noaug_id/temp_0012.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/pouring/demo_notrans_noaug_id/temp_0012.jpg
--------------------------------------------------------------------------------
/BiDP/test/pouring/demo_notrans_noaug_id/temp_0013.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/pouring/demo_notrans_noaug_id/temp_0013.jpg
--------------------------------------------------------------------------------
/BiDP/test/pouring/demo_notrans_noaug_id/temp_0014.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/pouring/demo_notrans_noaug_id/temp_0014.jpg
--------------------------------------------------------------------------------
/BiDP/test/pouring/demo_notrans_noaug_id/temp_0015.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/pouring/demo_notrans_noaug_id/temp_0015.jpg
--------------------------------------------------------------------------------
/BiDP/test/pouring/demo_notrans_noaug_id/temp_0016.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/pouring/demo_notrans_noaug_id/temp_0016.jpg
--------------------------------------------------------------------------------
/BiDP/test/pouring/demo_notrans_noaug_id/temp_0017.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/pouring/demo_notrans_noaug_id/temp_0017.jpg
--------------------------------------------------------------------------------
/BiDP/test/pouring/demo_notrans_noaug_id/temp_0018.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/pouring/demo_notrans_noaug_id/temp_0018.jpg
--------------------------------------------------------------------------------
/BiDP/test/pouring/demo_notrans_noaug_id/temp_0019.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/pouring/demo_notrans_noaug_id/temp_0019.jpg
--------------------------------------------------------------------------------
/BiDP/test/pouring/demo_notrans_noaug_id/temp_0020.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/pouring/demo_notrans_noaug_id/temp_0020.jpg
--------------------------------------------------------------------------------
/BiDP/test/pouring/demo_notrans_noaug_id/temp_0021.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/pouring/demo_notrans_noaug_id/temp_0021.jpg
--------------------------------------------------------------------------------
/BiDP/test/pouring/demo_notrans_noaug_id/temp_0022.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/pouring/demo_notrans_noaug_id/temp_0022.jpg
--------------------------------------------------------------------------------
/BiDP/test/pouring/demo_notrans_noaug_id/temp_0023.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/pouring/demo_notrans_noaug_id/temp_0023.jpg
--------------------------------------------------------------------------------
/BiDP/test/pouring/demo_notrans_withaug_id/BiDP_infer_demo1.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/pouring/demo_notrans_withaug_id/BiDP_infer_demo1.mp4
--------------------------------------------------------------------------------
/BiDP/test/pouring/demo_notrans_withaug_id/pred_actions.npy:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/pouring/demo_notrans_withaug_id/pred_actions.npy
--------------------------------------------------------------------------------
/BiDP/test/pouring/demo_notrans_withaug_id/temp_0000.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/pouring/demo_notrans_withaug_id/temp_0000.jpg
--------------------------------------------------------------------------------
/BiDP/test/pouring/demo_notrans_withaug_id/temp_0001.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/pouring/demo_notrans_withaug_id/temp_0001.jpg
--------------------------------------------------------------------------------
/BiDP/test/pouring/demo_notrans_withaug_id/temp_0002.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/pouring/demo_notrans_withaug_id/temp_0002.jpg
--------------------------------------------------------------------------------
/BiDP/test/pouring/demo_notrans_withaug_id/temp_0003.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/pouring/demo_notrans_withaug_id/temp_0003.jpg
--------------------------------------------------------------------------------
/BiDP/test/pouring/demo_notrans_withaug_id/temp_0004.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/pouring/demo_notrans_withaug_id/temp_0004.jpg
--------------------------------------------------------------------------------
/BiDP/test/pouring/demo_notrans_withaug_id/temp_0005.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/pouring/demo_notrans_withaug_id/temp_0005.jpg
--------------------------------------------------------------------------------
/BiDP/test/pouring/demo_notrans_withaug_id/temp_0006.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/pouring/demo_notrans_withaug_id/temp_0006.jpg
--------------------------------------------------------------------------------
/BiDP/test/pouring/demo_notrans_withaug_id/temp_0007.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/pouring/demo_notrans_withaug_id/temp_0007.jpg
--------------------------------------------------------------------------------
/BiDP/test/pouring/demo_notrans_withaug_id/temp_0008.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/pouring/demo_notrans_withaug_id/temp_0008.jpg
--------------------------------------------------------------------------------
/BiDP/test/pouring/demo_notrans_withaug_id/temp_0009.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/pouring/demo_notrans_withaug_id/temp_0009.jpg
--------------------------------------------------------------------------------
/BiDP/test/pouring/demo_notrans_withaug_id/temp_0010.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/pouring/demo_notrans_withaug_id/temp_0010.jpg
--------------------------------------------------------------------------------
/BiDP/test/pouring/demo_notrans_withaug_id/temp_0011.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/pouring/demo_notrans_withaug_id/temp_0011.jpg
--------------------------------------------------------------------------------
/BiDP/test/pouring/demo_notrans_withaug_id/temp_0012.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/pouring/demo_notrans_withaug_id/temp_0012.jpg
--------------------------------------------------------------------------------
/BiDP/test/pouring/demo_notrans_withaug_id/temp_0013.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/pouring/demo_notrans_withaug_id/temp_0013.jpg
--------------------------------------------------------------------------------
/BiDP/test/pouring/demo_notrans_withaug_id/temp_0014.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/pouring/demo_notrans_withaug_id/temp_0014.jpg
--------------------------------------------------------------------------------
/BiDP/test/pouring/demo_notrans_withaug_id/temp_0015.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/pouring/demo_notrans_withaug_id/temp_0015.jpg
--------------------------------------------------------------------------------
/BiDP/test/pouring/demo_notrans_withaug_id/temp_0016.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/pouring/demo_notrans_withaug_id/temp_0016.jpg
--------------------------------------------------------------------------------
/BiDP/test/pouring/demo_notrans_withaug_id/temp_0017.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/pouring/demo_notrans_withaug_id/temp_0017.jpg
--------------------------------------------------------------------------------
/BiDP/test/pouring/demo_notrans_withaug_id/temp_0018.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/pouring/demo_notrans_withaug_id/temp_0018.jpg
--------------------------------------------------------------------------------
/BiDP/test/pouring/demo_notrans_withaug_id/temp_0019.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/pouring/demo_notrans_withaug_id/temp_0019.jpg
--------------------------------------------------------------------------------
/BiDP/test/pouring/demo_notrans_withaug_id/temp_0020.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/pouring/demo_notrans_withaug_id/temp_0020.jpg
--------------------------------------------------------------------------------
/BiDP/test/pouring/demo_notrans_withaug_id/temp_0021.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/pouring/demo_notrans_withaug_id/temp_0021.jpg
--------------------------------------------------------------------------------
/BiDP/test/pouring/demo_notrans_withaug_id/temp_0022.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/pouring/demo_notrans_withaug_id/temp_0022.jpg
--------------------------------------------------------------------------------
/BiDP/test/pouring/demo_notrans_withaug_id/temp_0023.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/pouring/demo_notrans_withaug_id/temp_0023.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_noaug_id/BiDP_infer_demo1.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_noaug_id/BiDP_infer_demo1.mp4
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_noaug_id/pred_actions.npy:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_noaug_id/pred_actions.npy
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_noaug_id/temp_0000.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_noaug_id/temp_0000.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_noaug_id/temp_0001.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_noaug_id/temp_0001.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_noaug_id/temp_0002.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_noaug_id/temp_0002.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_noaug_id/temp_0003.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_noaug_id/temp_0003.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_noaug_id/temp_0004.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_noaug_id/temp_0004.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_noaug_id/temp_0005.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_noaug_id/temp_0005.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_noaug_id/temp_0006.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_noaug_id/temp_0006.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_noaug_id/temp_0007.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_noaug_id/temp_0007.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_noaug_id/temp_0008.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_noaug_id/temp_0008.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_noaug_id/temp_0009.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_noaug_id/temp_0009.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_noaug_id/temp_0010.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_noaug_id/temp_0010.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_noaug_id/temp_0011.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_noaug_id/temp_0011.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_noaug_id/temp_0012.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_noaug_id/temp_0012.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_noaug_id/temp_0013.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_noaug_id/temp_0013.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_noaug_id/temp_0014.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_noaug_id/temp_0014.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_noaug_id/temp_0015.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_noaug_id/temp_0015.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_noaug_id/temp_0016.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_noaug_id/temp_0016.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_noaug_id/temp_0017.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_noaug_id/temp_0017.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_noaug_id/temp_0018.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_noaug_id/temp_0018.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_noaug_id/temp_0019.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_noaug_id/temp_0019.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_noaug_id/temp_0020.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_noaug_id/temp_0020.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_noaug_id/temp_0021.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_noaug_id/temp_0021.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_noaug_id/temp_0022.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_noaug_id/temp_0022.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_noaug_id/temp_0023.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_noaug_id/temp_0023.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_noaug_id/temp_0024.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_noaug_id/temp_0024.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_noaug_id/temp_0025.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_noaug_id/temp_0025.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_noaug_id/temp_0026.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_noaug_id/temp_0026.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_noaug_id/temp_0027.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_noaug_id/temp_0027.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_noaug_id/temp_0028.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_noaug_id/temp_0028.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_noaug_id/temp_0029.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_noaug_id/temp_0029.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_noaug_id/temp_0030.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_noaug_id/temp_0030.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_noaug_id/temp_0031.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_noaug_id/temp_0031.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_noaug_id/temp_0032.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_noaug_id/temp_0032.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_noaug_id/temp_0033.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_noaug_id/temp_0033.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_noaug_id/temp_0034.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_noaug_id/temp_0034.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_noaug_id/temp_0035.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_noaug_id/temp_0035.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_noaug_id/temp_0036.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_noaug_id/temp_0036.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_noaug_id/temp_0037.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_noaug_id/temp_0037.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_noaug_id/temp_0038.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_noaug_id/temp_0038.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_noaug_id/temp_0039.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_noaug_id/temp_0039.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_noaug_id/temp_0040.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_noaug_id/temp_0040.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_noaug_id/temp_0041.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_noaug_id/temp_0041.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_noaug_id/temp_0042.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_noaug_id/temp_0042.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_noaug_id/temp_0043.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_noaug_id/temp_0043.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_noaug_id/temp_0044.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_noaug_id/temp_0044.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_noaug_id/temp_0045.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_noaug_id/temp_0045.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_noaug_id/temp_0046.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_noaug_id/temp_0046.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_noaug_id/temp_0047.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_noaug_id/temp_0047.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_noaug_id/temp_0048.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_noaug_id/temp_0048.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_noaug_id/temp_0049.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_noaug_id/temp_0049.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_withaug_id/BiDP_infer_demo1.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_withaug_id/BiDP_infer_demo1.mp4
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_withaug_id/pred_actions.npy:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_withaug_id/pred_actions.npy
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_withaug_id/temp_0000.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_withaug_id/temp_0000.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_withaug_id/temp_0001.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_withaug_id/temp_0001.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_withaug_id/temp_0002.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_withaug_id/temp_0002.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_withaug_id/temp_0003.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_withaug_id/temp_0003.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_withaug_id/temp_0004.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_withaug_id/temp_0004.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_withaug_id/temp_0005.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_withaug_id/temp_0005.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_withaug_id/temp_0006.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_withaug_id/temp_0006.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_withaug_id/temp_0007.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_withaug_id/temp_0007.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_withaug_id/temp_0008.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_withaug_id/temp_0008.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_withaug_id/temp_0009.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_withaug_id/temp_0009.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_withaug_id/temp_0010.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_withaug_id/temp_0010.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_withaug_id/temp_0011.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_withaug_id/temp_0011.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_withaug_id/temp_0012.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_withaug_id/temp_0012.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_withaug_id/temp_0013.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_withaug_id/temp_0013.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_withaug_id/temp_0014.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_withaug_id/temp_0014.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_withaug_id/temp_0015.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_withaug_id/temp_0015.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_withaug_id/temp_0016.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_withaug_id/temp_0016.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_withaug_id/temp_0017.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_withaug_id/temp_0017.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_withaug_id/temp_0018.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_withaug_id/temp_0018.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_withaug_id/temp_0019.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_withaug_id/temp_0019.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_withaug_id/temp_0020.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_withaug_id/temp_0020.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_withaug_id/temp_0021.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_withaug_id/temp_0021.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_withaug_id/temp_0022.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_withaug_id/temp_0022.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_withaug_id/temp_0023.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_withaug_id/temp_0023.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_withaug_id/temp_0024.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_withaug_id/temp_0024.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_withaug_id/temp_0025.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_withaug_id/temp_0025.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_withaug_id/temp_0026.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_withaug_id/temp_0026.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_withaug_id/temp_0027.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_withaug_id/temp_0027.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_withaug_id/temp_0028.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_withaug_id/temp_0028.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_withaug_id/temp_0029.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_withaug_id/temp_0029.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_withaug_id/temp_0030.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_withaug_id/temp_0030.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_withaug_id/temp_0031.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_withaug_id/temp_0031.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_withaug_id/temp_0032.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_withaug_id/temp_0032.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_withaug_id/temp_0033.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_withaug_id/temp_0033.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_withaug_id/temp_0034.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_withaug_id/temp_0034.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_withaug_id/temp_0035.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_withaug_id/temp_0035.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_withaug_id/temp_0036.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_withaug_id/temp_0036.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_withaug_id/temp_0037.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_withaug_id/temp_0037.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_withaug_id/temp_0038.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_withaug_id/temp_0038.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_withaug_id/temp_0039.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_withaug_id/temp_0039.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_withaug_id/temp_0040.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_withaug_id/temp_0040.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_withaug_id/temp_0041.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_withaug_id/temp_0041.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_withaug_id/temp_0042.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_withaug_id/temp_0042.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_withaug_id/temp_0043.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_withaug_id/temp_0043.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_withaug_id/temp_0044.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_withaug_id/temp_0044.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_withaug_id/temp_0045.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_withaug_id/temp_0045.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_withaug_id/temp_0046.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_withaug_id/temp_0046.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_withaug_id/temp_0047.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_withaug_id/temp_0047.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_withaug_id/temp_0048.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_withaug_id/temp_0048.jpg
--------------------------------------------------------------------------------
/BiDP/test/uncover/demo_notrans_withaug_id/temp_0049.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/uncover/demo_notrans_withaug_id/temp_0049.jpg
--------------------------------------------------------------------------------
/BiDP/test/unscrew/demo_notrans_noaug_id/BiDP_infer_demo1.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/unscrew/demo_notrans_noaug_id/BiDP_infer_demo1.mp4
--------------------------------------------------------------------------------
/BiDP/test/unscrew/demo_notrans_noaug_id/pred_actions.npy:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/unscrew/demo_notrans_noaug_id/pred_actions.npy
--------------------------------------------------------------------------------
/BiDP/test/unscrew/demo_notrans_noaug_id/temp_0000.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/unscrew/demo_notrans_noaug_id/temp_0000.jpg
--------------------------------------------------------------------------------
/BiDP/test/unscrew/demo_notrans_noaug_id/temp_0001.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/unscrew/demo_notrans_noaug_id/temp_0001.jpg
--------------------------------------------------------------------------------
/BiDP/test/unscrew/demo_notrans_noaug_id/temp_0002.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/unscrew/demo_notrans_noaug_id/temp_0002.jpg
--------------------------------------------------------------------------------
/BiDP/test/unscrew/demo_notrans_noaug_id/temp_0003.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/unscrew/demo_notrans_noaug_id/temp_0003.jpg
--------------------------------------------------------------------------------
/BiDP/test/unscrew/demo_notrans_noaug_id/temp_0004.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/unscrew/demo_notrans_noaug_id/temp_0004.jpg
--------------------------------------------------------------------------------
/BiDP/test/unscrew/demo_notrans_noaug_id/temp_0005.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/unscrew/demo_notrans_noaug_id/temp_0005.jpg
--------------------------------------------------------------------------------
/BiDP/test/unscrew/demo_notrans_noaug_id/temp_0006.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/unscrew/demo_notrans_noaug_id/temp_0006.jpg
--------------------------------------------------------------------------------
/BiDP/test/unscrew/demo_notrans_noaug_id/temp_0007.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/unscrew/demo_notrans_noaug_id/temp_0007.jpg
--------------------------------------------------------------------------------
/BiDP/test/unscrew/demo_notrans_noaug_id/temp_0008.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/unscrew/demo_notrans_noaug_id/temp_0008.jpg
--------------------------------------------------------------------------------
/BiDP/test/unscrew/demo_notrans_noaug_id/temp_0009.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/unscrew/demo_notrans_noaug_id/temp_0009.jpg
--------------------------------------------------------------------------------
/BiDP/test/unscrew/demo_notrans_noaug_id/temp_0010.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/unscrew/demo_notrans_noaug_id/temp_0010.jpg
--------------------------------------------------------------------------------
/BiDP/test/unscrew/demo_notrans_noaug_id/temp_0011.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/unscrew/demo_notrans_noaug_id/temp_0011.jpg
--------------------------------------------------------------------------------
/BiDP/test/unscrew/demo_notrans_noaug_id/temp_0012.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/unscrew/demo_notrans_noaug_id/temp_0012.jpg
--------------------------------------------------------------------------------
/BiDP/test/unscrew/demo_notrans_noaug_id/temp_0013.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/unscrew/demo_notrans_noaug_id/temp_0013.jpg
--------------------------------------------------------------------------------
/BiDP/test/unscrew/demo_notrans_noaug_id/temp_0014.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/unscrew/demo_notrans_noaug_id/temp_0014.jpg
--------------------------------------------------------------------------------
/BiDP/test/unscrew/demo_notrans_noaug_id/temp_0015.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/unscrew/demo_notrans_noaug_id/temp_0015.jpg
--------------------------------------------------------------------------------
/BiDP/test/unscrew/demo_notrans_noaug_id/temp_0016.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/unscrew/demo_notrans_noaug_id/temp_0016.jpg
--------------------------------------------------------------------------------
/BiDP/test/unscrew/demo_notrans_noaug_id/temp_0017.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/unscrew/demo_notrans_noaug_id/temp_0017.jpg
--------------------------------------------------------------------------------
/BiDP/test/unscrew/demo_notrans_noaug_id/temp_0018.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/unscrew/demo_notrans_noaug_id/temp_0018.jpg
--------------------------------------------------------------------------------
/BiDP/test/unscrew/demo_notrans_noaug_id/temp_0019.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/unscrew/demo_notrans_noaug_id/temp_0019.jpg
--------------------------------------------------------------------------------
/BiDP/test/unscrew/demo_notrans_noaug_id/temp_0020.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/unscrew/demo_notrans_noaug_id/temp_0020.jpg
--------------------------------------------------------------------------------
/BiDP/test/unscrew/demo_notrans_noaug_id/temp_0021.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/unscrew/demo_notrans_noaug_id/temp_0021.jpg
--------------------------------------------------------------------------------
/BiDP/test/unscrew/demo_notrans_noaug_id/temp_0022.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/unscrew/demo_notrans_noaug_id/temp_0022.jpg
--------------------------------------------------------------------------------
/BiDP/test/unscrew/demo_notrans_noaug_id/temp_0023.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/unscrew/demo_notrans_noaug_id/temp_0023.jpg
--------------------------------------------------------------------------------
/BiDP/test/unscrew/demo_notrans_noaug_id/temp_0024.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/unscrew/demo_notrans_noaug_id/temp_0024.jpg
--------------------------------------------------------------------------------
/BiDP/test/unscrew/demo_notrans_noaug_id/temp_0025.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/unscrew/demo_notrans_noaug_id/temp_0025.jpg
--------------------------------------------------------------------------------
/BiDP/test/unscrew/demo_notrans_withaug_id/BiDP_infer_demo1.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/unscrew/demo_notrans_withaug_id/BiDP_infer_demo1.mp4
--------------------------------------------------------------------------------
/BiDP/test/unscrew/demo_notrans_withaug_id/pred_actions.npy:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/unscrew/demo_notrans_withaug_id/pred_actions.npy
--------------------------------------------------------------------------------
/BiDP/test/unscrew/demo_notrans_withaug_id/temp_0000.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/unscrew/demo_notrans_withaug_id/temp_0000.jpg
--------------------------------------------------------------------------------
/BiDP/test/unscrew/demo_notrans_withaug_id/temp_0001.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/unscrew/demo_notrans_withaug_id/temp_0001.jpg
--------------------------------------------------------------------------------
/BiDP/test/unscrew/demo_notrans_withaug_id/temp_0002.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/unscrew/demo_notrans_withaug_id/temp_0002.jpg
--------------------------------------------------------------------------------
/BiDP/test/unscrew/demo_notrans_withaug_id/temp_0003.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/unscrew/demo_notrans_withaug_id/temp_0003.jpg
--------------------------------------------------------------------------------
/BiDP/test/unscrew/demo_notrans_withaug_id/temp_0004.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/unscrew/demo_notrans_withaug_id/temp_0004.jpg
--------------------------------------------------------------------------------
/BiDP/test/unscrew/demo_notrans_withaug_id/temp_0005.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/unscrew/demo_notrans_withaug_id/temp_0005.jpg
--------------------------------------------------------------------------------
/BiDP/test/unscrew/demo_notrans_withaug_id/temp_0006.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/unscrew/demo_notrans_withaug_id/temp_0006.jpg
--------------------------------------------------------------------------------
/BiDP/test/unscrew/demo_notrans_withaug_id/temp_0007.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/unscrew/demo_notrans_withaug_id/temp_0007.jpg
--------------------------------------------------------------------------------
/BiDP/test/unscrew/demo_notrans_withaug_id/temp_0008.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/unscrew/demo_notrans_withaug_id/temp_0008.jpg
--------------------------------------------------------------------------------
/BiDP/test/unscrew/demo_notrans_withaug_id/temp_0009.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/unscrew/demo_notrans_withaug_id/temp_0009.jpg
--------------------------------------------------------------------------------
/BiDP/test/unscrew/demo_notrans_withaug_id/temp_0010.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/unscrew/demo_notrans_withaug_id/temp_0010.jpg
--------------------------------------------------------------------------------
/BiDP/test/unscrew/demo_notrans_withaug_id/temp_0011.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/unscrew/demo_notrans_withaug_id/temp_0011.jpg
--------------------------------------------------------------------------------
/BiDP/test/unscrew/demo_notrans_withaug_id/temp_0012.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/unscrew/demo_notrans_withaug_id/temp_0012.jpg
--------------------------------------------------------------------------------
/BiDP/test/unscrew/demo_notrans_withaug_id/temp_0013.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/unscrew/demo_notrans_withaug_id/temp_0013.jpg
--------------------------------------------------------------------------------
/BiDP/test/unscrew/demo_notrans_withaug_id/temp_0014.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/unscrew/demo_notrans_withaug_id/temp_0014.jpg
--------------------------------------------------------------------------------
/BiDP/test/unscrew/demo_notrans_withaug_id/temp_0015.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/unscrew/demo_notrans_withaug_id/temp_0015.jpg
--------------------------------------------------------------------------------
/BiDP/test/unscrew/demo_notrans_withaug_id/temp_0016.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/unscrew/demo_notrans_withaug_id/temp_0016.jpg
--------------------------------------------------------------------------------
/BiDP/test/unscrew/demo_notrans_withaug_id/temp_0017.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/unscrew/demo_notrans_withaug_id/temp_0017.jpg
--------------------------------------------------------------------------------
/BiDP/test/unscrew/demo_notrans_withaug_id/temp_0018.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/unscrew/demo_notrans_withaug_id/temp_0018.jpg
--------------------------------------------------------------------------------
/BiDP/test/unscrew/demo_notrans_withaug_id/temp_0019.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/unscrew/demo_notrans_withaug_id/temp_0019.jpg
--------------------------------------------------------------------------------
/BiDP/test/unscrew/demo_notrans_withaug_id/temp_0020.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/unscrew/demo_notrans_withaug_id/temp_0020.jpg
--------------------------------------------------------------------------------
/BiDP/test/unscrew/demo_notrans_withaug_id/temp_0021.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/unscrew/demo_notrans_withaug_id/temp_0021.jpg
--------------------------------------------------------------------------------
/BiDP/test/unscrew/demo_notrans_withaug_id/temp_0022.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/unscrew/demo_notrans_withaug_id/temp_0022.jpg
--------------------------------------------------------------------------------
/BiDP/test/unscrew/demo_notrans_withaug_id/temp_0023.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/unscrew/demo_notrans_withaug_id/temp_0023.jpg
--------------------------------------------------------------------------------
/BiDP/test/unscrew/demo_notrans_withaug_id/temp_0024.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/unscrew/demo_notrans_withaug_id/temp_0024.jpg
--------------------------------------------------------------------------------
/BiDP/test/unscrew/demo_notrans_withaug_id/temp_0025.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hnuzhy/YOTO/3fe6edc9a4bc843a54ae53210704a08b962aa8ad/BiDP/test/unscrew/demo_notrans_withaug_id/temp_0025.jpg
--------------------------------------------------------------------------------
/BiDP/train.py:
--------------------------------------------------------------------------------
1 | import os
2 | import sys
3 | import copy
4 | import hydra
5 | import torch
6 | import wandb
7 | import omegaconf
8 | import numpy as np
9 | import getpass as gt
10 | from tqdm import tqdm
11 | from glob import glob
12 | from omegaconf import OmegaConf
13 |
14 | from policies.utils.media import save_video
15 | from policies.utils.misc import get_dataset, get_agent
16 |
17 |
18 | @hydra.main(config_path="policies/configs", config_name="basic")
19 | def main(cfg):
20 | assert cfg.mode == "train"
21 | np.random.seed(cfg.seed)
22 |
23 | # initialize parameters
24 | batch_size = cfg.training.batch_size
25 |
26 | # setup logging
27 | if cfg.use_wandb:
28 | wandb_config = omegaconf.OmegaConf.to_container(
29 | cfg, resolve=True, throw_on_missing=False
30 | )
31 | wandb.init(
32 | entity=cfg.wandb.entity,
33 | project=cfg.wandb.project,
34 | tags=["train"],
35 | name=cfg.prefix,
36 | settings=wandb.Settings(code_dir="."),
37 | config=wandb_config,
38 | )
39 | log_dir = os.getcwd()
40 |
41 | # init dataloader
42 | train_dataset = get_dataset(cfg, "train")
43 | num_workers = cfg.data.dataset.num_workers
44 | train_loader = torch.utils.data.DataLoader(
45 | train_dataset,
46 | batch_size=batch_size,
47 | num_workers=num_workers,
48 | shuffle=True,
49 | drop_last=True,
50 | pin_memory=True,
51 | )
52 | cfg.data.dataset.num_training_steps = (
53 | cfg.training.num_epochs * len(train_dataset) // batch_size
54 | )
55 |
56 | # init agent
57 | agent = get_agent(cfg.agent.agent_name)(cfg)
58 | if cfg.training.ckpt is not None:
59 | agent.load_snapshot(cfg.training.ckpt)
60 | start_epoch_ix = int(cfg.training.ckpt.split("/")[-1].split(".")[0][4:])
61 | else:
62 | start_epoch_ix = 0
63 |
64 | # train loop
65 | global_step = 0
66 | for epoch_ix in tqdm(range(start_epoch_ix, cfg.training.num_epochs)):
67 | batch_ix = 0
68 | for batch in tqdm(train_loader, leave=False, desc="Batches"):
69 | train_metrics = agent.update(
70 | batch, vis=epoch_ix % cfg.training.vis_interval == 0 and batch_ix == 0
71 | )
72 | if cfg.use_wandb:
73 | wandb.log(
74 | {"train/" + k: v for k, v in train_metrics.items()},
75 | step=global_step,
76 | )
77 | wandb.log({"epoch": epoch_ix}, step=global_step)
78 | del train_metrics
79 | global_step += 1
80 | batch_ix += 1
81 |
82 | if (
83 | epoch_ix % cfg.training.save_interval == 0
84 | or epoch_ix == cfg.training.num_epochs - 1
85 | ):
86 | save_path = os.path.join(log_dir, f"ckpt{epoch_ix:05d}.pth")
87 | num_ckpt_to_keep = 2 # 10
88 | if len(list(glob(os.path.join(log_dir, "ckpt*.pth")))) > num_ckpt_to_keep:
89 | # remove old checkpoints
90 | for fn in list(sorted(glob(os.path.join(log_dir, "ckpt*.pth"))))[
91 | :-num_ckpt_to_keep
92 | ]:
93 | os.remove(fn)
94 | agent.save_snapshot(save_path)
95 |
96 |
97 | if __name__ == "__main__":
98 | main()
99 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # YOTO
2 | Code for my paper "*You Only Teach Once: Learn One-Shot Bimanual Robotic Manipulation from Video Demonstrations*" [[arXiv](https://arxiv.org/abs/2501.14208)] / [[Project](https://hnuzhy.github.io/projects/YOTO/)] / [[Dataset](https://huggingface.co/HoyerChou/YOTO)]
3 |
4 | - :white_check_mark: [**2025-04-11**] Our paper has been accepted by conference **RSS 2025** ([Robotics: Science and Systems](https://roboticsconference.org/)).
5 | - :white_check_mark: [**2025-03-10**] We have uploaded our preprocessed datasets and pretrained models in [huggingface/YOTO](https://huggingface.co/HoyerChou/YOTO). Please refer [AugDemos](https://github.com/hnuzhy/YOTO/tree/main/AugDemos) and [BiDP](https://github.com/hnuzhy/YOTO/tree/main/BiDP) under this repo for the usage of them.
6 |
7 | ***
8 |
9 | ## ● Abstract
10 |
11 | > Bimanual robotic manipulation is a long-standing challenge of embodied intelligence due to its characteristics of dual-arm spatial-temporal coordination and high-dimensional action spaces. Previous studies rely on pre-defined action taxonomies or direct teleoperation to alleviate or circumvent these issues, often making them lack simplicity, versatility and scalability. Differently, we believe that the most effective and efficient way for teaching bimanual manipulation is learning from human demonstrated videos, where rich features such as spatial-temporal positions, dynamic postures, interaction states and dexterous transitions are available almost for free. In this work, we propose the YOTO (You Only Teach Once), which can extract and then inject patterns of bimanual actions from as few as a single binocular observation of hand movements, and teach dual robot arms various complex tasks. Furthermore, based on keyframes-based motion trajectories, we devise a subtle solution for rapidly generating training demonstrations with diverse variations of manipulated objects and their locations. These data can then be used to learn a customized bimanual diffusion policy (BiDP) across diverse scenes. In experiments, YOTO achieves impressive performance in mimicking 5 intricate long-horizon bimanual tasks, possesses strong generalization under different visual and spatial conditions, and outperforms existing visuomotor imitation learning methods in accuracy and efficiency.
12 |
13 | ## ● Inference Visualization
14 |
15 | * Below, we present some prediction results of trained models with / without augmentation for comparison.
16 |
17 |
18 |
19 | Task |
20 | BiDP trained without augmentation |
21 | BiDP trained with augmentation |
22 |
23 |
24 | Drawer |
25 |  |
26 |  |
27 |
28 |
29 | Pouring |
30 |  |
31 |  |
32 |
33 |
34 | Unscrew |
35 |  |
36 |  |
37 |
38 |
39 | Uncover |
40 |  |
41 |  |
42 |
43 |
44 | Openbox |
45 |  |
46 |  |
47 |
48 |
49 |
50 | * *It can be clearly seen that the augmented data can make the model prediction error significantly smaller.* More videos and illustrations can be found in our [homepage](https://hnuzhy.github.io/projects/YOTO/).
51 | * Specifically, we use $$\color{green}green$$ point clouds to represent the platform (which does not appear in the observation input) for easy visualization, and $$\color{magenta}magenta$$ to represent the point clouds of the manipulated objects. The $$\color{blue}blue$$ and $$\color{red}red$$ colored 6-DoF keyposes represent the end-effector actions of the left and right arms, respectively. The far left and far right keyposes are initial robot states. The ground-truth 6-DoF keyposes have larger size than those predicted actions.
52 |
53 |
54 | ## ● Acknowledgement
55 | Our `hand motion extraction and injection` process relies on a variety of vison algorithms, including Hand Detection and 3D Mesh Reconstruction [WiLoR](https://github.com/rolpotamias/WiLoR), Large Vision-Language Model [Florence2](https://huggingface.co/collections/microsoft/florence-6669f44df0d87d9c3bfb76de), Segment Anything Model 2 [SAM2](https://github.com/facebookresearch/segment-anything-2) and Binocular Stereo Matching [IGEV](https://github.com/gangweiX/IGEV). While, the codebase of our imitation learning algorithm `BiDP` is partly based on [ACT](https://github.com/tonyzhaozh/act), [Diffusion Policy](https://github.com/real-stanford/diffusion_policy), [3D Diffusion Policy](https://github.com/YanjieZe/3D-Diffusion-Policy) and [EquiBot](https://github.com/yjy0625/equibot). We thank them for their open source efforts and contributions.
56 |
57 | ## ● Citation
58 | If you use our code or models in your research, please cite with:
59 | ```bash
60 | @article{zhou2025you,
61 | title={You Only Teach Once: Learn One-Shot Bimanual Robotic Manipulation from Video Demonstrations},
62 | author={Zhou, Huayi and Wang, Ruixiang and Tai, Yunxin and Deng, Yueci and Liu, Guiliang and Jia, Kui},
63 | journal={arXiv preprint arXiv:2501.14208},
64 | year={2025}
65 | }
66 | ```
67 |
--------------------------------------------------------------------------------