【2023研电赛】安谋科技企业命题特别奖:面向独居老人的智能居家监护系统
本文为2023年第十八届中国研究生电子设计竞赛安谋科技企业命题特别奖分享,参加极术社区的【有奖活动】分享2023研电赛作品扩大影响力,更有丰富电子礼品等你来领!,分享2023研电赛作品扩大影响力,更有丰富电子礼品等你来领!
面向独居老人的智能居家监护系统

参赛单位:华南理工大学
指导老师:毕盛 董敏
参赛队员:谭皓禹 杨礼铭 沈煜
研究背景
第七次人口普查结果表明,我国人口老龄化程度正在不断加深,处理好全社会的养老问题十分重要。老人身体健康风险较高,而独居老人在生活中更是面临着精神、健康、意外三重困境,因此,我们认为给独居老人提供便利、安全的居家环境尤为重要。
市面上面向老人的监护产品存在的不足有:穿戴式手环容易被遗忘佩戴且不适用于卫生间等潮湿场所;基于视觉检测摔倒的视频监控则不适用于浴室等隐私场所;一键呼叫器或存在穿戴式的局限,或固定在某处,不适合处理突发情况。这些产品功能单一、不成系统,只“监”无“护”,无法为发生危险情况的独居老人及时提供应急服务。针对上述不足,我们设计实现了面向独居老人的智能居家监护系统。
功能介绍

我们的系统基于云-边-端架构实现,由云端服务器、感知模块和应用服务构成。
云端服务器使用MQTT协议为系统内部各模块提供通信服务。
感知控制方面,语音识别模块主要对老人的语音需求进行感知,采用R329开发板作为开发平台实现。该模块可以识别到老人的关键词需求,比如喝水、救命等。
姿态检测模块主要负责以非接触式检测识别老人在房间内的姿态,采用毫米波雷达以及EAIDK610开发平台进行实现。该模块可以识别房间内老人姿态信息。
机器人联动服务模块主要负责根据老人的语音需求提供便利服务,在检测到危险情况时自动导航至老人身边提供急救药物并拍摄现场。我们使用EAIDK610开发平台控制机器人,实现机器人联动服务模块。它可以订阅语音识别模块和姿态检测模块的话题,从云端服务器接收到对应话题的信息,然后控制服务机器人做出对应行动。
应用服务方面,前端交互模块由微信小程序实现,用户可以进入房间页面查看各房间状况、语音需求以及危险情况报警等,使家人能够远程关注老人在对应房间的状态信息。

创新特色
第一,我们采用毫米波雷达实现老人的姿态检测,克服了主流摔倒检测产品的局限性。基于毫米波雷达的姿态检测是非接触式的检测方式,克服了穿戴类设备的不足;同时也解决了基于视觉的视频监控的痛点,既防止隐私泄露,也满足了老人不愿意被监视的心理需求。
第二,我们采用联邦学习提高了姿态检测模型的可扩展性,优化模型性能。新样本训练的模型可以随时加入联邦学习的迭代聚合得到新的全局模型,相比于传统训练方式具有更高的可扩展性;无需融合多方数据,允许不同模型的训练在分布式环境下进行,以减轻模型训练压力,还在隐私保护的基础上完成间接数据共享,从而提高模型准确性、鲁棒性与泛化性。
第三,服务机器人能够根据姿态检测模块和语音识别模块检测到的信息提供相应的服务。机器人提供服务过程中,使用基于单目相机和激光雷达的多传感器融合的方法自动寻找老人并到达老人身边;我们针对居家环境改进全局路径规划以缩短导航时间,提高了对需求的响应速度;实现了导航参数自适应狭窄场景的功能,降低了复杂的居家环境对导航造成的影响。
技术实现
语音识别模块
在R329开发板部署离线语音库,以实现老人对应需求的关键词识别。

姿态检测模块

姿态检测模块具有识别摔倒、单人活动、多人活动三种情况的功能,主要使用TI毫米波雷达与EAIDK610开发者套件。前者通过发射一定频率的电磁波并利用多普勒效应检测区域内物体的运动趋势,即当范围内的物体靠近雷达时会收到频率更高的回波,远离时会收到频率更低的回波,以此计算物体与毫米波雷达之间的位置关系及物体的速度,这类计算在硬件内部即可完成,生成四元组点云数据 ,我们可以直接利用。后者接收前者所发布的话题获得点云数据,并通过数据预处理得到固定大小的网络输入后送入轻量CNN分类网络进行推理。推理结果发送至云端服务器,并通过服务器将该结果发送至应用服务层的微信小程序,以实现提示、报警功能。

提高姿态检测模型的泛化性,要求训练集更为丰富全面,但每次采集新样本并更新模型都需要集中数据重新训练,开销较大,可扩展性差,且存在隐私泄露的风险。因此我们引入联邦学习,其主要步骤包括:初始化模型、本地训练、全局迭代聚合。实验证明,相比于原模型,聚合优化模型准确率更高,具有更好的泛化性。

机器人联动服务模块

机器人寻找老人位置的思路为:通过单目相机推测老人的方向,激光雷达获取老人的距离,从而确定其具体位置。在机器人接收到“送水”“救命”等指令后,导航到对应房间进行分区覆盖式巡逻,过程中单目标检测模型进行实时推理寻找老人;当找到老人时,机器人停下,根据候选框信息计算其相对老人的方向,随后调整角度,使前进方向正对老人;最后通过激光雷达感知与老人的距离,前进并到达老人身边。

针对导航过程不流畅的问题,我们通过改进全局路径规划算法解决,思路为引入角度约束函数抑止多余转向、对生成路径进行平滑处理;针对机器人无法顺利通过狭窄区域的问题,我们通过实现导航参数自适应宽阔、狭窄场景来解决,思路为分别调整两份适用于宽阔、狭窄场景的导航参数,并在地图上标记狭窄路口,当机器人进出狭窄路口时切换导航参数。

前端交互模块
前端交互模块基于微信小程序实现。通过小程序,家人可以看到不同房间的状态信息、房间的历史记录和发生异常状况时的现场照片。

未来展望
我们只是初步设计并实现了该智能监护系统,面对需求的不断变化以及实际应用场景的一些特殊或复杂的情况,该系统还有一些值得改进的地方:
该系统只涉及了姿态检测和语音识别两个感知老人状况和需求的功能模块,未来可以添加更多的感知模块来监测老人的健康指标和需求。语音识别模块也只考虑了老人“喝水”、“救命”、“回去”等需求,未来可以增加更多关键词、为机器人设计更多功能以满足更多样的需求。
该系统的语音识别模块对于距离在0-1m内的语音需求识别成功率较高,但对于超过1m的语音需求识别率很差,考虑到一些房间比较大或者老人的声音有时候可能比较小,未来可以为R329开发板加一个收音器以加强收音效果,降低距离和声音分贝对识别率的影响。
参加极术社区的【有奖活动】分享2023研电赛作品扩大影响力,更有丰富电子礼品等你来领!,分享2023研电赛作品扩大影响力,更有丰富电子礼品等你来领!
相关文章:
【2023研电赛】安谋科技企业命题特别奖:面向独居老人的智能居家监护系统
本文为2023年第十八届中国研究生电子设计竞赛安谋科技企业命题特别奖分享,参加极术社区的【有奖活动】分享2023研电赛作品扩大影响力,更有丰富电子礼品等你来领!,分享2023研电赛作品扩大影响力,更有丰富电子礼品等你来…...
[Machine learning][Part4] 多维矩阵下的梯度下降线性预测模型的实现
目录 模型初始化信息: 模型实现: 多变量损失函数: 多变量梯度下降实现: 多变量梯度实现: 多变量梯度下降实现: 之前部分实现的梯度下降线性预测模型中的training example只有一个特征属性:…...
LCR 078. 合并 K 个升序链表
LCR 078. 合并 K 个升序链表 题目链接:LCR 078. 合并 K 个升序链表 代码如下: class Solution { public:ListNode* mergeKLists(vector<ListNode*>& lists) {ListNode *lsnullptr;for(int i0;i<lists.size();i){lsmergeList(ls,lists[i])…...
JVM面试题:(三)GC和垃圾回收算法
GC: 垃圾回收算法: GC最基础的算法有三种: 标记 -清除算法、复制算法、标记-压缩算法,我们常用的垃圾回收器一般 都采用分代收集算法。 标记 -清除算法,“标记-清除”(Mark-Sweep)算法,如它的…...
hive建表指定列分隔符为多字符分隔符实战(默认只支持单字符)
1、背景: 后端日志采集完成,清洗入hive表的过程中,发现字段之间的单一字符的分割符号已经不能满足列分割需求,因为字段值本身可能包含分隔符。所以列分隔符使用多个字符列分隔符迫在眉睫。 hive在建表时,通常使用ROW …...
android.app.RemoteServiceException: can‘t deliver broadcast
日常报错记录 android.app.RemoteServiceException: cant deliver broadcast W BroadcastQueue: Cant deliver broadcast to com.broadcast.test(pid 1769). Crashing it.E AndroidRuntime: FATAL EXCEPTION: main E AndroidRuntime: Process: com.broadcast.test, PID: 1769…...
信创办公–基于WPS的EXCEL最佳实践系列 (单元格与行列)
信创办公–基于WPS的EXCEL最佳实践系列 (单元格与行列) 目录 应用背景操作步骤1、插入和删除行和列2、合并单元格3、调整行高与列宽4、隐藏行与列5、修改单元格对齐和缩进6、更改字体7、使用格式刷8、设置单元格内的文本自动换行9、应用单元格样式10、插…...
VsCode同时编译多个C文件
VsCode默认只能编译单个C文件,想要编译多个文件,需要额外进行配置 第一种方法 ——> 通过手动指定要编译的文件 g -g .\C文件1 .\C文件2 -o 编译后exe名称 例如我将demo.c和extern.c同时编译得到haha.exe g -g .\demo.c .\extern.c -o haha 第二种…...
Android绑定式服务
Github:https://github.com/MADMAX110/Odometer 启动式服务对于后台操作很合适,不过需要一个更有交互性的服务。 接下来构建这样一个应用: 1、创建一个绑定式服务的基本版本,名为OdometerService 我们要为它增加一个方法getDistance()&#x…...
系统韧性研究(1)| 何谓「系统韧性」?
过去十年,系统韧性作为一个关键问题被广泛讨论,在数据中心和云计算方面尤甚,同时它对赛博物理系统也至关重要,尽管该术语在该领域不太常用。大伙都希望自己的系统具有韧性,但这到底意味着什么?韧性与其他质…...
使用Perl脚本编写爬虫程序的一些技术问题解答
网络爬虫是一种强大的工具,用于从互联网上收集和提取数据。Perl 作为一种功能强大的脚本语言,提供了丰富的工具和库,使得编写的爬虫程序变得简单而灵活。在使用的过程中大家会遇到一些问题,本文将通过问答方式,解答一些…...
SAP内部转移价格(利润中心转移价格)的条件
SAP内部转移价格(利润中心转移价格) SAP内部转移价格(利润中心转移价格) SAP内部转移价格(利润中心转移价格)这个听了很多人说过,但是利润中心转移定价需要具备什么条件。没有找到具体的文档。…...
WRF如何批量输出文件添加或删除文件名后缀
1. 批量添加文件名后缀 #1----批量添加文件名后缀(.nc)。#指定wrfout文件所在的文件夹 path "/mnt/wtest1/"#列出路径path下所有的文件 file_names os.listdir(path) #遍历在path路径下所有以wrfout_d01开头的文件,在os.path…...
Ubuntu右上角不显示网络的图标解决办法
一.line5改为true sudo vim /etc/NetworkManager/NetworkManager.conf 二.重启网卡 sudo service network-manager stop sudo mv /var/lib/NetworkManager/NetworkManager.state /tmp sudo service network-manager start...
AM@数列极限
文章目录 abstract极限👺极限的主要问题 数列极限数列极限的定义 ( ϵ − N ) (\epsilon-N) (ϵ−N)语言描述极限表达式成立的证明极限发散证明常用数列极限数列极限的几何意义例 函数的极限 abstract 数列极限 极限👺 极限分为数列的极限和函数的极限…...
Vue-2.3v-model原理
原理:v-model本质上是一个语法糖,例如应用在输入框上,就是value属性和input事件的合写。 作用:提供数据的双向绑定 1)数据变,视图跟着变:value 2)视图变,数据跟着变input 注意&a…...
左手 Serverless,右手 AI,7 年躬身的古籍修复之路
作者:宋杰 “AI 可以把我们思维体系当中,过度专业化、过度细分的这些所谓的知识都替代掉,让我们集中精力去体验自己的生命。我挺幸运的,代码能够有 AI 辅助,也能够有 Serverless 解决我的运营成本问题。Serverless 它…...
计算mask的体素数量
import numpy as np import nibabel as nib # 用于处理神经影像数据的库 # 从文件中加载mask图像 mask_image nib.load(rE:\mask.nii.gz) # 获取图像数据 mask_data mask_image.get_fdata() # 计算非零像素的数量,即白质骨架的体素总数 voxel_count np.count_no…...
VR全景营销颠覆传统营销,让消费者身临其境
随着VR的普及,各种VR产品、功能开始层出不穷,并且在多个领域都有落地应用,例如文旅、景区、酒店、餐饮、工厂、地产、汽车等,在这个“内容为王”的时代,VR全景展示也是一种新的内容表达方式。 VR全景营销让消费者沉浸式…...
FreeRTOS学习笔记——四、任务的定义与任务切换的实现
FreeRTOS学习笔记——四、任务的定义与任务切换的实现 0 前言1 什么是任务2 创建任务2.1 定义任务栈2.2 定义任务函数2.3 定义任务控制块2.4 实现任务创建函数2.4.1 任务创建函数 —— xTaskCreateStatic()函数2.4.2 创建新任务——prvInitialiseNewTask()函数2.4.3 初始化任务…...
CLAP模型量化压缩实战:8位整数量化指南
CLAP模型量化压缩实战:8位整数量化指南 1. 引言 如果你正在为嵌入式设备部署音频AI模型而苦恼,那么CLAP模型的量化压缩可能就是你要找的解决方案。CLAP(对比语言-音频预训练)模型虽然功能强大,但其庞大的参数量让在资…...
OpenClaw定时任务:千问3.5-9B实现每日自动化流程
OpenClaw定时任务:千问3.5-9B实现每日自动化流程 1. 为什么需要定时任务自动化 去年冬天的一个深夜,我正熬夜准备第二天的重要汇报材料,突然发现需要从三个不同平台导出数据并整理成统一格式。手动操作到凌晨两点时,我意识到这种…...
告别盲调!用STM32的编码器模式+定时器中断,精准测量电机转速(附速度计算源码)
STM32编码器模式实战:从脉冲计数到精准转速测量的全链路解析 在电机控制系统中,转速测量就像给盲人配上一副眼镜——它让抽象的旋转运动变得可视化、可量化。许多工程师在完成电机基础驱动后常陷入一个尴尬境地:电机确实转起来了,…...
C标准库缓冲区溢出问题与安全编程实践
1. C标准库缓冲区溢出问题概述缓冲区溢出是C语言开发中最常见的安全漏洞之一。作为一名有十年经验的嵌入式开发者,我见过太多由于不当使用标准库函数导致的崩溃和安全问题。缓冲区溢出通常发生在程序向固定大小的缓冲区写入超过其容量的数据时,多余的数据…...
OpenClaw语音交互:Phi-3-mini接入麦克风输入实战
OpenClaw语音交互:Phi-3-mini接入麦克风输入实战 1. 为什么需要语音交互能力 上周我在整理电脑文件时突然想到一个问题:当我的双手被占用时(比如正在做饭或修理设备),如何让OpenClaw帮我执行任务?传统的键…...
Fish Speech 1.5API文档增强:OpenAPI 3.0规范生成与Swagger UI集成
Fish Speech 1.5 API文档增强:OpenAPI 3.0规范生成与Swagger UI集成 1. 引言:为什么需要API文档增强? 在实际开发中,我们经常遇到这样的场景:团队新成员需要快速了解API接口,第三方开发者想要集成语音合成…...
Windows平台OpenClaw部署:百川2-13B-4bits量化版调用详解
Windows平台OpenClaw部署:百川2-13B-4bits量化版调用详解 1. 为什么选择这个组合? 去年冬天,当我第一次尝试在Windows笔记本上部署本地AI助手时,遇到了显存不足的难题。我的GTX 3060显卡根本无法承载常规的13B模型,直…...
保姆级教程:在OpenEuler 22.03 LTS-SP4上,用cephadm搞定Ceph Pacific集群部署
在OpenEuler 22.03 LTS-SP4上部署Ceph Pacific集群的完整指南 OpenEuler作为国产操作系统的代表,凭借其高性能和安全性,正逐渐成为企业级应用的首选。而Ceph作为开源的分布式存储解决方案,以其高可靠性和可扩展性赢得了广泛认可。本文将详细介…...
基于Python的多媒体信息共享平台毕业设计源码
博主介绍:✌ 专注于Java,python,✌关注✌私信我✌具体的问题,我会尽力帮助你。一、研究目的本研究旨在设计并实现一个基于Python的多媒体信息共享平台,以满足现代网络环境下多媒体信息传播的需求。具体研究目的如下:构建一个高效、…...
别再用默认字典了!DVWA暴力破解实战:从Low到High,手把手教你配置Burp Suite的Pitchfork模式
别再用默认字典了!DVWA暴力破解实战:从Low到High,手把手教你配置Burp Suite的Pitchfork模式 在渗透测试的入门阶段,暴力破解往往是最先接触的攻击手段之一。但许多新手在DVWA的High级别面前束手无策——那些看似简单的登录表单&am…...
