5.3. 姿态检测
功能介绍
姿态检测App通过订阅摄像头发布的图片消息,检测出人体关键点后分析人体姿态,并发布姿态事件。
姿态事件使用自定义算法msg发布出去, 用户可以订阅此topic的msg用于应用开发。
目前只支持跌倒检测功能,检测人体是否跌倒。
代码仓库:https://c-gitlab.horizon.ai/HHP/box/hobot_perception/hobot_falldown_detection
支持平台
平台 | 运行方式 | 示例功能 |
---|---|---|
旭日X3派 | Ubuntu 20.04 | 启动MIPI/USB摄像头获取图像,并进行人体关键点检测以及姿态检测,最后通过Web展示图像和算法效果,发布姿态事件 |
准备工作
旭日X3派
旭日X3派已烧录好地平线提供的Ubuntu 20.04镜像。
旭日X3派已成功安装TogetheROS.Bot。
确认PC机跟旭日X3派处于同一网段,IP地址前三段需保持一致
旭日X3派已安装MIPI或者USB摄像头。
使用介绍
旭日X3派
姿态检测pkg订阅人体关键点检测pkg发布的数据,经过算法推理后发布算法msg,通过websocket package实现在PC端浏览器上渲染显示发布的图片和对应的算法结果。
友情提示:体验App时,将摄像头旋转90度,模拟人跌倒的效果。
使用mipi摄像头发布图片
# 配置tros.b环境
source /opt/tros/setup.bash
# 从tros.b的安装路径中拷贝出运行示例需要的配置文件。
cp -r /opt/tros/lib/mono2d_body_detection/config/ .
# 配置MIPI摄像头
export CAM_TYPE=mipi
# 启动launch文件
ros2 launch hobot_falldown_detection hobot_falldown_detection.launch.py
使用USB摄像头发布图片
# 配置tros.b环境
source /opt/tros/setup.bash
# 从tros.b的安装路径中拷贝出运行示例需要的配置文件。
cp -r /opt/tros/lib/mono2d_body_detection/config/ .
# 配置USB摄像头
export CAM_TYPE=usb
# 启动launch文件
ros2 launch hobot_falldown_detection hobot_falldown_detection.launch.py
运行命令中的参数说明,参考hobot_falldown_detection package源码中的README.md。
结果分析
启动姿态检测pkg后,在运行终端输出如下信息:
[hobot_falldown_detection-4] [INFO] [1660271558.250055538] [body_kps_Subscriber]: receive targetType: personpointType: body_kps
[hobot_falldown_detection-4] [INFO] [1660271558.250598996] [fall_down_publisher]: track_id: 1 is fall down
输出log显示,订阅到了body_kps数据,并发布了姿态事件。
在PC端的浏览器输入http://IP:8000,人体检测框,关键点和姿态检测结果在web端展示渲染效果(IP为旭日X3派的IP地址):