论文部分内容阅读
大数据时代数据呈爆炸式增长,海量数据的处理显得愈发重要,因此多种大数据处理框架应运而生,如Hadoop,Strom,Spark等。在图像处理领域,人脸识别技术经过几十年的研究日渐成熟,正在逐步走向市场。基于大数据的图像检索作为一个新的热门课题,已经是高校、科研机构和公司的研究重点。海量图像数据检索面临两个技术难点:一是怎样利用算法降低整体计算量;二是如何基于分布式架构合理利用硬件资源提高计算效率。针对第一个难点,本文首先利用PCA算法将128维的SIFT特征降至32维,其次将Canopy算法与K-Means算法相结合对降维后特征矩阵中的行向量进行聚类,并统计聚类后各特征矩阵的词频向量,再将所有图像的词频向量输入到Spark MLlib的LDA模型中,接着将图像特征矩阵聚为K类。最终,用户图像的特征矩阵只需与同类别图像的特征矩阵进行相似度计算。针对第二难点,本文利用集群分布式计算的特性来提高计算效率。本系统基于分布式架构的HBase数据库和Spark框架,实现了分布式的并行运算。同时,系统的核心算法Canopy、K-Means、LDA、欧式距离等都是基于Spark框架实现的并行化算法,能高效的运行在Spark框架上。本文针对大数据环境下人脸图像的检索问题,设计并实现了基于Spark框架的人脸图像检索系统。本文完成的主要工作如下:1.改进了 Canopy和K-Means算法,并基于Spark框架实现了改进的算法。将改进的两种算法分别与Hadoop机器学习库Mahout或Spark机器学习库MLlib的同类算法进行对比。实验显示改进的算法在Spark框架上取得更高的计算效率。2.检索系统的特征匹配子系统分别用Spark和Hadoop机器学习库中的算法进行了实现,并对两种实现方案的检索性能进行了实验对比。实验显示在人脸图像快速检索方面Spark框架比Hadoop框架具有更优秀的计算性能。3.设计并实现了基于Spark框架的人脸图像检索系统。该系统由三个子系统组成:数据库子系统、用户交互子系统、特征匹配子系统。