3D模型学会了「唱、跳、Rap、篮球」,GitHub网友也沉迷,鸡你太美

2023年2月5日15:36:48 发表评论
摘要

点击上方 \”程序员小乐\”关注, 星标或置顶一起成长 第一时间与你相约 每日英文 I\’m not ev

点击上方 \"程序员小乐\"关注, 星标或置顶一起成长

第一时间与你相约

每日英文

I\'m not even upset, hurt, or angry anymore. I\'m just tired. I\'m tired of putting in more effort than I receive .

我并不失落,我也没有受伤,没有生气,我只是有点累了,我厌倦了付出太多,回报太少。

每日掏心话

你可不可以原谅我,可不可以再等等我。生命中最难的阶段不是没有人懂你,而是你不懂你自己。

来自:公众号 机器之心 | 责编:乐乐

拳击。

图 1:研究者提出的时间卷积模型以 2D 关键点序列(下)为输入,生成 3D 姿态预测(上)。

这一方法兼容所有 2D 关键点检测器,并且可以通过扩大卷积来高效处理大型语境。与依赖 RNN 的方法相比,该模型非常准确、简洁和高效,在计算复杂度和参数量上都是如此。

有了这种准确、高效的架构,研究者将目光转向缺乏标注数据的领域,引入了一个利用无标注视频数据进行半监督训练的新范式。

缺乏标注数据的领域对于需要大量标记训练数据的神经网络模型尤其具有挑战性,而收集用于 3D 人体姿态估计的标记需要昂贵的动作捕捉设置和冗长的记录 session。

本文研究者所提方法的灵感来自于无监督机器翻译的循环一致性(cycle consistency),在此过程中,中间语言和原语言之间的双向翻译应接近于恒等函数。

具体来说,研究者先使用 2D 关键点检测器来预测一个无标签视频的 2D 关键点,然后预测 3D 姿态,最后将其映射回 2D 空间。

与单帧基线相比,该模型可以利用时间来解决模糊问题并减少抖动/噪声。与现有的 SOTA 方法相比,该方法在监督和半监督设置下都超越了之前表现最好的模型。研究者提出的监督模型优于其他模型,即使后者利用额外的标记数据进行训练。

3D 姿态预测的实现

现在,就让我们动动手指,将视频中的人物一键转为 3D 姿态。

你可以同时指定「--evaluate」和「--render」来渲染视频。这个脚本会生成一个可视化的效果,包含三个可视窗口:2D 关键点输入、3D 重建和 3D ground truth。注意,当你指定视频时,2D 检测仍然会通过既定参数从数据集中加载。你既可以选择正确的视频,也可以可视化未标注的视频,这样的话 ground truth 就不会显示了。

下面是一份可视化相关的命令行参数列表:

--viz-subject: 渲染对象, e.g. S1;

--viz-action: 渲染动作, e.g. Walking 或者 Walking 1;

--viz-camera: 要渲染的摄像机, 对于 Human3.6M 来说从 0 到 3,对于 HumanEva 来说从 0 到 2。默认值: 0;

--viz-video: 需要呈现的 2D 视频路径。如果指定,该脚本将在视频顶部呈现骨架叠加。如果未指定,则将呈现黑色背景(但仍将显示 2D 检测);

--viz-skip: 跳过指定视频的前 N 帧(在 HumanEva 时有意义)默认值: 0;

--viz-output: 输出文件名 ( .mp4 或者.gif 格式);

--viz-bitrate: 设置 MP4 视频的比特率。默认值: 3000;

--viz-no-ground-truth: 默认情况下,视频包含三个可视图层:2D 动作输入,3D 重建和 3Dground truth。这里的意思是删除最后一个;

--viz-limit: 仅渲染前 N 帧。默认情况下,将渲染所有帧;

--viz-downsample: 按指定因子对视频进行下采样,即降低帧频。例如,如果设置为 2,则帧速率从 50 FPS 降低到 25 FPS。默认值:1(不进行下采样);

--viz-size: 输出分辨率乘数。较高=较大图像。默认值:5;

--viz-export: 将 3D 节点坐标(在摄影空间中)导出到指定的 NumPy 存档。

示例 1:python run.py -k cpn_ft_h36m_dbb -arc 3,3,3,3,3 -c checkpoint --evaluate pretrained_h36m_cpn.bin --render --viz-subject S11 --viz-action Walking --viz-camera 0 --viz-video \"/path/to/videos/S11/Videos/Walking.54138969.mp4\" --viz-output output.gif --viz-size 3 --viz-downsample 2 --viz-limit 60

未标注视频的可视化更加容易,因为这些视频不需要与 ground truth 保持一致。在这种情况下,即使对于 HumanEva 数据集而言,可视化也是可以立即实现的。

示例 3:python run.py -d humaneva15 -k detectron_pt_coco -str Train/S1,Train/S2,Train/S3 -ste Validate/S1,Validate/S2,Validate/S3 -c checkpoint --evaluate pretrained_humaneva15_detectron.bin --render --viz-subject Unlabeled/S4 --viz-action \"Box 2\" --viz-camera 0 --viz-output output_he.gif --viz-size 3 --viz-downsample 2 --viz-video \"/path/to/videos/S4/Box_2_(C1).avi\" --viz-limit 60更多实现细节可以参见该论文的 GitHub 项目。

项目地址:github.com/facebookresearch/VideoPose3D

欢迎在留言区留下你的观点,一起讨论提高。如果今天的文章让你有新的启发,学习能力的提升上有新的认识,欢迎转发分享给更多人。

猜你还想看

阿里、腾讯、百度、华为、京东最新面试题汇集

Linux 系统 CPU 100% 异常排查实践与总结

Java 线程的 5 个使用技巧

MyBatis 的9种设计模式,我猜你不一定知道!

关注「程序员小乐」,收看更多精彩内容嘿,你在看吗?

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: