基于MQTT的Web获取火柴人(骨架数据)的实时数据并播放开发指南
获取MQTT凭据:
调用HTTP端点
/mqttAccount
获取MQTT用户名、密码和WSS URL。注意,MQTT会话有时间限制,需要定期更新。获取传感器的流令牌:
调用HTTP端点
/streamtoken
获取传感器的流令牌。获取组ID:
调用HTTP端点
/info
获取组ID。建立MQTT连接:
使用获取的用户名、密码和WSS URL通过WebSocket连接到MQTT。
订阅骨架数据流:
使用流令牌订阅MQTT主题,以接收骨架数据。主题格式为
mobileClient/${groupId}/camera/${serialNumber}/skeleton/${streamToken}
接收骨架数据:
骨架数据将以二进制格式通过MQTT消息传输。您需要解析这些二进制数据以获取骨架坐标。
解析骨架数据:
根据 SH-RealTimeSkeletonBinaryFormat.pdf 中描述的格式解析骨架数据。注意,坐标是介于0和1之间的浮点数,并且需要根据16:9的宽高比进行归一化处理。
注意修改了画面尺寸一定要同步,不然会出现,火柴人位置与实时位置不切合实际以下代码位置:
const canvasWidth = 1080; // 960; const canvasHeight = 606; // 540; ....... <body> <div id="box" style="width: 1080px; height: 606px;" > <canvas id="canvas" width="1080" height="606"></canvas> </div> <p>火柴人动画Skeleton在线直播演示</br><a href="http://www.sunsili.com">返回首页</a></p> <script> getCredentials(); </script> </body>
渲染骨架数据:
将解析出的骨架数据渲染到画布上。您可以使用JavaScript创建一个简单的动画,根据接收到的数据实时更新骨架的位置。
保持连接活跃:
根据文档说明,您需要每15分钟获取一次流令牌以保持数据流的活跃状态。
错误处理:
如果实时数据流中断,检查MQTT会话是否已过期,并根据需要重新获取MQTT凭据和流令牌;
断开MQTT连接, 重连MQTT。
示例代码:
您可以使用我们提供的 StreamDemo作为参考,这是一个JavaScript示例,演示了如何连接MQTT、解析二进制数据并渲染骨架。
查看我们的在线示例:Skeleton Stream Demo火柴人动画在线直播演示 (http://www.sunsili.com/html/live/streamDemo01.html)(wget http://www.sunsili.com/html/live/streamDemo01.html获取查源码)
火柴人隐私保护摄像头 AI智能行为检测跌倒报警简介
立即购买
在线演示:
火柴人摄像头Skeleton在线直播演示_在线工具_光明谷科技 (sunsili.com)
这款火柴人隐私保护摄像头内置NPU(人工智能神经网络处理器),运行多种深度学习算法,可以检测测人员的活动,并应用大数平台对各种行为(躺、站、坐、弯腰)进入统计分析,从而实现跌倒风险评估。当发生紧急情况时(例如跌倒),传感器会立即向家人或护 理人员发送报警信息。为保护隐私,传感器通过AI算法将原始图像计算成火柴人动画数据,只上传火柴人动画数据到云平台(APP和后台只能查看火柴人动画),绝不上传原始视频,因此火柴人传感器可以安装在家里的任何房间,包括卧室和浴室。火柴人动画还是极有价值的医疗数据,可以有多种用途,如可以分析老人的健康状况,协助事故调查和分析,改进养老机构的服务质量,帮助医生提前发现一些疾病,例如帕金森症、阿兹海默症、抑郁症等,并帮助医生和病人进行康复治疗。