WIz · 2021年09月05日

【2021集创赛】Arm杯二等奖-基于Cortex-M3的室内老人跌倒行为检测系统

本作品介绍参与极术社区的有奖征集|秀出你的集创赛作品风采\,免费电子产品等你拿\~

团队介绍

参赛单位:合肥工业大学
队伍名称:剑指S5
总决赛奖项:二等奖

1 简介

随着社会经济的不断发展与变革,人民的生活水平日益提高,但人口老龄化问题却日益突出,空巢家庭问题也越来越严重。据卫生部相关调查,我国65岁以上的人口中,男性和女性有跌倒经历的比例分别达到22%和43%。从跌倒地点上看,老年人62%的跌倒发生在小区内,公共场所和居家的卧室、卫生间是老年人跌倒多发地点。跌倒现今已经成为了目前造成老龄人口身体受到伤害的主要因素之一,并且随着老年人年龄的增长,老年人意外跌倒行为的发生概率也会不断上升,跌倒时刻的威胁着我国老年人的身体健康。

因此,对跌倒行为检测的研究是十分有必要并且具有非常重要的现实意义。老人的跌倒行为检测系统需要能够完成对老人跌倒行为的准确检测的同时在第一时间进行报警行为处理,通过这种及时的准确检测,来保证对事发当事人的及时救治,减少跌倒事件给老年人身体上带来的伤害以及因此产生的财产损失,进而保障独居老年人及家人的健康幸福生活。

本系统利用Cortex-M3处理器内核以及在FPGA平台上独立设计SOC架构,实现了对摄像头采集的图像进行实时的跌倒行为检测功能。首先系统采集外界环境图像数据,对图像进行基于全局与局部差异的方法检测运动目标区域,并对检测的运动目标区域进行标记,同时输出到LCD上显示。之后对运动目标区域进行特征提取得到当前运动目标的宽高比、宽高积、质心位置、下落速度后,将特征向量输入到专用的SVM预测网络硬件加速器中,完成对跌倒行为的判定结果,当系统检测到老人跌倒时,系统将及时做出蜂鸣器报警处理,同时通过4G网络短信通知跌倒老人的紧急联系人。

2 系统设计

2.1系统整体结构

本系统的主要功能部件包括ARM Cortex-M3内核、图像处理单元(IPU)和SVM预测硬件加速器、AHB总线矩阵、AHB\_APB桥及APB总线、APB外设、CMSIS-DAP调试端口、图像流控选择器、仲裁器、DDR控制器、OV7725摄像头模块、LCD模块、4G通信模块等,又可以划分为CortexM3子系统、图像处理子系统、SVM预测网络子系统,具体系统框图如下图所示。

图片1.png
图2.1 系统框图

2.2 Cortex-M3子系统

Cortex-M3子系统由图2.1系统框图中第1部分组成。主要包括M3内核、AHB总线矩阵、串口外设、GPIO外设、定时器外设。为了保证系统的实时性和更好的利用M3计算资源,在M3中移植了Rt-Thread Nano硬实时系统和FinSH组件,并在系统中创建了 6个线程。分别为SVM输入特征向量预处理、SVM结果获取、特征向量获取、按键读取、Shell控制台命令解析、系统空闲线程,如下图2.2所示:
图片2.png
图2.2 M3系统线程

2.3 图像处理子系统

图像处理子系统由图2.1系统框图中第2部分组成。包括图像处理部分、图像缓存显示两部分,如2.3图所示。图像处理部分,首先是采用高斯卷积核对摄像头视频数据流滤波,然后使用异步FIFO来处理跨时钟域的问题,采用两种混合方式进行运动检测并进行二值化,第一个方式采用平均背景建模、背景减除、OTSU全局阈值划分运动区域,第二个方式采用基于局部差异的单高斯背景建模划分运动区域,在获得运动目标区域后,采用形态学腐蚀处理,最后提取运动目标的宽高比、宽高积、质心、下落速度。同时最小外接矩阵拟合标记图像中的运动区域,并最终用于LCD显示。图像缓存显示部分,将为图像处理提供必要的缓存、仲裁以及LCD驱动、显示速率匹配。

图片3.png

图2.3 图像处理子系统

为了支撑图像处理部分,同时保证多种图像流切换显示,需要提供必要的缓存仲裁、图像流控、和显示速率匹配。

(1)缓存仲裁

图片4.png

图2.4 RR缓冲仲裁

(2)图像流控器

图片5.png

图2.5 图像流控器

(3)显示速率匹配

图片6.png

图2.6显示速率匹配

2.4 SVM网络子系统

SVM网络子系统即图2.1系统框图中第3部分。该网络能够对数据进行二元分类,其决策边界是对学习样本求解的最大边距超平面。因此可以利用该网络对特征向量进行分类来判定老人是否发生跌倒,本文设计的SVM的基本结构原理如下所示:

图片7.png

图2.7 SVM运算结构

则SVM硬件加速器的数据流向为下图所示:

图片8.png

单个特征向量依次进入stage1的Unit计算,由于Unit中累加器的存在,导致需要经过特征维度个周期时stage2阶段才能得到一次有效的运算,该过程将使得有效数据之间产生许多间隔,导致流水线阻塞,造成一定的时延。并行化Unit虽然将加速特征向量计算,但无法解决Unit单元产生流水线阻塞,如图2.8所示。且多个Unit将消耗更多的FPGA内部资源,使得FPGA内部布局布线越加困难。并且偏移量b的计算需要额外的一个加法器以及一个加法器时延。为了权衡FPGA内部资源消耗和加速效果对该数据流进行优化,使得数据流如图2.9所示。

图片9.png

图2.8 并行Unit计算过程

图片10.png

图2.9 优化的并行Unit计算过程

2.5 系统硬件

在原Xilinx XC7A-75T的开发板基础上自制了硬件,原理图如图2.10,实物图如2.11下所示,由Xilinx开发板、摄像头模块、4G通模块、LCD显示屏组成。

图片11.png

图2.10 系统硬件原理图
图片12.png
图2.11 系统硬件实物图

3系统整体测试

3.1 图像流控测试

图片13.png

图3.1 高斯滤波图像标记图
图片14.png

图3.2 运动检测图像标记

图片15.png

图3.3 形态学腐蚀图像标记

3.2 SVM预测加速对比

测试条件:特征向量104个,维度为4。C语言编写的SVM预测过程经过Keil编译生成hex文件放入CM3内核测量运行时间,在测试前PWDATA将是0xfffffff1,测试后PWDATA将是0xffffffff,由于本系统移植了Rt-Thread Nano系统,为了防止系统调度的不确定性,上述测试代码将放置于SystemInit中,此时Rt-Thread Nano系统还未运行。

图片16.png

图3.4 SVM软件预测消耗1506540周期
图片17.png

图3.5 SVM硬件预测消耗222周期

3.3 跌倒测试

Cortex-M3在获取运动目标的特征向量后,启动硬件SVM加速,并将检测结果打印到FinSH控制台上,其中当检测到目标跌倒时打印fall,未跌倒时打印normal。在跌倒时将蜂鸣器报警并且通过4G网络短信通知紧急联系人。

图片18.png
图3.6 未跌倒状态
图片19.png
图3.7 跌倒状态

3.4 系统资源消耗

系统的整体分为Keil工程和Vivado工程,由于Keil的工程内容实际是运行在FPGA芯片构建的M3内核中,因此系统整体消耗资源实际就是FPGA芯片消耗的资源,如图3.8所示。

图片20.png

图3.8 vivado工程整体消耗(a)
图片22.png

图3.8 vivado工程各模块资源消耗(b)

当前系统消耗了FPGA芯片接近85%的LUT逻辑资源,而由于系统里含有ILA核用来Debug,这部分消耗接近10%的LUT逻辑资源,实际上是可以去掉的,因此当前系统整体消耗了约75%的LUT逻辑资源。

4 系统优势

  • 合理的并行化SVM特征向量计算通道,平衡FPGA内部资源消耗和加速效果比,在FPGA上完成了验证,提供相比软件SVM预测网络极高的加速比。
  • 在FPGA内采用多级流水线的实时图像滤波,形态学处理,合理并行化类间方差计算通道,实现了全局动态阈值的加速计算。
  • 在FPGA内采用基于全局与局部差异的融合方法对图像进行运动目标区域检测,实现了更加有效的检测运动目标。
  • 采用特征值融合的方法对运动目标进行监测,实现了不同特征之间的优势互补。

5 参赛体会

通过这次比赛,让我们对异构系统的设计有了初步的认识,了解了软硬件思路的划分和硬件加速电路的实现,也明白了如今传统单CPU式架构的缺陷,大型的系统越来越倾向于异构化的系统即主控芯片和外部硬件加速电路,“专人干专事”极大的提高了系统的利用率和实时性。非常感谢集创赛给我们提供了宝贵的实践机会,也祝愿集创赛越办越好。

作品内容来源于剑指S5,总决赛奖项:二等奖,非开源,转载请标明出处。
欢迎大家参加极术社区组织的有奖征集|秀出你的集创赛作品风采,免费电子产品等你拿~活动,10月1日截止~
推荐阅读
关注数
18727
内容数
130
基于Arm技术竞赛作品的分享,欢迎交流~
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息