基于JavaCV视觉处理的智能交友平台的研究

2014-11-07 21:14毛江雄李晓蕾
科技资讯 2014年7期
关键词:人脸识别

毛江雄++李晓蕾

摘 要:针对目前交友平台“搜友引擎”大多是基于文本搜索而建立,用户难以用文字准确表达交友需求,使得许多会员不能搜索到心仪的交友对象。从而提出了一种基于JavaCV视觉处理技术的智能交友平台。

关键词:JavaCV 人脸识别 交友平台

中图分类号:TP391 文献标识码:A 文章编号:1672-3791(2014)03(a)-0022-01

随着信息技术的不断革新,使得网络交友方式近年开始普及,随之诞生的交友网站打破了传统交友的局限性,为人们提供了不受时间、空间限制的交友平台,扩大生活交友圈。然而,当前交友平台的好友搜索机制不健全,只能通过文本搜索好友,不然准确的描述出用户交友的需求,使得许多用户不能搜索到心仪的交友对象。

基于JavaCV视觉处理的交友平台在文本搜索的基础之上添加了图像搜索技术,将枯燥的文字与生动的图像相结合,能够充分满足会员的需求,不仅可以提高交友的效率,更能增加成功率。在众多的视觉处理中,JavaCV是一款开源的视觉处理库,带有硬件加速的全屏幕图像显示,用户友好的几何和色彩的相机校准等功能,使视觉处理平台友好性、精准性提高。

1 JavaCV视觉处理技术的研究

1.1 JavaCV的原理

JavaCV是一款开源的视觉处理库,其中封装了OpenCV、libdc1394、OpenKinect、videoInput和ARToolKitPlus等计算机视觉编程人员常用库的接口,通过调用接口来实现了图像处理和计算机视觉很多方面的通用算法。

1.2 JavaCV视觉处理过程

JavaCV视觉处理包括三个步骤:加载图像、显示图像、处理图像。

(1)加载图像:图像之间有很多不同的类型,其内部结构也不同,想要读入图像文件到内存,必需根据图像内部结构选择适合的方法进行读取。JavaCV的视觉处理库中提供了相应函数,可以将任何格式的图像数据从文件中加载进来,方便了后续的处理。

(2)显示图像:在窗口中显示出加载的图像,是由JavaCV的视觉处理库提供两个函数去实现,一个函数用于在屏幕上创建一个将被显示的图像包含于在其中的窗口;另一个函数用于在已经创建好的窗口中显示需要加载的图像。

(3)处理图像:主要运用JavaCV中的函数去实现图像处理过程中的一些基本算法,包括彩色转换为灰度、形态学操作、阈值2值化和边缘提取等。

2 搭建智能交友平台

2.1 系统的功能

本系统通过面向对象的方法进行设计,采用流行的B/S体系结构建模,主要用到的技术工具有Tomcat6.0应用服务器、SQL Server数据库服务器,应用java语言开发。同时配备了与之匹配的移动客户端。

智能交友平台主要是五大功能模块:基于JavaCV的图像搜索、交友咨询、交友俱乐部、移动客户端、在线聊天等。

(1)基于JavaCV的图像搜索:通过搜索图像文本或者视觉特征,为用户提供交友平台上相关会员图形图像资料检索服务,找到与条件契合度最高的会员,从而提高搜索准确性。

(2)交友咨询:帮助用户分析解决交友问题或提出交友待人建议,并通过用户自身条件,为其推荐具有共同话题和性格匹配的会员,提高交友成功率。

(3)交友俱乐部:在实名认证的前提之下,为会员提供进一步的交流沟通。

(4)移动客户端:提供基于Android系统的移动交友客户端,通过手机终端实时随时随地交流沟通。

(5)在线聊天:方便会员之间的沟通,在线互动、了解,促进情感交流。

2.2 实现过程

在Android系统下基于JavaCV的视觉处理实现需利用Android应用程序框架编写Android端代码;通过JNI与JavaCV接口编写本地C/C++代码,并利用AndroidNDK对其进行编译生成Java代码可调用的共享库,最后通过SDK生产Android应用程序。

当使用JavaCV的图像搜索功能时,系统会自动读取存储在客户端上的图片,并显示加载到屏幕上,用户选择其中的一幅图片进行搜索,系统后台根据所上传的图片开始对其进行视觉处理。

2.2.1 建立静态UI

首先,基于JavaCV的图像搜索功能,需要新建两个xml布局文件。分别加载系统中的图片到屏幕中和显示需要进行视觉处理的图片。其次,新建两个Java源文件并继承Activity类。通过相应方法对UI进行布局。通过设置适配器来显示UI中的控件,并加载系统内的图片资源。

2.2.2 实现后台运行视觉处理函数

Service是运行在后台的服务,与其他组件一样都是运行在主线程中,主要负责分配处理事件给用户接口的插件,确保UI操作在Service运行程中不会被阻塞,费时的操作应该运行在其他线程。本系统通过IntentService启动服务,这时系统会建立一个新线程,并在此线程中执行onHandleIntent方法,所以视觉处理操作可以在此方法中实现。

2.2.3 更新UI

当视觉处理操作完成时,系统获得人脸位置信息并将此信息发送到主线程UI更新方法中进行更新,不能通过onHandleIntent方法进行实现,所以必需在主线程中完成UI更新。

2.2.4 利用JNI实现基于JavaCV的视觉处理函数

先建立native方法所对应的C/C++函数声明,通过JDK提供的javah工具可生成包含此函数声明的头文件,并执行javah命令。随后在工程目录下新建JNI文件夹,将生成的头文件拷贝到此文件夹下,同时新建C++源代码文件并引入此头文件,编写函数实现代码。

2.2.5 设置客户端人脸位置信息

客户端通过JNI对C/C++端进行交互,来获取IntentService类中存放识别到的人脸的位置信息,并加载到客户端中,当JavaCV视觉处理操作执行完成后对其进更新与读取。

3 研究结果与分析

本文中的系统主要功能是运用JavaCV视觉处理技术,为用户提供交友平台上相关会员图形图像资料检索服务,通过输入与图片内容相似的关键字与数据库中存储的特征模板进行搜索匹配,通过设定一个阈值,当相似度超过这一阈值,则把匹配得到的结果输出。从而提高交友的效率,更能增加成功率。

4 结语

本文的系统基于JavaCV视觉处理打造了一个以诚信交友、图像接收与搜索、情感咨询等功能为基础的智能交友平台。提供一个为了人们诚心交友,而去结交认识他人、寻找知己的一个网络交友平台。通过该平台可以结识来自全国各地的网友。也是基于网络平台的广泛性、互通性、娱乐性、经济性、安全性等优点而立足本世纪的一种网络交流方式中的互动型服务平台。

参考文献

[1] 姚昱曼,刘卫国.Android的架构与应用开发研究[J].计算机系统应用,2008(11).

[2] 赵宏伟.Android NDK开发环境实现与应用[J].电脑知识与技术,2010(35).

[3] 张莹,李勇平,敖新宇.基于OpenCV通用人脸检测模块设计[J].计算机工程与科学,2011(1):97-101.

[4] 王宏彬,李灯熬,赵菊敏,等.利用OpenCV实现在Android系统下的人脸检测[J].软件,2011,32(12).endprint

猜你喜欢
人脸识别
人脸识别 等
揭开人脸识别的神秘面纱
人脸识别技术的基本原理与应用
人脸识别技术在高速公路打逃中的应用探讨
基于(2D)2PCA-LBP 的人脸识别方法的研究
浅谈人脸识别技术
人脸识别在高校安全防范中的应用
巡演完美收官 英飞拓引领人脸识别新潮流
人脸识别在Android平台下的研究与实现
基于Metaface字典学习与核稀疏表示的人脸识别方法