以下作品由安信可社区用户
bzhou830制作
01项目背景前不久一个做医疗健康行业的老友找我咨询,想在一个医疗机器人上开发一个跌倒检测的功能。机器人搭配的是arm sbc,机器人是可以在养老院的各个房间巡逻的。
讨论下来有两个方案:
使用激光雷达传感器,而且市面上也有支持跌倒检测的激光雷达传感器。但是成本相对会高一点点。
使用视觉方案,考虑机器人上的处理器是RK3588,对于当前的应用来说是完全足够的。因此只需要添加摄像头作为额外的硬件开销,笔者这时就想到了BW21-CBV-Kit这款能检测人脸和动作的摄像头开发板。
开发板介绍:安信可有Ai识别方案了?https://mp.weixin.qq.com/s?__biz=MzIzODA0NDgxNg==&mid=2650095367&idx=2&sn=8dc2f1fbc88ec7e904be139bd1a92949&scene=21#wechat_redirect
相关教程:如何使用BW21-CBV-Kit?最新最全教程来了~https://mp.weixin.qq.com/s?__biz=MzIzODA0NDgxNg==&mid=2650096504&idx=2&sn=0c87a678f33d4b187c877269a7bba1cc&scene=21#wechat_redirect
DIY类:
【电子DIY作品】用BW21-CBV-Kit设计洗衣机远程控制面板https://mp.weixin.qq.com/s?__biz=MzIzODA0NDgxNg==&mid=2650101017&idx=5&sn=1030dbf3aee1987e2a77e6cc503df4d5&scene=21#wechat_redirect
【电子DIY作品】基于BW21-CBV-Kit火灾隐患警报器https://mp.weixin.qq.com/s?__biz=MzIzODA0NDgxNg==&mid=2650100188&idx=5&sn=14911fc01ce7e160cecf90dbd621c0e7&scene=21#wechat_redirect
【电子DIY作品】用BW21-CBV-Kit做一个蓝牙温湿度计https://mp.weixin.qq.com/s?__biz=MzIzODA0NDgxNg==&mid=2650098609&idx=5&sn=99bde798a5bb92e91f65e859be339fac&scene=21#wechat_redirect
02视频展示在solidworks中使用装配体将打印件分割成各个零件,绘制在一起。
摄像头直接凸出包裹,将零件导出打印,组装起来得到这样。
随后摄像头放置在手机支架上,插电后开机测试。
BW21的资料在论坛上相当的丰富。这次只需要按照如下进行环境搭建。
安信可小安派BW21-CBV-Kit 上手环境搭建 - 小安派·BW21-CBV-KIt - 物联网开发者社区-安信可论坛 - Powered by Discuz!
打开这个example。修改里面的Wi-Fi名称和密码,烧录即可使用。因为是将BW21当作一个网络摄像头,在机器人端来捕获摄像头的视频流进行检测。
在代码中测试打开摄像头视频流。
️
05跌倒检测算法设计算法的核心思想:
人体检测与跟踪
首先通过YOLO模型检测视频帧中的所有人体,并利用跟踪算法为每个人分配唯一ID,实现跨帧跟踪,保证同一人的运动特征连续性。
姿态估计与特征提取
对每个人体区域,使用Mediapipe等方法提取关键点,计算出人体主轴角度、长宽比、关键点坐标、速度、加速度等多种时序和空间特征。mediapipe中的关键点比较多,目前只需要使用如下的关键点:0, 11, 12, 23, 24, 25, 26, 27, 28。
多特征融合判别跌倒
跌倒检测不是单一条件触发,而是融合了以下多种特征:
●身体姿态接近水平
●关键点的垂直位移突变
●姿态角度突变(身体突然变弯曲等)
●加速度突变 只有当多个条件同时满足(如满足3个及以上),才判定为跌倒,降低误报率。
最终检测到异常的视频帧会保存下来。
选取两帧来看看跌倒的效果吧,哈哈!