资源描述
基于计算机视觉的教室灯节能装置
基于计算机视觉的防盗报警系统
一、设计背景
在经济飞速发展和人民生活水平不断提高的今天,盗窃的手法也越发高明,每年盗窃对人们的生命财产造成了相当大的损失,因此人们对住宅、商品房、办公室、仓库的安全性要求越来越高,迫切需要有一种安全防范系数很高的防盗报警系统,能可靠地进行日常安全防范工作。这种防盗报警系统不仅使人们安心的工作,同时也保证了人们的生命安全不受损失。而目前市场上的防盗报警系统大多由于可靠性差、功能单一或造价高等原因而难以普及。为此我们设计此款防盗报警系统,利用计算机视觉技术使得此系统大大提高了准确性。
二、方案设计
2.1 方案分析与论证
目前防盗系统所应用的技术主要是:基于单片机的信号采集处理技术。此技术采用热释电红外传感器探测是否有人进入,用门磁传感器检测门、窗、抽屉等是否被非法打开或移动,将采集到的信号由单片机进行处理分析后对报警系统进行控制。
热释电红外传感器自身存在以下缺点:
(1)容易受各种热源、光源干扰
(2)被动红外穿透力差,人体的红外辐射容易被遮挡,不易被探头接收。
(3)环境温度和人体温度接近时,探测和灵敏度明显下降,有时造成短时失灵。
以上缺点会直接影响到检测的效果,这样就会大大降低此防盗系统的准确性。
此外门磁传感器在正常开门、窗、抽屉时也会检测到移动信息,这就对其检测造成很大的误判率。
虽然此系统简单,造价低,但是它的准确性差。
针对上述情况,我们确定一套技术方案,利用计算机视觉技术通过对入侵人员的行踪进行准确分析后启动报警系统,此系统不受外界环境的影响,报警系统利用GSM通信平台的点对点短信,当监视环境出现警情时,系统向户主发短信让户主决定是否启动报警系统。大大提高了系统的准确性和可靠性和智能性。
2.2系统方案
图2.1 整体方案设计流图
当户主开启此装置时,我们每隔一段极短的时间对室内进行图像采集,并进行分析,得到当前室内人员个数及其相对位置,当检测到非法人员踏入时系统将采集到的信息通过GSM模块以短信的方式发送给用户,用户根据实际情况通过GSM模块给系统发送命令信息,“1”则表示开启报警系统,并保留采集到的图片信息;“0”则对此情况不做任何处理。
为了能够采集到清晰的图片,我们采用数字摄像头OV9650。为了能对采集的图像进行快速准确的分析,图像处理部分我们使用嵌入式Linux操作系统,并且移植OpenCV,通过机器学习使系统自动识别人体对象目标,并返回当前图像中的人体个数及其相对的位置。,本系统选用三星公司的ARM9芯片S3c2440,同时我们所要处理信息量大(保存处理图像的数据和部分图像信息),选取选择NOR FLASH存储系统启动代码,NAND FLASH作为主要存储器件。在对数据进行确切的分析后,我们将这些信息通过GSM模块一段新的形式发送给用户,用户接到信息后在发送命令,这样大大提高了系统的智能化,系统利用这些用户发回的数据对报警系统进行控制。
三、硬件系统设计与介绍
本系统选用三星公司的ARM9芯片S3c2440作为处理器,图像采集部分采用数字摄像头OV9650,数据传输部分选用 GSM模块。
图3.1 系统硬件结构
3.1 基于S3c2440的硬件平台
为了对采集的图像进行快速准确的分析,这要求系统有较快的处理速度,同时支持一些图像处理的算法。
这里选用三星公司的ARM920T内核的芯片S3c2440,其包含MMU内存管理单元,可以运行嵌入式Linux操作系统,还有专用的CAMERA接口。由于运行嵌入式Linux操作系统时,Linux内核与其文件系统需要大量的存储空间,所以这里需要外扩大量的外部存储空间。这里同时选取NAND Flash和NOR Flash,因为程序不可能在NAND Flash运行,这里再选择SDRAM 与之相配合【4】。
3.2 SDRAM 与S3C2440接口电路
NAND Flash具有体积小,存储单元密度高,写入和擦除速度快且最高可达一百万次,制造过程简单,价格较低等优点。NOR FLASH的特点是可以再片内运行程序,但其写入和擦除速度慢,价格相对较高。故这里选择NOR FLASH存储系统启动代码,NAND FLASH作为主要存储器件。
图3.3 NAND FLASH 与s3c2440接口电路
图3.4 NOR FLASH 与S3C2440接口电路
SDRAM与FLASH相比具有掉电不保存数据的缺点,但其读写速度远高于FLASH存储器件。当系统启动后将FLASH中的程序代码及相关数据映射到SDRAM中,提高运行速度。
3.2 数字摄像头
本系统基于计算机视觉技术,需要根据室内图像信息,得到室内人数及位置以做出正确的分析和处理,最终控制报警系统。这里选择OV9650 COMS型影像传感器的数字摄像头模组,通过S3C2440的CAMERA接口实现教室内图像信息的采集。
CMOS型摄像头模组是先进、节能、小巧的高精度相机的内置式组件,该数字摄像头模组把实现优质VGA影像的CMOS影像传感器与高度集成的影像处理器、嵌入式电源和高质量的透镜组结合在一起,输出JPEG图像或视频图像。同时支持8/10位数字传输JPEG图像和YCbCr接口。由于具有高度集成的特点,该数字摄像模组不再需要配备任何外部器件,实现起来电路简单【2】。
图3.5 OV9650数字摄像头接口电路
3.3 GSM通信报警系统
由摄像头采集室内图像信息,利用计算机视觉技术对图像信息进行人体目标识别,返回室内人数,如果室内人数大于0,则判断有险情出现,系统将通过GSM通信系统把此数据以短信的形式发给用户,再由用户判定是否报警,这样提高了此系统的智能性。
GSM(Global System for Mobile Communication)是全球移动通信系统的简称。 本系统采用Siemens公司的TC35i通信模块,GSM无线模块通过标准串行通信口RS 232与嵌入式linux系统进行数据通信。它可以工作在900MHz和l800MHz两个频段,为用户提供标准的AT命令接口,体积小、重量轻低功耗、支持数据、语音,短消息和传真。TC35i模块包含四十个引脚, l一5脚为模块提供供电电源. 电压范围是3_3V~ 4.8V,当TC35i模块启动后,经过几秒的延时,模块开始搜索网络,这时需要超过2A的驱动电流,如果驱动不足,会引起模块的突然掉电;因此这里选择稳压芯片LM2576。电压稳定在4V左右,最大提供电流为3A,可以避免当模块搜索网络时驱动电流不足的问题。
图3.6 GSM通信接口电路
图3.7 GSM供电电路
四、软件设计
我们需要对采集的图像进行快速准确的分析,但是在裸机条件下实现的难度较大而且开发周期长,所以在这里我们选用在Linux系统下调用OpenCV开源计算机视觉库中相应的算法的方案来实现。为了保证应用软件的正常运行,首先要构建软件的运行环境即移植嵌入式Linux操作系统和OpenCV开源计算机视觉库。这里Linux内核选择2.6.12版本,OpenCV选择1.0.0版本。
4.1移植嵌入式Linux系统介绍
Linux是一款高性能、源代码开放且应用成熟的操作系统。其体积小、可裁减等特点使其可以作为嵌入式操作系统使用。在这里使用的是Linux2.6.12内核,通过对其源代码的修改及重新修改,使其能够工作在这里使用的硬件平台上。
当代码修改完成后,编译Linux2.6.12内核源码,使其生成压缩的内核映像zImage。然后构建文件系统,当文件系统制作完成后,利用mkyaffsimage工具生成文件系统生成系统镜像文件。最后利用JTAG将bootloader到FLASH中,再利用DNW软件工具将压缩的内核映像文件zImage和文件系统的镜像文件分别下载到FLASH相应的分区中。完全下载完毕后重新上电,系统开始运行【3】。
如下图所示:
图4.1 Linux系统移植流程图
4.2 软件设计介绍
这里使用嵌入式Linux操作系统,并且移植OpenCV,通过机器学习使系统自动识别摄像头采集到的图像信息中的人体对象目标,并返回当前图像中的人体个数,当返回值大于0时,将告知用户,由用户控制报警系统的开启与关闭。
图4.2 软件设计框图
4.2.1 图像采集
将摄像头驱动程序同内核源码一起编译,编写应用程序通过系统调用加载摄像头驱动,对摄像头进行初始化,之后开始图像信息的采集,取得多帧或单帧图像信息,为识别室内的人体目标提供原始图像。
图4.3 图像采集流程图
fd = open("/dev/v4l/video0", O_RDONLY); //rd&wr
if(fd<0) ……;
if(ioctl(fd, VIDIOCGCAP, &vc)<0)……;
vc.maxwidth, vc.maxheight, vc.minwidth, vc.minheight);
vw.width = FIXED_SOURCE_WIDTH; //fixed in this application
vw.height = FIXED_SOURCE_HEIGHT; //fixed in this application
if(ioctl(fd, VIDIOCSWIN, &vw)<0) ……;
if(ioctl(fd, VIDIOCGWIN, &vw)<0) ……;
if(!image_width||!image_height) ……;
……;
if(ioctl(fd, VIDIOCSCAPTURE, &vcp)<0) ……;
if(ioctl(fd, VIDIOCSPICT, &vp)<0)……;
if(ioctl(fd, VIDIOCGPICT, &vp)<0)……;
if(mmap_camera) ……;
if(!mmap_camera) ……;
if(tcgetattr(0, &tio)<0) ……;
……
if(ioctl(fd, VIDIOCCAPTURE, VIDEO_START)<0) ……;
4.2.2 图像预处理与人体目标识别
为了识别图像信息中的人体目标,需要对采集到的原始图像进行预处理。首先由于在OpenCV中分类器只能在灰度图像上进行检测,所以要把采集到的RGB图像转化为灰度图像。这里需要用到cvCvtColor()函数,并选择参数CV_RGB2GRAY,它将根据公式:,实现图像的转换。之后通过OpenCV中cvResize()函数调整转换后的图像大小,最后通过OpenCV中cvEqualizeHist()函数进行直方图均衡,以平衡亮度信息减少误差。
在人体目标识别中,依靠OpenCV提供的Viola-Jones分类算法【5】来实现。
OpenCV是一个开源的计算机视觉库,它提供了MLL(Machine Learning Library)机器学习库,该机器学习库侧重于统计方面的模式识别和聚类(clustering)。在本设计中,使用OpenCV1.0.0版本,将其移植到ARM嵌入式Linux系统中,借助OpenCV计算机视觉库及其提供的训练好的人体模型,实现机器学习,做到机器自动识别人体目标【7】。
为了获取图像信息中的有效数据,需要对得到的图片进行图像处理。这里利用OpenCV提供的算法及分类器,实现图像信息中人体目标的识别。识别人体需要特定的人体特征,这里选择人脸来进行识别。利用OpenCV中haartraining应用程序来训练一个人脸的分类器,在识别人体时利用cvLoad()函数加载这个分类器【8】。将采集到的图像经行滤波及直方图均衡等预处理后,通过这个分类器。如果检测到有人脸存在则判断有人存在。
图4.4 图像处理流程图
实验检测效果如下:
图4.5 原始图像
图4.6 检测时标记后的图像
图4.7 修改部分参数后的检测效果
表明在实现时要图像识别的算法要求较高,这一点还有待提高。实现对人体对象识别的误差最小化。
4.2.3 GSM防盗报警模块
GSM防盗报警模块利用防盗报警器主机,内置GSM手机卡,如有警情,按照客户设定的电话号码拨号将室内信息以短信的形式发送给用户。
图4.8 GSM模块程序流程图
五、作品特点
1、本系统利用计算机视觉技术对室内信息进行分析处理,此技术不受室内环境的影响,能够在很大程度上提高系统的准确性。
2、报警系统利用GSM通信平台的点对点短信业务,当监视环境出现警情时,系统向户主发短信让户主决定是否启动报警系统,提高系统的智能性。
六、前景展望
现阶段虽然盗窃事件频频发生,却一直得不到及时有效的遏制,原因在于防盗器的准确性,此装置很好的解决了这个问题。
本系统利用的是计算机视觉技术对用户家庭中人员个数进行监测,此技术不受室内温度等外界条件的影响,在很大程度上提高了报警的准确性,系统使用GSM模块在室内有险情出现时将数据信息以短信的形式发送给用户,再由用户判断是否报警,这样就大大提高了此系统的智能化。有一点不足就是在S3C2440芯片内部没有FPU浮点运算单元,使得主控器运算起来有些慢,但由于我们应用此技术的室内非法入侵人员的流动频率也较低,所以在实际应用时也没有太大的影响,当然这也有待提高的一点。
我们正生活在以文明和谐为主题的社会里,随着整个社会技能的不断加强,本系统将会被大力推广。
参考文献:
【1】韦东山 ,《嵌入式Linux应用开发完全手册》, 人民邮电出版社 , 2008年08月
【2】于仕琪,刘瑞祯 译 ,《学习OpenCV》,清华大学出版社 ,2010年1月
【3】Rafael C. Gonzalez,Richard E. Woods 著,阮秋奇, 阮宇智 等译,《数字信号处理(第二版)》,电子工业出版社 , 2009年6月
【4】谭学科, 《基于ARM和OpenCV的增强现实平台研究》(硕士论文), 大连理工大学 , 2008年12月
【5】P.Viloa and M.J.Jones, “Rapid Object Detect Using a Boosted Cascade of Simple Feature”, IEEE CVPR(2001)
14
展开阅读全文