版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
图像特征提取1提取图像的纹理特征目录提取图像的颜色特征2提取图像的轮廓特征3提取图像的形状特征4颜色特征是在图像检索中广泛应用的视觉特征,也是人们识别图像时最主要的感知特征,主要是因为颜色往往和图像中所包含的场景和物体有非常强的相关性。自然界中,同种物体一般有相同的颜色特征,不同的物体可能有着不同的颜色特征。相对于其他图像特征,颜色特征对图像方向、尺寸和视角等的依赖性较小,具有较高的鲁棒性,有不少的图像检索系统以颜色特征作为图像检索的主要手段。常用的颜色特征包括:颜色直方图、颜色矩、颜色聚合向量和颜色相关图。了解图像的颜色特征颜色直方图是被广泛应用在许多图像检索系统中的颜色特征,只包含了图像中各颜色值出现的频数,可以描述不同色彩在整幅图像中所占的比例。如果图像可以分为多个区域,且前景与背景颜色分布具有明显差异,那么颜色直方图呈现双峰形。但是颜色直方图丢失了像素所在的空间位置信息,即无法描述图像中存在的对象或物体。任一幅图像都能唯一的给出一幅与之对应的颜色直方图,但不同的图像可能有相同的颜色分布,从而具有相同的直方图,因此直方图与图像是一对多的关系。在获取颜色直方图前,会对图像颜色空间的颜色分量进行分割,常用的颜色空间包含RGB、HSV颜色空间。颜色直方图对图像几何变换中的旋转、翻转变化不敏感,具有一定的稳定性。了解图像的颜色特征1.颜色直方图通过OpenCV中的calcHist函数可以计算图像直方图,语法格式如下。需要注意calcHist函数不实现直方图的绘制。cv2.calcHist(images,channels,mask,histSize,ranges[,hist[,accumulate]])了解图像的颜色特征参数名称说明images接收array型常量,表示需要进行直方图绘制的图像,无默认值channels接收int型常量,表示用于计算直方图的通道,无默认值mask接收array,表示用于凸显区域或掩盖区域的掩膜,与输入图像具有相同的大小,无默认值histSize接收int型常量,表示直方图分成多少个区间,无默认值ranges接收float型常量,表示统计像素值得区间,无默认值accumulate接收bool,表示在多个图像时,是否累计计算像素值得个数,默认为FalsecalcHist函数参数接收的数据类型有所不同,例如,images参数不能直接接收图像数组,需要将图像数组转换列表的形式,即“[img_bgr]”,img_bgr表示RGB颜色空间的图像数组。同时将histSize参数的值设置为256,表示统计每个像素值的数量。通过calcHist函数计算图像直方图,然后使用绘图库实现颜色直方图绘制,得到的RGB颜色空间的颜色直方图,如图所示。从图可以看出,三种颜色的颜色直方图的数量峰值都是分布在像素值较低的位置,表明图像的颜色总体偏暗色调。不同颜色对应像素值数量的变化趋势在0到150的区间内基本相同,在150后红色的像素数量明显高于其他两种颜色,表明在图像中存在一部分的鲜红区域。了解图像的颜色特征颜色矩是一种简单有效的颜色特征表示方法。颜色矩的优点在于,不需要颜色空间量化,特征向量维数低。但在实验中发现颜色矩的检索效率比较低,因而在实际应用中往往用于过滤图像以缩小检索范围。由于图像的颜色信息主要分布于低阶矩中,所以常用一阶矩、二阶矩和三阶矩表达图像的颜色分布。其中,一阶矩描述平均颜色,反映了图像整体的明暗程度;二阶矩描述颜色标准差,反映了图像颜色的分布范围;三阶矩描述颜色的偏移性,反映了图像颜色分布的对称性。一阶矩、二阶矩、三阶矩的计算公式分别如下式所示。计算公式中的N为像素数量,表示第i个颜色分量的第j个像素值。了解图像的颜色特征2.颜色矩从颜色矩的计算公式可以看出,颜色矩也受图像的像素数量影响。但是在实际的应用中,摄像设备的不同会导致获取的图像的尺寸不同。因此,在特定的情况下,对比两图的颜色矩时,可以通过在原图中切割出相同大小的图像,从而消除图片尺寸不统一的影响,如下图所示。了解图像的颜色特征自定义颜色矩计算函数,并绘制颜色矩的直方图,得到两片叶子的各阶颜色矩如图所示。在该图中,柱形表示各阶颜色矩的数值大小,由此可知,两片叶子的一阶颜色矩存在较大的不同,主要体现在绿色分量和红色分量中,第二片叶子的绿、红分量接近第一片绿、红分量的两倍,因此在第二片叶子的色彩在总体上更加艳丽。在二阶矩和三阶矩中,第一片叶子均高于第二片叶子,表明在总体上第二片叶子的颜色分布更均匀。了解图像的颜色特征了解图像的颜色特征3.颜色聚合向量针对颜色直方图和颜色矩无法表达图像色彩的空间位置的缺点,提出了图像的颜色聚合向量。颜色聚合向量是颜色直方图的一种演变,其核心思想是将属于直方图每个区间的像素分为两部分。如果区间内的像素所占据的连续区域的面积大于给定的阈值,那么该区域内的像素作为聚合像素,否则作为非聚合像素。从而得到每个区间内聚合像素的数量和非聚合像素的数量,则颜色聚合向量可以表示为。颜色聚合向量的计算主要包含量化、划分连通区域、判断聚合性和得到结果4个步骤。待计算颜色聚合向量的数据如下图所示。首先对数据进行量化,以10作为一个区间的宽度,将10~19内的数据划分为区间1,将20~29内的数据划分为区间2,并以此类推直到全部区间划分完毕。量化的结果如下图所示。了解图像的颜色特征(1)量化连通区域的计算使用的是8邻域,每个连通区域使用不同字母表示。划分连通区域结果如下图所示。了解图像的颜色特征(2)划分连通区域结合量化和划分连通区域的结果统计连通区域中的像素数量如下表所示。设定一个阈值τ,作为判断连通区域中的像素是聚合还是非聚合的判断依据。如果连通区域中的像素数量大于阈值τ
,那么该区域中的像素是聚合的,否则像素是非聚合的。了解图像的颜色特征(3)判断聚合性连通区域ABCDE颜色区间12132像素数量1215315设阈值为4,在颜色区间为1的情况下,像素数量大于4的为12,小于4的为3,因此颜色区间为1时α=12、β=3。如果同一区间内有多个符合条件的像素数量,那么需要将像素数量相加。例如,在颜色区间为2时,像素数量大于4的有15和5,则α=15+5=20。计算得到3个颜色区间的聚合性如下表所示。了解图像的颜色特征颜色区间123α12200β301根据聚合性的统计结果,可以得到待计算数据的颜色聚合向量为。通过自定义函数计算得到颜色聚合向量的结果如下表所示。了解图像的颜色特征(4)得到结果聚合非聚合012.03.0120.00.000.01.0了解图像的颜色特征4.颜色相关图颜色相关图是图像颜色分布的另一种表达方式,不但刻画了某种颜色的像素占比,还表达了颜色随距离变换的空间关系,反映了颜色之间的空间关系。如果还考虑颜色之间的相关性,那么颜色相关图将会非常复杂庞大。一种简化方式是颜色自动相关图,仅仅考虑具有相同颜色的像素之间的空间关系。假设图像I被量化为m种()颜色值。对于图像I中的任意两个像素点和,定义两点之间的距离为,像素的距离集合表示为。则对于固定距离、、图像I的颜色相关图如下式所示。在该式中,表示图像I与像素点距离为k且颜色值为的像素点的个数。自定义函数绘制颜色相关图得,到颜色相关图如右图所示。在颜色相关图中,明亮部分表示存在符合条件的像素点,越明亮则符合条件的像素点越多。从图可以看出,图像中像素值在0~130之间的像素点有较广泛的分布,说明图像整体偏暗,颜色相对斑驳。但是像素值在150~200之间的像素点亦有不少的分布,说明图像存在明亮部分。了解图像的颜色特征在环境监测中,对水资源的监测至关重要,一张取样后拍摄的水质图像如下左图所示。在光照条件下,由于不同质量的水中含有的物质不同,对光的反射也不同,所以导致了水的颜色看起来不同。通过提取水质图像的颜色特征可以对水质进行分类。拍摄的水质图像不可避免的包含了杯子、纸张、草地等背景,因此需要对原始图像进行切割,保留相同大小的水质部分的图像并提取颜色矩特征,得到的部分分割后图像如下右图所示。提取水质图像的颜色特征提取了全部水质图像的颜色矩后,根据标签对颜色矩进行分类,并绘制5类水质图像各阶颜色矩均值折线图,如右图所示。从该图可以看出,不同水质图像的颜色矩差距主要体现在一阶颜色矩中,二阶颜色矩和三阶颜色矩的差距不大。因此,可以选择一阶颜色矩作为水质图像分类模型的特征数据,创建水质图像分类模型。提取水质图像的颜色特征1提取图像的纹理特征目录提取图像的颜色特征2提取图像的轮廓特征3提取图像的形状特征4图像的纹理特征在图像检索中有着重要的地位,与图像的颜色、形状等特征相比对图像具有更强的描述能力、更加稳定。纹理表现为物体表面某种重复性出现的微观结构,能够反映出图像的灰度变化和空间结构。20世纪70年代,随着对纹理的深入分析,灰度共生矩阵的概念被提出。在此之后,基于纹理基元提出了局部二值模式。灰度共生矩阵和局部二值模式常被用于提取图像的纹理特征。了解图像的纹理特征灰度共生矩阵(Grey-LevelCo-occurrenceMatrix,GLCM)可以反映出图像灰度在一定方向和一定相距间隔的变化情况。通过计算得到的灰度共生矩阵能够较好的反映出图像的灰度变化关系以及结构等信息。假设一张二维灰度图像的大小为,其灰度被量化为级。则灰度共生矩阵水平方向分布域为,竖直方向分布域为,量化后灰度的分布域为。存在一个映射函数I,使。灰度共生矩阵如下式所示。在该式中,为计算集合中元素的个数;d和θ分别为点到点的距离和方向。θ的常见取值有0°(水平方向)、45°、90°(竖直方向)和135°,如右图所示。了解图像的纹理特征1.灰度共生矩阵待计算灰度共生矩阵的数据如下图(1)所示,该数据被量化后包含3个量级,其灰度矩阵的大小为3×3。当d=1、θ=0°、时,表示统计第一个元素为1,水平方向上距离为1的另一个元素为2的组合的个数,如下图(2)所示,需要注意的是,两个元素的位置无先后之分。从图(2)可以看出,符合条件的集合共有10个。则在灰度共生矩阵中,第“1”行第“2”列上元素的值为10。同理,第一个元素为2,水平方向上距离为1的另一个元素为3的组合的个数为10。了解图像的纹理特征统计集合中所有组合的个数即可得到完整的灰度共生矩阵,如图所示。灰度共生矩阵虽然提供了图像灰度方向、间隔和变化幅度的信息。但灰度共生矩阵不能直接提供区别纹理的特性,因此需要在灰度共生矩阵的基础上计算特征,常见的特征有均值、方差、标准差、同质度、对比度、非相似性、熵、能量、角二阶矩等。了解图像的纹理特征通过scikits-image中的greycomatrix函数可以计算灰度共生矩阵,语法格式如下。skimage.feature.greycomatrix(image,distances,angles,levels=256,symmetric=False,normed=False)greycomatrix函数参数名称及其说明如下表所示。了解图像的纹理特征参数名称说明images接收array,表示需要计算灰度共生矩阵的二维图像,无默认值distances接收array,表示像素对距离偏移量,无默认值angles接收array,表示以弧度为单位的像素对角度,无默认值levels接收int,表示表示计数的灰度级数,默认为256symmetric接收bool,表示输出灰度共生矩阵是否需要对称,默认为Falsenormed接收bool,表示输出灰度共生矩阵是否需要归一化,默认为False通过scikits-image中的greycoprops函数可以计算部分灰度共生矩阵特征,语法格式如下。skimage.feature.greycoprops(P,prop='contrast')greycoprops函数参数名称及其说明如下表所示。了解图像的纹理特征参数名称说明P接收array,表示输入的灰度共生矩阵,无默认值prop接收str,表示要计算的特征值,默认为“contrast”编写并运行相应代码得到灰度共生矩的特征如下表所示。从该表可以看出,图像并不具备较为明显的纹理特征。同时,能量和角二阶矩的值较小,表明图像灰度分布不均匀,像素随机性比较大。了解图像的纹理特征参数名称contrast对比度dissimilarity非相似性homogeneity同质度energy能量correlation相关性ASM角二阶矩值84.5105.3310.4130.0430.9830.001局部二值模式(LocalBinaryPattern,LBP)通过计算固定窗口中心像素点灰度值与其周围邻域像素点灰度值的大小关系来反映图像的微观结构。LBP方法已经成为纹理特征提取和人脸特征提取的主要方法之一,并在这两个问题中得到充分的研究和应用。最原始的LBP方法定义在某中心像素及其周围大小为3×3的矩形邻域系统上。了解图像的纹理特征2.局部二值模式为保留图像中像素间的信息,以中心像素的灰度值为阈值,将邻域内所有像素的灰度值进行二值化。大于或等于阈值的像素值编码为1,小于阈值的像素值编码为0,因此该方法称为局部二值模式。以邻域内左上角的元素为起始点,顺时针或逆时针依次读取二值化后的像素值,从而构成一个8位的二进制数字。将得到的二进制数字转为十进制数字,并作为中心像素的新值。LBP的计算过程如下图所示。了解图像的纹理特征针对3×3的矩形邻域中,无法捕获大尺度的纹理结构和特征不具备旋转不变性,提出了具有不同尺寸的圆形邻域和旋转不变LBP,此处不展开进行介绍。使用原始LBP提取图像特征,得到的纹理特征图像如下图所示,其中(a)为原图,(b)为纹理特征图像。从图(b)中可以看出,图像中包含了一个戴着帽子的人,并且人物眼睛、鼻子、嘴巴均被较为清晰的表现出来。了解图像的纹理特征在医学视觉的图像中,通过对组织病理切片的显微图像进行分析,从而得到病灶的详细情况,是一项具有挑战性的任务。图像可能具有大量的层间变异、结构形态多样性导致的丰富的几何结构和复杂的纹理。4张组织切片图像如图所示,其中第1、2张图像来自同一张图像,第3、4张图像来自同一张图像。从该图中可以看出,第1、2张图像中不同的区域具有较为清晰边界,同一区域中颜色分布均匀;第3、4张图像各区域分布混乱没有规律。因此可以计算图像的纹理特征对其进行分类。提取组织切片图像的纹理特征计算组织切片图像灰度共生矩阵,并提取特征值和计算相关矩阵,得到特征值相关矩阵如表所示。从该表可以看出,4张图像的特征值都是高度相关的,均超过了99%,表明在本案例中采用灰度相关矩阵计算特征值并不能较好的对图像进行分类。但是,除了与自身的相关系数外,第1张图像与第2张图像的相关系数会高于与第3、4张图像的相关系数,第3张图像与第4张图像的相关系数会高于与第1、2张图像的相关系数。因此可以得到结论:第1张图像与第2张图像更加类似,第3张图像与第4张图像更加类似。结论与实际情况相符。提取组织切片图像的纹理特征参数名称123411.0000000.9999690.9997470.99971120.9999691.0000000.9997190.99968630.9997470.9997191.0000000.99999940.9997110.9996860.9999991.0000001提取图像的纹理特征目录提取图像的颜色特征2提取图像的轮廓特征3提取图像的形状特征4从人类认知事物的角度来看,目标的特征描述和相似性评价是目标识别中两个关键环节。轮廓作为描述目标特征的一种主要方式,在目标识别中发挥着重要作用。因此,如何有效描述轮廓特征以及合理评价特征之间相似程度对于获得目标识别的最佳结果至关重要。轮廓检测得到的是一系列相连的点组成的曲线,代表了物体的基本外形,相对于边缘,轮廓是连续的,边缘并不全部连续。轮廓是图像目标的典型特征,可以简单地解释为连接具有相同颜色或强度的所有连续点(沿边界)的曲线,是用于形状分析以及对象检测和识别的有用工具。轮廓检测是计算机视觉领域的重要研究方向,在一些实际性问题中起到了重要作用,如场景理解。了解图像的轮廓特征在OpenCV中,定义了轮廓彼此之间具有某种关系,用于指定一个轮廓如何相互连接,例如,轮廓的子轮廓、父轮廓等。这种关系的表示称为轮廓的层次结构,如下图所示。0~5的编号表达了不同的轮廓。轮廓2和2a表示最外面的矩形框的外部和内部轮廓。轮廓0、1、2不被其他任何轮廓包括,因此处于相同的层次结构级别中。轮廓2a可以视为轮廓2的子级或将轮廓2视为轮廓2a的父级。轮廓3是轮廓2的子级,位于下一个层次结构中。轮廓4、5是轮廓3a的子级,位于最后的层次结构级别。了解图像的轮廓特征通过OpenCV中的findContours函数可以检测图像的轮廓,语法格式如下。findContours函数参数名称及其说明如下表所示。了解图像的轮廓特征参数名称说明image接收array,表示用于提取轮廓的图像,常接收二值图像,无默认值mode接收int或检测模式,表示轮廓的检测模式,无默认值method接收int或近似模式,表示轮廓的近似方法,无默认值contours接收点的向量集合,表示轮廓检测的其中一个输出,每一组点集就是一个轮廓,无默认值hierarchy接收array,表示轮廓检测的另一个输出,记录轮廓之间的关系,四个维度分别代表同级后一个轮廓的序号、同级上一个轮廓的序号、第一个子轮廓序号和父轮廓序号,无默认值offset接收int,表示轮廓信息相对于原始图像对应点的偏移量,无默认值cv.findContours(image,mode,method[,contours[,hierarchy[,offset]]])通过OpenCV中的drawContours函数可以绘制出检测到的轮廓,语法格式如下。drawContours函数的参数名称及其说明如下表所示。了解图像的轮廓特征参数名称说明image接收array,表示待绘制轮廓的原图像,无默认值contours接收点的向量集合,表示轮廓的集合,无默认值contourIdx接收int,表示待绘制的轮廓的索引,无默认值color接收Scalar,表示绘制轮廓的线条的颜色,无默认值thickness接收int,表示绘制轮廓的线条的粗细,默认为1lineType接收int,表示绘制轮廓的线条的类型,默认为LINE_8hierarchy接收array,表示轮廓级别序号的列表,无默认值maxLevel接收int,表示绘制轮廓的最大级别,默认为轮廓中的最大级别offset接收int,表示轮廓信息相对于原始图像对应点的偏移量,无默认值cv2.drawContours(image,contours,contourIdx,color[,thickness[,lineType[,hierarchy[,maxLevel[,offset]]]]])基于OpenCV实现轮廓检测,得到的结果如图所示。在图中,检测得到的仅是图像的外轮廓,可以通过修改findContours函数中的mode参数检测不同层级的图像轮廓,如全部层级的轮廓、仅外层轮廓等。了解图像的轮廓特征智能分拣系统是智能制造中物料搬运系统的一个重要分支,广泛应用于各个行业的生产物流系统或物流配送中心,是智能制造的重要组成部分。实现电容零件的自动分拣的前提是对电容零件的定位,电容零件的图像如右上图所示。通过检测轮廓可以辅助零件的定位,得到的结果如右下图所示。从右下图可以看出,待定位的电容零件的轮廓被较为准确的检测到,并显示出明显的矩形,但是由于零件的原图较为模糊,导致零件与零件的轮廓融合为一个整体。因为零件的俯视图是一个较为规则的矩形,所以在后续的定位步骤中,重点便在于该矩形的4个角点的定位,可以通过对轮廓图像进行直线检测实现角点的定位,两对平行线段相互垂直的交点即为角点。提取电容零件图像的轮廓特征1提取图像的纹理特征目录提取图像的颜色特征2提取图像的轮廓特征3提取图像的形状特征4形状通常与图像中的特定目标对象有关,是人们的视觉系统对目标的最初认识,有一定的语义信息,被认为是比颜色特征和纹理特征更高一层的特征。形状特征是图像的核心特征之一,图像的形状信息不随图像颜色的变化而变化,是物体的稳定特征。形状特征可以非常直观的区分不同的物体,是用于对图像进行分类的主要特征之一。通过构建不同的大小的检测窗口或生成不同图像,使得不同大小的形状特征均可被检测到。在人脸检测、目标检测中常用的形状特征包括HOG特征、SIFT特征、Haar特征等。了解图像的形状特征HOG特征在对象识别与模式匹配中是一种常见的特征提取算法,是基于像素块进行特征直方图提取的一种算法,对于对象局部的变形与光照影响有很好的稳定性。其主要思想是在一副图像中,局部目标的表象和形状(appearanceandshape)能够被梯度或边缘的方向密度分布很好地描述。HOG特征提取的流程主要包括以下几个步骤。了解图像的形状特征1.
HOG特征伽马矫正图像梯度计算计算梯度直方图特征向量归一化(1)伽马矫正首先将彩色图像转为灰度图像,降低计算特征时所需的计算资源。转为灰度图像是可选操作,对于彩色图像,可以分别对三颜色通道进行特征计算。然后进行伽马(Gamma)矫正,主要用于增强图像,提升图像的暗部细节。伽马矫正通过非线性变换,让图像从对曝光强度的线性相应变得更接近人眼感受到的响应。了解图像的形状特征(2)图像梯度计算为了衡量图像的灰度变化率,还需要计算图像的梯度,梯度的计算分为水平和垂直两个方向。图像中像素点的水平和垂直方向的梯度,如下式所示,其中表示处的像素值。梯度幅值的计算公式与方向的计算公式分别如下式所示。了解图像的形状特征(3)计算梯度直方图首先将图像划分成若干个块(Block),每个块由4(2×2)个细胞单元(cell)组成,每个细胞单元由64(8×8)个的单位像素(Pixel)组成。图像中块和细胞单元的划分,如图所示。了解图像的形状特征在HOG特征提取中,将一个块视为一个滑动窗口,滑动步长为一个细胞单元。假设一张原始图像的大小为64×128,则从左到右滑动窗口7次即可滑到图像的最右边,从上往下滑动窗口15次即可滑到图像的最下边,因此整个图像可以分为105(7×15)个块。HOG特征提取窗口的滑动过程,如右下图所示。了解图像的形状特征通过计算得到一个细胞单元像素的梯度值和方向值如下图所示。了解图像的形状特征在计算像素的梯度直方图中,将角度范围分成9份,对应的角度为0、20、40、……、160度。需要注意的是,角度的范围介于0到180度之间,而不是0到360度,这被称为“无符号”梯度,两个完全相反的方向被认为是相同的。梯度直方图的计算过程,如右图所示。在中,角度为80度的像素的梯度值为2,所以在直方图80度对应的区间加上2。角度为10度的像素的梯度值为4,由于10度介于0度和20度之间,所以梯度值4被按比例分给0度和20度对应的区间,即各区间加2。了解图像的形状特征(4)特征向量归一化将一个块内所有细胞单元的特征向量串联即可得到该块的HOG特征。为消除光照变化和前后景对比度的变化带来的影响,对每个块进行L2归一化。归一化后的块描述符(向量)称之为HOG描述符,则64×128大小的图像共有7×15×4×9=3780个特征描述符。通过scikits-image中的hog函数可以提取HOG特征,语法格式如下。了解图像的形状特征skimage.feature.hog(image,orientations=9,pixels_per_cell=(8,8),cells_per_block=(3,3),block_norm='L2-Hys',visualize=False,transform_sqrt=False,feature_vector=True,multichannel=None,*,channel_axis=None)hog函数参数名称及其说明如下表所示。了解图像的形状特征参数名称说明image接收array,表示输入的图像,无默认值orientations接收int,表示梯度方向划分的个数,默认为9pixels_per_cell接收tuple,表示一个细胞单元的大小,默认为(8,8)cells_per_block接收tuple,表示一个块中有多少细胞单元,默认为(3,3)block_norm接收“L1”“L1-sqrt”“L2”“L2-Hys”,表示归一化的方法,默认为“L2-Hys”visualize接收bool,表示是否同时返回HOG的图像,默认为Falsetransform_sqrt接收bool,表示是否在处理之前应用幂律压缩来规范化图像,默认为Falsefeature_vector接收bool,表示是否将数据作为特征向量返回,默认为Truemultichannel接收bool,表示最后一个图像维度视为颜色通道,默认为Nonechannel_axis接收int,表示数组的哪个维度对应于通道,默认为None使用hog函数检测HOG特征,得到的结果如下图所示,其中(a)为原图,(b)为检测到的HOG特征。从图中可以看出,提取的HOG特征像一根根细小的针,特征主要分布在图像的边缘处,图像边缘处像素的变化越大,则特征的颜色越深。了解图像的形状特征尺度不变特征转换算法(Scale-invariantfeaturetransform,SIFT)由罗威(DavidLowe)在1999年发表并于2004年完善,常用于侦测和描述影像中的局部特征性,应用于物体识别、机器人地图感知与导航和影像追踪等。SIFT算法包括以下四个步骤。了解图像的形状特征2.
SIFT特征构建图像金字塔关键点检测确定关键点方向特征描述符(1)构建图像金字塔使用高斯金字塔表示尺度空间,尺度空间方法将传统的单尺度图像信息处理技术纳入尺度不断变化的动态分析框架中,更容易获取图像的本质特征。尺度空间中各尺度图像的模糊程度逐渐变大,能够模拟人在距离目标由近到远时目标在视网膜上的形成过程。高斯金字塔的建立包括:对图像做不同尺度的高斯模糊;对图像做降采样。通过对原始图像不断地降采样,得到一系列大小不一的图像,由大到小、从下到上构成了金字塔状的模型,如右图所示。了解图像的形状特征在上张图中,σ是尺度空间因子,值越小表示图像被平滑的越少。金字塔的每层含有多张高斯模糊图像,将金字塔中每层内的多张图像合称为一组(Octave),金字塔每层只有一组图像,总的组数和金字塔的层数相等。尺度归一化的高斯拉普拉斯函数的极大值和极小值够产生较为稳定的图像特征,同时高斯差分函数(DoG算子)与尺度归一化的高斯拉普拉斯函数非常近似。将高斯金字塔每层中相邻的两张图像相减,即可生成高斯差分金字塔,如右图所示。了解图像的形状特征(2)关键点检测关键点是由DoG金字塔的局部极值点组成的,关键点的初步探查通过DoG金字塔同一组内相邻两张图像之间的比较完成。为了寻找极值点,每一个像素点要和它所有的相邻点进行比较,如右图所示,中间的检测点和它同尺度的8个相邻点和上下相邻尺度对应的9×2个点共26个点比较,以确保在尺度空间和二维离散空间都检测到极值点。了解图像的形状特征在DoG金字塔中检测到的极值点是二维离散空间的极值点。离散空间极值点与连续空间极值点的差别,如右图所示,其中以竖线与x轴相连的点为离散空间的点。使用子像素插值的方法,在离散空间插值得到连续空间极值点,从而精确确定关键点的位置和尺度。在关键点检测中会剔除不稳定的边缘响应点。剔除边缘响应点主要有两个原因:一方面图像边缘上的点难以精准定位,具有定位歧义性;另一方面边缘点很容易受到噪声的干扰而变得不稳定。了解图像的形状特征(3)确定关键点方向为了使描述符具有旋转不变性,需要利用图像的局部特征为给每一个关键点分配一个基准方向。使用直方图统计邻域内像素的幅值和方向,方向直方图将0~360度的方向范围分为36个区间(柱),其中每个区间10度。直方图的峰值方向代表了关键点的主方向,一个简化的方向直方图如下图所示,图中只画了八个方向的直方图。方向直方图的峰值则代表了该特征点处邻域梯度的方向,以直方图中最大值作为该关键点的主方向。为了增强匹配的鲁棒性,保留峰值大于主方向峰值80%的方向作为该关键点的辅方向。了解图像的形状特征(4)特征描述符通过以上3个步骤,检测到的关键点即为图像的SIFT特征点。对于检测到的特征点需要进行数学层面的特征描述,即构建特征描述符,用于后续的图像匹配。构建特征描述符主要包括以下几个步骤。了解图像的形状特征确定计算描述子所需的区域。计算特征点邻域范围内各点的梯度方向和梯度的幅值。将关键点的周围区域分成16(4×4)块,分别计算每个块的梯度直方图。对梯度直方图进行归一化处理,减小光照对描述子的影响。在OpenCV中,通过SIFT_create函数创建特征检测对象,其语法格式如下。SIFT_create函数的参数说明如下表所示。了解图像的形状特征参数名称说明nfeatures接收int。表示保留最佳特性的数量。默认为0noctaveLayers接收int。表示高斯金字塔最小层级数。默认为3contrastThreshold接收double。表示对比度阈值用于过滤区域中的弱特征。默认为0.04edgeThreshold接收double。表示用于过滤类似边缘特征的阈值。默认为10sigma接收double。表示高斯输入层级。默认为1.6cv2.SIFT_create([,nfeatures[,nOctaveLayers[,contrastThreshold[,edgeThreshold[,sigma]]]]])在OpenCV中,通过detectAndCompute函数实现在图像上检测SIFT特征点,其语法格式如下。detectAndCompute函数会返回kp和des两个对象,kp表示检测到的SIFT特征点,des表示计算的描述符,detectAndCompute函数的参数说明如下表所示。了解图像的形状特征参数名称说明image接收array。表示输入的图像。无默认值mask接收array。表示输入的掩模。无默认值descriptors接收array。表示计算描述符。无默认值useProvidedKeypoints接收bool。表示使用提供的关键点。默认为falsecv2.detectAndCompute(image,mask[,descriptors[,useProvidedKeypoints]])使用SIFT_create函数和detectAndCompute函数检测SIFT特征,得到的结果如下图所示,其中(a)为原图,(b)为绘制了SIFT特征的图像。从该图可以看出,被检测到的特征点主要分布在色彩斑驳的绿色植被覆盖区域,背景的天空基本没有特征点。了解图像的形状特征(1)Haar特征Haar特征是一种用于目标检测或识别的图像特征描述子,Haar特征通常和AdaBoost分类器组合使用。Haar特征提取的实时性以及AdaBoost分类的准确率,使其成为人脸检测以及识别领域较为经典的算法。Haar特征最早由帕帕乔治奥(Papageorigiou)等人提出。在2001年维奥拉(Viola)和琼斯(Jones)在原基础上提出了多种形式的Haar特征,拓展成为Haar-like。了解图像的形状特征3.Haar特征最终由林哈特(Lienhart)等人对Haar矩形特征做了进一步的扩展,加入了旋转45度的矩形特征,形成了OpenCV现在的Haar分类器。目前常用的Harr-Like特征如下图所示,主要分为边缘特征、线特征、点特征和对角线特征。特征模板内有白色和黑色两种矩形,并定义该模板的特征值为白色矩形中像素值之和与黑色矩形中像素值之和的差值,其中白色区域的权值为正值,黑色区域的权值为负值。了解图像的形状特征权值与矩形区域的面积成反比,从而抵消两种矩形区域面积不等造成的影响,保证Haar特征值在灰度分布均匀的区域特征值趋近于
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度图书印刷与网络销售渠道合作合同2篇
- 2024年版车位独家销售代理协议版B版
- 2024年生物科技研究与发展合同
- 2024年玻璃装配项目施工协议样本版
- 2024年新鲜乳制品批发销售协议版B版
- 2025二手物品交易合同书
- 2024年标准砌墙工程劳务合作合同版B版
- 2024年版:空间技术开发与使用权转让合同
- 通讯基站建设围挡施工合同
- 知识产权与可持续发展
- 气相色谱检测器FID-培训讲解课件
- 新教材人教A版高中数学选择性必修第一册全册教学课件
- 《HSK标准教程1》-HSK1-L8课件
- 幼儿园小班绘本:《藏在哪里了》 课件
- 上册外研社六年级英语复习教案
- 替班换班登记表
- 社会保险法 课件
- 阿利的红斗篷 完整版课件PPT
- 桥梁工程挡土墙施工
- 供应商质量问题处理流程范文
- 实验室生物安全手册(完整版)资料
评论
0/150
提交评论