马征科+郑卫娟
摘要:近年来,随着流媒体技术的不断发展,视频监控系统的应用日益广泛和深入,基于安卓平台的移动终端设备的远程视频监控已经成为监控研究领域的热点。针对传统基于Android的视频监控系统的互联网接入的局限性,流量过耗大,使用方便性,文章提出了基于视频监测和音频监测的拨号报警,通过对两种模式的研究,其良好的实用性和简易性,未来可以更灵活的布置应用。
关键词:Android;拨号报警;视频监控;感知哈希算法
1引言
近年来,视频监控系统经历了从复杂性应用到简单实用性应用的改变,全球手机端用户日益增多更是起来关键性作用。尤其是对于Android操作系统的问世,智能技术的在民用方面的作用日渐凸显,由于Android是一种以Linux为基础的开放源码操作系统,这也使得Android能够提供更好的开发和调试环境,使得用户获得更多的扩展体验,通过对安全监控系统现状及发展趋势的研究,结合理论技术的发展及监控系统性能的需求,还有其良好的开发性和移植性,未来可以更灵活的布置应用,视频监控系统可以实时对获取画面进行有效监控,预防突发情况的发生。文中介绍了一种基于Android平台的视频监控系统,该系统调用智能终端的视频和音频模块,根据不同环境,既可不间断监控,也可在有异常情况时激活这两个模块,对可听、可视范围内的目标进行监控,文章将重点介绍从视频流中抽取每帧的图片和两张图片进行对比的算法。
2系统结构
视频监控系统主要由视频模块和音频模块组成。
其中视频模块主要是由Android智能手机上的摄像头采集视频流,然后视频模块来分析视频流是否监控到异常,如果没有异常,则视频保存到文件中;当监控到异常时,视频模块通过拨号报警通知已经设定好的报警电话。
音频模块主要是通过Android SDK中的Medi aRecorder类来获得音源数据,然后利用getMaxAmplitude()方法来获得一小段时间内音源数据中的最大振幅,因为该方法返回的是0到32767范围的16位整型,原理是对一段值域为32767到32767的音源数据取其中绝对值最大的值并返回。因此算出的最大分贝值是90.3,因此设定的监测声音分贝值为OdB到90.3dB之间。
3系统功能实现
系统主要是通过视频模块与音频模块来实现拨号报警功能,视频模块中主要是从视频中提取出每帧的图片的算法和对两张图片对比的算法。
3.1抽取图片
Android平台的视频监控系统通过onPreviewFrame()方法来捕捉视频最开始的第一帧画面图片,然后每隔30秒捕捉一帧画面图片。
所获得的图片格式为YUV420SP格式,然后又利用decodeYUV420SP类转化成bmp格式的图片。
public static void decodeYUV420SP(byte[]rgbBuf,byte[]yuv420sp,
int width,int height)
3.2图片对比
利用感知哈希算法,就是图片生成一个指纹(字符串格式),两张图片的指纹越相似,说明两张图片就越相似
第一步缩小图片尺寸。
Bitmap thumb=ImageDispose.zoomBitmap(bitmap,width,height);
将图片缩小到8×8的尺寸,总共64个像素,这一步的作用是去除各种图片尺寸和图片比例的差异,只保留结构、明暗等基本信息。
第二步转为灰度图片。
将上一步的比较结果,组合在一起,就构成了一个64位的二进制整数,这就是这张图片的指纹。
第六步对比图片指纹。
return hashCode.toString();
得到图片的指纹后,就可以对比不同的图片的指纹,计算出64位中有多少位是不一样的。如果不相同的数据位数不超过5,就说明两张图片很相似,如果大于10,说明它们是两张不同的图片。
4实验测试与结果分析
通过实验对上述该视频监控系统进行测试。使用的测试设备为:一台三星S9500手机(操作系统为Android4.2.2)作为监控端,另一台三星S9300(操作系统为Android 4.2.2)作为被拨号端。测试方案一,当声音为50分贝时,系统拨号打给设置好的号码;测试方案二,当摄像头前有移动物体时,系统拨号打给设置好的号码;测试方案三,当摄像头前有人走过并发出50分贝的声音时,系统拨号打给设置好的号码。通过测试发现系统可正常使用。
5结语
随着智能手机用户群体的日益庞大,人们在家庭生活中更喜欢追求简单实用性强的应用,文中提出的视频监控系统,弥补了传统网络视频监控系统的可移动性差、应用复杂性,而Android智能终端平台实现的拨号报警监控更能方便人们在家庭安防方面的应用,可是随时随地的布置使用。