赞
踩
识别摔倒准确来说应使用人体姿态检测,通过判断前后帧的人体关键点的坐标变化来判断人是否摔倒,使用openpose或者mmpose进行摔倒检测有两个问题:
第一,后处理算法比较复杂,openpose和其他关键点检测模型只是给出人体各个器官的点位坐标,而具体需要识别什么,就要自行通过这些坐标进行算法设计,比如引体向上计数,可以通过判断头部节点与肘部节点的坐标进行判断计数,对于摔倒,可以通过判断视频前后帧的头部,腰部等关节点进行检测,判断是否摔倒,如:
在算法设计上是一件比较复杂的事情,要考虑会不会对坐下或者蹲下系鞋带的人进行误判,上图是mmpose进行检测,按视频效果,很难分离坐下和摔倒;
第二个问题,mmpose不同于yolo,SSD等目标检测模型,在视频中进行关节点检测的速度要小于目标检测,即使在边缘计算的盒子上进行部署,也很难对人群进行大规模的关键点检测和判断,因此关键点检测常用于智能运动检测等小规模人群场景,图上所示是先使用yolo进行预判断,比如当人体框的比例发生变化时,预先判断可能摔倒了,再进行mmpose检测判断,节约了一定的资源。
既然yolo可以预检测,为什么不用yolo直接检测呢? 按照这个思路,应该找几组人体不同形态的数据集,如【站立,坐,蹲,摔倒】,但实际上这样也会有两个问题,一,数据集不好找,很难有这么准确的数据集,除非自己采集数据集自己标定; 二,在有数据集的情况下,yolo的检测属于静态检测,相当于对视频中的每张图进行分类,而不是像openpose那样对比前后帧,对于摔倒检测,非常容易发生误判,如:
旁边的垃圾堆也被识别成了摔倒;
如果配合yolo5s进行后处理算法,那么就可以大大提高识别的准确率,基本不会发生误判了,如:
视频效果:
https://www.bilibili.com/video/BV1zY4y1E7t7?spm_id_from=333.999.0.0&vd_source=010a1f844fceab534b5e5a3819178604
代码链接:
https://download.csdn.net/download/h4934560/86086672?spm=1001.2014.3001.5501
可直接运行,包含训练好的权重文件和测试视频,也可替换自己的视频或者接入摄像头
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。