[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-xbpeng--MimicKit":3,"tool-xbpeng--MimicKit":65},[4,18,32,41,49,57],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4292,"Deep-Live-Cam","hacksider\u002FDeep-Live-Cam","Deep-Live-Cam 是一款专注于实时换脸与视频生成的开源工具，用户仅需一张静态照片，即可通过“一键操作”实现摄像头画面的即时变脸或制作深度伪造视频。它有效解决了传统换脸技术流程繁琐、对硬件配置要求极高以及难以实时预览的痛点，让高质量的数字内容创作变得触手可及。\n\n这款工具不仅适合开发者和技术研究人员探索算法边界，更因其极简的操作逻辑（仅需三步：选脸、选摄像头、启动），广泛适用于普通用户、内容创作者、设计师及直播主播。无论是为了动画角色定制、服装展示模特替换，还是制作趣味短视频和直播互动，Deep-Live-Cam 都能提供流畅的支持。\n\n其核心技术亮点在于强大的实时处理能力，支持口型遮罩（Mouth Mask）以保留使用者原始的嘴部动作，确保表情自然精准；同时具备“人脸映射”功能，可同时对画面中的多个主体应用不同面孔。此外，项目内置了严格的内容安全过滤机制，自动拦截涉及裸露、暴力等不当素材，并倡导用户在获得授权及明确标注的前提下合规使用，体现了技术发展与伦理责任的平衡。",88924,3,"2026-04-06T03:28:53",[13,14,15,16],"开发框架","图像","Agent","视频","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":24,"last_commit_at":25,"category_tags":26,"status":17},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",85267,2,"2026-04-18T11:00:28",[14,27,16,28,15,29,30,13,31],"数据工具","插件","其他","语言模型","音频",{"id":33,"name":34,"github_repo":35,"description_zh":36,"stars":37,"difficulty_score":38,"last_commit_at":39,"category_tags":40,"status":17},5784,"funNLP","fighting41love\u002FfunNLP","funNLP 是一个专为中文自然语言处理（NLP）打造的超级资源库，被誉为\"NLP 民工的乐园”。它并非单一的软件工具，而是一个汇集了海量开源项目、数据集、预训练模型和实用代码的综合性平台。\n\n面对中文 NLP 领域资源分散、入门门槛高以及特定场景数据匮乏的痛点，funNLP 提供了“一站式”解决方案。这里不仅涵盖了分词、命名实体识别、情感分析、文本摘要等基础任务的标准工具，还独特地收录了丰富的垂直领域资源，如法律、医疗、金融行业的专用词库与数据集，甚至包含古诗词生成、歌词创作等趣味应用。其核心亮点在于极高的全面性与实用性，从基础的字典词典到前沿的 BERT、GPT-2 模型代码，再到高质量的标注数据和竞赛方案，应有尽有。\n\n无论是刚刚踏入 NLP 领域的学生、需要快速验证想法的算法工程师，还是从事人工智能研究的学者，都能在这里找到急需的“武器弹药”。对于开发者而言，它能大幅减少寻找数据和复现模型的时间；对于研究者，它提供了丰富的基准测试资源和前沿技术参考。funNLP 以开放共享的精神，极大地降低了中文自然语言处理的开发与研究成本，是中文 AI 社区不可或缺的宝藏仓库。",79857,1,"2026-04-08T20:11:31",[30,27,29],{"id":42,"name":43,"github_repo":44,"description_zh":45,"stars":46,"difficulty_score":38,"last_commit_at":47,"category_tags":48,"status":17},5773,"cs-video-courses","Developer-Y\u002Fcs-video-courses","cs-video-courses 是一个精心整理的计算机科学视频课程清单，旨在为自学者提供系统化的学习路径。它汇集了全球知名高校（如加州大学伯克利分校、新南威尔士大学等）的完整课程录像，涵盖从编程基础、数据结构与算法，到操作系统、分布式系统、数据库等核心领域，并深入延伸至人工智能、机器学习、量子计算及区块链等前沿方向。\n\n面对网络上零散且质量参差不齐的教学资源，cs-video-courses 解决了学习者难以找到成体系、高难度大学级别课程的痛点。该项目严格筛选内容，仅收录真正的大学层级课程，排除了碎片化的简短教程或商业广告，确保用户能接触到严谨的学术内容。\n\n这份清单特别适合希望夯实计算机基础的开发者、需要补充特定领域知识的研究人员，以及渴望像在校生一样系统学习计算机科学的自学者。其独特的技术亮点在于分类极其详尽，不仅包含传统的软件工程与网络安全，还细分了生成式 AI、大语言模型、计算生物学等新兴学科，并直接链接至官方视频播放列表，让用户能一站式获取高质量的教育资源，免费享受世界顶尖大学的课堂体验。",79792,"2026-04-08T22:03:59",[29,14,27,13],{"id":50,"name":51,"github_repo":52,"description_zh":53,"stars":54,"difficulty_score":10,"last_commit_at":55,"category_tags":56,"status":17},3128,"ragflow","infiniflow\u002Fragflow","RAGFlow 是一款领先的开源检索增强生成（RAG）引擎，旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体（Agent）能力相结合，不仅支持从各类文档中高效提取知识，还能让模型基于这些知识进行逻辑推理和任务执行。\n\n在大模型应用中，幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构（如表格、图表及混合排版），显著提升了信息检索的准确度，从而有效减少模型“胡编乱造”的现象，确保回答既有据可依又具备时效性。其内置的智能体机制更进一步，使系统不仅能回答问题，还能自主规划步骤解决复杂问题。\n\n这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统，还是致力于探索大模型在垂直领域落地的创新者，都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口，既降低了非算法背景用户的上手门槛，也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目，它正成为连接通用大模型与行业专有知识之间的重要桥梁。",77062,"2026-04-04T04:44:48",[15,14,13,30,29],{"id":58,"name":59,"github_repo":60,"description_zh":61,"stars":62,"difficulty_score":10,"last_commit_at":63,"category_tags":64,"status":17},519,"PaddleOCR","PaddlePaddle\u002FPaddleOCR","PaddleOCR 是一款基于百度飞桨框架开发的高性能开源光学字符识别工具包。它的核心能力是将图片、PDF 等文档中的文字提取出来，转换成计算机可读取的结构化数据，让机器真正“看懂”图文内容。\n\n面对海量纸质或电子文档，PaddleOCR 解决了人工录入效率低、数字化成本高的问题。尤其在人工智能领域，它扮演着连接图像与大型语言模型（LLM）的桥梁角色，能将视觉信息直接转化为文本输入，助力智能问答、文档分析等应用场景落地。\n\nPaddleOCR 适合开发者、算法研究人员以及有文档自动化需求的普通用户。其技术优势十分明显：不仅支持全球 100 多种语言的识别，还能在 Windows、Linux、macOS 等多个系统上运行，并灵活适配 CPU、GPU、NPU 等各类硬件。作为一个轻量级且社区活跃的开源项目，PaddleOCR 既能满足快速集成的需求，也能支撑前沿的视觉语言研究，是处理文字识别任务的理想选择。",75872,"2026-04-18T10:54:57",[30,14,13,29],{"id":66,"github_repo":67,"name":68,"description_en":69,"description_zh":70,"ai_summary_zh":70,"readme_en":71,"readme_zh":72,"quickstart_zh":73,"use_case_zh":74,"hero_image_url":75,"owner_login":76,"owner_name":77,"owner_avatar_url":78,"owner_bio":77,"owner_company":79,"owner_location":77,"owner_email":77,"owner_twitter":80,"owner_website":81,"owner_url":82,"languages":83,"stars":88,"forks":89,"last_commit_at":90,"license":91,"difficulty_score":92,"env_os":93,"env_gpu":94,"env_ram":93,"env_deps":95,"category_tags":105,"github_topics":106,"view_count":24,"oss_zip_url":77,"oss_zip_packed_at":77,"status":17,"created_at":111,"updated_at":112,"faqs":113,"releases":146},9095,"xbpeng\u002FMimicKit","MimicKit","A lightweight suite of motion imitation methods for training controllers.","MimicKit 是一套轻量级的运动模仿方法套件，专为训练机器人控制器而设计。它旨在解决让机器人（如人形机器人或四足机器狗）通过强化学习精准复现复杂人类或动物动作的难题，将参考动作数据转化为流畅、自然的控制策略。\n\n这套框架非常适合机器人学研究人员、算法开发者以及希望快速验证运动控制想法的工程团队使用。其核心优势在于代码结构清晰、依赖极少，能够大幅降低环境配置门槛。MimicKit 不仅集成了 DeepMimic、AMP、AWR、ASE 等多种业界主流的运动模仿算法，还提供了高度的灵活性，支持 Isaac Gym、Isaac Lab 和 Newton 等多种物理仿真后端。用户只需简单的配置即可在不同模拟器间切换，并行开展实验。无论是想要复现经典论文结果，还是探索新的运动技能学习方案，MimicKit 都能提供一个高效、干净的起点，帮助用户专注于算法创新而非繁琐的工程调试。","# MimicKit\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fxbpeng_MimicKit_readme_a15464acad20.gif\" width=\"32%\" style=\"margin-right: 1px;\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fxbpeng_MimicKit_readme_09ce59150fa8.gif\" width=\"32%\" style=\"margin-right: 1px;\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fxbpeng_MimicKit_readme_3562f7c4cbb1.gif\" width=\"32%\">\n\u003C\u002Fp>\n\nThis framework provides a suite of motion imitation methods for training motion controllers. This codebase is designed to be clean and lightweight, with minimal dependencies. A more detailed overview of MimicKit is available in the [Starter Guide](https:\u002F\u002Farxiv.org\u002Fabs\u002F2510.13794). For a more feature-rich and modular motion imitation framework, checkout [ProtoMotions](https:\u002F\u002Fgithub.com\u002FNVlabs\u002FProtoMotions\u002F). \n\nInstructions for each method are available here:\n- [DeepMimic](docs\u002FREADME_DeepMimic.md)\n- [AMP - Adversarial Motion Priors](docs\u002FREADME_AMP.md)\n- [AWR - Advantage-Weighted Regression](docs\u002FREADME_AWR.md)\n- [ASE - Adversarial Skill Embeddings](docs\u002FREADME_ASE.md)\n- [LCP - Lipschitz-Constrained Policies](docs\u002FREADME_LCP.md)\n- [ADD - Adversarial Differential Discriminator](docs\u002FREADME_ADD.md)\n\n---\n\n## Installation\n\nThis framework supports different simulator backends (referred to as `Engines`). We highly recommend using a package manager, like [Conda](https:\u002F\u002Fdocs.conda.io\u002Fprojects\u002Fconda\u002Fen\u002Fstable\u002Fuser-guide\u002Finstall\u002Findex.html), to create dedicated Python environments for each simulator.\n\n1. Install the simulator of your choice. \n\u003Cdetails>\n\u003Csummary>Isaac Gym\u003C\u002Fsummary>\n\nInstall [Isaac Gym](https:\u002F\u002Fdeveloper.nvidia.com\u002Fisaac-gym).\n\nTo use Isaac Gym, specify the argument `--engine_config data\u002Fengines\u002Fisaac_gym_engine.yaml` when running the code.\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>Isaac Lab\u003C\u002Fsummary>\n\nInstall [Isaac Lab](https:\u002F\u002Fisaac-sim.github.io\u002FIsaacLab\u002Fmain\u002Fsource\u002Fsetup\u002Finstallation\u002Findex.html). This framework has been tested with `2ed331acfcbb1b96c47b190564476511836c3754`.\n\nTo use Isaac Lab, specify the argument `--engine_config data\u002Fengines\u002Fisaac_lab_engine.yaml` when running the code.\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>Newton\u003C\u002Fsummary>\n\nInstall [Newton](https:\u002F\u002Fnewton-physics.github.io\u002Fnewton\u002Fguide\u002Finstallation.html). This framework has been tested with `v1.0.0`.\n\nTo use Newton, specify the argument `--engine_config data\u002Fengines\u002Fnewton_engine.yaml` when running the code.\n\u003C\u002Fdetails>\n\n2. Install the requirements.\n```\npip install -r requirements.txt\n```\n\n3. Download assets and motion data from [here](https:\u002F\u002F1sfu-my.sharepoint.com\u002F:u:\u002Fg\u002Fpersonal\u002Fxbpeng_sfu_ca\u002FEclKq9pwdOBAl-17SogfMW0Bved4sodZBQ_5eZCiz9O--w?e=bqXBaa), then extract the contents into [`data\u002F`](data\u002F).\n\n\n---\n\n## Training\n\nTo train a model, run the following command:\n```\npython mimickit\u002Frun.py --mode train --num_envs 4096 --engine_config data\u002Fengines\u002Fisaac_gym_engine.yaml --env_config data\u002Fenvs\u002Fdeepmimic_humanoid_env.yaml --agent_config data\u002Fagents\u002Fdeepmimic_humanoid_ppo_agent.yaml --visualize true --out_dir output\u002F\n```\n- `--mode` selects either `train` or `test` mode.\n- `--num_envs` the number of parallel environments used for simulation. Not all environments support parallel envs, this is mainly used for Isaac Gym envs and other environments, like DeepMind Control Suite does not support this feature and should therefore use 1 for the number of envs.\n- `--engine_config` configuration file for the engine to select between different simulator backends.\n- `--env_config` configuration file for the environment.\n- `--agent_config` configuration file for the agent.\n- `--visualize` enables visualization. Rendering should be disabled for faster training.\n- `--out_dir` the output directory where the models and logs will be saved.\n- `--logger` the logger used to record training stats. The options are text `txt`, TensorBoard `tb`, or `wandb`.\n- `--video` either `true` or `false` to enable headless video recording, which are then recorded by the logger. Only Isaac Gym and Isaac Lab currently support video logging.\n\nInstead of specifying all arguments through the command line, arguments can also be loaded from an `arg_file`:\n```\npython mimickit\u002Frun.py --arg_file args\u002Fdeepmimic_humanoid_ppo_args.txt --visualize true\n```\nThe arguments in `arg_file` are treated the same as command line arguments. Arguments for all algorithms are provided in [`args\u002F`](args\u002F).\n\n\n## Testing\n\nTo test a model, run the following command:\n```\npython mimickit\u002Frun.py --arg_file args\u002Fdeepmimic_humanoid_ppo_args.txt --num_envs 4 --visualize true --mode test --model_file data\u002Fmodels\u002Fdeepmimic_humanoid_spinkick_model.pt\n```\n- `--model_file` specifies the `.pt` file that contains the parameters of the trained model. Pretrained models are available in [`data\u002Fmodels\u002F`](data\u002Fmodels\u002F), and the corresponding training log files are available in [`data\u002Flogs\u002F`](data\u002Flogs\u002F).\n\n\n## Distributed Training\n\nTo use distributed training with multi-CPU or multi-GPU:\n```\npython mimickit\u002Frun.py --arg_file args\u002Fdeepmimic_humanoid_ppo_args.txt --devices cuda:0 cuda:1\n``` \n- `--devices` specifies the devices used for training, which can be `cpu` or `cuda:{i}`. Multiple devices can be provided to parallelize training across multiple processes.\n\n\n## Visualizer UI\n\n- **Camera control:** Hold `Alt` key and drag with the left mouse button to pan the camera. Scroll with the mouse wheel to zoom in\u002Fout.\n- **Pause Simulation:** `Enter` key can be used to pause\u002Funpause the simulation\n- **Step Simulation:** `Space` key can be used to step the simulator one step at a time.\n\n\n## Visualizing Training Logs\n\nWhen using the TensorBoard logger during training, a TensorBoard `events` file will be saved in the same output directory as the log file. The log can be viewed with:\n```\ntensorboard --logdir=output\u002F --port=6006 --samples_per_plugin scalars=999999\n```\nThe output `log.txt` file can also be plotted using the plotting script [`plot_log.py`](tools\u002Fplot_log\u002Fplot_log.py).\n\n---\n\n## Motion Data\nMotion data is stored in [`data\u002Fmotions\u002F`](data\u002Fmotions\u002F). The `motion_file` field in the environment configuration file can be used to specify the reference motion clip. In addition to imitating individual motion clips, `motion_file` can also specify a dataset file, located in [`data\u002Fdatasets\u002F`](data\u002Fdatasets\u002F), which will train a model to imitate a dataset containing multiple motion clips.\n\nThe `view_motion` environment can be used to visualize motion clips:\n```\npython mimickit\u002Frun.py --mode test --arg_file args\u002Fview_motion_humanoid_args.txt --visualize true\n```\n\nMotion clips are represented by the `Motion` class implemented in [`motion.py`](mimickit\u002Fanim\u002Fmotion.py). Each motion clip is stored in a `.pkl` file. Each frame in a motion specifies the pose of the character according to\n```\n[root position (3D), root rotation (3D), joint rotations]\n```\nwhere 3D rotations are specified using 3D exponential maps. Joint rotations are recorded in the order that the joints are specified in the `.xml` file (i.e. depth-first traversal of the kinematic tree). For example, in the case of [`humanoid.xml`](data\u002Fassets\u002Fhumanoid\u002Fhumanoid.xml), each frame is represented as\n```\n[root position (3D), root rotation (3D), abdomen (3D), neck (3D), right_shoulder (3D), right_elbow (1D), left_shoulder (3D), left_elbow (1D), right_hip (3D), right_knee (1D), right_ankle (3D), left_hip (3D), left_knee (1D), left_ankle (3D)]\n```\nThe rotations of 3D joints are represented using 3D exponential maps, and the rotations of 1D joints are represented using 1D rotation angles.\n\n\n## Motion Retargeting\nMotion retargeting can be done using [GMR](https:\u002F\u002Fgithub.com\u002FYanjieZe\u002FGMR). A script to convert GMR files to the MimicKit format is available in [`tools\u002Fgmr_to_mimickit\u002F`](tools\u002Fgmr_to_mimickit\u002F).\n\nA script to convert SMPL motion files from [AMASS](https:\u002F\u002Famass.is.tue.mpg.de\u002F) to the MimicKit format is available in [`tools\u002Fsmpl_to_mimickit\u002F`](tools\u002Fsmpl_to_mimickit\u002F).\n\n---\n\n## Citation\nIf you find this codebase helpful, please cite:\n```\n@article{\n      MimicKitPeng2025,\n      title={MimicKit: A Reinforcement Learning Framework for Motion Imitation and Control}, \n      author={Peng, Xue Bin},\n      year={2025},\n      eprint={2510.13794},\n      archivePrefix={arXiv},\n      primaryClass={cs.GR},\n      url={https:\u002F\u002Farxiv.org\u002Fabs\u002F2510.13794}, \n}\n","# MimicKit\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fxbpeng_MimicKit_readme_a15464acad20.gif\" width=\"32%\" style=\"margin-right: 1px;\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fxbpeng_MimicKit_readme_09ce59150fa8.gif\" width=\"32%\" style=\"margin-right: 1px;\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fxbpeng_MimicKit_readme_3562f7c4cbb1.gif\" width=\"32%\">\n\u003C\u002Fp>\n\n该框架提供了一套用于训练运动控制器的运动模仿方法。此代码库设计简洁轻量，依赖项极少。MimicKit 的更详细概述可在 [入门指南](https:\u002F\u002Farxiv.org\u002Fabs\u002F2510.13794) 中找到。如需功能更丰富、模块化程度更高的运动模仿框架，请查看 [ProtoMotions](https:\u002F\u002Fgithub.com\u002FNVlabs\u002FProtoMotions\u002F)。\n\n每种方法的使用说明如下：\n- [DeepMimic](docs\u002FREADME_DeepMimic.md)\n- [AMP - 对抗性运动先验](docs\u002FREADME_AMP.md)\n- [AWR - 优势加权回归](docs\u002FREADME_AWR.md)\n- [ASE - 对抗性技能嵌入](docs\u002FREADME_ASE.md)\n- [LCP - 利普希茨约束策略](docs\u002FREADME_LCP.md)\n- [ADD - 对抗性差分判别器](docs\u002FREADME_ADD.md)\n\n---\n\n## 安装\n\n本框架支持不同的模拟器后端（称为“引擎”）。我们强烈建议使用包管理器，例如 [Conda](https:\u002F\u002Fdocs.conda.io\u002Fprojects\u002Fconda\u002Fen\u002Fstable\u002Fuser-guide\u002Finstall\u002Findex.html)，为每个模拟器创建专用的 Python 环境。\n\n1. 安装您选择的模拟器。\n\u003Cdetails>\n\u003Csummary>Isaac Gym\u003C\u002Fsummary>\n\n安装 [Isaac Gym](https:\u002F\u002Fdeveloper.nvidia.com\u002Fisaac-gym)。\n\n要使用 Isaac Gym，在运行代码时请指定参数 `--engine_config data\u002Fengines\u002Fisaac_gym_engine.yaml`。\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>Isaac Lab\u003C\u002Fsummary>\n\n安装 [Isaac Lab](https:\u002F\u002Fisaac-sim.github.io\u002FIsaacLab\u002Fmain\u002Fsource\u002Fsetup\u002Finstallation\u002Findex.html)。本框架已在 `2ed331acfcbb1b96c47b190564476511836c3754` 版本上测试过。\n\n要使用 Isaac Lab，在运行代码时请指定参数 `--engine_config data\u002Fengines\u002Fisaac_lab_engine.yaml`。\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>Newton\u003C\u002Fsummary>\n\n安装 [Newton](https:\u002F\u002Fnewton-physics.github.io\u002Fnewton\u002Fguide\u002Finstallation.html)。本框架已在 `v1.0.0` 版本上测试过。\n\n要使用 Newton，在运行代码时请指定参数 `--engine_config data\u002Fengines\u002Fnewton_engine.yaml`。\n\u003C\u002Fdetails>\n\n2. 安装依赖项。\n```\npip install -r requirements.txt\n```\n\n3. 从 [这里](https:\u002F\u002F1sfu-my.sharepoint.com\u002F:u:\u002Fg\u002Fpersonal\u002Fxbpeng_sfu_ca\u002FEclKq9pwdOBAl-17SogfMW0Bved4sodZBQ_5eZCiz9O--w?e=bqXBaa) 下载资产和运动数据，然后将内容解压到 [`data\u002F`](data\u002F) 目录中。\n\n\n---\n\n## 训练\n\n要训练模型，请运行以下命令：\n```\npython mimickit\u002Frun.py --mode train --num_envs 4096 --engine_config data\u002Fengines\u002Fisaac_gym_engine.yaml --env_config data\u002Fenvs\u002Fdeepmimic_humanoid_env.yaml --agent_config data\u002Fagents\u002Fdeepmimic_humanoid_ppo_agent.yaml --visualize true --out_dir output\u002F\n```\n- `--mode` 选择 `train` 或 `test` 模式。\n- `--num_envs` 是用于仿真的并行环境数量。并非所有环境都支持并行环境，这主要用于 Isaac Gym 等环境；而 DeepMind Control Suite 等环境不支持此功能，因此应将环境数量设置为 1。\n- `--engine_config` 是引擎配置文件，用于在不同模拟器后端之间进行选择。\n- `--env_config` 是环境配置文件。\n- `--agent_config` 是智能体配置文件。\n- `--visualize` 启用可视化功能。为了加快训练速度，应关闭渲染。\n- `--out_dir` 是保存模型和日志的输出目录。\n- `--logger` 是用于记录训练统计信息的日志工具。可选文本 `txt`、TensorBoard `tb` 或 `wandb`。\n- `--video` 设置为 `true` 或 `false`，以启用无头视频录制，这些视频将由日志工具记录。目前只有 Isaac Gym 和 Isaac Lab 支持视频日志记录。\n\n除了通过命令行指定所有参数外，还可以从 `arg_file` 加载参数：\n```\npython mimickit\u002Frun.py --arg_file args\u002Fdeepmimic_humanoid_ppo_args.txt --visualize true\n```\n`arg_file` 中的参数与命令行参数具有相同的作用。所有算法的参数均在 [`args\u002F`](args\u002F) 目录中提供。\n\n\n## 测试\n\n要测试模型，请运行以下命令：\n```\npython mimickit\u002Frun.py --arg_file args\u002Fdeepmimic_humanoid_ppo_args.txt --num_envs 4 --visualize true --mode test --model_file data\u002Fmodels\u002Fdeepmimic_humanoid_spinkick_model.pt\n```\n- `--model_file` 指定包含已训练模型参数的 `.pt` 文件。预训练模型可在 [`data\u002Fmodels\u002F`](data\u002Fmodels\u002F) 目录中找到，相应的训练日志文件则位于 [`data\u002Flogs\u002F`](data\u002Flogs\u002F) 目录中。\n\n\n## 分布式训练\n\n要使用多 CPU 或多 GPU 进行分布式训练：\n```\npython mimickit\u002Frun.py --arg_file args\u002Fdeepmimic_humanoid_ppo_args.txt --devices cuda:0 cuda:1\n```\n- `--devices` 指定用于训练的设备，可以是 `cpu` 或 `cuda:{i}`。可以提供多个设备，以实现跨多个进程的并行训练。\n\n\n## 可视化界面\n\n- **相机控制：** 按住 `Alt` 键并用鼠标左键拖动即可平移相机。使用鼠标滚轮可放大或缩小。\n- **暂停仿真：** 按下 `Enter` 键可暂停或恢复仿真。\n- **单步仿真：** 按下 `Space` 键可使仿真器每次向前推进一步。\n\n\n## 可视化训练日志\n\n在训练过程中使用 TensorBoard 日志工具时，会在与日志文件相同的输出目录中生成一个 TensorBoard `events` 文件。可通过以下命令查看日志：\n```\ntensorboard --logdir=output\u002F --port=6006 --samples_per_plugin scalars=999999\n```\n此外，还可以使用绘图脚本 [`plot_log.py`](tools\u002Fplot_log\u002Fplot_log.py) 绘制输出的 `log.txt` 文件。\n\n---\n\n## 运动数据\n运动数据存储在 [`data\u002Fmotions\u002F`](data\u002Fmotions\u002F) 目录下。环境配置文件中的 `motion_file` 字段可用于指定参考运动片段。除了模仿单个运动片段外，`motion_file` 也可以指向位于 [`data\u002Fdatasets\u002F`](data\u002Fdatasets\u002F) 的数据集文件，从而训练模型来模仿包含多个运动片段的数据集。\n\n可以使用 `view_motion` 环境来可视化运动片段：\n```\npython mimickit\u002Frun.py --mode test --arg_file args\u002Fview_motion_humanoid_args.txt --visualize true\n```\n\n运动片段由 [`motion.py`](mimickit\u002Fanim\u002Fmotion.py) 中实现的 `Motion` 类表示。每个运动片段都保存为 `.pkl` 文件。运动的每一帧通过以下方式指定角色的姿态：\n```\n[根位置 (3D), 根旋转 (3D), 关节旋转]\n```\n其中，3D 旋转采用 3D 指数映射表示，关节旋转则按照 `.xml` 文件中定义的关节顺序记录（即按运动学树的深度优先遍历顺序）。例如，对于 [`humanoid.xml`](data\u002Fassets\u002Fhumanoid\u002Fhumanoid.xml)，每帧的表示形式为：\n```\n[根位置 (3D), 根旋转 (3D), 腹部 (3D), 颈部 (3D), 右肩 (3D), 右肘 (1D), 左肩 (3D), 左肘 (1D), 右髋 (3D), 右膝 (1D), 右踝 (3D), 左髋 (3D), 左膝 (1D), 左踝 (3D)]\n```\n3D 关节的旋转使用 3D 指数映射表示，而 1D 关节的旋转则用 1D 旋转角度表示。\n\n\n## 运动重定向\n运动重定向可以使用 [GMR](https:\u002F\u002Fgithub.com\u002FYanjieZe\u002FGMR) 来完成。一个用于将 GMR 文件转换为 MimicKit 格式的脚本位于 [`tools\u002Fgmr_to_mimickit\u002F`](tools\u002Fgmr_to_mimickit\u002F) 目录下。\n\n此外，还有一个用于将来自 [AMASS](https:\u002F\u002Famass.is.tue.mpg.de\u002F) 的 SMPL 运动文件转换为 MimicKit 格式的脚本，位于 [`tools\u002Fsmpl_to_mimickit\u002F`](tools\u002Fsmpl_to_mimickit\u002F) 目录下。\n\n---\n\n## 引用\n如果您觉得本代码库有所帮助，请引用以下文献：\n```\n@article{\n      MimicKitPeng2025,\n      title={MimicKit: 用于运动模仿与控制的强化学习框架}, \n      author={彭雪彬},\n      year={2025},\n      eprint={2510.13794},\n      archivePrefix={arXiv},\n      primaryClass={cs.GR},\n      url={https:\u002F\u002Farxiv.org\u002Fabs\u002F2510.13794}, \n}","# MimicKit 快速上手指南\n\nMimicKit 是一个轻量级、低依赖的运动模仿（Motion Imitation）强化学习框架，支持多种主流算法（如 DeepMimic, AMP, AWR 等）和仿真后端（Isaac Gym, Isaac Lab, Newton）。\n\n## 环境准备\n\n### 系统要求\n- **操作系统**: Linux (推荐 Ubuntu 18.04\u002F20.04\u002F22.04)\n- **Python**: 3.8+\n- **GPU**: NVIDIA GPU (用于加速训练，需安装对应的 CUDA 驱动)\n- **包管理器**: 推荐使用 [Conda](https:\u002F\u002Fdocs.conda.io\u002Fprojects\u002Fconda\u002Fen\u002Fstable\u002Fuser-guide\u002Finstall\u002Findex.html) 管理环境。\n\n### 前置依赖\n根据选择的仿真器后端，需预先安装以下其中之一：\n1. **Isaac Gym** (NVIDIA): 需从 NVIDIA 官网下载并安装。\n2. **Isaac Lab**: 基于 Isaac Sim，需按官方文档安装 (测试版本 commit: `2ed331acfcbb1b96c47b190564476511836c3754`)。\n3. **Newton**: 物理引擎 (测试版本: `v1.0.0`)。\n\n> **提示**: 国内用户若无法访问部分国外资源，建议配置科学网络环境或使用国内镜像源加速 `pip` 安装。\n\n## 安装步骤\n\n### 1. 创建虚拟环境\n建议使用 Conda 创建独立环境：\n```bash\nconda create -n mimickit python=3.8\nconda activate mimickit\n```\n\n### 2. 安装 Python 依赖\n克隆项目后，进入目录安装基础依赖：\n```bash\npip install -r requirements.txt\n```\n*(可选加速)*: 使用清华或阿里镜像源：\n```bash\npip install -r requirements.txt -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n```\n\n### 3. 下载资产与运动数据\n框架不包含大型资产文件，需手动下载并解压。\n- **下载地址**: [SharePoint 链接](https:\u002F\u002F1sfu-my.sharepoint.com\u002F:u:\u002Fg\u002Fpersonal\u002Fxbpeng_sfu_ca\u002FEclKq9pwdOBAl-17SogfMW0Bved4sodZBQ_5eZCiz9O--w?e=bqXBaa)\n- **操作**: 下载后解压，将内容放入项目根目录下的 `data\u002F` 文件夹中。确保目录结构包含 `data\u002Fassets`, `data\u002Fmotions` 等。\n\n## 基本使用\n\n### 1. 训练模型 (Training)\n以下命令演示如何使用 **Isaac Gym** 后端训练一个 **DeepMimic** 人形机器人模型。\n\n```bash\npython mimickit\u002Frun.py --mode train --num_envs 4096 --engine_config data\u002Fengines\u002Fisaac_gym_engine.yaml --env_config data\u002Fenvs\u002Fdeepmimic_humanoid_env.yaml --agent_config data\u002Fagents\u002Fdeepmimic_humanoid_ppo_agent.yaml --visualize true --out_dir output\u002F\n```\n\n**参数说明**:\n- `--mode train`: 开启训练模式。\n- `--num_envs 4096`: 并行环境数量（Isaac Gym 推荐值，其他模拟器如 DM Control 请设为 1）。\n- `--engine_config`: 指定仿真器配置文件。\n- `--visualize true`: 开启可视化窗口（纯训练提速可设为 `false`）。\n- `--out_dir`: 模型和日志输出目录。\n\n> **简化写法**: 也可以直接使用预设的参数文件：\n> ```bash\n> python mimickit\u002Frun.py --arg_file args\u002Fdeepmimic_humanoid_ppo_args.txt --visualize true\n> ```\n\n### 2. 测试\u002F演示模型 (Testing)\n使用预训练好的模型进行演示：\n\n```bash\npython mimickit\u002Frun.py --arg_file args\u002Fdeepmimic_humanoid_ppo_args.txt --num_envs 4 --visualize true --mode test --model_file data\u002Fmodels\u002Fdeepmimic_humanoid_spinkick_model.pt\n```\n\n**参数说明**:\n- `--mode test`: 开启测试模式。\n- `--model_file`: 指定 `.pt` 格式的预训练模型路径。\n\n### 3. 查看日志 (Visualization)\n如果使用 TensorBoard 记录日志，可通过以下命令查看训练曲线：\n\n```bash\ntensorboard --logdir=output\u002F --port=6006 --samples_per_plugin scalars=999999\n```\n然后在浏览器访问 `http:\u002F\u002Flocalhost:6006`。\n\n### 4. 交互式控制\n在可视化窗口中：\n- **移动视角**: 按住 `Alt` + 鼠标左键拖动。\n- **缩放**: 滚动鼠标滚轮。\n- **暂停\u002F继续**: 按 `Enter` 键。\n- **单步执行**: 按 `Space` 键。","某机器人实验室团队正致力于为人形机器人开发一套能流畅完成跑酷、后空翻等高难度动作的运动控制器。\n\n### 没有 MimicKit 时\n- **算法复现成本极高**：团队需从零搭建 DeepMimic 或 AMP 等复杂算法框架，耗费数周处理代码兼容性与依赖冲突。\n- **仿真环境切换困难**：若需从 Isaac Gym 迁移至 Newton 模拟器，必须重写大量底层交互代码，难以快速验证不同物理引擎的效果。\n- **数据与训练脱节**：缺乏统一的运动数据加载接口，处理动作捕捉数据格式繁琐，导致模型训练频繁因数据对齐问题中断。\n- **调试周期漫长**：由于框架臃肿且可视化支持不足，研究人员难以直观观察机器人动作偏差，参数调优如同“盲人摸象”。\n\n### 使用 MimicKit 后\n- **开箱即用的算法库**：直接调用内置的 DeepMimic、AMP 等六种成熟方法，通过配置文件即可启动训练，将算法验证周期从数周缩短至数小时。\n- **灵活的引擎适配**：仅需修改 `engine_config` 参数，即可在 Isaac Gym、Isaac Lab 和 Newton 之间无缝切换，轻松对比不同物理后端的表现。\n- **标准化的数据流程**：利用预置的数据处理管道，快速加载并适配各类动作捕捉数据，确保训练过程稳定高效。\n- **直观的可视化反馈**：开启 `visualize` 选项即可实时渲染机器人动作，结合 TensorBoard 或 WandB 日志，精准定位动作失真原因并快速迭代。\n\nMimicKit 通过轻量化设计与模块化架构，让研发团队从重复造轮子中解放出来，专注于提升机器人运动控制的智能水平。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fxbpeng_MimicKit_a15464ac.gif","xbpeng",null,"https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fxbpeng_c7fd1e2c.png","Simon Fraser University, NVIDIA","xbpeng4","https:\u002F\u002Fxbpeng.github.io\u002F","https:\u002F\u002Fgithub.com\u002Fxbpeng",[84],{"name":85,"color":86,"percentage":87},"Python","#3572A5",100,1845,233,"2026-04-18T02:58:27","Apache-2.0",4,"未说明","需要 NVIDIA GPU（用于 Isaac Gym\u002FIsaac Lab 及分布式训练），具体型号和显存未说明，需支持 CUDA",{"notes":96,"python":93,"dependencies":97},"1. 该框架支持多种仿真后端（Engine），包括 Isaac Gym、Isaac Lab 和 Newton，需单独安装对应仿真器。2. 强烈建议使用 Conda 为每个仿真器创建独立的 Python 环境。3. 运行前需手动下载约未说明大小的资产和动作数据文件并解压至 data\u002F 目录。4. 支持多 GPU 分布式训练。5. 部分功能（如并行环境模拟）仅在 Isaac Gym 等特定后端中支持。",[98,99,100,101,102,103,104],"Isaac Gym (可选)","Isaac Lab (可选)","Newton Physics (可选)","torch (隐含依赖)","tensorboard (日志可视化)","wandb (可选日志)","conda (推荐环境管理)",[29,16],[107,108,109,110],"animation","reinforcement-learning","robotics","motion-imitation","2026-03-27T02:49:30.150509","2026-04-18T22:34:13.684468",[114,119,124,129,134,138,142],{"id":115,"question_zh":116,"answer_zh":117,"source_url":118},40815,"使用 mini-pi-plus 机器人进行 DeepMimic 训练时，遇到 GPU 显存缓冲区错误（PxgAABBManager invalid parameter）或状态爆炸产生 NaN 值，该如何解决？","该问题通常源于 URDF\u002FXML 模型文件中关节（joint）标签缺少 `limited=\"true\"` 属性。这导致物理引擎无法正确读取自由度（DOF）的上下限（lower\u002Fupper），使其默认为 0。进而导致动作空间范围计算为 (0, 0)，使得初始化标准差（init_std）为 0，最终在 PPO 更新时产生 NaN 值并引发模拟器崩溃。\n\n解决方案：\n1. 检查机器人的 XML\u002FURDF 文件，确保所有需要限制的关节标签中包含 `limited=\"true\"` 属性。\n2. 验证 `dof_property` 中的 lower 和 upper 值是否为有效非零数值。\n3. 如果无法修改模型文件，建议在代码中添加断言检查，确保 `std > 0` 且 DOF 限制是有限的，以便用户能立即定位此类配置错误。","https:\u002F\u002Fgithub.com\u002Fxbpeng\u002FMimicKit\u002Fissues\u002F16",{"id":120,"question_zh":121,"answer_zh":122,"source_url":123},40816,"在多 GPU 分布式训练时，遇到 \"AssertionError: Network parameters desynchronized\" 错误导致训练崩溃，如何解决？","这是由于多进程间网络参数不同步导致的。维护者已通过添加同步屏障（barrier）来修复此问题。\n\n解决方案：\n请更新代码至包含以下修复的版本，或在 `mp_optimizer.py` 中聚合梯度时手动添加 barrier：\n```python\n# 在聚合梯度后添加屏障以确保同步\ntorch.distributed.barrier()\n```\n具体修复提交参考：https:\u002F\u002Fgithub.com\u002Fxbpeng\u002FMimicKit\u002Fcommit\u002Fb9092f3a623e1fefa995e0e7a4368f70ba7e7aae\n这将强制所有工作进程在继续下一步之前完成梯度同步，防止参数发散。","https:\u002F\u002Fgithub.com\u002Fxbpeng\u002FMimicKit\u002Fissues\u002F7",{"id":125,"question_zh":126,"answer_zh":127,"source_url":128},40817,"我想训练一个通用的动作追踪器（general-purpose tracker），应该选择 AMP 还是 DeepMimic 算法？","如果您旨在训练一个通用的动作追踪器（general purpose tracker），应该使用 **DeepMimic** 而不是 AMP。\n\nAMP（Adversarial Motion Priors）通常用于学习风格化的运动先验，而 DeepMimic 更专注于精确地复现参考动作轨迹。如果遇到训练发散或 NaN 问题，请检查是否错误地使用了 AMP 配置文件，并确保加载的是适合 DeepMimic 的环境和智能体配置（agent\u002Fenv config）。","https:\u002F\u002Fgithub.com\u002Fxbpeng\u002FMimicKit\u002Fissues\u002F22",{"id":130,"question_zh":131,"answer_zh":132,"source_url":133},40818,"如何处理输入数据中不同的旋转表示格式（如四元数与指数图），以避免不必要的转换开销？","MimicKit 已支持通过参数区分旋转类型。如果您的数据源直接包含四元数（quaternions），而默认设置仅处理指数图（exponential maps），您可以利用新增的 `motion_rotation_type` 参数（或在 `_extract_frame_data()` 中的相关逻辑）来指定输入格式。\n\n这样可以直接处理四元数数据，无需在源数据预处理阶段额外将其转换为指数图。建议检查最新的 `Motion.frames` 实现或数据转换脚本，确认是否已启用该选项，或直接使用社区贡献的数据转换脚本（如针对 GMR 重定向数据的脚本）来处理特定格式。","https:\u002F\u002Fgithub.com\u002Fxbpeng\u002FMimicKit\u002Fissues\u002F9",{"id":135,"question_zh":136,"answer_zh":137,"source_url":133},40819,"Isaac Gym 渲染速度过快，导致画面看起来不自然或与时间不同步，如何调整？","这是已知现象，可以通过在渲染循环中显式调用同步函数来解决。\n\n请在 `isaac_gym_engine.py` 或相应的渲染逻辑中添加以下代码：\n```python\nself._gym.sync_frame_time(self._sim)\n```\n这将强制渲染帧时间与模拟时间同步，使视觉效果更加流畅且符合正常时间流速。",{"id":139,"question_zh":140,"answer_zh":141,"source_url":133},40820,"解析机器人 XML 文件时，如果关节类型（type）未显式声明（例如默认为 hinge），程序报错怎么办？","部分 XML 文件可能省略了默认的 `type=\"hinge\"` 属性，导致 `KinCharModel()` 类无法识别关节类型而报错。\n\n解决方案：\n1. **推荐做法**：在 XML 文件中显式添加 `type=\"hinge\"`（或其他对应类型）到每个关节标签中，以确保兼容性。\n2. **代码改进**：维护者建议并在后续版本中加入了保护条件（safeguard condition），当 XML 中未显式指定类型时，默认将其视为 \"hinge\" 处理，避免程序崩溃。请确保您的 MimicKit 版本已包含此修复。",{"id":143,"question_zh":144,"answer_zh":145,"source_url":133},40821,"在转换运动数据格式时，如何截取特定的动作片段（clip）而不是转换整个文件？","您可以在数据转换脚本中添加参数来控制动作截取范围。\n\n社区贡献的代码示例显示，可以通过修改转换逻辑（如在 `data_conversion` 脚本的第 30 行附近），将硬编码的截取操作改为可配置的参数。允许用户在运行转换命令时指定起始帧和结束帧，从而只关注并转换所需的动作片段。建议参考相关的 PR 或提交记录（如 commit d2f1c39）来获取具体的实现代码。",[147],{"id":148,"version":149,"summary_zh":77,"released_at":150},324390,"v0","2026-01-11T01:02:41"]