Repository navigation
feat: enable to use multiple rgb encoders per camera in diffusion policy - #484
Conversation
38c883b to
9633d87
Compare
9633d87 to
ac1cd33
Compare
|
@alexander-soare |
alexander-soare
left a comment
There was a problem hiding this comment.
Thank you so much for this PR! I'm a bag fan of the attention to detail you've put into testing your changes and communicating that in the main PR message.
I've replied some nits around naming and commenting.
Co-authored-by: Alexander Soare <alexander.soare159@gmail.com>
|
@alexander-soare |
alexander-soare
left a comment
There was a problem hiding this comment.
Approved! Waiting for another HF team member to do a quick pass then we'll merge.
|
@HiroIshida Thanks a lot for this PR! The quality check Is not passing. Otherwise, LGTM. I will approve after the issue is fixed:) |
|
@danaaubakirova |
…icy (huggingface#484) Co-authored-by: Alexander Soare <alexander.soare159@gmail.com>
…icy (#484) Co-authored-by: Alexander Soare <alexander.soare159@gmail.com>
* feat: enable to use multiple rgb encoders per camera in diffusion policy (huggingface#484) Co-authored-by: Alexander Soare <alexander.soare159@gmail.com> * Fix config file (huggingface#495) * fix: broken images and a few minor typos in README (huggingface#499) Signed-off-by: ivelin <ivelin117@gmail.com> * Add support for Windows (huggingface#494) * bug causes error uploading to huggingface, unicode issue on windows. (huggingface#450) * Add distinction between two unallowed cases in name check "eval_" (huggingface#489) * Rename deprecated argument (temporal_ensemble_momentum) (huggingface#490) * Dataset v2.0 (huggingface#461) Co-authored-by: Remi <remi.cadene@huggingface.co> * Refactor OpenX (huggingface#505) * Fix missing local_files_only in record/replay (huggingface#540) Co-authored-by: Simon Alibert <alibert.sim@gmail.com> * Control simulated robot with real leader (huggingface#514) Co-authored-by: Remi <remi.cadene@huggingface.co> * Update 7_get_started_with_real_robot.md (huggingface#559) * LerobotDataset pushable to HF from any folder (huggingface#563) * Fix example 6 (huggingface#572) * fixing typo from 'teloperation' to 'teleoperation' (huggingface#566) * [vizualizer] for LeRobodDataset V2 (huggingface#576) * Fix broken `create_lerobot_dataset_card` (huggingface#590) * feat(act): support training end of episode token to ACT model * changes * feat(arx): add arx arm (#2) * feat(arx): support arx arm * changes * changes * changes * changes * pass pipes explicitly * changes * us ndarray over a pipe * changes * changes * replay basically works * patch arx sdk * changes * support cameras in arx5 * rename to arx5 * kind of works * changes * changes * changes * various changes * changes * revert a few changes * changes * changes * changes * changes * changes * changes * changes * changes * changes * remove TODO * allow multiple tasks --------- Signed-off-by: ivelin <ivelin117@gmail.com> Co-authored-by: Hirokazu Ishida <38597814+HiroIshida@users.noreply.github.com> Co-authored-by: Alexander Soare <alexander.soare159@gmail.com> Co-authored-by: Arsen Ohanyan <arsenohanyan@gmail.com> Co-authored-by: Ivelin Ivanov <ivelin117@gmail.com> Co-authored-by: Daniel Ritchie <daniel@brainwavecollective.ai> Co-authored-by: resolver101757 <kelster101757@hotmail.com> Co-authored-by: Jannik Grothusen <56967823+J4nn1K@users.noreply.github.com> Co-authored-by: KasparSLT <133706781+KasparSLT@users.noreply.github.com> Co-authored-by: Simon Alibert <75076266+aliberts@users.noreply.github.com> Co-authored-by: Remi <remi.cadene@huggingface.co> Co-authored-by: Michel Aractingi <michel.aractingi@huggingface.co> Co-authored-by: Simon Alibert <alibert.sim@gmail.com> Co-authored-by: berjaoui <berjaoui@gmail.com> Co-authored-by: Claudio Coppola <Claudiocoppola90@gmail.com> Co-authored-by: s1lent4gnt <kmeftah.khalil@gmail.com> Co-authored-by: Mishig <dmishig@gmail.com> Co-authored-by: Eugene Mironov <helper2424@gmail.com>
* feat: enable to use multiple rgb encoders per camera in diffusion policy (huggingface#484) Co-authored-by: Alexander Soare <alexander.soare159@gmail.com> * Fix config file (huggingface#495) * fix: broken images and a few minor typos in README (huggingface#499) Signed-off-by: ivelin <ivelin117@gmail.com> * Add support for Windows (huggingface#494) * bug causes error uploading to huggingface, unicode issue on windows. (huggingface#450) * Add distinction between two unallowed cases in name check "eval_" (huggingface#489) * Rename deprecated argument (temporal_ensemble_momentum) (huggingface#490) * Dataset v2.0 (huggingface#461) Co-authored-by: Remi <remi.cadene@huggingface.co> * Refactor OpenX (huggingface#505) * Fix missing local_files_only in record/replay (huggingface#540) Co-authored-by: Simon Alibert <alibert.sim@gmail.com> * Control simulated robot with real leader (huggingface#514) Co-authored-by: Remi <remi.cadene@huggingface.co> * Update 7_get_started_with_real_robot.md (huggingface#559) * LerobotDataset pushable to HF from any folder (huggingface#563) * Fix example 6 (huggingface#572) * fixing typo from 'teloperation' to 'teleoperation' (huggingface#566) * [vizualizer] for LeRobodDataset V2 (huggingface#576) * Fix broken `create_lerobot_dataset_card` (huggingface#590) * Update README.md (huggingface#612) * Fix Quality workflow (huggingface#622) * fix(docs): typos in benchmark readme.md (huggingface#614) Co-authored-by: Simon Alibert <75076266+aliberts@users.noreply.github.com> * fix(visualise): use correct language description for each episode id (huggingface#604) Co-authored-by: Simon Alibert <75076266+aliberts@users.noreply.github.com> * typo fix: batch_convert_dataset_v1_to_v2.py (huggingface#615) Co-authored-by: Simon Alibert <75076266+aliberts@users.noreply.github.com> * [viz] Fixes & updates to html visualizer (huggingface#617) * fixes to SO-100 readme (huggingface#600) Co-authored-by: Philip Fung <no@one> Co-authored-by: Simon Alibert <75076266+aliberts@users.noreply.github.com> --------- Signed-off-by: ivelin <ivelin117@gmail.com> Co-authored-by: Hirokazu Ishida <38597814+HiroIshida@users.noreply.github.com> Co-authored-by: Alexander Soare <alexander.soare159@gmail.com> Co-authored-by: Arsen Ohanyan <arsenohanyan@gmail.com> Co-authored-by: Ivelin Ivanov <ivelin117@gmail.com> Co-authored-by: Daniel Ritchie <daniel@brainwavecollective.ai> Co-authored-by: resolver101757 <kelster101757@hotmail.com> Co-authored-by: Jannik Grothusen <56967823+J4nn1K@users.noreply.github.com> Co-authored-by: KasparSLT <133706781+KasparSLT@users.noreply.github.com> Co-authored-by: Simon Alibert <75076266+aliberts@users.noreply.github.com> Co-authored-by: Remi <remi.cadene@huggingface.co> Co-authored-by: Michel Aractingi <michel.aractingi@huggingface.co> Co-authored-by: Simon Alibert <alibert.sim@gmail.com> Co-authored-by: berjaoui <berjaoui@gmail.com> Co-authored-by: Claudio Coppola <Claudiocoppola90@gmail.com> Co-authored-by: s1lent4gnt <kmeftah.khalil@gmail.com> Co-authored-by: Mishig <dmishig@gmail.com> Co-authored-by: Eugene Mironov <helper2424@gmail.com> Co-authored-by: CharlesCNorton <135471798+CharlesCNorton@users.noreply.github.com> Co-authored-by: Philip Fung <1054593+philfung@users.noreply.github.com> Co-authored-by: Philip Fung <no@one>
…icy (huggingface#484) Co-authored-by: Alexander Soare <alexander.soare159@gmail.com>
[Fix] Move back to manual calibration (#488) feat: enable to use multiple rgb encoders per camera in diffusion policy (#484) Co-authored-by: Alexander Soare <alexander.soare159@gmail.com> Fix config file (#495) fix: broken images and a few minor typos in README (#499) Signed-off-by: ivelin <ivelin117@gmail.com> Add support for Windows (#494) bug causes error uploading to huggingface, unicode issue on windows. (#450) Add distinction between two unallowed cases in name check "eval_" (#489) WIP Fix autocalib moss (#486) [Fix] Move back to manual calibration (#488) feat: enable to use multiple rgb encoders per camera in diffusion policy (#484) Co-authored-by: Alexander Soare <alexander.soare159@gmail.com> Fix config file (#495) fix: broken images and a few minor typos in README (#499) Signed-off-by: ivelin <ivelin117@gmail.com> Add support for Windows (#494) bug causes error uploading to huggingface, unicode issue on windows. (#450) Add distinction between two unallowed cases in name check "eval_" (#489) Rename deprecated argument (temporal_ensemble_momentum) (#490) Dataset v2.0 (#461) Co-authored-by: Remi <remi.cadene@huggingface.co> Refactor OpenX (#505) Fix missing local_files_only in record/replay (#540) Co-authored-by: Simon Alibert <alibert.sim@gmail.com> Control simulated robot with real leader (#514) Co-authored-by: Remi <remi.cadene@huggingface.co> Update 7_get_started_with_real_robot.md (#559) LerobotDataset pushable to HF from any folder (#563) Fix example 6 (#572) fixing typo from 'teloperation' to 'teleoperation' (#566) [vizualizer] for LeRobodDataset V2 (#576) Fix broken `create_lerobot_dataset_card` (#590) Update README.md (#612) Add draccus, create MainConfig WIP refactor train.py and ACT Add policies training presets Update diffusion policy Add pusht and xarm env configs Update tdmpc Update vqbet Fix poetry relax Add feature types to envs Add EvalPipelineConfig, parse features from envs Add custom parser Update pretrained loading mechanisms Add dependency fixes & lock update Fix pretrained_path Refactor envs, remove RealEnv Fix typo Enable end-to-end tests Fix Makefile Log eval config Fix end-to-end tests Fix Quality workflow (#622) Remove amp & add resume test Speed-up tests Fix poetry relax Remove config yaml for robot devices (#594) Co-authored-by: Simon Alibert <simon.alibert@huggingface.co> fix(docs): typos in benchmark readme.md (#614) Co-authored-by: Simon Alibert <75076266+aliberts@users.noreply.github.com> fix(visualise): use correct language description for each episode id (#604) Co-authored-by: Simon Alibert <75076266+aliberts@users.noreply.github.com> typo fix: batch_convert_dataset_v1_to_v2.py (#615) Co-authored-by: Simon Alibert <75076266+aliberts@users.noreply.github.com> [viz] Fixes & updates to html visualizer (#617) Fix logger Remove hydra-core Add aggregate_stats Add estimate_num_samples for images, Add test image Remove NoneSchedulerConfig Add push_pretrained Remove eval.episode_length Fix wandb_video Fix typo Add features back into policy configs (#643) fixes to SO-100 readme (#600) Co-authored-by: Philip Fung <no@one> Co-authored-by: Simon Alibert <75076266+aliberts@users.noreply.github.com> Fix for the issue #638 (#639) Fix env_to_policy_features call Fix wandb init remove omegaconf Add branch arg Move deprecated Move training config Remove pathable_args Implement custom HubMixin Fixes Implement PreTrainedPolicy base class Add HubMixin to TrainPipelineConfig Udpate example 2 & 3 Update push_pretrained Bump`rerun-sdk` dependency to `0.21.0` (#618) Co-authored-by: Simon Alibert <75076266+aliberts@users.noreply.github.com> Fix config_class Fix from_pretrained kwargs Remove policy_protocol Camelize PretrainedConfig Additional fix while retraining policies (#629) Co-authored-by: Simon Alibert <simon.alibert@huggingface.co> Actually reactivate tdmpc online test Update example 4 Remove advanced example 1 Remove example 5 Move example 6 to advanced Use HubMixin.save_pretrained Enable config_path to be a repo_id Dry has_method Update example 4 Update README Cleanup pyproject.toml Update eval docstring Update README Clean example 4 Update README Make 'last' checkpoint symlink relative Fix cluster image (#653) Simplify example 4 fix stats per episodes and aggregate stats and casting to tensor
…icy (#484) Co-authored-by: Alexander Soare <alexander.soare159@gmail.com>
…icy (huggingface#484) Co-authored-by: Alexander Soare <alexander.soare159@gmail.com>
…icy (huggingface#484) Co-authored-by: Alexander Soare <alexander.soare159@gmail.com>
What this does
This PR enables to configure multiple rgb encoders for each cameras, which is done in the original diffusion policy paper. Not for sure in general setting, but at least in my task, this seems to increase the success rate of deployment slightly.
Current diffusion policy shared the single RGB encoder for all cameras.
This fixes #483
How it was tested
a) regression test
Prepare the following script and check that the behavior of the policy does not change before and the after the PR by comparing the hash value of the output.
Before this PR
After this PR
You can see the match of hash values.
b) validity check
The above test include the case (see case3 ), which is run only when the
DiffusionConfighasrgb_encoder_per_cameraattribute, so activate only after this PR. And as you can see, there is no error occured and output the action.c) tested on real robot
I trained the diffusion policy with the
rgb_encoder_per_camera=True, and checked that policy worked well. I cannot say concrete stuff but the performance is slightly better than the original.How to checkout & try? (for the reviewer)
Try the above script and please check the hash value before and after this PR. Before the run, you need to save the following yaml file as
'stats-diffusion.yaml.