火焰识别算法

上传人:壹****1 文档编号:512332835 上传时间:2023-05-12 格式:DOCX 页数:13 大小:122.40KB
返回 下载 相关 举报
火焰识别算法_第1页
第1页 / 共13页
火焰识别算法_第2页
第2页 / 共13页
火焰识别算法_第3页
第3页 / 共13页
火焰识别算法_第4页
第4页 / 共13页
火焰识别算法_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《火焰识别算法》由会员分享,可在线阅读,更多相关《火焰识别算法(13页珍藏版)》请在金锄头文库上搜索。

1、学科分类号(二级)520.6040YUNNAN NORMAL U N I VE R S ITY本科学生毕业论文(设计)题目基于人脸识别门禁系统姓名王远正学号院、系信息学院专业计算机科学与技术指导教师(职称/学历)周屹(实验师/硕士)基于人脸识别门禁系统摘要:人脸识别技术是生物技术和计算机技术的复合应用,随着科技和社会 的发展,现代社会对门禁的安全性和可靠性的要求也越来越高;提出一种基于 Android手机的视频门禁系统,具有灵活性好、功能丰富等优点。先从局域网通 信方式和手机门禁终端两方面提出了系统方案特点,接着设计系统框架,并从 mjpg-streamer视频服务器进行视频数据采集与发送,服

2、务器端采用Apache服务器 以及Android手机客户端软件设计三方面对系统进行了详细设计,最后对Android 客户端软件进行了简单测试。结果证明该方案可行,且运行稳定,有广泛的应用 价值。关键词:人脸识别;门禁系统;ARM11; android系统开发;远程监控1 概述如今随着计算机、网络、信息技术的快速发展,如今已经开始步入了网络信 息化时代,针对公民身份验证的需求也越来越高。在电子商务、网上银行、公安、 海关、金融、医保、社保、考勤等领域,快速准确的身份识别和验证技术有着广 泛的需求和应用前景。传统的个人身份识别与认证主要依赖身份证、户口本、驾照、钥匙、 IC 卡、 各种口令密码等技

3、术来进行。而各种口令密码存在容易遗忘、容易记错等缺点, 身份证、驾照容易丢失等缺点;钥匙、 IC 卡存在着容易复制被复制、容易被盗、 损坏等缺陷;传统的身份识别和认证技术已经不能满足社会的发展需求。移动设备的普及和发展,原来b/s查看变得越来越不方便,传统的视频监控 系统大部分采用 PC 作为监控终端,需要在指定的地点以及专用网络设备支持的 环境下才能对目标现场进行监控,极大地限制了监控系统的灵活性和应用范围。 而现代3G移动网络的飞速发展,使视频传输在智能手机上得以轻易实现。为解 决传统监控系统不灵活的弊端,让人们通过移动手机随时对家人和住房等进行视 频安防检测,本系统采用的是一种基于人脸识

4、别+android控制设计方案。2 Android移动操作系统2.1 移动系统概述随着塞班的没落, Android 系统强势建立,可能近期会形成了 Windows Phone、 Ios、 Android 三大系统的三足鼎立之势。随着乔布斯的逝世,苹果已经 进入了后乔布斯时代,如果苹果设备不能再改变世界的话,可能苹果也会在什么 时候悄悄离开人们是视线。作为正在发展的 Windows Phone 系统,显得很多地方 的还不成熟。 Android 正在也蓬勃的面孔出现在我们的面前,跟另外两个系统相 比,开源、免费、更新速度快的特征,吸引着大批手机开发厂商,三星、 HTC、 LG、华为、中兴等等。2.

5、2 Android 系统特性 全开放智能移动电话平台支持多硬件平台 使用众多的标准化技术 核心技术完整、统一 完善的 SDK 和文档 完善的辅助开发工具2.3 Android 架构2.1、Linux KernelAndroid 基于 Linux 2.6 提供核心系统服务,例如:安全、内存管理、进程管理、 网络堆栈、驱动模型。Linux Kernel也作为硬件和软件之间的抽象层,它隐藏具 体硬件细节而为上层提供统一的服务。如果你学过计算机网络知道OSI/RM,就会知道分层的好处就是使用下层提供的 服务而为上层提供统一的服务,屏蔽本层及以下层的差异,当本层及以下层发生 了变化不会影响到上层。也就是

6、说各层各司其职,各层提供固定的 SAP(Service Access Point),专业点可以说是高内聚、低耦合。如果你只是做应用开发,就不需要深入了解Linux Kernel层。2.2、Android RuntimeAndroid 包含一个核心库的集合,提供大部分在 Java 编程语言核心类库中可用 的功能。每一个 Android 应用程序是 Dalvik 虚拟机中的实例,运行在他们自己 的 进程中。 Dalvik 虚拟机设计成,在一个设备可以高效地运行多个虚拟机。 Dalvik 虚拟机可执行文件格式是.dex, dex格式是专为Dalvik设计的一种压缩格式,适 合内存和处理器速度有限的系

7、统。大多数虚拟机包括JVM都是基于栈的,而Dalvik虚拟机则是基于寄存器的。两 种架构各有优劣,一般而言,基于栈的机器需要更多指令,而基于寄存器的机器 指令更大。dx是一套工具,可以將Java .class转换成.dex格式。一个dex文 件通常会有多个.class。由于dex有時必须进行最佳化,会使文件大小增加1-4倍, 以 ODEX 结尾。Dalvik 虚拟机依赖于 Linux 内核提供基本功能,如线程和底层内存管理。2.3、LibrariesAndroid包含一个C/C+库的集合,供Android系统的各个组件使用。这些功能 通过Android的应用程序框架(application f

8、ramework)暴露给开发者。下面列出 一些核心库:系统C库标准C系统库(libc)的BSD衍生,调整为基于嵌入式Linux设备媒体库基于Packetvideo的OpenCORE。这些库支持播放和录制许多流行的 音频和视频格式,以及静态图像文件,包括 MPEG4、 H.264、 MP3、 AAC、 AMR、JPG、 PNG界面管理管理访问显示子系统和无缝组合多个应用程序的二维和三维图形 层LibWebCore新式的Web浏览器引擎,驱动Android浏览器和内嵌的web视图SGL基本的2D图形引擎3D库基于OpenGL ES 1.0 APIs的实现。库使用硬件3D加速或包含高度优 化的 3D

9、 软件光栅FreeType 位图和矢量字体渲染SQLite 所有应用程序都可以使用的强大而轻量级的关系数据库引擎2.4、Application Framework通过提供开放的开发平台,Android使开发者能够编制极其丰富和新颖的应用程 序。开发者可以自由地利用设备硬件优势、访问位置信息、运行后台服务、设置 闹钟、向状态栏添加通知等等,很多很多。开发者可以完全使用核心应用程序所使用的框架APIs。应用程序的体系结构旨 在简化组件的重用,任何应用程序都能发布他的功能且任何其他应用程序可以使 用这些功能(需要服从框架执行的安全限制)。这一机制允许用户替换组件。 所有的应用程序其实是一组服务和系统

10、,包括:视图(View)丰富的、可扩展的视图集合,可用于构建一个应用程序。包 括包括列表、网格、文本框、按钮,甚至是内嵌的网页浏览器内容提供者(Content Providers)使应用程序能访问其他应用程序(如通讯录)的数据,或共享自己的数据资源管理器(Resource Manager)提供访问非代码资源,如本地化字符串、图形和布局文件通知管理器(Notification Manager)使所有的应用程序能够在状态栏显示自定义警告活动管理器(Activity Manager)管理应用程序生命周期,提供通用的导航回 退功能2.5、ApplicationsAndroid装配一个核心应用程序集合,

11、包括电子邮件客户端、SMS程序、日历、 地图、浏览器、联系人和其他设置。所有应用程序都是用 Java 编程语言写的。 更加丰富的应用程序有待我们去开发!3 算法设计与实现本算法分为图像的预处理和火焰目标判定两部分。预处理是指运用上述理论 对采集到的图像进行一些处理,为后续的火焰识别做好准备。其主要目标是把火 焰目标从图像中分割出来,包括帧差法提取前景,阈值法分割目标,形态滤波等 步骤。通过预处理就能把火焰目标从图像中分割出来,最后就是提取火焰的特征 进行判定是否发生了火灾。火灾发生时,其各种物理现象在图像上的表现也是十分明显。其主要特征包 括颜色值和亮度、面积变化、边缘变化、形体变化、闪动规律

12、、分层变化等8。 为了保证算法的实时性,必须研究早期火焰的图像特征,并选取可靠有效的特征 做为识别判据。本文选取了火焰目标的颜色值和亮度、面积、圆心度和火焰尖角 数作为判据,只有当所有判据都满足,才识别为火灾,其算法流程如下图 1 所示。 具体实现步骤如下所示。y判断是否是第一帧nn是否大于15帧YY背景是否发生了变化NN尖角是否大于8YNY面积是否增大目标区域的亮度、颜色 值是否在范围内识别出火焰,画红 框标记,并保存成图像Y求出目标区域面积、周 长、圆心度往后取四帧,求面积周长、圆心度创建GSM蜂鸣器报警线程创建LED蜂鸣器报警线程更新移动平 均更新背景计算连续五帧面积差计算尖角数开运算(

13、去噪)Otsu求阀值背景建模(帧差)采集一帧图像求出目标区域开始阀值化打开摄像头初始化图 1 算法流程图Figure 1 algorithm flow chart3.1 彩色图像灰度化本文使用OpenCv打开摄像头,然后从摄像头中获取每一帧图像。摄像头采 集到的是 RGB 图像,而 RGB 图像的每个像素有三个分量分别表示 R、G、B。 经测试本系统所使用的摄像头采集到的图像长为 640 像素,宽为 480 像素。这样 一张彩色图所占的内存为640*480*3/1024=900Kb,对于arm6410开发板来说计 算量过大,而转换为灰度图像只有300Kb所以首先要将获取的RGB图像转换为 灰度

14、图像再进行处理。这样可以有效地提高程序运行效率。实际上RGB并不能 反映图像的形态特征,只是从光学的原理上进行颜色的调配,而灰度图像能反映 整幅图像的色度和亮度等级分布。3.2 帧差法提取前景帧差法是最简单的背景减除方法,基本原理就是用一帧减去另一帧(也可能 是后几帧),然后将足够大的差别标为前景,这种方法往往能捕捉运动目标的边 缘。因为它的背景模型就是上一帧的图,所以不需要建模,其背景不积累,更新 速度快、算法简单、计算量小。综合考虑开发板的运行效率本文使用帧差法实现 背景减除。简而言之,假如 pFrame 为摄像头采集到的原始图像, pBkimg 为存储背景的 图像空间结构, pFrimg

15、 为存储帧差结果的图像空间结构,则实现帧差的过程如 下:cvCvtColor(pFrame,pFrImg,CV_BGR2GRAY);/将 pFrImg 转换为灰度前景图 cvCvtColor(pFrame,pBkImg,CV_BGR2GRAY);/将 pFrImg 转换为灰度背景图 cvConvert(pFrImg,pFrMat);将背景图像数据转换为矩阵数据。 cvConvert(pFrImg,pBkMat);将前景图像数据转换为矩阵数据。 cvConvert(pFrImg,pFrameMat);将当前帧图像转换为矩阵数据。 cvAbsDiff(pFrameMat,pBkMat,pFrMat); 帧差,结果存在前景矩阵中。 cvConvert(pFrMat,pFrImg);将前景矩阵转换为图像格式,用以显示。 cvConvert(pBkMat, pBkImg);cvShowImage(frame,pFrame);显示当前帧图像。 cvShowImage(frimg,pFrImg); 帧差显示结果。cvShowImage(bkimg,pBkImg); 显示上一时刻灰度图像帧差效果为图1所

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号