当前位置: 首页 > news >正文

【数字图像处理系列笔记】Ch09:特征提取与表示

目录

一、特征提取与表示的核心意义

二、全局特征:描述图像整体特性

1. 颜色特征:最直观的视觉信息

颜色直方图(Color Histogram)

颜色矩(Color Moments)

颜色聚合向量(Color Coherence Vector, CCV)

2. 纹理特征:像素灰度的空间分布模式

灰度共生矩阵(Gray-Level Co-occurrence Matrix, GLCM)

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

Gabor 滤波器(Gabor Filter)

3. 形状特征:描述目标的轮廓与几何属性

几何特征(Geometric Features)

Hu 矩(Hu Moments)

轮廓描述子(Contour Descriptors)

三、局部特征:聚焦图像中的关键区域

1. 关键点与局部描述子

SIFT(尺度不变特征变换)

SURF(加速鲁棒特征)

ORB( Oriented FAST and Rotated BRIEF)

2. 区域特征:局部区域的统计特性

HOG(方向梯度直方图)

局部二值模式(LBP)的扩展应用

3.局部特征的应用:全景图的构建 

四、CNN(卷积神经网络):端到端的特征学习

1. CNN 的特征提取机制

分层特征学习:

核心操作:

2. 经典 CNN 模型的特征表示

3. CNN 特征 vs 传统手工特征

五、特征提取的实际应用与趋势

六 、习题

1、Harris角点检测大致步骤,特征值远大于远小于会怎么样?

1.1

 1. 2

1. 背景:Harris 算法的核心思想

2. 图像区域分类逻辑(按 λ₁、λ₂ 的关系)

(1)Flat region(平坦区域)

(2)Edge(边缘)

(3)Corner(角点)

3. 为什么用特征值?

4. 总结

七、BOVW【BOW补充】 

一、起源与基本概念

二、核心思想与关键步骤

1. 图像局部特征提取

2. 视觉词典(码本)构建

3. 特征向量量化

4. 生成视觉单词直方图(图像表示)

三、优势与不足

优势

不足

四、应用场景


一、特征提取与表示的核心意义

在数字图像处理中,特征提取是将图像转换为可描述、可计算的抽象信息的过程,而特征表示则是将这些信息以数学形式(如向量、矩阵)存储,用于后续的图像分类、检索、识别等任务。特征的质量直接影响算法性能,其本质是从像素级原始数据中提取 “语义信息”。

二、全局特征:描述图像整体特性

全局特征关注图像的整体统计特性,计算复杂度低,适用于简单场景的图像检索与分类,但缺乏局部细节信息。

1. 颜色特征:最直观的视觉信息

颜色是图像最基础的特征,不受旋转、尺度变化影响,但受光照影响较大。

  • 颜色直方图(Color Histogram)

    • 原理:统计图像中各颜色通道(如 RGB、HSV)的像素分布频率,形成多维直方图向量。
    • 示例:在 HSV 空间中,H(色调)直方图可有效区分红、绿、蓝等颜色主导的图像。
    • 应用:基于颜色的图像检索(如 Google 图片搜索的颜色过滤功能)。
  • 颜色矩(Color Moments)

    • 原理:利用颜色分布的一阶矩(均值)、二阶矩(方差)、三阶矩(偏度)描述颜色分布特性。
    • 优势:仅用 3~9 维向量即可概括颜色特征,计算极高效。
  • 颜色聚合向量(Color Coherence Vector, CCV)

    • 原理:区分 “连贯颜色区域” 和 “非连贯区域”,统计各颜色的像素占比及连贯度。
    • 应用:处理包含多个颜色块的复杂图像(如自然场景)。

2. 纹理特征:像素灰度的空间分布模式

纹理反映图像中重复的局部模式和结构,用于区分草地、砖墙、织物等材质。

  • 灰度共生矩阵(Gray-Level Co-occurrence Matrix, GLCM)

    • 原理:统计图像中特定距离和角度下,灰度值对(i,j)的出现频率,生成矩阵后计算能量、对比度、熵等特征。
    • 数学表达
  • 局部二值模式(Local Binary Pattern, LBP)

    • 原理:以中心像素为阈值,将邻域像素灰度值转换为二进制编码,生成 LBP 码后统计直方图。
    • 变种:圆形 LBP(可适应不同半径邻域)、旋转不变 LBP(消除旋转影响)。
    • 应用:人脸检测(如 OpenCV 的 Haar+LBP 级联分类器)。
  • Gabor 滤波器(Gabor Filter)

    • 原理:利用不同频率和方向的 Gabor 核与图像卷积,提取多尺度纹理特征。
    • 优势:符合人类视觉系统对纹理的感知机制,对方向和尺度敏感。

3. 形状特征:描述目标的轮廓与几何属性

形状特征用于区分不同物体的轮廓结构,需先通过边缘检测或分割提取目标轮廓。

  • 几何特征(Geometric Features)

    • 基础属性:面积、周长、质心、边界框(Bounding Box)、纵横比(如矩形度 = 面积 / 边界框面积)。
    • 圆形度(Circularity),值越接近 1 越接近圆形。
    • 主轴方向:通过图像矩计算目标的长轴方向,用于旋转不变性表示。
  • Hu 矩(Hu Moments)

    • 原理:基于图像矩(Moment)计算 7 个不变矩,对旋转、缩放、平移具有不变性。
    • 数学表达
  • 轮廓描述子(Contour Descriptors)

    • 链码(Chain Code):用方向序列(如 8 邻域方向)表示轮廓的像素连接关系。归一化链码
              原链码具有平移不变性(平移时不改变指向符),但当改变起点S时,会得到不同的链码表示,即不具备唯一性。
              为此可引入归一化链码,其方法是:对于闭合边界,任选一起点S得到原链码,将链码看作由各方向数构成的n位自然数,将该码按一个方向循环,使其构成的n位自然数最小,此时就形成起点唯一的链码,称为归一化链码,也称为规格化链码。
    • 傅里叶描述子(Fourier Descriptors):对轮廓坐标进行傅里叶变换,用低频系数描述整体形状,高频表征细节。

三、局部特征:聚焦图像中的关键区域

局部特征对旋转、尺度、光照变化具有较强鲁棒性,适用于复杂场景的目标匹配与识别。

1. 关键点与局部描述子

局部特征通常基于图像中的 “关键点”(如角点、边缘交点),提取其邻域的特征描述。

  • SIFT(尺度不变特征变换)

    • 步骤
      1. 尺度空间构建:通过高斯卷积生成多尺度图像金字塔,检测极值点(DOG 算子)。
      2. 关键点定位:筛选稳定关键点,去除边缘和低对比度点。
      3. 方向分配:基于关键点邻域的梯度方向,分配主方向(保证旋转不变性)。
      4. 特征描述:将邻域划分为4×4子块,计算每个子块的 8 方向梯度直方图,生成 128 维向量。
    • 优势:高度鲁棒,但计算复杂度高(专利已过期,可自由使用)。
  • SURF(加速鲁棒特征)

    • 优化:用 Haar 小波近似高斯卷积,用积分图像加速计算,速度比 SIFT 快 3 倍以上。
    • 特征维数:64 维或 128 维,性能接近 SIFT。
  • ORB( Oriented FAST and Rotated BRIEF)

    • 组合策略
      • 关键点检测:FAST 角点 + 金字塔(保证尺度不变性)。
      • 描述子:BRIEF 二进制描述子 + 方向校正(利用灰度质心法计算主方向)。
    • 优势:完全开源,计算极快(实时性强),但鲁棒性略低于 SIFT/SURF。

2. 区域特征:局部区域的统计特性

除关键点外,局部区域的整体特征也可作为描述子。

  • HOG(方向梯度直方图)

    • 原理
      1. 计算图像梯度幅值和方向,将图像划分为多个单元格(Cell)。
      2. 对每个 Cell 内的梯度方向统计直方图(如 9 个方向 bin)。
      3. 将相邻 Cell 组合为块(Block),归一化后拼接成特征向量。
    • 应用:行人检测(如 Dalal-Triggs 模型)、车辆识别。
  • 局部二值模式(LBP)的扩展应用

    • 在局部区域中,LBP 可用于提取微纹理特征,如人脸表情识别中的局部纹理变化。

3.局部特征的应用:全景图的构建 

检测器检测相同的特征点

用描述子找到每个特征点对应的特征点

四、CNN(卷积神经网络):端到端的特征学习

传统特征提取依赖人工设计,而 CNN 通过多层神经网络自动学习从底层到高层的特征表示,是当前图像处理的主流方法。

1. CNN 的特征提取机制

  • 分层特征学习

    • 底层特征(卷积层 1-2):提取边缘、颜色块等基础信息(类似传统局部特征)。
    • 中层特征(卷积层 3-4):组合底层特征,形成纹理、简单形状(如车轮、人脸轮廓)。
    • 高层特征(卷积层 5 及全连接层):抽象出语义概念(如 “汽车”“人脸”)。
  • 核心操作

    • 卷积:通过可学习的卷积核提取局部区域的特征(如 Gabor 滤波器的自适应版本)。
    • 池化:降采样(如最大池化),保留关键特征,增强尺度不变性。
    • 激活函数:如 ReLU,引入非线性,使网络能学习复杂模式。
2. 经典 CNN 模型的特征表示
  • AlexNet(2012):8 层网络,首次证明深度 CNN 在图像分类中的优势,特征维数约 4096 维。
  • VGGNet(2014):通过堆叠 3×3 小卷积核,加深网络(16-19 层),特征具有更强语义性。
  • ResNet(2015):引入残差连接,解决深层网络训练退化问题,广泛用于特征提取(如 ResNet-50 提取的特征常用于目标检测)。
3. CNN 特征 vs 传统手工特征
对比维度传统手工特征CNN 自动提取特征
设计方式人工设计(依赖经验)数据驱动(端到端学习)
特征层次单一层次(如颜色 / 纹理分离)多层抽象(从底层到语义高层)
鲁棒性对特定变换(如旋转、光照)需特殊设计天然具备较强不变性(通过数据增强)
计算效率轻量级(如 LBP、HOG)需大量计算(依赖 GPU 加速)
应用场景简单任务(如人脸检测、简单检索)复杂任务(如 ImageNet 分类、自动驾驶)

五、特征提取的实际应用与趋势

  • 图像检索:全局颜色 / 纹理特征用于快速匹配(如 Google 图片搜索),局部特征用于精确匹配(如商标识别)。
  • 目标检测:CNN 特征(如 Faster R-CNN 中的 RoI Pooling)结合区域建议,实现端到端目标定位与分类。
  • 跨模态应用:将图像特征与文本特征映射到同一语义空间(如图文检索、视觉问答)。
  • 未来趋势
    • 自监督学习:利用无标签数据学习通用特征(如 MoCo、SimCLR)。
    • 轻量化网络:如 MobileNet、ShuffleNet,在移动端实现高效特征提取。
    • 多模态特征融合:结合图像、视频、文本特征,提升复杂场景理解能力。

引用知乎博客中的两张图片: https://zhuanlan.zhihu.com/p/104776627

六 、习题

1、Harris角点检测大致步骤,特征值远大于远小于会怎么样?

1.1

使用一个固定窗口在图像上进行任意方向上的滑动,比较滑动前与滑 动后两种情况,窗口中的像素灰度变化程度,如果存在任意方向上的滑 动,都有着较大灰度变化,那么我们可以认为该窗口中存在角点。

 1. 2

这张图是 Harris 角点检测算法 的核心原理可视化,用来解释如何通过 特征值(λ₁、λ₂) 判断图像局部区域是角点(Corner)、边缘(Edge)还是平坦区域(Flat)。 下面拆解每个部分:

1. 背景:Harris 算法的核心思想

Harris 角点检测的本质是:用一个 滑动窗口 遍历图像,计算窗口内像素的灰度变化。如果窗口在 多个方向移动 时都产生 显著灰度变化 → 说明是角点;如果仅在 某个方向变化大、其他方向变化小 → 说明是边缘;如果 所有方向变化都小 → 说明是平坦区域。

 

为了量化这种灰度变化,Harris 算法引入了一个 二阶矩矩阵 M,它的两个 特征值 λ₁、λ₂ 能反映窗口在不同方向的灰度变化强度。

2. 图像区域分类逻辑(按 λ₁、λ₂ 的关系)

图中用 λ₁(横轴)和 λ₂(纵轴)的大小关系,把平面划分成 3 类区域,对应图像的 3 种局部结构:

(1)Flat region(平坦区域)
  • 条件:λ₁ 和 λ₂ 都很小
  • 含义:窗口在 所有方向移动 时,灰度变化都不明显 → 图像是 “平坦” 的(比如纯色区域、模糊区域)。
(2)Edge(边缘)
  • 条件:一个特征值很大,另一个很小(λ₁ >> λ₂ 或 λ₂ >> λ₁)
  • 含义:窗口仅在 某个方向移动 时灰度变化大(比如沿着边缘垂直方向移动),但在 其他方向变化小(比如沿着边缘平行方向移动)→ 图像是 “边缘”(比如物体的轮廓、纹理的边界)。
(3)Corner(角点)
  • 条件:λ₁ 和 λ₂ 都很大,且数值相当(λ₁ ≈ λ₂)
  • 含义:窗口在 所有方向移动 时,灰度变化都很显著 → 图像是 “角点”(比如物体的拐角、交叉点)。
3. 为什么用特征值?

二阶矩矩阵 M 描述了窗口内灰度变化的 “方向性”:

 
  • 特征值的 大小 反映变化的 “强度”(值越大,变化越明显);
  • 特征值的 比例 反映变化的 “方向差异”(一个大、一个小 → 只有某个方向变化大;两个都大且接近 → 所有方向变化都大)。
 

通过 λ₁、λ₂ 的相对大小,就能简洁地分类图像局部结构,这是 Harris 算法的数学本质。

4. 总结

这张图用 “特征值平面” 直观展示了 Harris 角点检测的核心逻辑:

 
  • λ₁、λ₂ 都小 → 平坦区域
  • 一个大、一个小 → 边缘
  • 都大且接近 → 角点
 

理解这张图,就掌握了 Harris 算法 “如何判断角点” 的底层原理 ,后续实际实现时,会通过计算响应函数进一步筛选角点,但本质都是基于这两个特征值的关系。

七、BOVW【BOW补充】 

一、起源与基本概念

BOVW 是从自然语言处理(NLP)领域的 “词袋模型(BoW,Bag of Words)” 迁移到计算机视觉领域的方法 。在 NLP 中,BoW 把文本看作无序单词集合,用单词出现频率表示文本;BOVW 则将图像视为 “视觉单词” 集合,用视觉单词的统计信息表征图像,把图像 “文字化”,助力大规模图像检索等任务,也常被称为 Bag-of-Feature(BOF)模型 。

二、核心思想与关键步骤

BOVW 把图像内容转化为视觉单词的频率统计,关键分以下四步:

1. 图像局部特征提取

从图像中提取能代表局部内容的特征,常用 SIFT、SURF、HOG 等:

  • SIFT(尺度不变特征变换):提取的特征具平移、缩放、旋转不变性,对光照、仿射变换也有一定鲁棒性,可从图像中检测关键点并生成 128 维等特征向量,捕捉局部纹理、结构信息。
  • SURF(加速稳健特征):是 SIFT 的加速版,计算更快,同样用于提取局部特征 。
  • HOG(方向梯度直方图):通过统计图像局部区域的梯度方向分布,描述物体外形轮廓,常用于行人检测等场景提取特征 。

这些特征就像 NLP 里文本的 “单词”,是构建 BOVW 的基础元素。

2. 视觉词典(码本)构建

收集所有图像提取的局部特征,用 聚类算法(常用 K-Means) 把特征分组:

  • K-Means 聚类流程
    • 随机选 K 个初始聚类中心(K 为预设的视觉单词数量,需根据任务调整,一般几百到上千)。
    • 计算每个特征到各中心的距离,按最近邻原则把特征分配到对应聚类。
    • 重新计算每个聚类的均值作为新中心,重复上述过程,直到聚类中心不再变化 。
  • 视觉单词与词典:最终每个聚类的中心就成为一个 “视觉单词”,所有视觉单词组成 “视觉词典(Codebook)”,相当于图像领域的 “字典”,后续用它量化图像特征。
3. 特征向量量化

用构建好的视觉词典,把图像里每个局部特征向量,通过 最近邻搜索,匹配到视觉词典中距离最近的视觉单词,将多样的局部特征 “归一化” 到有限的视觉单词集合,完成特征量化 。

4. 生成视觉单词直方图(图像表示)

统计一幅图像中每个视觉单词出现的频率,形成直方图向量,作为图像的最终表示。比如视觉词典有 K 个单词,直方图就是 K 维向量,向量每个元素值是对应视觉单词在图像中的出现次数(也可加权处理)。该直方图忽略特征顺序,只关注视觉单词的统计分布,用于后续图像分类、检索等任务 。

三、优势与不足

优势

  • 简单高效:把图像转化为低维直方图向量,降低计算复杂度,便于大规模图像检索、分类。
  • 鲁棒性强:基于局部特征和聚类,对图像平移、缩放、旋转等变化有一定适应能力,局部特征(如 SIFT)本身也具备不变性 。
  • 可解释性:视觉单词对应图像局部模式,直方图统计直观,能一定程度解释图像内容构成 。

不足

  • 丢失空间信息:只统计视觉单词频率,忽略特征在图像中的空间位置关系,难以表达物体精确结构(可结合空间金字塔匹配等方法改进,划分图像子区域分别统计直方图再融合 )。
  • 依赖手工特征:传统 BOVW 用 SIFT 等手工设计特征,表达能力有限,面对复杂场景、细粒度分类任务,效果不如深度学习方法;不过也可结合 CNN 提取的特征构建 BOVW 。
  • 聚类敏感:K-Means 等聚类结果受初始中心、K 值影响大,需调参且对离群点较敏感 。

四、应用场景

  • 图像检索:提取数据库图像和查询图像的 BOVW 特征,通过对比直方图向量相似度(如计算距离),检索出相似图像 。
  • 图像分类:把图像的 BOVW 直方图作为特征,输入 SVM、随机森林等分类器,训练分类模型,实现场景、物体分类 。
  • 视频分析:对视频帧提取 BOVW 特征,用于视频内容理解、行为识别等,捕捉帧间视觉模式变化 。
http://www.dtcms.com/a/325751.html

相关文章:

  • YOLOv8 训练报错:PyTorch 2.6+ 模型加载兼容性问题解决
  • GPT-5 现已上线 DigitalOcean Gradient™ AI 平台!
  • 数据大集网:精准获客新引擎,助力中小企业突破推广困局
  • UKB-GWAS资源更新
  • C++ 检测 IPv4 和 IPv6 地址合法性
  • 朝花夕拾(一)-------布尔掩码(Boolean Mask)是什么?
  • npm install报错~[master] npm install npm error code ERESOLVE npm err
  • Redis 数据倾斜
  • 触想定制化工业一体机化身渔业预警终端,守望渔船安全
  • 验证二叉搜索树
  • (Arxiv-2025)Phantom:通过跨模态对齐实现主体一致性视频生成
  • 如何安装 Git (windows/mac/linux)
  • CodeBuddy IDE完全食用手册:从安装到生产力爆发的技术流解剖
  • 训推一体 | 暴雨X8848 G6服务器 x Intel®Gaudi® 2E AI加速卡
  • Android Audio实战——获取活跃音频类型(十五)
  • 2025 年国内可用 Docker 镜像加速器地址
  • 【深度学习3】向量化(Vectorization)
  • SpringUI Axure元件库:重塑高效原型设计的专业工具集
  • Agent在供应链管理中的应用:库存优化与需求预测
  • 从ELF到进程间通信:剖析Linux程序的加载与交互机制
  • QT之键盘控制虚拟遥控系统开发总结
  • Qt串口通信中继电器状态解析的优化实践
  • 跨平台、低延迟、可嵌入:实时音视频技术在 AI 控制系统中的进化之路
  • c++ 常见关键字
  • 带简易后台管理的米表系统 域名出售系统 自适应页面
  • 适用于高质量核磁共振(NMR)的溶剂推荐
  • 未来物联网大模型:物联网硬件+底层驱动+AI 自动生成和调优LUA脚本,
  • Maven 的 module 管理
  • 变频器实习总结13 传统数据存储、OSS和云数据库 RDS
  • 【11-计算机视觉介绍】