靳海伟, 彭 力 , 卢晓龙
(江南大学 物联网工程学院,江苏 无锡214122)
截止2013 年底,我国60 周岁及其以上人口约20 243 万人,占总人口的14.9%,人口老龄化情况严重。目前许多家庭的子女由于在外工作等原因,无暇照顾老人,老人的健康维护显得十分重要。对于大多数老年人来说,摔倒是造成严重受伤的原因之一[1]。研究表明,20% ~30% 的老年人不同程度经受由摔倒引起的病痛[2],因此快速而准确地获取摔倒信息为伤者提供及时救助,可以大大提高医疗效率,降低由摔倒延迟发现而引起的进一步伤害。
目前摔倒检测的相关算法可以分为两类:基于可穿戴式设备的摔倒检测算法和基于视频的摔倒检测算法。基于可穿戴式设备的摔倒检测,根据设备监测到的数据来反映人体活动变化。文献[3]运用三轴加速度传感器采集数据,通过确定三轴与重力加速度的夹角来确定姿态变化。文献[4]运用多种传感器和摔倒前后心率变化进行检测。文献[5]提出一种基于统计学判别分析的摔倒检测算法,由采集到的加速度传感器进行处理得到摔倒特征向量空间进行判别。但是可穿戴式设备容易受到外界噪声干扰,例如人体的自然伸缩,其正确判别率低。基于视频的摔倒检测,通过布置在高危区域的摄像头捕捉人体活动,运用动作跟踪技术来识别摔倒事件。文献[6]利用外接方框来代表人体,通过人体宽高比特征进行摔倒判断,算法简单但容易产生误判。文献[7]在人体宽高比特征的基础上采用有效面积比和中心变化率两个特征来进行结果修正,能有效防止误判。文献[8]通过提取视频图像序列中人体形状特征积累似然率和设置阈值来进行摔倒动作匹配,其算法复杂,实时性较差。
文中提出一种基于轮廓跟踪的摔倒检测算法,通过提取视频中的运动目标(老人)进行轮廓跟踪,生成边界链码,并对实际边界链码进行插值长度调整,然后通过与摔倒模型进行欧氏空间距离比较判别是否摔倒。最终通过实验证明该算法计算复杂度低,易于实现,提高了摔倒检测结果的正确率。
由于处于视频监控的老人危险区域较为集中,例如走廊、楼道拐角等,所以视频监控中的背景部分较为固定,相对变化较小,因此采用背景减除法来提取运动目标(老人)。为了减小提取运动目标的边缘存在的椒盐噪声对边界跟踪的影响,采用中值滤波来消除这部分噪声,以便得到清晰的边缘。由于提取的目标内部可能存在小孔,利用形态学中膨胀和腐蚀来填充这些小孔,以便得到完整的目标。
背景减除法[9]的原理是从视频序列中依次采集图像fk(x,y),将其与背景图像bk(x,y)进行差分得到差分图像Dk(x,y)。表示如下:
对差分结果进行二值化处理:
得到目标图像Rk(x,y)。当Dk(x,y)中像素点的值大于阈值T 时,被判定为前景,否则被判定为是背景。过程如图1 所示。
图1 背景减除法Fig.1 Background subtraction
中值滤波是基于排序统计理论的一种能有效抑制噪声的非线性信号处理技术。中值滤波的基本原理是把数字图像或数字序列中一点的值用该点的一个邻域中各点值的中值代替,让周围的像素值接近真实值,从而消除孤立的噪声点。方法是用某种结构的二维滑动模板,将板内像素按照像素值的大小进行排序,生成单调上升(或下降)的二维数据序列,结果如图2 所示。
图2 中值滤波Fig.2 Median filter
膨胀和腐蚀是图形形态学中最基本的两种算子。腐蚀的作用是消除物体边界点,使目标缩小,可以消除小于结构元素的噪声点;膨胀的作用是将与物体接触的所有背景点合并到物体中,使目标增大,可添补目标中的空洞。运算时先膨胀后腐蚀,可以填充物体内细小的空洞,并平滑物体边界。
结果如图3 所示。
图3 膨胀腐蚀Fig.3 Expansion of corrosion
轮廓跟踪的目的是为了获取目标区域的外部轮廓特征。轮廓跟踪就是顺序找出边界点,不仅可以跟踪出边界,还可以同时记录边界信息,生成边界链码,为形状分析和目标识别做准备。轮廓跟踪可以基于4 方向码和8 方向码分别跟踪出4 连通的轮廓和8 连通的轮廓。但对于大多数区域,不一定存在封闭的4 连通轮廓,会导致基于4 方向码的轮廓跟踪失败。因此,文中采用8 方向码的轮廓跟踪,方向码的定义如图4 所示。
图4 8 连通方向码Fig.4 8 connected direction code
假设要处理的图像为二值图像,而且图像中只有一个连通的目标区域,则轮廓跟踪算法步骤如下:
1)从上到下、从左到右顺序扫描图形,寻找第一个目标点作为边界跟踪的起始点,记为A。A 点一定是最左上角的边界点,其相邻的边界点只有可能出现在它的左下、下、右下、右4 个邻点中。定义一个搜索方向dir = 5,即从方向5 开始搜索与A 相邻的下一个边界点,用于记录从当前边界点搜索下一个相邻边界点所用的搜索方向码。
如果当前搜索方向dir 上的邻点不是边界点,则依次使搜索方向逆时针旋转一个方向,更新dir,直到搜索到一个边界点为止。如果所有方向都没有找到相邻的边界点,则该点是一个孤立点。dir 的更新公式表示为:dir = dir +1。
2)把上一次搜索到的边界点作为当前边界点,在其3 ×3 邻域内按逆时针方向搜索新的边界点,它的起始搜索方向设定:若上次搜索到边界点的方向dir 为奇数,则使dir = dir +6,即将上次的搜索方向顺时针旋转两个方向;若dir 为偶数,则使dir =dir +7,即将上次的搜索方向顺时针旋转一个方向。
如果起始搜索方向没有找到边界点,则依次使搜索方向逆时针旋转一个方向,更新dir,直到搜索到一个新的边界点为止。
3)如果搜索到的边界点就是第一个边界点A,则停止搜索,结束跟踪,否则重复上一步骤继续搜索。
由依次搜索到的边界点系列就构成了被跟踪的边界,即边界链码。步骤1)中所采用的准则称为“探测准则”,目的是找出第一个边界点;步骤2)中所采用的准则称为“跟踪准则”,其作用时找出所有边界点。图5 为基于8 方向的轮廓跟踪示例,图中黑色表示边界像素。从最左上角A 点沿逆时针方向开始编码,得到边界链码为566711077123335533。
图5 8 方向码的轮廓跟踪Fig.5 Outline of 8 direction code tracing
通过将一组未知的边界链码与摔倒模板链码进行比较来判断老人是否摔倒。图6 为用来作比较的摔倒模板,包括在地上不同方向躺着、趴着、坐着,图中列出不同姿势的3 种情况为例。实验中采用的模板为每种姿势8 种情况(包括多角度、侧身、抱手、屈腿等情况),基本上模拟出老人摔倒的各种姿势情况。
根据轮廓跟踪算法可以得到它们的边界链码。由于实际老人的体型大小有差别以及老人与摄像头的距离存在不同造成实际链码与模板链码长度不一致,这将引起较大的比较误差。文中通过从相同起点开始编码和将较短的链码扩展到与较长链码相同的长度来解决这个问题。
约定从最上角的像素点开始沿相同的方向(如逆时针)生成链码。在扩展链码上采用插值技术,假设有两组链码A 和B,A = {ai| 1 ≤i ≤m}代表较短的一组,其中ai代表链码A 中的一点,m 代表A 的长度,同理B = {bi| 1 ≤i ≤n}代表较长的一组。C ={ci| 1 ≤i ≤n}代表A 经过插值后的链码,通过以下两步定义ci:
1)根据ai原来在A 的位置成比例地分布在C上。令c1= a1,当2 ≤i ≤m,= ai。例如,设A =2 536。如果设n/m = 2,则A 的长度扩大2 倍后C =2__5_3_6,因为在A 上1,2,3,4 位置的编码在C 上的分别对应位置为1,4,6,8。
2)在C 上插入新编码。在原来链码序列的基础上插入新值必然引起误差,因此在原来序列中两个编码间插入新值必须符合原值的变化趋势。这里考虑3 种插值情况:
第1 种情况为在相同的两个编码值间插值。这表明原来的边界沿着相同的方向变化。例如链码“...22...”,这组链码表明至少3 个相邻像素在垂直方向上。如果要扩大2 倍及其更多倍数时,应该在这两个相同的编码间复制这个值,则新的链码变为“...2222...”。
第2 种情况为在不同的编码值间插值。为了防止不可预知的误差,将新增的前一半编码取值为原来链码左边的编码值,后一半取值为原来链码右边的编码值。例如“...03...”,则变化后的链表示为“...000333...”。
第3 种情况为在原来链码的最后一个编码后面插值。在这种情况下,可以参考原来链码的第一个编码和最后一个编码来决定插值。
图6 摔倒模板Fig.6 Fall template image
欧氏距离常用来衡量信号的相似程度,所以采用欧氏空间距离来衡量经过调整后的模板边界链码和实际边界链码来比较两组链码的差别大小,即未知人形与摔倒模型的相似程度。欧氏空间距离定义如下:
其中i = 1,2,…,n,这里x1i,x2i表示经过调整后的两组链码中对应位置的码值。
如果欧氏空间距离D 小于预设的阈值(其大小根据实际系统的精确度而定),并且这个状态持续一段时间,判断其为摔倒事件。
为了检验文中所提出算法的有效性,对摔倒事件进行测试。由于本实验具有一定的危险性,因此选取普通人而非老人为实验对象。实验地点选择为老人易发生摔倒的危险区域走廊和楼道口。图7 展示了实验者在以上实验地点的摔倒示例。文中选取5 男5 女共10 个实验者进行模拟,实验者在测试中做出摔倒或者非摔倒动作,其中摔倒60 次,非摔倒40 次,并且要求摔倒动作持续10 s 以上时间,防止老人正常的动作被视为摔倒。
在摔倒检测实验中,有4 种可能情况:第1 种摔倒事件发生算法正确检测摔倒;第2 种摔倒事件未发生算法误判摔倒;第3 种摔倒事件发生算法判断为未摔倒;第4 种摔倒事件未发生算法判断未摔倒。以上4 种情况,定义灵敏度、正确率、误判率3 个指标来评价算法。
表1 给出楼梯口和走廊3 个指标(灵敏度、正确率、误判率)结果。
图7 摔倒示例图像以及跟踪边界Fig.7 Fall image and boundary markers
表1 算法结果指标Tab.1 Algorithm results'index
由表1 可得文中算法在2 种场合中均可以取得88% 以上的灵敏度和90% 以上的正确率,以及10% 以下的误判率。通过比较可以看出,算法效果在楼梯口要好于走廊,主要因为楼道口亮度相对变化较小(白天有阳光,晚上有灯照明),而走廊亮度相对变化较大(受光源位置影响较大),影响目标提取,给后续处理造成困难。
在摔倒判定中,规定当老人开始出现摔倒状况并且持续至少10 s 时判定为摔倒事件进行报警。为了测试系统的实时性,表2 给出楼梯口和走廊的平均反应时间。
表2 楼梯口和走廊的平均反应时间Tab.2 Average response time
表3 给出文中算法和其他摔倒检测算法的比较结果。由表3 可以看出,文中算法在摔倒检测效果评价指标上优于文献[7-8]算法,具有更高的灵敏度和正确率,而且文中算法采用的摔倒标准模板和模板中某种姿势的个数有限。随着模板个数的增加,算法的各项指标会得到提升,但是处理时间延迟会增加。
表3 算法比较结果Tab.3 Result of the comparison
文中算法对提取的老人进行边界跟踪,而不需要像算法文献[7-8]持续关注老人的动作变化。边界链码对于边界上的每一个点只需要一个方向数就可以代替两个坐标值,由于一个方向数比表示一个坐标值简单,因此链码表示可以大大减少表示边界的数据量。边界链码的处理不仅使判断模型得到简化,而且结果更加精确。
文中主要介绍了基于轮廓跟踪的摔倒检测算法,该算法在提取运动目标老人的基础上,采用轮廓跟踪算法获取边界链码,提出模型匹配识别技术来判断老人摔倒事件。实验结果表明,该算法复杂度低、易于实现,具有较高的判别正确率,可以被应用于实际视频监控系统中。
[1]Rougier C,Meunier J,St-Arnaud A,et al. Fall detection from human shape and motion history using video surveillance[C]//Advanced Information Networking and Applications Workshops,21st International Conference on. [s. l.]:IEEE,2007,2:875-880.
[2]Wilding M J,Seegert L,Rupcic S,et al. F-alling short:recruiting elderly individuals for a fall study[J]. Ageing Research Reviews,2013,12(2):552-560.
[3]王荣,章韵,陈建新.基于三轴加速度传感器的人体跌倒检测系统设计与实现[J].计算机应用,2012,32(5):1450-1453.
WANG Rong,ZHANG Yun,CHEN Jianxin.Design and implementation of fall detection system using tri-axis accelerometer[J].Journal of Computer Applications,2012,32(5):1450-1453.(in Chinese)
[4]薛源,高向阳.基于多传感器信息融合的跌倒监测系统的设计[J].武汉理工大学学报:信息与管理工程版,2011,33(5):712-716.
XUE Yuan,GAO Xianyang.A design for fall detection monitoring system based on information fusion of mutil-sensor[J].Journal of Wut Information and Management Engineering,2011,33(5):712-716.(in Chinese)
[5]金纯,伊远阳.一种基于统计学判别分析的老人摔倒检测算法的研究[J].计算机应用研究,2014,31(1):89-94.
JIN Chun,YI Yuanyang. Old man fall detection algorithm research based on discriminant analysis of statical[J]. Application Research of Computers,2014,31(1):89-94.(in Chinese)
[6]Vaidehi V,Ganapathy K,Mohan K,et al. Video based automatic fall detection in indoor environment[C]//International Conference on Recent Trends in Information Technology.Tamil Nadu,India:[s.n.],2011:1016 -1020.
[7]刘红,左常玲,黄江林.一种改进的自动摔倒检测算法[J].安徽大学学报:自然科学版,2012,36(6):57-61.
LIU Hong,ZUO Changling,HUANG Jianglin.An improved algorithm of automatic fall detection[J].Journal of Anhui University:Natural Science Edition,2012,36(6):57-61.(in Chinese)
[8]TAO J,Turjo M,WONG M F,et al.Fall inci-dents detection for intelligent video survei-llance[C]//Information,Communications and Signal Processing,2005 Fifth Interna-Tional Conference on.[s.l.]:IEEE,2005:1590-1594.
[9]Maddalena L,Petrosino A.A self-organizing approach to background subtraction for visual surveillance applications[J].Image Processing IEEE Transactions on,2008,17(7):1168-1177.