[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-xbpeng--DeepMimic":3,"tool-xbpeng--DeepMimic":65},[4,23,32,40,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":22},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",84991,2,"2026-04-05T10:45:23",[13,14,15,16,17,18,19,20,21],"图像","数据工具","视频","插件","Agent","其他","语言模型","开发框架","音频","ready",{"id":24,"name":25,"github_repo":26,"description_zh":27,"stars":28,"difficulty_score":29,"last_commit_at":30,"category_tags":31,"status":22},3128,"ragflow","infiniflow\u002Fragflow","RAGFlow 是一款领先的开源检索增强生成（RAG）引擎，旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体（Agent）能力相结合，不仅支持从各类文档中高效提取知识，还能让模型基于这些知识进行逻辑推理和任务执行。\n\n在大模型应用中，幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构（如表格、图表及混合排版），显著提升了信息检索的准确度，从而有效减少模型“胡编乱造”的现象，确保回答既有据可依又具备时效性。其内置的智能体机制更进一步，使系统不仅能回答问题，还能自主规划步骤解决复杂问题。\n\n这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统，还是致力于探索大模型在垂直领域落地的创新者，都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口，既降低了非算法背景用户的上手门槛，也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目，它正成为连接通用大模型与行业专有知识之间的重要桥梁。",77062,3,"2026-04-04T04:44:48",[17,13,20,19,18],{"id":33,"name":34,"github_repo":35,"description_zh":36,"stars":37,"difficulty_score":29,"last_commit_at":38,"category_tags":39,"status":22},519,"PaddleOCR","PaddlePaddle\u002FPaddleOCR","PaddleOCR 是一款基于百度飞桨框架开发的高性能开源光学字符识别工具包。它的核心能力是将图片、PDF 等文档中的文字提取出来，转换成计算机可读取的结构化数据，让机器真正“看懂”图文内容。\n\n面对海量纸质或电子文档，PaddleOCR 解决了人工录入效率低、数字化成本高的问题。尤其在人工智能领域，它扮演着连接图像与大型语言模型（LLM）的桥梁角色，能将视觉信息直接转化为文本输入，助力智能问答、文档分析等应用场景落地。\n\nPaddleOCR 适合开发者、算法研究人员以及有文档自动化需求的普通用户。其技术优势十分明显：不仅支持全球 100 多种语言的识别，还能在 Windows、Linux、macOS 等多个系统上运行，并灵活适配 CPU、GPU、NPU 等各类硬件。作为一个轻量级且社区活跃的开源项目，PaddleOCR 既能满足快速集成的需求，也能支撑前沿的视觉语言研究，是处理文字识别任务的理想选择。",74939,"2026-04-05T23:16:38",[19,13,20,18],{"id":41,"name":42,"github_repo":43,"description_zh":44,"stars":45,"difficulty_score":46,"last_commit_at":47,"category_tags":48,"status":22},3215,"awesome-machine-learning","josephmisiti\u002Fawesome-machine-learning","awesome-machine-learning 是一份精心整理的机器学习资源清单，汇集了全球优秀的机器学习框架、库和软件工具。面对机器学习领域技术迭代快、资源分散且难以甄选的痛点，这份清单按编程语言（如 Python、C++、Go 等）和应用场景（如计算机视觉、自然语言处理、深度学习等）进行了系统化分类，帮助使用者快速定位高质量项目。\n\n它特别适合开发者、数据科学家及研究人员使用。无论是初学者寻找入门库，还是资深工程师对比不同语言的技术选型，都能从中获得极具价值的参考。此外，清单还延伸提供了免费书籍、在线课程、行业会议、技术博客及线下聚会等丰富资源，构建了从学习到实践的全链路支持体系。\n\n其独特亮点在于严格的维护标准：明确标记已停止维护或长期未更新的项目，确保推荐内容的时效性与可靠性。作为机器学习领域的“导航图”，awesome-machine-learning 以开源协作的方式持续更新，旨在降低技术探索门槛，让每一位从业者都能高效地站在巨人的肩膀上创新。",72149,1,"2026-04-03T21:50:24",[20,18],{"id":50,"name":51,"github_repo":52,"description_zh":53,"stars":54,"difficulty_score":46,"last_commit_at":55,"category_tags":56,"status":22},2234,"scikit-learn","scikit-learn\u002Fscikit-learn","scikit-learn 是一个基于 Python 构建的开源机器学习库，依托于 SciPy、NumPy 等科学计算生态，旨在让机器学习变得简单高效。它提供了一套统一且简洁的接口，涵盖了从数据预处理、特征工程到模型训练、评估及选择的全流程工具，内置了包括线性回归、支持向量机、随机森林、聚类等在内的丰富经典算法。\n\n对于希望快速验证想法或构建原型的数据科学家、研究人员以及 Python 开发者而言，scikit-learn 是不可或缺的基础设施。它有效解决了机器学习入门门槛高、算法实现复杂以及不同模型间调用方式不统一的痛点，让用户无需重复造轮子，只需几行代码即可调用成熟的算法解决分类、回归、聚类等实际问题。\n\n其核心技术亮点在于高度一致的 API 设计风格，所有估算器（Estimator）均遵循相同的调用逻辑，极大地降低了学习成本并提升了代码的可读性与可维护性。此外，它还提供了强大的模型选择与评估工具，如交叉验证和网格搜索，帮助用户系统地优化模型性能。作为一个由全球志愿者共同维护的成熟项目，scikit-learn 以其稳定性、详尽的文档和活跃的社区支持，成为连接理论学习与工业级应用的最",65628,"2026-04-05T10:10:46",[20,18,14],{"id":58,"name":59,"github_repo":60,"description_zh":61,"stars":62,"difficulty_score":10,"last_commit_at":63,"category_tags":64,"status":22},3364,"keras","keras-team\u002Fkeras","Keras 是一个专为人类设计的深度学习框架，旨在让构建和训练神经网络变得简单直观。它解决了开发者在不同深度学习后端之间切换困难、模型开发效率低以及难以兼顾调试便捷性与运行性能的痛点。\n\n无论是刚入门的学生、专注算法的研究人员，还是需要快速落地产品的工程师，都能通过 Keras 轻松上手。它支持计算机视觉、自然语言处理、音频分析及时间序列预测等多种任务。\n\nKeras 3 的核心亮点在于其独特的“多后端”架构。用户只需编写一套代码，即可灵活选择 TensorFlow、JAX、PyTorch 或 OpenVINO 作为底层运行引擎。这一特性不仅保留了 Keras 一贯的高层易用性，还允许开发者根据需求自由选择：利用 JAX 或 PyTorch 的即时执行模式进行高效调试，或切换至速度最快的后端以获得最高 350% 的性能提升。此外，Keras 具备强大的扩展能力，能无缝从本地笔记本电脑扩展至大规模 GPU 或 TPU 集群，是连接原型开发与生产部署的理想桥梁。",63927,"2026-04-04T15:24:37",[20,14,18],{"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":114,"forks":115,"last_commit_at":116,"license":117,"difficulty_score":118,"env_os":119,"env_gpu":120,"env_ram":121,"env_deps":122,"category_tags":136,"github_topics":77,"view_count":10,"oss_zip_url":77,"oss_zip_packed_at":77,"status":22,"created_at":137,"updated_at":138,"faqs":139,"releases":167},4055,"xbpeng\u002FDeepMimic","DeepMimic","Motion imitation with deep reinforcement learning.","DeepMimic 是一个基于深度强化学习的开源框架，旨在让虚拟角色在物理仿真环境中精准模仿真实的人类动作。它主要解决了传统动画技术中动作僵硬、缺乏物理真实感以及难以适应复杂交互环境的难题。通过输入动作捕捉（MoCap）数据，DeepMimic 能训练出具备高度平衡感和协调性的智能体，使其不仅能复现后空翻、踢腿等高难度技巧，还能在受到外力干扰时自动调整姿态以防摔倒。\n\n该项目的核心技术亮点在于将示例引导的深度强化学习与物理引擎紧密结合，并衍生出了对抗性运动先验（AMP）等先进方法，实现了风格化且鲁棒的角色控制。需要注意的是，原始代码库目前已标记为弃用，官方推荐开发者转向其继任项目 MimicKit 以获得更高效、易用的实现版本。\n\nDeepMimic 非常适合从事计算机图形学、机器人控制算法研究的研究人员，以及需要开发高保真物理角色动画的游戏开发者或工程师使用。由于涉及复杂的 C++ 环境配置、依赖项编译及强化学习模型训练，它要求使用者具备较强的编程基础和算法背景，并不适合普通终端用户直接操作。","# Intro \n\n**This codebase is now deprecated.** Checkout [MimicKit](https:\u002F\u002Fgithub.com\u002Fxbpeng\u002FMimicKit\u002F) for much faster and easy-to-use implementations of our methods.\n\nCode accompanying the following papers:\n\n\"DeepMimic: Example-Guided Deep Reinforcement Learning of Physics-Based Character Skills\" \\\n(https:\u002F\u002Fxbpeng.github.io\u002Fprojects\u002FDeepMimic\u002Findex.html) \\\n![Skills](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fxbpeng_DeepMimic_readme_3d030a97bee8.png)\n\n\"AMP: Adversarial Motion Priors for Stylized Physics-Based Character Control\" \\\n(https:\u002F\u002Fxbpeng.github.io\u002Fprojects\u002FAMP\u002Findex.html) \\\n![Skills](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fxbpeng_DeepMimic_readme_fa7072791114.png)\n\nThe framework uses reinforcement learning to train a simulated humanoid to imitate a variety\nof motion skills from mocap data.\n\n## Dependencies\n\n``sudo apt install libgl1-mesa-dev libx11-dev libxrandr-dev libxi-dev``\n\n``sudo apt install mesa-utils``\n\n``sudo apt install clang``\n\n``sudo apt install cmake``\n\nC++:\n\n- Bullet 2.88 (https:\u002F\u002Fgithub.com\u002Fbulletphysics\u002Fbullet3\u002Freleases)\n\n  Download Bullet 2.88 from the above link and install using the following commands.\n  \n\t``.\u002Fbuild_cmake_pybullet_double.sh``\n\t\n\t``cd build_cmake``\n\t\n\t``sudo make install``\n\n- Eigen (http:\u002F\u002Fwww.eigen.tuxfamily.org\u002Findex.php?title=Main_Page) (Version : 3.3.7)\n\n\t``mkdir build && cd build``\n\t\n\t``cmake ..``\n\t\n\t``sudo make install``\n\n- OpenGL >= 3.2\n- freeglut (http:\u002F\u002Ffreeglut.sourceforge.net\u002F) ( Version : 3.0.0 )\n\n\t``cmake .``\n\t\n\t``make``\n\t\n\t``sudo make install``\n  \n- glew (http:\u002F\u002Fglew.sourceforge.net\u002F) ( Version : 2.1.0 )\n\n\t``make``\n\t\n\t``sudo make install``\n\t\n\t``make clean``\n\nMisc:\n\n- SWIG (http:\u002F\u002Fwww.swig.org\u002F) ( Version : 4.0.0 )\n\n\t``.\u002Fconfigure --without-pcre``\n\t\n\t``make``\n\t\n\t``sudo make install``\n\n- MPI \n\t- Windows: https:\u002F\u002Fdocs.microsoft.com\u002Fen-us\u002Fmessage-passing-interface\u002Fmicrosoft-mpi\n\t- Linux: `sudo apt install libopenmpi-dev`\n\n\nPython:\n\n- Python 3\n- PyOpenGL (http:\u002F\u002Fpyopengl.sourceforge.net\u002F) \n\n``pip install PyOpenGL PyOpenGL_accelerate``\n\n- Tensorflow (https:\u002F\u002Fwww.tensorflow.org\u002F) ( Vesrion : 1.13.1 )\n\n``pip install tensorflow`` \n- MPI4Py (https:\u002F\u002Fmpi4py.readthedocs.io\u002Fen\u002Fstable\u002Finstall.html)\n\n``pip install mpi4py``\n\n## Build\nThe simulated environments are written in C++, and the python wrapper is built using SWIG.\nNote that MPI must be installed before MPI4Py. When building Bullet, be sure to disable double precision with the build flag `USE_DOUBLE_PRECISION=OFF`.\n\n### Windows\nThe wrapper is built using `DeepMimicCore.sln`.\n\n1. Select the `x64` configuration from the configuration manager.\n\n2. Under the project properties for `DeepMimicCore` modify `Additional Include Directories` to specify\n\t- Bullet source directory\n\t- Eigen include directory\n\t- python include directory\n\n3. Modify `Additional Library Directories` to specify\n\t- Bullet lib directory\n\t- python lib directory\n\n4. Build `DeepMimicCore` project with the `Release_Swig` configuration and this should\ngenerate `DeepMimicCore.py` in `DeepMimicCore\u002F`.\n\n\n### Linux\n1. Modify the `Makefile` in `DeepMimicCore\u002F` by specifying the following,\n\t- `EIGEN_DIR`: Eigen include directory\n\t- `BULLET_INC_DIR`: Bullet source directory\n\t- `PYTHON_INC`: python include directory\n\t- `PYTHON_LIB`: python lib directory\n\n2. Build wrapper,\n\t```\n\tmake python\n\t```\nThis should generate `DeepMimicCore.py` in `DeepMimicCore\u002F`\n\n\n## How to Use\nOnce the python wrapper has been built, training is done entirely in python using Tensorflow.\n`DeepMimic.py` runs the visualizer used to view the simulation. Training is done with `mpi_run.py`, \nwhich uses MPI to parallelize training across multiple processes.\n\n`DeepMimic.py` is run by specifying an argument file that provides the configurations for a scene.\nFor example,\n```\npython DeepMimic.py --arg_file args\u002Frun_humanoid3d_spinkick_args.txt\n```\n\nwill run a pre-trained policy for a spinkick. Similarly,\n```\npython DeepMimic.py --arg_file args\u002Fplay_motion_humanoid3d_args.txt\n```\n\nwill load and play a mocap clip. To run a pre-trained policy for a simulated dog, use this command\n```\npython DeepMimic.py --arg_file args\u002Frun_dog3d_pace_args.txt\n```\n\nTo train a policy, use `mpi_run.py` by specifying an argument file and the number of worker processes.\nFor example,\n```\npython mpi_run.py --arg_file args\u002Ftrain_humanoid3d_spinkick_args.txt --num_workers 16\n```\n\nwill train a policy to perform a spinkick using 16 workers. As training progresses, it will regularly\nprint out statistics and log them to `output\u002F` along with a `.ckpt` of the latest policy.\nIt typically takes about 60 millions samples to train one policy, which can take a day\nwhen training with 16 workers. 16 workers is likely the max number of workers that the\nframework can support, and it can get overwhelmed if too many workers are used.\n\nA number of argument files are already provided in `args\u002F` for the different skills. \n`train_[something]_args.txt` files are setup for `mpi_run.py` to train a policy, and \n`run_[something]_args.txt` files are setup for `DeepMimic.py` to run one of the pretrained policies.\nTo run your own policies, take one of the `run_[something]_args.txt` files and specify\nthe policy you want to run with `--model_file`. Make sure that the reference motion `--motion_file`\ncorresponds to the motion that your policy was trained for, otherwise the policy will not run properly.\n\nSimilarly, to train a policy using amp, run with the corresponding argument files:\n```\npython mpi_run.py --arg_file args\u002Ftrain_amp_target_humanoid3d_locomotion_args.txt --num_workers 16\n```\n\nPretrained AMP models can be evaluated using:\n```\npython DeepMimic.py --arg_file args\u002Frun_amp_target_humanoid3d_locomotion_args.txt\n```\n\n## Interface\n- the plot on the top-right shows the predictions of the value function\n- right click and drag will pan the camera\n- left click and drag will apply a force on the character at a particular location\n- scrollwheel will zoom in\u002Fout\n- pressing 'r' will reset the episode\n- pressing 'l' will reload the argument file and rebuild everything\n- pressing 'x' will pelt the character with random boxes\n- pressing space will pause\u002Fresume the simulation\n- pressing '>' will step the simulation one step at a time\n\n\n## Mocap Data\nMocap clips are located in `data\u002Fmotions\u002F`. To play a clip, first modify \n`args\u002Fplay_motion_humanoid3d_args.txt` and specify the file to play with\n`--motion_file`, then run\n```\npython DeepMimic.py --arg_file args\u002Fplay_motion_humanoid3d_args.txt\n```\n\nThe motion files follow the JSON format. The `\"Loop\"` field specifies whether or not the motion is cyclic.\n`\"wrap\"` specifies a cyclic motion that will wrap back to the start at the end, while `\"none\"` specifies an\nacyclic motion that will stop once it reaches the end of the motion. Each vector in the `\"Frames\"` list\nspecifies a keyframe in the motion. Each frame has the following format:\n```\n[\n\tduration of frame in seconds (1D),\n\troot position (3D),\n\troot rotation (4D),\n\tchest rotation (4D),\n\tneck rotation (4D),\n\tright hip rotation (4D),\n\tright knee rotation (1D),\n\tright ankle rotation (4D),\n\tright shoulder rotation (4D),\n\tright elbow rotation (1D),\n\tleft hip rotation (4D),\n\tleft knee rotation (1D),\n\tleft ankle rotation (4D),\n\tleft shoulder rotation (4D),\n\tleft elbow rotation (1D)\n]\n```\n\nPositions are specified in meters, 3D rotations for spherical joints are specified as quaternions `(w, x, y ,z)`,\nand 1D rotations for revolute joints (e.g. knees and elbows) are represented with a scalar rotation in radians. The root\npositions and rotations are in world coordinates, but all other joint rotations are in the joint's local coordinates.\nTo use your own motion clip, convert it to a similar style JSON file.\n\n## Possible Issues and Solutions\n\nImportError: libGLEW.so.2.1: cannot open shared object file: No such file or directory\nsearch for libGLEW.so.2.1 and use the following command accordingly\nln \u002Fpath\u002Fto\u002FlibGLEW.so.2.1 \u002Fusr\u002Flib\u002Fx86----\u002FlibGLEW.so.2.1\nln \u002Fpath\u002Fto\u002FlibGLEW.so.2.1.0 \u002Fusr\u002Flib\u002Fx86----\u002FlibGLEW.so.2.1.0\n\nImportError: libBulletDynamics.so.2.88: cannot open shared object file: No such file or directory\nexport LD_LIBRARY_PATH=\u002Fusr\u002Flocal\u002Flib\u002F ( can be temporary when run in terminal) \n(libBullet file are present in that path - gets installed in that path after the command sudo make install while installing Bullet)\n\n## Misc.\n- A ROS compatible URDF of the humanoid is available here: https:\u002F\u002Fgithub.com\u002FEricVoll\u002Famp_motion_conversion\n\n","# 简介\n\n**此代码库现已弃用。** 请查看 [MimicKit](https:\u002F\u002Fgithub.com\u002Fxbpeng\u002FMimicKit\u002F)，其中包含了我们方法的更快速且易于使用的实现。\n\n以下论文配套的代码：\n\n“DeepMimic：基于示例引导的物理角色技能深度强化学习” \\\n(https:\u002F\u002Fxbpeng.github.io\u002Fprojects\u002FDeepMimic\u002Findex.html) \\\n![技能](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fxbpeng_DeepMimic_readme_3d030a97bee8.png)\n\n“AMP：用于风格化物理角色控制的对抗性运动先验” \\\n(https:\u002F\u002Fxbpeng.github.io\u002Fprojects\u002FAMP\u002Findex.html) \\\n![技能](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fxbpeng_DeepMimic_readme_fa7072791114.png)\n\n该框架使用强化学习训练一个模拟人形角色，以模仿来自动作捕捉数据的各种运动技能。\n\n## 依赖项\n\n``sudo apt install libgl1-mesa-dev libx11-dev libxrandr-dev libxi-dev``\n\n``sudo apt install mesa-utils``\n\n``sudo apt install clang``\n\n``sudo apt install cmake``\n\nC++：\n\n- Bullet 2.88 (https:\u002F\u002Fgithub.com\u002Fbulletphysics\u002Fbullet3\u002Freleases)\n\n  从上述链接下载 Bullet 2.88，并使用以下命令进行安装。\n  \n\t``.\u002Fbuild_cmake_pybullet_double.sh``\n\t\n\t``cd build_cmake``\n\t\n\t``sudo make install``\n\n- Eigen (http:\u002F\u002Fwww.eigen.tuxfamily.org\u002Findex.php?title=Main_Page)（版本：3.3.7）\n\n\t``mkdir build && cd build``\n\t\n\t``cmake ..``\n\t\n\t``sudo make install``\n\n- OpenGL ≥ 3.2\n- freeglut (http:\u002F\u002Ffreeglut.sourceforge.net\u002F)（版本：3.0.0）\n\n\t``cmake .``\n\t\n\t``make``\n\t\n\t``sudo make install``\n  \n- glew (http:\u002F\u002Fglew.sourceforge.net\u002F)（版本：2.1.0）\n\n\t``make``\n\t\n\t``sudo make install``\n\t\n\t``make clean``\n\n其他：\n\n- SWIG (http:\u002F\u002Fwww.swig.org\u002F)（版本：4.0.0）\n\n\t``.\u002Fconfigure --without-pcre``\n\t\n\t``make``\n\t\n\t``sudo make install``\n\n- MPI \n\t- Windows：https:\u002F\u002Fdocs.microsoft.com\u002Fen-us\u002Fmessage-passing-interface\u002Fmicrosoft-mpi\n\t- Linux：`sudo apt install libopenmpi-dev`\n\n\nPython：\n\n- Python 3\n- PyOpenGL (http:\u002F\u002Fpyopengl.sourceforge.net\u002F)\n\n``pip install PyOpenGL PyOpenGL_accelerate``\n\n- Tensorflow (https:\u002F\u002Fwww.tensorflow.org\u002F)（版本：1.13.1）\n\n``pip install tensorflow`` \n- MPI4Py (https:\u002F\u002Fmpi4py.readthedocs.io\u002Fen\u002Fstable\u002Finstall.html)\n\n``pip install mpi4py``\n\n## 构建\n模拟环境是用 C++ 编写的，Python 封装器则是使用 SWIG 构建的。\n请注意，在安装 MPI4Py 之前必须先安装 MPI。在构建 Bullet 时，请务必通过编译标志 `USE_DOUBLE_PRECISION=OFF` 禁用双精度计算。\n\n### Windows\n封装器使用 `DeepMimicCore.sln` 进行构建。\n\n1. 在配置管理器中选择 `x64` 配置。\n\n2. 在 `DeepMimicCore` 项目的属性中，修改 `Additional Include Directories` 以指定：\n\t- Bullet 源代码目录\n\t- Eigen 头文件目录\n\t- Python 头文件目录\n\n3. 修改 `Additional Library Directories` 以指定：\n\t- Bullet 库目录\n\t- Python 库目录\n\n4. 使用 `Release_Swig` 配置构建 `DeepMimicCore` 项目，这将生成 `DeepMimicCore.py` 文件，位于 `DeepMimicCore\u002F` 目录下。\n\n\n### Linux\n1. 修改 `DeepMimicCore\u002F` 中的 `Makefile`，指定以下内容：\n\t- `EIGEN_DIR`：Eigen 头文件目录\n\t- `BULLET_INC_DIR`：Bullet 源代码目录\n\t- `PYTHON_INC`：Python 头文件目录\n\t- `PYTHON_LIB`：Python 库目录\n\n2. 构建封装器，\n\t```\n\tmake python\n\t```\n这将生成 `DeepMimicCore.py` 文件，位于 `DeepMimicCore\u002F` 目录下。\n\n\n## 使用方法\n一旦 Python 封装器构建完成，训练完全在 Python 中使用 Tensorflow 进行。\n`DeepMimic.py` 运行用于查看模拟的可视化工具。训练则使用 `mpi_run.py`，它利用 MPI 在多个进程之间并行化训练。\n\n运行 `DeepMimic.py` 时，需指定一个参数文件，该文件提供场景的配置信息。例如，\n```\npython DeepMimic.py --arg_file args\u002Frun_humanoid3d_spinkick_args.txt\n```\n\n将运行一个预先训练好的旋转踢腿策略。类似地，\n```\npython DeepMimic.py --arg_file args\u002Fplay_motion_humanoid3d_args.txt\n```\n\n将加载并播放一段动作捕捉片段。要运行一个模拟狗的预训练策略，可使用以下命令：\n```\npython DeepMimic.py --arg_file args\u002Frun_dog3d_pace_args.txt\n```\n\n要训练一个策略，可以使用 `mpi_run.py`，指定参数文件和工作进程的数量。例如，\n```\npython mpi_run.py --arg_file args\u002Ftrain_humanoid3d_spinkick_args.txt --num_workers 16\n```\n\n将使用 16 个工作进程训练一个执行旋转踢腿的动作策略。随着训练的进行，系统会定期打印统计数据，并将其记录到 `output\u002F` 目录中，同时保存最新的策略检查点文件（`.ckpt`）。通常需要约 6000 万次采样才能训练出一个策略，而在 16 个工作进程的情况下，这可能需要一天时间。16 个工作进程可能是该框架所能支持的最大数量，如果使用过多的工作进程，系统可能会不堪重负。\n\n`args\u002F` 目录中已经提供了多种不同技能的参数文件。`train_[something]_args.txt` 文件用于 `mpi_run.py` 训练策略，而 `run_[something]_args.txt` 文件则用于 `DeepMimic.py` 运行预训练策略。要运行您自己的策略，可以选取其中一个 `run_[something]_args.txt` 文件，并通过 `--model_file` 指定您想要运行的策略。请确保参考动作文件 `--motion_file` 与您的策略所训练的动作相匹配，否则策略将无法正常运行。\n\n同样，要使用 AMP 训练策略，可以使用相应的参数文件运行：\n```\npython mpi_run.py --arg_file args\u002Ftrain_amp_target_humanoid3d_locomotion_args.txt --num_workers 16\n```\n\n预训练的 AMP 模型可以通过以下方式评估：\n```\npython DeepMimic.py --arg_file args\u002Frun_amp_target_humanoid3d_locomotion_args.txt\n```\n\n## 界面\n- 右上角的图表显示价值函数的预测值\n- 右键拖动可平移相机\n- 左键拖动可在角色的特定位置施加力\n- 滚轮可缩放视图\n- 按下 'r' 键可重置当前回合\n- 按下 'l' 键可重新加载参数文件并重建所有内容\n- 按下 'x' 键可向角色投掷随机方块\n- 按下空格键可暂停或恢复模拟\n- 按下 '>' 键可逐帧推进模拟\n\n## 动作捕捉数据\n动作捕捉片段位于 `data\u002Fmotions\u002F` 目录下。要播放一个片段，首先修改 \n`args\u002Fplay_motion_humanoid3d_args.txt` 文件，并使用 `--motion_file` 指定要播放的文件，然后运行：\n```\npython DeepMimic.py --arg_file args\u002Fplay_motion_humanoid3d_args.txt\n```\n\n动作文件采用 JSON 格式。`\"Loop\"` 字段用于指定该动作是否为循环动作。\n`\"wrap\"` 表示循环动作会在结束时自动回到起点，而 `\"none\"` 则表示非循环动作，会在到达动作末尾时停止。`\"Frames\"` 列表中的每个向量代表动作中的一个关键帧。每个关键帧的格式如下：\n```\n[\n\t该帧持续时间（秒，1D），\n\t根节点位置（3D），\n\t根节点旋转（4D），\n\t胸部旋转（4D），\n\t颈部旋转（4D），\n\t右髋关节旋转（4D），\n\t右膝关节旋转（1D），\n\t右踝关节旋转（4D），\n\t右肩关节旋转（4D），\n\t右肘关节旋转（1D），\n\t左髋关节旋转（4D），\n\t左膝关节旋转（1D），\n\t左踝关节旋转（4D），\n\t左肩关节旋转（4D），\n\t左肘关节旋转（1D）\n]\n```\n\n位置以米为单位，球形关节的 3D 旋转用四元数表示 `(w, x, y, z)`，而转动关节（如膝盖和肘部）的 1D 旋转则用弧度表示的标量值。根节点的位置和旋转使用世界坐标系，其他所有关节的旋转则使用各自局部坐标系。若要使用您自己的动作片段，需将其转换为类似风格的 JSON 文件。\n\n## 可能的问题及解决方案\n\nImportError: libGLEW.so.2.1: 无法打开共享对象文件：没有这样的文件或目录  \n请查找 `libGLEW.so.2.1` 文件，并根据路径执行以下命令：\nln \u002Fpath\u002Fto\u002FlibGLEW.so.2.1 \u002Fusr\u002Flib\u002Fx86----\u002FlibGLEW.so.2.1  \nln \u002Fpath\u002Fto\u002FlibGLEW.so.2.1.0 \u002Fusr\u002Flib\u002Fx86----\u002FlibGLEW.so.2.1.0  \n\nImportError: libBulletDynamics.so.2.88: 无法打开共享对象文件：没有这样的文件或目录  \n可临时在终端中运行以下命令设置环境变量：  \nexport LD_LIBRARY_PATH=\u002Fusr\u002Flocal\u002Flib\u002F  \n（该路径下存在 Bullet 库文件——在安装 Bullet 时执行 `sudo make install` 命令后会将其安装到该路径）\n\n## 其他\n- 一份兼容 ROS 的人形机器人 URDF 文件可在此获取：https:\u002F\u002Fgithub.com\u002FEricVoll\u002Famp_motion_conversion","# DeepMimic 快速上手指南\n\n> **注意**：原代码库已弃用（deprecated）。作者推荐使用更新、更快且更易用的 [MimicKit](https:\u002F\u002Fgithub.com\u002Fxbpeng\u002FMimicKit\u002F)。本文档仅针对需要复现原始 DeepMimic 或 AMP 论文结果的开发者。\n\nDeepMimic 是一个基于深度强化学习的框架，用于训练模拟人形角色模仿动作捕捉（Mocap）数据中的各种运动技能。\n\n## 1. 环境准备\n\n### 系统要求\n- **操作系统**: Linux (推荐) 或 Windows\n- **编译器**: Clang, CMake\n- **图形库**: OpenGL >= 3.2\n- **Python**: Python 3\n- **并行计算**: MPI (多进程训练必需)\n\n### 前置依赖安装 (Linux)\n\n首先安装系统级基础依赖：\n\n```bash\nsudo apt install libgl1-mesa-dev libx11-dev libxrandr-dev libxi-dev\nsudo apt install mesa-utils\nsudo apt install clang\nsudo apt install cmake\nsudo apt install libopenmpi-dev\n```\n\n接下来编译安装 C++ 核心依赖（请严格按照版本要求）：\n\n**1. Bullet Physics (版本 2.88)**\n```bash\n# 下载 Bullet 2.88 源码后进入目录\n.\u002Fbuild_cmake_pybullet_double.sh\ncd build_cmake\n# 注意：构建时确保禁用双精度 (USE_DOUBLE_PRECISION=OFF)，脚本通常已处理\nsudo make install\n```\n\n**2. Eigen (版本 3.3.7)**\n```bash\nmkdir build && cd build\ncmake ..\nsudo make install\n```\n\n**3. freeglut (版本 3.0.0)**\n```bash\ncmake .\nmake\nsudo make install\n```\n\n**4. glew (版本 2.1.0)**\n```bash\nmake\nsudo make install\nmake clean\n```\n\n**5. SWIG (版本 4.0.0)**\n```bash\n.\u002Fconfigure --without-pcre\nmake\nsudo make install\n```\n\n### Python 依赖\n\n建议使用虚拟环境，并安装以下包：\n\n```bash\npip install PyOpenGL PyOpenGL_accelerate\npip install tensorflow==1.13.1\npip install mpi4py\n```\n\n## 2. 安装步骤 (构建核心库)\n\nDeepMimic 的核心仿真环境由 C++ 编写，需要通过 SWIG 构建 Python 接口。\n\n### Linux 构建流程\n\n1. 进入 `DeepMimicCore\u002F` 目录。\n2. 编辑 `Makefile`，配置以下路径变量：\n   - `EIGEN_DIR`: Eigen 头文件目录\n   - `BULLET_INC_DIR`: Bullet 源码目录\n   - `PYTHON_INC`: Python 头文件目录 (如 `\u002Fusr\u002Finclude\u002Fpython3.x`)\n   - `PYTHON_LIB`: Python 库文件目录 (如 `\u002Fusr\u002Flib\u002Fx86_64-linux-gnu`)\n\n3. 执行构建命令：\n```bash\nmake python\n```\n\n构建成功后，将在 `DeepMimicCore\u002F` 目录下生成 `DeepMimicCore.py` 文件。\n\n*(Windows 用户请使用 `DeepMimicCore.sln` 解决方案文件，选择 `x64` 和 `Release_Swig` 配置进行编译)*\n\n## 3. 基本使用\n\n构建完成后，所有训练和推理均在 Python 中通过 TensorFlow 运行。\n\n### 运行预训练模型 (可视化)\n\n使用 `DeepMimic.py` 加载参数文件来运行预训练策略或播放动作片段。\n\n**示例 1：运行旋转踢 (Spinkick) 预训练策略**\n```bash\npython DeepMimic.py --arg_file args\u002Frun_humanoid3d_spinkick_args.txt\n```\n\n**示例 2：播放动作捕捉片段**\n```bash\npython DeepMimic.py --arg_file args\u002Fplay_motion_humanoid3d_args.txt\n```\n\n**示例 3：运行狗的配速跑 (Pace) 策略**\n```bash\npython DeepMimic.py --arg_file args\u002Frun_dog3d_pace_args.txt\n```\n\n### 训练新策略\n\n使用 `mpi_run.py` 进行分布式训练。你需要指定参数文件和 worker 进程数量。\n\n**示例：训练旋转踢策略 (使用 16 个 worker)**\n```bash\npython mpi_run.py --arg_file args\u002Ftrain_humanoid3d_spinkick_args.txt --num_workers 16\n```\n\n- 训练统计信息和模型检查点 (`.ckpt`) 将保存在 `output\u002F` 目录。\n- 训练一个策略通常需要约 6000 万样本，在 16 个 worker 下耗时约 1 天。\n- **注意**：16 个 worker 通常是该框架支持的上限，过多可能导致性能下降。\n\n### 常用交互操作 (可视化界面)\n\n- **右键拖动**: 平移相机\n- **左键拖动**: 在特定位置对角色施加力\n- **滚轮**: 缩放视图\n- **R 键**: 重置当前回合\n- **L 键**: 重载参数文件并重建环境\n- **X 键**: 向角色投掷随机箱子\n- **空格键**: 暂停\u002F继续仿真\n- **> 键**: 单步推进仿真\n\n### 自定义动作数据\n\n动作文件位于 `data\u002Fmotions\u002F`，格式为 JSON。若要使用自己的动作：\n1. 将动作转换为指定的 JSON 格式（包含帧时长、根节点位置\u002F旋转、各关节旋转等）。\n2. 修改对应的 `args` 文件中的 `--motion_file` 路径。\n3. 确保 `--model_file` 指向与该动作匹配的训练策略。","某游戏工作室的动作程序员正致力于为一款写实风格格斗游戏开发高难度的空中连招，需要角色在保持物理平衡的同时精准复现专业武术家的动作捕捉数据。\n\n### 没有 DeepMimic 时\n- **动作僵硬失真**：传统逆向运动学（IK）难以处理高速旋转踢腿等复杂动态，导致角色脚部滑步或肢体穿透地面，缺乏真实打击感。\n- **平衡控制困难**：手动编写维持平衡的物理反馈代码耗时极长，角色在执行大幅度过招时极易摔倒，需反复微调参数。\n- **开发效率低下**：每新增一个招式都需要美术与程序紧密配合进行长达数周的手工调优，无法快速迭代大量技能库。\n- **物理交互割裂**：预设动画无法实时响应环境碰撞，角色被击中或在崎岖地形移动时，动作显得像“播放录像”而非物理模拟。\n\n### 使用 DeepMimic 后\n- **动作自然流畅**：利用深度强化学习，角色能完美复刻动作捕捉中的高难度旋踢，自动解决脚部滑步问题，动作具备真实的惯性质感。\n- **自适应平衡**：模型在训练中学会了物理平衡策略，即使受到外力干扰或处于单脚着地状态，也能自动调整姿态避免摔倒。\n- **自动化技能生成**：只需导入新的动作捕捉片段作为参考，DeepMimic 即可自动训练出对应的控制策略，将新招式开发周期从数周缩短至数小时。\n- **动态物理响应**：生成的技能基于物理引擎运行，角色能根据实时碰撞和地形变化动态调整动作细节，实现真正的“活”的角色控制。\n\nDeepMimic 通过将动作捕捉数据与物理仿真深度融合，让虚拟角色在拥有电影级动作表现力的同时，具备了适应复杂环境的真实物理智能。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fxbpeng_DeepMimic_3d030a97.png","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,88,92,96,100,103,107,111],{"name":85,"color":86,"percentage":87},"C++","#f34b7d",87.7,{"name":89,"color":90,"percentage":91},"Python","#3572A5",7.9,{"name":93,"color":94,"percentage":95},"HTML","#e34c26",3.4,{"name":97,"color":98,"percentage":99},"GLSL","#5686a5",0.3,{"name":101,"color":102,"percentage":99},"Shell","#89e051",{"name":104,"color":105,"percentage":106},"C","#555555",0.2,{"name":108,"color":109,"percentage":110},"Makefile","#427819",0.1,{"name":112,"color":77,"percentage":113},"SWIG",0,3001,527,"2026-04-03T20:58:17","MIT",5,"Linux, Windows","未说明 (依赖 OpenGL >= 3.2 进行渲染，深度学习框架为 TensorFlow 1.13.1，通常建议 NVIDIA GPU 但未明确指定型号或 CUDA 版本)","未说明",{"notes":123,"python":124,"dependencies":125},"该项目代码库已弃用，作者推荐使用 MimicKit。构建前需安装 C++ 依赖（Bullet, Eigen, freeglut, glew, SWIG）并编译生成 Python 包装器 (DeepMimicCore.py)。训练使用 MPI 进行多进程并行（推荐 16 个 worker），需先安装 MPI 再安装 mpi4py。编译 Bullet 时需关闭双精度标志 (USE_DOUBLE_PRECISION=OFF)。Linux 下若出现共享库加载错误，需手动配置 LD_LIBRARY_PATH 或创建软链接。","3",[126,127,128,129,130,131,132,133,134,135],"Tensorflow==1.13.1","Bullet==2.88","Eigen==3.3.7","freeglut==3.0.0","glew==2.1.0","SWIG==4.0.0","MPI","PyOpenGL","mpi4py","clang",[18],"2026-03-27T02:49:30.150509","2026-04-06T09:08:01.688425",[140,145,150,155,159,163],{"id":141,"question_zh":142,"answer_zh":143,"source_url":144},18459,"在 Windows 上构建时遇到 LNK2001 未解析的外部符号错误（涉及 btStaticPlaneShape, btMultiBody 等），如何解决？","这通常是链接器找不到预编译库或配置不匹配导致的。请检查系统路径设置，并确保 Bullet 库的编译配置与项目一致。关键解决方案是设置以下预处理器定义：BT_THREADSAFE=1, BT_USE_DOUBLE_PRECISION, _DEBUG=1。确保这些标志在构建 DeepMimicCore 时已正确启用。","https:\u002F\u002Fgithub.com\u002Fxbpeng\u002FDeepMimic\u002Fissues\u002F75",{"id":146,"question_zh":147,"answer_zh":148,"source_url":149},18460,"运行程序时出现 freeglut 内部错误：'FBConfig with necessary capabilities not found'，该如何修复？","该错误通常由 OpenGL 版本与操作系统或显卡驱动不匹配引起。尝试升级操作系统和 NVIDIA 显卡驱动。如果问题依旧，可以在代码中注释掉初始化上下文版本的行。具体操作是在 `DeepMimic.py` 文件（或相关初始化代码）中找到 `glutInitContextVersion(3, 2)` 这一行并将其注释掉，然后重新运行程序。","https:\u002F\u002Fgithub.com\u002Fxbpeng\u002FDeepMimic\u002Fissues\u002F15",{"id":151,"question_zh":152,"answer_zh":153,"source_url":154},18461,"Python 导入 _DeepMimicCore 失败，报错 'DLL load failed' 或 'undefined symbol'，怎么办？","这通常是因为 Bullet 物理引擎的版本不兼容或未正确安装链接。建议将 Bullet 升级到 2.88 版本（而不是 2.87）。在安装过程中，运行 `.\u002Fbuild_cmake_pybullet_double.sh` 脚本后，务必执行 `sudo make install` 命令，以确保 BulletDynamics 和 BulletCollision 库被正确链接到系统中。","https:\u002F\u002Fgithub.com\u002Fxbpeng\u002FDeepMimic\u002Fissues\u002F12",{"id":156,"question_zh":157,"answer_zh":158,"source_url":154},18462,"构建 DeepMimic 时遇到链接错误，怀疑是 Bullet 库的问题，正确的安装步骤是什么？","如果是 Bullet 库导致的链接错误，请参考专门的安装指南。关键步骤包括使用双精度标志构建 Bullet，并在构建完成后执行安装命令。可以参照社区整理的安装文档（如 https:\u002F\u002Fgithub.com\u002Fbsivanantham\u002FDeepMimic\u002Fblob\u002Fmaster\u002FREADME.Install.md），确保在执行 `.\u002Fbuild_cmake_pybullet_double.sh` 后运行 `sudo make install` 来解决 linker 错误。",{"id":160,"question_zh":161,"answer_zh":162,"source_url":144},18463,"Windows 下编译报错提示找不到 opencv 依赖，但项目声称不需要 opencv，这是怎么回事？","这是一个误导性的链接器错误。虽然报错提及 opencv，但 DeepMimic 核心本身不应依赖 opencv。问题的根源在于链接器无法找到预编译的 Bullet 库。请忽略 opencv 相关的提示，转而检查系统环境变量（System Path）是否正确包含了 Bullet 库的路径，并确认编译标志（如 BT_USE_DOUBLE_PRECISION）是否与库的编译方式一致。",{"id":164,"question_zh":165,"answer_zh":166,"source_url":149},18464,"修改了 glutInitContextVersion 仍然报错，还需要做其他修改吗？","如果在注释掉 `glutInitContextVersion(3, 2)` 后问题仍然存在，这通常意味着底层的图形驱动或 OpenGL 环境与当前系统严重不匹配。除了修改代码外，必须升级显卡驱动（例如 NVIDIA Driver 到较新版本）或升级操作系统（如 Ubuntu 16.04 及以上），以确保支持所需的 OpenGL 特性。单纯修改代码可能无法解决硬件层面的兼容性问题。",[]]