基于Spark的图像相似性比对加速算法(4)
时间:2021-11-13 16:13 来源:毕业论文 作者:毕业论文 点击:次
2 区域连通检测 连通是指像素点之间的邻接关系。主要有如下两种邻接关系: 图1。3 像素点之间邻域关系示意图 如果有以上邻接关系,那么就称中心的x和周围的圆点是连通的。 在视觉上看来,彼此连通的点形成了一个区域,而不连通的点形成了不同的区域。这样的一个所有的点彼此连通构成的集合,称为一个连通区域。在如下灰度图像中,“i”、“c”、“v”、“p”、“r”、“。”、“c”、“o”、“m”各是一个连通区域,用不同的颜色区分它们: 图1。4 区域连通检测示意图 区域连通检测是将同一连通区域中的点标上相同的标记(如颜色),这样对图像处理时就能分辨哪些点是相连通的,可以进一步提取轮廓特征、区域尺寸和位置等信息。 3 图像相似性比对 顾名思义,图像相似性比对就是对两幅图像之间的相似程度进行评判。“相似”的可能有多种,例如图像中的物体形状、轮廓相似、灰度分布直方图相似(对灰度图而言)、颜色分布直方图相似(对彩色图像而言)等。本文研究的图像相似性是两幅图片之间形状的相似,如下图: 这两个“2”并不完全相同,但根据前景点(表现为白色区域)分布位置基本相同,可以判定这两幅图相似。 图1。5 相似图片示意图 1。2。3 KNN算法介绍 对图像进行处理之后,得到了箱号字符的矩阵,但此时仍是图像信息,尚未转换为文本信息,因此使用KNN算法对箱号字符矩阵进行识别,获得相应的值——A~Z、0~9共36个可选值,或识别为杂质。 KNN算法(K Nearest Neighbors,K最近邻算法)认为有着相同分类号的样本相互之间也最相似,因而可以通过计算待预测样本和已知分类号的训练样本之间的距离来判断该样本属于某个已知分类号的概率,并选取概率最大的分类号作为待预测样本的分类号。 输入一个待预测样本,计算它与每个训练样本的距离,获得离它最近的K个训练样本实例,然后根据这K个训练样本实例的分类号,用某种“投票”模型计算得到该预测样本的分类号,或者直接选取K个分类中出现次数最多的分类号作为待预测样本的分类结果。 本项目的待预测样本是箱号字符矩阵,训练样本为A~Z、0~9等36个字符所对应的36类图片。“距离”即为待预测样本和训练样本之间的相似程度。距离越小,图像越相似。训练样本的分类号为对应的字符值——A~Z、0~9这36个字符的其中之一。 1。2。4 Spark介绍 Spark是UC Berkeley AMP lab所开源的类Hadoop MapReduce的通用的并行计算框架,Spark基于map reduce算法实现的分布式计算,拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是Job中间输出和结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的map reduce的算法。 Apache Spark是一种快速通用引擎,用于大规模数据处理。在硬盘上的运行速度是Hadoop MapReduce的10倍,而在内存上运行的速度是Hadoop MapReduce的100倍。Spark拥有先进的有向无环图(DAG)引擎 ,支持循环数据流和内存中的计算。Spark提供超过80个高水平的操作,简化了并行应用的开发,可以通过Scala、Python、R shells等交互地使用Spark。 概括性地说,Spark集合了SQL、流运算和一些复杂的数据分析,它运行着一个包括SQL、数据框架、用于机器学习的MLlib、用于图计算的GraphX和Spark流处理等多个库的栈,便于各种计算。在同一个应用程序中,可以根据需要无缝结合这些函数库。文献综述 (责任编辑:qin) |