第一部分:颜色与纹理特征(Part 1)
1. 颜色特征
颜色直方图(Color Histogram)
定义:统计图像中各颜色通道(R/G/B)的像素分布,形成直方图。
计算步骤:
将每个颜色通道的像素值分为 256 个区间(0-255)。
统计每个区间内的像素数量,生成三个通道的直方图。
将三个直方图拼接成一个 768 维的向量(256×3)。
示例:
若红色通道的像素集中在高值区域(如 200-255),说明图像偏红色调。
绿色通道的直方图平坦,说明颜色分布均匀。
应用场景:图像检索(按颜色搜索相似图片)。
颜色矩(Color Moments)
2. 纹理特征
Haralick 纹理特征
原理:基于灰度共生矩阵(Gray-Level Co-occurrence Matrix, GLCM),统计相邻像素的灰度值对出现的频率。
GLCM 构建步骤:
选择距离 d 和方向 a(如水平、垂直、对角线)。
统计所有满足条件的像素对 (i,j),其中 i 和 j 分别为当前像素和邻域像素的灰度值。
生成 L×L 的矩阵(L 为灰度级数)。
局部二值模式(Local Binary Pattern, LBP)
原理:将局部纹理编码为二进制模式,生成纹理描述子。
计算步骤:
对每个像素,比较其与周围 8 邻域像素的灰度值。
若邻域像素值 ≥ 中心像素值,标记为 1;否则标记为 0。
将 8 位二进制码转换为十进制(0-255),形成 LBP 值。
统计图像中每个 LBP 值的频率,生成 256 维直方图。
改进版本:
旋转不变 LBP:通过循环移位二进制码,取最小值作为最终编码,减少旋转影响。
多分辨率 LBP:通过不同距离和邻域大小捕捉多尺度纹理。
应用:人脸识别(对光照变化鲁棒)。
尺度不变特征变换(Scale-Invariant Feature Transform, SIFT)
核心思想:提取图像中的关键点,并生成对尺度、旋转、光照不变的描述子。
四步流程:
尺度空间极值检测:
构建高斯金字塔(不同尺度的高斯模糊图像)。
计算高斯差分(DoG)金字塔,检测局部极值点(潜在关键点)。
关键点定位:
剔除低对比度点:通过泰勒展开拟合极值位置,计算精确对比度。
剔除边缘响应点:利用 Hessian 矩阵的特征值比值(如主曲率比),过滤边缘点。
方向分配:
计算关键点邻域内像素的梯度方向和幅值。
构建方向直方图(36 个区间),取主方向作为关键点方向。
描述子生成:
将关键点邻域划分为 4×4 的子区域。
对每个子区域计算 8 方向的梯度直方图,形成 128 维向量(4×4×8)。
应用:图像拼接(全景图生成)、物体识别。
第二部分:形状特征与高级编码(Part 2)
1. 形状特征
凸性(Convexity):
凸包(Convex Hull):包含形状的最小凸集。
凸缺陷(Convex Defect):凸包与原始形状的差异区域。
凸性 = 原始面积凸包面积凸包面积原始面积,值越接近 1 越凸。
长宽比(Aspect Ratio):
边界框的长宽比,用于区分细长物体(如铅笔)与紧凑物体(如球)。
2. 形状上下文(Shape Context)
原理:通过采样边界点,构建局部极坐标直方图描述形状。
步骤:
采样边界点:使用 Canny 边缘检测提取形状轮廓点。
构建形状上下文:
对每个采样点,以该点为中心,将周围区域分为对数极坐标区间(如 5 距离区间 × 12 角度区间)。
统计其他点落在各区间内的数量,形成 60 维直方图。
形状匹配:
计算两个形状的匹配成本矩阵 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)
词袋模型(BoW)
核心思想:将局部特征(如 SIFT)聚类为“视觉单词”,生成全局直方图。
步骤:
构建视觉词典:
提取所有训练图像的 SIFT 特征(假设每图提取 1,000 个 128 维描述子)。
使用 k-means 聚类将所有描述子分为 kk 类(如 k=1,000),每个聚类中心即为一个视觉单词。
特征编码:
对每张图像,将其 SIFT 描述子分配到最近的视觉单词。
统计每个视觉单词的出现频率,生成 kk 维直方图。
优点:将变长局部特征转换为定长全局特征,适合分类任务。
应用:图像分类(如 Caltech-101 数据集)。
k-means 聚类
算法流程:
初始化:随机选择 k 个初始聚类中心。
分配数据点:将每个数据点分配到最近的聚类中心。
更新中心:计算每个簇的均值作为新中心。
迭代:重复步骤 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. 既不能使用圆度,也不能使用偏心率