您的位置: turnitin查重官网> 计算机 >> 程序设计 >探究图像基于android系统图像内容检测网

探究图像基于android系统图像内容检测网

收藏本文 2024-02-06 点赞:19150 浏览:83815 作者:网友投稿原创标记本站原创

摘 要:本文提出一中基于android系统的人脸检测方法,可以针对不同分辨率下的多个人脸进行检测,并针对多检测目标环境提出了修正算法,结果证明能提高多人脸检测条件下的识别正确率。利用SQLite创建基于图像内容的特征数据库,以特征检索的方式对图像进行分类。同时介绍了基于Windows系统的Android开发环境搭建和算法实现的关键步骤。
关键词:Android;SQLite;人脸检测;数据库;特征检索
:ADoI: 10.3969/j.issn.1003-6970.201

2.06.011

Image Content Detection based on the Android System
YaN Zhi-yong, waNG Jia-mei
(Yunnan Nationalities University, Yunnan, Kunming, 650500, China)
【Abstract】 this paper proposes a way to detect faces based on android system. It provides an algorithm amended to recognize faces in different resolutions. the results proved to be improving the accuracy of recognition in multiface detection.Create an image feature database using SQLite, then to classify images according to the image feature retrieve based on image contents. at the same time, it also introduces how to set up the android development environment based on windows system and implement the algorithm.
【Key words】Android;SQLite; Face Detect; Database; Feature Retrieve
0 引 言
Android是以Linux为基础针对移动设别(例如智能手机、平板电脑等)的以一款开源操作系统,是当前三大手机智能操作系统之一。它是由Google公司所领导的开放手持设备联盟开发 ,并于2007年11月5日正式向公众展示其操作系统,次年九月发布了第一个版本的android操作系统。基于android系统自身的优势,其吸引了大批手机制造商及程序开发者涌入,市场份额增长迅速。于2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。 2012年2月数据,Android占据全球智能手机操作系统市场5

2.5%的份额,中国市场占有率为68.4%。

1 开发环境
Android支持在多个系统下进行开发,例如MAC OS、windows及Linux等,相比较而言在Linux下效率会高些,因为Android本生就是基于Linux的。但无论在那一操作系统下都需要运用Google提供的SDK开发工具利用JA语言进行开发,同时也可以利用一些辅助软件减少编程中的重复代码(如Eclipse)。本文介绍在windows操作系统下利用Eclipse来搭建Android开发环境。

1.1 搭载软件开发环境

Windows系统下,需要安装与配置相应的JDK、Android SDK、Eclipse IDE以及ADT。首先,需要先配置好JA的运行环境(JDK),安装完后打开cmd窗口,输入ja -version查看JDK的版本,结果信息如图1检测JA版本。
接下来安装Android SDK,在安装前需要先要先到Android Developer下载与计算机相匹配的SDK版本。安装完成后配置环境变量,有两个PATH路径需要配置。一个是(\android-sdk-windows\tools);另一个为(\android-sdkwindows\platform-tools)。配置好后,重新启动计算机,进入cmd命令窗口, 运行 android-h检查SDK信息,结果如图2检查SDK。
最后,安装Eclipse并配置Google为Eclipse提供的开发工具ADT。在安装好Eclipse后,进入菜单 “Help” -> “Install New Software”中添加ADT工具,然后在选Window > Preferences菜单中选择android标签并配置好SDK的安装路径,之后就可以在Eclipse中根据需要创建android虚拟机[3]。
2 实现步骤
在android系统下,实现人脸识别并以人脸个数将图像进行分类,需要完成识别人脸[4]、统计人脸个数、创建图像特征数据库[5]、匹配图像等关键步骤[6]。其实现过程如图3系统实现过程,其中人脸识别后根据用户选择的处理参数对图像显示或分类。如果用户选择的是单幅图像人脸识别则直接显示识别结果,相应的如果用户选择的是对多个图像根据特征进行分类则创建数据库[7-8]并根据特征进行分类。
其中图像文件读取sdcard根目录中Classify文件夹中的图像信息,读取文件利android提供的BitmapFactory类来实现。而解码格式统一采用了ARG_8888以此来保证图像的质量,如若用户硬件不支持程序会自动根据用户手机的屏幕参数来进行调整。在图像预处理中主要完成图像在进行人脸识别前的一些准备工作,获取图像的基本参数并对图像进行相应调整以便识别工作的顺利完成,主要包括:获取读入位图的大小信息,并与屏幕大小进行比较,如果大于屏幕则对图像进行变换以变图像能够在屏幕上完全显示出来,如果小于屏幕尺寸则不做处理。获取屏幕主要代码如下:
//创建WindowManager类,利用其方法getDefaultDisplay()获取屏幕参数
WindowManager windowManager = getWindowManager();
Display display = windowManager.getDefaultDisplay();
screenWidth = display.getWidth();
screenHeight = display.getHeight();

2.1 UI设计

根据程序需要完成的任务UI具有三大功能:处理方式选择、分类特征选择、显示分类或处理结果。其与用户的交互过程如图4 UI功能,这个过程通过三个Activity来实现,第一个Activity中实现用户处理方式的选择,第二个Activity实现对应参数的设定,最后一个显示执行过程的进度并显示执行结果。三个界面的的显示效果在layout中进行设定,不同Activity间利用Intend类实现参数的传递。值得注意的是,在处理阶段由于移动设备性能有限,处理过程可能需要一定时间为不影响用户进行其他操作,开启了service执行新线程以便占用时间的识别分类过程在新线程中运行。

2.2 人脸检测与分类

人脸检测大体可归结为以下几类:基于图像的方法,如积分投影法、马赛克图像法、对称性分析法等;基于模板的方法,如可变形模板法、活动轮廓模型法等;基于统计学习的方法,如特征脸方法、视觉学习方法、神经网络法等[9-10]。其一般过程如图5 人脸检测过程。
首先,确定图像中的候选人脸区域;其次,利用人脸检测器判别候选人脸区域是否包含人脸;如果包含人脸则继续搜索人脸张数并根据双眼位置计算每个人脸的眼中距,为了提高准确性这一过程可重复验证;最后,通过对前面步骤检测结果的综合处理,输出图像中人脸张数以及各脸中中双眼的中距位置等特征参数。本文利用Android提供的人脸检测函数针对在多目标检测条件下进行的了改进以实现上述过程。在对多个人脸进行检测时有时会因拍摄角度以及图像质量的问题导致一些人脸不能够被识别出来,针对这一情况本文提出了一种快速修正的方法。其具体过程如图6算法流程:
利用Android提供的函数搜索出图像中人脸信息,在目标大于三个的情况下,对搜索出的人脸信息进行分析。提取每张人脸的特征信息,计算出每幅图像包含的人脸区域的双眼中点位置、相邻中点位置的距离差及高度差。以平均人脸区域间隔为标准判断两个相邻人脸间距离是否大于平均距离,如果大于则继续判断其人眼中点距的高度差是否在平均高度差范围内,如果在高度差范围内就判断两张人脸中还存在这一张未识别出的人脸,然后在两张脸间区域中降低CONFIDENCE_ THRESHOLD系数搜索是否存在人脸,如果就在人脸信息中加入这张未识别出的人脸信息。
最后,利用SQlite建立一个图像信息库,将每幅图像的检测出的特征数据包括人脸数量、各个人脸中双眼位置信息与其对应的ID放入建立的数据库中,以便实现图像的分类处理。根据用户所选择的分类方式查询数据库信息,并将符合参数的图像数据复制到sdcard中的相应文件夹中完成分类目的。
3 软件性能分析
测试平台为魅族公司的M9,搭载Android OS 2.3.5操作系统,主频为1GHz的三星S5PC110处理器及魅族公司的MX,搭载Android OS 2.3.5操作系统,主频为1。4GHz的高通双核处理器。软件成功安装后运行《人脸检测与分类》软件,选择处理方式,当选择仅识别人脸按钮后,弹出参数对话框输入最大可识别人脸数及勾选人脸修正选项,参数设置完成点击执行。当进度条满格时显示处理结果。图7图像处理对比结果中是在多识别目标下关闭人脸修正与开启人脸修正的对比结果(左图为关闭修正结果,右图未开启修正结果),表1处理耗时是两种情况下对同一幅图像处理时间对比。表2内容分类结果正确率统计,其为对sdcard中Classify文件夹中20张640×960的图片按照合照与独照的方式进行分类,并根据分类结果将图片复制到Classify中创建创建的合照、独照两个文件夹中。
从图中可以看出在没有修正前左下角的人脸没有被检测出来,而在执行修正算法后能够被检测出来,说明该修正算法在多目标人脸检测条件下能够提高识别率,但是耗时要稍多于未修正的算法。在对图像分类的处理中,对多人脸张人脸的识别正确率要高于单张人脸的识别正确率,反映出了修正算法在多人脸条件下的优势。
4 结论
图像内容检测是一项具挑战性的研究工作。经过几十年的发展,虽然已经取得了一定的进展和突破,但还存在着很多难题。本文对多人脸检测中存在的问题,针对Android移动设备的特点提出了一种在多人脸检测条件下的修正算法,并利SQLite创建特征数据库初步实现了小型移动设备中本地图像内容检索。
参考文献
WIKIPEDIX[OL].en.wikipedia.org/wiki/Android
Android Developers[OL].developer.android.com/ guide/index.html
[3]Hello.Android.3rd.Edition[M].America.2010 Pragmatic Programmers, LLC,July 2010
[4]周德龙.人脸识别技术研究[D].西安:西北工业大学,2001.
[5]刘直芳.人脸检测和识别的研究[D].四川:四川大学博士学位论文.2004
[6]C.J.Wu,J.S,Huang,Human face profile recognition by computer, Pattern Recognition[J].1990、23:225-259.
[7]梁路宏,艾海舟,肖习攀等.基于模板匹配与支持矢量机的人脸检测[J].计算机学报,2002,2

5.1:22-29.

[8]李华胜,杨桦,袁保宗.人脸识别系统中的特征提取.北京交通大学学报[J],2001,25(2):4-9
[9]Hjelmas E. Face Detection: A Survey. Computer Vision and Image Understanding.2001,236-274.
[10]李月敏,陈杰,高文.快速人脸检测技术综述.第16届计算机科学与技术应用(CACIS)学术会议.20

源于:论文写作格式www.udooo.com

04.

copyright 2003-2024 Copyright©2020 Powered by 网络信息技术有限公司 备案号: 粤2017400971号