Project Icon

vid2player3d

基于广播视频的物理模拟网球技能学习系统

vid2player3d是一个从广播视频中学习网球技能的物理模拟系统。该项目结合物理模拟和机器学习技术,使用分层控制器架构,包括低级模仿策略、运动嵌入和高级规划策略。系统在IsaacGym环境中实现,能够捕捉真实选手的动作特征,为虚拟体育训练和娱乐应用提供了新的技术方案。

从广播视频中学习物理模拟的网球技能

张浩天、袁野、Viktor Makoviychuk、郭云荣、Sanja Fidler、彭学斌、Kayvon Fatahalian

SIGGRAPH 2023 (最佳论文荣誉提名)

论文 | 项目 | 视频

注意:当前发布版本提供了分层控制器的实现,包括低级模仿策略、动作嵌入和高级规划策略,以及在IsaacGym中的环境设置。不幸的是,由于许可问题,目前无法提供训练好的模型,因此演示无法运行。

新闻

[2023/11/28] 发布了低级策略的训练代码。

[2023/11/01] 发布了分层控制器的演示代码。

环境设置

1. 下载IsaacGym并创建Python虚拟环境

您可以从官方网站下载IsaacGym预览版4。 然后从这里下载Miniconda3。 通过运行IsaacGym中的create_conda_env_rlgpu.sh创建名为rlgpu的conda虚拟环境,Python3.7或Python3.8均可。 注意,如果在运行IsaacGym时遇到错误ImportError: libpython3.7m.so.1.0: cannot open shared object file: No such file or directory,您可能需要运行以下命令或将其添加到您的.bashrc中。

export LD_LIBRARY_PATH=<您的CONDA路径>envs/rlgpu/lib/

2. 安装依赖项

进入创建的虚拟环境并运行安装脚本。

conda activate rlgpu
bash install.sh

要安装低级策略的额外依赖项,请按照install_embodied_pose.sh中的说明进行操作。

3. 安装smpl_visualizer以可视化结果

克隆Git仓库,然后运行

bash install.sh

4. 下载数据/检查点

数据下载到vid2player3d/data

将动作嵌入和训练策略的检查点下载到vid2player3d/results(目前不可用)。

下载SMPL,首先在这里注册,然后将模型(男性和女性模型)下载到smpl_visualizer/data/smpl,并将文件重命名为SMPL_MALE.pklSMPL_FEMALE.pkl

对于训练低级策略,还需要将smpl模型文件复制到vid2player3d/data/smpl

演示

这些演示需要训练好的模型,目前不可用。

单人模式

在单人模式下,玩家将对来自对面的连续网球做出反应。 以下脚本运行模拟并在线渲染结果。模拟将在300帧后重置。您可以通过将--cfg更改为djokovicnadal来更换玩家。

python vid2player/run.py --cfg federer --rl_device cuda:0 --test --num_envs 1 --episode_length 300 --seed 0 --checkpoint latest --enable_shadow

以下脚本将批量运行模拟并离线渲染结果视频,保存在out/video目录下。您也可以将--record更改为--record_scenepic,这将把结果保存为交互式html文件,存放在out/html目录下。请注意,保存的html文件较大,可能需要几秒钟才能加载。

python vid2player/run.py --cfg federer --rl_device cuda:0 --test --num_envs 8192 --episode_length 300 --seed 0 --checkpoint latest --select_best --enable_shadow --num_rec_frames 300 --num_eg 5 --record --headless

双人对战

在双人对战设置中,两名球员将相互进行网球对抗。 以下脚本运行模拟并在线渲染结果。如果球被漏接或出界,模拟将重置。您可以通过将--cfg更改为nadal_djokovic来切换球员。更多球员设置将很快添加。

python vid2player/run.py --cfg federer_djokovic --rl_device cuda:0 --test --num_envs 2 --episode_length 10000 --seed 0 --checkpoint latest --enable_shadow

以下脚本将批量运行模拟并离线渲染结果视频,保存在out/video目录下。

python vid2player/run.py --cfg federer_djokovic --rl_device cuda:0 --test --num_envs 8192 --episode_length 10000 --seed 0 --checkpoint latest --enable_shadow --headless --num_rec_frames 600 --num_eg 5 --record

训练

低级策略

我们在embodied_pose中提供了训练低级策略的代码。如论文所述,低级策略使用AMASS动作和网球动作分两个阶段进行训练。您可以运行以下脚本执行两阶段训练(假设动作数据可用)。

python embodied_pose/run.py --cfg amass_im --rl_device cuda:0 --headless
python embodied_pose/run.py --cfg djokovic_im --rl_device cuda:0 --headless

convert_amass_isaac.py展示了如何将AMASS动作数据集转换为我们的训练代码可用的格式。

动作嵌入

我们在vid2player/motion_vae中提供了训练动作嵌入的代码(假设动作数据按照Video3DPoseDataset中描述的格式组织)。

高级策略

我们还在vid2player中提供了训练高级策略的代码。如论文所述,我们设计了一个分三个阶段的课程学习。您可以运行以下脚本执行课程训练(假设低级策略和动作嵌入的检查点可用)。

python vid2player/run.py --cfg federer_train_stage_1 --rl_device cuda:0 --headless
python vid2player/run.py --cfg federer_train_stage_2 --rl_device cuda:0 --headless
python vid2player/run.py --cfg federer_train_stage_3 --rl_device cuda:0 --headless

引用

@article{
  zhang2023vid2player3d,
  author = {Zhang, Haotian and Yuan, Ye and Makoviychuk, Viktor and Guo, Yunrong and Fidler, Sanja and Peng, Xue Bin and Fatahalian, Kayvon},
  title = {Learning Physically Simulated Tennis Skills from Broadcast Videos},
  journal = {ACM Trans. Graph.},
  issue_date = {August 2023},
  numpages = {14},
  doi = {10.1145/3592408},
  publisher = {ACM},
  address = {New York, NY, USA},
  keywords = {physics-based character animation, imitation learning, reinforcement learning},
}

参考文献

本仓库基于以下仓库构建:

以下是复现视频标注流程的其他参考:

  • 球员检测和跟踪:Yolo4
  • 2D 姿态关键点检测:ViTPose
  • 3D 姿态估计和网格恢复:HybrIK
  • 2D 足部接触检测
  • 全局根轨迹优化:GLAMR
  • 网球场地线检测

联系方式

如有任何关于本项目的问题,请通过 haotianz@nvidia.com 联系 Haotian Zhang。

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号