-
Explain the need for feature representation
Robustness, descriptiveness, efficiency
-
Discuss major categories of image features
Colour features, texture features, shape features
-
Understand prominent feature descriptors
Haralick features, local binary patterns, scale-invariant feature transform
-
Show examples of use in computer vision applications
Image matching and stitching
图像特征 Image Feature
图像特征是图像的紧凑表示形式,通常是向量,代表图像中的重要信息。图像特征的例子包括:
- 斑点(Blobs)
- 边缘(Edges)
- 角点(Corners)
- 棱线(Ridges)
- 圆(Circles)
- 椭圆(Ellipses)
- 线(Lines)
右侧的图片展示了一栋建筑物,并标注出了多个角点,这些角点的位置可以用坐标向量来表示。例如,一个向量 v 可以表示为:
v={(x1,y1),(x2,y2),(x3,y3),…,(xn,yn)}
这些坐标表示了图像中特征点的位置。
我们需要将图像表示为特征向量,以便进行更高效和更稳健的后续处理。进一步处理的例子包括:
像素特征的局限性 shortage of pixel values as features
直接使用像素值作为特征有以下几个问题:
- 像素值会随着光强、颜色和角度的变化而变化。
- 像素值还会随着相机的方向变化。
- 像素值高度冗余。
举个例子,一张1000x1000像素的图像有1,000,000个像素值,如果是彩色图像,有3个颜色通道,那么总共需要处理3,000,000个像素值。这么大量的像素值不仅会导致计算复杂度高,而且其中很多信息是重复的或者不重要的。
通过提取图像特征,我们可以将图像表示为少量的重要特征,比如车窗、排气管和车轮,从而更高效地进行图像处理和分类。例如,卡车的图像可以简化为少量的特征表示,便于模型识别和处理。
特征的理想属性 Desirable properties of features
-
重现性(鲁棒性 Robustness):
- 在不同图像中,即使光照和视角发生变化,特征也应能在相同的位置被检测到。
-
显著性(描述性 Descriptiveness):
-
紧凑性(效率 Efficiency):
这些属性确保特征能够在各种情况下可靠地被检测到,并且能够有效地描述图像中的重要信息,同时保持计算效率。
颜色特征 Colour Features
-
颜色是最简单的特征:
- 计算颜色特征最简单,因为它只需要分析图像的颜色值。
-
颜色特征对图像缩放、平移和旋转具有不变性:
- 无论图像如何缩放、平移或旋转,颜色特征都能保持一致。
-
示例:基于颜色的图像检索:
通过使用颜色特征,可以快速高效地进行图像检索,因为颜色特征简单且对图像的几何变换具有鲁棒性。
颜色直方图 Colour Histogram
-
颜色直方图:
-
步骤1:
- 为每个颜色通道(红色、绿色、蓝色)构建一个直方图。
- 直方图显示了每个颜色通道中不同颜色值的频率分布。
-
步骤2:
- 将所有通道的直方图(向量)连接起来,作为最终的特征向量。
例如,图像中红色通道的直方图、绿色通道的直方图和蓝色通道的直方图分别展示了对应颜色值的分布情况。然后,将这些直方图的数据连接起来,形成一个完整的特征向量 v,表示图像的颜色特征。
颜色矩 Colour moments
这张图解释了颜色矩公式中的符号含义:
- fij 表示第 j 个像素的第 i 个颜色分量的值。
- N 表示图像中的像素总数。
这些定义用于计算图像的颜色矩,通过计算颜色分量的均值、标准差和偏度来表示图像的颜色分布特征。
-
一阶矩(First-order moment):均值(Mean)
μi=N1j=0∑N−1fij
表示图像中第 i 个颜色分量的平均值。
-
二阶矩(Second-order moment):标准差(Standard Deviation)
σi=N1j=0∑N−1(fij−μi)2
表示颜色分量的标准差,反映颜色值的分散程度。
-
三阶矩(Third-order moment):偏度(Skewness)
si=3N1j=0∑N−1(fij−μi)3
表示颜色分量的偏度,反映颜色值的分布形状。
通过颜色矩表示颜色分布,可以得到一个只有9个元素的特征向量(对于RGB图像,每个通道3个元素)。这种方法的表示能力比颜色直方图低,但计算和存储更加高效。
示例
- 左图使用仅基于颜色直方图的信息进行图像检索。
- 右图使用颜色、纹理和形状信息进行图像检索。
可以看到,结合颜色、纹理和形状信息的检索结果比仅使用颜色直方图的信息更加准确和丰富。这说明在图像检索中,综合多种特征能够提升检索效果和精度。
纹理特征 Texture Features
-
视觉特征和物体外观:
-
强大的区分特征:
-
结构同质性:
-
用于纹理分类:
以下是几个纹理数据集的示例图像,包括CUReT、UIUC、KTHTIPS2b和DTD数据集。这些数据集中的纹理图像用于训练和测试纹理分类算法。
Haralick纹理特征 Haralick Texture Features
-
统计描述符阵列:
- Haralick特征是一组用于描述图像模式的统计描述符。
-
捕捉像素间的空间关系:
- Haralick特征能够捕捉相邻像素之间的空间关系。
-
步骤1:
- 构建灰度共生矩阵(Gray-Level Co-Occurrence Matrix, GLCM)。
-
步骤2:
Haralick特征通过分析图像中的纹理模式和空间关系,提供了一种强大的纹理特征描述方法,广泛用于图像分类和模式识别任务。
步骤1:构建灰度共生矩阵GLCMs
这张幻灯片详细说明了Haralick纹理特征的第一步:构建灰度共生矩阵(GLCMs)。
- 步骤1:构建GLCMs
-
给定距离 d 和方位角 α。
-
计算从灰度级 i1 到 i2 的共生计数 p(d,α)(i1,i2)。
-
构建矩阵 P(d,α),其元素 (i1,i2) 为 p(d,α)(i1,i2)。
-
如果图像有 L 个不同的灰度级,矩阵的大小为L×L。
-
示例图像为4个不同灰度级( L=4)。
P(1,0∘)表示距离为1、方位角为0度的共生矩阵。
P(1,90∘) 表示距离为1、方位角为90度的共生矩阵。
不同方位角(0度、45度、90度、135度)下的邻近像素关系。这些共生矩阵捕捉了图像中像素之间的空间关系,是后续计算Haralick特征的基础。
额外的优化方法
-
提高计算效率:
- 可以通过分箱(类似于直方图分箱)来减少L 的值。
- 例如:对于常数因子 n,可以将 L 设置为n256。
-
构建不同的共生矩阵:
- 通过使用不同的距离 d 和方位角α 的组合,可以构建不同的共生矩阵。
-
单独的共生矩阵不足以直接作为纹理描述符:
- 共生矩阵本身并不能提供可以轻松用作纹理描述符的纹理测量。
-
进一步提取特征值:
- 需要从共生矩阵中进一步提取信息,作为一组特征值,例如Haralick描述符。
这些步骤和优化方法旨在提高GLCMs的计算效率,并确保从中提取的特征值能够准确地描述图像纹理。
步骤2:从GLCMs中计算Haralick描述符
对于给定的距离 ( d ) 和方位角 ( \alpha ),每个GLCM计算一组Haralick描述符。
一些常见的Haralick特征描述符及其计算公式,包括:
-
角二阶矩(Angular Second Moment, ASM)
f1=i∑j∑[p(i,j)]2
-
对比度(Contrast)
f2=n=0∑Ng−1n2⎩⎨⎧i=1∑Ngj=1∑Ngp(i,j)⋅∣i−j∣=n⎭⎬⎫
-
相关性(Correlation)
f3=i∑j∑σiσj(i−μi)(j−μj)p(i,j)
-
方差和(Sum of Squares: Variance)
f4=i∑j∑(i−μ)2p(i,j)
-
逆差矩(Inverse Difference Moment, IDM)
f5=i∑j∑1+(i−j)2p(i,j)
-
总平均(Sum Average)
f6=i=2∑2Ngipx+y(i)
-
总方差(Sum Variance)
f7=i=2∑2Ng(i−f6)2px+y(i)
-
总熵(Sum Entropy)
f8=−i=2∑2Ngpx+y(i)logpx+y(i)
-
熵(Entropy)
f9=−i∑j∑p(i,j)logp(i,j)
-
差方差(Difference Variance)
f10=variance of px−y(k)
-
差熵(Difference Entropy)
f11=−k=0∑Ng−1px−y(k)logpx−y(k)
-
信息量测度(Information Measure of Correlation 1)
f12=max{HX,HY}HXY−HXY1
-
信息量测度(Information Measure of Correlation 2)
f13=1−exp[−2.0(HXY2−HXY)]
-
最大相关系数(Maximal Correlation Coefficient)
f14=second largest eigenvalue of Q
这些特征可以捕捉图像纹理的不同方面,提供用于图像分析和分类的丰富信息。每个GLCM可以计算出这些描述符,用于描述图像的纹理特征。
应用举例
由于其简单性和可解释性,Haralick特征常常被用于医学影像研究。
示例应用:
图片展示了两个患者的T2W和DWI MRI图像,标注了感兴趣的区域(ROI)。这些图像区域用于提取特征,帮助分类和诊断。
局部二值模式 Local Binary Patterns, LBP
用于描述图像局部纹理的空间结构。
步骤:
- 将图像划分为 N×N 像素的单元格(例如N=16 或 N=32)。
- 在给定单元格中,将每个像素与其8个邻居像素进行比较。
- 如果中心像素值大于邻居像素值,则写入0,否则写入1。
- 这为每个像素生成一个8位二进制模式,表示一个范围在0到255之间的值。
示例:
示例图像显示了一个3x3的区域,通过比较,生成的二进制模式为11110000,转换为十进制值为240。
局部二值模式是一种有效的纹理描述方法,广泛应用于图像分类和纹理分析。
构建直方图
步骤:
-
计算每个8位二进制数在单元格中出现的次数:
- 对每个像素生成的8位二进制模式,统计其在单元格中出现的次数。
-
生成256-bin直方图:
- 由于每个8位二进制数可以表示0到255之间的值,所以生成一个包含256个bin的直方图,也称为LBP特征向量。
-
合并所有单元格的直方图:
- 将图像中所有单元格的直方图合并,得到图像级的LBP特征描述符。
示例:
- 示例图像中某个3x3区域(绿色阴影部分)的中心像素值为2。
- 生成的二进制模式为11110000,对应的十进制值为240。
- 对每个像素都执行类似的操作,得到一组二进制模式及其对应的十进制值。
- 最终,这些十进制值被用来构建直方图,描述图像的整体纹理特征。
通过这种方法,可以有效地描述图像的局部纹理信息,并将其用于图像分类和纹理分析。
多分辨率与旋转不变性 multiresolution and rotation-invariant
局部二值模式(Local Binary Patterns, LBP)的多分辨率和旋转不变性:
多分辨率:
- 多分辨率的LBP通过改变中心像素和邻居像素之间的距离,以及改变邻居像素的数量来实现。
图示:
- 左起第一个图示表示 P=4 和 R=1.0,其中P表示邻居像素的数量,R表示中心像素与邻居像素之间的距离。
- 第二个图示表示 P=8 和 R=1.0。
- 第三个图示表示 P=12 和 R=1.5。
- 第四个图示表示 P=16 和 R=2.0。
- 第五个图示表示 P=24 和 R=3.0。
通过调整这些参数,可以在不同尺度上捕捉图像的纹理特征,从而增强特征的鲁棒性和描述能力。同时,LBP的旋转不变性确保了即使图像旋转,提取的特征也能保持一致,从而提高算法在实际应用中的稳定性。
如何实现旋转不变性:
旋转不变性:
步骤:
- 对每个生成的8位二进制模式进行位移,得到所有可能的二进制模式。
- 找出这些二进制模式中的最小值,作为旋转不变的LBP值。
示例:
这样,通过选择最小的二进制模式,可以实现LBP的旋转不变性,确保即使图像旋转,提取的特征值也能保持一致。
注意:
- 并非所有模式都有8种位移变体,例如11001100只有4种变体。
如何通过旋转不变性来减少特征维度:
旋转不变性:
- 通过位移操作构造8位二进制数,得到最小的数值,以实现旋转不变性。
效果:
图示:
- 幻灯片中的图示展示了如何通过旋转不变性减少LBP特征维度。每个二进制模式通过位移生成最小数值,从而减少特征的种类。
通过这种方法,不仅保持了LBP特征的多分辨率特性,还提高了其计算效率和存储效率,同时增强了特征的鲁棒性和描述能力。
示例
SIFT特征:
- SIFT特征描述了关键点周围局部区域的纹理。
- SIFT描述符对各种变换具有不变性。
不变性:
- SIFT描述符在以下情况下保持不变:
- 缩放(scaling)
- 旋转(rotation)
- 仿射变形(affine distortion)
- 照明变化(illumination changes)
图示:
- 幻灯片中的图片展示了不同情况下的埃菲尔铁塔,包括不同的视角、缩放、旋转和照明条件。
- 这些图像中的SIFT特征能够识别这些不同条件下的同一对象。
应用:
- 识别相同对象需要对缩放、旋转、仿射变形和照明变化等具有不变性,这使得SIFT在图像匹配和计算机视觉应用中非常强大。
算法概述
-
尺度空间极值检测(Scale-Space Extrema Detection):
- 在不同尺度的差分高斯(DoG)图像中寻找极大值和极小值。
-
关键点定位(Keypoint Localization):
-
方向分配(Orientation Assignment):
-
关键点描述(Keypoint Descriptor):
尺度空间极值检测(Scale-Space Extrema Detection)
-
高斯模糊:
- 图像 I(x,y) 与不同尺度的高斯滤波器 G(x,y,σ) 进行卷积,得到尺度空间图像 L(x,y,σ):
L(x,y,σ)=I(x,y)∗G(x,y,σ)
-
差分高斯(DoG)图像:
- 通过相邻尺度空间图像之差,得到差分高斯图像 D(x,y,σ):
D(x,y,σ)=L(x,y,kσ)−L(x,y,σ)
- 其中 k 是相邻尺度之间的固定因子。
-
寻找极值:
- 在不同尺度的DoG图像中寻找极大值和极小值,作为关键点候选。
关键点定位(Keypoint Localization)
-
使用3D二次曲面拟合:
- 在尺度空间中使用三维二次曲面拟合来获得子像素级的最佳值。
-
使用Hessian分析拒绝低对比度和边缘点:
- 左图显示了从尺度空间极值检测中初步找到的关键点。
- 中图显示了拒绝低对比度点后的关键点。
- 右图显示了拒绝边缘点后的最终关键点。
方向分配(Orientation Assignment)
步骤:
-
创建局部梯度向量的方向直方图:
- 在关键点周围的局部区域计算梯度方向,并将其放入方向直方图中。
-
找到直方图的主峰值:
-
为第二高峰值创建额外的关键点(如果其值大于80%):
- 如果直方图中第二高的峰值超过主峰值的80%,则为该方向创建额外的关键点。
关键点描述(Keypoint Descriptor)
关键点描述符:
步骤:
-
创建4x4的梯度直方图数组:
- 在关键点周围的局部区域,将其划分为4x4的网格。
- 每个网格计算一个梯度方向直方图,并按梯度幅度加权。
-
每个梯度方向直方图包含8个bin:
- 每个网格的梯度方向直方图有8个bin,用于捕捉不同方向的梯度信息。
-
总共4x4个网格,每个网格8个bin,总计128个维度:
- 这形成一个128维的特征向量,用于描述关键点的局部特征。
图示:
- 左图显示了关键点周围区域的4x4网格划分。
- 右图显示了每个网格内的梯度方向直方图。
这种方法能够有效地捕捉关键点周围的局部特征,并在后续的图像匹配和识别中发挥重要作用。
描述符匹配 Descriptor matching
描述符匹配:
NNDR公式:
NNDR=d2d1=∥DA−DC∥∥DA−DB∥
- d1 是到第一个最近邻的距离。
- d2 是到第二个最近邻的距离。
- DA、DB 和 DC 分别表示描述符向量。
步骤:
- 计算关键点描述符在128维特征空间中的最近邻距离 d1 和次最近邻距离 d2。
- 计算NNDR值。
- 拒绝NNDR大于0.8的匹配。
图示:
- 右侧图示展示了描述符在特征空间中的位置关系,说明了如何计算 d1 和 d2。
通过这种方法,可以有效地过滤掉错误匹配,提高图像匹配的准确性和鲁棒性。
示例
这张幻灯片介绍了几种空间坐标变换方式:
-
缩放(Scale):
[x′y′]=[sx00sy][xy]
-
剪切(Shear):
[x′y′]=[1ryrx1][xy]
-
旋转(Rotate):
[x′y′]=[cosαsinα−sinαcosα][xy]
-
平移(Translate):
[x′y′]=[1001txty]⎣⎡xy1⎦⎤
-
仿射(Affine):
⎣⎡x′y′1⎦⎤=⎣⎡ad0be0cf1⎦⎤⎣⎡xy1⎦⎤
-
透视(Perspective):
⎣⎡x′y′w′⎦⎤=⎣⎡adgbehcfi⎦⎤⎣⎡xyw⎦⎤
拟合与对齐 Fitting and Alignment
最小二乘拟合:
- 找到变换 ( T ) 的参数 ( \mathbf{p} ),使得平方误差 ( E ) 最小化:
E=i∑∥T(xi;p)−xi′∥2
示例:仿射变换:
- 对于坐标 ((x_i, y_i)) 到 ((x'_i, y'_i)) 的仿射变换:
⎣⎡x′y′1⎦⎤=⎣⎡ad0be0cf1⎦⎤⎣⎡xy1⎦⎤
- 转换为线性方程组:
Ap=b
其中:
A=⎣⎡x10⋮xn0y10⋮yn010⋮100x1⋮0xn0y1⋮0yn01⋮01⎦⎤,p=⎣⎡abcdef⎦⎤,b=⎣⎡x1′y1′⋮xn′yn′⎦⎤
求解参数:
- 通过最小二乘解法求解参数 (\mathbf{p}):
p=(ATA)−1ATb
通过这些步骤,可以找到使变换误差最小的参数,用于图像中的关键点对齐和匹配。
RANSAC拟合:
- 最小二乘拟合容易受到离群点的影响
- 需要某种离群点检测和排除的方法
- 更好的方法是使用数据的一个子集并检查内点的一致性
- RANSAC以迭代的方式执行此操作以找到最优解
步骤:
- 随机选择一个数据子集。
- 使用这个子集估计模型参数。
- 计算所有数据点与估计模型的拟合程度,确定内点(与模型拟合良好的点)。
- 如果内点的数量超过某个阈值,重新估计模型参数。
- 重复上述步骤,直到达到迭代次数或内点数满足条件。
通过这种方法,RANSAC能够有效地排除离群点,找到稳健的模型参数。
考试例题
Which one of the following statements about feature descriptors is incorrect?
A. Haralick features are derived from gray-level co-occurrence matrices.
B. SIFT achieves rotation invariance by computing gradient histograms at multiple scales.
C. LBP describes local image texture and can be multiresolution and rotation-invariant.
D. Colour moments have lower representation capability than the colour histogram.
相关信息
不正确的陈述是:
B. SIFT通过在多个尺度上计算梯度直方图来实现旋转不变性。
解释:
-
陈述A: Haralick特征确实是从灰度共现矩阵(GLCMs)中得出的,所以这个陈述是正确的。
-
陈述B: 这个陈述是不正确的,因为SIFT实现旋转不变性不是通过在多个尺度上计算梯度直方图,而是通过基于关键点周围的局部图像梯度方向和幅度为每个关键点分配一个方向。SIFT的尺度不变性是通过使用高斯差分(DoG)在多个尺度上检测关键点来实现的。
-
陈述C: 局部二值模式(LBP)确实描述了局部图像纹理,并且可以实现多分辨率和旋转不变性,所以这个陈述是正确的。
-
陈述D: 颜色矩通常具有比颜色直方图更低的表示能力,颜色直方图能够捕捉图像中色彩分布的更多详细信息。因此,这个陈述也是正确的。