【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 初始化任务…...
谷歌浏览器插件
项目中有时候会用到插件 sync-cookie-extension1.0.0:开发环境同步测试 cookie 至 localhost,便于本地请求服务携带 cookie 参考地址:https://juejin.cn/post/7139354571712757767 里面有源码下载下来,加在到扩展即可使用FeHelp…...
iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版分享
平时用 iPhone 的时候,难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵,或者买了二手 iPhone 却被原来的 iCloud 账号锁住,这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...
基于Uniapp开发HarmonyOS 5.0旅游应用技术实践
一、技术选型背景 1.跨平台优势 Uniapp采用Vue.js框架,支持"一次开发,多端部署",可同步生成HarmonyOS、iOS、Android等多平台应用。 2.鸿蒙特性融合 HarmonyOS 5.0的分布式能力与原子化服务,为旅游应用带来…...
SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现
摘要 本论文旨在设计并实现基于 SpringBoot 和 uniapp 的 Champion 俱乐部微信小程序,以满足俱乐部线上活动推广、会员管理、社交互动等需求。通过 SpringBoot 搭建后端服务,提供稳定高效的数据处理与业务逻辑支持;利用 uniapp 实现跨平台前…...
TRS收益互换:跨境资本流动的金融创新工具与系统化解决方案
一、TRS收益互换的本质与业务逻辑 (一)概念解析 TRS(Total Return Swap)收益互换是一种金融衍生工具,指交易双方约定在未来一定期限内,基于特定资产或指数的表现进行现金流交换的协议。其核心特征包括&am…...
基于Docker Compose部署Java微服务项目
一. 创建根项目 根项目(父项目)主要用于依赖管理 一些需要注意的点: 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件,否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...
Python如何给视频添加音频和字幕
在Python中,给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加,包括必要的代码示例和详细解释。 环境准备 在开始之前,需要安装以下Python库:…...
全志A40i android7.1 调试信息打印串口由uart0改为uart3
一,概述 1. 目的 将调试信息打印串口由uart0改为uart3。 2. 版本信息 Uboot版本:2014.07; Kernel版本:Linux-3.10; 二,Uboot 1. sys_config.fex改动 使能uart3(TX:PH00 RX:PH01),并让boo…...
面向无人机海岸带生态系统监测的语义分割基准数据集
描述:海岸带生态系统的监测是维护生态平衡和可持续发展的重要任务。语义分割技术在遥感影像中的应用为海岸带生态系统的精准监测提供了有效手段。然而,目前该领域仍面临一个挑战,即缺乏公开的专门面向海岸带生态系统的语义分割基准数据集。受…...
20个超级好用的 CSS 动画库
分享 20 个最佳 CSS 动画库。 它们中的大多数将生成纯 CSS 代码,而不需要任何外部库。 1.Animate.css 一个开箱即用型的跨浏览器动画库,可供你在项目中使用。 2.Magic Animations CSS3 一组简单的动画,可以包含在你的网页或应用项目中。 3.An…...
