阿福老年陪护机器人 v1.7 发布

阿福老年陪护机器人 v1.7 发布


前言

从 v1.0 的小蜜陪护机器人到如今的阿福老年陪护机器人 v1.7,这个项目经历了大量的迭代与打磨。v1.0 的初衷是解决独居老人的安全问题,而 v1.7 则是在此基础上,让机器人看得更准、想得更聪明、用得更放心。

v1.7 的核心改进围绕三个方向展开:

  1. 检测能力升级:RTSP 流媒体摄像头接入、双模型重叠确认、摔倒检测
  2. AI 对话质量提升:自动搜索防护、答案质量守护、工具调用格式兼容
  3. 系统稳定性增强:内存泄漏修复、多线程解码、报警逻辑优化

v1.7 主要变更

一、检测能力升级

1. RTSP 流媒体摄像头接入

v1.0 仅支持 ESP32-CAM 拍照模式,v1.7 新增了 RTSP 流媒体摄像头接入能力,支持市面上绝大多数 IP 摄像头:

  • FFmpeg 拉流 :支持 H.264/H.265 编码,多线程解码(thread_count=0 + FF_THREAD_FRAME|FF_THREAD_SLICE),解决超高清摄像头(2592×1944)解码性能问题
  • OpenGL 渲染:自研 GLVideoWidget,OpenGL 3.3 着色器直接将 YUYV422 格式转 RGB 渲染,CPU 零负载,QPainter 叠加检测框/骨骼/姿态标签
  • 多摄像头并发 :支持同时接入多路 RTSP 摄像头,非选中摄像头跳过 YUYV→BGR 转换,推理线程独立丢帧策略(isBusy 机制),帧缓冲内存池上限 16 块
  • 自动重联:TCP 连接断开(-10054 WSAECONNRESET)自动重连,等首个关键帧再解码避免 POC 错误刷屏
  • 配置持久化:摄像头列表通过 QSettings 保存,重启自动恢复
2. 双模型重叠确认

v1.0 仅靠姿态模型检测人,v1.7 引入双模型重叠确认机制:

  • 姿态模型先检测人体骨骼关键点
  • 目标检测模型检测 person 框(classId==0)
  • 每个姿态结果与 person 框计算 IoU,IoU≥0.3 才保留
  • 无 person 框检出则全部丢弃

这一机制大幅减少了姿态模型的误检率,特别是在复杂背景下。

3. 摔倒检测功能

v1.7 新增专门的摔倒检测模型 yolov26-fall.onnx,采用条件触发策略:

  • 姿态检测先运行,检查是否有非站立(坐立/躺卧)的人
  • 有非站立的人时才运行摔倒模型(节省算力)
  • 摔倒模型结果与非站立人的框做 IoU≥0.3 重叠确认
  • 确认通过才标记为摔倒并触发报警

报警复用现有确认机制:连续 5 帧命中 + 3 秒时间窗口 + 30 秒节流,后台摄像头也报警(不限选中)。

4. 火焰烟雾置信度可配置

系统设置新增火焰烟雾置信度阈值(默认 50%)和摔倒置信度阈值(默认 35%),通过 QSettings 持久化,实时生效。


二、AI 对话质量提升

5. 自动搜索防护与答案质量守护

v1.6 及之前版本中,当模型给出泛化回答(如"有很多著名的景点")时会自动触发网络搜索,但存在多个严重问题:

  • 搜索关键词被污染 :系统记忆前缀 [系统记忆 - 跨对话上下文] 被当作搜索关键词,截断后变成"AI Agent记忆"等无关内容
  • 泛化判定过于简单:仅检查"有很多"等单一关键词,具体回答(含故宫、长城等实体)也被误判为泛化
  • 搜索结果无关时仍替换原回答:好的回答被无关搜索结果替换,导致答非所问

v1.7 的改进:

改进项 说明
多维度泛化判定 模板措辞命中 且(长度不足 或 实体缺失)才触发搜索,单一维度命中不触发
搜索关键词净化 剥离系统记忆前缀,从用户原始问题提取关键词
搜索结果相关性判定 核心实体不匹配时保留原回答,不注入 RAG 重新生成
候选回答质量比较 原回答 vs 新回答综合得分比较(相关性 0.6 + 具体性 0.25 + 长度 0.15),禁止降级替换
纯文本回答直接采纳 聊天类任务首次纯文本回答不再强制重试 JSON 格式
配置外置化 泛化判定关键词列表、质量阈值等外置到 bin/agentconfigs/answer_guard.json
6. XML 工具调用格式兼容

v1.7 使用的 Spark-X2.5-4B 模型会自然产出 XML 格式的工具调用:

复制代码
<function name="网络搜索">{"arguments": {"搜索关键词": "新都 好玩 推荐 景点"}}</function>

但原有转换逻辑只支持 <param name="key">value</param> 子标签格式,导致 arguments 内容丢失变成空对象 {},工具执行失败"搜索关键词不能为空"。

v1.7 修复:在 <param> 子标签未匹配时,自动尝试将标签体作为 JSON 解析,支持 {"arguments": {...}} 包装格式和纯参数对象格式。日志文案从 "MiniCPM5" 改为通用的 "XML tool-call format"。


三、系统稳定性增强

7. 内存泄漏修复
泄漏点 修复方案
日志控件 undo 栈无限累积 setUndoRedoEnabled(false)
av_frame_unref 规范化 补充帧释放
帧缓冲内存池 BufferPool 上限 16 块,QSharedPointer 自定义 deleter 归还
推理事件堆积(主因) inferRequested 跨线程队列 cv::Mat 约 3.7MB/帧堆积 → m_inferInFlight 原子限流
8. 报警逻辑优化
  • 位置重叠确认:IoU≥0.2 或中心点包含 + 连续 5 次 + 时间窗口 3 秒双条件
  • 后台摄像头也报警:不限选中摄像头
  • 断流清零追踪:摄像头断开连接时清零报警追踪状态
9. 其他改进
  • llama.cpp API 适配 :新版 common_chat_params::prompt 类型变更、common_chat_parse 参数变更、GGML_CPU_ALL_VARIANTS=ON 适配
  • Qt 中文翻译 :加载 qtbase_zh_CN.qm 翻译,QMessageBox 按钮中文化
  • 检测框绘制:火焰红/烟雾灰/人绿框 + COCO 17 关键点骨架连线 + 关键点圆点 + 中文标签 + 置信度
  • 人体姿态标签:人的框标签显示"人·站立/坐立/躺卧 xx%",底部摘要"检测到 N人 (站立X 坐立Y)"

功能列表

功能 说明 v1.0 v1.7
摔倒检测 姿态检测非站立 → 摔倒模型确认 → IoU≥0.3 重叠确认 → 报警 - ✅
RTSP 流媒体接入 FFmpeg 拉流 + OpenGL 渲染 + 多摄像头并发 + 自动重联 - ✅
双模型重叠确认 姿态模型 + 目标检测 person 框 IoU≥0.3 确认 - ✅
自动搜索防护 多维度泛化判定 + 关键词净化 + 相关性判定 + 质量比较 - ✅
XML 工具调用兼容 支持 JSON 包装格式 {"arguments":{...}} - ✅
火焰烟雾检测 置信度阈值可配置(默认 50%) ✅ ✅+
晕倒检测 检测到人晕倒后及时报警或通知家属 ✅ ✅
长时间站立检测 发现你一个人在家站立很久,就会和你攀谈 ✅ ✅
记忆能力 跨对话记住用户说过的话,做过的事 ✅ ✅
设备操作能力 控制各种家用电器 ✅ ✅
隐私保护能力 所有数据存储在本地,不会上传到任何服务器 ✅ ✅
语音识别能力 可以识别人类语言,根据语言做相应处理 ✅ ✅
工具调用能力 可以调用外部工具,比如搜索、翻译、播放音乐等 ✅ ✅
聊天能力 可以和用户进行简单的聊天 ✅ ✅+
播放广播电视 可以播放广播电视,比如新闻、天气、股票等 ✅ ✅
定时任务能力 可以设置定时任务 ✅ ✅
扩展能力 系统设计成插件的模式 ✅ ✅

技术栈

组件 版本/说明
开发框架 Qt 5.15.16 (MSVC 2022)
AI 模型 Spark-X2.5-4B(对话)+ YOLOv8 系列(检测)+ yolov26-fall(摔倒)
推理引擎 ONNX Runtime + llama.cpp
视频处理 FFmpeg 7.1 (libavcodec 63)
渲染 OpenGL 3.3 + QPainter
操作系统 Windows 10+

安装说明

下载地址

百度网盘:百度网盘 请输入提取码(提取码:4qsj)

安装步骤

  1. 解压软件包
  2. 将模型文件放到软件启动目录的 sceneconfigs\models 下(含 yolov26-fall.onnx 摔倒检测模型)
  3. 运行软件 KuboRobot.exe

新增配置文件

文件 说明
bin\agentconfigs\answer_guard.json 自动搜索防护配置:泛化判定关键词列表、质量阈值、权重参数

RTSP 摄像头配置

在软件界面"RTSP 摄像头"选项卡中添加摄像头,填写:

  • 摄像头名称
  • RTSP 地址(如 rtsp://admin:password@192.168.1.100:554/stream1)
  • 点击添加即可,支持多摄像头并发

结语

阿福老年陪护机器人 v1.7 在 v1.0 的基础上,让机器人真正具备了实时监控的能力。从拍照模式到流媒体实时监控,从单一姿态检测到双模型重叠确认 + 摔倒模型确认,从简单的泛化判定到多维度答案质量守护,每一次改进都源于实际使用中发现的问题。

希望阿福老年陪护机器人能真正帮助到有需要的人,用科技守护每一个家庭。


阿福老年陪护机器人开发团队

相关推荐
鲁邦通物联网2 小时前
地下管廊机器狗接入老旧竖井电梯的机器人梯控设计
机器人·巡检机器人·机器人梯控·agv梯控·非侵入式采集·配送机器人·机器人乘梯
誰能久伴不乏3 小时前
【无标题】
c++·qt·机器人
谢客诚科技4 小时前
镀膜脆性薄片,不能接触镀膜面,脆性薄片搬运选伯努利还是边缘承靠式末端模组?
人工智能·机器人
鸽芷咕4 小时前
从环境搭建到敬礼动作:启元 Q1 SDK 全流程实战与 8 个实测坑排查手册
数据库·ai·机器人·sdk·启元q1
真的想上岸啊14 小时前
笔记2:思小伴 搭载 EEG 脑电专注力监测的多功能儿童陪伴桌宠
机器人
是Yu欸16 小时前
机器人如何把二维画面变成三维动作?ECCV 2026 3DWay 论文解读
3d·机器人·论文解读·具身智能·eccv 2026
深圳多奥智能一卡(码、脸)通系统17 小时前
如何实现VIP乘梯、高峰自动归底与机器人自动乘梯?
机器人·门禁·梯控·智能梯控·二维码电梯·梯控一卡通·vip乘梯
蒲公英内测分发19 小时前
热成像仪交付客户后,Android 配套 App 不上架,怎么持续下载安装和更新
android·机器人·项目管理·智能家居·智能硬件
物联网软硬件开发-轨物科技21 小时前
【轨物方案】深度解读开关柜智能感知及一键顺控专家系统
大数据·运维·网络·人工智能·算法·机器人