火焰识别算法讲解

上传人:最**** 文档编号:114720439 上传时间:2019-11-12 格式:DOC 页数:13 大小:677.50KB
返回 下载 相关 举报
火焰识别算法讲解_第1页
第1页 / 共13页
火焰识别算法讲解_第2页
第2页 / 共13页
火焰识别算法讲解_第3页
第3页 / 共13页
火焰识别算法讲解_第4页
第4页 / 共13页
火焰识别算法讲解_第5页
第5页 / 共13页
点击查看更多>>
资源描述

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

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

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

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

4、1 移动系统概述随着塞班的没落,Android系统强势建立,可能近期会形成了Windows Phone、Ios、Android三大系统的三足鼎立之势。随着乔布斯的逝世,苹果已经进入了后乔布斯时代,如果苹果设备不能再改变世界的话,可能苹果也会在什么时候悄悄离开人们是视线。作为正在发展的Windows Phone系统,显得很多地方的还不成熟。Android正在也蓬勃的面孔出现在我们的面前,跟另外两个系统相比,开源、免费、更新速度快的特征,吸引着大批手机开发厂商,三星、HTC、LG、华为、中兴等等。2.2 Android系统特性l 全开放智能移动电话平台l 支持多硬件平台l 使用众多的标准化技术l

5、核心技术完整、统一l 完善的SDK和文档l 完善的辅助开发工具2.3 Android架构2.1、Linux KernelAndroid基于Linux 2.6提供核心系统服务,例如:安全、内存管理、进程管理、网络堆栈、驱动模型。Linux Kernel也作为硬件和软件之间的抽象层,它隐藏具体硬件细节而为上层提供统一的服务。如果你学过计算机网络知道OSI/RM,就会知道分层的好处就是使用下层提供的服务而为上层提供统一的服务,屏蔽本层及以下层的差异,当本层及以下层发生了变化不会影响到上层。也就是说各层各司其职,各层提供固定的SAP(Service Access Point),专业点可以说是高内聚、低

6、耦合。如果你只是做应用开发,就不需要深入了解Linux Kernel层。2.2、Android RuntimeAndroid 包含一个核心库的集合,提供大部分在Java编程语言核心类库中可用的功能。每一个Android应用程序是Dalvik虚拟机中的实例,运行在他们自己 的进程中。Dalvik虚拟机设计成,在一个设备可以高效地运行多个虚拟机。Dalvik虚拟机可执行文件格式是.dex,dex格式是专为Dalvik 设计的一种压缩格式,适合内存和处理器速度有限的系统。大多数虚拟机包括JVM都是基于栈的,而Dalvik虚拟机则是基于寄存器的。 两种架构各有优劣,一般而言,基于栈的机器需要更多指令,

7、而基于寄存器的机器指令更大。dx 是一套工具,可以將 Java .class 转换成 .dex 格式。一个dex文件通常会有多个.class。由于dex有時必须进行最佳化,会使文件大小增加1-4倍,以ODEX结尾。Dalvik虚拟机依赖于Linux 内核提供基本功能,如线程和底层内存管理。2.3、LibrariesAndroid包含一个C/C+库的集合,供Android系统的各个组件使用。这些功能通过Android的应用程序框架(application framework)暴露给开发者。下面列出一些核心库:系统C库标准C系统库(libc)的BSD衍生,调整为基于嵌入式Linux设备媒体库基于P

8、acketVideo的OpenCORE。这些库支持播放和录制许多流行的音频和视频格式,以及静态图像文件,包括MPEG4、 H.264、 MP3、 AAC、 AMR、JPG、 PNG界面管理管理访问显示子系统和无缝组合多个应用程序的二维和三维图形层LibWebCore新式的Web浏览器引擎,驱动Android 浏览器和内嵌的web视图SGL基本的2D图形引擎3D库基于OpenGL ES 1.0 APIs的实现。库使用硬件3D加速或包含高度优化的3D软件光栅FreeType 位图和矢量字体渲染SQLite 所有应用程序都可以使用的强大而轻量级的关系数据库引擎2.4、Application Fram

9、ework通过提供开放的开发平台,Android使开发者能够编制极其丰富和新颖的应用程序。开发者可以自由地利用设备硬件优势、访问位置信息、运行后台服务、设置闹钟、向状态栏添加通知等等,很多很多。开发者可以完全使用核心应用程序所使用的框架APIs。应用程序的体系结构旨在简化组件的重用,任何应用程序都能发布他的功能且任何其他应用程序可以使用这些功能(需要服从框架执行的安全限制)。这一机制允许用户替换组件。所有的应用程序其实是一组服务和系统,包括:视图(View)丰富的、可扩展的视图集合,可用于构建一个应用程序。包括包括列表、网格、文本框、按钮,甚至是内嵌的网页浏览器内容提供者(Content Pr

10、oviders)使应用程序能访问其他应用程序(如通讯录)的数据,或共享自己的数据资源管理器(Resource Manager)提供访问非代码资源,如本地化字符串、图形和布局文件通知管理器(Notification Manager)使所有的应用程序能够在状态栏显示自定义警告活动管理器(Activity Manager)管理应用程序生命周期,提供通用的导航回退功能2.5、ApplicationsAndroid装配一个核心应用程序集合,包括电子邮件客户端、SMS程序、日历、地图、浏览器、联系人和其他设置。所有应用程序都是用Java编程语言写的。更加丰富的应用程序有待我们去开发!3 算法设计与实现本算

11、法分为图像的预处理和火焰目标判定两部分。预处理是指运用上述理论对采集到的图像进行一些处理,为后续的火焰识别做好准备。其主要目标是把火焰目标从图像中分割出来,包括帧差法提取前景,阈值法分割目标,形态滤波等步骤。通过预处理就能把火焰目标从图像中分割出来,最后就是提取火焰的特征进行判定是否发生了火灾。火灾发生时,其各种物理现象在图像上的表现也是十分明显。其主要特征包括颜色值和亮度、面积变化、边缘变化、形体变化、闪动规律、分层变化等8。为了保证算法的实时性,必须研究早期火焰的图像特征,并选取可靠有效的特征做为识别判据。本文选取了火焰目标的颜色值和亮度、面积、圆心度和火焰尖角数作为判据,只有当所有判据都

12、满足,才识别为火灾,其算法流程如下图1所示。具体实现步骤如下所示。开始打开摄像头判断是否是第一帧采集一帧图像背景建模(帧差)初始化是否大于15帧背景是否发生了变化Otsu求阀值阀值化开运算(去噪)求出目标区域目标区域的亮度、颜色值是否在范围内求出目标区域面积、周长、圆心度往后取四帧,求面积周长、圆心度计算连续五帧面积差面积是否增大计算尖角数尖角是否大于8识别出火焰,画红框标记,并保存成图像创建LED蜂鸣器报警线程创建GSM蜂鸣器报警线程YYNNNYNYNYYN更新移动平均更新背景图 1 算法流程图Figure 1 algorithm flow chart 3.1 彩色图像灰度化本文使用Open

13、Cv打开摄像头,然后从摄像头中获取每一帧图像。摄像头采集到的是RGB图像,而RGB图像的每个像素有三个分量分别表示R、G、B。经测试本系统所使用的摄像头采集到的图像长为640像素,宽为480像素。这样一张彩色图所占的内存为640*480*3/1024=900Kb,对于arm6410开发板来说计算量过大,而转换为灰度图像只有300Kb所以首先要将获取的RGB图像转换为灰度图像再进行处理。这样可以有效地提高程序运行效率。实际上RGB并不能反映图像的形态特征,只是从光学的原理上进行颜色的调配,而灰度图像能反映整幅图像的色度和亮度等级分布。3.2 帧差法提取前景帧差法是最简单的背景减除方法,基本原理就

14、是用一帧减去另一帧(也可能是后几帧),然后将足够大的差别标为前景,这种方法往往能捕捉运动目标的边缘。因为它的背景模型就是上一帧的图,所以不需要建模,其背景不积累,更新速度快、算法简单、计算量小。综合考虑开发板的运行效率本文使用帧差法实现背景减除。简而言之,假如pFrame为摄像头采集到的原始图像,pBkimg为存储背景的图像空间结构,pFrimg为存储帧差结果的图像空间结构,则实现帧差的过程如下:cvCvtColor(pFrame,pFrImg,CV_BGR2GRAY);/将pFrImg转换为灰度前景图cvCvtColor(pFrame,pBkImg,CV_BGR2GRAY);/将pFrImg

15、转换为灰度背景图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所示,左边图像为当前帧R

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

当前位置:首页 > 高等教育 > 大学课件

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