首页 体育 教育 财经 社会 娱乐 军事 国内 科技 互联网 房产 国际 女人 汽车 游戏

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

2019-12-18

看了这段 demo 之后,网友戏称,「你的律师函现已在路上了」。

这段「看到停不下来」的 demo 来自一位用户名为「zh-plus」的 GitHub 网友。他用 CVPR 2019 接纳论文中的一项技能完成了这种作用。

完成地址:https://github.com/zh-plus/video-to-pose3D

这项技能是 3D 人体姿势猜测的一种,项目作者运用该技能从原版视频中猜测出了人物的 3D 姿势,无需贵重的拍照设备,也不需求在人物身体的要害点上贴标签。

该技能的论文作者是来自苏黎世联邦理工学院、Facebook 和谷歌大脑的团队,相关论文《3D human pose estimation in video with temporal convolutions and semi-supervised training》宣布在 2019 年的 CVPR 会议上。

在该论文中,研讨者提出了一个用于 3D 人体姿势猜测的全卷积模型,只需根据 2D 的要害点执行时刻卷积,就能够对视频中的人体完成精准的 3D 姿势猜测。

此外,他们还介绍了一种简略、高效的半监督练习办法——反向投影,能够运用没有标示的视频数据。具体步骤能够归纳为:为没有标签的视频猜测 2D 要害点→猜测 3D 姿势→将其反向投影到输入的 2D 要害点上。

在有监督的情况下,这个全卷积模型在 Human3.6M 数据集大将差错下降了 11%,在 HumanEva-I 数据集上也完成了很大的改善。在标示数据稀缺的半监督情况下,这种反向投影的办法也优于之前的 SOTA 成果。

论文地址:https://arxiv.org/abs/1811.11742

当然,除了唱、跳、Rap 和篮球,你也能够自己着手做出各种「专业选手」的 3D 模型。

拳击。

打篮球。

高雅的「冰场公主」。

研讨者提出的这一办法聚集于视频中的 3D 人体姿势猜测。他们以 SOTA 办法为根底,将问题界说为 2D 要害点检测和 3D 姿势估量。尽管把问题分隔能够下降使命的难度,但由于多个 3D 姿势能够映射到一个 2D 要害点上,因而处理起来仍然是含糊的。

之前的研讨经过运用循环神经网络建模时刻信息来处理这种不置可否的问题,但卷积网络在建模使命中的时刻信息方面现已十分成功。卷积模型支撑多帧的并行处理,而这是循环网络所做不到的。

在这项研讨工作中,研讨者提出了一个全卷积架构。该架构能够在 2D 要害点上执行时刻卷积,以完成精准的视频 3D 姿势猜测,如下图 1 所示。

图 1: 研讨者提出的时刻卷积模型以 2D 要害点序列为输入,生成 3D 姿势猜测。

这一办法兼容一切 2D 要害点检测器,而且能够经过扩展卷积来高效处理大型语境。与依靠 RNN 的办法比较,该模型十分精确、简练和高效,在核算杂乱度和参数量上都是如此。

有了这种精确、高效的架构,研讨者将目光转向缺少标示数据的范畴,引入了一个运用无标示视频数据进行半监督练习的新范式。

缺少标示数据的范畴关于需求很多符号练习数据的神经网络模型特别具有挑战性,而搜集用于 3D人体姿势估量的符号需求贵重的动作捕捉设置和冗长的记载 session。

本文研讨者所提办法的创意来自于无监督机器翻译的循环一致性,在此过程中,中间语言和原语言之间的双向翻译应接近于恒等函数。

具体来说,研讨者先运用 2D 要害点检测器来猜测一个无标签视频的 2D 要害点,然后猜测 3D 姿势,最终将其映射回 2D 空间。

与单帧基线比较,该模型能够运用时刻来处理含糊问题并削减颤动/噪声。与现有的 SOTA 办法比较,该办法在监督和半监督设置下都逾越了之前体现最好的模型。研讨者提出的监督模型优于其他模型,即便后者运用额定的符号数据进行练习。

现在,就让咱们动着手指,将视频中的人物一键转为 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 视频途径。假如指定,该脚本将在视频顶部出现骨架叠加。假如未指定,则将出现黑色布景;

--viz-skip: 越过指定视频的前 N 帧默许值: 0;

--viz-output: 输出文件名 ;

--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 存档。

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

从摄像头 0 中生成 Walking的可视化图,并将前几帧输出到帧率为 25 FPS 的 GIF 动画中。假如你删去--viz-video参数,则人体动作线条将出现在空白布景上。

Human3.6M 数据集上的可视化作用图能够当即完成,但 HumanEva 数据集上的可视化相对较为困难,由于有必要对输入的原始视频进行手动切割。此外,无效帧和软件同步也使可视化变得更杂乱。尽管如此,经过选取验证序列中的数据块 0 以及运用--viz-skip 丢掉前几帧,你仍然能够获得杰出的可视化作用。

假如想要了解能够越过的帧数,请检查 data/prepare_data_humaneva.py 上的 sync_data。

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 Validate/S2 --viz-action Walking 1 chunk0 --viz-camera 0 --viz-output output_he.gif --viz-size 3 --viz-downsample 2 --viz-video /path/to/videos/S2/Walking_1_.avi --viz-skip 115 --viz-limit 60

未标示视频的可视化愈加简单,由于这些视频不需求与 ground truth 保持一致。在这种情况下,即便关于 HumanEva 数据集而言,可视化也是能够当即完成的。

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_.avi --viz-limit 60

更多完成细节能够拜见该论文的 GitHub 项目。

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

热门文章

随机推荐

推荐文章