特征表示深度解析:颜色、纹理、形状与编码

发布于:2025-03-10 ⋅ 阅读:(14) ⋅ 点赞:(0)

第一部分:颜色与纹理特征(Part 1) 

1. 颜色特征

  1. 颜色直方图(Color Histogram)

    • 定义:统计图像中各颜色通道(R/G/B)的像素分布,形成直方图。

    • 计算步骤

      1. 将每个颜色通道的像素值分为 256 个区间(0-255)。

      2. 统计每个区间内的像素数量,生成三个通道的直方图。

      3. 将三个直方图拼接成一个 768 维的向量(256×3)。

    • 示例

      • 若红色通道的像素集中在高值区域(如 200-255),说明图像偏红色调。

      • 绿色通道的直方图平坦,说明颜色分布均匀。

    • 应用场景:图像检索(按颜色搜索相似图片)。

  2. 颜色矩(Color Moments)

 

 

2. 纹理特征

  1. Haralick 纹理特征

    • 原理:基于灰度共生矩阵(Gray-Level Co-occurrence Matrix, GLCM),统计相邻像素的灰度值对出现的频率。

    • GLCM 构建步骤

      1. 选择距离 d 和方向 a(如水平、垂直、对角线)。

      2. 统计所有满足条件的像素对 (i,j),其中 i 和 j 分别为当前像素和邻域像素的灰度值。

      3. 生成 L×L 的矩阵(L 为灰度级数)。

  1. 局部二值模式(Local Binary Pattern, LBP)

    • 原理:将局部纹理编码为二进制模式,生成纹理描述子。

    • 计算步骤

      1. 对每个像素,比较其与周围 8 邻域像素的灰度值。

      2. 若邻域像素值 ≥ 中心像素值,标记为 1;否则标记为 0。

      3. 将 8 位二进制码转换为十进制(0-255),形成 LBP 值。

      4. 统计图像中每个 LBP 值的频率,生成 256 维直方图。

    • 改进版本

      • 旋转不变 LBP:通过循环移位二进制码,取最小值作为最终编码,减少旋转影响。

      • 多分辨率 LBP:通过不同距离和邻域大小捕捉多尺度纹理。

    • 应用:人脸识别(对光照变化鲁棒)。

  2. 尺度不变特征变换(Scale-Invariant Feature Transform, SIFT)

    • 核心思想:提取图像中的关键点,并生成对尺度、旋转、光照不变的描述子。

    • 四步流程

      1. 尺度空间极值检测

        • 构建高斯金字塔(不同尺度的高斯模糊图像)。

        • 计算高斯差分(DoG)金字塔,检测局部极值点(潜在关键点)。

      2. 关键点定位

        • 剔除低对比度点:通过泰勒展开拟合极值位置,计算精确对比度。

        • 剔除边缘响应点:利用 Hessian 矩阵的特征值比值(如主曲率比),过滤边缘点。

      3. 方向分配

        • 计算关键点邻域内像素的梯度方向和幅值。

        • 构建方向直方图(36 个区间),取主方向作为关键点方向。

      4. 描述子生成

        • 将关键点邻域划分为 4×4 的子区域。

        • 对每个子区域计算 8 方向的梯度直方图,形成 128 维向量(4×4×8)。

    • 应用:图像拼接(全景图生成)、物体识别。


第二部分:形状特征与高级编码(Part 2)

1. 形状特征

  • 凸性(Convexity)

    • 凸包(Convex Hull):包含形状的最小凸集。

    • 凸缺陷(Convex Defect):凸包与原始形状的差异区域。

    • 凸性 = 原始面积凸包面积凸包面积原始面积​,值越接近 1 越凸。

  • 长宽比(Aspect Ratio)

    • 边界框的长宽比,用于区分细长物体(如铅笔)与紧凑物体(如球)。

2. 形状上下文(Shape Context)

  • 原理:通过采样边界点,构建局部极坐标直方图描述形状。

  • 步骤

    1. 采样边界点:使用 Canny 边缘检测提取形状轮廓点。

    2. 构建形状上下文

      • 对每个采样点,以该点为中心,将周围区域分为对数极坐标区间(如 5 距离区间 × 12 角度区间)。

      • 统计其他点落在各区间内的数量,形成 60 维直方图。

    3. 形状匹配

      • 计算两个形状的匹配成本矩阵 C(pi,qj)C(pi​,qj​)。

      • 使用匈牙利算法寻找最优一对一匹配,最小化总成本。

  • 应用:手写数字识别、形状检索。

3.方向梯度直方图(Histogram of Oriented Gradients, HOG)

 

           2.单元格划分

                     将图像划分为 8×8 像素的单元格(Cell)。

                     对每个单元格,统计 9 个方向(0°-180°,每 20°一区间)的梯度幅值直方图。

           3.块归一化

                    将相邻的 2×2 单元格组合为块(Block)。

                    对块内所有单元格直方图进行 L2 归一化,增强光照鲁棒性。

           4.特征向量生成: 

                    将块特征拼接为最终向量。例如,64×128 图像生成 7×15×36 = 3,780 维特征。

  • 应用:行人检测(HOG + SVM)、车辆识别。

2. 特征编码与词袋模型(Bag-of-Words, BoW)

  1. 词袋模型(BoW)

    • 核心思想:将局部特征(如 SIFT)聚类为“视觉单词”,生成全局直方图。

    • 步骤

      1. 构建视觉词典

        • 提取所有训练图像的 SIFT 特征(假设每图提取 1,000 个 128 维描述子)。

        • 使用 k-means 聚类将所有描述子分为 kk 类(如 k=1,000),每个聚类中心即为一个视觉单词。

      2. 特征编码

        • 对每张图像,将其 SIFT 描述子分配到最近的视觉单词。

        • 统计每个视觉单词的出现频率,生成 kk 维直方图。

    • 优点:将变长局部特征转换为定长全局特征,适合分类任务。

    • 应用:图像分类(如 Caltech-101 数据集)。

  2. k-means 聚类

    • 算法流程

      1. 初始化:随机选择 k 个初始聚类中心。

      2. 分配数据点:将每个数据点分配到最近的聚类中心。

      3. 更新中心:计算每个簇的均值作为新中心。

      4. 迭代:重复步骤 2-3,直至中心不再变化或达到最大迭代次数。

    • 关键问题

      • 初始中心敏感:可能陷入局部最优,需多次随机初始化。

      • 计算复杂度:O(n⋅k⋅d⋅t),其中 n 为数据量,d 为维度,t 为迭代次数。

 


第三部分:例题讲解

题目:
以下关于特征描述子的说法中,哪一个是错误的?

A. Haralick 特征是从灰度共生矩阵(GLCM)中提取的。
B. SIFT 通过计算多个尺度上的梯度直方图来实现旋转不变性。
C. LBP 描述局部图像纹理,并且可以具有多分辨率和旋转不变性。
D. 颜色矩比颜色直方图的表示能力更强。

解析:
该题考察的是不同特征描述子的基本概念,我们逐项分析:

  • A 选项:正确。Haralick 特征的计算基于 灰度共生矩阵(GLCM),用于描述纹理特征。
  • B 选项:正确。SIFT 通过 计算不同尺度上的梯度直方图,确保旋转、尺度不变性。
  • C 选项:正确。局部二值模式(LBP)可以扩展为 旋转不变(Rotation Invariant, RI-LBP)多分辨率 LBP(Multi-resolution LBP),所以该选项无误。
  • D 选项:错误。颜色矩的特征向量仅由 9 个元素(RGB 的均值、标准差、偏斜度) 组成,而颜色直方图保留了 更详细的颜色信息,因此颜色直方图的表示能力更强。

答案:D

题目:
给定右侧的图像,其中的对象已被分割,并且需要进行分类。红色和绿色表示两种不同的类别。
我们可以通过计算一个定量的形状度量,并对其进行阈值处理来进行分类。假设计算 圆度(Circularity)偏心率(Eccentricity),哪一个特征可以用于分类?

A. 仅圆度
B. 仅偏心率
C. 既可以使用圆度,也可以使用偏心率
D. 既不能使用圆度,也不能使用偏心率