动态瑜伽 静态瑜伽 初学者

Ever since I have started running a couple years ago, I have come to understand the importance of stretching. The problem is, I’m no good at it! When I was introduced to techniques like pose estimation and computer vision in general, I was excited to apply them to this real world problem of yoga form.

自从几年前开始跑步以来,我已经了解了伸展运动的重要性。 问题是,我不擅长! 当我向我介绍一般的姿势估计和计算机视觉等技术时,我很高兴将其应用于瑜伽世界这一现实世界中的问题。

Pose Estimation, figure courtesy of Nanonets: A 2019 guide to Human Pose Estimation with Deep Learning
姿势估计,图由Nanonets提供:2019年深度学习人体姿势估计指南

Pose estimation is a sub-field of computer vision that concerns itself with recognizing individual parts that make up a body (usually a human body). While there are several techniques to achieve this, the approach I use starts by running incoming images through a CNN classifier trained to look for humans. If and when a human body is detected, the pose estimator network looks for the joints and appendages it’s trained on. I can then display the image back to the user with markings on where the computer has judged a body’s parts to be.

姿势估计是计算机视觉的一个子领域,它与识别组成身体(通常是人体)的各个部分有关。 尽管有几种方法可以实现这一点,但我使用的方法是通过经过训练以寻找人类的CNN分类器运行传入图像开始的。 如果并且当检测到人体时,姿势估算器网络会寻找对其进行训练的关节和附肢。 然后,我可以将图像显示给用户,并在计算机判断出人体部位的位置上带有标记。

From the beginning, I knew I wanted my pose analyzer to judge my poses in real time, through my laptop camera. As it turns out, this seriously limited my options for pose estimation models. First I tried the widely used OpenPose from Carnegie Mellon University. As with all computer vision and object detection, there is a trade-off between accuracy and speed. With the larger model size and the puny compute on my personal laptop, this state of the art pose estimator would not serve my purposes. What I finally settled on was a MobileNet for general human detection and a small ResNet model for appendage detection, both of which can be found in Gluon’s Modelzoo. These smaller networks allow my measly computing resources to judge video frames from my webcam in real time (after some finagling). Even by only classifying every other frame of video, the output is not as smooth as I had hoped.

从一开始,我就知道我希望我的姿势分析仪能够通过笔记本电脑摄像头实时判断我的姿势。 事实证明,这严重限制了我对姿势估计模型的选择。 首先,我尝试了卡耐基梅隆大学(Carnegie Mellon University)广泛使用的OpenPose 。 与所有计算机视觉和目标检测一样,在精度和速度之间要进行权衡。 随着更大的模型尺寸和我的便携式笔记本电脑上微不足道的计算,这种最先进的姿势估计器将无法满足我的目的。 我最终选择的是用于普通人类检测的MobileNet和用于附件检测的小型ResNet模型,这两种方法都可以在Gluon的Modelzoo中找到。 这些较小的网络使我微不足道的计算资源可以实时(在查找后)判断来自网络摄像头的视频帧。 即使仅对视频的其他所有帧进行分类,输出也不如我所希望的那样平滑。

At this point my computer could track the appendages of humans in the frame but could not say anything about their yoga form. To accomplish this, I decided to add another network to the image pipeline. Instead of another cumbersome CNN, I thought I could cleverly use a simple ANN trained on the angles between the appendages of the body in question. My hope was that if I could calculate/record the inter-joint angles of bodies in the webcam for various yoga poses, the poses would be linearly separable (albeit in higher dimensions). If this were true, anytime the computer saw a body making a particular combination of angles, it would know which yoga pose they were attempting. In fact, the confidence in the prediction of the pose could even be used as an indicator for the quality of form (if the training data used was from an experience yogi).

在这一点上,我的计算机可以跟踪人体在框架中的附属物,但无法说出他们的瑜伽形式。 为此,我决定在图像管道中添加另一个网络。 我认为我可以聪明地使用一个经过训练的简单的人工神经网络,而不是另一个笨拙的CNN,该人工神经网络在所讨论的身体的附属肢体之间的角度进行训练。 我的希望是,如果我可以针对各种瑜伽姿势计算/记录网络摄像头中各个身体的关节间角度,则这些姿势将是线性可分离的(尽管尺寸较大)。 如果这是真的,那么只要计算机看到一个身体将某个角度组合成特定的角度,它就会知道他们正在尝试哪种瑜伽姿势。 实际上,对姿势预测的信心甚至可以用作形式质量的指标(如果使用的训练数据来自经验瑜伽师)。

This is where Yoga with Uliana, a popular Youtube yogi, comes in. From her 30 Most Common Beginning Yoga Poses video, I selected 15 easily distinguishable poses, ran the video clips through my pose estimator, recorded the angles of each joint for every frame of each clip. Now I had a labeled dataset with several hundred examples to train my ANN on. I used a small Keras model (only two layers), and was able to correctly predict 93% of the poses in my validation set. The best part is, when I added this predictor to my already bloated pipeline, there was no drop in frame rate! Perfect!

这就是流行的Youtube瑜伽士Uliana的Yoga。在她的30个最常见的初学者瑜伽姿势视频中,我选择了15个易于区分的姿势,将视频剪辑通过我的姿势估计器运行,记录了每一帧每个关节的角度每个剪辑。 现在,我有了一个带有数百个示例的标记数据集,以训练我的ANN。 我使用了一个小的Keras模型(只有两层),并且能够正确地预测我的验证集中93%的姿势。 最好的部分是,当我将此预测变量添加到我已经already肿的管道中时,帧速率没有下降! 完善!

Correctly predicting reverse warrior pose from validation data
根据验证数据正确预测反向战士的姿势

The complete code is available on my github, all feedback is not only welcomed but desired.

完整的代码可在我的github上找到 ,所有反馈不仅受到欢迎,而且是所希望的。

下一步 (Next Steps)

With the blazing speed at which computer vision is evolving, new pose estimation techniques and models will soon replace the tried and true methods of today. Changing the the networks/replacing them with newer predictors is definitely something I will try going forward.

随着计算机视觉的飞速发展,新的姿态估计技术和模型将很快取代当今尝试和真实的方法。 更改网络/将其替换为较新的预测变量绝对是我将继续尝试的事情。

One limitation of using this software to judge how well a pose is done is that the yoga data was taken from a single source. In the future, to make this project more robust I will train the ANN on several master yogis doing the same pose (ideally both male and female yogis).

使用该软件判断姿势的良好程度的一个限制是瑜伽数据是从单一来源获取的。 将来,为了使该项目更强大,我将在做相同姿势的几位主要瑜伽士(理想情况下是男性和女性瑜伽士)上训练ANN。

Additionally, my ANN is trained on only 15 of Uliana’s yoga poses, somewhat limiting the utility of this project to yoga newbies. One problem is, while I can add new poses to the training data and retrain my ANN, it makes the software pretty inflexible. I’m currently trying to think of ways around this problem, where I wouldn’t have to train a whole new network every time I wanted to add a couple new poses.

此外,我的人工神经网络仅接受了Uliana瑜伽姿势中的15种训练,这在一定程度上限制了该项目对新手瑜伽的实用性。 一个问题是,尽管我可以在训练数据中添加新的姿势并重新训练我的人工神经网络,但它使软件变得非常不灵活。 我目前正在尝试解决该问题的方法,每次我想添加几个新姿势时,我都不必训练整个新网络。

Finally, coming full circle back to my love of running, I want to use what I have learned about pose estimation to analyze my running form!

最后,回到我对跑步的热爱中,我想用我从姿势估计中学到的知识来分析跑步形式!

应用领域 (Applications)

The Covid-19 quarantine has resulted in the surge of the use of home exercise equipment. One such product is the smart mirror, such as the ones made by MIRROR, which streams exercise classes directly to your mirror! This seems like a perfect application for my project, especially if I were to adapt it to recognize other form-sensitive exercises like push-ups or running.

Covid-19隔离区导致家庭健身设备的使用激增。 智能镜子就是其中一种产品,例如MIRROR制造的智能镜子,它可以将运动课程直接流到您的镜子上! 对于我的项目而言,这似乎是一个完美的应用程序,尤其是当我要使其适应其他形式敏感的练习(例如俯卧撑或跑步)时。

翻译自: https://medium.com/@hollhc17/using-computer-vision-to-rate-yoga-poses-90a5dcb9aabe

动态瑜伽 静态瑜伽 初学者


http://www.taodudu.cc/news/show-1874081.html

相关文章:

  • 全自动驾驶论文_自动驾驶汽车:我们距离全自动驾驶有多近?
  • ocr图像识别引擎_CycleGAN作为OCR图像的去噪引擎
  • iphone 相机拍摄比例_在iPhone上拍摄:Apple如何解决Deepfakes和其他媒体操纵问题
  • 机器学习梯度下降举例_举例说明:机器学习
  • wp-autoblog_AutoBlog简介
  • 人脸识别 特征值脸_你的脸值多少钱?
  • 机器学习算法的差异_我们的机器学习算法可放大偏差并永久保留社会差异
  • ai人工智能_AI破坏已经开始
  • 无监督学习 k-means_无监督学习-第5部分
  • 负熵主义者_未来主义者
  • ai医疗行业研究_我作为AI医疗保健研究员的第一个月
  • 梯度离散_使用策略梯度同时进行连续/离散超参数调整
  • 机械工程人工智能_机械工程中的人工智能
  • 遗传算法是机器学习算法嘛?_基于遗传算法的机器人控制器方法
  • ai人工智能对话了_对话式AI:智能虚拟助手和未来之路。
  • mnist 转图像_解决MNIST图像分类问题
  • roc-auc_AUC-ROC技术的局限性
  • 根据吴安德(斯坦福大学深度学习讲座),您应该如何阅读研究论文
  • ibm watson_使用IBM Watson Assistant构建AI私人教练-第1部分
  • ai会取代程序员吗_机器会取代程序员吗?
  • xkcd目录_12条展示AI真相的XKCD片段
  • 怎样理解电脑评分_电脑可以理解我们的情绪吗?
  • ai 数据模型 下载_为什么需要将AI模型像数据一样对待
  • 对话生成 深度强化学习_通过深度学习与死人对话
  • 波普尔心智格列高利心智_心智与人工智能理论
  • 深度学习计算机视觉的简介_商业用途计算机视觉简介
  • slack 聊天机器人_使用Node.js和Symanto的Text Analytics API在Slack中创建情感机器人
  • c语言八数码问题启发式搜索_一种快速且简单的AI启发式语言学习方法
  • 机器学习库线性回归代码_PyCaret回归:更好的机器学习库
  • 元学习:学习学习

动态瑜伽 静态瑜伽 初学者_使用计算机视觉对瑜伽姿势进行评分相关推荐

  1. php动态生成页面结构,PHP 动态生成静态HTML页面示例代码

    temp.html {penglig_site_title} test.php header('content-type:text/html; charset=utf-8');//防止生成的页面乱码 ...

  2. 动态瑜伽 静态瑜伽 初学者_瑜伽与编程有什么关系?

    动态瑜伽 静态瑜伽 初学者 by Joanna Gaudyn 乔安娜·高登(Joanna Gaudyn) 瑜伽与编程有什么关系? (What does yoga have to do with pro ...

  3. 动态瑜伽 静态瑜伽 初学者_静态网站生成器:初学者指南

    动态瑜伽 静态瑜伽 初学者 Let's say your next project is going to be a simple HTML website for a resumé, marketi ...

  4. 动态瑜伽 静态瑜伽 初学者_初学者:如何在Mac OS X中设置静态IP

    动态瑜伽 静态瑜伽 初学者 When organizing your home or small office network sometimes it can be easier to assign ...

  5. 动态代码生成 静态代码生成_将速度提升到自己的个人代码生成器中

    动态代码生成 静态代码生成 Speedment是一个开源工具包 ,可用于生成Java实体和管理器以与数据库进行通信. 如果您需要域模型的对象关系映射,那么这很好,但是在某些情况下,您可能希望使用数据库 ...

  6. 动态编程语言静态编程语言_什么是动态编程?

    动态编程语言静态编程语言 介绍 (Introduction) Today in this tutorial, we are going to discuss the concept of Dynami ...

  7. ansys时间步长怎么设置_在 ANSYS Workbench 的动态、静态仿真中,设置子步长(时间步长)的目的分别是什么?_学小易找答案...

    [计算题]塔架静力-地震响应谱分析 Course-Work8_塔架响应谱分析.pdf [简答题]简述虚位移原理与最小势能原理? [简答题]如何对草图中几何模型进行尺寸标注? [简答题]记3-5个单词 ...

  8. 为什么php动态语言,动态语言静态化

    [TOC] ## 什么是动态语言静态化 将现有PHP等动态语言的逻辑代码生成为静态HTML文件,用户访问动态脚本重定向到静态HTML文件的过程. 对实时性要求不高的页面 ## 为什么要静态化 动态脚本 ...

  9. apache动态编译/静态编译区别

    总结百度 google了好多文档! 关于静态的缺点是:编译进APACHE内核,如果要新加模块,要重新编译: 动态:DSO模式动态加载:如果编译中包含任何DSO模块,则mod_so会被自动包含进核心. ...

  10. Vue3+Typescript+Vite 实现动态访问静态图片(含微信小程序端)

    前言:在最近新起的项目中,用到了较新的技术栈vue3.2+vite+ts,跟着网上的写法渐渐上手了,在菜单这一块我按照以往的写法,自己写了一个静态资源数据并用 require 包裹声明, 再以循环的方 ...

最新文章

  1. python什么时候用框架_python爬虫-什么时候选择selenium框架框架?
  2. 【题解】hdu 3586 Information Disturbing 二分 树形dp
  3. [armv8-arch64]linux kernel 5.9的异常量表介绍(irq,fiq,sync,svc)
  4. pythonurllib微博登录怎么删_Python使用cookielib和urllib2模拟登陆新浪微博并抓取数据...
  5. 杨老师的新课!数学应用
  6. 【C/C++】实型变量
  7. LeetCode Algorithm 700. 二叉搜索树中的搜索
  8. ES6 Fetch API和Cookie相关的知识点
  9. js 判断日期时间差
  10. 使用rdbtools分析redis内存使用
  11. 自学神经网络系列 —— 8 前馈神经网络
  12. 感知器 - 西瓜好坏自动识别——python
  13. Tkinter 插入图片背景
  14. ubuntu如何用快捷键截图
  15. java一个式子开根号语句_[基础篇]-基础知识整理-03-JAVA中的运算符
  16. 统计学(五):几种常见的假设检验
  17. Resin 3.0.14 和 IIS6 整合
  18. 摄像头之自动曝光,自动增益,图像深度 概念
  19. STM32——WebSocket
  20. android 独立插件,最新反编译任何微信小程序,以及独立分包、插件的处理方式...

热门文章

  1. CF 460C Present 【DP+】主意
  2. ASP.NET - 网页重定向 Response.Redirect()
  3. VMware vSphere 服务器虚拟化之十八桌面虚拟化之安装View Composer服务器
  4. linq to sql取出随机记录/多表查询/将查询出的结果生成xml
  5. 20191113每日一句
  6. 传智播客 C/C++学习笔记 一级指针易错模型分析_重点
  7. 181010词霸扇贝有道每日一句
  8. atitit.提升备份文件复制速度(3) ----建立同步删除脚本
  9. paip.互联网产品要成功的要素
  10. ATTILAX项目进展表VC425