基于Android图像识别技术的失踪人员管理系统开发
2014-02-23刘持标林金发孙丽丽吴美瑜邱锦明
刘持标,林金发,孙丽丽,吴美瑜,邱锦明
(三明学院 信息工程学院 物联网应用福建省高校工程研究中心,福建 三明 365004)
基于Android图像识别技术的失踪人员管理系统开发
刘持标,林金发,孙丽丽,吴美瑜,邱锦明
(三明学院 信息工程学院 物联网应用福建省高校工程研究中心,福建 三明 365004)
针对我国目前由于地域广及流动人口多所导致的失踪人员难以寻找的问题,利用Android智能手机摄像、GPS、OpenCV、JavaCV、Java、Java EE、MySql等技术开发基于Android图像识别技术的失踪人员管理系统。利用此系统和WiFi或3G/4G移动通信技术,Android智能手机可针对潜在的搜寻目标照相,并将照片及GPS相关信息即刻传输到远程数据服务中心的服务器。收到查询图像后,服务器立刻对图像进行处理并同图像库中的人员信息进行对比,从而确定刚刚拍摄到的人员是否为所寻找的目标。该系统的开发为建立全社会人人都可以参与的实时人员搜寻系统奠定了基础,为在较短时间内寻找到失踪人员提供了技术保障,具有较大的经济意义和社会意义。
Android;图像识别;失踪人员;MySql;OpenCV;JavaCV
失踪人员大多为不太懂事的小孩、失忆的老人、有精神疾病的人或其他被拐骗及被绑架的人员。虽然,国家近年来加强了对失踪人员的搜寻力度,但由于可使用的警力有限,再加上我国地域广及流动人口多,使得寻找任务难以进行。利用信息化技术对失踪人员进行管理和查询,是国内外科研领域的一个热点[1-5]。目前,为了快速准确地找到失踪人员,公安部建立了“全国失踪人员信息管理系统”,民间组织也建立了“中国失踪人口档案库”[6]。前者为政府所建设的只有公安部门人员才可以使用的信息系统。对于民间组织所建立的网站,虽然一般人可以上网查询失踪人员,但这个系统也存在一些问题。比如,失踪人员的信息上传过程过于复杂,使得一些希望帮助上报或寻找失踪人员的热心人士望而却步。另外一个方面的问题为民间寻人网站的查询方式,很多为简单的失踪人员姓名的查询,对于失踪的小孩、失忆的老人和有精神疾病的人,他们的名字往往是不知道的,这些人往往占失踪人口比例的大多数。
针对现有失踪人员信息系统所存在的失踪人员信息登记不方便和失踪人员查询效率不高的问题,本论文利用Android智能手机摄像、GPS、OpenCV、Java、Java EE、MySql等技术开发基于Android图像识别技术的失踪人员管理系统。该系统主要包括两个部分,一部分为Android智能手机失踪人员登记及失踪人员查询客户端,另一部分为失踪人员管理系统服务器端。利用此系统和WiFi或3G移动通信技术,Android智能手机可针对潜在的搜寻目标照相,并将照片、GPS信息及其它文字信息即刻传输到远程数据服务中心的失踪人员管理系统服务器。服务器立刻对收到的图像进行处理并同图像库中的人员信息进行对比,可确定刚刚拍摄到的人员是否为所寻找的目标。如果基于文字的查询和基于图像识别的查询没有能够找到该人员在系统中的信息,服务器将根据收到的文字信息及图像信息对失踪人员进行登记,并将所登记的人员定义为“准失踪人员”,可供有关单位及个人查询使用。如果此次查询成功,服务器自动将该次查询信息与系统所登记的信息关联,并通知相关人员或组织来认领失踪人员。据统计,2014年我国手机用户的数量将超过10.75亿部[7],其中Android在中国智能手机市场的份额为82.7%[8]。如果所开发的Android智能手机失踪人员登记及失踪人员查询客户端可以安装在大多数人的Android手机上,并得以高效使用,这将为建立全社会大多数人都可以参与的实时人员搜寻系统奠定基础。
1 失踪人员管理系统开发及测试环境
失踪人员管理系统所涉及的软硬件及网络拓扑图如图1所示。本系统的软件由2部分组成,一部分为Web服务器端的失踪人员管理系统和Android客户端的图像拍摄、检测及上传应用。Web服务器端的系统模块可分为人脸识别模块、失踪人员管理模块和系统管理模块。Android客户端应用的主要功能为人员照片拍摄、人脸检测和图像上传。当然,在上传图像时,GPS信息和相关文字信息也被一同上传到Web服务器。图1中所示的失踪人员管理系统PC客户端可以在没有智能手机的情况下使用。相关人员通过PC客户端的Web浏览器登录失踪人员管理系统,可完成相关的失踪人员图像上传、失踪人员信息查询及其它系统管理操作。 多个Android智能手机可以在不同的时间和地点同Web服务器进行信息交换,分别完成失踪人员的登记和查询。开发Android客户端软件及Web服务器软件所使用的开发平台及编程技术包括 Java Development Kit(JDK)、Eclipse、MyE-clipse、Android SDK、A rduino IDE、Java EE、OpenCV、JavaCV、MySql和Apache Tomcat。
图1 失踪人员管理系统开发及测试环境网络拓扑图
2 失踪人员管理系统分析与设计
本设计预期目标是实现Android客户端获取相关人员照片,使用JavaCV技术检测人脸,利用WiFi/3G/4G上传图片及GPS等信息,上传到服务器进行数据库存储。 然后,服务器使用OpenCV对人脸图像识别,并可将识别后的结果通过短信猫发送相关人员手机中。 在服务器端还提供了用户注册、用户登录、用户上传信息查询、用户个人信息查询及修改和用户登录次数统计等功能。 失踪人员管理系统设计遵循实用性原则、安全性原则和扩展性原则,使用者易于掌握操作方法及维护,用户能方便实时的上传图像信息、查询和更改信息。 本文所开发的失踪人员管理系统客户端和服务器端的功能操作流程如图2所示。
图2 失踪人员管理系统客户端及服务器端功能操作流程图
3 Android 客户端功能实现
Android客户端登录界面及人脸检测界面如图3所示。 利用HTML布局创建的Android登录界面,用户在填写相关信息后,点击登录按钮后将数据提交到服务器进行验证,验证通过后,可进入客户端主界面。用户通过Android登录后的主界面,此界面以摄像头所捕捉到的画面作为背景。 点击启动摄像头按钮将启动手机的摄像头并对捕捉到的画面进行人脸检测,而且在人脸一侧会出现一个正方形的小框。 点击识别按钮,将会建立服务器连接,并将图片上传到服务器作进一步的处理。
图3 Android客户端登录界面和人脸检测
4 Web 服务器端功能实现
失踪管理系统服务器端,不断接收来自不同智能手机用户的人脸图像及其它相关信息。 当接收到来自Android客户端的人脸图像后,服务器就开始进行人脸对比,对收到的人脸图像进行身份确认。就是将来自Android客户端的人脸图像与人脸库中的人脸图像依次进行比对,并找出最佳的匹配对象。
目前,用于人脸对比的方法有特征向量法与面纹模板法两种。特征向量法就是先确定五官轮廓的属性,计算出它们的几何特征量形成描述该人脸图像的特征向量。特征向量法的优点是识别率高和速度快,它的缺点是准确性受到所获取图像的光线、皮肤颜色及表情等的影响。另一方面,面纹模板法就是采集面纹的模板,匹配出最佳的人脸,该方法的优点是不受光线、皮肤颜色、发型、表情及姿态的影响。面纹模板法的缺点是识别率低。在我们的研究中,将特征向量法与面纹模板相结合,使人脸识别的准确率和速率得到了提高。这两种人脸识别方法所涉及函数的Java代码描述如下。
//特征向量法Java函数代码
public CvMat PCAMatch(IplImage img){
double Vector[]=new double[10000];
IplImage grayFrame=cvCreateImage(cvGetSize(img),8,1);
cvCvtColor(img,grayFrame,CV_BGR2GRAY);
IplImage img_gray=cvCreateImage(cvSize(100,100),8,1);
cvResize(grayFrame,img_gray);
CvMat Mat_tmp=cvCreateMat(img_gray.height(),img_gray.width(),CV_32FC1);
cvConvert(img_gray,Mat_tmp);
int start=0;
for(int i=0;i<Mat_tmp.rows();i++){
for(int j=0;j<Mat_tmp.cols();j++){
double value=cvGet2D(Mat_tmp,i,j).val(0);
Vector[start]=value;
start++;
}
}
CvMat data=cvCreateMat(img_gray.height(),img_gray.width(),CV_32FC1);
CvPoint2D32f point=new CvPoint2D32f(Vector,0,Vector.length);
cvSetData(data,point,data.step());
CvMat pAvgVector=cvCreateMat(1,100,CV_32FC1);
CvMat pEigenValue=cvCreateMat(1,1,CV_32FC1);
CvMat pEigenVector=cvCreateMat(1,100,CV_32FC1);
cvCalcPCA(data,pAvgVector,pEigenValue,pEigenVector,CV_PCA_DATA_AS_ROW);
CvMat pResult=cvCreateMat(100,1,CV_32FC1);
cvProjectPCA(data,pAvgVector,pEigenVector,pResult);
CvMat pRecon=cvCreateMat(100,100,CV_32FC1);
cvBackProjectPCA(pResult,pAvgVector,pEigenVector,pRecon);
return pRecon;
}
//面纹模板法Java函数代码
public void TemplateMatch(IplImage src,IplImage tmp,String username){
DecimalFormat df=new DecimalFormat("0.000");
w=Math.abs(src.width()-tmp.width());
h=Math.abs(src.height()-tmp.height());
result=cvCreateImage(cvSize(w+1,h+1),IPL_DEPTH_32F,1);
srcGray=cvCreateImage(cvGetSize(src),8,1);
tmpGray=cvCreateImage(cvGetSize(tmp),8,1);
cvCvtColor(src,srcGray,CV_BGR2GRAY);
cvCvtColor(tmp,tmpGray,CV_BGR2GRAY);
cvMatchTemplate(srcGray,tmpGray,result,CV_TM_CCORR_NORMED);
cvMinMaxLoc(result,min_val,max_val,min_loc,max_loc,null);
if(Double.parseDouble(df.format((max_val[0]+min_val[0])/2))>=0.940){
flag=true;}else{flag=false;}
cvReleaseImage(srcGray);
cvReleaseImage(tmpGray);
cvReleaseImage(result);
}
在服务器端,通过对Android上传的图片进行分析,截取上面的人脸与系统中存在的人脸模板库进行对比,并将结果通过短信猫发送给指定的用户。特定用户可以使用Web服务器进行失踪人员的管理及操作,普通用户和管理员的登录系统入口如图4所示。
图4 失踪人员管理系统登录页面
管理员登录进入失踪人员管理系统后,可以查看及管理已注册失踪人员人脸库、已识别失踪人员图像和未识别失踪人员图像等信息,具体界面如图5和图6所示。
目前系统用户分为普通用户和管理员两类,管理员比普通用户多了一个系统管理的功能。通过此功能来对系统中的所有功能及用户进行维护。系统管理是管理员对系统的维护,此模块分为用户管理、网页权限设置、操作权限和系统日志等。如图7所示,用户管理是对系统中的用户进行管理,必要时可将其删除。网页权限设置保存了系统中所有菜单功能,可对任意一个菜单进行名称的修改。操作权限设置保存了系统中所有有关数据库的操作连接,例如,对用户的操作权限。系统日志是指对每个用户的数据库操作进行记录。当每个用户通过页面发送请求到服务器操作数据库时,系统会对每条数据库操作的请求进行拦截并进行保存,其中包括用户名、用户类型等相关信息(图8)。
图5 已注册失踪人员人脸库
图6 已识别失踪人员图像
图7 用户管理操作界面
图8 系统日志列表界面
5 结论
本论文主要设计并开发了基于Android智能手机和图像识别技术的失踪人员管理系统。在技术上主要采用JavaEE的SSH框架技术、Jquery、ExtJs和比较流行的Android开发技术。本系统主要由服务器端和Android手机客户端组成。在服务器端主要使用SSH、Extjs和OpenCV技术进行开发,实现了人脸识别和系统管理等功能。在Android客户端主要由Android的SDK编写,同时还使用了JavaCV编程技术进行人脸检测。客户端登录后,主界面以摄像头捕捉到的画面为背景,实现人脸检测功能,并将检测画面中存在的人脸及其它相关信息上传到失踪人员管理服务器进行进一步的识别处理。目前,我们已经对所开发的失踪人员管理系统进行了小范围的测试,该系统运行稳定,人员识别准确率较高。在将来的工作中,我们将对所开发的系统该进行深化研究、广泛测试和人脸识别算法的改进,以期开发出具有较大使用价值的失踪人员管理信息化系统。
[1]管建平.失踪人员查证机制的难点及对策[J].江苏警官学院学报,2012(2):182-184.
[2]张晓伟.基于动态时间规整的局部分块匹配在面部遮挡人脸识别中的应用[J].科学技术与工程,2014(5):109-114.
[3]满江月.人脸识别技术应用与发展趋势[J].中国公共安全:综合版,2014(10):124-128.
[4]OSCAR IBANEZ,OSCAR CORDON,SERGIO DAMAS.Santamaria expert systems with applications[J].An International Journal,2012,39(1):1459-1473.
[5]W.Mohibullah,Simon J.Julie.Developing an Agent model of a missing person in the wilderness[J].SMC'13 Proceedings of the 2013 IEEE International Conference on Systems,Man,and Cybernetics,2013:4462-4469.
[6]中国寻人网-中国失踪人口档案库.http://www.zgszrkdak.com/gw.asp.
[7]Gartner.中国手机用户总数首超10亿[EB/OL].[2014-01-21].http://tech.sina.com.cn/t/2014-01-21/16419115860.shtml.2014.01.21.
[8]IOS与 Android:谁更适合中国智能手机市场 [EB/OL].[2014-07-01].http://www.15666.com/sycyz/cyxw/201407-832101.shtml,2014.
(责任编辑:朱联九)
Development of a Missing Person Management System Based on Android Image Recognition Technology
LIU Chi-biao,LIN Jin-fa,SUN Li-li,WU Mei-yu,QIU Jin-ming
(IOT Application Engineering Research Center of Fujian Province Colleges and Universities, School of Information Engineering,Sanming University,Sanming 365004,China)
Due to China's vast territory and a large floating population,it is difficult to quickly find missing persons. To resolve this problem,a missing person search system by using the technologies of Android smartphone imaging,GPS, OpenCV image recognition,JavaCV,Java,Java EE and others is developed in this paper.Using the developed system and the technologies of WiFi and 3G/4G wireless data communication,the Android smartphone takes pictures of the potential targets and sends images and the GPS information to the remote server;once the remote server receives the picture,it starts image recognition to determine whether the just shot belongs to the target.The developed system lays a solid foundation for establishing a real-time searching system that everyone can participate to find missing persons and has great economic and social significance.
Android;image recognition;missing person;MySql;OpenCV;JavaCV
TP391.41
A
1673-4343(2014)04-0017-07
10.14098/j.cn35-1288/z.2014.04.004
2014-07-08
福建省自然科学基金项目 (2012J01283,2012J01282);福建省教育厅省属高校科研专项计划项目(JK2012051);福建省科技计划项目(2013N0031)
刘持标,男,山东单县人,博士。研究方向:物联网工程、物联网安全、网络工程。