top of page
アンカー 1

一、前言

前面我们介绍了俯卧撑检测以及自动计数,今天想对引体向上也做一个类似的检测。

依旧是三个目标:

1.检测俯卧撑以及引体向上姿势

2.俯卧撑,引体向上分别计数

3.检测结果输出。(Chin-up:计数、push-up:计数)


二、算法原理

※俯卧撑的检测以及计数在上节已经实现了,这里主要介绍引体向上的内容。

1.引体向上检测

我们还是沿用谷歌的mediapipe模块来获取身体各个部位的三维坐标。

引体向上姿势的特点就是身体处于一个直立状态,也就是腰,肩,膝盖大约处于同一个垂直度(站立姿势)。并且手腕位置高于手肘位置(举手姿势)。基于这个特征我们就可以按照以下算法来判定是否为俯卧撑姿势:

①根据肩,腰以及膝盖的垂直方向高度的标准偏差来判定姿势是否属于站立姿态。

②根据手的高度和肘部高度判定是否处于举手姿态。

※本来这里想要加上腰部弯曲度判定,但是测试中发现,在引体向上中腰部会自然弯曲,所以这个条件放弃了。

2.引体向上计数

引体向上计数本来也想沿用俯卧撑的肘部弯曲度检测,结果发现不是很理想。所以改为肩部弯曲度的检测。其余算法思路和俯卧撑一摸一样。(判断前后两帧图像的肘部弯曲度是否处于90度的两侧,是则判定为完成一次。同样的也需要过滤掉不稳定的数据)

三、效果视频

效果还不错,完美的检测到姿势并且准确的进行了计数


四、源码

https://www.deepvisionzero.com/download

※图像处理第4弹

1 則留言
bottom of page