发布者:Dan Oved,谷歌创意实验室的自由创意技术员,纽约大学ITP的研究生。
编辑和插图:艾琳阿尔瓦拉多,创意技术师和亚历克西斯加洛,自由平面设计师,在谷歌创意实验室。
与Google Creative Lab合作,我很高兴地宣布发布TensorFlow.js版本的PoseNet,一个允许在浏览器中进行实时人体姿势估计的机器学习模型。在这里试一试现场演示。
![c46256524cdffdec90866dcaab91d019.gif](https://i-blog.csdnimg.cn/blog_migrate/05e3385d2d2f6d2a82be3d170994befb.gif)
![f2ab500c1af8e9acf90095f738c8b20e.gif](https://i-blog.csdnimg.cn/blog_migrate/ab9aa1a174dab9223ac68019da565626.gif)
PoseNet可以使用单一姿势或多姿势算法检测图像和视频中的人物-所有这些都可以在浏览器中进行
那么什么是姿势估计呢?姿势估计是指计算机视觉技术,它可以检测图像和视频中的人物,以便确定,例如,某人的肘部在图像中出现的位置。更清楚的是,这项技术并没有识别出图像中的人,也没有与姿势检测相关的个人识别信息。算法只是简单地估计关键身体关节的位置。
好吧,为什么一开始就让人兴奋?姿势估计有很多用途,从对身体做出反应的交互式 装置到增强现实、动画、健身用途等等。我们希望这个模型的可访问性能够激励更多的开发者和制作者在他们自己独特的项目中进行姿势检测的实验和应用。虽然许多替代姿态检测系统都是开源的,但所有这些系统都需要专门的硬件和或摄像头,以及相当多的系统设置。随着PoseNet在TensorFlow.js上的运行,任何拥有一个配备了不错的网络摄像头的桌面或手机的人都可以在网络浏览器中体验这项技术。由于我们已经开放了该模型的源代码,Javascript开发人员只需几行代码就可以修补并使用这项技术。此外,这实际上有助于保护用户隐私。由于TensorFlow.js上的PoseNet在浏览器中运行,因此任何姿势数据都不会离开用户的计算机。
在我们深入研究如何使用这个模型之前,首先向所有使这个项目成为可能的人欢呼:George Papandreou和Tyler Zhu,谷歌的研究人员,他们是论文的幕后推动者致力于精确的野外多人姿势估计和PersonLab:基于自下而上部分的个人姿势估计和实例分割,几何嵌入模型,Nikhil Thorat和Daniel Smilkov,TensorFlow.js库背后的Google Brain团队的工程师。
PoseNet入门
PoseNet可用于估计单个姿势或多个姿势,这意味着算法的一个版本只能检测图像/视频中的一个人,而另一个版本可以检测图像/视频中的多个人。为什么有两个版本?单人姿势检测器更快更简单,但只需要图像中的一个对象(稍后会详细介绍)。我们先介绍一下单体式,因为它更容易跟随。
在高层次上,姿态估计分为两个阶段:
- 通过卷积神经网络输入RGB图像
- 使用单姿态或多姿态解码算法对模型输出的姿态(Pose)、姿态置信度得分(Pose confidence score)、关键点位置(Keypoint Position)和关键点置信度得分(Keypoint Confidence Score)进行解码。
等等,这些关键词是什么意思?让我们回顾一下最重要的:
- 姿态(Pose) — 在最高级别,PoseNet将返回一个pose对象,该对象包含每个检测到的人的关键点列表和实例级置信度分数。 PoseNet为检测到的每个人以及检测到的每个姿势关键点返回置信值。图片来源:“Microsoft Coco:当前数据集中的公共对象”, https://cocodataset.org.
- 姿态置信度得分(Pose confidence score) — 这决定了姿态估计的总体置信度。范围在0.0到1.0之间。它可以用来隐藏被认为不够强壮的姿势。
- 关键点(Keypoint) — 估计的人的姿势的一部分,如鼻子、右耳、左膝、右脚等。它包含一个位置和一个关键点的信心得分。PoseNet目前检测到17个关键点,如下图所示: