一、项目概述
1.引言
本项目以Atmel公司的AVR32 AT32UC3A处理器为核心,以uClinux操作系统为平台,通过广角摄像头进行视频(或图像)采集,并运用算法实现人脸识别(室内防盗)或火焰识别(室外防火)等功能。在此基础上,扩充出其他的功能:
(1)通过以太网端口及相关协议,实现系统平台与远程计算机的通信,从而实现多媒体数据的传送与远程监控功能。
(2)通过SD模块及扩充出的GPRS(GSM)模块,实现系统平台与个人终端设备PDA之间的通信,从而实现短信或电话提醒,报警与预警等功能。
本项目采用的硬件平台为EVK1100。考虑到芯片处理能力与实时性要求,可能换用性能更强,信号处理能力更为出色的AT32AP7系列芯片。
2.项目背景
“入室盗窃”这种违法犯罪行为在全球范围内日渐猖狂,现已成为一世界性难题。全世界每年为防范入室盗窃的投入近200多亿美元,而每年入室盗窃造成的损失却高达400多亿美元。然而,传统的通过人防(通过人力进行安全防范的手段,比如人员巡逻,站岗等)和物防(比如现在常采用防盗窗,防盗门、保险柜等)的手段已经无法有效的制止盗窃率的继续攀升。在如此的严峻形势下,一种新的更为行之有效的安全防范手段呼之欲出。
而在另一方面,据统计,全球每年受森林和荒地火灾影响的土地约达3亿5000万公顷。这些火灾不仅给人类带来了巨大的生命和财产的损失,还使气候变化、空气污染和丧失生物多样性等问题进一步恶化。因此,急需一种措施来预防森林和荒地火灾的发生和蔓延。联合国粮农组织就曾指出,导致森林和荒地火灾的最主要原因往往是一些人为因素,而采取预防、监测、评估以及早期预警等综合措施能够有效的防止森林和荒地火灾的发生,从而减少火灾的发生,并降低火灾所带来的损失。
本项目通过开发一个智能防盗与火灾预警系统,用于预防上述社会问题。该系统特别适用于居民家庭、超市商场、银行、森林火灾防控等场所,应用范围广泛。
二、需求分析
1.功能要求
系统由数据采集终端与接收终端两部分构成。其中,接收终端可以是个人移动终端PDA或远程监控的PC机。系统与个人终端的通信主要是基于GSM模块(发短信等)或GPRS模块(上网),甚至可以采用最新的3G技术等。而系统与终端PC机的通信则需要通过IP/TCP协议,采用socket机制实现网络通信与视频数据的接收。这里实际上是把系统平台视为一个服务器,而传输信道则可以选择无线或有线信道。具体的系统架构如下图所示:
图1 系统架构
2.性能要求
- 数据采集:为了采集到良好的视频数据,要求系统应放在一个光线充足的场所,以便能够采集到有用数据。当然也可以利用光敏传感器,当系统工作环境变暗,则自动开启小灯。
- 数据处理:由于应用场合要求实时性强,故系统对数据的采集、处理与发送过程时延小。
- 考虑到系统的处理与存储能力,摄像头的像素不应太高。
- 处理器应能够移植常用的一些微处理器操作系统,如uClinux等。
- 算法准确度应该足够高,以免发生误报,避免不必要的麻烦。根据需要可以外接与警察局或消防部门的通信部分。
三、方案设计
1.系统功能实现原理
如下图所示,系统主要由图像或视频采集、核心处理单元、GSM模块、以太网模块、光敏传感模块等组成。由摄像头采集的数据为系统的输入部分。而AVR32 AT32UC3A与uClinux组成了智能防盗与火灾预防系统的核心处理单元。其中摄像头时刻对四周的情况进行捕获,将信号发给AVR3 AT32UC3A处理器,运行在AVR32 AT32UC3A上的系统uClinux则负责控制整个系统的运行与核心算法的实现。
系统硬件结构框图
2.硬件平台选用及资源配置
AVR32开发板 EVK1100 AT32UC3A0512
EVK1100开发板支持AT32UC3A芯片,外围器件包括:一个Ethernet端口,光、温度电位计传感器,20字符×4行的蓝色LED灯,JTAG、Nexus、 USART、 USB、TWI和SPI接口,以及一个SD/MMC读卡器。其主要的电路模块图有:
时钟与重置模块电路:
SD/MMC模块电路:
SPI模块电路:
JTAG模块电路:
本项目基于Atmel AT32UC3A EVK1100开发板以及相应的一些扩展板,通过摄像头进行实时监控,并通过网络等手段将数据传送到远端PC机上。本系统平台主要包括:
摄像头
选择广角CCD摄像头,便于全方位的监控。这里的摄像头的像素不应太高,否则可能导致存储空间不足,无法完整接收数据。
网络通信模块
EVK1100开发板上有自带的以太网接口,支持有线信道网络传输。如果需要将系统放置在室外,则需要扩充相应的Wi-Fi模块。通过以太网模块,一方面可以及时的将数据从系统平台转发到远端PC,另一方面也可以及时的接收到来自PC机的控制信号。
GPRS模块(GSM模块)
GPRS(GSM)模块主要用于系统与个人移动终端设备PDA的通信。因为我们不可能时刻都在远程PC机上进行监控。故而时常是在发生情况的时候,将现场实时情况及时发送到远端PC上保存。而将发生的情况以短信通知到用户PDA上。这样子,即使犯罪分子侥幸逃脱,也可以通过在PC机上存储的照片信息,将其绳之以法。
光敏传感器模块
考虑到摄像头在低光强的环境下的视频采集效果不佳,故而需要通过这一模块对外界环境进行监测,及时的调整摄像范围内的光线强度。
外置节能小灯
通过USB或串口外接一个节能小灯,当光敏传感器检测到光强低于一定值时,就发生控制信号,开启节能小灯。当然也可以在远程PC或PDA上,通过向系统平台发送开启或关闭小灯的命令。这里需要强调的是,通过远程的控制指令的优先级高。故如果在远端关闭了小灯,即使工作环境变暗,也无法通过自动检测开启小灯。
3.系统软件架构
本系统以C\C++、汇编语言作为系统开发编程语言,程序实现模块化设计,最后通过各模块相互组合,相互协调,组成了一个多功能的嵌入式系统。
开发平台:windows xp\vista\7
集成开发环境:AVR Studio 5
程序设计语言:C\C++语言、汇编语言
程序下载:通过仿真器下载
软件的设计上主要应包括:uClinux系统移植、相关接口的硬件驱动、图片预处理滤波、图像识别部分、图像压缩传输、远端PC指令接收与执行部分等。
uClinux的移植
uClinux系统广泛应用在微控制器领域,特别是针对没有MMU(内存管理单元)的CPU,通常用于具有很小内存或Flash的嵌入式操作系统。故而满足AVR32 AT32UC3A处理器的要求。(没有MMU)
实现过程:进行uClinux系统的搭接,首先需配置和编程Uboot,生成u-boot..hex文件,并通过开发工具烧写入flash中。其次配置并编译uClinux内核。正确配置内核后,重新编译并下载到目标板。
图像预处理滤波
通过摄像头采集得到得原始图像,总是难免存在一定的噪声。干扰噪声过大,会使图像的质量下降,甚至淹没在噪声中。所以很又必要进行图片的预处理滤波过程。
图像识别
这里的图像识别主要包括对火焰的识别以及对人脸的识别。这是本项目的重点,需要相关算法的支持。
图像压缩传输
由于存储空间与读取传送速度的限制,需要对图片进行压缩处理,这里计划采用JPEG压缩算法,即采用以离散余弦(DCT)为基础的有损压缩。具体图像的压缩编码与解码算法框图如下:
(a)DCT基压缩编码步骤
(b)DCT基解码压缩编码步骤
远端PC(或PDA)指令接收与执行
远程PC机发过来的指令功能主要包括:
- 开启摄像头
- 关闭摄像头
- 释放存放的数据
- 进行3连拍
- 设置图片分辨率
- 关闭节能小灯
4.系统软件流程
程序运行流程图
5.系统预计实现结果
首先,将与系统连接的摄像头安装在室内。做好相关配置工作。
在白天时,当有用户成员在家时,摄像头处于关闭状态,以便节能。当所有家庭成员外出后,通过手机等移动设备或电脑向系统发出命令,请求开启摄像头。而后系统开始监控工作。当遇到阴雨天气时,系统能够根据室内光强自动调整是否开启节能灯。
当出现异常情况时,比如家里发生火灾,则这时候则会再监测是否有人在火灾现场,以确认是否是认为纵火或有人被困室内。若有人在现场,则将现场图片发生到远端PC机上保存,方便事后查清起火原因。
而后再把火灾险情发送短信到用户手机上,并关闭摄像头(这里可以选择先自动拨通119电话)。当没有火灾时,当全体家庭成员不在家时,有陌生人闯入,则摄像头监测到该人长相,并拍下证据传送到远端PC机上,并发生短信提醒用户家里遭窃,这时用户可以及时报案。
当用户成员回家时,则可以利用手机等设备关闭摄像头,避免造成误判等现象。而在夜间时,则一般需要开启节能灯,以便能够更好的进行监测工作。 |