【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 初始化任务…...
R语言AI模型部署方案:精准离线运行详解
R语言AI模型部署方案:精准离线运行详解 一、项目概述 本文将构建一个完整的R语言AI部署解决方案,实现鸢尾花分类模型的训练、保存、离线部署和预测功能。核心特点: 100%离线运行能力自包含环境依赖生产级错误处理跨平台兼容性模型版本管理# 文件结构说明 Iris_AI_Deployme…...
Oracle查询表空间大小
1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...
关于 WASM:1. WASM 基础原理
一、WASM 简介 1.1 WebAssembly 是什么? WebAssembly(WASM) 是一种能在现代浏览器中高效运行的二进制指令格式,它不是传统的编程语言,而是一种 低级字节码格式,可由高级语言(如 C、C、Rust&am…...
C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。
1.先用Visual Studio 2017打开Yichip YC31xx loader.vcxproj,再用Visual Studio 2022打开。再保侟就有.sln文件了。 易兆微芯片下载工具加开机动画下载 ExtraDownloadFile1Info.\logo.bin|0|0|10D2000|0 MFC应用兼容CMD 在BOOL CYichipYC31xxloaderDlg::OnIni…...
10-Oracle 23 ai Vector Search 概述和参数
一、Oracle AI Vector Search 概述 企业和个人都在尝试各种AI,使用客户端或是内部自己搭建集成大模型的终端,加速与大型语言模型(LLM)的结合,同时使用检索增强生成(Retrieval Augmented Generation &#…...
Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习)
Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习) 一、Aspose.PDF 简介二、说明(⚠️仅供学习与研究使用)三、技术流程总览四、准备工作1. 下载 Jar 包2. Maven 项目依赖配置 五、字节码修改实现代码&#…...
HubSpot推出与ChatGPT的深度集成引发兴奋与担忧
上周三,HubSpot宣布已构建与ChatGPT的深度集成,这一消息在HubSpot用户和营销技术观察者中引发了极大的兴奋,但同时也存在一些关于数据安全的担忧。 许多网络声音声称,这对SaaS应用程序和人工智能而言是一场范式转变。 但向任何技…...
解析两阶段提交与三阶段提交的核心差异及MySQL实现方案
引言 在分布式系统的事务处理中,如何保障跨节点数据操作的一致性始终是核心挑战。经典的两阶段提交协议(2PC)通过准备阶段与提交阶段的协调机制,以同步决策模式确保事务原子性。其改进版本三阶段提交协议(3PC…...
相关类相关的可视化图像总结
目录 一、散点图 二、气泡图 三、相关图 四、热力图 五、二维密度图 六、多模态二维密度图 七、雷达图 八、桑基图 九、总结 一、散点图 特点 通过点的位置展示两个连续变量之间的关系,可直观判断线性相关、非线性相关或无相关关系,点的分布密…...
boost::filesystem::path文件路径使用详解和示例
boost::filesystem::path 是 Boost 库中用于跨平台操作文件路径的类,封装了路径的拼接、分割、提取、判断等常用功能。下面是对它的使用详解,包括常用接口与完整示例。 1. 引入头文件与命名空间 #include <boost/filesystem.hpp> namespace fs b…...
