【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 初始化任务…...
生成xcframework
打包 XCFramework 的方法 XCFramework 是苹果推出的一种多平台二进制分发格式,可以包含多个架构和平台的代码。打包 XCFramework 通常用于分发库或框架。 使用 Xcode 命令行工具打包 通过 xcodebuild 命令可以打包 XCFramework。确保项目已经配置好需要支持的平台…...
mongodb源码分析session执行handleRequest命令find过程
mongo/transport/service_state_machine.cpp已经分析startSession创建ASIOSession过程,并且验证connection是否超过限制ASIOSession和connection是循环接受客户端命令,把数据流转换成Message,状态转变流程是:State::Created 》 St…...
Objective-C常用命名规范总结
【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名(Class Name)2.协议名(Protocol Name)3.方法名(Method Name)4.属性名(Property Name)5.局部变量/实例变量(Local / Instance Variables&…...
【解密LSTM、GRU如何解决传统RNN梯度消失问题】
解密LSTM与GRU:如何让RNN变得更聪明? 在深度学习的世界里,循环神经网络(RNN)以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而,传统RNN存在的一个严重问题——梯度消失&#…...
dedecms 织梦自定义表单留言增加ajax验证码功能
增加ajax功能模块,用户不点击提交按钮,只要输入框失去焦点,就会提前提示验证码是否正确。 一,模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...
五年级数学知识边界总结思考-下册
目录 一、背景二、过程1.观察物体小学五年级下册“观察物体”知识点详解:由来、作用与意义**一、知识点核心内容****二、知识点的由来:从生活实践到数学抽象****三、知识的作用:解决实际问题的工具****四、学习的意义:培养核心素养…...
Caliper 配置文件解析:config.yaml
Caliper 是一个区块链性能基准测试工具,用于评估不同区块链平台的性能。下面我将详细解释你提供的 fisco-bcos.json 文件结构,并说明它与 config.yaml 文件的关系。 fisco-bcos.json 文件解析 这个文件是针对 FISCO-BCOS 区块链网络的 Caliper 配置文件,主要包含以下几个部…...
iview框架主题色的应用
1.下载 less要使用3.0.0以下的版本 npm install less2.7.3 npm install less-loader4.0.52./src/config/theme.js文件 module.exports {yellow: {theme-color: #FDCE04},blue: {theme-color: #547CE7} }在sass中使用theme配置的颜色主题,无需引入,直接可…...
Golang——6、指针和结构体
指针和结构体 1、指针1.1、指针地址和指针类型1.2、指针取值1.3、new和make 2、结构体2.1、type关键字的使用2.2、结构体的定义和初始化2.3、结构体方法和接收者2.4、给任意类型添加方法2.5、结构体的匿名字段2.6、嵌套结构体2.7、嵌套匿名结构体2.8、结构体的继承 3、结构体与…...
【 java 虚拟机知识 第一篇 】
目录 1.内存模型 1.1.JVM内存模型的介绍 1.2.堆和栈的区别 1.3.栈的存储细节 1.4.堆的部分 1.5.程序计数器的作用 1.6.方法区的内容 1.7.字符串池 1.8.引用类型 1.9.内存泄漏与内存溢出 1.10.会出现内存溢出的结构 1.内存模型 1.1.JVM内存模型的介绍 内存模型主要分…...
