目录

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

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

https://i-blog.csdnimg.cn/direct/044a598019934e51926969e5027814bb.png

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

1. 颜色特征

  1. 颜色直方图(Color Histogram)

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

    • 计算步骤

      1. 将每个颜色通道的像素值分为 256 个区间(0-255)。
      2. 统计每个区间内的像素数量,生成三个通道的直方图。
      3. 将三个直方图拼接成一个 768 维的向量(256×3)。
    • 示例

      • 若红色通道的像素集中在高值区域(如 200-255),说明图像偏红色调。
      • 绿色通道的直方图平坦,说明颜色分布均匀。
    • 应用场景 :图像检索(按颜色搜索相似图片)。

  2. 颜色矩(Color Moments)

https://i-blog.csdnimg.cn/direct/9bbd9a93bc804a8c804f5b417b3a0acb.png

2. 纹理特征

  1. Haralick 纹理特征

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

    • GLCM 构建步骤

      1. 选择距离 d 和方向 a(如水平、垂直、对角线)。
      2. 统计所有满足条件的像素对 (i,j),其中 i 和 j 分别为当前像素和邻域像素的灰度值。
      3. 生成 L×L 的矩阵(L 为灰度级数)。

https://i-blog.csdnimg.cn/direct/1ec99e7170254612827bbfaa129f3fc4.png

  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. 形状特征

https://i-blog.csdnimg.cn/direct/10812d2e60a048bc94a0ad84f8cb79d3.png

  • 凸性(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)

https://i-blog.csdnimg.cn/direct/4a3b5ae165ed4f53a554e8b6f8919cf8.png

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 为迭代次数。

https://i-blog.csdnimg.cn/direct/edf6daf6a0744287a6204d9b2ff3d065.png


第三部分:例题讲解

https://i-blog.csdnimg.cn/direct/94cbf15079e54862bb6810f339d02dc0.png

题目:

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

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

https://i-blog.csdnimg.cn/direct/c89ae4534ef8427cb42bc68686ec6aaf.png

题目:

给定右侧的图像,其中的对象已被分割,并且需要进行分类。红色和绿色表示两种不同的类别。

我们可以通过计算一个定量的形状度量,并对其进行阈值处理来进行分类。假设计算 圆度(Circularity)偏心率(Eccentricity) ,哪一个特征可以用于分类?

A. 仅圆度

B. 仅偏心率

C. 既可以使用圆度,也可以使用偏心率

D. 既不能使用圆度,也不能使用偏心率

https://i-blog.csdnimg.cn/direct/bda64f82d3bf4cbdb6aea589c8a150d4.png