目录
- 特征表示
-
- [图像特征概念(image feature)](#图像特征概念(image feature))
- 图像特征种类
-
- 颜色特征
-
- [颜色直方图(Color Histogram)](#颜色直方图(Color Histogram))
- [颜色矩(Colour moments)](#颜色矩(Colour moments))
- [纹理特征(texture features)](#纹理特征(texture features))
-
- Haralick特征
- [局部二值模式(Local Binary Patterns, LBP)](#局部二值模式(Local Binary Patterns, LBP))
- [尺度不变特征变换SIFT(Scale-invariant feature transform)](#尺度不变特征变换SIFT(Scale-invariant feature transform))
- 空间变换的类型
特征表示
图像特征概念(image feature)
图像特征是矢量(vector) ,它们是图像的紧凑表示(compact representation) 。它们代表图像中显示的重要信息
图像特征示例:斑点(Blobs)、边缘(Edges)、角点(Corner)、脊线(Ridges)、圆(Circles)、椭圆(Ellipses)、线条(Lines)
我们需要将图像表示为特征向量(represent image as feature vectors),以便**更高效(efficient)、更鲁棒(robust)**地进行进一步处理
进一步处理的示例:
目标探测(Object detection)
图像分割(Image segmentation)
图像分类(Image classification)
图像检索(Image retrieval)
图像拼接(Image stitching)
目标跟踪(Object tracking)
为什么不能直接使用像素值(use pixel values directly)作为图像特征
- 像素值会随光照强度、颜色和角度变化(angle)
- 像素值也会随着摄像机的方向(orientation)变化
- 像素值高度冗余(redundant)
图像特征应该具备的属性
- 可再现性 (鲁棒性)(Reproducibility(robustness))
尽管存在光照(illumination)和视角(viewpoint)的变化,特征应该能够在不同图像中的相同位置被检测到。 - 显著性 (描述性)(Saliency(descriptiveness))
不同图像中相似的显著(salient)点应该具有相似的特征 - 紧凑性 (效率)(Compactness(efficiency))
更少、更小的特征
图像特征种类
颜色特征、纹理特征、形状特征
颜色特征
- 是计算最简单的一种特征
- 在图像缩放(scaling)、平移(translation)和旋转时不变(invariant)
例子:基于颜色的图像检索
颜色直方图(Color Histogram)
表示图像中像素颜色的全局分布(global distribution),它展示了每种颜色在图像中的出现频率。
- 为每个颜色通道(R,G,B)分别构建直方图。
- 将所有颜色通道的直方图(向量)连接(Concatenate)起来,形成最终的特征向量(as the final feature vector)
颜色矩(Colour moments)
表示颜色分布(colour distributions)的另一种方式,常用的有一阶矩、二阶矩和三阶矩,分别表示颜色分布的均值(mean反映总体趋势 )、标准差(standard deviation反应分散程度 )和偏度(skewness描述颜色分布的对称性 )。
基于颜色矩(based colour moments)的颜色分布表示
- 使用颜色矩可以得到一个仅包含9个元素的特征向量(对于RGB图像,每个颜色通道3个矩值,共9个元素)。
- 颜色矩的表示能力低于颜色直方图
纹理特征(texture features)
- 描述物体的视觉特征和外观
- 用于识别视觉模式的强大区分特征
- 超越颜色或亮度(intensity)的结构均匀性特性(structural homogeneity)
- 特别用于纹理分类
Haralick特征
图像模式的统计描述数组 :Haralick特征是图像中统计描述纹理模式的一组特征,它们能够通过计算统计量来描述图像的纹理特性。
捕捉邻近像素之间的空间关系:Haralick特征通过分析邻近像素之间的灰度共生矩阵(GLCM),来捕捉图像中像素之间的空间关系,从而描述纹理的局部模式。
-
步骤1:构建灰度共生矩阵(GLCM) :首先从图像中构建一个灰度共生矩阵,表示像素之间的灰度值联合分布情况。
-
步骤2:从GLCM中计算Haralick特征描述符 :然后从GLCM中提取各种统计特征(例如对比度、能量、同质性等),这些特征被称为Haralick特征。
局部二值模式(Local Binary Patterns, LBP)
概念
描述图像局部纹理的空间结构
- 将图像划分为 N × N N×N N×N像素的网格块
- 比较每个像素与其 8 个邻域像素的值
- 如果中心像素的值大于相邻像素的值,写 1;否则写 0
- 这会给每个像素生成一个 8 位的二进制模式 (可以表示为 0 到 255 之间的一个值)
比较2与周围每个值的大小,生成8位的二进制
- 计算 网格单元中每个 8 位二进制数出现的次数
- 这会生成一个 256 柱的直方图(也称为 LBP 特征向量)
- 将所有网格单元的直方图组合起来,得到整个图像的 LBP 特征描述符
LBP 可以是多分辨率和旋转不变的
- 多分辨率 :通过改变中心像素和邻域像素之间的距离以及邻域像素的数量来实现。
P (Points) :表示在计算 LBP 时,围绕中心像素选择的邻域像素的数量。它定义了在圆形邻域中使用多少个像素点进行计算。
R (Radius) :表示圆形邻域的半径,即中心像素和邻域像素之间的距离。它定义了邻域的尺度,即邻域像素与中心像素之间的距离。 - 旋转不变性:通过执行位移(bitwise shift)操作来构建 8 位二进制数,获取(derive)最小的数字以实现旋转不变性。
最小的模式是 00001111,其对应的值是 15,因此,模式 11110000 的旋转不变表示是 15
尺度不变特征变换SIFT(Scale-invariant feature transform)
- SIFT 特征描述局部区域(in a localised region)中围绕关键点的纹理。
- SIFT 描述子对各种变换(various transformations)**缩放、旋转、仿射变形(affine distortion)、光照变化(illumination changes)**保持不变。
SIFT算法概述
1. 尺度空间极值检测 (Scale-Space Extrema Detection):在不同尺度的 DoG(差分高斯)图像中查找极大值和极小值。
- 在图像的尺度空间(scale space)中检测极大值和极小值
- 关键点定位 (Keypoint Localization) :丢弃低对比度的关键点,并消除边缘响应
改进并减少找到的关键点集- 在尺度空间中使用 3D 二次拟合(quadratic fitting)来获得亚像素级的极值点
- 使用 Hessian 分析拒绝低对比度(reject low-constrast)点和边缘点。
- 方向分配 (Orientation Assignment) :通过分配方向,实现旋转不变性。
使用局部梯度向量(local gradient vectors)估计关键点的方向- 生成局部梯度向量的方向直方图
- 从直方图的主峰中找到主导方向
- 如果第二高的峰值超过80%,则为其创建额外的关键点
- 关键点描述子 (Keypoint Descriptor) :计算梯度方向直方图
表示每个关键点的128维特征向量- 4x4的梯度方向直方图阵列,其每个直方图的权重由梯度幅度决定
- 每个梯度方向直方图包含8个方向(bins)
- 总共的维度数为8个方向 × 4 × 4 的阵列 = 128维
SIFT应用
匹配两个部分重叠的图像
-
在128维特征空间中找到SIFT关键点的最佳匹配
最近邻距离比率(NNDR)比较最近邻和次最近邻的描述符距离
N N D R = d 1 d 2 = ∥ D A − D B ∥ ∥ D A − D C ∥ \mathrm{NNDR}=\frac{d_1}{d_2}=\frac{\left\|D_A-D_B\right\|}{\left\|D_A-D_C\right\|} NNDR=d2d1=∥DA−DC∥∥DA−DB∥
如果比率NNDR > 0.8,则认为这个匹配不可靠,应该舍弃。比率越大,说明第一个匹配的准确性不高,容易产生误匹配。
-
找到SIFT关键点和特征对应关系
-
找到正确的空间变换(spatial transformation)
空间变换的类型
- 刚性变换
- 平移(Translation)
- 旋转(Rotation)
- 非刚性变换
- 缩放(Scaling)
- 仿射变换(Affine)
- 透视变换(Perspective)
空间坐标变换
缩放(scale)、旋转(rotate)、仿射变换(Affine):
剪切(shear)、平移(translate)、透视变换(perspective)
拟合和对齐
- 使用 最小二乘法(Least Squares, LS) 进行拟合和对齐(Fitting and alignment)对应的关键点,以找到图像变换的最佳参数
找到一个变换 T 的参数向量 p,最小化所有关键点配对之间的平方误差
E = ∑ i ∥ T ( x i ; p ) − x i ′ ∥ 2 E=\sum_i\left\|T\left(\mathbf{x}_i ; \mathbf{p}\right)-\mathbf{x}_i^{\prime}\right\|^2 E=i∑∥T(xi;p)−xi′∥2 - 仿射变换的例子 x i = ( x i , y i ) into x i ′ = ( x i ′ , y i ′ ) \mathbf{x}_i=\left(x_i, y_i\right) \text { into } \mathbf{x}_i^{\prime}=\left(x_i^{\prime}, y_i^{\prime}\right) xi=(xi,yi) into xi′=(xi′,yi′)
RANSAC(随机采样一致性) - 最小二乘法受到离群点影响(hampered by outliers)
- 需要某种离群点检测(outlier detection)和剔除(rejection)的方法。
- 最好使用数据的一个子集并检查内点(inlier)的匹配度(agreement)
- RANSAC以迭代(iterative)的方式进行,以找到最佳解(optimum)
RANSAC例子线性拟合模型 - 随机采样 :随机采样出拟合模型(fit the model)所需的最少点数。比如,拟合直线时,需要采样两个点。
- 模型拟合 :使用采样点来解出模型参数(model parameter)(例如直线的斜率和截距)。
- 评分内点 :通过计算与模型(即直线)在设定阈值距离内的点(称为内点)的比例 来对模型进行评分。
图中的直线表示拟合的模型(如直线),两侧的虚线表示允许的误差范围(即阈值 δ)。被蓝圈圈住的点是内点,它们位于模型允许的误差范围内,因此被视为符合模型的点。
- 迭代过程 :重复步骤1-3,并记录具有最多内点的模型(最佳拟合) ,直到找到具有高置信度的最佳模型为止。
拟合与对齐总结
根据匹配点 A 和 B 估计变换
平移示例:
[ x i B y i B ] = [ x i A y i A ] + [ t x t y ] \left[\begin{array}{l} x_i^B \\ y_i^B \end{array}\right]=\left[\begin{array}{l} x_i^A \\ y_i^A \end{array}\right]+\left[\begin{array}{l} t_x \\ t_y \end{array}\right] [xiByiB]=[xiAyiA]+[txty]
通过这些匹配点,可以计算出从左图到右图的平移向量 t x t_x tx和 t y t_y ty,从而实现图像对齐。
- 写出方程组: A p = b A p=b Ap=b
- 求解参数: p = ( A T A ) − 1 A T b p=\left(A^T A\right)^{-1} A^T b p=(ATA)−1ATb