智能摔倒检测监控系统设计

2018-04-13 01:06刘德丰余旭伟钟天扬
计算机技术与发展 2018年4期
关键词:阈值服务器语音

伍 静,刘德丰,张 松,余旭伟,钟天扬,陈 飞

(江南大学 数字媒体学院,江苏 无锡 214122)

0 引 言

传统的视频监控仅限于视频的存储和回放,没有给用户实时反馈信息的功能,随着需求的增长,已经不能满足人们对安全性的要求。20世纪末以来,视频监控系统经历了从模拟系统、数字系统到网络化系统演进的过程,智能视频监控系统已然发展成一个较成熟的体系[1-2]。

传统视频监控技术只是“笨拙”地记录信息,需要人工对录制的视频进行分析,效率极其低下。而文中设计的智能视频监控系统,使用图像处理技术对被监控场景进行理解,结合适当算法对获取的每一帧图像进行分析,判断运动目标的行为,自动得出结论并给用户提供反馈,提高了监控效率。预警的原理基本都是在服务器和用户手机之间建立一个TCP长连接[3],需要考虑的一个重要问题就是连接的稳定性,而系统采用的Zabbix支持分布式监控,报警及时,几乎无报警延迟现象。

目前国内已经开发了一些智能视频监控系统,如中国科学院研发的Vstar系统[4]、华为智能视频监控平台。也有很多关于安防监控的优秀论文,例如,张璐璐[5]基于TMS320DM368处理器平台的视频监控终端系统研发了声音检测及告警功能软件,改进了DTW算法,提高了声音识别的速度;董坤[6]提出的在较复杂场景中应用的异常行为识别判定算法可以高效准确地检测出人体跌倒行为。高泓昱[7]通过网络建立标准行为路径,可以对多种异常行为进行识别和检测,使系统具有多样性。而文中设计的优势在于,分析视频片段时将视频检测和语音识别进行加权结合,提高对目标行为判断的准确率,同时在判断出运动目标有摔倒行为后有向用户发送邮件进行报警的功能。

1 系统总体设计

基于视频的摔倒检测智能监控系统的实现主要分为四个模块:服务器搭建、视频检测、语音识别和邮箱告警。系统设计总体结构如图1所示,具体包含:

(1)服务器端:系统运行的最基础部分,完成视频数据获取和存储工作;

(2)视频检测:整个系统的核心组成,是邮箱告警的重要依据;

(3)语音识别:作为视频检测的辅助,对最终结果的分析同样具有重要作用;

(4)邮箱告警:属于人机交互范畴,将系统分析出的结果反馈给用户。

图1 系统总体架构

2 服务器搭建

2.1 使用工具

(1)EasyDarwin服务器。EasyDarwin流媒体平台解决方案的核心流媒体服务,开源、高效、稳定、可靠、功能齐全,支持RTSP/HLS/HTTP协议,支持安防行业需要的摄像机流媒体转发功能,支持互联网行业需要的多平台点播、直播功能。

(2)EasyPusher。在服务器搭建工作中使用EasyPusher_Android客户端,借用手机摄像头摄像,完成推流工作。

(3)EasyPlayer与VLC客户端。两者可互相替换且均支持多平台(Windows、Android、IOS),拉取服务器端视频流实现直播功能,低延时、画面流畅。

(4)MongoDB数据库。MongoDB[8]介于关系数据库和非关系数据库之间,可以存储比较复杂的数据类型,且支持的查询语言非常强大。MongoDB作为数据库存储推送后存放在EasyDarwin服务器的视频流切片,供后续视音频检测的视频数据库存储工作。

服务器工作流程:客户端EasyPusher在指定EasyDarwin服务器所在IP地址将捕获的视频流推送至EasyDarwin服务器;EasyPlayer/客户端VLC在确定EasyDarwin服务器所在IP地址后,可拉取EasyDarwin服务器的视频流实现直播功能;EasyDarwin服务器所在IP地址的本机本地存储视频流的视频片段,使用mongo-cxx-driver存储至MongoDB数据库,以便后续视频检测和语音识别。

2.2 具体实现

首先用Visual Studio编译出exe可执行文件EasyDarwin.exe后启动EasyDarwin服务,移动端应用EasyPusher_Android设置相关参数,开始视频流传输,实现视频流从移动端推流至EasyDarwin服务器,在Easyplayer或者vlc客户端设置相关参数实现直播。随后将MongoDB-cxx-driver安装为Windows服务,使用GridFS将EasyDarwin服务器中推流的视频片段存储到MongoDB。至此服务器和数据库工作完成。

3 视频检测

系统中的视频检测是由运动目标检测跟踪到运动目标的处理再到对图像进行去噪进而得到预处理结果。视频检测的流程为:读取视频,申请内存,转换为单通道(设定第一帧为背景帧),高斯滤波平滑图像,依次读取对应帧与背景相差(获取运动对象),检测对象的高宽比,检测对象的中心变换斜率。

3.1 运动目标的检测与跟踪

(1)帧间差分法。

对于从数据库中获取的视频内容,当监控场景中出现目标物体运动时,帧与帧之间会出现较为明显的差别,两帧相减,得到两帧图像亮度差的绝对值,再通过阈值等判别形式,进而确定图像序列中有无物体运动[9]。

帧间差分法的定义如下:

(1)

其中,d表示两帧间像素灰度差;Th表示阈值。

然而,该方法的效果取决于选择的帧间时间间隔,一旦物体运动速度过快,而且没有选取合适的时间间隔,则会导致检测的物体发生分离,难以确定运动的形式与先后。如果物体运动的速度过慢,则会使两帧重叠部分较多,最后识别结果并不明显,难以正确区分全部的运动内容。由于运动的老人在行为与速度上的可行性问题,最终决定使用背景减除法来确定运动目标的动作行为。

(2)背景减除法。

由于是针对室内场景,基于静止场景运动目标检测的特点,现拟采用基于背景减除法[10-11]的高斯混合模型进行运动目标检测,最终得到目标前景图像。针对室内场景静止的特点,获取到视频的第一帧为背景帧,建立对应的高斯混合模型,经过一系列图像平滑、二值化以及去噪处理过程之后,通过OpenCV当中的库函数对获取的视频帧依次与背景模型相减,得到运动的目标,同时再载入下一张视频帧,更新数据,并进行下一步的判断与比较。

(2)

式(2)表示将当前的每一帧图像都与背景模型图像做差,根据差值的大小对差值结果图像进行处理,对偏离背景图像大的像素点赋值255,并把这些像素点归属为前景像素点,对偏离背景图像较小的像素点赋值0,并把这些像素点归属为背景像素点,这样就得到了帧差图像。

3.2 运动目标的处理

3.2.1 对运动目标的分割

(1)基于边缘检测的运动目标分割:由于图像在变化区域的边缘的像素灰度值会发生突变,可以通过程序捕捉到这个突变发生的区域或者范围,进而从大体上得到物体的整体轮廓,确定物体的运动范围与活动形式。

(2)基于阈值的运动目标分割:通过对该区域的直方图信息进行运算估计,确定相关的阈值之后,对准备进行处理的图像的像素信息与阈值进行一定的运算,取不同的保留量,进而分割出图像中的运动目标。

对于运动目标分割的部分,由于基于边缘检测的运动目标分割对于室内场景中那些易受光照阴影影响的部分分割效果并不理想,所以在获取初始帧后对拟定运动区域的直方图进行分析运算,设定了几组阈值范围并且最终选择了一组较合适的阈值用以分割图像。

3.2.2 对图像进行去噪处理

由于处理过后的图像在光影等外部因素的影响下会在非运动变化区域内产生一定的误差,现需要对分割后的图像进行去噪处理。同时,经过腐蚀与膨胀的操作,对于那些已经获取的运动目标进行更加精确的定位,以及更加细致的量化处理,进而减小在后期识别检测算法当中产生的相对应的外部干扰因素,使检测结果更加准确。

3.3 运动目标摔倒检测分析算法

3.3.1 基于运动对象高宽比的摔倒分析检测算法

由于人体构造的既定性,对于人体在摄像头当中的运动模型,其高与宽的比例,不会受到对应深度距离的影响。现拟运动目标的高度与宽度之比为一种判断标准,如果检测的物体的高宽比在短时间内发生大幅度变化,则视为其运动形式发生了一定的变化。对于之前获取到的图像,根据二值化后的结果,对图像进行分割,进而获取对应运动物体的高度值与宽度值,再将这两者按照一定的缩放比例进行求比值的操作,其结果作为判断标准之一。

不过,该方法对于无遮挡物的场景,效果较为明显,当运动目标从一个空旷的地区行进到一个上方或者下方有遮挡的空间时,其对应的运动区域的高宽比也会发生骤然变化,进而影响判断的准确性,因此需要在此基础上,添加另一种检测算法,以确保整体检测分析的准确性与可行性。

3.3.2 基于有效面积的运动目标摔倒检测分析算法

规定有效面积为图像中检测得到的运动目标的面积与刚好将运动目标包含在内的最小矩形的面积之比[12],通过这个比例的值可以大致估计出运动物体在监控内的肢体运动的幅度与倒地时四肢的放置方式,有助于对相关运动目标运动形式的判断。其可以定义为:

(3)

其中,EA-Ratio为有效面积比,是二值化处理的图像矩形框中像素值为1(差分后移动人体部分)的像素个数,也是整个矩形框所有像素个数。当人体占据矩形框的大部分面积时,有效面积比大,反之则很小。当人做某些健身活动时,宽高比远大于1,仅靠宽高比判断是否跌倒就会出现误判的情形。这时,把有效面积比纳入到参考范围,有效面积比会变小,不符合跌倒后有效面积比和正常情况差不多的事实基础。

在做基于有效面积的运动目标摔倒检测的过程当中,设定了通过对预处理后的图像进行边缘提取,同时用拟定的曲线方程对运动对象的外部轮廓加一个外接圆,并用其来表示有效面积,经过阈值的比较来判断摔倒事件的触发可能性。

3.3.3 基于中心变换率的运动目标摔倒检测分析算法

由于在摔倒的过程中,运动目标的整体位置不会发生太大变化,然而对于整个运动的物体来说,其重心变化过程是在骤然间发生的[13]。现在可以模拟整个运动目标的中心,在突然摔倒的过程中,是从一个较小的值骤然变为一个趋近于无穷大的量,进而通过这一变量的变化速率来确定物体的运动形式。

设A、B分别是相邻两帧中人体的中心点,定义A和B两点之间连线的斜率为中心变化率:

(4)

两中心点间的欧氏距离为:

(5)

当人突然下蹲时,理论上斜率是趋于正无穷大的。相反,当人摔倒后起身时,人体中心点的距离也会很大,斜率趋于正无穷大。结合宽高比、有效面积比、中心变化率一起判断,可以防止对类似动作的误判。

基于上文提到的高宽比、中心变化率、有效面积等参量,通过有限次数的试验,采用五种被赋予不同权值的参考系数,高度变化率(单位时间人体框图高度变化量与其最大值比值的变化)、有效面积比(当前人体框图面积与其最大值的比值)、摔倒序列帧数(满足摔倒检测条件的持续时间,以其持续视频序列的帧数来表示)、中心变化率(框图中心变化率)、移动速度(单位时间内位置的变化量,以其和框图宽度的比值量化表示),通过将它们和相应的阈值比较来检测摔倒,得到表1(参量后面百分比表示权值百分比,0表示和相应阈值比较未满足摔倒条件,1则表示满足条件,-表示有的情况满足有的不满足)。

表1 人体检测表

中心变换率可以用来表示运动的突变性,通过对运动轨迹的获取以及相关帧率的关系,以获取到的中心变换率集中地展示了检测目标的运动趋势以及在短时间内的运动瞬时突变概率。用这一参数综合判断检测目标的运动趋势。

4 语音识别

为了区别于现有的视频监控预警系统,文中的设计加入了语音识别的功能,旨在辅助判断目标的摔倒行为,使结果更加精确。

4.1 声音识别的一般过程

声音识别技术主要是通过对采集到的声音进行特征参数提取,与词汇库作对比,通过模板匹配法得到目标声音和样本的一致性判断。声音的特征提取就是从某段音频中提取出该类声音特点的基本特征,并且选取的特征参数应能较准确地反映声音的本质特征[14]。

4.2 系统中的语音识别

系统调用了科大讯飞的语音听写接口来实现系统的音频翻译为文字的功能。语音听写是将一段连续语音快速转换成文字的过程,科大讯飞语音听写SDK能识别常见的词汇、语句,而且不限制说法。程序调用QISRGetResult()函数获取音频翻译之后的结果并赋值给rec_result数组,并且程序可以自动模拟人说话的时间间隙,使得翻译出的结果更精确。但是其目前识别仅支持采样率为8 K/16 K,采样精度16位,存储字序为Little-Endian的单声道Windows Pcm格式音频。

为了符合以上要求,系统利用FFmpeg(一种可以转换音频格式的开源工具)对摄像头采集到的视频进行视音频的分离,并且将音频转换为16 K采样位单声道的wav格式音频,最后的翻译效果与音频内容是否清晰也有很大的关系。

经测试,系统对包含“救命”的语句可以做出较准确的判断。在语音听写代码的基础上做出改进:一个汉字占两个字节,用rec_result为char数组名称,当系统检测到rec_result[0]==-66 && rec_result[1]==-56 && rec_result[2]==-61 && rec_result[3]==-4时,说明被监测人发出了疑似救命的声音,程序立即反馈给数据库作为后续邮箱告警的重要依据。如果检测到音频异常,将反馈到MongoDB数据库中更新其音频一栏的键值,再综合视频检测所得结果分析是否向用户邮箱发送告警信息。

5 邮箱告警

Zabbix是基于Server-Client架构的一种网络监视、管理系统,可用于监视各种网络服务、服务器和网络机器等状态。系统中的Zabbix在Ubuntu16.04环境下配置,主要安装过程为安装Apache、MySQL和PHP7.0,编辑php.ini文件,安装好Zabbix服务端后进行客户端的配置。对数据库进行root授权,修改Zabbix_server.conf配置文件,并重启Zabbix-server服务,最后用Linux命令行给用户发送邮件。

图2是邮箱报警的过程图,需结合视频检测和语音识别两个结果判断是否报警。由于视频检测占分析的主要部分,故设视频检测结果权重占80%,语音识别结果权重占20%。通过表1可以算出最接近摔倒姿势的下蹲姿势的值范围为0.55~0.8,摔倒姿势的值范围为0.8~1.0。视频检测结果经表1转换后即变为用数字表示老人摔倒的可能性大小,而语音识别的结果只有两种可能性,即声音异常(识别结果为1)与声音不异常(识别结果为0)。将视频和音频所得结果相加(乘以各自所占权重),若值大于0.6,则立即向用户邮箱发送告警消息。

图2 邮箱告警流程

例如:当视频检测到被监视目标摔倒的可能性为0.55,声音检测为异常,此时系统所得结果为0.55×0.8+1×0.2=0.64,系统应向用户报警。

6 在线测试

6.1 语音识别部分

语音识别测试用时长7 s,采样率16 K,比特率256 kbps的wav格式音频,当检测到汉字“救命”时输出“bingo!”。

6.2 邮箱告警部分

图3为Zabbix向用户发送告警邮件的示意图,其发送邮件的命令为:echo "zabbix test mail" |mail -s "zabbix" user@qq.com。

图3 Zabbix向用户发送邮件测试图

6.3 视频检测部分

为验证系统性能,选用半球摄像机在光线充足、噪声较小的室内环境进行设备的在线测试,摄像机分辨率是800*480,并在Matlab软件下运行人体运动目标检测程序。鉴于上文所描述的三种摔倒检测算法,现对实验案例中的四组视频进行相应的定量分析,每段检测的视频大约40 s。首先设定高度变化的阈值、检测摔倒的速度阈值、检测摔倒中心变化率、检测摔倒有效面积比四个变量,用以记录比较从视频中获取的有效面积、重心、中心变化率、高宽比检测信息。

在视频中对整个视频进行抽帧、二值化处理,获取到对应帧当中的二值图像,在二值图像中,设定一组内接于差分图像的椭圆,根据椭圆面积公式不断刷新不同帧时对应的椭圆面积来表示检测对象的实时有效面积,并对两组有效面积的比设定了一组阈值,用以确定有效面积的突变情况。

在图像中,取有效面积的中心点来设定该检测对象的中心位置。根据不同帧的检测对象的中心位置变化的速率对其中心变化率进行计算[15],同时与经过实验设定的阈值进行比较,从而判断检测对象的运动趋势是否为突变行为。

实验结果表明,系统可以有效测出人体的静坐、直立行走、下蹲、摔倒等动作。图4即为输出的人体下蹲和摔倒行为检测图。但是也发现,由于逐帧相减法对一些非关注检测目标的抗干扰性有一定的局限性,所以若视频的拍摄环境存在倒影、光照或者移动物体,将会影响测试结果。

图4 人体下蹲和摔倒行为检测图

7 结束语

文中改进了智能摄像头监控系统并且基本实现了通过智能算法判断出视频中的检测目标有摔倒行为,能够较准确地翻译出测试环境中的声音。系统各个模块都可以独立进行工作。但是系统也存在一定局限并且尚有一些细节未完成,如在视频检测中,人体走动或者自然光照射角度引起的光影变化会使最终判断结果出现误差,并且被监测目标不能被物体遮挡;在语音检测中,识别语言只能为普通话。

目前,基于视频的摔倒检测监控预警系统的研究仍处于实验阶段,在未来的研究中,为了使该视频监控

预警系统尽快走向实用,需要做进一步的探索:改进视频检测算法,使系统能在目标人物被其他物体遮挡时也能准确判断目标行为;单个摄像机的视野有局限性,可以尝试用多个摄像头监视同一个场景提高目标行为识别的准确率;丰富语音识别的功能,使系统不仅能将声音翻译为文字,也能较准确地判断声音来源。

参考文献:

[1] 黄凯奇,陈晓棠,康运锋,等.智能视频监控技术综述[J].计算机学报,2015,38(6):1093-1118.

[2] 黄铁军,郑 锦,李 波,等.多媒体技术研究:2013—面向智能视频监控的视觉感知与处理[J].中国图象图形学报,2014,19(11):1539-1562.

[3] 肖春光.使用消息推送技术发布预警信息[J].信息技术与信息化,2015(8):103-104.

[4] HUANG Kaiqi,TAN Tieniu.Vs-star:a visual Interpretation system for visual surveillance[J].Pattern Recognition Letters,2010,31(14):2265-2285.

[5] 张璐璐.视频监控终端系统声音检测及告警功能软件设计[D].杭州:浙江大学,2013.

[6] 董 坤.视频监控中运动人体检测与异常行为分析研究[D].南京:南京邮电大学,2013.

[7] 高泓昱.基于网络传输算法的多摄像头行为识别和事件检测[D].上海:上海交通大学,2013.

[8] DIROLF K C M.Mongo-DB:the definitive guide[M].北京:人民邮电出版社,2011.

[9] DAVID C,GUI V.Automatic background subtraction in a sparse representation framework[C]//Proceedings of the systems,signals and image processing.[s.l.]:[s.n.],2013:63-66.

[10] BENEZETH Y,JODOIN P M,EMILE B,et al.Review and evaluation of commonly-implemented background subtraction algorithms[C]//19th international conference on pattern recognition.[s.l.]:[s.n.],2008:1-4.

[11] 黄源源.视频监控系统中一些关键技术的研究[D].成都:电子科技大学,2013.

[12] WREN C R,AZARBAYEJANI A,DARRELL T,et al.Real-time tracking of the human body[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,1997,19(7):780-785.

[13] 左常玲.基于视频的自动摔倒检测研究与实现[D].合肥:安徽大学,2012.

[14] 冯 哲.基于内容的视频检索中的音频处理[D].上海:复旦大学,2004.

[15] 胡 琼,秦 磊,黄庆明.基于视觉的人体动作识别综述[J].计算机学报,2013,36(12):2512-2524.

猜你喜欢
阈值服务器语音
土石坝坝体失稳破坏降水阈值的确定方法
基于小波变换阈值去噪算法的改进
采用红细胞沉降率和C-反应蛋白作为假体周围感染的阈值
魔力语音
PowerTCP Server Tool
基于MATLAB的语音信号处理
BlackJumboDog
基于MQ3与MP3的价廉物美的酒驾语音提醒器
对方正在输入……
2018年全球服务器市场将保持温和增长