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

【IPMV】图像处理与机器视觉:Lec12 Blob Detector 斑点检测

【IPMV】图像处理与机器视觉:Lec12 Blob Detector 斑点检测

本系列为2025年同济大学自动化专业**图像处理与机器视觉**课程笔记
Lecturer: Rui Fan、Yanchao Dong


Lec0 Course Description

Lec3 Perspective Transformation

Lec7 Image Filtering

Lec8 Image Pyramid

Lec9 Laplace Blending

Lec10 Edges and Lines

Lec11 Keypoint Features and Corners

Lec12 Blob Detector

持续更新中

文章目录

  • 【IPMV】图像处理与机器视觉:Lec12 Blob Detector 斑点检测
  • Lec12 Blob Detector
    • Blob检测原理
    • Laplacian of Gaussian (LoG)
    • Difference of Gaussian (DoG)
    • 边缘 vs Blob检测对比
    • 总结


Lec12 Blob Detector

斑点特征的识别

斑点:图像中与周围区域有明显差异的圆形区域(亮斑或暗斑)

  • Stable in scale and space
  • Blob detector:LoG and DoG

Blob检测原理

Stable in scale and space,即Blob检测需要具备尺度不变性(在不同缩放比例下都能检测)

  • 核心思想
    • 尺度空间中寻找LoG响应的局部极值点(极大/极小值),即响应平方的极大值
    • 当 LoG 的尺度参数 σ \sigma σ与Blob的实际半径 r r r匹配时响应最强: σ = r / 2 \sigma = r/\sqrt{2} σ=r/2

特征尺度:使LoG响应达到峰值的尺度 σ \sigma σ,反映Blob的实际大小。

  • 实现步骤
    1. 用不同尺度的归一化 LoG 滤波器卷积图像
      • Scale-normalized:进行归一化处理,使响应与比例无关
    2. 在空间和尺度维度联合搜索响应极值


Laplacian of Gaussian (LoG)

首先介绍一个blob detector——Laplacian of Gaussian (LoG)

  • 在多个尺度上用尺度归一化的 LoG 对图像进行卷积
  • 寻找尺度空间中 LoG 响应平方的最大值
  • 数学定义 ∇ 2 g = ∂ 2 g ∂ x 2 + ∂ 2 g ∂ y 2 \nabla^2 g = \frac{\partial^2 g}{\partial x^2} + \frac{\partial^2 g}{\partial y^2} 2g=x22g+y22g

  • 尺度归一化处理
    为保证响应不受尺度影响,引入归一化因子: ∇ norm 2 g = σ 2 ( ∂ 2 g ∂ x 2 + ∂ 2 g ∂ y 2 ) \nabla_{\text{norm}}^2 g = \sigma^2 \left( \frac{\partial^2 g}{\partial x^2} + \frac{\partial^2 g}{\partial y^2} \right) norm2g=σ2(x22g+y22g)
    • 通用规则:对 p p p阶导数乘以 σ p \sigma^p σp实现尺度不变性
  • 检测步骤

    • 给定输入图片 f ( x , y ) f(x,y) f(x,y) ,这个图片被高斯核卷积一遍 g ( x , y , t ) = 1 2 π t e x 2 + y 2 2 t g(x,y,t) = \frac{1}{2\pi t}e^{\frac{x^2+y^2}{2t }} g(x,y,t)=2πt1e2tx2+y2

    • 在一定比例的 t 给出一个比例的空间表示 L ( x , y , t ) = g ( x , y , t ) ∗ f ( x , y ) L(x,y,t) = g(x,y,t) * f(x,y) L(x,y,t)=g(x,y,tf(x,y)

    • 然后对结果进行Laplacian 操作 ∇ 2 L = L x x + L y y \nabla^{2} L=L_{x x}+L_{y y} 2L=Lxx+Lyy

响应特征:对暗斑产生正响应,对亮斑产生负响应:求二阶偏导后,亮点是Min,暗点是Max

  • 先高斯模糊,再求拉普拉斯二阶偏导,联立成一步
    ∇ 2 ( I ∗ G ) = ∇ 2 G ∗ I ⟹ L o G ( x , y ) = − 1 π σ 4 [ 1 − x 2 + y 2 2 σ 2 ] e − x 2 + y 2 2 σ 2 \nabla^{2}(I * G)=\nabla^{2} G * I \Longrightarrow L o G(x, y)=-\frac{1}{\pi \sigma^{4}}\left[1-\frac{x^{2}+y^{2}}{2 \sigma^{2}}\right] e^{-\frac{x^{2}+y^{2}}{2 \sigma^{2}}} 2(IG)=2GILoG(x,y)=πσ41[12σ2x2+y2]e2σ2x2+y2

例:
在这里插入图片描述


Difference of Gaussian (DoG)

下面再介绍一个斑点检测方法:Difference of Gaussian (DoG)——作为 LoG 的近似,提高计算效率

  • 高斯差分(DoG):用两个不同尺度的高斯核差值近似LoG
    • D o G = G ( x , y , k σ ) − G ( x , y , σ ) DoG = G(x, y, k\sigma) - G(x, y, \sigma) DoG=G(x,y,)G(x,y,σ)
    • 优势:通过高斯金字塔加速计算

DoG 是一种特征增强算法,它将原始图像的一个高斯模糊版本从另一个模糊程度较低的原始图像中减去。

先高斯模糊,再原图减去

在这里插入图片描述

在这里插入图片描述

公式如下

Γ σ , K σ ( x , y ) = I ∗ 1 2 π σ 2 e − x 2 + y 2 2 σ 2 − I ∗ 1 2 π K 2 σ 2 e − x 2 + y 2 2 K 2 σ 2 Γ σ , K σ ( x , y ) = I ∗ ( 1 2 π σ 2 e − x 2 + y 2 2 σ 2 − 1 2 π K 2 σ 2 e − x 2 + y 2 2 K 2 σ 2 ) \Gamma_{\sigma, K \sigma}(x, y)=I * \frac{1}{2 \pi \sigma^{2}} e^{-\frac{x^{2}+y^{2}}{2 \sigma^{2}}}-I * \frac{1}{2 \pi K^{2} \sigma^{2}} e^{-\frac{x^{2}+y^{2}}{2 K^{2} \sigma^{2}}} \\ \Gamma_{\sigma, K \sigma}(x, y)=I *\left(\frac{1}{2 \pi \sigma^{2}} e^{-\frac{x^{2}+y^{2}}{2 \sigma^{2}}}-\frac{1}{2 \pi K^{2} \sigma^{2}} e^{-\frac{x^{2}+y^{2}}{2 K^{2} \sigma^{2}}}\right) Γσ,Kσ(x,y)=I2πσ21e2σ2x2+y2I2πK2σ21e2K2σ2x2+y2Γσ,Kσ(x,y)=I(2πσ21e2σ2x2+y22πK2σ21e2K2σ2x2+y2)

这两个等式是等价的


边缘 vs Blob检测对比

特征类型检测依据数学工具
边缘二阶导数过零点LoG零交叉
Blob多边缘叠加的极值区域LoG尺度空间极值

总结

Blob检测核心要点

  1. 目的

    • 找圆形区域(亮/暗斑),尺度不变
  2. 两种方法

    • LoG:用 σ 2 ∇ 2 G \sigma^2 \nabla^2 G σ22G找极值, σ = r / 2 \sigma = r/\sqrt{2} σ=r/2 时最强
    • DoG G k σ − G σ G_{k\sigma}-G_\sigma GGσ快速近似LoG
    • LoG准但慢,DoG快(如SIFT用)
  3. vs边缘检测

    • 边缘:看LoG过零点
    • Blob:看LoG/DoG极值

关键公式
LoG峰值 ⇒ σ = r / 2 , DoG = G k σ − G σ \text{LoG峰值} \Rightarrow \sigma = r/\sqrt{2}, \quad \text{DoG} = G_{k\sigma} - G_\sigma LoG峰值σ=r/2 ,DoG=GGσ

相关文章:

  • MLA:Transformer的智能变形金刚——解密多头潜在注意力的进化密码
  • DOM事件的传播机制
  • Dify 本地源码安装教程
  • Llama 4中文调优全流程解
  • Win11 系统登入时绑定微软邮箱导致用户名欠缺
  • ST表——算法的优化
  • LambdaQueryWrapper、MybatisPlus提供的基本接口方法、增删改查常用的接口方法、自定义 SQL
  • QML学习06Button
  • ArrayList 与 LinkedList 区别?
  • CMake学习笔记(六)可以在CMake的function中修改function函数体之外的变量值吗?
  • 探索智能仓颉
  • git push出现 “HTTP 400 curl 22 The requested URL returned error: 400...“错误
  • Ntfs!NtfsReadBootSector函数分析之nt!CcGetVacbMiss中得到一个nt!_VACB结构
  • 白皮精读:全国统一数据资产登记体系建设白皮书【附全文阅读】
  • MQTT-SpringBoot整合
  • 6.4.3_有向无环图描述表达式
  • JAVA 项目中 maven pom.xml 和 properties 配置文件、spring 配置文件,以及环境变量的关系
  • 深入理解Istio:全面解析与实践指南
  • 向量数据库选型实战指南:Milvus架构深度解析与技术对比
  • Lua 脚本在 Redis 中的运用-22
  • 有做网站维护的/网站服务公司
  • 网站建设一般多钱/360推广和百度推广哪个好
  • 网站大数据怎么做/广州seo做得比较好的公司
  • 免费WAP建导航网站/宁德市安全教育平台
  • 网站设计的公司设计/关键词查网址
  • 杭州个人网站建设/百度指数代表什么意思