基于微机的摄像头监控系统设计
2011-05-21杜小丹申建军
于 洪,杜小丹,申建军
(1.琼州学院 海南 五指山 572200;2.成都大学 四川 成都 610106;3.重庆大学 重庆 400044)
计算机技术、通讯技术和网络技术的高速发展,加快了数字监控系统取代模拟监控系统的步伐,数字化视频监控已成为监控技术的必然趋势。数字化监控不仅可以利用计算机网络和先进的视/音频压缩、解压缩技术远程视频监控,还可以根据报警功能需求设计灵活多样的报警联动,生成详细的报警记录和操作数据记录库,设计完整的系统用户管理功能。
在考虑数字化监控系统的基本要求、灵敏度高、低成本和符合监控系统发展趋势的基础上,在普通PC机上运用高级语言编程实现了 “基于图像识别的摄像头监控系统设计”。当有入侵者入侵时,画面发生变化,系统依靠图像识别而不是依靠传感器自动进行拍照,并发出警告。并且只在图像有变化时记录,可以节省大量的存贮空间。存贮的内容减少了,对于后期的查找也带来了优势,使得后期查找更方便快捷。
1 系统功能
笔者设计的系统由微机、摄像头和软件组成,主要功能和特点如下:
1)利用摄像对现场进行稳定、可靠的监控。并且监控精度可根据需要调整。
2)能够实现智能化、自动化。只有在图像发生变化时才自动记录和报警,可以节省大量的存贮空间。
3)具有拍照功能。当出现异常情况时能将有关场景拍照下来,为日后分析提供影像资料,同时还提供时间信息。
4)具有完善的后处理能力。在设计系统内可以查看所拍摄的照片。
5)可灵活地实现由自动监控到人工监控的功能。
2 硬件设计
系统硬件构成如图1所示。
笔者设计程序以微型计算机为设计原型,系统主机由一台普通PC机加载软件而构成。系统设计在兼顾高性能和低价格的综合分析下,采用微型计算机硬盘作为存贮空间,一般在30 GB以上,这在当前的计算机配备中是非常容易达到的。选用稳定性能高的CPU以保证系统长时间地运行。摄像头型号不限,当然精度高一些,监控效果会好一些。
3 主控程序框图
图1 监控系统硬件图Fig.1 Hardware block diagram of supervise system
笔者设计系统的工作过程如下:在计算机的控制下,摄像头开始工作。考虑到不同摄像头需要不同的驱动程序,这样设计出来的程序通用性比较差。所以本系统在设计上采取了比较通用的由微软开发的API(avicap32.dll)来实现摄像头的控制[1]。可实现对不同型号的摄像头进行控制,不针对专门的型号的摄像头,实用性、通用性更强、克服某些监控程序专门针对某种型号的摄像头的缺点。摄像头每隔一段时间采集图像一次并存贮,并且间隔时间可调。接收到图像后,系统先对图像进行二值化处理,将彩色图像处理成黑白图像,并对特征点进行统计,然后对二幅图像的特征点进行比较,若差值没达到设计者预定的阈值,则继续进行图像采集,此时并不对图像进行存贮记录[2]。当差值达到设计者预定的阈值时,则系统自动启动存贮记录并启动报警。当图像停止变化时,系统会自动停止存贮和记录,以节约存贮空间。系统程序图如图2所示。
图2 程序流程图Fig.2 Flow chart of procedure
4 图像识别研究
方案研究的重点在于如何实现识别到图像变化的转换,并自动启动相应的程序。设计者让计算机控制摄像头每50 ms采集一幅现场图像,并对两幅图像进行比较,但直接对两幅图像进行比较由于摄像头的精度及存贮机制的问题,总是不能成功。于是考虑到将图像进行二值化处理[3],然后再进行特征点的读取,最后将两幅图像的特征点进行比较,当比较值超过阈值时,程序开始自动报警并记录。设计者将阈值设计成可以改变大小的,以适应不同的监控要求[4]。首先进行彩色图像的二值化处理,二值化程序如下[5]:
For i=1 To width5 Step 5
For j=1 To heigh5 Step 5
rgb5=GetPixel(hdc5, i, j)
bBlue=Blue(rgb5&H10000) And &HFF
bRed=Red(rgb5 And &HFF)
bGreen=Green(rgb5&H100) And &HFF
y= (9798*bRed+19235*bGreen+3735*bBlue) 32768
Next I,J
二值化后,就可以对特征点进行提取了,对于提取的特征点进行比较,程序如下:
If y>75 Then
n2=n2+1
End If
对特征点统计后,就要进行比较了,如果比较结果达不到设计者设定的阈值,则系统不进行处理,继续进行读取图像程序。如果比较结果差超过了设计者设定的阈值,说明有物体移动了,于是系统开始自动报警并记录[6]。
If Abs(n1-n2) >HScroll1.Value Then
Beep
SavePicture Clipboard.GetData, "d:" & Year (Now) & "年"& ""& Month(Now)& "月"& ""& Day(Now)& "日"& "" & "monit" & Replace(Time, ":", "-") & ".bmp"
End If
当物体移动结束后,监控能自动停止记录,减少存贮空间的占用量。方便以后的查找。
5 结束语
笔者设计的程序基于图像识别的程序控制,使得程序不必一开始监控就进行无用的记录,只有在图像发生变化时才记录,节省了大量的存贮空间。用户不必装配大容量的存贮介质,个人电脑就可以完成存贮,节约了财力,特别适用于小型用户和家庭用户。经过了大量的实际实验,证明本程序是可靠、灵敏的,达到了设计效果。
[1]高昂,段念,何峰,等.Google API大全——编程·开发·实例[M].北京:电子工业出版社,2009.
[2]匡松,蒋义军.VB大学应用教程[M].北京:高等教育出版社,2010.
[3]汤一平,叶永杰,朱艺华,等.智能全方位视觉传感器及其应用研究[J].传感技术学报,2007,20(6):1316-1320.TANG Yi-ping,YE Yong-jie,ZHU Yi-hua,et al.Research on intelligent omni-directional vision sensors and their application [J].Chinese Journal of Sensors and Actuators,2007,20(6):1316—1320.
[4]周德泽.计算机智能监测控制系统的设计及应用[M].北京:清华大学出版社,2002.
[5]赵荣椿,赵忠明.数字图像处理导论[M].西安:西北工业大学出版社,2000.
[6]姚华.VB程序设计[M].天津:天津大学出版社,2009.